Das DNS-System ist unsicher

Wenn Sie eine beliebige Website aufrufen wollen, benötigt Ihr Browser ähnlich einer Telefonnummer eine eindeutige Nummer des Servers, auf dem die Website gespeichert ist - die sogenannte IP-Adresse. Diese IP-Adresse fragt er bei einem DNS-Server ab. Vergleichbar mit einem Telefonbuch, pflegt dieser DNS-Server eine Liste der die Domainnamen mit IP-Adressen verknüpft. Beispielsweise erhält Ihr Browser auf die Frage nach der IP-Adresse von der Domain www.dotplex.com die 2a0c:5f00:1:10b:: nach der neuen IPv6-Adressierung und zusätzlich auch noch die Antwort 185.231.124.11 nach der alten IPv4-Adressierung.

Diese Antwort des Nameservers wird in der Regel unverschlüsselt über das Internet übertragen und kann auf dem Weg zu Ihrem Computer leicht manipuliert werden, durch Hacker, den Provider, Netzbetreiber oder Geheimdienste. Diese Angriffsmethode, bei der sich jemand zwischen Sie und den eigentlichen Server stellt, nennt man Man-in-the-Middle (MITM). Ihr Browser erhält auf diesem Weg eine falsche IP-Adresse, die zu einem anderen Server gehört und auf dem z.B. eine manipulierte Version der Website liegt, die Sie eigentlich besuchen wollten. So sind auch viele weitere Angriffe möglich, z.B. das Mitlesen oder Umleiten von E-Mails. Besonders tückisch ist, dass Sie von diesem Angriff überhaupt nichts mitbekommen.

Absichern von DNS mit DNSSEC

Um diese MITM-Angriffe zu erschweren, kann der Administrator einer Domain die DNS-Einträge signieren. Damit kann überprüft werden, dass die Antwort vom Nameserver korrekt ist und auf dem Weg durch das Internet nicht manipuliert wurde. Das funktioniert zuverlässig, seit die Rootzonen (z.B. .de) signiert sind und eine Prüfung der Signaturen über alle autoritativen Nameserver hinweg möglich ist. Näheres zu DNSSEC können Sie auf Wikipedia nachlesen.

Domains bei dotplex sind ohne Aufpreis mit DNSSEC gesichert.

SSL-Zertifikate mit DANE prüfen

Damit Informationen nicht für alle lesbar durch die Kabel und Geräte des Internets geleitet werden, wird SSL eingesetzt, um diese Verbindungen durch Verschlüsselung sicher zu machen. Besonders wichtig ist das z.B. beim Abrufen von Websites (im Browser steht in der Adresszeile https:// statt nur http://) oder Verbindungen zu Mailservern.

Um eine SSL-verschlüsselte Verbindung zu einem Server aufzubauen benötigt dieser ein SSL-Zertifikat, das von einer Zertifizierungsstelle, einer sogenannten Certification Authority (CA) ausgestellt wurde, z.B. Let's Encrypt. Im Browser oder Betriebssystem sind die Root-Zertifikate einer Vielzahl von CAs hinterlegt, denen automatisch vertraut wird. Wenn die CA des Zertifikats nicht bekannt ist, zeigt der Browser eine Fehlermeldung an, dass der Verbindung nicht vertraut wird.

Nun gab es in der Vergangenheit einige Fälle, bei denen CAs gehackt wurden und dort Zertifikate für beliebige Domain-Namen ausgestellt werden konnten. Vermutlich ist das generell auch einigen Behörden und Geheimdiensten möglich. Mit einem solchen gefälschten Zertifikat lassen sich dann Man-in-the-Middle-Angriffe auf verschlüsselte Verbindungen ausführen und die übertragenen Daten auslesen. Dagegen schützte bisher nur, alle CAs aus dem Browser zu löschen und allen Zertifikaten erst nach einer manuellen Prüfung zu vertrauen, was in der Regel nicht praktikabel ist.

Daher gibt es seit seit einiger Zeit den Standard DANE, mit dem ein Hash des gültigen Zertifikats als TLSA-Record im DNS-Eintrag der Domain hinterlegt werden kann. Diesem DNS-Eintrag kann natürlich nur vertraut werden, wenn die Domain außerdem mit DNSSEC signiert ist. Dann jedoch kann damit die Gültigkeit eines Zertifikats überprüft und können MITM-Angriffe erschwert werden.

Bis heute hat sich DANE leider nur für die SMTP-Verbindungen zwischen Mail-Servern weitverbreitet durchgesetzt, obwohl der Standard auch für HTTPS-Verbindungen zu Websites funktionieren würde. Dafür müsste die Validierung jedoch in den Browsern implementiert werden.

Bei dotplex sind für alle Mailserver TLSA-Einträge für DANE hinterlegt. Da wir alle Kundendomains auch mit DNSSEC signieren, sind Ihre Mails bei dotplex automatisch mit DANE gesichert. Dies können Sie z.B. mit dem DANE-Validator unter dane.sys4.de überprüfen.

DNS over HTTPS, DNS over TLS

In den letzten Jahren hat außerdem ein weiterer Standard zur Absicherung des DNS Verbreitung gefunden und wird von einigen Browsern auch schon per default aktiviert. Bisher fragte der Browser bzw. das Betriebssystem die DNS-Daten über das DNS-Protokoll ab, in der Regel vom DNS-Server des Internetzugangsproviders. Dies hat zum einen den Nachteil, dass die Abfrage unverschlüsselt stattfindet, d.h. überwacht werden kann. Zum anderen können die Antworten vom Provider oder anderen Angreifern beliebig manipuliert werden, insbesondere wenn die Domain nicht mit DNSSEC signiert ist. Dies wird in einigen Ländern auch umfassend zur Zensur benutzt.

Mit DNS over HTTPS erfolgt die DNS-Abfrage verschlüsselt über HTTPS, bei DNS over TLS über eine verschlüsselte Form des DNS-Protokolls, in beiden Fällen manipulations- und abhörsicher am Internet-Provider vorbei. Dies erschwert zwar Zensur und MITM-Angriffe, es findet jedoch in erster Linie eine Verschiebung der Kontrolle statt. Es ist abzusehen, dass die meisten Internetnutzer DoH/DoT-Server großer Anbieter verwenden werden, z.B. sind bei Firefox die Server des US-Anbieters Cloudflare voreingestellt. Auch wenn die Verbindung von Browser zu Cloudflare sicher und vor Manipulation und Mitlesen geschützt ist, wäre eine Manipulation der DNS-Daten durch den Betreiber des DoH/DoT-Servers selbst für den Internetnutzer nicht nachvollziehbar, insbesondere weil DNSSEC vom Client nicht validiert wird.

DNS over HTTPS und DNS over TLS sind daher kein Ersatz für DNSSEC, da nur das Problem der Verschlüsselung gelöst wird und nicht die fehlende Ende-zu-Ende Authentizität der DNS-Daten vom Domain-Inhaber zum Internetnutzer.