Transport Layer Security (TLS) / Secure Socket Layer (SSL) - Prof. Dr. Norbert
Pohlmann
Transport Layer Security (TLS) / Secure Socket Layer (SSL)
Der vorherrschende Ansatz für die Transportverschlüsselung im Web ist die Verwendung von TLS (Transport Layer Security) / SSL (Secure Socket Layer) – TLS/SSL.TLS/SSL ist der Internet-Sicherheitsstandards der Internet Engineering Task Force (IETF) für die Cyber-Sicherheit auf der Transport-Ebene. Dabei ist TLS/SSL anwendungsunabhängig und setzt logisch auf einem Transportprotokoll auf.
Cyber-Sicherheitsfunktionen, die von TLS/SSL (der TLS-Verschlüsselung) angeboten werden, sind:
Außerdem bietet TLS/SSL auch die Komprimierung der Daten an.
Schichteneinordnung der SSL-Verschlüsselung Die TLS/SSL-Schicht befindet sich zwischen der Transport- und Anwendungsschicht. Sie übernimmt zusätzlich die Aufgaben der Sitzungs- und Präsentationsschicht (Schichten 5 und 6) des ISO/OSI-Modells. Ein wesentlicher Vorteil der Sitzungsschicht gegenüber der Transportschicht besteht darin, dass Zustandsinformationen über einen längeren Zeitraum und über verschiedene Einzelverbindungen hinweg gespeichert und für die Verwaltung genutzt werden können. Für das zustandslose HTTP-Protokoll, das für jeden Zugriff auf eine Webseite eine neue TCP-Verbindung aufbauen kann, bedeutet das, dass mehrere solcher Verbindungen zu einer TLS/SSL-Sitzung gebündelt und damit effizienter als die jeweiligen Einzelverbindungen verwaltet werden können. Die TLS/SSL-Protokolle sind erweiterbar und flexibel, um Zukunftssicherheit vor allem bei den Verschlüsselungsalgorithmen zu gewährleisten. TLS/SSL arbeitet transparent, sodass es leicht eingesetzt werden kann, um Anwendungsprotokollen/-diensten, ohne eigene Cyber-Sicherheitsmechanismen, vertrauenswürdige Verbindungen zur Verfügung zu stellen.
Praktische Relevanz von TLS/SSL Da TLS/SSL in allen wichtigen Technologien wie Browsern, Web-Servern, E-Mail-Servern, SIP-Server, usw. eingebunden ist, wird TLS/SSL faktisch als Standard für die Transportverschlüsselung im Internet verwendet.
Aufbau der TLS/SSL-Schicht Die TLS/SSL-Schicht besteht aus zwei Teil-Schichten:
höhere Schicht mit den TLS/SSL-Teil-Protokollen (CCS, Alert, Handshake, Application)
Record-Schicht mit dem Record Layer-Protokoll
Der Client kann durch die Wahl des Ports entscheiden, ob die Kommunikation TLS/SSL-gesichert sein soll oder im Klartext: Zum Beispiel im Bild
Port 80: http-Kommunikation im Klartext
Port 443: http-Kommunikation TLS/SSL-gesichert
TLS/SSL – Record Layer-Protokoll Das 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: • Client-to-Server-Verschlüsselung zwischen den beiden Transport-Endpunkten • Sicherung der Nachrichten-Integrität und –Authentizität
Zu den Aufgaben des Record-Protokolls gehören • die Fragmentierung der Klartext-Anwendungsdaten der Anwendungsschicht, • Kompression der resultierenden Fragmente, • Berechnung von HMACs über die (komprimierten)Fragmente und • Verschlüsselung der TLS/SSL-Records (komprimierte Fragment mit HMAC).
Ablauf in der Record-Schicht Die Record-Schicht hat die Aufgabe, Anwendungsdaten in TLS/SSL-Records zu fragmentieren. Optional werden die Fragmente dann komprimiert. Das Komprimierungsverfahren wird beim Handshake ausgehandelt. Diese (komprimierten) Fragmente + Sequenznummer werden dann mit einer HMAC-Funktion gehasht. Die (komprimierten) Fragmente sowie der HMAC werden dann verschlüsselt und als TLS/SSL-Records an die Transportschicht übergeben.
TLS/SSL – Application Data Protokoll Anders 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) Protokoll Das 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 Protokoll Das Alert Protokoll dient der Signalisierung von besonderen Zuständen beziehungsweise Problemen wie Fehler oder Verbindungsabbruch.
TLS/SSL – Handshake Protokoll Die Handshake-Nachrichten ermöglichen den Aufbau einer TLS/SSL-Verbindung. Das Handshake Protokoll dient zur Identifikation und Authentifizierung der Kommunikationspartner sowie zum Aushandeln kryptografischer Algorithmen, Schlüssel und Parameter, die im TLS/SSL Record Layer Protokoll verwendet werden und zum Austausch benötigter vertrauenswürdiger Informationen. Das Handshake Protokoll wird in 4 Phasen unterteilt.
Der Protokollablauf bei TLS/SSL erfolgt in zwei Schritten:
1. Schritt: Verbindungsaufbau, unterteilt in 4 Phasen: – 1. Phase: Aushandlung der Sicherheitsparameter. – 2. Phase: Serverauthentisierung (Optional) und Schlüsselaustausch – 3. Phase: Clientauthentisierung (Optional) und Schlüsselaustausch – 4. Phase: Beendigung des Handshakes
2. Schritt: Transfer-Mode Verschlüsselte und integritätsgesicherte Datenübertragung
Weitere Informationen zum Begriff “Transport Layer Security (TLS) – Secure Socket Layer (SSL)”: