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 是公开的,攻击者也无法使用它。每个请求都包含一个数字签名。

  1. 客户端使用私有 Token 对请求负载进行签名。
  2. 服务器接收签名和声明的 Address。
  3. 服务器使用签名来恢复 Address。
  4. 如果恢复的 Address 与声明的 Address 匹配,则请求有效。

这个过程是无状态的。服务器不需要活跃 Session 数据库来验证用户,它只需要数学计算。

为了防止重放攻击,AgentAuth 使用了 60 秒的时间戳窗口。如果攻击者窃取了一个已签名的请求,他们只有一分钟的时间可以使用它,之后签名就会失效。

重要区别:AgentAuth 用于身份验证 (Authentication)(你是谁?)。它不是用于授权 (Authorization)(你被允许做什么?)。

不要将其与官方的 MCP OAuth 2.1 规范混淆。

  • 当你控制两端,并希望使用稳定的 ID 进行用量追踪或等级限制时,请使用 AgentAuth。
  • 当你需要代表人类向第三方 API 委派权限时,请使用 MCP OAuth 2.1。

两者可以协同工作。使用 AgentAuth 来识别 Agent,使用 OAuth 来管理其对外部数据的访问。

AgentAuth 将私钥转化为一个可验证、稳定的身份,而无需任何登录界面。

Source: https://dev.to/kanywst/agentauth-deep-dive-reading-the-self-authenticating-uuid-for-ai-agents-from-the-source-44eh

Optional learning community: https://t.me/GyaanSetuAi