DNSSEC: niedoceniany mechanizm, który eliminuje niedoskonałości systemu DNS

Listę współczesnych zagrożeń sieciowych otwiera phishing. Wykorzystując słabości protokołu DNS atakujący próbują wyłudzić poufne informacje poprzez przekierowanie użytkownika pod fałszywy adres IP. Realnym rozwiązaniem tego problemu jest DNSSEC, choć wielu operatorów domen nadal ma problem z szerszą adaptacją tego mechanizmu zabezpieczeń na swoich serwerach DNS.

Phishing to dobrze znane, powszechne zagrożenie sieciowe, które polega na przekierowaniu użytkownika na fałszywą stronę WWW w celu wyłudzenia od niego poufnych informacji takich jak dane logowania albo numer karty kredytowej. Wiele tego typu ataków wykorzystuje słabości protokołu DNS, aby przejąć i podmienić treść komunikatów wysyłanych między serwerem DNS, a urządzeniem użytkownika (ataki typu man-in-the-middle) albo „zatruć” serwer DNS, aby w odpowiedzi na zapytanie użytkownika zwracał fałszywy adres IP serwera docelowego (cache poisoning). Realnym rozwiązaniem tego problemu jest mechanizm DNSSEC, który wydatnie zwiększa bezpieczeństwo Internetu.

Czym jest DNSSEC?

Mechanizm DNSSEC wprowadza dodatkową warstwę zabezpieczeń systemu DNS, która pozwala stwierdzić, czy informacje otrzymane od serwera DNS są wiarygodne oraz nie zostały zmienione podczas przesyłania przez sieć. Bez tego zabezpieczenia atakujący może zmodyfikować odpowiedź serwera, aby przekierować użytkownika pod fałszywą stronę.

DNSSEC korzysta z założeń kryptografii asymetrycznej i podpisów cyfrowych, aby na podstawie łańcucha zaufania do nadrzędnych serwerów DNS potwierdzić poprawność odpowiedzi systemu DNS na zapytanie użytkownika. Znajdziemy tutaj wiele analogi do zabezpieczania komunikacji WWW w protokole HTTPS, przy czym miejsce certyfikatów cyfrowych zajęły wpisy kryptograficzne zawarte w rekordach DNS, zaś sam DNSSEC nie ma żadnych mechanizmów, które pozwalałyby na zaszyfrowanie przesyłanych komunikatów. To drugie może być realizowane poprzez wdrożenie mechanizmu DNS over TLS.

Garść historii

DNSSEC nie jest żadnym nowym mechanizmem zabezpieczeń, choć nadal nie doczekał się powszechnej adaptacji w internecie. Pierwsza specyfikacja protokołu została nakreślona już w 1997 roku, ale błędne założenia przyjęte w trakcie projektowania (problemy ze wykorzystaniem w skali globalnej) sprawiły, że DNSSEC nie miał szans na wejście do powszechnego użycia. W rezultacie, w 2005 roku standard doczekał się dużej aktualizacji nazwanej DNSSEC-bis, która w dużej mierze odzwierciedla to, z jakim DNSSEC mamy do czynienia dzisiaj.

Wprowadzone zmiany nie oznaczały jeszcze, że DNSSEC szybko wszedł do szerszego użycia. Dopiero w 2010 roku, wygenerowano klucze kryptograficzne dla wszystkich głównych serwerów root systemu DNS i tym samym otwarto standard DNSSEC na świat. Dwa lata później NASK umożliwił wdrażanie zabezpieczeń DNSSEC dla nazw w domenie .PL.

Lista rodzimych rejestratorów umożliwiających zabezpieczenie domeny usługą DNSSEC sukcesywnie rośnie. Prawdziwy przełom w drodze ku upowszechnieniu się tego standardu w Polsce nastąpił w marcu 2018 roku, kiedy to nazwa.pl podpisała 450 tysięcy obsługiwanych przez siebie nazw domen protokołem DNSSEC. Z dnia na dzień liczba zabezpieczonych domen wzrosła o ponad 600 tysięcy, a udział nazwa.pl w liczbie domen chronionych za pomocą DNSSEC w Polsce przekroczył 91%. Dzięki wdrożeniu usługi DNSSEC przez nazwa.pl, rejestr domen polskich awansował na czwartą pozycję najlepiej zabezpieczonych rejestrów domen w całej Europie i stanowi wzór do naśladowania dla pozostałych krajów Unii Europejskiej. – mówi Krzysztof Cebrat, Prezes Zarządu nazwa.pl

