Co to jest DNSSEC i kiedy warto go włączyć? Bezpieczeństwo DNS w praktyce

DNS to system nazw domenowych. Został zaprojektowany w latach 80' w zupełnie innym środowisku bezpieczeństwa niż to, w którym funkcjonuje dziś. Jedną z fundamentalnych słabości oryginalnego projektu jest brak mechanizmu weryfikacji autentyczności odpowiedzi DNS. Serwer, który Cię pyta, o rekord DNS, nie ma możliwości sprawdzenia, czy odpowiedź pochodzi naprawdę od autorytatywnego serwera tej domeny, czy może od kogoś, kto tę odpowiedź sfałszował.

DNSSEC (Domain Name System Security Extensions) to zestaw rozszerzeń protokołu DNS, które rozwiązują ten problem przez dodanie podpisów kryptograficznych do rekordów DNS. Ten poradnik tłumaczy, jak DNSSEC działa, co chroni i czego nie chroni oraz jak go wdrożyć.

Jakie zagrożenia adresuje DNSSEC?

DNS cache poisoning (zatrucie cache)

Atakujący wstrzykuje fałszywe rekordy DNS do cache rekurencyjnego serwera DNS. Gdy użytkownicy pytają o domenę (np. bank.pl), serwer zwraca adres IP podstawionej przez atakującego strony, zamiast prawdziwej. Użytkownik wchodzi na stronę wyglądającą identycznie jak bank, wpisuje dane logowania, które trafiają do atakującego. Bez DNSSEC serwer DNS nie ma możliwości wykrycia, że odpowiedź pochodzi z fałszywego źródła.

DNS spoofing i man-in-the-middle

Atakujący przechwytuje komunikację DNS między klientem a serwerem i podstawia własne odpowiedzi, kierując użytkowników na złośliwe serwery. Takie zdarzenie jest szczególnie prawdopodobne w sieciach publicznych (kawiarnie, lotniska), gdzie ruch DNS nie jest szyfrowany.

Atak na łańcuch delegacji

Atakujący kompromituje jeden z serwerów DNS w łańcuchu delegacji (root → TLD → autorytatywny) i wstrzykuje fałszywe odpowiedzi dla wszystkich domen obsługiwanych przez ten serwer.

DNSSEC nie szyfruje danych DNS (zapytania i odpowiedzi pozostają czytelne, to zadanie DNS over HTTPS / DNS over TLS), ale gwarantuje ich integralność i autentyczność. Weryfikuje, że odpowiedź pochodzi od właściwego autorytatywnego serwera i nie była modyfikowana w drodze.

Jak działa DNSSEC?

DNSSEC działa na zasadzie łańcucha zaufania opartego na kryptografii asymetrycznej:

Klucze kryptograficzne

Każda strefa DNS z DNSSEC ma dwa typy kluczy:

  • ZSK (Zone Signing Key) — para kluczy używana do podpisywania rekordów DNS w strefie. Klucz prywatny ZSK jest przechowywany na serwerze DNS i używany do tworzenia podpisów. Klucz publiczny ZSK jest opublikowany w strefie jako rekord DNSKEY.
  • KSK (Key Signing Key) — para kluczy używana wyłącznie do podpisywania rekordu DNSKEY zawierającego klucz publiczny ZSK. Klucz publiczny KSK (tzw. trust anchor) jest rejestrowany u rejestratora domeny i publikowany w strefie nadrzędnej jako rekord DS (Delegation Signer).

Rekordy DNSSEC

DNSSEC dodaje do strefy DNS kilka nowych typów rekordów:

  • RRSIG — podpis kryptograficzny dla zestawu rekordów (Resource Record Set). Każdy zestaw rekordów tego samego typu (np. wszystkie rekordy A domeny) ma swój podpis RRSIG.
  • DNSKEY — klucze publiczne DNSSEC (ZSK i KSK) opublikowane w strefie.
  • DS (Delegation Signer) — skrót (hash) klucza KSK, opublikowany w strefie nadrzędnej (np. .pl) przez rejestratora. To ogniwo łączące strefę z łańcuchem zaufania.
  • NSEC/NSEC3 — rekordy umożliwiające zweryfikowane zaprzeczenie istnienia rekordu (authenticated denial of existence), które pozwalają udowodnić, że dany rekord DNS nie istnieje, bez możliwości sfabrykowania takiej odpowiedzi.

Łańcuch zaufania

Weryfikacja DNSSEC przebiega od korzenia (root zone) przez TLD (.pl) do konkretnej domeny. Root zone jest podpisana przez ICANN, której klucz publiczny jest wbudowany w oprogramowanie rekurencyjnych serwerów DNS jako zaufany punkt startowy. Każda kolejna delegacja jest weryfikowana przez rekord DS w strefie nadrzędnej, aż do docelowej domeny.

Kiedy warto wdrożyć DNSSEC?

DNSSEC jest szczególnie wartościowy dla:

  • Banków i instytucji finansowych — ataki DNS cache poisoning skierowane na strony bankowe to realne i potwierdzone zagrożenie. DNSSEC znacząco podnosi koszt skutecznego ataku.
  • Sklepów internetowych — przekierowanie użytkowników sklepu na fałszywą stronę może prowadzić do kradzieży danych kart płatniczych.
  • Usług rządowych i publicznych — wiele krajów wdraża DNSSEC dla domen rządowych jako standard.
  • Firm przetwarzających wrażliwe dane — każda organizacja, gdzie kompromitacja DNS mogłaby prowadzić do wycieku poufnych danych.
  • Domen z wartościowymi e-mailami — DNSSEC chroni też rekordy MX, co utrudnia przekierowanie poczty przez zatrucie cache DNS.

