AI News HubLIVE
站内改写2 分鐘閱讀

Proveyouragent:AI代理的加密身份(Ed25519和DPoP)

Proveyouragent是一個Python庫,為AI代理提供加密身份,使用Ed25519密鑰對和DPoP(RFC 9449)請求籤名,確保每個請求都來自合法代理。它解決了代理身份驗證、授權和防重放攻擊的問題。

來源Hacker News AI作者: lujainkhalil

proveyouragent是一個輕量級的Python庫,旨在為AI代理提供強大的加密身份系統。它通過Ed25519密鑰對、OAuth 2.0動態客户端註冊(RFC 7591)和DPoP(RFC 9449)的結合,讓每個代理都能在調用API、讀寫數據庫或發送郵件時,向服務證明其身份和權限。

核心問題:AI代理通常使用硬編碼的服務賬户令牌或借用用户憑證,這導致服務無法得知是哪個代理發起的請求、誰對代理負責、代理被允許做什麼,以及請求是否來自被盜的令牌。proveyouragent通過一套簡單的原語解決了這些痛點。

工作原理

每個代理啓動時生成一個Ed25519密鑰對,私鑰永遠留在代理內,公鑰則發佈在公開URL上,以便服務無需回撥即可驗證。代理的身份文檔是一個簽名的JWT(軟件聲明),聲明瞭所有者、代理名稱、版本、權限範圍以及公鑰位置。

請求籤名採用DPoP(OAuth 2.0的證明密鑰持有者)機制。每個請求附帶一個新鮮的DPoP證明,其中包含HTTP方法和URI的簽名,從而將令牌綁定到特定的代理和請求,防止令牌被盜後重放。

服務端驗證四個要素:軟件聲明簽名是否有效、聲明是否過期、代理是否擁有所需權限、DPoP證明是否新鮮且未被使用過。驗證結果返回VerifiedAgent對象或VerificationError,避免異常處理。

權限委託鏈

proveyouragent支持權限委託,允許編排代理將其權限的子集委託給子代理。委託鏈通過加密方式鏈接,權限只能逐級縮小,不能擴大。例如,人類用户授權編排代理讀取發票和寫入支付,編排代理可以委託讀取發票的權限給一個摘要代理,但無法委託刪除權限。

部署與擴展

庫內置了內存重放緩存,適用於單進程開發。生產環境可切換為Redis緩存,只需一行代碼即可集成。中間件模式也支持FastAPI等Web框架,自動為每個路由添加身份驗證。

設計哲學

項目堅持只使用Ed25519算法,不進行算法協商,以減少複雜性和攻擊面。信任錨點基於DNS,而非區塊鏈或DID基礎設施。操作者只需在域名下的公開URL發佈公鑰即可,開發者無需學習新技術。

總的來説,proveyouragent為AI代理的世界提供了一種標準化、安全且簡潔的身份驗證方案。