DNSSEC (ang. DNS Security Extensions) – rozszerzenie systemu DNS mające na celu zwiększenie jego bezpieczeństwa. DNSSEC zapewnia uwierzytelnianie źródeł danych (serwerów DNS) za pomocą kryptografii asymetrycznej oraz podpisów cyfrowych.

DziałanieEdytuj

System DNSSEC sprawdza pochodzenie danych oraz ich integralność przy użyciu klucza publicznego i prywatnego. Serwer publikujący szyfruje (podpisuje) swoje dane za pomocą klucza prywatnego, które każdy może zweryfikować za pomocą jawnie dostępnego klucza publicznego. Aby zweryfikować autentyczność kluczy publicznych, serwery używają tzw. "łańcucha zaufania", czyli poprawność klucza może być poświadczona przez serwer nadrzędny (w hierarchii DNS). Serwer nazw sprawdzając autentyczność danych porównuje rekord DNSKEY z podpisem jego strefy nadrzędnej. Aby zweryfikować autentyczność klucza strefy nadrzędnej, trzeba się zwrócić do strefy nadrzędnej dla tej strefy itd., aż do domeny głównej. Dla danych DNS generuje się ich bezpieczny skrót używając algorytmów MD5 z RSA lub SHA-1 z DSA. Podpisy dołącza się do uwierzytelnienia danych jako rekordy RRSIG[1].

Do 2008 roku specyfikacja DNSSEC wymagała ujawnienia wszystkich podpisywanych domen. W nowej specyfikacji wprowadzono mechanizm NSEC3, który miał ten problem rozwiązać. W praktyce jednak możliwe jest jego złamanie[2].

Dodatkowe elementy wprowadzone przez DNSSECEdytuj

Protokół DNSSEC wprowadza do systemu DNS rekordy, które zapewniają jego bezpieczeństwo:

  • klucz publiczny DNSKEY – sprawdza podpisy paczek RRset,
  • rekord NSEC (Next Secure) – zapewnia spójność danych strefy i umożliwia sprawdzenie informacji, czy istnieje rekord lub o braku zabezpieczeń,
  • rekord RRSIG (Resource Record Signature) – zawiera podpis zestawu rekordów RRset,
  • rekord DS (Delegation Signer) – wskazuje klucz KSK (Key Signing Key), podpisujący klucz ZSK (Zone Signing Key) strefy podrzędnej.

Protokół DNSsec wprowadza nowe bity nagłówka komunikatu systemu DNS:

  • DO (DNSSEC OK) – resolver obsługuje DNSSEC
  • AD (Authenticated Data) – dane autentyczne, bit ten informuje, że dane zostały sprawdzone,
  • CD (Checking Disabled) – wyłączone sprawdzanie. Informuje serwer, że dane niesprawdzone będą akceptowane.

PrzypisyEdytuj

  1. Sam Preston: DNSSEC: How It Works & Key Considerations. 2019.
  2. Daniel J. Bernstein: Breaking DNSSEC. University of Illinois at Chicago, 2009.

Linki zewnętrzneEdytuj