Domain Name System absichern mit DNSSEC

Ohne das Domain Name System, das jedem surfenden PC den Weg zu Servern weist, ist das heutige Internet kaum vorstellbar. Doch das DNS wurde noch im Internet-Pleistozän entwickelt, als man sich um Hacker noch keine Gedanken machte. Nun soll mit der DNSSEC-Spezifikation das bisher vermisste Sicherheitskonzept gegen manipulierte DNS-Auskünfte Einzug halten.

In Pocket speichern vorlesen Druckansicht 16 Kommentare lesen
Lesezeit: 27 Min.
Von
  • Ulrich Wisser
Inhaltsverzeichnis

Eines der zentralen, aber noch weitgehend ungesicherten Elemente des Internet ist das Domain Name System (DNS). Es stellt eine Datenbank dar, die online über Bezüge zwischen lesbaren Maschinennamen und IP-Adressen Auskunft gibt. Zum Beispiel erreichen Browser den Dienst heise online, indem sie zunächst einen Nameserver des DNS befragen, auf welche IP-Adresse der Webserver www.heise.de hört (DNS-Query). Der Nameserver fischt aus seiner Datenbank (der Zonendatei) die zugehörigen Einträge heraus (Ressource Records) und sendet sie zum Client (DNS-Response). Aus dem Response-Paket entnimmt der Client die IP-Adresse und steuert diese dann an (zurzeit 193.99.144.85).

Normalerweise läuft diese Kommunikation zwischen Client und Nameserver über das User Datagram Protocol ab (UDP). Das hat ein gravierendes Manko: Das Protokoll sieht eine Überprüfung der Identität des Absenders nicht vor; die Absenderadresse eines UDP-Päckchens kann sogar beliebig eingetragen werden, weil dem inzwischen dafür genutzten Feld ursprünglich gar keine Funktion zugedacht war. Der Empfänger kann also nicht überprüfen, ob eine DNS-Antwort vom befragten DNS-Server stammt und schon gar nicht, ob sie vertrauenswürdig ist.

Mangels Sicherheitsvorkehrungen kann ein Angreifer, der sich in die Kommunikation zwischen DNS-Server und Client einschaltet, dem Empfänger eine andere IP-Adresse unterjubeln und diesen so in eine Falle locken. Man möchte aber doch sehr sicher sein, dass der eigene Browser beispielsweise bei www.meine-bank.de vom DNS wirklich zur richtigen IP-Adresse geleitet wird und nicht in eine Falle tappt. Die Browser-Interaktion ist nur ein Beispiel für das Gefährdungspotenzial, das ein ungesichertes DNS birgt; im Grunde sind sämtliche Internet-Anwendungen gefährdet, also auch Mail-, VoIP-, Filesharing- oder VPN-Programme.

Experten haben früh erkannt, dass hier Handlungsbedarf besteht. So kam es bereits 1997 zu einer ersten Definition der Domain Name System Security Extensions (DNSSEC) im RFC 4034. Diese Fassung funktionierte jedoch nur in kleinen Netzen; bei großen überforderte das geschwätzige Protokoll die Domain Name Server. Nach verschiedenen Überarbeitungen liegt seit März 2005 die aktuelle Version vor, bekannt auch unter der Bezeichnung DNSSEC-bis. Mit DNSSEC signiert der Administrator einer Domain die Namenseinträge in seinem Nameserver kryptografisch. Dafür werden zusätzliche Ressource Records angelegt, sodass DNSSEC-Antworten länger sind als herkömmliche DNS-Antworten. Die zusätzlichen DNS-Records werden bei Anfragen als Bestandteile des DNS-Response versendet, sodass Empfänger zunächst prüfen können, ob der Response integer, also unverfälscht ist. Weil der Response auch ein Zertifikat enthält (einen signierten kryptografischen Schlüssel), kann der Empfänger in einem zweiten Schritt auch den Absender verifizieren und so feststellen, ob die im Paket enthaltene Information vertrauenswürdig ist.

Die Signatur der Pakete ist das Resultat einer Hash-Funktion. Der Empfänger kann den Hash des Paketinhalts selbst mit derselben Hash-Funktion gegenrechnen; stimmt sein Resultat mit der Signatur überein, gilt das Paket als unverfälscht. Den Absender des DNS-Response überprüft der Empfänger anhand des Zertifikats. Das Zertifikat weist den Inhaber als Element einer Vertrauenskette aus (Chain of Trust). Dabei stellt der Administrator einer übergeordneten Domain seinen unterstellten Domains Zertifikate aus; er signiert die kryptografischen Schlüssel der untergeordneten Administratoren. Den Hauptschlüssel einer Vertrauenskette hat die oberste Instanz, die Domain-Verwaltung (Registry). Beispielsweise ist die Registry der .de-Domain für die Zertifizierung aller Domains mit der Endung .de zuständig.

Viel Zeit wurde darauf verwendet, das Verfahren abwärtskompatibel zum herkömmlichen DNS zu machen, damit ältere Geräte oder Programme, die noch vor der Spezifikation der DNSSEC-Erweiterungen entwickelt wurden, weiterhin funktionieren. Solche Geräte und Programme ignorieren die neuen DNS-Records, während die modernen, die gemäß der DNSSEC-Spezifikation entwickelt worden sind, damit die Echtheit der Antwort überprüfen können. Die DNS-Abfrage (Query) ist gegenüber dem herkömmlichen DNS-Verfahren unverändert.

Einige wenige Domains wurden schon früh auf DNSSEC aufgerüstet. Seit Anfang 2007 sendet zum Beispiel die Top Level Domain (TLD) Schwedens (.se) signierte DNS-Pakete. Bei der Einführung kam es zwar hier und da zu Problemchen, aber sie ließen sich leicht beseitigen, sodass seither alle .se-Domains reibungslos funktionieren. Daraufhin hat man in Schweden DNSSEC auch für Subdomains eingeführt – und dieser Schritt verlief ebenso problemlos.