O DNSSECu słów kilka

Autorem wpisu jest Zbigniew Jasiński, starszy Specjalista ds. DNS w NASK.

15 lipca 2010 roku organizacja IANA podpisała strefę root. 15 września 2010 roku NASK wraz z Partnerami rozpoczął testy protokołu DNSSEC. W ten sposób rozpoczął się nowy rozdział w historii protokołu DNS i jego bezpieczeństwa na świecie jak i w naszym krajowym rejestrze.

DNSSEC to rozszerzenie protokołu DNS o technologie kryptograficzne, wykorzystujące mechanizm kluczy asymetrycznych (tj. klucz publiczny i klucz prywatny). Wprowadzenie tego mechanizmu zwiększa poziom bezpieczeństwa protokołu DNS. Dzięki wykorzystaniu materiału kryptograficznego i podpisów cyfrowych możliwe jest uwierzytelnianie danych otrzymanych w procesie rozwiązywania nazw domen internetowych na adresy IP. Ataki typu cache-poisoning czy inne modyfikujące dane zawarte w pakietach DNS mimo, że ciągle możliwe, staną się bezskuteczne. Użytkownik, czy jego system operacyjny będzie w stanie stwierdzić czy informacja, która do niego dotarła jest poprawna czy fałszywa, a co za tym idzie czy strona internetowa, którą odwiedza to np. strona banku czy podszywająca się pod nią strona fałszywa (phishing).

Phishing to metoda podszywania się pod oryginalną witrynę internetową za pomocą identycznej lub łudząco podobnej, spreparowanej przez przestępców strony internetowej celem wyłudzenia poufnych informacji. Najczęściej są to hasła do kont bankowych. Ataki tego typu wykorzystują błędy w przeglądarkach internetowych lub korzystają z możliwości zmiany danych przesyłanych w pakietach DNS. W rezultacie niczego niepodejrzewający użytkownik wchodzi na taką stronę, loguje się na swoje konto poprawnym loginem i hasłem, które zostają przechwycone i wykorzystane do przestępstwa. W tym wypadku kradzieży pieniędzy.

NASK prowadził testową strefę dnssec.pl już w 2006 roku, jednak bez zainteresowania ze strony Partnerów NASK, których rola w całym procesie zabezpieczenia jest zasadnicza. Rynek nie zareagował. Dopiero podpisanie strefy Root 15 lipca 2010 roku przez organizację IANA otworzyło nowe możliwości rozwoju dla tego mechanizmu. Przestrzeń domen stała się globalnie weryfikowalna, a kolejne rejestry zaczęły publikować swoje rekordy DS. W tej chwili w strefie root jest ich 28 (.be, .bg, .biz, .br, .cat, .ch, .cz, .dk, .edu, .eu, .fr, .info, .li, .lk, .museum, .na, .nu, .org, .pm, .pr, .pt, .re, .se, .tf, .th, .tm, .uk, .us) i kilka testowych stref IDN. Dzięki temu wydaje się możliwe stworzenie nowego produktu, a więc zainteresowanie rynku tym mechanizmem, co przełoży się w ostateczności na korzyść w postaci zwiększenia bezpieczeństwa w Internecie, a co za tym idzie również na nasze bezpieczeństwo.

Świadomość i wiedza operatorów DNS muszą zostać przystosowane do nowych warunków świadczenia usług. O ile sama technologia DNS w większości wypadków była technologią ‘skonfiguruj (poprawnie) i zapomnij’ o tyle DNSSEC już taki nie jest. Stałe monitorowanie strefy, zachowanie łańcucha zaufania (chain of trust), weryfikowanie poprawności podpisów, ich czasu ekspiracji oraz procedury wymiany kluczy wymuszają by administratorzy zwrócili znacznie większa uwagę na to, co się w strefie dzieje. Niezbędne jest opracowanie jasnych i skutecznych procedur. Nawet drobna pomyłka może sprawić, że całe drzewo nazw, które znajdują się w naszej strefie przestanie być weryfikowalne, co na pewno przekłada się na koszty operacyjne.

Łańcuch zaufania

