Versionsintoleranz und Schmierfett

Ein Problem, das bisher bei jeder neuen TLS-Version auftauchte, hängt mit der Aushandlung der TLS-Version zusammen. Bei einem TLS-Handshake sendet der Client die höchste TLS-Version, die er unterstützt. Aktuell wäre das etwa in der Regel TLS 1.2. Doch damit sich ein Client auch mit Servern verbinden kann, die nur ältere TLS-Protokollversionen unterstützen, kann der Server auch mit einer niedrigeren Protokollversion antworten, etwa TLS 1.0.

Stellenmarkt
  1. Junior Software-Entwickler (m/w/d)
    efcom gmbh, Neu Isenburg
  2. IT-Mitarbeiter (w/m/d) für MS Windows in der Anwendungsbetreuung
    VRG IT GmbH', Oldenburg
Detailsuche

Das Problem: Obwohl dieses Versionsaushandlungsverfahren relativ simpel ist, schlampen viele Server dabei. Bei Verbindungen mit höheren TLS-Versionen brechen sie die Verbindung ab, senden einen Fehler oder produzieren einen Timeout. Dieses Verhalten wird als Versionsintoleranz bezeichnet.

Um auch mit solch fehlerhaften Servern eine Verbindung zu ermöglichen, haben die Browserhersteller Fallbacks implementiert. Schlug eine Verbindung mit TLS 1.2 fehl, versuchten sie es erneut mit TLS 1.1, danach mit TLS 1.0 und danach häufig sogar mit dem Uraltprotokoll SSL Version 3.

Diese Fallbacks führten jedoch zu einer ganzen Reihe von Problemen. Zunächst einmal traten sie manchmal auch bei schlechten Netzverbindungen auf. Das führte dazu, dass neuere Protokollfeatures gelegentlich nicht funktionierten. Beispielsweise ermöglicht die TLS-Erweiterung Server Name Indication seit TLS 1.0, dass auf derselben IP mehrere Hosts mit verschiedenen Hostnamen und Zertifikaten betrieben werden. Doch wenn ein Fallback die Verbindung auf SSL Version 3 reduziert, erhält der Nutzer das falsche Zertifikat.

Golem Karrierewelt
  1. Deep-Dive Kubernetes – Observability, Monitoring & Alerting: virtueller Ein-Tages-Workshop
    22.09.2022, Virtuell
  2. LDAP Identitätsmanagement Fundamentals: virtueller Drei-Tage-Workshop
    18.-20.10.2022, Virtuell
Weitere IT-Trainings

Protokoll-Downgrades können auch zu Sicherheitsproblemen werden. Der erste Angriff, der auf Protokolldowngrades basierte, war 2014 der sogenannte Virtual-Host-Confusion-Angriff von Antoine Delignat-Lavaud. Auch der Ende 2014 entdeckte Poodle-Angriff nutzte die Protokoll-Downgrades.

Nach Poodle hatten die meisten Browser daher diese Downgrades entfernt. Doch zunächst sah es so aus, als würden die Protokolldowngrades mit TLS 1.3 ein Comeback erleben: Trotz dieser ganzen Sicherheitslücken und Fehler in der Vergangenheit haben viele Hersteller offenbar nichts gelernt. Eine ganze Reihe von Servern reagierte fehlerhaft auf Verbindungsversuche mit TLS 1.3 - darunter Webseiten von IT-Größen wie Apple, Ebay oder Paypal.

IBM, Cisco und Citrix mit defekten TLS-Implementierungen

Der Autor dieses Artikels versuchte im Sommer 2016, einige der Hersteller, die für diese defekten TLS-Implementierungen verantwortlich waren, zu kontaktieren, darunter Cisco, Citrix und IBM. Die Reaktionen auf die Meldung dieses Problems waren verhalten. IBM teilte mit, dass es bereits zu spät sei, dieses Problem im nächsten Versionsupdate zu beheben. Erst die übernächste Version - irgendwann 2017 - werde einen Fix enthalten. Cisco verweigerte einen Fix komplett, da das Ganze nur Geräte betraf, die nicht mehr unterstützt wurden. Citrix bestätigte zwar das Problem, sagte aber nicht, wann man einen Fix bereitstellen werde. Apple und Ebay antworteten auf Anfragen überhaupt nicht, Paypal teilte lediglich mit, dass derartige Probleme nicht Teil des Bug-Bounty-Programms der Firma seien.

