AgentAuth 深度解析:理解自认证 UUID
给 AI Agent 展示登录界面毫无意义。
Agent 不会坐在浏览器前。它们会在凌晨 3 点发起工具调用。它们是并行运行的。像 OAuth 或 Session Cookie 这样的传统方法会失效,因为它们假设有人在场点击同意按钮。
AgentAuth 通过一种方式解决了这个问题:一个 UUID。
它不使用 Session 或额外的基础设施。它利用公钥密码学将身份和认证折叠进一个单一的值中。
其工作原理如下:
• Token:私钥 (secp256k1)。它保存在你的机器上并保持秘密。 • Address:从 Token 推导出的公钥值。 • ID:基于 Address 构建的稳定 UUID。
流程是单向的。你可以从 Token 推导出 ID,但无法从 ID 反向推导出 Token。这使得 ID 成为一个稳定的身份。
它如何防止冒充?
尽管 ID 是公开的,攻击者也无法使用它。每个请求都包含一个数字签名。
- 客户端使用私有 Token 对请求负载进行签名。
- 服务器接收签名和声明的 Address。
- 服务器使用签名来恢复 Address。
- 如果恢复的 Address 与声明的 Address 匹配,则请求有效。
这个过程是无状态的。服务器不需要活跃 Session 数据库来验证用户,它只需要数学计算。
为了防止重放攻击,AgentAuth 使用了 60 秒的时间戳窗口。如果攻击者窃取了一个已签名的请求,他们只有一分钟的时间可以使用它,之后签名就会失效。
重要区别:AgentAuth 用于身份验证 (Authentication)(你是谁?)。它不是用于授权 (Authorization)(你被允许做什么?)。
不要将其与官方的 MCP OAuth 2.1 规范混淆。
- 当你控制两端,并希望使用稳定的 ID 进行用量追踪或等级限制时,请使用 AgentAuth。
- 当你需要代表人类向第三方 API 委派权限时,请使用 MCP OAuth 2.1。
两者可以协同工作。使用 AgentAuth 来识别 Agent,使用 OAuth 来管理其对外部数据的访问。
AgentAuth 将私钥转化为一个可验证、稳定的身份,而无需任何登录界面。
Optional learning community: https://t.me/GyaanSetuAi
