W systemie Windows 2000 stosowany jest system Kerberos oraz dodatkowe mechanizmy zabezpieczające na poziomie protokołu IP oraz szyfrowanie plików z kluczem publicznym.

System Kerberos został opracowany w Massechusetts Institute of Technology w latach osiemdziesiątych XX wieku. Został on zaimplementowany w wielu systemach uniksowych i internetowych.

Kerberos jest dwukierunkowym mechanizmem uwierzytelniania z udziałem zaufanej trzeciej strony. Protokół ten przyjmuje założenie, że transakcje zachodzące między klientami i serwerami mają miejsce w sieci otwartej, czyli w środowisku, gdzie większość klientów i serwerów nie jest fizycznie zabezpieczona, a przesyłane pakiety sieciowe mogą być z łatwością monitorowane i modyfikowane. Kerberos zaprojektowany jest dla środowiska przypominającego dzisiejszą sieć Internet, w której niepowołane osoby z łatwością mogą podszywać się pod klienta lub pod serwer oraz mogą przechwycić lub przekształcić dane przesłane w ramach połączenia między legalnymi klientami i serwerami.

Kerberos stosuje do utajniania informacji algorytm szyfrowania symetrycznego DES (algorytm z kluczem tajnym), który jest najlepiej znanym i najszerzej stosowanym w świecie algorytmem kryptograficznym. Podczas używania systemu DES, należy zwrócić uwagę na kilka czynników, które mają wpływ na bezpieczeństwo szyfrowanych danych. Należy często zmieniać klucze kryptograficzne, aby uniknąć ataku przez przedłużoną analizę danych oraz nadawca i odbiorca komunikacji muszą znaleźć bezpieczną metodę przekazywania sobie nawzajem kluczy DES. Kerberos zapewnia mechanizmy gwarantujące bezpieczną wymianę kluczy oraz pozwala na ograniczanie czasu ich ważności, przez co wymusza ich częste zmiany.

W systemie Kerberos wyróżnić można cztery podstawowe jednostki:

Procedura uwierzytelniania wymaga wymiany informacji trzech typów (tzw. transakcji). Pierwsza wymiana zachodzi między klientem i serwerem uwierzytelniającym AS. Zadaniem tej wymiany jest sprawdzenie przez serwer AS autentyczności użytkownika. Uwierzytelniony użytkownik otrzymuje informację potrze­bną do zainicjowania wymiany z serwerem przyznawania biletów TGS. Druga wymiana zachodzi między klientem i serwerem TGS. W jej wyniku użytkownik otrzymuje bilet uprawniający do dostępu do określonego serwera usług AP. Trzecia wymiana zachodzi między klientem i serwerem AP. Użytkownik za pomocą biletu otrzymanego od serwera TG może udowodnić serwerowi AP, że jest legalnym użytkownikiem

Kerberos jest podstawowym elementem bezpieczeństwa w systemie NT 2000.

W systemie Windows 2000 usługa uwierzytelniania  (AS) oraz usługa przydzielania biletów (TGS) zaimplementowane są jako jedna usługa KDC (ang. Key Distribution Center). Usługa KDC znajduje się na każdym kontrolerze domeny (czyli komputerze, który zarządza grupą komputerów tworzących tak zwaną domenę) i korzysta z usługi Active Directory (centralna baza kontrolera domeny) jako bazy danych przechowujących konta podmiotów zabezpieczeń wraz z dodatkowymi informacjami.

Rysunek 6. Kerberos w Windows 2000

Podstawowym elementem systemu Kerberos jest żeton. Jest to rodzaj certyfikatu, który jest wydawany przez usługę Kerberosa jako potwierdzenie, że wyrażono zgodę na ustanowienie sesji.

Kiedy komputer PC chce uzyskać dostęp do informacji przechowywanych na serwerze w obrębie tej samej domeny, musi przejść przez proces weryfikacji tożsamości w sieci. W praktyce ta weryfikacja tożsamości może zostać podzielona na sekwencję zdarzeń zachodzących pomiędzy klientem a KDC.