Google-Entwickler David Benjamin schlug vor, das Problem der Versionsintoleranz durch ein neues Versionsaushandlungsverfahren zu umgehen. Benjamins Vorschlag sieht vor, dass künftig die unterstützten TLS-Versionen durch eine Erweiterung im Handshake mitgeteilt werden. Unbekannte TLS-Erweiterungen werden von Servern ignoriert. Theoretisch könnte ein Server auch in so einem Fall fehlerhaft reagieren, aber das kommt deutlich seltener vor. Der Grund dafür dürfte sein, dass neue TLS-Erweiterungen häufiger eingeführt werden als neue TLS-Versionen.

Dieser neue Mechanismus würde zwar für TLS 1.3 mit ziemlicher Sicherheit funktionieren, aber bei künftigen Versionen könnte sich ein ähnliches Problem ergeben: Server, die TLS 1.3 implementieren, könnten die Versionserweiterung auswerten und eine Verbindung ablehnen, wenn dort eine ihnen unbekannte Version auftaucht.

Schmierfett gegen unfähige Hersteller

Um solche Fehler auch zukünftig zu vermeiden hat Benjamin das Grease-Verfahren entwickelt (Generate Random Extensions And Sustain Extensibility). Man müsse verhindern, dass Protokollimplementierungen rosten und sie deswegen regelmäßig mit Schmierfett behandeln. Die Idee ist simpel: Browser und andere Clients können gelegentlich bestimmte reservierte Nonsens-Versionsnummern mit dem TLS-Handshake mitschicken. Auch für TLS-Erweiterungen und Verschlüsselungsverfahren sind Grease-Werte reserviert.

Ein Server muss unbekannte Werte in all diesen Fällen ignorieren. Falls ein Server auf unbekannte Werte mit einem Fehler reagiert, würde dies früh auffallen, da Verbindungen fehlschlagen. Somit soll verhindert werden, dass derartige fehlerhafte Implementierungen überhaupt Verbreitung finden.

Ein Schlupfloch für dumme Implementierungen bleibt: Entwickler einer TLS-Servers könnten zwar die vordefinierten Grease-Werte ignorieren, aber bei allen anderen Werten weiterhin einen Fehler produzieren. Dafür müssten sie aber schon das Protokoll lesen und gleichzeitig komplett missverstehen - oder absichtlich derartige Fehler einbauen.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Handshake mit einem oder mit null Round-TripsTLS 1.3 oder doch TLS 4? 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7.  


Aktuell auf der Startseite von Golem.de
Cloudsparte Stackit
"Kubernetes ist nicht das Endgame"

Doch nicht Kubernetes? Dominik Kress von Stackit betitelt so einen Vortrag - und eröffnet damit die Frage, ob man Kubernetes dort vielleicht gar nicht mag.
Ein Bericht von Boris Mayer

Cloudsparte Stackit: Kubernetes ist nicht das Endgame
Artikel
  1. Einsparverordnungen: So sollen Verwaltung, Bürger und Firmen Energie sparen
    Einsparverordnungen
    So sollen Verwaltung, Bürger und Firmen Energie sparen

    Reduzierte Raumtemperaturen und ungeheizte Swimmingpools: Die Regierung fordert eine "nationale Kraftanstrengung" wegen des Gasmangels.

  2. Geheimgespräche: Apple wollte angeblich Anteil an Facebooks Werbeeinnahmen
    Geheimgespräche
    Apple wollte angeblich Anteil an Facebooks Werbeeinnahmen

    Apples höherer Datenschutz macht Facebook inzwischen das Leben schwer. Zuvor soll es geheime Gespräche über eine Umsatzbeteiligung gegeben haben.

  3. Bildverkleinern in C#: Eine Windows-App zur Verkleinerung von Bilddateien
    Bildverkleinern in C#
    Eine Windows-App zur Verkleinerung von Bilddateien

    Wir zeigen mit Visual Studio, wie Drag-&-Drop funktioniert, klären, ob unter Windows runde Fenster möglich sind, und prüfen, wie aufwendig eine mehrsprachige Bedienungsoberfläche ist (ziemlich).
    Eine Anleitung von Michael Bröde

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    Daily Deals • Nur bis 9:59 Uhr: Best of Gamesplanet Summer Sale • MindStar (AMD Ryzen 7 5800X3D 455€, MSI RTX 3070 599€) • Lego Star Wars Neuheiten • LG 38" Curved UWQHD+, 144 Hz günstig wie nie: 933,35€ • BenQ Mobiuz 32" Curved UWQHD 144 Hz 499€ • Bester Gaming-PC für 2.000€ [Werbung]
    •  /