10. Considerazioni sulla sicurezza (Security Considerations)
10.1. Input non attendibile (Untrusted Input)
L'agent DEVE trattare tutti i messaggi ricevuti come input non attendibile e validare lunghezza e tipo di dati prima dell'analisi e delle operazioni. Le richieste che non superano l'analisi o vanno in overflow DEVONO essere rifiutate e DEVE essere restituito SSH_AGENT_FAILURE.
10.2. Limite di fiducia (Trust Boundary)
Qualsiasi parte all'interno del limite di fiducia dell'agent può utilizzare le chiavi caricate. Le chiavi private non dovrebbero essere caricate in una posizione esterna al limite di fiducia e che non può essere costretta ad accettarle. Prima di connettersi a un agent accessibile pubblicamente, l'utente DOVREBBE valutare il limite di fiducia dell'agent.
10.3. Controllo degli accessi all'endpoint (Endpoint Access Control)
L'endpoint dell'agent DEVE essere sottoposto al controllo degli accessi del sistema operativo per impedire l'accesso da parti esterne al limite di fiducia dell'agent. L'agent DOVREBBE, per impostazione predefinita, consentire la connessione solo ai processi dello stesso utente. Si raccomanda di limitare i permessi dell'endpoint dell'agent all'accesso esclusivo dell'utente. Su Microsoft Windows, la named pipe dell'agent DOVREBBE essere protetta tramite un elenco di controllo di accesso (ACL) appropriato.
10.4. Materiale della chiave privata (Private Key Material)
Il materiale della chiave privata DEVE rimanere nel processo dell'agent e NON DEVE essere esportato in chiaro. Le chiavi private caricate nell'agent DOVREBBERO essere crittografate tramite protezione della chiave (key protection) o una passphrase, ma ciò è deciso dalla politica del client.
10.5. Inoltro (Forwarding)
Quando un agent viene inoltrato a un sistema remoto, il sistema remoto può ottenere l'accesso all'interno del limite di fiducia dell'agent. L'utente DOVREBBE prestare attenzione all'accesso all'agent inoltrato. Il server SSH remoto PUÒ rifiutare le richieste di inoltro dell'agent.