Kurz gesagt: TLS (Transport Layer Security) ist der Nachfolger von SSL (Secure Sockets Layer). Beide dienen demselben Zweck: Sie verschlüsseln die Verbindung zwischen dem Browser (oder einem E-Mail-Programm) und dem Server und stellen sicher, dass der Besucher tatsächlich eine Verbindung zum gewünschten Server herstellt. Alle Versionen von SSL sind mittlerweile veraltet und anfällig; heute verwenden Websites, E-Mail-Dienste und nahezu jede verschlüsselte Internetverbindung TLS. Der Begriff „SSL“ hat sich dennoch im allgemeinen Sprachgebrauch gehalten, und auch die Zertifikate werden weiterhin so bezeichnet.
Wie wurde aus SSL TLS?
SSL wurde Mitte der 90er Jahre von Netscape für den eigenen Browser entwickelt. Die Version 1.0 wurde nie veröffentlicht; SSL 2.0 erschien 1995, das verbesserte SSL 3.0 im Jahr 1996. Anschließend übernahm die IETF, die für die Ausarbeitung von Standards zuständig ist, die Pflege des Protokolls und veröffentlichte die nächste Version bereits unter einem neuen Namen: TLS 1.0 erschien 1999. Dabei handelte es sich im Wesentlichen um eine Weiterentwicklung von SSL 3.0; innerhalb des Protokolls lautet die Versionsnummer ebenfalls 3.1, der Name änderte sich lediglich aufgrund des Wechsels des für den Standard verantwortlichen Gremiums.
| Variante | Veröffentlichung | Aktueller Status |
|---|---|---|
| SSL 2.0 | 1995 | Seit 2011 verboten (RFC 6176) |
| SSL 3.0 | 1996 | Seit 2015 verboten (RFC 7568) nach dem POODLE-Angriff |
| TLS 1.0 | 1999 | Seit 2021 veraltet (RFC 8996), von den Browsern im Jahr 2020 deaktiviert |
| TLS 1.1 | 2006 | Seit 2021 veraltet (RFC 8996), von den Browsern im Jahr 2020 deaktiviert |
| TLS 1.2 | 2008 | Es ist sicher, wenn der Server nur eine starke Verschlüsselung zulässt |
| TLS 1.3 | 2018 | die aktuelle Version |
Worin besteht der Unterschied in der Praxis?
SSL und die älteren TLS-Versionen mussten nicht aufgrund ihrer Bezeichnungen, sondern wegen ihrer veralteten Algorithmen ausgemustert werden. Jede neue Version hat die früheren Schwachstellen behoben:
- TLS 1.0 führte im Vergleich zu SSL 3.0 eine stärkere Nachrichtenauthentifizierung (HMAC) und Schlüsselableitung ein, basierte jedoch auf der alten CBC-Verschlüsselung, die später von mehreren Angriffen (beispielsweise BEAST) ausgenutzt wurde.
- TLS 1.1 hat einige dieser Probleme behoben, jedoch keinen größeren Durchbruch gebracht, weshalb es sich nur an wenigen Stellen durchgesetzt hat.
- TLS 1.2 führte moderne, authentifizierte Verschlüsselungsverfahren (wie beispielsweise AES-GCM) sowie die auf SHA-256 basierende Schlüsselgenerierung ein. Es wird auch heute noch weit verbreitet eingesetzt und ist sicher, sofern der Server die alten, schwachen Verschlüsselungsverfahren (RC4, 3DES, CBC, statischer RSA-Schlüsselaustausch) nicht zulässt.
- TLS 1.3 wurde erheblich vereinfacht: Die alten Algorithmen wurden vollständig entfernt, sodass eine fehlerhafte Konfiguration erschwert wird. Jede Verbindung wird durch „Forward Secrecy“ geschützt, d. h., sollte der private Schlüssel des Servers später offengelegt werden, kann der zuvor aufgezeichnete Datenverkehr dennoch nicht entschlüsselt werden. Der Aufbau der Verbindung (der Handshake) erfolgt durch einen kürzeren Hin- und Rück-Nachrichtenaustausch, was insbesondere in Mobilfunknetzen das Laden von Seiten beschleunigt, und das Zertifikat des Servers wird ebenfalls verschlüsselt übertragen.
Die Funktionsweise des Handshakes und der Verschlüsselung wird Schritt für Schritt im Artikel „Was ist TLS (Transport Layer Security)?“ erläutert.
Warum nennen wir es dann SSL-Zertifikat?
Aus Gewohnheit. Das Zertifikat (X.509-Zertifikat) ist nicht an eine bestimmte Protokollversion gebunden: Dasselbe Zertifikat funktioniert sowohl mit TLS 1.2 als auch mit TLS 1.3 und hätte früher ebenso mit SSL 3.0 funktioniert. Das Zertifikat bestätigt lediglich, dass der öffentliche Schlüssel zu der Domain gehört; welche Protokollversion und welche Verschlüsselung für die Verbindung verwendet werden, wird durch die Einstellungen des Servers und des Browsers festgelegt.
Daher gibt es kein separates „TLS-Zertifikat“: Wenn ein Anbieter SSL-, TLS- oder SSL/TLS-Zertifikate verkauft, handelt es sich um dasselbe Produkt. Der eigentliche Unterschied zwischen den Zertifikaten liegt in der Validierungsstufe (DV, OV, EV) und darin, für wie viele Domains sie gelten; mehr dazu erfahren Sie auf der Seite, auf der wir unsere SSL-Zertifikate vorstellen, sowie im Artikel „Was ist ein SSL-Zertifikat und warum brauche ich es?“. Warum es heute für jede Website obligatorisch ist, fasst unser Blogbeitrag zusammen.
SSL/TLS und STARTTLS in E-Mail-Programmen
In den Einstellungen von E-Mail-Programmen bezeichnen „SSL/TLS“ und „STARTTLS“ nicht die Protokollversion, sondern die Art und Weise, wie die Verschlüsselung gestartet wird:
- SSL/TLS (implizites TLS): Die Verbindung ist von Beginn an verschlüsselt. Dies wird von IMAP auf Port 993, von POP3 auf Port 995 und vom ausgehenden SMTP auf Port 465 verwendet.
- STARTTLS: Die Verbindung wird zunächst unverschlüsselt hergestellt, anschließend wechselt das Programm im ersten Schritt zu einer verschlüsselten Verbindung. Dies wird vom ausgehenden SMTP-Dienst auf Port 587 verwendet.
In beiden Fällen wird der Datenverkehr gleichermaßen durch TLS verschlüsselt; bei keiner der beiden Optionen handelt es sich um das veraltete SSL. Wählen Sie jedoch nicht die Einstellung „Keine“ oder „Keine Verschlüsselung“, da Ihr Passwort in diesem Fall im Klartext übertragen wird. Weitere Informationen zur Sicherheit Ihrer E-Mail-Kommunikation finden Sie hier: Ist E-Mail sicher?
Welche Version sollten Sie aktivieren?
Auf einer Website sollten Sie heute TLS 1.2 und TLS 1.3 aktivieren, ältere Versionen hingegen nicht. Eine Deaktivierung von TLS 1.2 ist noch nicht erforderlich: Einige ältere Systeme und Programme unterstützen von den beiden nur diese Version. Durch die Deaktivierung von TLS 1.0 und 1.1 wird hingegen praktisch niemand ausgeschlossen: Heutige Browser verwenden diese Protokolle ohnehin nicht mehr, und nur Systeme, die älter als die frühen 2010er Jahre sind (beispielsweise Windows XP), können keine Verbindung über TLS 1.2 herstellen. Der PCI-DSS-Standard für Online-Shops, die Zahlungen per Kreditkarte akzeptieren, verbietet zudem seit 2018 die Verwendung von SSL und TLS 1.0.
Wenn Sie einen eigenen Server betreiben, müssen Sie die Einrichtung selbst vornehmen; auf dem Apache-Webserver wird dies in dieser Anleitung zur SSL-Einrichtung erläutert.
Wie können Sie feststellen, welche Version eine Website verwendet?
In Firefox: Klicken Sie in der Adressleiste auf das Schloss-Symbol, dann auf „Verbindung ist sicher“ und anschließend auf „Weitere Informationen“. Im sich öffnenden Fenster wird in der Zeile „Technische Details“ die Protokollversion (z. B. „TLS 1.3“) und die Verschlüsselung angezeigt.
Über die Befehlszeile (unter Linux und macOS) zeigt „curl“ an, welche Verbindung hergestellt wurde:
curl -sv -o /dev/null https://pelda.hu 2>&1 | grep -i "SSL connection"
Die Antwort lautet beispielsweise „SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384“.
Diese Methoden zeigen lediglich an, mit welcher Version Ihre Verbindung aufgebaut wurde. Ob der Server auch ältere Versionen akzeptiert, lässt sich von Ihrem eigenen Rechner aus nur schwer überprüfen, da moderne Browser und neuere Versionen von OpenSSL TLS 1.0 und 1.1 bereits auf ihren eigenen Seiten deaktivieren. Hierfür eignet sich die kostenlose Seite „SSL Server Test“ von Qualys: Im Abschnitt „Configuration“ wird aufgelistet, welche Protokollversionen der Server zulässt.