Otp Challenger

🔐 敏感操作前的双因素身份护盾

在敏感操作前强制进行TOTP或YubiKey双因素认证,保障部署、金融交易、数据访问等关键场景的身份安全验证。

收藏
8.4k
安装
2.7k
版本
1.0.6
CLS 安全性认证2026-06-04
点击查看完整报告 >

使用说明

核心用法

otp-challenger 是一个身份验证中间件技能,通过脚本化方式在执行敏感操作前强制验证用户双因素认证状态。主要包含三个核心脚本:

  • `verify.sh`:验证用户提交的TOTP 6位码或YubiKey 44位ModHex码,成功后在本地状态文件中记录验证有效期(默认24小时)
  • `check-status.sh`:查询用户当前验证状态,返回剩余有效时间或过期信息
  • `generate-secret.sh`:辅助生成TOTP密钥及QR码供用户绑定

支持自动识别码类型(6位数字→TOTP,44位ModHex→YubiKey),验证状态持久化存储于JSON文件,便于跨会话追踪。

显著优点

1. 双重验证机制:同时支持TOTP(时间同步)和YubiKey(硬件令牌),覆盖不同安全等级需求
2. 状态持久化:验证成功后24小时内免重复验证,平衡安全性与用户体验

3. 防暴力破解:内置失败次数限制(默认3次)和渐进式锁定时长

4. 零密钥存储:状态文件仅含时间戳,不保存任何密钥或敏感材料

5. 灵活集成:可作为前置检查嵌入任意脚本流程,标准退出码便于CI/CD集成

潜在缺点与局限性

  • 本地状态依赖:验证状态存储于本地JSON文件,多设备场景下需额外同步机制
  • 时钟同步敏感:TOTP验证要求客户端/服务器时间同步,漂移过大导致失败
  • YubiKey需网络:依赖Yubico云端API验证,离线环境不可用
  • 无原生通知:需自行实现验证提醒或过期预警机制
  • 钩子权限风险OTP_FAILURE_HOOK可执行任意命令,配置不当可能导致命令注入

适合人群

  • DevOps/SRE工程师:保护生产环境部署权限,防止误操作或未授权变更
  • 安全管理员:为现有CLI工具链添加MFA层,无需改造底层系统
  • 小型团队:需要轻量级、自托管的身份验证增强方案,不愿引入重型IAM平台
  • 合规驱动场景:满足SOC2、ISO27001等对敏感操作二次确认的要求

常规风险

| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| 配置泄露 | `OTP_SECRET`或`YUBIKEY_SECRET_KEY`硬编码或误提交 | 使用密钥管理服务,环境变量注入 |
| 状态文件篡改 | 本地JSON被恶意修改绕过验证 | 文件权限严格控制,考虑签名或Hash校验 |
| 钩子注入 | `OTP_FAILURE_HOOK`执行恶意脚本 | 禁用该特性或严格白名单命令 |
| 验证窗口滥用 | 24小时窗口期内设备被盗用 | 缩短`OTP_INTERVAL_HOURS`,高风险操作强制每次验证 |
| API依赖中断 | Yubico服务不可用导致YubiKey验证失败 | 部署TOTP备份方案,监控API可用性 |

安全解读

核心功能

otp-challenger 是一款为自动化工作流添加身份验证层的安全工具,支持 TOTP(6位动态码)和 YubiKey(44位硬件令牌)两种验证模式。核心脚本 verify.sh 接收用户ID和OTP码,执行验证并记录状态;check-status.sh 用于查询验证有效期;generate-secret.sh 可生成TOTP密钥和二维码。

显著优点

安全设计扎实:采用文件锁(flock)实现原子化状态写入,防止并发冲突;状态文件仅存储时间戳,OTP密钥从不持久化;支持可配置的失败次数限制(默认3次)和锁定机制。

零第三方依赖:仅使用系统标准工具(jq、curl、openssl、oathtool),无npm/pip包引入供应链风险。

灵活配置:支持环境变量和YAML双模式配置,验证有效期、失败阈值均可自定义,还预留 OTP_FAILURE_HOOK 钩子用于集成告警系统。

代码质量良好:静态分析得分92,输入验证严格(正则校验TOTP格式、ModHex字符集识别YubiKey),无危险函数滥用。

潜在局限

来源可信度一般:维护者为GitHub个人账号(T3级别),缺乏组织级安全响应流程,需使用者自行审查代码变更。

外部网络依赖:YubiKey验证必须调用Yubico Cloud API(api.yubico.com),离线环境无法使用;虽有10秒超时和HTTPS加密,但网络中断会导致验证失败。

文件系统操作:状态写入依赖本地文件锁,在分布式或多容器场景下需额外处理存储一致性。

特权功能风险OTP_FAILURE_HOOK 可执行任意shell命令,若配置不当可能被利用,建议严格限制该环境变量的赋值来源。

适合人群

  • DevOps/平台工程师:用于保护kubectl/terraform等部署命令
  • 安全管理员:为财务审批、数据导出添加二次确认
  • 运维团队:实现变更管理中的身份核验流程

常规风险

| 风险项 | 等级 | 说明 |
|--------|------|------|
| 网络调用 | 低 | Yubico API官方可信,TLS加密传输 |
| 文件写入 | 低 | 仅存时间戳,原子写入+文件锁保护 |
| 命令注入 | 低 | 无用户输入直接拼接到命令 |
| 来源可信度 | 中 | T3级别,建议生产环境前独立审计 |

总体评估:功能实现与声明一致,安全设计合理,适合作为内部运维工作流的增强验证层。建议关注仓库更新,并在生产部署前进行代码审计。

Otp Challenger 内容

docs文件夹
implementation-plans文件夹
2025-01-31-yubikey-support文件夹
plans文件夹
examples文件夹
openclaw文件夹
memory文件夹
tests文件夹
手动下载zip · 46.1 kB
phase_01.mdtext/markdown
请选择文件