DNSSEC od kuchni

Uwierzytelnienie, a więc sprawdzenie wiarygodności otrzymanego komunikatu DNS w protokole DNSSEC opiera się na tzw. łańcuchu zaufania. Weryfikując zapisy w rekordach DNSSEC dla nazwy domeny z rekordem DS, zapisanym w strefie nadrzędnej, istnieje możliwość potwierdzenia, że odpowiedź pochodzi z wiarygodnego serwera DNS i nie została zmieniona w trakcie przesyłania jej przez sieć.

W tym celu DNSSEC wprowadza kilka nowych typów rekordów: RRSIG, DNSKEY, DS, NSEC i NSEC3 oraz CDNSKEY i CDS, przy czym rekordy te zapisane są w systemie DNS w taki sam sposób, jak podstawowe rekordy A lub CNAME.

DNSSEC wykorzystuje założenia kryptografii klucza publicznego. Tajne klucze prywatne używane są do podpisywania danych, klucze publiczne używane są zaś do weryfikacji ich poprawności. Idea DNSSEC opiera się na użyciu dwóch par kluczy: ZSK (Zone-Signing Key) do podpisania strefy domeny oraz KSK (Key-Signing Key) do podpisania kluczy publicznych KSK i ZSK. Wykorzystanie dwóch par kluczy ZSK i KSK upraszcza proces wymiany kluczy ZSK używanych do podpisania strefy przez użytkownika. W rezultacie aktualizacja kluczy ZSK wymaga jedynie opublikowania nowej wartości rekordu DNSKEY, o którym za chwilę.

Wróćmy do początku. DNSSEC wymusza grupowanie rekordów tego samego typu dla danej strefy (np. A, MX) w jeden zasób nazwany RRset. W rezultacie, zamiast pojedynczych rekordów, podpisywany jest zestaw RRset.

Do podpisania zestawu RRset używany jest klucz prywatny ZSK, po czym wygenerowana w ten sposób cyfrowa sygnatura zostaje zapisana w rekordzie RRSIG. Z kolei klucz publiczny ZSK publikowany jest w formie rekordu DNSSKEY i służy do weryfikacji tejże sygnatury. W drugim rekordzie DNSSKEY administrator publikuje klucz publiczny KSK.

Cała ta skomplikowana architektura pozwala zweryfikować integralność otrzymanego komunikatu, ale nie daje żadnej gwarancji, że serwer DNS i wpisy DNSSEC nie zostały zafałszowane przez atakującego. Z uwagi na hierarchiczną strukturę systemu DNS prawidłowość podpisanego komunikatu może zatem dodatkowo potwierdzić serwer obsługujący strefę wyższego poziomu. Aby był to możliwe, administrator podpisanej strefy tworzy skrót (hash) rekordu DNSKEY dla klucza KSK, a następnie przekazuje go do operatora serwera DNS strefy nadrzędnej. Ten publikuje wartość tego skrótu w rekordzie DS (Delegation Signer).

Bezpieczny Internet

DNSSEC stanowi pierwsze realne zabezpieczenie systemu DNS przed atakami typu man-in-the-middle i DNS cache poisoning, pozwalając zwiększyć zaufanie do banków, instytucji publicznych czy sklepów e-commerce. Od DNSSEC nie ma odwrotu. W ostatnim czasie instytucja ICANN, odpowiedzialna za działanie globalnego systemu DNS, wezwała do pełnego wdrożenia DNSSEC wśród operatorów domen. Mimo, że dla wielu z nich wdrożenie tego mechanizmu nadal stanowi spore wyzwanie, wezwanie ICANN stanowi jasną wytyczną w jakim kierunku ma podążać rozwój technologii służących do zapewnienia bezpieczeństwa w Internecie. Apel ICANN o wdrożenie rozszerzenia DNSSEC dla wszystkich niezabezpieczonych domen stanowi jasną wytyczną kierunku rozwoju technologii służących do zapewnienia bezpieczeństwa w Internecie. Jest jednocześnie jednoznaczną wytyczną dla Klientów, którzy wprowadzani są w błąd przez wielu dostawców usług rejestracji domen i hostingu co do braku potrzeby korzystania z DNSSEC.dodaje Krzysztof Cebrat.