2 x Szenarien, die etwas anders funktionieren:
SZENARIO 1:
Webbrowser (Client), der über HTTPS über SSL auf die Webseite (Server) zugreift.
Der Server verfügt über die .PFX-Datei, die beide Schlüssel enthält. Der Client stellt eine Verbindung zu einer Website auf dem Server her und sendet im Rahmen des SSL-Handshakes eine Kopie seines öffentlichen Schlüssels (.CER-Datei) an den Client. Der Client generiert dann einen "SESSION-Key" und verschlüsselt ihn mit dem vom Server empfangenen öffentlichen Schlüssel. Der Sitzungsschlüssel wird dann an den Server zurückgesendet und entschlüsselt, um seine Authentizität zu bestätigen. Bei Erfolg teilen sich sowohl der Client als auch der Server jetzt den "Sitzungsschlüssel" für die Kommunikation mit symmetrischer Verschlüsselung (dh sowohl Client als auch Server verschlüsseln und entschlüsseln jetzt alle Nachrichten untereinander mit demselben Sitzungsschlüssel. All dies ist der Fall Dies geschieht hinter den Kulissen im Hintergrund des Webbrowsers, zwischen dem Zeitpunkt, an dem Sie die URL in die Adressleiste eingeben, und dem Erscheinen der Webseite.
SZENARIO 2:
Anwendung (Client) stellt über SSH eine Verbindung zu einer FTP-Site (Server)
oder einem Remotedesktop
(Client zu Server) her
(beide Beispiele würden zutreffen).
In diesem Szenario sowohl der Client und Server werden ihre eigenen privaten und öffentliche Schlüsselpaare haben
(im Gegensatz zu den anderen Beispielen in diesem Thread erwähnt, dass nur erklären , wenn ein Server beiden Schlüssel hat, und der Kunde hat den öffentlichen Schlüssel nur)
Zu Erklärungszwecken - Beschriften Sie die Schlüsselpaare wie folgt:
A1 und A2 = jeweils als private und öffentliche Schlüssel des Servers
B1 und B2 = jeweils als private und öffentliche Schlüssel des Clients
Bei Verwendung dieses Modells wurde in früheren Beiträgen in diesem Thread darüber gesprochen, wann der Server über A1 und A2 ( .PFX-Datei ) verfügt und nur eine Kopie von A2 ( .CER ) für Clients freigegeben
Während FTP- oder SSH-Verbindungen (es gibt andere Beispiele) aus A1- , A2- , B1- und B2- Schlüsseln in der gesamten Client-Server-Kommunikation bestehen. Beispiel:
- Der Client stellt eine Verbindung zum FTP-Server her.
- Server Sendet eine Kopie seines öffentlichen Schlüssels (A2) an den Client.
- Der Client sendet seinen eigenen öffentlichen Schlüssel (B2) an den Server zurück und schließt den Handshake ab.
- Dies wird jetzt asymmetrische Verschlüsselung verwenden
Der Server verfügt jetzt über A1 ( sein eigenes privates ), A2 ( sein eigenes öffentliches ) und eine Kopie von B2 ( das öffentliche ) des Clients. Der
Client hat jetzt B1 ( sein eigenes privates ), B2 ( sein eigenes öffentliches ) und eine Kopie von A1 ( das eigene ) Öffentlich )
Client-zu-Server-Kommunikation: Der
Client verwendet A2 (öffentlicher Serverschlüssel), um für den Server gebundene Nachrichten zu verschlüsseln. Der Server entschlüsselt sie mit A1 (privater Serverschlüssel).
Server-zu-Client-Kommunikation: Der
Server verwendet B2 (öffentlicher Client-Schlüssel), um die für den Client gebundene Nachricht zu verschlüsseln. Der Client entschlüsselt sie mit B1 (privater Client-Schlüssel).
In Bezug auf die Dateitypen .CER und .PFX verfügt der Server über eine eigene .PFX-Datei, die nicht außerhalb Ihrer Organisation verteilt werden sollte. Stattdessen sollten Sie die .CER-Datei an Clients verteilen.
Weitere Informationen finden Sie hier:
https://www.digicert.com/ssl-cryptography.htm
und hier:
/server/107433/why-does-a-ssh-public-key-sit-on-the-server-and-not-with-the-client