Serverauthentifizierung mit Zertifikaten

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 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 digitale Signatur, 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:

  1. Der Secure Shell-Client stellt eine Verbindung her.
  2. Der Host sendet sein Zertifikat an den Client.
  3. 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.)

  4. Der Client prüft, ob die Serverinformationen im Zertifikat des Hosts mit dem Host übereinstimmen, zu dem die Verbindung aufgebaut wird.
  5. 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 Hashwert.
  6. 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.
  7. 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.