Transport Layer Security
Transport Layer Security (TLS) ist ein Verschlüsselungsprotokoll von Datenübertragungen im Internet und garantiert die Integrität, Vertraulichkeit und Authentizität des Datenflusses.
Beschreibung
Im OSI-Modell ist es oberhalb der Transportschicht (z.B. TCP) und unter Applikationsprotokollen wie HTTP oder SMTP angesiedelt. TLS arbeitet transparent, so dass es leicht eingesetzt werden kann um Protokollen ohne eigene Sicherheitsmechanismen abgesicherte Verbindungen zur Verfügung zu stellen. Zudem ist es erweiterbar um Flexibilität und Zukunftssicherheit bei den verwendeten Verschlüsselungstechniken zu gewährleisten.
Das TLS Protokoll selbst ist wiederum in 2 Schichten aufgeteilt:
TLS Record Protocol
Das TLS Record Protocol ist die untere der beiden Schichten und dient der Absicherung der Verbindung. Es setzt direkt auf der Transportschicht auf und bietet 2 verschiedene Dienste, welche einzeln und gemeinsam genutzt werden können:
- Ende-zu-Ende Verschlüsselung mittels Symmetrischer Algorithmen. Der verwendete Schlüssel wird dabei im Voraus über ein weiteres Protokoll (z.B. das TLS Handshake Protocol) ausgehandelt und ist einmalig für die Verbindung.
- Sicherung der Nachrichten-Integrität und Authentizität durch Bildung einer kryptographischen Prüfsumme
TLS Handshake Protocol
Das TLS Handshake Protocol baut auf dem TLS Record Protocol auf und erfüllt die folgenden Funktionen noch bevor die ersten Bits des Applikationsdatenstromes ausgetauscht wurden:
- Identifikation und Authentifizierung der Kommunikationspartner auf Basis asymmetrischer Verschlüsselungsverfahren und Public-Key-Kryptographie. Dieser Schritt ist optional. Für gewöhnlich authentifiziert sich aber zumindest der Server gegenüber dem Client.
- Aushandeln zu benutzender kryptographischer Algorithmen und Schlüssel
Ablauf
Eine TLS-Kommunikation ist dadurch in die folgenden Phasen eingeteilt:
- Aushandlung unterstützter Algorithmen
- Authentifizierung der Kommunikationspartner auf Basis von Public-Key-Verschlüsselung und Zertifikaten
- Symmetrische Verschlüsselung des Verkehrs mittels des ausgehandelten Sitzungsschlüssels
Bekannte Anwendungen
Besonders bekannte Anwendungsfälle für TLS sind:
Geschichte
TLS basiert auf dem 1996 von der Netscape Communications Corporation veröffentlichten Protokoll SSL 3.0. Es wurde 1999 von der IETF im RFC 2246 standardisiert.
Visa, MasterCard, American Express und viele weitere Finanzorganisationen förderten TLS als Standard zur Absicherung von Zahlungen über das Internet.
Standards
TLS wurde erstmals in RFC 2246 - The TLS Protocol Version 1.0 erwähnt.
Später wurde es durch weitere RFCs erweitert:
- RFC 2712 - Addition of Kerberos Cipher Suites to Transport Layer Security (TLS).
- RFC 2817 - Upgrading to TLS Within HTTP/1.1, erläutert die Benutzung des Upgrade-Mechanismus in HTTP/1.1 um Transport Layer Security (TLS) über eine bestehende TCP-Verbindung zu initialisieren. Dies erlaubt es unsicherem und sicherem HTTP-Verkehr die gleichen well-known TCP Ports (80 bzw. 443) zu benutzen.
- RFC 2818 - HTTP Over TLS, trennt sicheren von unsicherem Verkehr durch Benutzung eines eigenen Server TCP Ports.
- RFC 3268 - Advanced Encryption Standard (AES) Ciphersuites for Transport Layer Security (TLS). Nutzt die Erweiterbarkeit von TLS und fügt den bisher unterstützten symmetrischen Verschlüsselungsalgorithmen (RC2, RC4, International Data Encryption Algorithm (IDEA), Data Encryption Standard (DES) und Triple DES) den Advanced Encryption Standard (AES) hinzu.
Siehe auch
- OpenSSL: eine freie und viel genutzte Implementierung
- GnuTLS: eine freie Implementierung mit GPL-kompatibler Lizenz.
Weblinks
- Die IETF TLS Arbeitsgruppe
- RFC 2246 - Das TLS Protokoll, Version 1.0
- SSL 3.0 Spezifikation
- Benutzung von OpenPGP Schlüsseln zur TLS Authentifizierung
- SSL Security Forum
- GNU Transport Layer Security Library implementiert SSL und TLS
- Mozilla's Network Security Services (NSS) steht unter MPL und GPL