No longer Tls.1.0 and Tls.1.1 support - Abschaltung der beiden veralteten Transport Layer Security - Versionen innerhalb von Server-Daten - Zugriff nur noch mit Tls.1.2 möglich

15.11.2019 23:53:09, Jürgen Auer, keine Kommentare

Die Entwicklungen in der IT sind manchmal durchaus verblüffend. Da wird ein neues Protokoll eingeführt - damals das SSL3 (1996), das wesentliche Verbesserungen gegenüber der älteren Version SSL2 (1995) brachte.

Dann wurde das Protokoll standardisiert. Und umbenannt in Transport Layer Security (TLS) (1999). Mit nur relativ geringen Änderungen.

Jahrelang war dieses Protokoll das Rückgrat aller verschlüsselten Verbindungen. Erst 2006 gab es den Nachfolger Tls.1.1 mit ebenfalls geringfügigen Modifikationen. 2008 folgte - mit deutlicheren Modifikationen - die Version Tls.1.2, die derzeit den Standard darstellt.

Aber was macht man dann mit den alten Versionen? Weiterlaufen lassen oder abschalten?

Die großen Browserhersteller Chrome, FireFox, Apple und damals noch Microsoft hatten schon vor gut einem Jahr angekündigt, daß im Jahr 2020 die Unterstützung für Tls.1.0 und Tls.1.1 aus den Browsern verschwinden wird ( https://blog.server-daten.de/de/2018-10-16/Alle-grossen-Browserhersteller-wollen-2020-die-Unterstuetzung-fuer-Tls-1-0-und-Tls-1-1-beenden---Nachfolgeprotokoll-Tls-1-2-ist-seit-2008-standardisiert-420 ).

Aber was heißt das für Webserverbetreiber?

Bei SSLLabs ( https://www.ssllabs.com/ssltest/ ), deren SSL-Test seit vielleicht 10 Jahren der Maßstab ist, ist ein aktives Tls.1.0 / 1.1 derzeit mit einem orangenen Hintergrund dargestellt. Nicht mehr grün wie Tls.1.2. Plus die Feststellung: Ab 2020 führt das zu einer Abwertung, wenn noch eines dieser beiden Protokolle aktiv ist.

Man kann in solchen Fällen die "alten Protokolle" lange weiterlaufen lassen. Allerdings gab es eine ähnliche Situation schon einmal: Herbst 2014.

SSL 3 is dead, killed by the POODLE attack

https://blog.qualys.com/ssllabs/2014/10/15/ssl-3-is-dead-killed-by-the-poodle-attack

Da wurde die POODLE - Attacke bekannt.

Das grundsätzliche Problem: Die erste Kommunikation zwischen einem Client (Browser) und einem Webserver ist unverschlüsselt, da wird die Verschlüsselung ausgehandelt.

Damals gelang es, durch eingeschleustes JavaScript eine Tls.1.0 - Verbindung auf SSL3 herunterzustufen. Und dort weitere Lücken auszunutzen, so daß die Verbindung am Ende komprimittiert war.

Das Problem dabei: Ausgenutzt wurde eine Protokollschwäche. Kein Bug bei der Protokollimplementierung.

Die Konsequenz: Die Browserhersteller teilten mit, daß es zwar in der Theorie gewisse Anpassungsmöglichkeiten geben würde. In der Praxis sei diese Umsetzung jedoch nicht geplant. Stattdessen:

> Although it might be possible to attempt a BEAST-style mitigation, it seems that browser vendors are not interested in that approach. Adam said Chrome won’t pursue that direction. Firefox said they would disable SSL 3 in Firefox 34. And that’s great news.

FireFox schlug vor SSL3 abzuschalten. Kennt der Browser das Protokoll nicht mehr, dann kann es auch keine Downgrade-Attacke mehr geben.

Praktisch wiederholt sich nun die Geschichte. Bereits 2015 hatte die IETF in einem "Best Current Practice"

Recommendations for Secure Use of Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS)

https://www.rfc-editor.org/rfc/rfc7525.html

empfohlen, Tls.1.0 und 1.1 möglichst nicht mehr zu unterstützen.

> Rationale: TLS 1.0 (published in 1999) does not support many modern, strong cipher suites. In addition, TLS 1.0 lacks a per-record Initialization Vector (IV) for CBC-based cipher suites and does not warn against common padding errors.

sowie:

> Rationale: TLS 1.1 (published in 2006) is a security improvement over TLS 1.0 but still does not support certain stronger cipher suites.

Tls.1.0 hat grundsätzliche Designschwächen. Tls.1.1 ist zwar an manchen Stellen besser. Aber der eigentlichen Schritt weg von CBC-Cipher Suites hin zu AES wird erst mit dem Schritt zu Tls.1.2 gemacht.

--

Um die Abschaltung vorzubereiten, hatte ich vor gut einem Jahr eine Protokollierung eingebaut, die alle Zugriffe per Tls.1.0 und 1.1 festhält. Dabei stellte sich heraus:

- Auf den meisten Kundendatenbanken gab es nur Tls.1.2 - Nutzer.
- Auf einer Kundendatenbank gab es einen Nutzer mit einer sehr alten Android-Version (4.*), der noch Tls.1.0 nutzte.
- Ein Windows-Programm, das per API auf eine Datenbank zugreift, nutzte ebenfalls noch Tls.1.0.
- Auf den eigenen Websites waren praktisch nur noch Spambots mit diesen Protokollen unterwegs.

Ergebnis: Ein Nutzer mit einem veralteten Protokoll bekam auf der Startseite eine Warnmeldung mit Links zum Umstellen / Update angezeigt.
Das Windows-Programm wurde aktualisiert. So daß am Ende nur noch sehr wenige Nutzer mit Tls.1.0 zugriffen. Nur jene, die seit einem Jahr das Programm nicht mehr aktualisiert hatten.

Gestern flogen beide Protokolle endgültig raus.

Ferner wurde https://check-your-website.server-daten.de/ um einen kleinen Check ergänzt: Bei den Connections sieht man nun, ob Tls.1.2 aktiv ist und ob die beiden älteren Versionen inaktiv sind.

*
* (wird nicht angezeigt)
Die Erläuterungen zum Datenschutz habe ich gelesen und stimme diesen zu.