鍵は境界の内側に残る
意図されたmacOS native pathではprivate signing materialはexport不可で、Agentが受け取るのはkey bytesではなく署名結果です。
セキュリティモデル
AgentPassは許可する操作を小さく、観測可能で、停止しやすくする設計です。このページは境界と限界を説明するもので、production-readyを主張するものではありません。
セキュリティ上の約束
AgentPassはauthorizationとauditのlayerです。Native endpointが最終権限を持ち、Cloudや人間のcontrolは権限を狭めるか失効させることだけができます。
意図されたmacOS native pathではprivate signing materialはexport不可で、Agentが受け取るのはkey bytesではなく署名結果です。
Global policyとAgent-bound scopeを交差させます。Repository、branch、remote、operation、sessionのすべてが判断材料です。
期限切れ・失効済みcontrol state、invalid request、replay、broker unavailable、audit失敗のいずれでも署名を停止します。
脅威モデル
これは製品が行うsecurity decisionです。脅威がendpoint policy boundaryの外にある場合、『完全には保護しない』と明示します。
| 脅威 | 対策 | 期待する結果 |
|---|---|---|
| 未許可のrepository、branch、remote | Local Git contextとpolicy check | 署名前に拒否 |
| 偽造・期限切れ・replayされたAgent request | Agent identity、timestamp、audience、nonce検証 | Policy使用前に拒否 |
| Cloud stateが古い・失効・利用不能 | Endpoint freshnessとsigned control state | Fail closed |
| Private signing keyのコピー試行 | Native modeのhardware-backed non-exportable key | Private bytesを返さない |
| Malwareが許可済み操作を呼び出す | Policyとaudit boundaryのみ | 完全には保護しない |
Fail closed
Fail-closed behaviorにより無人作業を予測可能にします。Dependencyが利用不能ならsilent fallbackではなく操作を停止します。
Nonce、timestamp、Agent identityの確認で再利用を拒否します。
Repository、branch、remote、payload、operationのいずれかがpolicy外です。
期限切れsession、失効Agent、古いsigned control stateでrequestを停止します。
鍵使用の前後でintentとresultを永続化できなければ署名を拒否します。
非主張
Password managerの代替や任意のsecret storeではありません。
汎用署名、code approval、Git push、SSH login serviceではありません。
認可済みAgent process tree内のmalicious codeから完全隔離するものではありません。
Unsignedまたは未qualified installerの安全性を証明するものではありません。
実装詳細、security issue、現在のrelease postureはcanonical core repositoryで確認してください。
GitHubでAgentPassを確認