Transport Layer Security (TLS) / Secure Socket Layer (SSL) - Prof. Dr. Norbert Pohlmann
Transport Layer Security (TLS) / Secure Socket Layer (SSL) | |
![]() | Inhaltsverzeichnis Was ist SSL oder TLS?
Cyber-Sicherheitsfunktionen, die von TLS/SSL (der TLS-Verschlüsselung) angeboten werden, sind:
![]() Einbindung in die Kommunikationsarchitektur Schichteneinordnung der SSL-Verschlüsselung Praktische Relevanz von TLS/SSL Aufbau der TLS/SSL-SchichtDie TLS/SSL-Schicht besteht aus zwei Teil-Schichten:
![]() Der Client kann durch die Wahl des Ports entscheiden, ob die Kommunikation TLS/SSL-gesichert sein soll oder im Klartext: Zum Beispiel im Bild
TLS/SSL – Record Layer-ProtokollDas Record Layer Protokoll leitet die Klartext-Anwendungsdaten aus der Anwendungsschicht verschlüsselt an die Transportschicht weiter. Das Record Layer-Protokoll bietet zwei verschiedene Cyber-Sicherheitsdienste, die zusammen oder einzeln genutzt werden können: Zu den Aufgaben des Record-Protokolls gehören Ablauf in der Record-Schicht (TLS 1.2 und kleiner) ![]() TLS/SSL – Application Data ProtokollAnders als die anderen Protokolle oberhalb des Record Protokolls reicht das Application Data Protokoll die Anwendungsdaten transparent durch. Die Daten werden entsprechend der ausgehandelten Sicherheitsparameter aus dem Handshake Protokoll in dem Record Layer fragmentiert, komprimiert, gegen Verfälschung geschützt und verschlüsselt. TLS/SSL – ChangeCipherSpec (CCS) ProtokollDas ChangeCipherSpec (CCS) Protokoll wird bei Änderung des kryptografischen Algorithmus beziehungsweise der Parameter genutzt. Es enthält nur eine Meldung bestehend aus einem Byte mit dem Wert 1. CCS bewirkt, dass der Empfänger die während des Handshakes ausgehandelten Sicherheitsparameter für die aktive Sitzung übernimmt. TLS/SSL – Alert ProtokollDas Alert Protokoll dient der Signalisierung von besonderen Zuständen beziehungsweise Problemen wie Fehler oder Verbindungsabbruch. TLS/SSL – Handshake ProtokollDie Handshake-Nachrichten ermöglichen den Aufbau einer TLS/SSL-Verbindung. ![]() Der Protokollablauf bei TLS/SSL erfolgt in zwei Schritten: 1. Schritt: Verbindungsaufbau, unterteilt in 4 Phasen: 2. Schritt: Transfer-Mode TLS 1.3Im August 2018 wurde mit der RFC 8446 die neue Version TLS 1.3 offiziell veröffentlicht und wird seitdem von den großen Web-Browsern unterstützt. Die Ziele von TLS 1.3 sind eine erhöhte IT-Sicherheit, ein verkürzter Handshake und ein schneller Austausch von Nutzdaten. Die wichtigsten Neuerungen von TLS 1.3: Perfect Forward Secrecy Resumption für schnellere TLS Verbindung (0-RTT-Modus) Die Cipher Suites wurden deutlich reduziert
Siehe auch: Mode of Operation für Blockverschlüsselungsverfahren Besserer Schlüsselaustausch für mehr Integrität Der Handshake zum Verbindungsaufbau mit TLS 1.3 ![]() Schritt 1: Auch bei TLS 1.3 startet der Client mit einem ClientHello. Als Inhalt stehen im ClientHello eine Zufallszahl, die Session-ID, die „Angebote der: Cipher Suites“ des Clients; zusätzlich vermutet der Client, welchen Schlüsselaustauschalgorithmus der Server wohl wählen wird und sendet seinen „DH Public Key A“ mit. Durch eine Vermutung, welcher Schlüsselaustauschalgorithmus verwendet wird, wird ein Round-Trip eliminiert. Wenn der Server die Vermutung nicht bestätigt, ist ein neuer Versuch nötig, was der Server über einen HelloRetryRequest mit den unterstützten Gruppen signalisiert. Schritt 2: Der Server kann nun aus dem „DH Public Key A“ des Clients und seinem eigenen „DH Public Key B“ bereits den Sitzungsschlüssel berechnen. Er antwortet mit einer ServerHello-Nachricht. Diese enthält eine Zufallszahl, die Session-ID, die vom Server aus den vom Client angebotenen Cipher Suites ausgewählte Cipher Suite (Auswahl einer: Cipher Suite), den gewählten Schlüsselaustauschalgorithmus, den „DH Public Key B“ des Servers, das mit dem Sitzungsschlüssel verschlüsselte Zertifikat des Servers und die Signatur eines Teils der übertragenen Daten. Und da er nun bereits einen Sitzungsschlüssel besitzt, sendet er auch sofort seine „Finished-Nachricht“. Schritt 3: Der Client erzeugt aus seinem „DH Public Key A“ und dem des Servers „DH Public Key B“ den Sitzungsschlüssel, entschlüsselt damit das Zertifikat und prüft das Zertifikat und die Signatur. Ist die Prüfung erfolgreich, sendet er seine Finished-Nachricht. Schritt 4 ff: Die Nachrichten der HTTP-Verbindung werden mit dem Sitzungsschlüssel verschlüsselt. 0-RTT-Modus – Sitzungs-IDs Weitere Informationen zum Begriff |
![]() |