Na szczęście dostępne jest już coraz bardziej dojrzałe oprogramowanie do zarządzania kluczami oraz do monitorowania wszelkich parametrów protokołu DNSSEC. Jeżeli chodzi o zarządzanie kluczami to na czoło wysuwa się tutaj projekt OpenDNSSEC http://www.opendnssec.org/ (istnieje możliwość połączenia go z Nagiosem – system monitoringu udostępnianym na licencji GPL). Do monitorowania podpisanej strefy można skorzystać z oprogramowania stworzonego między innymi przez rejestr francuski (http://www.zonecheck.fr/) czy szwedzki (http://dnscheck.iis.se/).Istnieje również wtyczka do przeglądarki Firefox opracowana przez czeski rejestr domen (https://addons.mozilla.org/en-US/firefox/addon/64247/).Dostępne są też graficzne narzędzia takie jak na przykład DNSViz (http://dnsviz.net/). Ostatnie wymienione oprogramowanie jest o tyle ciekawe, że oprócz samej analizy podpisanej strefy swoje wyniki wyświetla w postaci grafów, rysując poszczególne zależności między rekordami DNSKEY (tj. kluczami) i rekordami DS (tj. kryptograficznymi skrótami rekordów DNSKEY). Oprogramowanie BIND jako najpopularniejszy serwer DNS również wprowadza pewne rozwiązania.

testowa strefa dnssec.pl analizowana przez DNSViz

Aby zacząć korzystać z rozszerzeń protokołu DNSSEC należy przy pomocy dostępnych narzędzi wygenerować odpowiednią parę kluczy – KSK (Key Signing Key) i ZSK (Zone Signing Key). Przy pomocy tak wygenerowanych kluczy musimy podpisać dane znajdujące się w naszej strefie. Klucz KSK podpisze nam zestaw rekordów DNSKEY, natomiast klucz ZSK podpisze pozostałe zestawy rekordów. Wygenerowany skrót klucza KSK w postaci rekordu DS (Delegation Signer) należy umieścić w strefie nadrzędnej do naszej. I już możemy się chwalić strefą zabezpieczoną protokołem DNSSEC.

Sam DNSSEC nie jest bez wad i nie jest lekiem na całe zło. Zwiększone wielkości pakietów, oraz krytyczny materiał kryptograficzny (część prywatna klucza) wymuszają inwestycje w infrastrukturę oraz zmianę oprogramowania na wspierające DNSSEC. Samo rozwiązywanie nazw przez resolvery operatorów też wymaga zwiększonej mocy obliczeniowej ze względu na algorytmy szyfrujące w nim wykorzystywane. Zwiększa się też zagrożenie ze strony ataku znanego jako amplification attack (jednak w tym wypadku źródłem problemu są serwery open recursive, a nie protokół DNSSEC). Zarzuca się też długi proces tworzenia standardu. Pierwsze dokumenty powstały pod koniec lat ’90, a kolejna pełna specyfikacja zwana DNSSEC-bis (czyli prawie obecna) była dostępna dopiero od 2005 roku.

Abonenci, którzy zdecydują się na zabezpieczenie swoich domen protokołem DNSSEC mają pewność, że dane zwracane przez lokalne resolvery są weryfikowalne i odpowiadające zawartości strefy, którą przyszło im zarządzać. Chroni to ich markę, wizerunek i produkt, jaki oferują swoim klientom. Z korzyścią dla użytkowników końcowych, czyli właśnie klientów banków czy sklepów internetowych, którzy mają pewność, że odwiedzana przez nich strona to właśnie strona banku czy sklepu internetowego, w którym chcą zlecić przelew czy dokonać zakupu.

Z bezpieczeństwa jakie wprowadza protokół DNSSEC będziemy w pełni korzystać jeżeli krytyczne nazwy domeny, czyli te związane z usługami w których przekazujemy wrażliwe informacje jak login i hasło, zostaną zabezpieczone tym protokołem, a dostawcy Internetu będą weryfikować podpisy odpowiedzi DNS w imieniu swoich klientów, czyli nas.