Otp Challenger

🔐 敏感操作前的动态身份验证

基于 RFC 6238 标准的 TOTP 二次身份验证技能,为敏感操作(部署、转账、数据访问)提供动态口令验证与状态管理。

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

使用说明

核心功能与定位

otp-challenger 是一款面向自动化工作流的身份验证技能,通过集成 TOTP(Time-Based One-Time Password)机制,在关键操作执行前强制验证用户身份。其核心定位类似于 Unix 的 sudo 概念——仅在具有实质风险的操作前介入,而非全程干扰用户体验。

显著优点

标准合规与互操作性:严格遵循 RFC 6238 规范,支持 Google Authenticator、Authy、1Password 等主流验证器,无需锁定特定生态。

灵活的架构设计

  • 状态与密钥分离:仅存储时间戳于 otp-state.json,密钥通过环境变量、YAML 配置或 1Password 等密码管理器引用,降低泄露风险
  • 内置备用实现:不强制依赖 oathtool,Python 原生实现确保基础功能可用性
  • 可配置窗口期:默认 24 小时有效期配合 15 分钟宽限期,平衡安全与便利

场景覆盖完整:从 Kubernetes 部署、Terraform 应用到金融转账、PII 数据导出,提供统一的身份验证抽象层。

潜在局限与风险

依赖本地安全边界:密钥最终需以某种形式存在于 OpenClaw 实例的内存或配置中,若主机被入侵,密钥可能被提取——这是 TOTP 架构的固有局限,非本技能独有。

无防钓鱼机制:用户仍可能被诱导向恶意实体提供 OTP 码,技能层面无法区分合法请求与社会工程攻击。

时间同步敏感:30 秒窗口依赖系统时钟准确性,极端网络隔离环境需额外配置 NTP。

状态文件单点memory/otp-state.json 若被篡改,理论上可伪造验证状态(需配合文件系统权限加固)。

适合人群

  • 运维工程师需为 CI/CD 部署添加审批留痕
  • 开发团队构建内部工具平台,需合规审计轨迹
  • 个人高级用户管理多环境基础设施访问

常规风险提示

1. 密钥存储:严禁将 OTP_SECRET 硬编码于版本控制,优先采用密码管理器集成方案
2. 日志审计:建议配套记录 verify.sh 调用日志,满足事后追溯需求

3. 过期策略:金融场景建议缩短至 4-8 小时,日常运维可保持 24 小时

4. 多因素纵深:TOTP 应作为多因素认证的一环,而非唯一防线

安全解读

核心用法

OTP Challenger 是一个为AI Agent和技能提供双因素认证(2FA)身份验证的bash技能。核心工作流程分为三步:

1. 配置阶段:生成TOTP密钥(./generate-secret.sh),扫码添加至Google Authenticator/Authy等应用,将密钥存储至OpenClaw配置或1Password
2. 验证阶段:敏感操作前调用 verify.sh <user_id> <6位码>,技能校验TOTP码有效性并记录验证状态

3. 状态检查:其他脚本通过 check-status.sh <user_id> 查询验证是否在有效期内(默认24小时)

典型调用场景:部署到生产环境前要求用户输入 /otp 123456,验证通过后才执行 kubectl apply

显著优点

  • 标准化实现:严格遵循RFC 6238 TOTP标准,HMAC-SHA1算法,6位数字,30秒时间窗口
  • 多重安全机制:速率限制(5分钟3次失败)、重放攻击防护(代码指纹记录)、时钟偏移容错(±30秒)
  • 原子操作保障:使用flock文件锁防止状态文件竞态条件
  • 零外部依赖:纯本地运算,无网络API调用,隐私数据最小化(仅存储时间戳,无明文密钥)
  • 灵活集成:支持bash source引入、环境变量配置、1Password密钥引用
  • 审计友好:内置审计日志记录每次验证尝试

潜在缺点与局限性

  • T3来源级别:个人开发者(ryancnelson)维护,缺乏企业级背书,需人工额外审计
  • npm依赖未锁定:可选Node.js实现使用otpauth包,无package-lock.json版本锁定
  • 状态文件明文:验证记录以JSON明文存储,虽无敏感密钥但包含用户身份和时间信息
  • 依赖系统工具:需预装jqpython3,可选oathtool,环境兼容性需验证
  • 无日志轮转:审计日志持续追加,长期运行可能占满磁盘

适合人群

  • AI Agent开发者:需要为自定义技能添加敏感操作保护的开发者
  • DevOps/SRE团队:希望在CLI工具链中集成类似sudo的审批工作流
  • 安全敏感场景用户:金融操作、生产部署、数据导出等需二次确认的场景
  • OpenClaw生态用户:已使用OpenClaw框架的自动化工作流构建者

常规风险

| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| 密钥泄露 | 配置文件中明文存储OTP_SECRET | 使用1Password/Bitwarden引用,避免git提交 |
| 会话劫持 | 攻击者获取Agent shell权限可读取密钥 | 配合主机级安全,定期轮换密钥 |
| 钓鱼攻击 | 用户可能被诱骗向恶意Actor提供TOTP码 | 明确提示验证用途,仅用于高价值操作 |
| 设备丢失 | 手机丢失导致身份验证不可用 | 配置备用恢复机制,密钥备份至安全位置 |
| 时钟漂移 | 系统时间不同步导致验证失败 | 启用NTP同步,利用±30秒容错窗口 |

安全等级:S(85分) — 代码实现优秀,但T3来源和依赖管理建议生产环境额外审计后提升至S+。

Otp Challenger 内容

手动下载zip · 16.2 kB
check-status.shtext/x-shellscript
请选择文件