Reflection for Secure IT unterstützt zwei Arten der Serverauthentifizierung: öffentliche Schlüssel und Zertifikate (eine Sonderform der Authentifizierung über öffentliche Schlüssel).
Wenn zum Nachweis der Hostidentität die Authentifizierung mit öffentlichem Schlüssel verwendet wird, gilt folgender Ablauf:
Der Secure Shell-Client stellt eine Verbindung her.
Der Server sendet seinen öffentlichen Schlüssel an den Client.
Der Client sucht nach diesem Schlüssel im Schlüsselspeicher des registrierten Hosts.
Situation |
Ergebnis |
---|---|
Der Client findet den Hostschlüssel, und seine Kopie stimmt mit dem vom Server gesendeten Schlüssel überein. |
Der Authentifizierungsvorgang wird fortgeführt. |
Der Client findet den Hostschlüssel nicht. |
Der Client gibt einen Fingerabdruck des Hostschlüssels und eine Meldung darüber aus, dass der Host unbekannt ist. Sofern die Clientkonfiguration ein Akzeptieren unbekannter Schlüssel durch den Benutzer zulässt (Standardeinstellung), kann der Benutzer den Schlüssel verwenden, und der Authentifizierungsvorgang wird fortgesetzt. Wenn aber festgelegt ist, dass die Prüfung des Hostschlüssels zu erzwingen ist, beendet der Client die Verbindung. |
Der Client findet den Hostschlüssel, und seine Kopie stimmt nicht mit dem vom Server gesendeten Schlüssel überein. |
Der Client gibt eine Warnung darüber aus, dass der Schlüssel nicht zu dem vorhandenen Schlüssel passt und zeigt den vom Server gesendeten Fingerabdruck an. Sofern die Clientkonfiguration ein Akzeptieren unbekannter Schlüssel durch den Benutzer zulässt (Standardeinstellung), kann der Benutzer den neuen Schlüssel verwenden. Wenn aber festgelegt ist, dass die Prüfung des Hostschlüssels zu erzwingen ist, beendet der Client die Verbindung. |
Um zu überprüfen, ob der Server wirklich über den privaten Schlüssel verfügt, der mit dem empfangenen öffentlichen Schlüssel übereinstimmt, sendet der Client eine Beschränkungsnachricht (eine willkürliche Nachricht) an den Server und berechnet auf der Grundlage dieses Meldungstexts einen Hash Ein Hashwert, auch Nachrichtenhash genannt, ist eine Zeichenfolge mit fester Länge, die aus einer beliebig großen Menge digitaler Daten gebildet wird. Der Hashwert ist wesentlich kleiner als die Originaldaten. Aufgrund der zu seiner Erstellung verwendeten Formel ist es statistisch unwahrscheinlich, dass andere Daten den gleichen Hashwert ergeben. .
Der Server erstellt mit dieser Challenge-Nachricht eine digitale Signatur. Dafür berechnet der Server den Nachrichtenhash und verschlüsselt diesen Hashwert mit seinem privaten Schlüssel. Der Server verknüpft diese digitale Signatur mit der ursprünglichen Challenge-Nachricht und schickt die signierte Nachricht zurück an den Client.
Der Client entschlüsselt die Signatur mithilfe seines privaten Schlüssels und vergleicht den Hashwert mit dem, den er selbst errechnet hat. Wenn die Werte übereinstimmen, war die Authentifizierung erfolgreich.