TOTP

🔐 敏感操作动态口令守护

基于 TOTP 的二次验证技能,为敏感操作(如读取环境变量、重启网关、删除备份)提供 6 位动态口令保护,采用 otplib 实现,具备 1 分钟时间容差。

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

使用说明

核心用法

该技能为 openclaw 框架提供 TOTP(基于时间的一次性密码)验证能力,用于保护敏感操作。工作流程分为三个阶段:

初始化阶段:运行 npm run generate 生成 Base32 编码的 TOTP 密钥和 QR 码,配置到 Google Authenticator 或 Authy 等应用后,将密钥写入 .env 文件的 TOTP_SECRET 变量。

验证阶段:当用户请求敏感操作时(如查看 .env、修改 openclaw.json、重启网关、删除备份),代理要求用户提供 6 位 OTP 码,通过 node scripts/verify.js <code> 进行校验。

决策阶段:验证通过(exit 0)则执行操作,失败(exit 1)则拒绝访问。

显著优点

  • 标准化实现:基于成熟的 otplib 库,兼容 RFC 6238 标准,与主流身份验证器应用互通。
  • 时间容差设计:窗口设为 2(±1 分钟),兼顾安全性与用户体验,适应设备时间漂移。
  • 场景覆盖全面:明确划定 5 类敏感操作场景,形成清晰的安全边界。
  • 轻量依赖:仅需 Node.js 环境和单一 npm 包,部署成本低。

潜在缺点与局限性

  • 单点依赖TOTP_SECRET 以明文形式存储于 .env,若环境文件泄露,整个验证体系失效。
  • 无备份机制:未提及密钥丢失或更换设备的恢复流程,单设备绑定存在可用性风险。
  • 固定参数:算法锁定 SHA1、6 位数字、30 秒周期,不支持更安全的 SHA-256/512 或更长周期。
  • 人机交互摩擦:每次敏感操作均需用户手动输入 OTP,高频场景下体验下降。
  • 时钟同步依赖:服务端与客户端时间偏差超过 1 分钟将导致验证失败,无自动同步机制。

适合人群

  • 使用 openclaw 框架且需保护关键运维操作的开发者
  • 具备基础 Node.js 环境管理能力的技术团队
  • 能接受每次敏感操作手动验证的安全敏感型用户

常规风险

  • 密钥泄露风险.env 文件权限管理不当或意外提交至版本控制将导致保护失效。
  • 社会工程攻击:攻击者可能诱导用户泄露实时 OTP 码,缺乏防重放或绑定上下文机制。
  • 设备丢失场景:未设计密钥轮换或紧急绕过方案,主设备丢失将锁定敏感操作。
  • 供应链风险:依赖 otplib 及底层加密原语,需持续关注依赖库安全更新。

TOTP 内容

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