TLS (Transport Layer Security)

In den Anfängen des Internet waren Aspekte der Datensicherheit nicht so wichtig wie heute. Die gesamte Kommunikation wurde offen und unverschlüsselt von einem Rechner zum anderen übertragen. Das kann man sich wie eine Postkarte vorstellen: Jeder Postbote kann sie lesen.

Das TLS-Protokoll – auch SSL/TLS genannt – führte die Verschlüsselung der übermittelten Inhalte ein. Um beim genannten Vergleich zu bleiben, entspricht diese Verschlüsselung einem versiegelten Briefumschlag, den nur der rechtmäßige Empfänger öffnen kann.

Was ist TLS?

Die Abkürzung TLS steht für Transport Layer Security, was übersetzt „Transportschicht-Sicherheit“ bedeutet. Diese Bezeichnung bezieht sich auf die „Transportschicht“ des TCP/IP-Modells. TLS ist ein Verfahren, das die Datenströme im Internet verschlüsselt, damit sie nur von den berechtigten Empfängern gelesen werden können. Der frühere Name lautete SSL (Secure Socket Layer); weil dieses Kürzel nach wie vor besser bekannt ist als TLS, wird TLS häufig mit dem Doppelnamen „SSL/TLS“ bezeichnet.

Wie funktioniert TLS?

TLS verschlüsselt den gesamten Datenverkehr, der über TCP abgewickelt wird, mit einem symmetrischen Verschlüsselungsverfahren.

Hinweis

Was in der Praxis einfach klingt, ist in der Realität komplizierter. Das Grundproblem liegt darin, dass der Server dem Client den Schlüssel mitteilen muss – und zwar, bevor die Kommunikation mit TLS gesichert ist. Wer verschlüsselte Mailanhänge versendet, kennt dieses Problem: Man verschlüsselt eine Datei und muss dem Empfänger das geheime Passwort mitteilen, z. B. per Telefon.

Das TLS-Protokoll wendet das folgende Verfahren an, um dieses Problem zu lösen:

  1. Wenn der Client – beispielsweise ein Webbrowser – den Webserver kontaktiert, sendet dieser ihm zuerst sein Zertifikat zu. Dieses SSL-Zertifikat beweist, dass der Server authentisch ist und nicht etwa eine falsche Identität vortäuscht.
     
  2. Der Client prüft das Zertifikat auf Gültigkeit und sendet dem Server eine Zufallszahl, verschlüsselt mit dem öffentlichen Schlüssel (Public Key) des Servers.
     
  3. Der Server erzeugt aus dieser Zufallszahl den Sitzungsschlüssel (Session Key), mit dem die Kommunikation verschlüsselt werden soll. Da die Zufallszahl vom Client stammt, kann dieser sicher sein, dass der Sitzungsschlüssel tatsächlich vom adressierten Server stammt.
     
  4. Der Server sendet den Sitzungsschlüssel dem Client zu, und zwar in verschlüsselter Form. Diese Verschlüsselung erfolgt mithilfe des Diffie-Hellmann-Schlüsselaustauschs.
     
  5. Nun können beide Parteien ihre Daten mit dem Sitzungsschlüssel gesichert versenden.

Der Grund, weshalb die asymmetrische Verschlüsselung nur für das Übertragen des Sitzungsschlüssels (aber nicht für die Verschlüsselung der Datenströme selbst) verwendet wird, ist der Geschwindigkeitsvorteil; die asymmetrische Verschlüsselung ist relativ langsam und würde die Datenkommunikation verzögern.

Die Vor- und Nachteile von TLS

TLS ist eine elegante Lösung, um den Datenverkehr im Web sicherer zu gestalten. Denn sie verlangt von den beiden Parteien nicht, dass sie die Inhalte – z. B. Formulardaten – selbst verschlüsseln. Stattdessen genügt es, wenn der Verkehr über das TLS-Protokoll geleitet wird, unabhängig von den Betriebssystemen und Software-Anwendungen der Beteiligten. Sämtliche Datenströme werden dann automatisch während der Übertragung verschlüsselt.

