安全与认证
6.1 认证机制总览
UCP支持四种认证机制,适用于不同的安全需求层级:API Keys
适用于无需用户身份的场景(如浏览公开商品目录):ucp_pk_test_)和生产环境(ucp_pk_live_)。
OAuth 2.0
详见第3章。用于需要代表消费者操作的场景(结账、订单查询等)。UCP强制使用Authorization Code + PKCE流程。mTLS (Mutual TLS)
双向TLS认证,客户端和服务器都需要提供证书。适用于平台与平台之间的高安全通信:HTTP Message Signatures (RFC 9421)
UCP的Webhook通知和关键API调用使用HTTP消息签名确保完整性和真实性。这是UCP安全模型中最重要的机制之一。6.2 JWK签名密钥
商家在/.well-known/ucp Profile中发布签名公钥,使用JSON Web Key (JWK)格式:
密钥轮换: 商家可以在
signing_keys 数组中同时发布多个密钥(通过不同的 kid 区分),支持平滑的密钥轮换。旧密钥在过渡期内保留,新签名使用新密钥。
6.3 HTTP消息签名 (RFC 9421)
签名创建(商家侧)
商家发送Webhook时,按RFC 9421标准创建签名: 步骤1: 计算请求体的Content-Digest(RFC 9530)@method: HTTP方法(如POST)@target-uri: 完整请求URIcontent-digest: 请求体摘要content-type: 内容类型created: 签名创建时间戳(Unix时间)keyid: 对应Profile中的JWKkidalg: 签名算法
签名验证(AI代理侧)
6.4 Content-Digest (RFC 9530)
Content-Digest头提供请求体的完整性校验,防止传输过程中的篡改:6.5 传输安全
6.6 数据安全与隐私
UCP对数据处理有明确的安全边界:6.7 安全最佳实践
- 密钥轮换: 定期轮换JWK签名密钥,在Profile中同时发布新旧密钥确保平滑过渡
- 速率限制: 对所有UCP端点实施合理的速率限制
- 审计日志: 记录所有结账和订单操作的完整审计日志
- 签名时间窗口: Webhook签名的
created时间戳应在5分钟以内 - 令牌安全: access_token不应出现在URL参数或日志中
- CORS: UCP API端点应配置严格的CORS策略
- 输入验证: 所有输入参数必须严格验证类型和范围
下一章: 商家集成指南 —
/.well-known/ucp Profile部署和能力声明