Otp Challenger

🔐 敏感操作前的身份验证护盾

通过 TOTP 双因素认证验证用户身份,为敏感操作(部署、转账、数据访问等)提供加密级别的授权确认,防止会话劫持和未授权执行。

收藏
11.1k
安装
2.7k
版本
1.0.2
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

OTP Challenger 是一款面向 OpenClaw 代理的身份验证技能,采用 RFC 6238 标准的 TOTP(基于时间的一次性密码)机制。核心工作流为:用户在执行敏感操作前被要求提供 6 位动态验证码,技能验证通过后记录状态,其他脚本可在配置的有效期内(默认 24 小时)检查验证状态。

主要包含四个脚本:verify.sh 执行 OTP 验证并记录状态;check-status.sh 查询验证是否仍有效;generate-secret.sh 生成 TOTP 密钥并输出二维码;get-current-code.sh 用于测试获取当前有效码。

显著优点

1. 零信任动作授权:与聊天通道安全解耦,专注于"动作级"身份验证,即使会话被劫持也无法执行敏感操作
2. 标准化实现:严格遵循 RFC 6238,兼容 Google Authenticator、Authy、1Password、Bitwarden 等主流验证器

3. 灵活的状态管理:验证状态以 JSON 格式持久化,支持自定义过期时间(intervalHours)和宽限期(gracePeriodMinutes

4. 安全事件响应:通过 OTP_FAILURE_HOOK 支持失败告警、外部日志或自动关机(如检测冒充时 kill OpenClaw)

5. 密钥管理友好:支持 1Password/Bitwarden 引用、环境变量、配置文件三种方式,推荐密码管理器方案避免明文存储

潜在缺点与局限性

1. 本地机密风险:若攻击者已获得 OpenClaw 实例的 shell 权限,可直接读取 OTP_SECRET,无法抵御完全沦陷场景
2. 无防钓鱼机制:用户仍可能被诱导向恶意方提供 OTP 码,技能本身不验证操作意图的真实性

3. 设备依赖单点故障:丢失或损坏验证设备将导致无法完成授权,无备用恢复机制(需依赖验证器应用的备份功能)

4. 时间同步依赖:系统时钟偏移超过 90 秒容忍窗口将导致验证失败,需依赖 NTP 同步

5. 状态文件权限memory/otp-state.json 的权限配置不当可能导致验证状态被篡改

适合人群

  • DevOps/平台工程师:为 kubectl、Terraform 等生产环境部署命令添加强制授权
  • 安全运维团队:构建变更审批工作流,满足合规审计对"人+密码"双因素的要求
  • 财务/数据管理员:保护敏感数据导出、大额转账等高风险操作
  • OpenClaw 技能开发者:需要为自定义技能集成标准化身份验证机制

常规风险

| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| 配置泄露 | `config.yaml` 或环境变量中明文存储 secret | 使用 1Password `op://` 引用语法 |
| 暴力破解 | 连续尝试猜测 6 位码 | 内置 `OTP_MAX_FAILURES` 限速(默认3次) |
| 重放攻击 | 截获旧 OTP 重复利用 | TOTP 30秒窗口天然免疫,配合状态时间戳检查 |
| 社会工程学 | 攻击者诱导用户提供实时 OTP | 明确提示"为何需要验证",培养用户警惕性 |
| 时钟漂移 | 服务器与验证器时间不一致 | 部署 NTP,利用 ±1 窗口的 90 秒宽容度 |

Otp Challenger 内容

examples文件夹
openclaw文件夹
手动下载zip · 18.9 kB
cron-expire.shtext/x-shellscript
请选择文件