低风险 — 风险评分 18/100
上次扫描:2 天前 重新扫描
18 /100
authlock
MFA-bound Secret Protection - TOTP-based encryption for sensitive data
AuthLock 是一个合法的 MFA-bound 密码保护工具,功能实现与文档一致,未发现恶意行为,但存在 PIN 存储不安全(base64 而非哈希)等中等安全隐患。
技能名称authlock
分析耗时41.3s
引擎pi
可以安装
建议审查 PIN 存储实现,改用哈希存储;建议为 sealed 文件设置更严格的文件权限。

安全发现 3 项

严重性 安全发现 位置
中危
PIN 存储使用弱编码而非哈希
配置文件中 PIN 仅使用 base64 编码存储(config.json 中 pin_hash 字段),未使用 bcrypt/argon2 等密码哈希算法。如果配置文件泄露,攻击者可轻易解码。
config["pin_hash"] = base64.b64encode(pin.encode()).decode()
→ 使用 bcrypt 或 argon2 对 PIN 进行哈希处理后再存储
authlock_cli.py:480
低危
sealed 文件未设置严格权限
保存的 .sealed 加密文件未设置特殊权限(如 0o600),可能允许其他用户读取。
with open(sealed_path, "w") as f: json.dump(sealed, f, indent=2)
→ 创建文件后使用 os.chmod(sealed_path, 0o600) 限制权限
authlock_cli.py:371
低危
环境变量名不一致
文档使用 CLAWAUTH_HOME 而代码实际读取 AUTHLOCK_HOME,可能导致用户配置困惑。
env_home = os.environ.get("AUTHLOCK_HOME")
→ 统一环境变量命名,建议使用文档中声明的名称
authlock_cli.py:67
资源类型声明权限推断权限状态证据
文件系统 READ WRITE ✓ 一致 SKILL.md: seal 命令读写文件,代码在 authlock_cli.py:370 实现
命令执行 WRITE WRITE ✓ 一致 --exec 功能在 SKILL.md 声明,authlock_cli.py:380 使用 subprocess.run(shell=True)
环境变量 NONE READ ✓ 一致 读取 AUTHLOCK_HOME/CLAWAUTH_HOME/OPENCLAW_WORKSPACE 用于路径查找

目录结构

2 文件 · 29.5 KB · 986 行
Python 1f · 728L Markdown 1f · 258L
├─ 🐍 authlock_cli.py Python 728L · 21.7 KB
└─ 📝 SKILL.md Markdown 258L · 7.9 KB

依赖分析 3 项

包名版本来源已知漏洞备注
cryptography * pip 无版本锁定,但主流库安全性较高
pyotp * pip 无版本锁定,TOTP 标准库
qrcode * pip 无版本锁定,仅用于 QR 码显示

安全亮点

✓ 功能实现与 SKILL.md 文档完全一致,无阴影功能
✓ 无网络请求,不存在数据外泄风险
✓ 无凭证收割行为(不遍历敏感环境变量如 AWS_、AZURE_)
✓ 无远程代码执行(--exec 功能需用户明确指定)
✓ 使用标准加密库(cryptography)实现 AES-256-GCM + PBKDF2
✓ TOTP 验证在解密前执行,符合安全设计