PKI (Public Key Infrastructure; Infrastruktur öffentlicher Schlüssel) ist ein System, das durch die Verwendung digitaler Zertifikate eine sichere Kommunikation ermöglicht. Reflection unterstützt die Verwendung einer PKI sowohl für die Host- als auch für die Benutzerauthentifizierung.
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. Beispielsweise besitzt der Host für die Serverauthentifizierung den 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. Es ist nicht erforderlich, dass der Client eine Kopie des öffentlichen Hostschlüssels besitzt.
Die Zertifikatauthentifizierung behebt einige der Probleme, die bei der Authentifizierung mit öffentlichen Schlüsseln auftreten. Beispielsweise muss der Systemadministrator bei einer Hostauthentifizierung mit öffentlichen Schlüsseln entweder Hostschlüssel für jeden Server an die Hostspeicher der 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 Authentifizierung mit Zertifikaten genügt ein Stammzertifikat der Zertifizierungsstellen, um mehrere Hosts zu authentifizieren. Das erforderliche Zertifikat ist in vielen Fällen bereits im Windows-Zertifikatspeicher enthalten.
Genauso verhält es sich bei der Clientauthentifizierung mit öffentlichen Schlüsseln. Jeder öffentliche Schlüssel für den Client muss auf den Server hochgeladen werden, und der Server muss so konfiguriert sein, dass er diesen Schlüssel erkennt. Wird die Zertifikatauthentifizierung verwendet, genügt ein Stammzertifikat der Zertifizierungsstelle, um mehrere Clientbenutzer zu authentifizieren.