Zone Walking
Zone Walking (auch DNSSEC Walking oder Zone Enumeration) ist ein Verfahren, mit dem Angreifer den vollständigen Inhalt von DNSSEC signierten DNS-Zonen auslesen können. Dadurch können vertrauliche Daten (z. B. Kundenlisten) und sicherheitsrelevante Informationen (z. B. IP-Adressen von Servern) preisgegeben werden.
Funktionsweise
Beim Signieren einer Zone verkettet DNSSEC automatisch mittels NSEC Resource Records alle Labels ringförmig in alphabetischer Reihenfolge. Beispiel Zone example.de:
example.de. NSEC name1 name1 NSEC name2 name2 NSEC name5 name5 NSEC example.de.
Links steht jeweils das Label (kanonischer Name) und rechts ein Verweis auf das lexigrafisch nächste Label.
Damit kann das Nichtvorhandensein von Namen bewiesen werden. Fragt beispielsweise ein Client den nichtexistierenden Namen name3 an, so antwortet der Nameserver mit dem NSEC-Eintrag name2 NSEC name5 und zeigt damit an, dass sich zwischen name2 und name5 kein weiterer Eintrag befindet.
Ein Angreifer macht sich diese Verkettung zunutze, indem er mit dem ersten Namen einer Zone beginnend (das ist immer der Name der Zone selbst) die Kette durch sukzessive Abfragen durchläuft. Durch dieses technisch recht einfache Verfahren kann er innerhalb weniger Sekunden den gesamten Zoneninhalt auslesen.
Abwehr
NSEC3
Um Zone Walking zu erschweren, wurde mit NSEC3 eine Alternative zu NSEC eingeführt, die Namen nicht im Klartext darstellt, sondern als kryptographischer Hashwert. NSEC3 erschwert das Zone Walking, kann jedoch durch Angriffe auf die Hash-Funktion das Zone Walking nicht vollständig unterbinden.[1]
Minimale Abdeckung mit Online-Signierung
Ein anderes Verfahren ist die in RFC 4470 vorgeschlagene Verwendung von NSEC-Records mit minimaler Abdeckung, die dynamisch erzeugt werden. Anstatt auf real existierende Namen zu verweisen, zeigen die NSEC-Records auf nicht vorhandene Einträge. Dieses Verfahren erfordert Online-Signierung, also die Erzeugung von DNSSEC-Signaturen zum Zeitpunkt der Antwort. Das ist mit erheblichen Nachteilen behaftet, da es die Rechenlast auf dem Server signifikant erhöht und die ständige Präsenz des privaten Zonen-Schlüssels erforderlich macht, mit dem dynamisch erzeugte NSEC-Records signiert werden. Im Gegensatz zu NSEC3 bietet es jedoch den Vorteil, dass es bei korrekter Anwendung das Zone Walking verhindert.
Das Prinzip der minimalen Abdeckung ist auch mit NSEC3 möglich und als NSEC3 White Lies (englisch white lie ‚harmlose Lüge‘) bekannt.[2] Es bietet dieselben Vor- und Nachteile wie das Pendant mit dynamisch erzeugten NSEC-Records.
NSEC5
Ein weiteres Verfahren wurde unter dem Namen NSEC5 vorgeschlagen. Statt einer Hash-Funktion wie bei NSEC3 verwendet NSEC5 ein asymmetrisches Kryptosystem. Das entspricht der Verwendung von Online-Signierung mit den damit verbundenen Performance-Nachteilen. Allerdings verwendet NSEC5 für diesen Zweck ein eigenes Schlüsselpaar, sodass der private Zonen-Schlüssel nicht auf dem DNS-Server vorgehalten werden muss. Zone Walking wird wie auch bei Online-Signierung mit NSEC oder NSEC3 vollständig unterbunden.[3]
Einzelnachweise
- Matthäus Wander, Lorenz Schwittmann, Christopher Boelmann, Torben Weis: GPU-based NSEC3 Hash Breaking. In: 2014 IEEE 13th International Symposium on Network Computing and Applications (NCA). IEEE, 2014, ISBN 978-1-4799-5393-6, doi:10.1109/NCA.2014.27. Vortrag: Folien.
- R. Gieben, W. Mekking: RFC 7129 Appendix B – Online Signing: NSEC3 White Lies. IETF. Februar 2014. Abgerufen am 11. Januar 2020.
- Sharon Goldberg, Moni Naor, Dimitrios Papadopoulos, Leonid Reyzin, Sachin Vasant, Asaf Ziv: NSEC5: Provably Preventing DNSSEC Zone Enumeration. In: NDSS Symposium 2015. Internet Society, 2015, doi:10.14722/ndss.2015.23211. Vortrag: Folien.