10. Sicherheitsbetrachtungen (Security Considerations)
10.1. Nicht vertrauenswürdige Eingaben (Untrusted Input)
Der Agent MUSS alle empfangenen Nachrichten als nicht vertrauenswürdige Eingaben behandeln und Länge sowie Datentyp vor dem Parsen und Verarbeiten validieren. Anfragen, deren Parsen fehlschlägt oder die überlaufen, MÜSSEN abgelehnt und es MUSS SSH_AGENT_FAILURE zurückgegeben werden.
10.2. Vertrauensgrenze (Trust Boundary)
Jede Partei innerhalb der Vertrauensgrenze des Agent kann die geladenen Schlüssel verwenden. Private Schlüssel sollten nicht an einen Ort geladen werden, der außerhalb der Vertrauensgrenze liegt und nicht gezwungen werden kann, sie anzunehmen. Bevor eine Verbindung zu einem öffentlich zugänglichen Agent hergestellt wird, SOLLTE der Benutzer die Vertrauensgrenze des Agent bewerten.
10.3. Endpunktzugriffskontrolle (Endpoint Access Control)
Der Agent-Endpunkt MUSS der Zugriffskontrolle des Betriebssystems unterliegen, um den Zugriff durch Parteien außerhalb der Vertrauensgrenze des Agent zu verhindern. Der Agent SOLLTE standardmäßig nur Prozesse desselben Benutzers zulassen. Es wird empfohlen, die Berechtigungen des Agent-Endpunkts auf ausschließlich benutzerbezogenen Zugriff zu beschränken. Unter Microsoft Windows SOLLTE die Named Pipe des Agent durch eine geeignete Zugriffssteuerungsliste (ACL) geschützt werden.
10.4. Privates Schlüsselmaterial (Private Key Material)
Privates Schlüsselmaterial MUSS im Agent-Prozess verbleiben und DARF NICHT im Klartext exportiert werden. In den Agent geladene private Schlüssel SOLLTEN mit Schlüsselschutz (key protection) oder einem Passwort (passphrase) verschlüsselt sein, was jedoch der Client-Richtlinie obliegt.
10.5. Weiterleitung (Forwarding)
Wenn ein Agent an ein entferntes System weitergeleitet wird, kann das entfernte System Zugriff innerhalb der Vertrauensgrenze des Agent erlangen. Der Benutzer SOLLTE bei weitergeleitetem Agent-Zugriff Vorsicht walten lassen. Der entfernte SSH-Server KANN Agent-Weiterleitungsanfragen ablehnen.