AIエージェントに暗号学的な承認を追加したが、それでも安全ではなかった

Reddit r/artificial / 2026/4/18

💬 オピニオンIdeas & Deep AnalysisModels & Research

要点

  • チームはAIエージェントに「認可(authorization)」を暗号で追加し、各アクションを評価したうえで署名付きのALLOW/DENYを発行し、署名を検証してから実行する仕組みにしましたが、それでも安全性の問題は解消しませんでした。
  • 彼らは、承認が実際の実行内容に結び付いておらず(わずかに異なるアクションでも同じALLOWを再利用できてしまう)、さらに状態やサービスの対象にも結び付いていなかった点を見つけました。
  • ノンスを使ってリプレイを防ぐつもりでも、リプレイ対策の強制が実際の実行境界(execution boundary)で行われておらず、承認された判断が不適切に持ち回られ得る状況でした。
  • 重要な学びは、署名付きの「決定(decision)」を検証するのは主に監査(audit)の質問であり、安全のためには実行時点で強制される、検証可能な「実行契約(verifiable execution contract)」が必要だということです。
  • この投稿は、承認を意図の正確さ・実行状態・実行先ターゲットにどう結び付けているか、署名検証だけに頼らない設計について他者の考えを尋ねています。

私たちは、AIエージェントのシステムに「認可(authorization)」を追加する作業を進めています。

最初は、解決したように感じました:

- すべてのアクションが評価される

- 簽名付きのALLOW / DENYを取得できる

- 実行前に署名を検証する

見た感じ、とても堅牢ですよね?

そうではありませんでした。

私たちは、ほとんどすぐにいくつかの問題に直面しました:

  1. 承認が、実際の実行に結び付いていなかった

同じ「ALLOW」を、少しだけ異なるアクションに再利用できてしまいました。

  1. 状態のバインディングがなかった

状態 = X のときに承認が発行される

状態 = Y のときに実行が行われる

それでも検証は通ってしまった。

  1. オーディエンスのバインディングがなかった

サービスAに対する承認を、サービスBに対してリプレイできてしまいました。

  1. リプレイが、実際には境界(boundary)で強制されていなかった

ノンスがあっても、強制は実行が行われる場所で起きていませんでした。

つまり、私たちが持っていたのは:

署名された判断

必要だったのは:

検証可能な実行契約(execution contract)

違いは微妙ですが、決定的です:

- 「承認されたか?」 -> 監査(audit)の問い

- 「実行できるか?」 -> 強制(enforcement)の問い

ほとんどのシステムは最初の問いに答えます。

実際に2つ目を強制するシステムは、ほとんどありません。

みんなはこれをどう考えているのでしょう。

承認を次のどれに結び付けていますか:

- 正確な意図(exact intent)?

- 実行状態(execution state)?

- 実行ターゲット(execution target)?

それとも、単に署名を検証していて、うまく噛み合うことを期待しているだけでしょうか?

submitted by /u/docybo
[link] [comments]