Kerberos stosuje komunikaty do dostarczenia każdemu z komponentów systemu Kerberos koniecznych informacji dotyczących tego co zaszło podczas procesu weryfikacji tożsamości. Jak już powiedziałem, wiele z tych komunikatów jest szyfrowanych i zawiera znaczniki czasu, które zapobiegają możliwości przechwycenia pakietu za pomocą tradycyjnych urządzeń przechwytujących i powtórnemu wykorzystaniu go w późniejszym czasie, bez zauważenia czegokolwiek podejrzanego przez mechanizm zabezpieczeń.

Poniżej opisana została typowa sekwencja czynności realizowanych podczas weryfikacji tożsamości klienta na określonym serwerze (lub usłudze): 

1, Klient przesyła do KDC zwyczajny komunikat tekstowy, prosząc o żeton umożliwiający wymianę informacji z KDC. Komunikat przesyłany przez klienta zawiera nazwę użytkownika, nazwę serwera KDC lub usługi oraz znacznik czasu.

2. KDC przesyła klientowi zaszyfrowaną odpowiedź. Ten komunikat jest szyfrowany za pomocą hasła klienta i zawiera klucz sesji opatrzony znacznikiem czasu, który będzie wykorzystywany przy wymianie informacji z KDC, oraz żeton TGT, który klient może wykorzystać do uzyskania kolejnych żetonów umożliwiających korzystanie z wybranych usług w obszarze dziedziny KOC.

3. Klient przesyła KDC zaszyfrowany komunikat, w którym prosi o prawo do komunikowania się z wybranym serwerem lub usługą. Klient szyfruje ten komunikat za pomocą klucza sesji otrzymanego od KDC. Komunikat zawiera nazwę serwera lub usługi, z której klient chce korzystać, znacznik czasu oraz żeton TGT. Gdy KDC otrzymuje komunikat, może mieć pewność, że pochodzi on od właściwego klienta, gdyż komunikat jest deszyfrowany za pomocą jego klucza sesji. Następnie KDC tworzy wspólny klucz sesji, który jest wykorzystywany zarówno przez klienta, jak i przez serwer. KDC tworzy także specjalny żeton dla serwera, który zawiera klucz sesji, nazwę klienta, adres jego karty sieciowej, okres ważności żetonu oraz znacznik czasu.

4. KDC przesyła klientowi komunikat zawierający zaszyfrowany wspólny klucz sesji oraz zaszyfrowany żeton. Wspólny klucz sesji jest szyfrowany za pomocą klucza sesji posiadanego przez klienta, natomiast żeton -za pomocą klucza sesji posiadanego przez serwer.

5. Klient przesyła do serwera komunikat informujący, że ma prawo do komunikowania się z nim. (To, czy kolejne prośby serwera zostaną wykonane, zależy oczywiście od systemu bezpieczeństwa serwera). Komunikat zawiera zaszyfrowany żeton, który klient otrzymał od KDC, oraz czasowy identyfikacyjny znacznik czasu zaszyfrowany za pomocą wspólnego klucza sesji. Serwer deszyfruje nadesłany żeton za pomocą swojego własnego hasła. Żeton ten zawiera kopię wspólnego klucza sesji oraz kilka innych bardzo istotnych informacji dotyczących klienta. Serwer używa wspólnego klucza sesji do odszyfrowania identyfikacyjnego znacznika czasu, aby określić, kiedy klient wysłał komunikat. jeśli komunikat został wysłany w okresie ważności żetonu oraz jeśli wszystkie inne warunki zostaną poprawnie spełnione, to serwer zaakceptuje prośbę klienta.

6. Po zatwierdzeniu klienta serwer przesyła zaszyfrowany komunikat, informując klienta o udzieleniu zezwolenia na komunikację. Ten komunikat zawiera identyfikacyjny znacznik czasu, który klient przesłał na serwer w kroku 5. Identyfikacyjny znacznik czasu zaszyfrowany jest za pomocą wspólnego klucza sesji.

 

NASTĘPNA