🛂 Aap Passport — 代理认证协议

v3.2.0

Agent Attestation Protocol(代理认证协议)实现反向图灵测试,通过发送对LLM简单但人类无法在时限内完成的挑战来验证AI代理,并要求使用secp256k1密钥对进行加密签名以证明身份。可用于区分AI代理和人类访问者。

1· 2.2k·1 当前·1 累计
by @ira-hash·MIT-0
下载技能包
License
MIT-0
最后更新
2026/2/27
0
安全扫描
VirusTotal
无害
查看报告
OpenClaw
可疑
medium confidence
该包实现了仅AI的认证方案,并包含读取/写入本地私钥身份的工具,但技能元数据未声明需要敏感的本地密钥访问和签名功能——这些功能可能被滥用。
评估建议
此技能与其声明的目标一致,但它包含生成、存储和使用本地私钥(~/.aap/identity.json)的代码和文档,并暴露了程序化签名工具。在安装前:1)了解私钥的存储位置以及谁/什么可以读取它;优先使用硬件/OS密钥存储或作用域密钥,而非明文文件。2)审计包中的签名API(确保它们仅签名AAP证明,不能被轻易用于签名任意数据)。3)如果计划测试该技能,请在隔离环境中运行(容器或专用账户)。4)验证上游npm/github包和作者信誉;考虑固定到特定的经过审查的版本。5)如果您不希望安装可以自主访问或使用私钥的代理插件,请不要安装此技能或删除/替换签名函数。如果您希望获得更高的保障,请要求维护者在清单中声明所需的配置路径/权限,并在任何签名操作之前添加明确的运行时提示/确认。...
详细分析 ▾
用途与能力
名称/描述(Agent Attestation Protocol / 反向图灵测试)与代码和文档一致:服务器和客户端库、挑战生成器、基于签名的证明。代码中没有任何内容明显与验证AI代理的声明目的相矛盾。
指令范围
SKILL.md指导安装和使用客户端/服务器库来生成签名证明,这在范围内。然而,仓库/文档/代码期望本地身份(私钥)存储在~/.aap/identity.json,并提供工具(aap_sign_message / aap_generate_proof)来签名任意有效载荷。技能元数据未声明所需的配置路径或凭证,因此存在不匹配:运行时指令和包含的代码假设了清单未公开的本地私钥访问。该签名功能扩展了代理的范围,超出了简单的问答验证,并且可以被调用来签名任意数据。
安装机制
没有外部安装规范(仅指令),所有源文件都包含在技能包中。清单中未发现来自不明URL的下载或提取步骤。引用的典型npm包是标准的(express等)。
凭证需求
技能元数据未列出环境变量或配置路径,但文档和代码明确使用本地密钥存储(~/.aap/identity.json)和加密签名(secp256k1)。请求或使用私钥文件是敏感的特权;它未在requires.config中声明,因此与清单广告的内容不成比例。客户端暴露了程序化签名,如果模型或用户调用它来签名任意有效载荷,可能会被滥用。
持久化与权限
always:false且允许模型调用(默认)。这种组合是正常的,但由于技能暴露了签名功能并在磁盘上期望/存储长期私钥,自主调用的技能可以在没有明确、仔细的用户监督的情况下签名数据或产生签名。该技能不声称修改其他技能,但其访问和使用本地私钥的能力是一种敏感的持久性功能。
安全有层次,运行前请审查代码。

License

MIT-0

可自由使用、修改和再分发,无需署名。

运行时依赖

无特殊依赖

版本

latestv3.2.02026/1/31

**新增代理验证的加密身份要求。** - 客户端现在必须使用secp256k1密钥对签名其挑战响应;禁止匿名访问。 - 新协议流程包括发送publicKey、signature和timestamp以证明身份。 - 新服务器选项requireSignature(默认:true)强制执行加密证明。 - SKILL.md和代码已更新以记录和实施这些签名要求。 - 安全模型增强了不可否认性和可追踪的代理操作。

无害

安装命令

点击复制
官方npx clawhub@latest install aap-passport
镜像加速npx clawhub@latest install aap-passport --registry https://cn.longxiaskill.com

技能文档

The Reverse Turing Test. CAPTCHAs block bots. AAP blocks humans.

What It Does

AAP verifies that a client is an AI agent by:

  • Issuing challenges trivial for LLMs, impossible for humans in time
  • Requiring cryptographic signature (secp256k1) for identity proof
  • 7 challenges in 6 seconds with mandatory signing

Installation

npm install aap-agent-server # Server
npm install aap-agent-client # Client

Server Usage

import { createServer } from 'node:http';
import { createAAPWebSocket } from 'aap-agent-server';

const server = createServer(); const aap = createAAPWebSocket({ server, path: '/aap', requireSignature: true, // v3.2 default onVerified: (result) => console.log('Verified:', result.publicId) });

server.listen(3000);

Client Usage

import { AAPClient, generateIdentity, createSolver } from 'aap-agent-client';

// Identity auto-generated (secp256k1 key pair) const client = new AAPClient({ serverUrl: 'ws://localhost:3000/aap' }); const result = await client.verify(solver); // Signature automatically included

Protocol Flow (WebSocket v3.2)

← handshake (requireSignature: true)
→ ready (publicKey)
← challenges (7 challenges)
→ answers + signature + timestamp
← result (verified/failed + sessionToken)

Signature Format

Proof data signed with secp256k1:

JSON.stringify({ nonce, answers, publicId, timestamp })

Configuration

OptionDefaultDescription
challengeCount7Number of challenges
totalTimeMs6000Time limit (ms)
requireSignaturetrueMandate cryptographic proof

Security

  • Cryptographic identity (secp256k1)
  • Signature required = no anonymous access
  • 7 challenges in 6 seconds = impossible for humans
  • Non-repudiation: all actions traceable

Links

数据来源ClawHub ↗ · 中文优化:龙虾技能库