Der Preis für die Sicherheit ist ein etwas langsamerer Verbindungsaufbau, da die oben beschriebenen Prozessschritte – Zertifikat, Zufallszahl, Schlüsselaustausch – rechenintensiv sind.

Einsatzgebiete von TLS

Wie erwähnt ist TLS universell einsetzbar, da es unabhängig ist von Anwendungen und Betriebssystemen. Dementsprechend existiert für eine Vielzahl von Anwendungsprotokollen eine TLS-gesicherte Version. Das Benennungsschema ist ganz einfach: Hinter den Namen des Protokolls wird der Buchstabe „S“ gesetzt, wenn das Protokoll mittels TLS kommuniziert.

Das wichtigste Anwendungsgebiet von TLS ist das World Wide Web, genauer gesagt das HTTP-Protocoll. Dessen verschlüsselte Variante heißt HTTPS.

Daneben sind die folgenden, häufig anzutreffenden Anwendungsfälle zu nennen:

  • POP3S: E-Mails vom Server abholen mit dem POP3-Protokoll
  • IMAPS: Posteingang mit dem Server synchronisieren mittels dem IMAP-Protokoll
  • SMTPS: E-Mails versenden
  • FTPS: Filetransfer via FTP-Protokoll
  • SIPS: Voice-over-IP-Telefonie über das SIP-Protokoll
  • IRCS: Verschlüsselte Chats

OpenVPN, eine freie Software zum Aufbau eines Virtual Private Networks (VPN), bedient sich ebenfalls des TLS-Protokolls.

Implementierungen von TLS

Wichtige Implementierungen von TLS sind:

  • OpenSSL – die weitaus häufigste Implementierung, die für die meisten HTTPS-Websites verwendet wird
  • GnuTLS (Free Software Foundation)
  • LibreSSL (OpenBSD)
  • NSS (Network Security Services)
  • BoringSSL (Google)
  • Cryptlib (Peter Gutmann)
  • Botan (BSD-Lizenz, Jack Lloyd)
  • JSSE (Java Secure Socket Extension, Oracle)
  • S2n (Amazon)

Diese Liste ist nicht abschließend. Ausführliche Informationen zu den TLS-Implementierungen liefert die englischsprachige Wikipedia .

Bekannte TLS-Angriffe

Auch TLS ist nicht vor Angriffen und Lecks sicher. Bekannte Angriffspunkte sind die folgenden:

  • Programmierfehler: Berühmt geworden ist der Heartbleed Bug, ein schwerwiegender Programmfehler in den früheren Versionen von OpenSSL. Er wurde 2014 behoben.
  • Schwache Verschlüsselungen: Als Folge der Exportbeschränkungen von Kryptografie der USA wurden „exporttaugliche“ Versionen entwickelt, die leichter zu knacken waren als die ursprünglichen.
  • Kompressionsangriffe: Wenn statt der TLS-Kompression die HTTP-Kompression verwendet wird, ist es für Hacker möglich, durch bestimmte Verfahren TLS-verschlüsselte Inhalte zu erraten.
  • Der BEAST-Angriff betraf die Version TLS 1.0 und wurde bereits 2014 beschrieben. Aktuelle TLS-Versionen sind davor sicher.
  • Der Padding-Oracle-Angriff wurde 2002 entdeckt und war bis zur Version SSL 3.0 möglich. Die aktuelle TLS-Version 1.3 ist nicht davon betroffen.

Daneben gab es Bemühungen, eine vollständig sichere TLS-Verschlüsselung zu verhindern, damit Behörden Einblick in die verschlüsselte Kommunikation nehmen können, z. B. im Zusammenhang mit Finanztransaktionen und kriminellen Aktivitäten. Eine der Organisationen, die sich um eine derartige „Sollbruchstelle“ von TLS bemühte, war ETSI (Europäisches Institut für Telekommunikationsnormen).