Zertifikate für beliebige Domain: Forscher demonstrieren kritisches DNS-Problem

Die Namensauflösung via DNS ist einer der wichtigsten Bausteine des Internet. Und er ist nach wie vor haarsträubend unsicher. Das demonstrierte ein Forscher-Team des Fraunhofer SIT am Beispiel der Zertifikatsausstellung auf Basis von Domain Validation (DV). Es gelang ihnen dabei, die Kontrollen der Zertifizierungsstellen durch Manipulationen am DNS auszutricksen und sich ohne Berechtigung Zertifikate auf eine beliebige Domain ausstellen zu lassen.

Domain Validation (DV) ist das verbreitetste Prüfverfahren für die Ausstellung von Zertifikaten. Dabei weist der Antragsteller gegenüber der Zertifizierungsstelle nach, dass er tatsächlich administrative Kontrolle über die Domain hat, für die er ein Zertifikat beantragt. Das geschieht dann etwa über E-Mails mit einem Verifikations-Link an eine Admin-Mail-Adresse oder spezielle Dateien, die auf dem zugehörigen Web-Server anzulegen sind. Diese Kontrolle erfolgt vollständig automatisiert. Ihr erster Schritt ist immer die Auflösung der beantragten Domain via DNS durch die Zertifizierungsstelle (CA).

Man sollte deshalb annehmen, dass die CAs ihre DNS-Nutzung sehr gut absichern. Dass sie diese also insbesondere gegen bekannte Angriffe härten. Das ist aber offenbar nicht der Fall. Wie Shulman et al. in ihrem noch nicht veröffentlichten Paper dokumentieren gelang es ihnen bei mehreren großen CAs, den Cache der genutzten DNS-Server mit falschen Einträgen zu vergiften. Dadurch erfolgte die Kontrolle über einen Server der Angreifer; das Zertifikat wurde ausgestellt.

Das Vergiften von DNS-Caches mit falschen Einträgen ist ein altbekanntes Problem. Es wird dadurch erschwert, dass jede DNS-Anfrage eine Zufallszahl enthält, die auch in der Antwort stecken muss. Der Angriff beruht grob vereinfacht darauf, dass der Angreifer durch spezielle ICMP-Pakete (fragmentation needed) eine Zerlegung der DNS-Pakete in zwei Teile erzwingt: Der erste enthält die zur Authentifizierung genutzte und dem Angreifer unbekannte Challenge, der zweite die eigentliche Antwort in Form einer IP-Adresse. Diesen zweiten Teil kann der Angreifer einfach fälschen und so falsche IP-Adressen in den DNS-Cache einschleusen. Dazu muss er sich nicht einmal in einer Man-in-the-Middle-Position befinden. Der Angriff ist in einem so genannten Off-Path-Szenario durchführbar, also ohne direkten Zugang zu den legitim ausgetauschten Paketen.

Cache Poisoning auf Basis von IPv4-Fragmentierung ist keineswegs neu; Amir Herzberg und Haya Shulman präsentierten das bereits vor fünf Jahren. Neu ist, dass das Fraunhofer-SIT-Team, dem auch Shulman angehört, nachweisen konnte, dass dieser Angriff erschreckenderweise immer noch funktioniert – und zwar sogar gegen Zertifizierungsstellen, die DNS zum Ausstellen von Zertifikaten nutzen. Deshalb schlagen die Forscher ein besseres Verfahren zur Verifizierung von Zertifikatsanträgen vor, das sie selbst unter dem Namen DV++ entwickelt haben. Sie werden das Paper dazu auf der ACM Conference zu Computer and Communications Security im Oktober öffentlich vorstellen.

Dass Angreifer sich auf diesem Weg Zertifikate für beliebige Domains ausstellen lassen können, denen jeder Browser und jede andere TLS-nutzende Applikation vertraut, ist schlimm genug. Doch die CAs könnten sich durchaus schützen, etwa indem sie für ihre Tests DNS-Server ohne Caching nutzen oder Fragmentierung unterbinden und DNS über TCP nutzen. Andererseits ist das Problem sehr viel größer. Denn mit gefälschten DNS-Einträgen lässt sich nahezu jede Datenübertragung im Internet angreifen.

Der einzig nachhaltige Schutz gegen derartige Angriffe ist DNSSEC, bei dem die DNS-Informationen digital signiert werden und sich damit nicht mehr fälschen lassen. Doch wie die Forscher zu Recht anmerken, wurde DNSSEC zwar schon vor über zwei Jahrzehnten standardisiert, ist aber immer noch nicht wirklich weit verbreitet. Nur etwa ein Viertel aller DNS-Resolver prüfen derzeit DNSSEC-Signaturen und sogar nur wenig mehr als 1 Prozent aller Domains sind signiert. Die Lage scheint hoffnungslos. Um trotzdem nicht in Lethargie zu verfallen, schlagen die Forscher DV++ vor, das zumindest mal die Domain Validation unabhängig von DNSSEC sicherer gestalten kann.

2018-09-11T08:17:03+00:00