内容
# 凭证:人工智能代理身份与信任的开放标准
[](https://idevsec.com/creduent)
[](https://idevsec.com/creduent/licensing)
[](https://creduent.idevsec.com)
[](https://pypi.org/project/creduent/)
[](https://www.npmjs.com/package/@idevsec/creduent)
**凭证** 是用于自主人工智能代理的密码学身份和信任验证的开放标准。
它定义了代理如何发布签名身份文档 (`agent.json`),如何通过 DNS TXT 记录绑定到互联网域名,以及如何注册到公共证明注册中心。
由 [IDevSec](https://idevsec.com) 创建和维护。 在 Apache 2.0 许可下开源。
- **协议概述**: [idevsec.com/creduent](https://idevsec.com/creduent)
- **技术文档**: [idevsec.com/creduent/docs](https://idevsec.com/creduent/docs)
- **参考注册中心**: [creduent.idevsec.com](https://creduent.idevsec.com)
- **许可**: [idevsec.com/creduent/licensing](https://idevsec.com/creduent/licensing)
> **GitHub 主题**: `ai-agent` `agent-identity` `ed25519` `open-standard` `mcp` `attestation` `agent-trust` `cryptographic-signing` `dns-verification` `autonomous-agent`
## 问题
自主代理缺乏一种原生的、去中心化的机制来验证其身份、所有权和端点能力。 传统的网络安全依赖于以人为中心的身份验证系统。 没有机器可读的协议原生信任基础设施,自动的机器间交互容易受到身份伪造、未经授权的访问和能力发现的缺乏。
## 工作原理
```
+-------------------+ +----------------------+ +-------------------+
| 代理提供商 | | 凭证注册中心 | | 客户端应用 |
| (agent.json) | | | | (MCP 主机) |
+-------------------+ +----------------------+ +-------------------+
| | |
|----- 1. 主机 agent.json -------->| |
| |-- 2. 验证身份和 DNS ------>|
| | 以及签名证明 |
| | |
|<---- 3. 调用代理端点 -----------------------------------------| (verify_agent 工具)
| | |
| |<--- 4. 获取证明 ---------| (注册中心验证)
```
## agent.json 文档
每个代理都在 `https://<domain>/.well-known/agent.json` 处发布其加密身份。 文档包含 8 个字段:
```json
{
"version": "1.0",
"issued_at": "2026-05-27T02:41:21Z",
"agent_id": "agent://example/agent",
"owner": "示例公司",
"public_key": "ed25519:hArTvbITJ2jirL170IOSjcVvEvstC4s+RjYLu4chCwg=",
"endpoint": "https://api.example.com/assistant",
"capabilities": ["scan", "query"],
"signature": "base64_signature_here"
}
```
## 快速入门
### 1. 生成密钥并签名 agent.json
使用签名命令行工具生成密钥对,并使用 RFC 8785 JSON 规范化方案(JCS)和 Ed25519 签名您的草稿身份负载:
```bash
python cli/creduent-sign.py generate-keys
python cli/creduent-sign.py sign --key private_key.pem --input examples/draft_agent.json --output agent.json
```
### 2. 暴露元数据并配置 DNS
在您的网络服务器上托管 `agent.json`,地址为 `https://<domain>/.well-known/agent.json`。 然后,在您的域名下发布一条 DNS TXT 记录,以将域名身份绑定到代理 ID:
```
_creduent.example.com TXT "agent://example/agent"
```
### 3. 向凭证注册中心注册
将您的代理注册提交到注册中心:
```bash
curl -X POST https://creduent.idevsec.com/register \
-H "Content-Type: application/json" \
-d '{"agent_id": "agent://example/agent", "domain": "example.com", "agent_json_url": "https://example.com/.well-known/agent.json"}'
```
## 软件开发工具包和工具
### Python 软件开发工具包
```bash
pip install creduent
```
### JavaScript/TypeScript 软件开发工具包
```bash
npm install @idevsec/creduent
```
### 命令行工具
```bash
npm install -g @idevsec/creduent-cli
```
## MCP 集成
凭证通过 `verify_agent` 工具公开一个模型上下文协议(MCP)服务器,以在代理主机中启用验证。 在您的 MCP 设置中配置它:
```json
{
"mcpServers": {
"creduent": {
"command": "python",
"args": ["/path/to/creduent/mcp/creduent_mcp_server.py"],
"env": {
"CREDUENT_REGISTRY_URL": "https://creduent.idevsec.com"
}
}
}
}
```
调用 `verify_agent` 并带有目标代理 ID 或域名,以接收结构、加密签名和注册中心证明的状态。
## 代理框架集成
凭证为领先的 AI 代理框架提供原生验证工具和类:
- **CrewAI**:从 `creduent.integrations.crewai` 导入 `CreduentVerifyTool`,以在 Crew 定义中动态验证外部代理。
- **LangGraph**:将 `verify_agent_node` 节点函数从 `creduent.integrations.langgraph` 添加到您的状态图中,以在执行下一个节点之前验证代理身份。
- **AutoGen**:使用 `creduent.integrations.autogen` 中的 `CreduentConversableAgent` 继承您的代理,以对传入消息强制执行加密发送者身份检查。
## 注册中心 API
- `POST /register` - 验证代理的身份签名和 DNS TXT 记录,然后颁发签名证明。
- `POST /attest` - 开发者直接代理注册(无需 agent_json_url)。
- `GET /attest/{agent_id}` - 检索指定代理的活动凭证签名证明。
- `GET /agents` - 列出注册中心中的所有注册代理元数据和证明。
- `DELETE /revoke/{agent_id}` - 撤销代理在注册中心中的证明(需要多签名头或旧版 `CREDUENT-ADMIN-KEY`)。
- `POST /recovery/override` - 使用域名 DNS TXT 记录检查覆盖密钥。
- `POST /renew` - 使用新的到期日期续期代理证明。
- `POST /webhook/register` - 注册到期通知的 Webhook URL。
- `GET /webhook/{agent_id}` - 检索代理的已注册 Webhook URL。
- `GET /stats` - 注册中心遥测(总计、已验证、未验证、已吊销、即将到期)。
- `GET /challenge/{agent_id}` - 为身份验证生成安全挑战和随机数。
- `POST /verify-challenge` - 验证签名挑战响应并颁发短期证明令牌。
- `GET /public-key` - 检索用于验证证明令牌的注册中心公钥。
- `GET /dashboard` - 注册中心开发者仪表盘,网址为 `creduent.idevsec.com/dashboard`。
- `GET /resolver` - 代理:// URI 解析器,网址为 `creduent.idevsec.com/resolver`。
## 协议标准和规范
凭证协议被结构化为一系列由 IDevSec 维护的正式标准文档:
* **[标准索引](standards/README.md)** - 所有协议标准的索引
* **[CREDUENT-001: agent.json](standards/CREDUENT-001-agent-json.md)** (基于规范 **[SPEC.md](SPEC.md)**)- 基本身份规范
* **[CREDUENT-002: 证明](standards/CREDUENT-002-attestation.md)** - 签名证明模式和验证流程
* **[CREDUENT-003: 注册中心 API](standards/CREDUENT-003-registry-api.md)** - 注册中心 HTTP API 端点和安全控制
* **[CREDUENT-004: 代理 URI 解析](standards/CREDUENT-004-uri-resolution.md)** - 基于 DNS 的 `agent://` URI 模式解析
* **[CREDUENT-005: 联邦](standards/CREDUENT-005-federation.md)** - 联邦根节点和节点信任模型
* **[CREDUENT-006: 动态证明](standards/CREDUENT-006-dynamic-attestation.md)** - 动态提示和硬件证明(草案)
## 起源和监管
Kashish Kanojia 是凭证协议的创建者,由 [IDevSec](https://idevsec.com) 监管。
凭证是一个开放协议,旨在社区采用、互操作性和联邦信任。 IDevSec 长期管理和监管该协议,以确保它仍然是整个 AI 代理生态系统的中立、开放标准。
有关项目历史的详细信息,请参见:
* [AUTHORS.md](AUTHORS.md) - 创始详细信息和参考
参考注册中心、软件开发工具包和协议工具作为协议的初始实现。
## 贡献
欢迎为凭证协议标准和参考实现做出贡献。
- 在 GitHub 上提出问题或讨论以提出协议更改
- 所有规范更改都遵循 [CREDUENT-005](standards/CREDUENT-005-federation.md) 中定义的 CIP(凭证改进提案)流程
- 加入联盟: [idevsec.com/creduent](https://idevsec.com/creduent)
## 有用链接
| 资源 | URL |
|---|---|
| 协议展示 | https://idevsec.com/creduent |
| 技术文档 | https://idevsec.com/creduent/docs |
| 许可详情 | https://idevsec.com/creduent/licensing |
| 参考注册中心 | https://creduent.idevsec.com |
| 注册中心仪表盘 | https://creduent.idevsec.com/dashboard |
| Python 软件开发工具包(PyPI) | https://pypi.org/project/creduent/ |
| JavaScript 软件开发工具包(npm) | https://www.npmjs.com/package/@idevsec/creduent |
| 命令行工具(npm) | https://www.npmjs.com/package/@idevsec/creduent-cli |
## 安全性和强化
凭证注册中心包含多种内置的安全保证和弹性防护措施:
- **失败关闭验证**:如果代理的证明时间戳或到期日期因损坏或恶意有效载荷篡改而无法解析,验证管道默认为将证明标记为 `expired`(`expired = True`)。
- **无服务器速率限制防护**:为了防止客户端在无状态环境中绕过速率限制(例如,在 Vercel 无服务器函数中,在容器冷启动期间内存缓存数据库被清除),如果未配置 Upstash Redis 凭证,注册中心会显式引发 `HTTP 500` 错误。
- **规范 JCS 序列化**:所有加密签名验证都使用符合 RFC 8785 的统一 JSON 规范化方案(JCS)编码包装器,以避免格式差异。
- **Webhook 中的 SSRF 防护**:所有出站 Webhook 警报都经过严格的 IP 验证过滤器 (`safe_requests_post`),过滤掉私有、环回和本地 IP 范围,以防止服务器端请求伪造。
- **授权 Webhook 查询**:通过 `/webhook/{agent_id}` 检索已注册的 Webhook URL 仅限授权管理员(需要 `CREDUENT-ADMIN-KEY` 令牌),以防止元数据信息泄露。
- **CLI 管理集成**:开发者命令行工具自动从环境中转发管理凭证,确保授权操作员的无缝操作,而无需公开查找端点。
- **解耦安全审计**:代理能力扫描(DNS、OSINT 头和 Clickjacking/HSTS 验证)与主注册中心控制器分离到独立服务中,允许独立代码审计。
---
## 许可
凭证的许可模式旨在最大限度地提高社区采用和互操作性:
* **协议规范**:凭证协议规范(包括 `CREDUENT-001` 至 `CREDUENT-006` 标准文档,位于 `standards/` 目录中)是开放的公共领域标准。 任何人都可以自由实现该协议、构建自定义注册中心或设计兼容的客户端,无需任何许可限制或版税。
* **参考实现、软件开发工具包和命令行工具**:所有凭证软件资产(包括 Python 软件开发工具包、JavaScript/TypeScript 软件开发工具包(`@idevsec/creduent`)、命令行工具(`@idevsec/creduent-cli`)、MCP 服务器和参考注册中心源代码)均在 **[Apache License 2.0](LICENSE)** 下许可。