NSEC3NSEC3 ist ein Verfahren, um im Domain Name System (DNS) das Fehlen eines Domainnamens oder Resource Records mit kryptographischen DNSSEC-Signaturen nachzuweisen. Durch den NSEC3 Resource Record können DNS-Spoofing-Angriffe abgewehrt werden, die vorgaukeln, dass ein bestimmter Domainname nicht existiert. NSEC3 wurde von der IETF im Jahr 2008 als Request for Comments veröffentlicht. Im Gegensatz zu dem alternativen NSEC Resource Record versteckt NSEC3 die existierenden Domainnamen durch eine kryptographische Hashfunktion, um sie vor dem Auslesen per Zone Walking zu schützen. FunktionsweiseMit dem Signieren von DNS-Einträgen mittels DNSSEC kann verifiziert werden, dass diese Einträge nicht verfälscht wurden und von den korrekten autoritativen Nameservern stammen. Zunächst nicht möglich ist es jedoch, das Nicht-Vorhandensein von DNS-Einträgen zu beweisen. Fragt etwa ein Client den Namen test.example.org an, so kann ein Angreifer die entsprechenden Daten aus dem Antwortpakets des Servers entfernen, ohne dass dies dem Client ersichtlich wäre. Um derartige Attacken zu verhindern, werden alle Namen einer Zone über NSEC Resource Records alphabetisch geordnet ringförmig verkettet, wobei der letzte Eintrag auf den ersten zeigt (siehe NSEC Resource Record). Diese NSEC-Records werden mit einem RRSIG Resource Record unterschrieben. In seinen Antwortpaketen liefert ein DNS-Server zu einem Namen jeweils den zugehörigen NSEC-Eintrag mit. Semantisch stellt ein NSEC-Resource-Record für den Client also sicher, dass sich zwischen zwei Namen kein weiterer befindet. Dies kann ausgenutzt werden, um eine Liste aller Namen in einer DNS-Zone zu erschließen, indem sequentiell alle NSEC-Resource-Records einer Zone abgefragt werden (Zone Walking). Diese Eigenschaft von NSEC bzw. DNSSEC ist in bestimmten Einsatzszenarien unerwünscht. Im Gegensatz zu NSEC verwendet NSEC3 Hashwerte der Namen statt Klartext-Label, wodurch die Ordnungsrelation auf der Menge der errechneten Hashwerte definiert wird. Ein NSEC3-Resource-Record bestätigt also, dass zwischen zwei Hashwerten zu Namen der Zone kein Hashwert eines weiteren Namens liegt. Der Resolver kann also den Hash-Wert seines angefragten Labels ermitteln und feststellen, dass der nächste Wert in der Kette ein anderer ist, ohne zu wissen, welchen Inhalt dieser konkret hat. Die verwendete Hashfunktion und andere Parameter des Verfahrens wie zum Beispiel ein Salt sind im NSEC3 Resource Record hinterlegt und werden vom Resolver ausgewertet. Zusätzlich gibt es pro Zone einen NSEC3PARAM Resource Record, der diese Parameter für den autoritativen Nameserver hinterlegt. NSEC3 Resource RecordEin NSEC3 Resource Record besteht aus den folgenden Feldern:
NSEC3PARAM Resource RecordDer Zweck eines NSEC3PARAM Resource Records ist es, in der DNS-Zone Parameter für die autoritativen Nameserver zu hinterlegen, die für die NSEC3-Hashberechnung erforderlich sind. Die Informationen sind prinzipiell auch in den NSEC3-Records enthalten, der NSEC3PARAM-Record erleichtert aber die Auffindbarkeit, da er an der Spitze der Zone unter dem Zonennamen abgelegt wird. DNSSEC-Resolver und Validatoren verwenden den NSEC3PARAM-Record nicht. Der NSEC3PARAM Resource Record besteht aus folgenden Feldern:[1]
BeispielBei Abfrage des nicht existierenden Domainnamens pffaak97rt0cs40je4c2iho30cebf3it.de. 7200 IN NSEC3 1 1 15 CA12B74ADB90591A PFFBLDU4RR5BISB2JIOS36ABAJLQNQMS NS DS RRSIG Dieser Record weist die Nichtexistenz von tjlb7qbojvmlf1s6gdriru7vsms1lg16.de. 7200 IN NSEC3 1 1 15 CA12B74ADB90591A TJLG9BE83U1BLVBVCTP8RIQP60D6ATDP NS SOA RRSIG DNSKEY NSEC3PARAM Dieser Record weist nach, dass der umschließende Domainname nihitgish70cve28nu73a3segd6r1d4p.de. 7200 IN NSEC3 1 1 15 CA12B74ADB90591A NIHRI169E5SB3FJMDM1I3LTSNURVSITQ NS DS RRSIG Dieser Record weist die Nichtexistenz eines Wildcard-Records AngriffeNSEC3 erschwert zwar das Zone Walking, dennoch können durch kryptoanalytische Angriffe die Klartextnamen einer Zone teilweise oder ganz erlangt werden. Der Angriff besteht aus zwei Phasen:[2]
Durch den Einsatz des obigen Angriffsverfahrens auf alle Top-Level-Domains können innerhalb von zwei Wochen 79 % der Klartextnamen wiederhergestellt werden. Die Anzahl an Hash-Iterationen hat keinen signifikanten Einfluss auf die Wiederherstellungsrate, sondern die Qualität des für den Angriff verwendeten Wörterbuchs.[3] Normen und Standards
Einzelnachweise
|