SSL/TLS setzt sowohl symmetrische als auch asymmetrische Verschlüsselung ein. Die Hauptkommunikation zwischen Server und Client erfolgt mittels symmetrischer Verschlüsselung, für die ein Sitzungsschlüssel erforderlich ist, der nur für den Server und den Client bekannt ist. Der Austausch dieses Schlüssels geschieht über asymmetrische Verschlüsselung, die wie folgt abläuft:
- Der Client fordert eine sichere Verbindung an.
- Der Server erstellt ein Schlüsselpaar, bestehend aus einem öffentlichen und einem privaten Schlüssel. Nur der private Schlüssel kann Daten entschlüsseln, die mit dem öffentlichen Schlüssel verschlüsselt wurden.
- Der Server sendet den öffentlichen Schlüssel in einem SSL-Zertifikat an den Client.
- Der Client prüft das Zertifikat und bestätigt dessen Vertrauenswürdigkeit.
- Der Client erzeugt den Sitzungsschlüssel für die symmetrische Verschlüsselung und verschlüsselt ihn mit dem öffentlichen Schlüssel, um ihn sicher an den Server zu übermitteln.
- Der Server entschlüsselt den Sitzungsschlüssel mit seinem privaten Schlüssel.
Am Ende dieses Vorgangs verfügen sowohl Client als auch Server über den benötigten Sitzungsschlüssel für die sichere symmetrische Kommunikation. Die asymmetrische Verschlüsselung stellt sicher, dass ausschließlich Client und Server Zugriff auf den Sitzungsschlüssel haben.