10. セキュリティ検討事項 (Security Considerations)
10.1. 信頼できない入力 (Untrusted Input)
agent は、受信したすべてのメッセージを信頼できない入力として扱わなければならず (MUST)、解析および操作の前に長さおよびデータ型を検証しなければなりません (MUST)。解析に失敗した、またはオーバーフローする要求は拒否し、SSH_AGENT_FAILURE を返します。
10.2. 信頼境界 (Trust Boundary)
agent の信頼境界内のあらゆる主体は、ロードされた鍵を使用できます。秘密鍵は、信頼境界外で強制的に受け入れられてしまうような場所にはロードすべきではありません (SHOULD NOT)。公的にアクセス可能な agent に接続する前に、ユーザーは agent の信頼境界を評価すべきです (SHOULD)。
10.3. エンドポイントアクセス制御 (Endpoint Access Control)
agent エンドポイントは、agent の信頼境界外の主体によるアクセスを防ぐため、オペレーティングシステムのアクセス制御を受けなければなりません (MUST)。agent は、既定で同一ユーザーのプロセスのみの接続を許可すべきです (SHOULD)。agent エンドポイントの権限は、ユーザーのみのアクセスに制限することが推奨されます。Microsoft Windows 上では、agent の名前付きパイプは適切なアクセス制御リスト (ACL) によって保護されるべきです (SHOULD)。
10.4. 秘密鍵素材 (Private Key Material)
秘密鍵素材は agent プロセス内に留まらなければならず (MUST)、平文でエクスポートしてはなりません (MUST NOT)。agent にロードされる秘密鍵は、鍵保護 (key protection) またはパスフレーズ (passphrase) によって暗号化されるべきです (SHOULD) が、これはクライアントポリシーの決定に委ねられます。
10.5. 転送 (Forwarding)
agent をリモートシステムへ転送した場合、リモートシステムは agent の信頼境界内へのアクセス権を得る可能性があります。ユーザーは転送された agent アクセスに対して注意すべきです (SHOULD)。リモート SSH サーバーは、agent 転送要求を拒否してもかまいません (MAY)。