本文へ移動
AgentPassGitHubで見る

セキュリティモデル

Trustは
ひとつのswitchではない。

AgentPassは許可する操作を小さく、観測可能で、停止しやすくする設計です。このページは境界と限界を説明するもので、production-readyを主張するものではありません。

セキュリティ上の約束

狭い権限。
独立した検証。

AgentPassはauthorizationとauditのlayerです。Native endpointが最終権限を持ち、Cloudや人間のcontrolは権限を狭めるか失効させることだけができます。

01

鍵は境界の内側に残る

意図されたmacOS native pathではprivate signing materialはexport不可で、Agentが受け取るのはkey bytesではなく署名結果です。

02

権限はAgentより狭い

Global policyとAgent-bound scopeを交差させます。Repository、branch、remote、operation、sessionのすべてが判断材料です。

03

状態の欠落は拒否

期限切れ・失効済みcontrol state、invalid request、replay、broker unavailable、audit失敗のいずれでも署名を停止します。

脅威モデル

すべてのclaimには
境界がある。

これは製品が行うsecurity decisionです。脅威がendpoint policy boundaryの外にある場合、『完全には保護しない』と明示します。

脅威、control、結果
脅威対策期待する結果
未許可のrepository、branch、remoteLocal Git contextとpolicy check署名前に拒否
偽造・期限切れ・replayされたAgent requestAgent identity、timestamp、audience、nonce検証Policy使用前に拒否
Cloud stateが古い・失効・利用不能Endpoint freshnessとsigned control stateFail closed
Private signing keyのコピー試行Native modeのhardware-backed non-exportable keyPrivate bytesを返さない
Malwareが許可済み操作を呼び出すPolicyとaudit boundaryのみ完全には保護しない

Fail closed

判断できなければ、
署名しない。

Fail-closed behaviorにより無人作業を予測可能にします。Dependencyが利用不能ならsilent fallbackではなく操作を停止します。

01

Requestがreplayされた

Nonce、timestamp、Agent identityの確認で再利用を拒否します。

02

Contextが一致しない

Repository、branch、remote、payload、operationのいずれかがpolicy外です。

03

Authorityが古い

期限切れsession、失効Agent、古いsigned control stateでrequestを停止します。

04

Auditを記録できない

鍵使用の前後でintentとresultを永続化できなければ署名を拒否します。

非主張

Security boundaryは
正直な限界でもある。

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を確認