Transport Layer Security
Transport Layer Security (Transportschichtsicherheit, kurz: TLS) ist ein Verschlüsselungsprotokoll, das bei der Datenübertragung im Internet zum Einsatz kommt. Das Protokoll beschreibt einen allgemeinen Standard, der in spezifische Umgebungen implementiert werden kann. Die Transport Layer Security ist eines der am weitesten verbreiteten Verschlüsselungsprotokolle. Neben dem Datentransport zwischen einem Browser und einem Webserver, wie es bei HTTPS der Fall ist, wird TLS auch beim E-Mail-Versand, bei FTP- und VPN-Verbindungen, in der Cloud sowie Instant Messaging und Voice Over IP und auch als EAP-TLS für die Sicherheit von WLAN-Verbindungen verwendet. TLS wird hauptsächlich in Bereichen angewandt, wo es um sensible Daten geht – zum Beispiel beim Online Banking, bei der Speicherung von Kundendaten und Passwörtern sowie der digitalen Kommunikation. Das Ziel ist es, eine sichere Übertragung der Daten zwischen einem Kommunikationspartner und einem anderen, bzw. einem Unternehmen und einem Kunden zu ermöglichen und ein Höchstmaß an Integrität der Kommunikationsteilnehmer zu gewährleisten.
Allgemeine Informationen zum Thema
Die Entwicklung von TLS ging einher mit der Entwicklung des Internets: Gemeinsam mit dem Netscape Browser wurde SSL 1.0 bereits Mitte der Neunziger Jahre vorgestellt. 1999 wurde SSL dann in TLS 1.0 umbenannt und weiter verbessert. Im Laufe der Zeit wurden verschiedene RFCs (Request for comments; deutsch: Protokollentwürfe) vom IETF als Standards vorgeschlagen. Seit Januar 2016 gilt dies für TLS 1.3, das sich in der Entwicklungsphase befindet. Der aktuelle gültige Standard ist TLS 1.3 (Stand: 2018). Von SSL zu TLS 1.2 vergingen etwa 14 Jahre, weshalb TLS als eines der sichersten Netzwerkprotokolle überhaupt gelten darf.[1]
TLS vs. SSL
TLS und das veraltete Protokoll SSL werden häufig gleichgesetzt und fälschlicherweise synonym verwendet. TLS ist aus dem SSL-Zertifikat entstanden, es wird aber als eigenständiges und vor allem aktuelleres Verschlüsselungsprotokoll betrachtet.[2] Weil TLS auch Authentifizierung, Schlüsselgenerierung, neuere Verschlüsselungsalgorithmen sowie verschiedene Cipher Suites (Chiffrensammlung) umfasst, wird es heutzutage so häufig zur Datenübertragung in Netzwerken eingesetzt. TLS ist zudem relativ leicht auf Protokolle ohne Sicherheitsmechanismen anwendbar. TLS ist zusätzlich erweiterbar und abwärtskompatibel, sodass sowohl neuere Verschlüsselungsalgorithmen als auch veraltete Netzwerkprotokolle unterstützt werden können.
Funktionsweise
Jede Datenübertragung wird von TLS schematisch als Kommunikation zwischen Sender und Empfänger behandelt, zum Beispiel zwischen Client und Server. Das TLS Protokoll setzt dabei an einer bestimmten Stelle in der informationstechnischen Architektur an, die auch als OSI-Modell beziehungsweise TCP/IP-Referenzmodell bezeichnet wird: TLS arbeitet in der Transportschicht, wo die Datenströme der digitalen Kommunikation verwaltet werden. Diese Schicht zählt zum Transportsystem, das von der Anwendungsschicht und somit vom Anwender getrennt ist. Das heißt, der Anwender muss sich um die Eigenschaften des Systems, das zur Datenübertragung dient, keine Gedanken machen und kann das System auch ohne Netzwerkkenntnisse verwenden.[3]
Die Transportschicht erlaubt eine End-to-End-Encryption (deutsch: Ende-zu-Ende-Verschlüsselung), wobei die Anwendungsschicht stets eine Implementierung des übergeordneten Standardprotokolls TLS ist. HTTPS ist beispielsweise eine Anwendung von TLS. Gleiches gilt für POP3S, SMTPS und IMAPS, die allesamt den sicheren E-Mail-Versand ermöglichen. Für andere Anwendungen wie Chats, VPN-Verbindungen oder FTP-Datenübertragung existieren entsprechend angepasste Protokolle, die TLS in der Praxis erst anwendbar machen. TLS ist ein grundlegendes Konzept, das viele verschiedene Anwendungen oder Instanzen haben kann.
Ziele von TLS
Generell hat TLS unabhängig von seinem praktischen Einsatz drei Ziele:[4]
- Verschlüsselung: Jede Nachricht oder Information, die übertragen werden soll, wird mithilfe von Verschlüsselungsalgorithmen vor dem Zugriff Dritter geschützt.
- Authentifizierung: Jede Kommunikation zwischen Sender und Empfänger erfordert einen Mechanismus, um diese Identitäten im Netzwerk zu überprüfen.
- Integrität: Keine Nachricht oder Informationen darf im Nachhinein manipuliert oder gefälscht worden sein.
Die Komponenten der TLS
Das Verschlüsselungsprotokoll Transport Layer Security besteht aus zwei grundlegenden Komponenten, die für sich genommen bestimmte Ziele erfüllen sollen.[5] Der erste Teil bezieht sich auf die eigentliche Übertragung von Daten, der zweite Teil umfasst Mechanismen zur Authentifizierung der Kommunikationspartner, bevor eine Datenübertragung stattfindet. Erst wenn Client und Server sich gegenseitig ihre Vertrauenswürdigkeit nachgewiesen haben, werden ein erstes Byte mit Daten verschlüsselt über die Transportschicht verschlüsselt übertragen.
TLS Record Protocol
Das TLS Record Protocol zielt darauf ab, eine sichere Datenübertragung zu ermöglichen. Dies wird durch Verschlüsselungsalgorithmen wie AES (engl.: Advanced Encryption Standard) erreicht. Mithilfe einer symmetrischen Verschlüsselung werden die zu übertragenden Daten kodiert, wobei der Schlüssel zwischen Sender und Empfänger über ein gesondertes Protokoll ausgetauscht wird. Jeder Schlüssel ist nur für eine Verbindung gültig und nur die Kommunikationsteilnehmer, die den Schlüssel haben, können auf diese Daten zugreifen.
Um zu prüfen, ob Datenströme manipuliert worden sind, wird ein Message Authentication Code (deutsch: Nachrichten-Authentifizierungscode; kurz: MAC) übermittelt. Dieser Code ermöglicht die Prüfung durch eine kryptografische Hash-Tabelle, die nur von Sendern und Empfänger interpretiert werden kann, die über den Schlüssel verfügen. So stellen sie sicher, dass die Daten wirklich von einer Quelle stammen, die den Schlüssel besitzt, und dass sie nicht nachträglich manipuliert oder gefälscht wurden.
TLS Handshake Protocol
Der Schlüsselaustausch ist ein zentrales Problem jeder Verschlüsselung. Die Transport Layer Security löst dies, indem eine Art Handschlag zwischen Sender und Empfänger für den Verbindungsaufbau notwendig ist. Dieser Handshake regelt einerseits die Schlüsselübergabe. Andererseits übernimmt er die Authentifizierung der Kommunikationsteilnehmer anhand asymmetrischer Verschlüsselungsverfahren und einer Public Key Infrastruktur, die die Zertifikate verteilt und prüft. Welche Schlüssel verwendet werden, wird ebenfalls über den Handshake verhandelt.
Zum Handshake Protokoll gehören drei weitere Protokolle, die die eingesetzten Schlüssel spezifizieren, Fehlernachrichten ausgeben und Anwendungsdaten speichern:
- TLS Change Cipher Spec Protocol
- TLS Alert Protocol
- TLS Application Data Protocol
Sicherheit
Als mögliche große Schwachstelle werden bei TLS ebenso wie bei SSL die Zertifizierungsstellen gesehen. Weltweit gibt es davon über 700. Hat ein Angreifer eine solche Zertifizierungsstelle gehackt, ist es ihm möglich, die TLS-Verbindungen zu manipulieren.[6]
Darüber hinaus besteht die Möglichkeit, dass gerade Antivirus-Software den Zugriff auf TLS-Verbindungen ermöglicht. Damit die Software nämlich den Datenverkehr auf schädliche Datenpakete prüfen kann, benötigt sie Zugang zu den verschlüsselten Daten. Hierfür werden sogenannte “Intermediate CA Zertifikate” ausgegeben. Und genau diese temporären Zertifikate bieten Angreifern Möglichkeiten, um TLS-Verbindungen zu hacken.
Letztlich gilt auch für ein Protokoll wie TLS wie für die gesamte IT: Wenn ein Anwender seine Systeme nicht kontinuierlich aktualisiert, bieten sich für Hacker immer wieder Gelegenheiten, um Daten zu manipulieren oder abzugreifen.
Bedeutung für die Software- und Webentwicklung
Als hybrides Verschlüsselungsverfahren erlangte TLS enorme Bedeutung in der Internetsicherheit.[7] TLS kombiniert symmetrische und asymmetrische Verfahren sowie Mechanismen zur Prüfung der Authentizität und Integrität von Datenströmen und Nachrichten zwischen Kommunikationspartnern im Web. Das Konzept ist modular aufgebaut, sodass unterschiedliche Verschlüsselungsoptionen miteinander kombiniert werden. In der Chipher Suite können Algorithmen ausgewählt werden, die den modernsten Verschlüsselungsstandards entsprechen.
Der modulare Aufbau der Transport Layer Security ist zugleich jedoch ein Nachteil, wenn die Verfahren nicht auf dem neuesten Stand sind. Zudem sind fehlerhafte Implementierungen ein generelles Problem: Der Anwender kann beim Aufsetzen der Verschlüsselungsprotokolle Fehler machen, wenn die Infrastruktur komplex ist (zum Beispiel bei virtuellem Hosting, großen Websites mit CDN-Systemen sowie serviceorientierten Architekturen). Für derartige Szenarien werden jedoch Sammlungen von Protokollen und Programmbibliotheken angeboten, die für die jeweiligen Einsatzbereiche angepasst wurden – dies wird teilweise auch als Authenticated Encryption (AE) bezeichnet.
Alternativ ist es auch möglich, eine Server Name Indication zu verwenden, falls mehrere verschlüsselte Websites auf einem Server liegen. Damit die nachträglich Manipulation von Daten verhindert wird (Perfect Forward Security), kann eine Version des Diffie-Hellmann-Algorithmus für die Schlüsselübergabe zum Einsatz kommen.
Einzelnachweise
- ↑ Transport Layer Security (TLS) hpbn.co. Abgerufen am 16.08.2016
- ↑ Grundlagen/HTTPS und TLS wiki.selfhtml.org. Abgerufen am 16.08.2016
- ↑ SSL - Secure Socket Layer elektronik-kompendium.de. Abgerufen am 16.08.2016
- ↑ SSL and TLS: A Beginners Guide sans.org. Abgerufen am 16.08.2016
- ↑ Transport Layer Security (TLS) searchsecurity.de. Abgerufen am 16.08.2016
- ↑ Schwachstellen von SSL/TLS (Wie sicher ist SSL/TLS?) elektronik-kompendium.de Abgerufen am 21.10.2018
- ↑ Mindeststandard des BSI für den Einsatz des SSL/TLS-Protokolls durch Bundesbehörden bsi.bund.de. Abgerufen am 16.08.2016