Was ist TLS (Transport Layer Security)?

TLS ist ein Sicherheitsprotokoll, das bei der Internetkommunikation für Datenschutz und Integrität sorgt. Die Implementierung von TLS ist ein Standardverfahren zur Erstellung sicherer Webanwendungen.

Lernziele

Nach Lektüre dieses Artikels können Sie Folgendes:

  • Transport Layer Security (TLS) – Eine Definition
  • Wie funktioniert TLS?
  • Was ist der Unterschied zwischen TLS und SSL?
  • Wie wirkt sich TLS auf die Performance aus?
  • Wie implementiert man TLS?

Link zum Artikel kopieren

Was bedeutet Transport Layer Security (TLS)?

Transport Layer Security (TLS) ist ein weit verbreitetes Sicherheitsprotokoll, das Datenschutz und Datensicherheit für die Kommunikation über das Internet erleichtert. Ein primärer Anwendungsfall von TLS ist die Verschlüsselung der Kommunikation zwischen Webanwendungen und Servern, z. B. Webbrowsern, die eine Website laden. TLS kann auch zum Verschlüsseln anderer Kommunikationen wie E-Mail, Messaging und Voice over IP (VOIP) verwendet werden. In diesem Artikel konzentrieren wir uns auf die Rolle von TLS in Bereich der Web Application Security.

TLS wurde von der Internet Engineering Task Force (IETF), einer internationalen Normungsorganisation, vorgeschlagen. Die erste Version des Protokolls wurde 1999 veröffentlicht. Die neueste Version ist TLS 1.3 aus dem Jahr 2018.

Was ist der Unterschied zwischen TLS und SSL?

TLS entstand aus einem früheren Verschlüsselungsprotokoll namens Secure Socket Layer (SSL), das von Netscape entwickelt wurde. TLS Version 1.0 begann eigentlich mit der Entwicklung als SSL-Version 3.1, aber der Name des Protokolls wurde vor der Veröffentlichung geändert, um anzuzeigen, dass es nicht mehr mit Netscape assoziiert war. Aufgrund dieser Vorgeschichte werden die Begriffe TLS und SSL manchmal synonym verwendet.

Was ist der Unterschied zwischen TLS und HTTPS?

HTTPS ist eine Implementierung der TLS-Verschlüsselung zusätzlich zum HTTP-Protokoll, das von allen Websites sowie einigen anderen Webdiensten verwendet wird. Jede Website, die HTTPS verwendet, verwendet daher auch TLS-Verschlüsselung.

Warum sollten Unternehmen und Webanwendungen das TLS-Protokoll verwenden?

TLS-Verschlüsselung kann dazu beitragen, Webanwendungen vor Datenschutzverletzungen und anderen Angriffen zu schützen. Außerdem setzt sich TLS-geschütztes HTTPS schnell als Standard für Websites durch. Zum Beispiel geht der Google Chrome-Browser gegen Websites vor, die kein HTTPS verwenden, und gewöhnliche Internetnutzer werden immer vorsichtiger gegenüber Websites ohne HTTPS-Vorhängeschloss.

Welche Funktion hat TLS?

Das TLS-Protokoll besteht aus drei Hauptkomponenten, die es zu erfüllen gilt: Verschlüsselung, Authentifizierung und Integrität.

  • Verschlüsselung: verbirgt die Daten, die von Dritten übertragen werden.
  • Authentifizierung: stellt sicher, dass die Parteien, die Informationen austauschen, auch die sind, für die sie sich ausgeben.
  • Integrität: überprüft, dass die Daten weder gefälscht noch manipuliert wurden.

Wie funktioniert TLS?

Damit eine Website oder Anwendung TLS verwenden kann, muss auf dem Ursprungsserver ein TLS-Zertifikat installiert sein (das Zertifikat wird wegen der oben beschriebenen Namensverwirrung auch als „SSL-Zertifikat“ bezeichnet). Ein TLS-Zertifikat wird von einer Zertifizierungsstelle für die Person oder das Unternehmen ausgestellt, die bzw. das Eigentümer einer Domain ist. Das Zertifikat enthält wichtige Informationen darüber, wem die Domain gehört, sowie den öffentlichen Schlüssel des Servers, die beide für die Überprüfung der Identität des Servers wichtig sind.

Eine TLS-Verbindung wird mithilfe einer Sequenz eingeleitet, die als TLS-Handshake bezeichnet wird. Wenn ein Benutzer zu einer Website navigiert, die TLS verwendet, beginnt der TLS-Handshake zwischen dem Gerät des Benutzers (auch als Client-Gerät bezeichnet) und dem Webserver.

