已合并
fix: 修复 CANNJudge 私钥文件权限过宽问题 #663
fix: 修复 CANNJudge 私钥文件权限过宽问题 #663
已合并
Saturday22266创建于 14 天前
Saturday22266
Saturday22266
14 天前

描述

修复 skills/cannjudge-submit/generate_key.py 中私钥文件权限过宽的问题。

原实现使用普通文件写入方式保存私钥:

with open(PRIVATE_KEY_PATH, "wb") as f:
    f.write(private_key)

该方式创建文件时会受到系统 umask 影响。在常见的 umask 022 环境下,私钥文件可能被创建为:

-rw-r--r--

即权限为 0644,导致同一系统中的其他用户可能读取私钥文件,不符合私钥应仅由当前用户访问的安全要求。

修改后,private.pem 权限固定为:

-rw-------

即仅文件所有者具有读写权限。

公钥 public.pem 不涉及私密信息,本次不修改其权限处理逻辑。

关联的Issue

Issue: https://gitcode.com/cann/cann-learning-hub/issues/419

测试

对修改后的私钥生成流程进行了以下验证:

新建私钥文件

在常见 umask 022 环境下运行:

umask 022
rm -f private.pem public.pem
python3 generate_key.py

检查权限:

stat -c '%a %n' private.pem

预期结果:

600 private.pem

3. 功能验证

  • RSA 私钥能够正常生成;
  • RSA 公钥能够正常生成;
  • 私钥内容正常写入;
  • 私钥权限保持为 0600
  • 原有密钥生成流程不受影响。

文档更新

无。

类型标签

其他信息

本次修改仅调整 skills/cannjudge-submit/generate_key.py 中私钥文件的创建及权限设置方式,不修改 RSA 密钥生成算法、公钥生成逻辑及其他 CANNJudge 功能。

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 Saturday22266 的贡献)
Saturday22266Saturday22266
14 天前 创建了 pull request,commit 0cdc2f55
Saturday22266Saturday22266
14 天前 关联了issue:[Bug-Report|缺陷反馈]: 私钥文档权限不足
atomgit-bot
atomgit-bot
14 天前 评论:

变更摘要

此 PR 修复 skills/cannjudge-submit/generate_key.py 中 RSA 私钥文件权限过宽的安全问题。原实现仅通过 open() 写入私钥文件,文件权限受系统 umask 影响,在常见 umask 022 下可能被创建为 0644,导致同系统其他用户可读取私钥。修改后在私钥写入后立即调用 os.chmod()private.pem 权限强制设为 0600(仅所有者可读写),消除私钥泄露风险。

主要改动

  • 私钥文件权限加固:在 generate_keys() 函数中,于私钥写入 PRIVATE_KEY_PATH 后新增 os.chmod(PRIVATE_KEY_PATH, 0o600),将 private.pem 权限固定为仅文件所有者可读写,不再依赖系统 umask
  • 公钥处理保持不变public.pem 的写入逻辑未做修改,因其不涉及私密信息。
likedislike
atomgit-bot
atomgit-bot
14 天前 评论:

代码审查

✅ 未发现问题

likedislike
CANN-robotCANN-robot成员
14 天前 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
14 天前 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here
You can get sig-info at here
For more, you also can visit HICANN


PR Approval Progress

Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
repo-cann/cann-learning-hub waimaidaole, fuyangchenghu (2/2) waimaidaole (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)
likedislike
CANN-robot
CANN-robot成员
14 天前 评论:

CLA Signature Pass

Saturday22266, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
Saturday22266Saturday22266
14 天前 修改了pull request 的描述
meme成员
12 天前 评论:

/approve
/lgtm

likedislike
CANN-robotCANN-robot成员
12 天前 添加了label:approved
fuyangchenghu成员
12 天前 评论:

/lgtm

likedislike
CANN-robotCANN-robot成员
12 天前 添加了label:lgtm
CANN-robotCANN-robot成员
12 天前 合入了pull request