Raccoon Attack: A new attack on TLS

02.10.2020 - Robert Merget

In Kooperation mit der Universität Paderborn, der Tel Aviv University und dem BSI haben NDS Wissenschaftler eine neue Schwachstelle im TLS Standard entdeckt. Bei der Schwachstelle, welche die Forscher "Raccoon" getauft haben, handelt es sich um eine Timing Schwachstellen in der Spezifikation von TLS. Mittels neuer Techniken können unter gewissen Umständen TLS-DH(E) Verbindungen entschlüsselt werden.

Raccoon ist eine Timing-Sicherheitsanfälligkeit in der TLS-Spezifikation, die sich auf HTTPS und andere Dienste die TLS verwenden auswirkt. Mit diesen Protokollen kann jeder im Internet surfen, E-Mails verwenden, online einkaufen und Sofortnachrichten senden, ohne dass Dritte die Kommunikation mitlesen können.

Mit Raccoon können Angreifer unter bestimmten Bedingungen die Verschlüsselung aufheben und vertrauliche Nachrichten lesen. Die Sicherheitslücke ist allerdings schwer auszunutzen und beruht auf sehr genauen Timing-Messungen und betrifft nur bestimmte Serverkonfigurationen.

Der Diffie-Hellman (DH) Schlüsselaustausch ist eine etablierte Methode zum Austausch von Schlüsseln in TLS-Verbindungen. Bei Verwendung von Diffie-Hellman generieren beide TLS-Teilnehmer zufällig private Schlüssel (a und b) und berechnen ihre öffentlichen Schlüssel: g^a mod p und g^b mod p. Diese öffentlichen Schlüssel werden in TLS KeyExchange Nachrichten gesendet. Sobald beide Schlüssel empfangen wurden, können sowohl der Client als auch der Server einen gemeinsam genutzten Schlüssel g^ab mod p, das sogenannte Premaster-Secret, berechnen, von dem alle weiteren TLS-Sitzungsschlüssel mittels einer Schlüsselableitungsfunktion berechnet werden.--

Der Raccoon Angriff nutzt einen Seitenkanal in der TLS-Spezifikation aus. TLS 1.2 (und alle früheren Versionen) schreibt vor, dass alle führenden Null-Bytes im Premaster-Secret entfernt werden, bevor sie für weitere Berechnungen verwendet werden. Da das resultierende Premaster-Secret als Eingabe für die Schlüsselableitungsfunktion verwendet wird, die auf Hash-Funktionen mit unterschiedlichen Timing-Profilen basiert, können präzise Timing-Messungen es einem Angreifer ermöglichen, ein Orakel zu konstruieren. Dieses Orakel teilt dem Angreifer mit, ob ein berechnetes Premaster-Secret mit einem Null-Byte beginnt oder nicht.

Nur ein Byte aus einem Premaster-Secret zu lernen, würde dem Angreifer nicht viel helfen. Hier wird der Angriff jedoch interessant: Stellen Sie sich vor, der Angreifer hat eine ClientKeyExchange-Nachricht mit dem Wert g^a abgefangen. Der Angreifer kann jetzt verwandte Werte zu g^a erstellen und diese in verschiedenen TLS-Handshakes an den Server senden. Konkret konstruiert der Angreifer Werte g^r_i * g^a, die zu Premasters-Secrets der Form g^(r_i * b) * g^ab führen. Durch das Timing Verhalten des Servers kann der Angreifer Werte finden, die zu Premaster-Secrets führen, die mit Null-Bytes beginnen. Dies hilft dem Angreifer letztendlich, einen Satz von Gleichungen zu erstellen (Hidden Number Problem)und zu lösen, um das ursprüngliche Premaster-Secret zu berechnen, das zwischen dem Client und dem Server eingerichtet wurde.

Weitere Informationen zu dem Angriff finden Sie unter: https://raccoon-attack.com/

Quelle

Tags: Diffie-Hellman, hidden number problem, hnp, msb, TLS