Während des TLS-Handshakes werden das Gerät des Benutzers und der Webserver miteinander verbunden:

  • Bestimmen, welche TLS-Version (TLS 1.0, 1.2, 1.3 usw.) verwendet werden soll
  • Entscheiden, welche Cipher Suites (siehe weiter unten) verwendet werden sollen
  • Authentifizierung der Identität des Servers mit Hilfe des TLS-Zertifikats des Servers
  • Generierung von Sitzungsschlüsseln für die Verschlüsselung von Nachrichten zwischen ihnen nach Abschluss des Handshakes

Der TLS-Handshake erstellt für jede Kommunikationssitzung eine Cipher Suite. Die Cipher Suite besteht aus einer Reihe von Algorithmen, die Daten angeben, wie beispielsweise welche gemeinsam genutzten Verschlüsselungsschlüssel oder Sitzungsschlüssel für diese bestimmte Sitzung verwendet werden. TLS kann dank einer Technologie, die als Public-Key-Verschlüsselungsverfahren (Public Key Cryptography) bekannt ist, die passenden Sitzungsschlüssel über einen unverschlüsselten Kanal festlegen.

Der Handshake verarbeitet auch die Authentifizierung, die normalerweise darin besteht, dass der Server dem Client seine Identität nachweist. Dies erfolgt mit öffentlichen Schlüsseln. Öffentliche Schlüssel sind Verschlüsselungsschlüssel, die eine Einwegverschlüsselung verwenden. Dies bedeutet, dass jeder, der über den öffentlichen Schlüssel verfügt, mit dem privaten Schlüssel des Servers verschlüsselten Daten entschlüsseln kann, um ihre Authentizität zu gewährleisten, aber nur der ursprüngliche Absender kann Daten mit dem privaten Schlüssel verschlüsseln. Der ��ffentliche Schlüssel des Servers ist Teil seines TLS-Zertifikats.

Sobald die Daten verschlüsselt und authentifiziert sind, werden sie mit einem Nachrichtenauthentifizierungscode (Message Authentication Code oder MAC) signiert. Der Empfänger kann dann den MAC überprüfen, um die Integrität der Daten sicherzustellen. Dies ähnelt der Sicherheitsfolie bei Medikamenten. Der Verbraucher weiß, dass niemand sein Medikament manipuliert hat, da die Folie beim Kauf intakt ist.

Wie wirkt sich TLS auf die Performance von Webanwendungen aus?

Die neuesten Versionen von TLS haben kaum Auswirkungen auf die Performance von Webanwendungen.

Aufgrund des komplexen Prozesses beim Einrichten einer TLS-Verbindung ist einiges an Ladezeit und Rechenleistung nötig. Der Client und der Server müssen mehrmals hin und her kommunizieren, bevor Daten übertragen werden. Dies kostet Webanwendungen wertvolle Millisekunden Ladezeiten sowie Speicher für den Client und den Server.

Es gibt jedoch Technologien, die dazu beitragen, die durch den TLS-Handshake entstehende potenzielle Latenz zu verringern. Eine davon ist der TLS False Start, mit dem Server und Client Daten übertragen können, bevor der TLS-Handshake abgeschlossen ist. Eine weitere Technologie zur Beschleunigung von TLS ist die TLS Session Resumption, mit der Clients und Server, die zuvor bereits kommuniziert haben, einen abgekürzten Handshake verwenden können, um ihre Sitzung wieder aufzunehmen.

Diese Verbesserungen haben dazu beigetragen, TLS zu einem sehr schnellen Protokoll zu machen, das sich nicht merklich auf die Ladezeiten auswirken sollte. Die mit TLS verbundenen Kosten für Rechenleistung sind nach heutigen Maßstäben meist vernachlässigbar.

TLS 1.3, das 2018 veröffentlicht wurde, hat TLS noch schneller gemacht. TLS-Handshakes in TLS 1.3 erfordern nur einen Round Trip (oder Hin- und Her-Kommunikation) anstelle von zwei. Das verkürzt den Prozess um einige Millisekunden. Wenn der Benutzer schon einmal eine Verbindung zu einer Website hergestellt hat, kommt der TLS-Handshake ohne Roundtrips aus, was ihn noch weiter beschleunigt.

Wie Sie TLS auf einer Website implementieren

Cloudflare bietet allen Benutzern kostenlose TLS/SSL-Zertifikate. Jeder, der Cloudflare nicht verwendet, muss ein SSL-Zertifikat von einer Zertifizierungsstelle erwerben (häufig gegen eine Gebühr) und das Zertifikat auf seinen Ursprungsservern installieren.

Weitere Informationen über die Funktionsweise von TLS/SSL-Zertifikaten finden Sie unter Was ist ein SSL-Zertifikat? Überprüfen Sie im Cloudflare Diagnostic Center, ob eine Website TLS-Verschlüsselung verwendet.