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 gewährleistet. Ein primärer Anwendungsfall von TLS ist die Sicherung der Kommunikation zwischen Webanwendungen und Servern, z. B. Webbrowsern, die eine Website laden. TLS kann auch zum Schutz anderer Kommunikationen wie E-Mail, Messaging und Voice over IP (VOIP) verwendet werden. In diesem Artikel konzentrieren wir uns auf die Rolle von TLS im 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.2 aus dem Jahr 2008; Version 1.3 steht kurz vor der Veröffentlichung und wird bereits von einigen Webanwendungen verwendet.
Was ist der Unterschied zwischen TLS und SSL?
TLS entstand aus einem früheren Sicherheitsprotokoll namens Secure Socket Layer-Sicherheit (SSL), das von Netscape entwickelt wurde. TLS Version 1.0 wurde ursprünglich als SSL-Version 3.1 entwickelt, aber das Protokoll wurde vor der Veröffentlichung umbenannt, um klarzustellen, dass es nicht mehr mit Netscape verbunden 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-Sicherheit.
Warum sollten Sie TLS verwenden?
Die TLS-Verschlüsselung kann dazu beitragen, Webanwendungen vor Angriffen wie Datenschutzverletzungen und DDoS-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.
Wie funktioniert TLS?
Transport Layer Security wird auf der Anwendungsschicht des OSI-Modells implementiert, was bedeutet, dass es auf einem Transport-Layer-Sicherheitsprotokoll wie TCP verwendet werden kann. TLS besteht aus drei Hauptkomponenten: 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.
Eine TLS-Verbindung wird mithilfe einer Sequenz eingeleitet, die als TLS-Handshake bezeichnet wird. Der TLS-Handshake beginnt mit einem Syn/Syn-ACK/ACK-Austausch, der dem bei TCP ähnelt, und erstellt dann für jede Kommunikation eine Cipher Suite. Die Cipher Suite ist eine Reihe von Algorithmen, die Details festlegt, wie z. B. welcher gemeinsame Verschlüsselungsschlüssel für diese bestimmte Sitzung verwendet wird. 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 übernimmt 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, was bedeutet, dass jeder den Schlüssel überprüfen kann, um seine Authentizität zu gewährleisten, aber nur der ursprüngliche Absender den Schlüssel generieren kann.
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?
Aufgrund des komplexen Prozesses beim Einrichten einer TLS-Verbindung ist einiges an Ladezeit und Rechenleistung nötig. Der Client und der Server müssen dreimal hin und her kommunizieren, bevor Daten übertragen werden. Dies kostet Webanwendungen wertvolle Millisekunden Ladezeiten sowie Speicher für den Client und den Server.
Zum Glück gibt es Technologien, die dazu beitragen, die durch den TLS-Handshake verursachte Verzögerung 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 (Wiederaufnahme der TLS-Sitzung), 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. Als Google beispielsweise 2010 seine gesamte Gmail-Plattform auf HTTPS umstellte, mussten sie keine zusätzliche Hardware aktivieren. Die zusätzliche Auslastung der Server durch die TLS-Verschlüsselung betrug weniger als 1 %.