AgentAuth 深掘り:自己認証型UUIDの理解

AIエージェントにログイン画面を見せることに意味はありません。

エージェントはブラウザの前に座っているわけではありません。午前3時にツールコールを実行し、並列で動作します。OAuthやセッションクッキーのような従来の手法は、同意ボタンをクリックする人間が存在することを前提としているため、うまくいきません。

AgentAuthは、UUIDという一つの要素を使ってこれを解決します。

セッションや追加のインフラは使用しません。公開鍵暗号を用いて、アイデンティティと認証を単一の値に集約します。

仕組みは以下の通りです:

• トークン:秘密鍵 (secp256k1)。これはマシン上で秘密に保持されます。 • アドレス:トークンから派生した公開値。 • ID:アドレスから構築された安定したUUID。

フローは一方向です。トークンからIDへは移行できますが、IDからトークンへ戻ることはできません。これにより、IDは安定したアイデンティティとなります。

なりすましをどのように防ぐのでしょうか?

IDは公開されていますが、攻撃者はそれを利用できません。すべてのリクエストにはデジタル署名が含まれています。

  1. クライアントは、秘密のトークンを使用してリクエストのペイロードに署名します。
  2. サーバーは、署名と主張されたアドレスを受け取ります。
  3. サーバーは署名を使用してアドレスを復元します。
  4. 復元されたアドレスが主張されたアドレスと一致すれば、リクエストは有効です。

このプロセスはステートレスです。サーバーはユーザーを検証するためにアクティブなセッションのデータベースを必要としません。必要なのは数学的な計算だけです。

リプレイ攻撃を防ぐため、AgentAuthは60秒のタイムスタンプウィンドウを使用します。攻撃者が署名済みのリクエストを盗んだとしても、署名が無効になるまでの1分間しか利用できません。

重要な区別:AgentAuthは「認証(あなたは誰か?)」のためのものです。「認可(あなたに何が許可されているか?)」のためのものではありません。

これを公式のMCP OAuth 2.1仕様と混同しないでください。

  • 両端を制御しており、利用状況の追跡やティア制限のために安定したIDが必要な場合は、AgentAuthを使用してください。
  • 人間の代わりにサードパーティAPIへ権限を委譲する必要がある場合は、MCP OAuth 2.1を使用してください。

この2つは併用可能です。AgentAuthでエージェントを特定し、OAuthで外部データへのアクセスを管理します。

AgentAuthは、たった一つのログイン画面も必要とせず、秘密鍵を検証可能で安定したアイデンティティへと変換します。

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

オプションの学習コミュニティ: https://t.me/GyaanSetuAi