Neue Angriffe gegen TLS: Krypto-Forscher präsentieren mit Sloth mehrere Schwächen in TLS-Implementierungen und im Protokoll selbst. Am kritischsten ist ein Angriff auf Client-Authentifizierungen mit RSA und MD5.
Mehrere Schwächen im TLS-Protokoll, die durch die Nutzung alter Hashfunktionen verursacht werden, haben Karthikeyan Bhargavan und Gaetan Leurent vom Forschungsprojekt Prosecco veröffentlicht. Die Angriffe basieren auf der Nutzung der inzwischen als überholt geltenden Hash-Algorithmen MD5 und SHA1, sowie auf Hashes, die in Protokollen abgeschnitten verwendet werden. Der Angriff trägt den Namen Sloth, die Abkürzung steht für Security Losses from Obsolete and truncated Transcript Hashes. Übersetzt bedeutet Sloth Faulheit oder auch Faultier, ein Verweis darauf, dass die Kryptografie-Community zu langsam dabei sei, veraltete Algorithmen aus ihren Protokollen zu entfernen. Man-in-the-Middle-Angriff auf Client-Authentifizierung
Der relevanteste Angriff betrifft die Authentifizierung mit Clientzertifikaten in TLS 1.2. Möglich ist dieser Angriff, wenn ein Nutzer sich mit einem Zertifikat beim Server des Angreifers anmeldet. Der Server kann sich dann, genügend Rechenpower vorausgesetzt, gegenüber einem anderen Server mit dem Clientzertifikat des Nutzers anmelden, falls der Client das RSA-Signaturverfahren mit MD5 unterstützt.
Interessant dabei ist, dass die älteren Protokollversionen TLS 1.0 und 1.1 von diesem Problem nicht betroffen sind. Diese alten Protokolle nutzten eine Kombination aus MD5 und SHA1 für die Clientsignaturen. In Version 1.2 wurde dies ersetzt durch einen Mechanismus, bei dem der Algorithmus zwischen Server und Client ausgehandelt wird. Dabei sind auch MD5 und SHA1 zulässig. Bemerkenswert ist, dass TLS 1.2 diese alten Algorithmen überhaupt unterstützt, denn diese Version wurde 2008 veröffentlicht, mehrere Jahre nachdem die Sicherheit von MD5 und SHA1 durch zahlreiche Angriffe untergraben worden war.
Neben diesem Problem mit dem Protokoll selbst ist eine weitere Tatsache bemerkenswert: Die Forscher fanden zahlreiche TLS-Implementierungen, die beim Handshake angaben, Signaturen mit MD5 nicht zu unterstützen, doch wenn ein Server diese trotzdem sendete, wurden sie akzeptiert. Das betraf unter anderem OpenSSL in älteren Versionen (vor 1.0.1f), NSS (vor 3.21) und GnuTLS (vor 3.3.15). Die Java-TLS-Implementierung JSSE unterstützte RSA-MD5 direkt und gab das auch so an. Einen Proof-of-Concept-Angriff haben die Forscher gegen eine Kombination aus einem Java-Client und einem Java-Server durchgeführt. Dafür kam eine optimierte Version des Tools Hashclash zum Einsatz. Angriff gegen Channel-Binding und serverseitige MD5-Signaturen
Ein weiterer Angriff betrifft sogenannte Channel-Binding-Verfahren. Channel Binding wird genutzt, um bei Authentifizierungsverfahren zu verhindern, dass ein Server die Authentifizierung eines Nutzers verwenden kann, um sich selbst bei einem anderen Server anzumelden. Es kommt in den Protokollen Fido, Token Binding und Scram zum Einsatz. Scram wird unter anderem im XMPP/Jabber-Protokoll genutzt. Diese Protokolle verwenden einen Wert aus dem TLS-Handshake, der als tls-unique bezeichnet wird. Dieser Wert wird mit Hilfe eines HMAC-Verfahrens mit dem SHA256-Hash-Algorithmus generiert, allerdings wird dieser Hash auf 96 Bit gekürzt. Dadurch wird der Angriff möglich.
Aufgrund des Protokolldesigns der bisherigen TLS-Versionen ist ein Angriff auf die Serversignaturen im Handshake nicht so einfach möglich. Allerdings fanden die Forscher auch hier eine Möglichkeit, die zumindest die Robustheit des Protokolls in Zweifel zieht. Dafür müssen sie jedoch zunächst eine sehr große Zahl an Signaturen des Servers aufzeichnen. Um einen Angriff mit der Komplexität von 2^64 durchzuführen, müssten dafür 2^64 Signaturen des Servers aufgezeichnet werden. Werden weniger Signaturen aufgezeichnet, so wird der Angriff entsprechend schwerer. In der Praxis durchführen lässt sich dieser Angriff wohl nicht. SHA1-Kollisionen beherbergen weitere Angriffe
Eine ganze Reihe von Problemen tut sich auf, falls in Zukunft auch für das SHA1-Verfahren Kollisionsangriffe möglich werden. Bislang sind diese nur theoretisch beschrieben worden, allerdings geht man schon lange davon aus, dass ein finanzkräftiger Angreifer in der Lage wäre, SHA1 zu attackieren.
Auch im SSH-Protokoll könnte es dann Probleme geben - und weitere Varianten von Angriffen gegen TLS 1.0/1.1, IKE/IPSEC und den aktuellen Entwurf von TLS 1.3 wären denkbar. Kollisionsangriffe gefährlicher als gedacht
Der MD5-Algorithmus wurde 2004 praktisch durch einen Kollisionsangriff gebrochen. Auch das SHA1-Verfahren gilt seit spätestens 2005 als nicht mehr sicher, allerdings hat bislang niemand einen praktischen Angriff öffentlich gezeigt.
Die bisherigen Angriffe gegen MD5 und SHA1 betreffen aber bislang nur die sogenannte Kollisionsresistenz. Das bedeutet, dass es für einen Angreifer möglich ist, zwei Eingaben zu erzeugen, die zu demselben Hash-Wert führen. Nicht möglich ist es mit diesen Angriffen, zu einem bestehenden Hash einen gültigen Eingabewert zu erzeugen. Ein solcher Angriff wird als Preimage-Angriff bezeichnet.
Oftmals wird angenommen, dass Kollisionsangriffe in den meisten Fällen nicht relevant seien. Das beschreiben die Autoren der Sloth-Angriffe auch in ihrer Einleitung. Doch kryptografische Analysen von vielen Protokollen gingen in der Vergangenheit davon aus, dass die verwendeten Hashfunktionen kollisionsresistent seien. Diesen Widerspruch versuchen die Autoren mit ihrer Forschung aufzulösen und kommen zu dem Schluss, dass Kollisionsangriffe in deutlich mehr Szenarien ein Problem seien als bislang angenommen. Schlussfolgern kann man aus den Angriffen wohl, dass die Hashverfahren MD5 und SHA1 überall, wo Kollisionsangriffe eine Rolle spielen könnten, so schnell wie möglich entfernt werden sollten.
Als sicher gelten zur Zeit die SHA2-Verfahren, die es in verschiedenen Längen gibt, üblich sind SHA256 und SHA512. Seit August vergangenen Jahres gibt es auch den Nachfolgestandard SHA-3, der in einem Wettbewerb ausgewählt wurde. Allerdings gibt es bislang keine Forschungsergebnisse, die die Sicherheit von SHA2 in Frage stellen, daher ist ein Umstieg von SHA2 auf SHA3 nicht unbedingt nötig.
Serverbetreiber sollten, falls nicht schon geschehen, auf jeden Fall Cipher-Suites, die MD5 einsetzen, abschalten. Laut einer Statistik des Red-Hat-Entwicklers Hubert Kario bieten noch 32 Prozent der im Internet erreichbaren HTTPS-Server derartige Verschlüsselungsverfahren an. Von der Verwundbarkeit mit Clientzertifikaten sind Nutzer des Firefox-Browsers wegen der Fehler in der NSS-Bibliothek betroffen. Behoben wurde dies in Firefox 43.
Die neuen Angriffe haben mit den zuletzt geführten Diskussionen um die Abschaffung von Zertifikaten mit SHA1-Signaturen nicht direkt zu tun. Dabei ging es um die Sicherheit der Zertifikate selbst, während die Sloth-Angriffe die Verwendung von Signaturen in Transportprotokollen betreffen.
Die Forscher, die diese Angriffe präsentiert haben, gehören zum Prosecco-Team, das am französischen Forschungsinstitut Inria arbeitet. Dieses Team hat in der Vergangenheit bereits die Sicherheit von TLS mit formalen Methoden untersucht und einen verifizierten TLS-Stack mit dem Namen miTLS entwickelt. Zahlreiche Sicherheitslücken im TLS-Protokoll selbst und in TLS-Implementierungen gehen auf dieses Forschungsprojekt zurück, darunter der Triple-Handshake-Angriff und BERserk. Auch an Freak und Logjam waren Forscher von Prosecco beteiligt.