Kerberos

Wprowadzenie

Kerberos Key Exchange jest systemem bezpiecznej wymiany danych. Jest on obecnie bardzo rozpowszechniony i udostępniany jako składowa wielu poważnych systemów operacyjnych. Poza tym jest to przykład dobrze pomyślanej, praktycznej realizacji bezpieczeństwa danych w systemie rozproszonym.

Kerberos opracowany został w Massachusetts Institute of Technology, w ramach projektu Athena. Jest to miejsce w którym miało początki wiele nowatorskich projektów informatycznych, w szczególności związanych z technologiami sieciowymi.
Teoretyczne podstawy protokołu Kerberos powstały na początku lat osiemdziesiątych, zaś zaimplementowany został w latach 1987/88. Od początku funkcjonowania system był intensywnie rozwijany i nie notował przypadków złamania zabezpieczeń.

Założenia systemu Kerberos

Kerberos realizuje bezpieczeństwo w sieci w trzech aspektach: umożliwia weryfikację tożsamości komunikujących się stron, zapewnia integralność przesyłanych danych, zapewnia poufność danych.

System Kerberos

A bezpieczeństwo jest uzyskiwane dzięki kierowaniu się następującymi zasadami:
Istnieje też kilka założeń czynionych przez system Kerberos, określających środowisko, w którym może on właściwie funkcjonować. Odsłaniają one potencjalne czułe punkty systemu.

Koncepcja techniczna

W systemie Kerberos używa się jednego komputera wyposażonego w niezwykle sprawne zabezpieczenia, który znajduje się w pomieszczeniu strzeżonym 24 godziny na dobą. Na komputerze tym znajdują się informacje o hasłach i prawach dostępu każdego użytkownika w systemie (w instytucie MIT komputer ten nosi nazwę kerberos.mit.edu). Wszystkie komputery i użytkownicy sieci działają na podstawie danych dostarczanych przez ten serwer. W systemie Kerberos ten zabezpieczony serwer jest jedynym serwerem w sieci, który może dostarczać programom sieciowym informacje związane z dostępem. Dla serwerów działających w systemie Kerberos oraz pracujących w nim użytkowników wszystkie pozostałe elementy sieci są niepewne. Projektanci systemu wykorzystali fakt, że łatwo jest utrzymać jeden całkowicie bezpieczny serwer (w przeciwieństwie do zabezpieczania wszystkich serwerów sieci)

Istota systemu polega na wydawaniu przez uprawniony centralny serwer biletów (tickets) do konkretnych usług sieciowych. Użytkownik chcąc np. przeczytać poczty musi uzyskać bilet umożliwiający dostęp do serwera poczty. Uzyskanie biletu wymaga każdorazowo weryfikacji tożsamości, przez podanie hasła. Bilety są ważne tylko przez określony czas (zwykle do kilkunastu godzin), tak więc nawet kradzież biletu, jako zjawisko jednostkowe nie ma większego wpływu na bezpieczeństwo systemu. Bilety są szyfrowane. Klient uzyskuje bilet, którym posłuży się do uzyskania dostępu do danego serwera, nie może jednak biletu ani odkodować, ani tym bardziej zmieniać.
Informacje uwierzytelniające oraz bilety szyfrowane są przy pomocy algorytmu DES. Żadna poufna informacja nie jest nigdy przekazywana otwartym tekstem.

Charakterystyczną cechą protokołu Kerberos jest to, że system bezpieczeństwa jedynie pośredniczy w nawiązaniu łączności pomiędzy klientem a serwerem, dalsza komunikacja odbywa się już bez udziału Kerberosa, jest to korzystne ze względu na wydajność.

W praktyce realizuje się wariant "biletu na bilety", który otrzymuje użytkownik rozpoczynając sesję i uwierzytelniając się hasłem. Wydawanie biletów do konkretnych usług jest już zautomatyzowane i nie wymaga interwencji użytkownika

Weryfikacja tożsamości użytkowników w systemie Kerberos jest dokonywana bez użycia mechanizmów uwiarygodniania systemu operacyjnego odległego komputera głównego i jego adresów oraz nie wymaga, aby wszystkie komputery główne sieci były fizycznie wyposażone w systemy ochrony.

Działanie systemu

Załóżmy, że użytkownik chce uzyskać dostęp do plików umieszczonych na serwerze plików.

W bilecie znajdują się także informacje służące weryfikacji: czas utworzenia biletu, czas ważności oraz klucz sesji



Słabe strony i wady protokołu Kerberos

Przydatne linki dotyczące Kerberosa

Lista dyskusyjna kerberos@mit.edu ( ZAPISY ),
lub grupa news:comp.protocols.kerberos
Massachusetts Institute of Technology
Przewodnik po Kerberosie
Jak "zkerberyzować" sieć
Coś o kompilacji systemu
ghost.isi.edu