![]() |
|
WprowadzenieDNS (Domain Name System) to w istocie rozproszona baza danych, którą można porównać do gigantycznej książki telefonicznej, w której numerami telefonów są adresy IP hostów w Internecie. W praktyce oprócz informacji o adresach zawartych w rekordach A, w DNSie znajdują się również dane o wymiennikach poczty elektronicznej (mail exchangers) zaszyte w rekordach MX, informacje tekstowe skojarzone z dana nazwą domenową oraz inne; dobrym przykładem może być ENUM wykorzystujący rekordy NAPTR do przechowywania danych teleadresowych jego użytkowników. DNS jest systemem rozproszonym i doskonale skalowanym. Obecnie zarejestrowanych jest prawie 20 milionów hostów w domenach najwyższego poziomu. Wiąże się to nieuchronnie z dużą ilością informacji przechowywanych w systemie. W takiej sytuacji wręcz konieczne wydaje się być zapewnienie odpowiedniego poziomu bezpieczeństwa, ze szczególnym uwzględnieniem mechanizmów autoryzacji i zapewnienia integralności informacji udostępnianej przez DNS. Zapewnienie tajności przesyłanych komunikatów DNS nie jest niezbędne, co zresztą wynika z samej specyfiki systemu, dostępnego przecież dla każdego użytkownika Internetu. Rozproszona baza informacji DNS ma strukturę odwróconego drzewa. Każda nazwa domenowa jest konstruowana w trakcie podróży przez węzły po ścieżce drzewa w stronę jego korzenia. Każdy węzeł posiada etykietę tekstową o długości maksymalnie 63 znaków; wyjątkiem jest węzeł główny identyfikowany pustą etykietą. Poszczególne nazwy na ścieżce oddziela się kropkami. Domena jest poddrzewem w przestrzeni nazw domenowych, a jej nazwę stanowi nazwa węzła znajdującego się u szczytu poddrzewa. Nazwy domenowe będące liśćmi drzewa DNS reprezentują zwykle hosty, jak również informacje na temat hosta oraz o trasowaniu poczty. Nazwy w głębi drzewa identyfikują dodatkowo domenę. Decentralizacja DNS została osiągnięta dzięki delegowaniu domen. Delegowanie polega na przekazaniu zwierzchności nad całością bądź częścią danej domeny innej organizacji. Proces ten może być powtarzany wielokrotnie, zatem organizacja obsługująca oddelegowaną domenę może dalej oddelegować jej część. Domeny najwyższych poziomów podzielone są z reguły na strefy. Strefa to w istocie mniejsza jednostka stanowiąca fragment domeny. Serwer nazw to program pracujący na hoście internetowym, który umożliwia dostęp do informacji DNS zawartej w plikach danych strefowych. Standard DNS definiuje dwa rodzaje serwerów nazw. Podstawowy serwer (PNS) ładuje dane strefowe z plików znajdującego się w jego hoście. Serwer wtórny (SNS) pobiera dane strefowe z serwera autorytatywnego dla danej strefy, zwykle podstawowego, ale równie dobrze może być to inny autorytatywny serwer wtórny. Zapytania DNS dzielą się na rekurencyjne i iteracyjne. Serwer nazw pracujący w trybie rekurencyjnym zapytany o odwzorowanie nazwy na adres jest zobowiązany do zwrócenia klientowi właściwej odpowiedzi. Innymi słowy zostaje on obarczony odpowiedzialnością za cały proces wyszukiwania informacji i nie może odesłać klienta do innego serwera nazw. Serwer pracujący w trybie iteracyjnym zwraca po prostu najlepszą odpowiedź na podstawie danych lokalnych, odsyłając w razie konieczności klienta do innych serwerów DNS. Poniższy rysunek przedstawia transfer informacji DNS pomiędzy serwerami i klientami systemu.
Komunikacja między elementami systemu odbywa się za pośrednictwem sieci Internet. Przesyłane informacje nie są utajnione, ani zabezpieczone przed podrobieniem czy modyfikacją. Potencjalnie, dane DNS mogą zostać sfałszowane bądź zmienione w wielu miejscach, jak chociażby:
Sfałszowane dane wprowadzone do pamięci cache serwerów zostają w systemie przez dłuższy czas, co powoduje, że skutki ataku długo odbijają się echem. W kontekście istotności przesyłanych informacji wprowadzenie mechanizmów zapewniających bezpieczeństwo jest bardzo pożądane. |
|