RSA

🔐 TLS-Handshake mit RSA – verständlich erklärt:
Ein Server erzeugt ein Schlüsselpaar, bestehend aus zwei Teilen:
-
Der Private Key bleibt ausschließlich auf dem Server und wird niemals übertragen.
-
Der Public Key hingegen darf öffentlich eingesehen und von jedem genutzt werden.
Wenn sich ein Client mit dem Server verbindet, erhält er zunächst das Zertifikat des Servers, in dem auch der Public Key enthalten ist.
Anschließend beginnt der TLS-Handshake:
-
-
Der Client sendet unverschlüsselt eine zufällige Zahl – den Client Random – an den Server und bittet gleichzeitig um den Server Random, der ebenfalls zufällig generiert wird.
Wichtig: Der Server erzeugt für jeden Client eine eigene Server-Random-Zahl, um die Verbindung individuell abzusichern. -
Nun erzeugt der Client den Pre-Master-Key, eine zufällige, meist 48 Byte große Zeichenfolge.
Diesen verschlüsselt er mit dem Public Key des Servers – so entsteht das sogenannte Encrypted Pre-Master Secret. -
Der Client überträgt das verschlüsselte Pre-Master Secret an den Server.
Da nur der Server im Besitz des passenden Private Keys ist, kann nur er diese Nachricht wieder entschlüsseln und so an den ursprünglichen Pre-Master-Key gelangen.
Dieses Verfahren nennt man asymmetrische Verschlüsselung, da zwei unterschiedliche Schlüssel (Public/Private) verwendet werden. -
Um die anschließende Kommunikation effizienter zu gestalten, wechseln Client und Server nun zu einem symmetrischen Verfahren:
-
Beide Seiten berechnen unabhängig voneinander einen Session-Key, der sich aus dem:
-
Pre-Master-Key
-
Client Random
-
Server Random
zusammensetzt.
-
-
Da beide denselben Berechnungsweg und dieselben Werte verwenden, entsteht identisch derselbe Session-Key auf beiden Seiten.
-
-
Ab diesem Moment kann die gesamte Kommunikation verschlüsselt mit dem Session-Key stattfinden – schnell, sicher und symmetrisch, solange die Verbindung aktiv ist.
-
🔒 Auswahl des Verschlüsselungsverfahrens und Beginn der sicheren Kommunikation
Nach Abschluss des TLS-Handshakes kommunizieren der Client und der Server über ein symmetrisches Verschlüsselungsverfahren, bei dem beide Seiten denselben Session-Key verwenden.
Bereits zu Beginn des Handshakes – im sogenannten Client Hello – übermittelt der Client eine Liste der Verschlüsselungsverfahren (Cipher Suites), die er unterstützt.
Diese Liste enthält Informationen darüber, welche Algorithmen für:
-
Schlüsselaustausch
-
symmetrische Verschlüsselung
-
und Nachrichtenauthentifizierung
vom Client verarbeitet werden können.
Der Server prüft diese Liste und wählt ein Verfahren aus, das sowohl er selbst als auch der Client unterstützen.
Hierbei kann der Administrator des Servers auch festlegen, welche Verfahren zulässig sind und welche abgelehnt werden – z. B. aus Sicherheitsgründen.
Nach Auswahl der Cipher Suite durch den Server wird diese dem Client im Server Hello mitgeteilt.
Ab diesem Moment steht fest, welches symmetrische Verschlüsselungsverfahren (z. B. AES, ChaCha20) für die Verbindung verwendet wird.
Sobald der Session-Key beidseitig berechnet wurde, beginnt die verschlüsselte Kommunikation:
-
Alle weiteren Nachrichten zwischen Client und Server werden automatisch mit dem Session-Key verschlüsselt und entschlüsselt
-
Dadurch ist die Verbindung ab diesem Punkt sicher vor Abhören und Manipulation
No Comments