Die Zertifikatauthentifizierung behebt einige der Probleme, die bei der Authentifizierung mit öffentlichen Schlüsseln auftreten. Bei einer Hostauthentifizierung mit öffentlichen Schlüsseln muss der Systemadministrator entweder den öffentlichen Hostschlüssel für jeden Server an die Liste der bekannten Hosts aller einzelnen Clients verteilen, oder er muss darauf vertrauen, dass die Clientbenutzer die Hostidentität korrekt bestätigen, wenn sie die Verbindung zu einem unbekannten Host aufbauen. Bei der Zertifikatauthentifizierung wird dieses Problem vermieden, indem eine vertrauenswürdige dritte Partei, die sogenannte Zertifizierungsstelle (CA), eingesetzt wird, um die Gültigkeit der vom Host gesendeten Informationen zu prüfen.
Wie bei der Authentifizierung mit öffentlichen Schlüsseln werden bei der Zertifikatauthentifizierung Schlüsselpaare aus privaten und öffentlichen Schlüsseln zur Prüfung der Hostidentität verwendet. Bei der Zertifikatauthentifizierung sind die öffentlichen Schlüssel in digitalen Zertifikaten Digitale Zertifikate sind ein wesentlicher Bestandteil einer PKI (Public Key Infrastructure; Infrastruktur öffentlicher Schlüssel). Digitale Zertifikate (auch als X.509-Zertifikate bezeichnet) werden von einer Zertifizierungsstelle ausgestellt, die die Richtigkeit der im Zertifikat enthaltenen Informationen sicherstellt. Jedes Zertifikat enthält Identifizierungsinformationen über den Zertifikatseigentümer, eine Kopie des öffentlichen Schlüssels des Zertifikatseigentümers (zum Ver- und Entschlüsseln von Nachrichten und digitalen Signaturen) und die von der Zertifizierungsstelle erstellte digitale Signatur des Zertifikatsinhalts. Anhand dieser Signatur bestätigt der Empfänger, dass das Zertifikat nicht manipuliert wurde und vertrauenswürdig ist. enthalten, und es werden zwei Schlüsselpaare verwendet; der Host besitzt einen privaten Schlüssel und die Zertifizierungsstelle den zweiten. Der Host erhält von der Zertifizierungsstelle ein Zertifikat. Dieses Zertifikat enthält Informationen über den Host, eine Kopie des öffentlichen Hostschlüssels sowie eine Digitalsignatur Bestätigt die Authentizität und die Integrität einer übermittelten Nachricht. Normalerweise besitzt der Absender den privaten Schlüssel und/oder ein Schlüsselpaar aus öffentlichem oder privatem Schlüssel. Der Empfänger besitzt den öffentlichen Schlüssel. Zum Erstellen der Signatur errechnet der Absender aus der Nachricht einen Hashwert und verschlüsselt diesen Wert mithilfe seines privaten Schlüssels. Der Empfänger entschlüsselt die Signatur mit dem öffentlichen Schlüssel des Absenders und berechnet den Hashwert der Nachricht selbst noch einmal. Wenn der berechnete Wert mit dem entschlüsselten Wert übereinstimmt, kann der Empfänger sicher sein, dass der Absender den privaten Schlüssel besitzt und dass die Nachricht während der Übertragung nicht geändert wurde. , die mit dem privaten Schlüssel der Zertifizierungsstelle erstellt wurde. Während des Authentifizierungsvorgangs wird dieses Zertifikat an den Client gesendet. Um die Integrität der vom Host empfangenen Information zu überprüfen, muss der Client eine Kopie des öffentlichen Schlüssels der Zertifizierungsstelle besitzen, der im Stammzertifikat der Zertifizierungsstelle enthalten ist.
Das Installieren von CA-Stammzertifikaten zum Überprüfen der Hostidentität weist mehrere Vorteile gegenüber dem Installieren und Konfigurieren von öffentlichen Hostschlüsseln auf:
Sie können ein einzelnes Zertifikat der Zertifizierungsstelle zum Authentifizieren mehrerer Server verwenden.
Administratoren können die Gruppenrichtlinien von Windows zum Installieren der Zertifikate von Zertifizierungsstellen auf Windows-Clients verwenden.
Stammzertifikate für kommerziell erhältliche Zertifikate können bereits auf Client-Computern installiert sein. Windows-Computer enthalten einige vorinstallierte Stammzertifikate zur Verwendung mit dem Internet Explorer. Für SSL/TLS-Verbindungen führt Reflection eine Prüfung für Zertifikate in diesem Zertifikatspeicher standardmäßig aus.
Falls erforderlich, kann der Host ein neues Zertifikat von derselben Zertifizierungsstelle ohne erforderliche Änderung auf Clientsystemen erhalten.
Für die Zertifikatauthentifizierung von Servern gilt folgender Ablauf:
Der Secure Shell-Client stellt eine Verbindung her.
Der Host sendet sein Zertifikat an den Client.
Der Client verwendet das Stammzertifikat der Zertifizierungsstelle, um die Gültigkeit des Serverzertifikats zu prüfen.
HINWEIS:Im Speicher der zuverlässigen Stammzertifikate des Clients muss bereits eine Kopie des Zertifikats der Zertifizierungsstelle vorhanden sein. (Sie können ein einzelnes Zertifikat der Zertifizierungsstelle zum Authentifizieren mehrerer Server verwenden.)
Der Client prüft, ob die Serverinformationen im Zertifikat des Hosts mit dem Host übereinstimmen, zu dem die Verbindung aufgebaut wird.
Um zu überprüfen, ob der Host über den privaten Schlüssel verfügt, der mit dem öffentlichen Schlüssel im Zertifikat übereinstimmt, sendet der Client eine Beschränkung (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 basierend auf der Beschränkungsnachricht eine digitale Signatur. Hierfür berechnet der Server den Nachrichtenhash und verschlüsselt diesen Hashwert mit seinem privaten Schlüssel. Anschließend verknüpft der Server diese digitale Signatur mit der Beschränkung und schickt die signierte Nachricht zurück an den Client.
Der Client entschlüsselt die Signatur mithilfe des öffentlichen Schlüssels des Servers und vergleicht den Hashwert mit dem, den er selbst errechnet hat. Wenn die Werte übereinstimmen, war die Authentifizierung erfolgreich.
HINWEIS:Der Reflection-Client kann Hostzertifikate entweder mithilfe des Reflection-Zertifikatspeichers oder des Windows-Zertifikatspeichers prüfen.