安全扫描
OpenClaw
安全
high confidence该技能为指令式设计文档,旨在为 OpenClaw 添加一次性配对码认证。内容、要求和指导与其声明目的一致。
评估建议
此技能为设计文档,内部逻辑一致。实施前:(1)确认技能来源可信;(2)强制执行短期令牌和单次使用;(3)确保引导令牌短期且受限,长期信任设备令牌仅存储在后端安全存储中;(4)添加速率限制和特性开关;(5)运行推荐测试矩阵以防止令牌泄露。若计划安装代码,请审查网络端点、存储位置和凭证使用。...详细分析 ▾
✓ 用途与能力
名称/描述与提供的 SKILL.md 和参考文档匹配。技能仅描述适用于配对认证的协议/实现指南,不请求无关二进制文件、凭证或配置路径。
✓ 指令范围
指令仅限于生成短期配对码、铸造引导认证、执行连接首次握手、验证签名设备证明、在后端存储中持久化信任以及吊销。指令不涉及读取无关文件、泄露秘密或联系超出暗示网关 API 的外部端点。
✓ 安装机制
不包含安装规范或代码(仅指令)。技能本身不会写入磁盘或下载内容,保持最小安装风险。
✓ 凭证需求
技能不声明任何必需的环境变量或凭证。它作为协议的一部分引用短期引导令牌和信任设备令牌,与配对功能一致且成比例。
✓ 持久化与权限
技能未标记为 always:true,不请求持久的系统范围权限,也不指示修改其他技能的配置。它推荐将信任令牌存储在后端/主进程存储中,这是一条适当的架构指南。
安全有层次,运行前请审查代码。
运行时依赖
无特殊依赖
版本
latestv1.1.02026/3/18
添加引导认证连接首次配对流程,记录 Clawpodz UI 分割,并阐明单独代码/nonce 模态 UX。
● 无害
安装命令 点击复制
官方npx clawhub@latest install ocmap-pairing-auth
镜像加速npx clawhub@latest install ocmap-pairing-auth --registry https://cn.clawhub-mirror.com
技能文档
在 OpenClaw 现有的签名设备身份和受信任设备令牌流程之上实现一个轻量级的配对码层。不要发明第二个长期认证系统。
工作流程
- 首先阅读
references/protocol.md。 - 如果在 OpenClaw 网关或 Control UI 上工作,阅读
references/server-openclaw.md。 - 如果在 OCMAP 或其他桌面客户端上工作,阅读
references/client-ocmap.md。 - 在连接 UI 之前,确保服务器和客户端在精确的请求/响应契约上保持一致。
必需的设计
- 在服务器上生成一个短期的一次性代码。
- 在
pairing.createCode期间也生成一个短期的 bootstrap 认证值。 - 保留 OpenClaw 的 connect-first 规则:
connect.auth 期间发送 bootstrap 值
- 正常完成握手
- 然后才调用 pairing.exchangeCode
- 将交换绑定到设备身份证明:
deviceId
- publicKey
- signature
- signedAt
- nonce
- 成功后,生成或重用正常的 OpenClaw 受信任设备令牌路径。
- 在渲染器/UI 进程之外的客户端上持久化信任。
- 支持服务器端的撤销和客户端的 forget-device。
- 返回结构化错误代码,而不是通用失败。
不可协商的规则
- 保持配对码短期有效:2-5 分钟。
- 同时保持 bootstrap 认证值短期有效。
- 使代码只能使用一次。
- 限制失败交换尝试的速率。
- 永远不要在渲染器/浏览器 UI 状态中暴露长期受信任令牌。
- 成功交换代码后不需要手动批准;代码交换就是批准。
- 不要绕过 OpenClaw 现有的设备令牌验证模型;而是扩展它。
- 不要仅仅为了使配对工作而绕过 OpenClaw 的 connect-first 握手规则。
OpenClaw 实现检查清单
- 添加网关方法:
pairing.createCode
- pairing.exchangeCode
- pairing.revokeDevice
- 从
pairing.createCode返回code、nonce和短期 bootstrap 认证。 - 将配对码状态与通用设备 pending/paired 记录分开存储。
- 在 Control UI 自己的 Integrations 选项卡下显示 Clawpodz 配对 UI,并在其中显示最近的配对和受信任的桌面客户端。
- 将通用配对设备/节点/执行批准保留在 Devices 选项卡中。
- 添加功能标志或配置门控以进行分阶段发布。
- 返回结构化失败代码,例如:
PAIRING_DISABLED
- CODE_INVALID
- CODE_EXPIRED
- CODE_ALREADY_USED
- DEVICE_REVOKED客户端实现检查清单
- 在
connect.auth期间使用返回的 bootstrap 认证,以便客户端可以满足 connect-first 握手。 - 在尝试配对交换之前打开 websocket 并完成网关握手。
- 提交完整的签名有效载荷;仅
code + deviceId是不够的。 - 交换后,在主进程/后端存储中持久化返回的受信任设备令牌。
- 使用存储的令牌重新连接,并干净地转换认证状态。
- 区分
UNPAIRED、PAIRING_IN_PROGRESS、PAIRED_CONNECTED、PAIRED_DISCONNECTED和REVOKED。
验证
在宣布功能完成之前,运行以下矩阵测试:
- 使用有效代码的新配对成功。
- 重复使用相同代码失败并显示
CODE_ALREADY_USED。 - 过期代码失败并显示
CODE_EXPIRED。 - 无效签名/公钥/设备不匹配失败并显示
CODE_INVALID。 - 成功后重启客户端自动重新连接。
- 在服务器上撤销设备强制客户端返回 unpaired/revoked 流程。
- 网关重启不会丢失受信任设备记录。
参考资料
- 服务器详情:
references/server-openclaw.md - 客户端详情:
references/client-ocmap.md - 协议契约:
references/protocol.md
数据来源:ClawHub ↗ · 中文优化:龙虾技能库
OpenClaw 技能定制 / 插件定制 / 私有工作流定制
免费技能或插件可能存在安全风险,如需更匹配、更安全的方案,建议联系付费定制