TOTP

🔐 敏感操作二次验证,守护核心配置

基于TOTP的二次验证技能,为敏感操作(环境变量读取、网关重启、配置修改等)提供6位动态口令保护,1分钟容错窗口,兼容Google Authenticator。

收藏
4.1k
安装
1.1k
版本
1.0.0
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

TOTP Verification Skill 是一个基于时间的一次性密码(TOTP)验证系统,专为保护敏感操作设计。采用 otplib 库实现,配置窗口为 2(即 ±1 分钟时间容差),兼容主流验证器如 Google Authenticator 和 Authy。

工作流程:
1. 安装依赖后运行 npm run generate 生成 Base32 编码的密钥及二维码

2. 将 TOTP_SECRET 写入 .env 文件

3. 使用验证器 App 扫描二维码完成绑定

4. 敏感操作前,Agent 请求用户输入 6 位 OTP 码

5. 通过 verify.js 验证,exit 0 通过,exit 1 拒绝

技术规格: SHA-1 算法、6 位数字、30 秒周期、Base32 密钥编码。

显著优点

  • 操作隔离: 将高敏感操作(读取 .env、删除备份、重启网关)与常规对话分离,强制人工确认
  • 零外部依赖: 纯 Node.js 实现,无需调用第三方验证服务,密钥完全本地托管
  • 主流兼容: 支持 Google Authenticator、Authy、Microsoft Authenticator 等标准 TOTP 应用
  • 时间容错: 1 分钟窗口有效应对设备时间漂移,兼顾安全与可用性
  • 易于集成: 通过退出码(0/1)与 shell 工作流无缝衔接

潜在缺点与局限性

  • 单点故障: 若 .env 文件泄露,攻击者可离线暴力破解窗口期内的 TOTP 码(仅 10⁶ 种组合,在线速率受限但离线不可忽略)
  • 无防重放机制: 同一 OTP 在窗口期内可重复使用,缺乏「已用令牌」记录
  • 密钥管理脆弱: 依赖单一环境变量存储,无 HSM、KMS 或加密存储方案
  • 无速率限制: 验证脚本本身未实现尝试次数限制,易被暴力破解
  • 依赖 Node.js: 目标环境必须安装 Node,增加攻击面和维护成本

适合人群

  • 个人开发者或小型团队,需要为 AI Agent 增加基础二次确认层
  • 对安全有初步要求,但尚未部署企业级 IAM/SSO 的环境
  • 需要兼容手机验证器、拒绝短信/邮件 OTP 方案的用户

常规风险

| 风险类型 | 说明 |
|---------|------|
| 密钥泄露 | `.env` 文件权限不当或意外提交至版本控制,导致长期密钥暴露 |
| 时间攻击 | 本地系统时间被篡改可绕过或干扰验证窗口 |
| 社会工程 | 攻击者诱导用户实时提供 OTP,缺乏交易绑定上下文(如金额、操作详情) |
| 暴力破解 | 无内置速率限制,结合密钥泄露可在窗口期内枚举 6 位码 |
| 供应链风险 | `otplib` 依赖若被投毒,可植入后门或削弱随机性 |

建议生产环境叠加:密钥加密存储(如 AWS Secrets Manager)、验证速率限制、操作日志审计、以及硬件安全模块(HSM)托管主密钥。

TOTP 内容

scripts文件夹
手动下载zip · 2.9 kB
generate-secret.jstext/javascript
请选择文件