已合并
fix: 修复 CANNJudge 私钥文件权限过宽问题 #663
Saturday22266创建于 14 天前
fix: 修复 CANNJudge 私钥文件权限过宽问题 #663
已合并
Pull Request已成功合入, 合并人@CANN-robot
(感谢 Saturday22266 的贡献)14 天前 创建了 pull request,commit 0cdc2f55
14 天前 关联了issue:[Bug-Report|缺陷反馈]: 私钥文档权限不足
atomgit-bot
14 天前 评论:
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的写入逻辑未做修改,因其不涉及私密信息。


atomgit-bot
14 天前 评论:
14 天前 评论:
14 天前 添加了label:cann-cla/yes
CANN-robot
14 天前 评论:
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
/approveor/lgtm- Commenting
/approveimplies both code review (lgtm) and intent to merge (approve)


CANN-robot
14 天前 评论:
14 天前 评论:
14 天前 修改了pull request 的描述
12 天前 添加了label:approved
fuyangchenghu
12 天前 评论:
12 天前 评论:
/lgtm


12 天前 添加了label:lgtm
12 天前 合入了pull request
描述
修复
skills/cannjudge-submit/generate_key.py中私钥文件权限过宽的问题。原实现使用普通文件写入方式保存私钥:
with open(PRIVATE_KEY_PATH, "wb") as f: f.write(private_key)该方式创建文件时会受到系统
umask影响。在常见的umask 022环境下,私钥文件可能被创建为:即权限为
0644,导致同一系统中的其他用户可能读取私钥文件,不符合私钥应仅由当前用户访问的安全要求。修改后,
private.pem权限固定为:即仅文件所有者具有读写权限。
公钥
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预期结果:
3. 功能验证
0600;文档更新
无。
类型标签
其他信息
本次修改仅调整
skills/cannjudge-submit/generate_key.py中私钥文件的创建及权限设置方式,不修改 RSA 密钥生成算法、公钥生成逻辑及其他 CANNJudge 功能。