Dla typowego bloga czy strony firmowej bez wrażliwych danych DNSSEC jest mniej krytyczny. Wdrożenie go jest sygnałem dbałości o bezpieczeństwo i nie ma istotnych wad operacyjnych przy prawidłowej konfiguracji.

DNSSEC to jeden z elementów bezpieczeństwa domeny, uzupełniający inne mechanizmy. Bezpieczny hosting z aktywną ochroną przed atakami na infrastrukturę DNS, HTTPS i aktualnym certyfikatem SSL to fundament bezpiecznej obecności w sieci — DNSSEC chroni warstwę DNS, SSL chroni warstwę transportową.

Jak wdrożyć DNSSEC — krok po kroku

Krok 1 — sprawdź wsparcie u dostawcy DNS

DNSSEC wymaga wsparcia po stronie autorytatywnego serwera DNS. Sprawdź, czy Twój dostawca hostingu lub rejestrator obsługuje DNSSEC. Większość nowoczesnych dostawców (Cloudflare, OVH, nazwa.pl, NASK dla domen .pl) obsługuje DNSSEC. Stare lub tańsze panele DNS mogą tej funkcji nie mieć.

Krok 2 — wygeneruj klucze i podpisz strefę

Większość dostawców DNS obsługujących DNSSEC automatyzuje ten krok, klikasz „Włącz DNSSEC" w panelu, a serwer DNS generuje klucze ZSK i KSK, podpisuje strefę i tworzy rekordy RRSIG, DNSKEY i NSEC/NSEC3 automatycznie.

Jeśli zarządzasz własnym serwerem DNS (np. BIND na serwerze VPS), podpisywanie strefy konfiguruje się przez narzędzia dnssec-keygen i dnssec-signzone lub przez auto-dnssec w BIND 9.7+.

Krok 3 — zarejestruj rekord DS u rejestratora

Po wygenerowaniu kluczy musisz zarejestrować rekord DS (Delegation Signer) u rejestratora domeny, to ogniwo łączące Twoją strefę z łańcuchem zaufania DNSSEC. Rejestrator przekaże rekord DS do rejestru TLD (np. NASK dla .pl).

W przypadku dostawców takich jak Cloudflare ten krok może być zautomatyzowany, jeśli domena jest też zarejestrowana u Cloudflare lub jeśli rejestrator obsługuje automatyczną synchronizację DS.

Krok 4 — zweryfikuj konfigurację

Po propagacji DS sprawdź poprawność DNSSEC narzędziami:

  • dnsviz.net — wizualizuje łańcuch zaufania DNSSEC i identyfikuje problemy w konfiguracji.
  • verisignlabs.com/dnssec-debugger — debugger DNSSEC Verisign.
  • dig +dnssec twojadomena.pl A — sprawdza czy odpowiedź zawiera rekord RRSIG.

Potencjalne komplikacje DNSSEC

Rotacja kluczy (key rollover)

Klucze ZSK powinny być rotowane co 1–3 miesiące, a klucze KSK co roku. Rotacja wymaga ostrożnej synchronizacji: nowy klucz musi być opublikowany w DNS, zanim stary zostanie wycofany, a rekord DS w strefie nadrzędnej musi być zaktualizowany przy rotacji KSK. Nieprawidłowa rotacja może spowodować, że domena stanie się niedostępna dla użytkowników z weryfikującymi DNSSEC resolverami.

Zwiększone rozmiary odpowiedzi DNS

DNSSEC dodaje rekordy RRSIG, DNSKEY i NSEC do odpowiedzi DNS, co znacząco zwiększa ich rozmiar. Odpowiedzi DNS ze strefy z DNSSEC mogą być kilkukrotnie większe niż bez DNSSEC, co może powodować fragmentację pakietów UDP i wymaga wsparcia dla TCP fallback.

Złożoność zarządzania

DNSSEC zwiększa złożoność zarządzania strefą DNS. Klucze muszą być bezpiecznie przechowywane, rotacje zaplanowane, konfiguracja monitorowana. Dla większości właścicieli stron zarządzanie DNSSEC przez panel dostawcy (który automatyzuje rotację kluczy) jest wystarczające i nie wymaga wiedzy o kryptografii.

Wdrożenie i utrzymanie DNSSEC, SSL i kompletnej konfiguracji DNS dla domeny to zadanie, które profesjonalna opieka WordPress może przejąć w całości — razem z monitorowaniem ważności certyfikatów, stanem rekordów DMARC i aktualności kopii zapasowych.

Jeśli prowadzisz sklep lub serwis z hostingu WordPress, DNSSEC w połączeniu z HTTPS tworzy kompletną ochronę dla użytkowników na poziomie DNS i transportu. Atakujący nie może ani sfałszować rekordów DNS, ani podsłuchać transmisji.

Podsumowanie

DNSSEC rozwiązuje fundamentalną lukę bezpieczeństwa protokołu DNS, brak weryfikacji autentyczności odpowiedzi. Dla witryn przechowujących dane użytkowników, realizujących płatności lub budujących zaufanie marki, DNSSEC jest wartościowym uzupełnieniem HTTPS i SPF/DKIM/DMARC. Wdrożenie przez panel dostawcy DNS jest zazwyczaj prostą operacją kilku kliknięć. Złożoność pojawia się przy zarządzaniu rotacją kluczy, ale i to jest automatyzowane przez nowoczesnych dostawców DNS.