DNSSEC, die Abkürzung für „Domain Name System Security Extensions“, ist ein erweitertes Protokoll, das die Authentizität der von DNS-Servern bereitgestellten Informationen sicherstellen soll. Es nutzt Public-Key-Kryptografie und digitale Signaturen, um Sicherheitslücken im herkömmlichen DNS-Protokoll zu schließen. DNS wurde 1983 entwickelt und ist ein System, das Domänennamen (Hostnamen) in IP-Adressen auflöst. Es wurde jedoch wegen seines Mangels an robusten Sicherheitsmechanismen kritisiert. Eine erhebliche Schwachstelle ist die Anfälligkeit für DNS-Cache-Poisoning-Angriffe.
Die DNS-Infrastruktur besteht aus zwei Haupttypen von Servern:
Wenn schädliche oder falsche Daten im Cache gespeichert werden („vergifteter Cache“), kann der DNS-Cache-Server den Clients eine falsche IP-Adresse bereitstellen und sie auf betrügerische Websites umleiten. Dieser absichtliche Missbrauch wird als DNS-Cache-Poisoning bezeichnet. Dies liegt daran, dass die DNS-Kommunikation zwischen Servern das zustandslose UDP-Protokoll verwendet, bei dem die Absenderüberprüfung fehlt. Durch geschicktes Timing gefälschter Antwortpakete, um sie mit legitimen Anfragen in Einklang zu bringen, führen Angreifer Cache-Poisoning durch.
DNSSEC mildert dies durch die Einführung einer kryptografischen Validierung. Autoritative DNS-Inhaltsserver generieren ein Paar kryptografischer Schlüssel – einen privaten Schlüssel und einen öffentlich zugänglichen Schlüssel. Bei der Beantwortung einer Abfrage verwendet der Server seinen privaten Schlüssel, um die DNS-Antwort zu signieren. Nach Erhalt der Antwort validiert der DNS-Cache-Server die digitale Signatur mithilfe des öffentlichen Schlüssels. Dieser Prozess stellt die Integrität und Authentizität der Daten sicher und verhindert wirksam DNS-Cache-Poisoning-Angriffe.