Trójgłowy Kerberos

Kerberos, znany u nas również jako Cerber, był w mitologii greckiej trójgłowym psem, który pilnował wejścia do ogrodów świata podziemnego. Dzisiaj jest to system zabezpieczenia danych, opracowany w MIT (Massachussets Institute of Technology) w ramach tzw. projektu Athena. Określa on prawa dostępu do zasobów sieci minikomputerowej, studentom, wykładowcom i naukowcom zatrudnionym w MIT. Oparte na koncepcji Kerberos oprogramowanie staje się obecnie coraz popularniejsze - firma Open Computing Security Group oferuje oprogramowanie typu Kerberos dla komputerów unixowych, Macintosha i PC. IBM i Open Software Foundation (OSF) zamierzają je wcielić do swych systemów unixowych. Jest to oprogramowanie identyfikujące użytkownika (authentication software) i może być dodane do istniejących już systemów zabezpieczeń.

Kerberos, znany u nas również jako Cerber, był w mitologii greckiej trójgłowym psem, który pilnował wejścia do ogrodów świata podziemnego. Dzisiaj jest to system zabezpieczenia danych, opracowany w MIT (Massachussets Institute of Technology) w ramach tzw. projektu Athena. Określa on prawa dostępu do zasobów sieci minikomputerowej, studentom, wykładowcom i naukowcom zatrudnionym w MIT. Oparte na koncepcji Kerberos oprogramowanie staje się obecnie coraz popularniejsze - firma Open Computing Security Group oferuje oprogramowanie typu Kerberos dla komputerów unixowych, Macintosha i PC. IBM i Open Software Foundation (OSF)zamierzają je wcielić do swych systemów unixowych. Jest to oprogramowanie identyfikujące użytkownika (authentication software) i może być dodane do istniejących już systemów zabezpieczeń.

Zapatrzony na swego trójgłowego poprzednika, Kerberos składa się z trzech zasadniczych elementów, które strzegą wejścia do bram zasobów sieciowych - bazy danych, serwera identyfikacji (authentication server) i serwera przydzielającego na czas trwania sesji tzw. biletów (ticket-granting server).

Każdy z tych elementów charakteryzuje się innymi właściwościami. Baza danych Kerberosa zawiera m.in. dane wszystkich użytkowników sieci, przyznane każdemu z nich hasło, listę usług, z jakich dany uczestnik może korzystać oraz klucze dostępu dla każdej z usług. Jest to jedyne miejsce w sieci, gdzie przechowywane jest hasło. W terminologii Kerberosa usługą może być uruchomienie aplikacji na komputerze typu host jak i zgoda na przeczytanie przez użytkownika katalogu plików.

Serwer identyfikacji ma za zadanie sprawdzić, czy osoba, która ubiega się o sieciową usługę jest tą, za którą się podaje. Właśnie do tego serwera jest podłączona wyżej opisana baza danych.

Serwer przydzielający bilety na czas jednej sesji (zwany dalej dla prostoty serwerem biletowym) rozpoczyna pracę po zidentyfikowaniu i sprawdzeniu użytkownika przez serwer identyfikacji. Jego zadaniem jest przydzielenie użytkownikowi biletu, który pozwoli mu na korzystanie z usługi. Biletem jest łańcuch znaków, pozwalający na bezpieczny dostęp do wybranego komputera.

Jak Kerberos pilnuje?

Praca z Kerberosem rozpoczyna się podobnie jak w klasycznej sieci. Użytkownik musi się zalogować ze swojej stacji roboczej, podając hasło i rodzaj żądanej usługi na komputerze typu host.

Zasadnicza różnica polega na tym, że użytkownik nie przesyła do Kerberosa swojego hasła. Od początku zakłada się, że jest on tym, za kogo się podaje, dzięki czemu do serwera identyfikacji jest przesyłana tylko jego nazwa i rodzaj zażądanej usługi. Hacker, który chciałby podsłuchiwać i analizować transmitowane dane, nie znajdzie wśród nich żadnego hasła.

Serwer identyfikacji sprawdza przesłane dane w dołączonej bazie danych. Jeżeli użytkownik posiada odpowiednie prawa dostępu do upatrzonej usługi, to serwer tworzy bilet. Zawiera on, poza informacjami, które dotyczą m.in. nazwy użytkownika, nazwy serwera biletowego czy okresu czasu, kiedy bilet jest ważny, także generowaną w sposób przypadkowy sekwencję klucza prywatnego, do późniejszego kodowania danych.

Informacje te są kodowane za pomocą algorytmu DES (Data Encryption Standard). Koduje on dane przy użyciu klucza, którym jest słowo (w tym przypadku np. hasło) lub cała fraza słów.

Informacja zawarta w bilecie, łącznie z kopią klucza wygenerowanego jako ciąg przypadkowych znaków, jest wysyłana do stacji roboczej użytkownika, stosując przy tym kodowanie kluczem prywatnym. Klucz ten jest znany tylko przez Kerberosa i pojedynczego użytkownika. Kluczy prywatnych istnieje tyle, ilu jest użytkowników sieci.

Po dojściu biletu do stacji roboczej, hasło podane przez użytkownika służy do rozkodowania informacji zawartej na bilecie. Jeżeli dekodowanie zakończyło się pomyślnie, hasło i odpowiadający mu klucz DES zostają wymazane - pozostaje w pamięci stacji roboczej tylko zdekodowany bilet, zawierający kopię klucza, ustalonego wcześniej przez Kerberosa. Dzięki wymazaniu rekordów z kluczami, żadna obca osoba, która mogłaby mieć od tej pory dostęp do stacji roboczej nie pozna hasła użytkownika i powiązanego z nim klucza DES.

W tym momencie, po przejściu próby weryfikacji swej osoby, użytkownik może ubiegać się o dostęp do usługi. W tym celu, wysyła do serwera przydzielającego bilety na sesję (ticket- granting server) dwie informacje. Pierwsza - to posiadany bilet, zaś druga to tzw. authenticator. Ten ostatni zawiera nazwę użytkownika, adres sieciowy i bieżący czas. Obie wiadomości są kodowane kluczem, wcześniej przysłanym z Kerberosa ( powstał on w trakcie działania serwera autentykacji) i w związku z tym, znany jest także serwerowi biletowemu.

O ile serwer biletowy stwierdzi, po rozkodowaniu otrzymanych danych, że przesłane od użytkownika ubiegającego się o dostęp, informacje, pochodzące z biletu i z tzw. authenticatora, są wzajemnie zgodne, to pozwoli na wykonanie usługi. Mimo to, w trakcie pracy z np. już uruchomioną aplikacją, serwer biletowy sprawdza upływ czasu i jego zgodność z czasem ustalonym na bilecie. Po przekroczeniu wcześniej ustalonej granicy następuje zakończenie sesji.

Cały system zabezpieczenia danych Kerberos, opiera się na wykorzystaniu hasła, symetrycznym szyfrowaniu i dystrybucji kluczy szyfrujących. Oferuje on o wiele wyższy stopień bezpieczeństwa danych niż ten, który wynika przy wyłącznym stosowaniu systemu haseł.

Małe szanse dla hackerów

Jest jednak kilka ale. Każda z aplikacji, której bezpieczeństwa strzeże Kerberos, powinna być nieznacznie przerobiona. Ingerencja ta wymaga dysponowania jej kodem źródłowym (co niekiedy jest nawet niemożliwe) oraz zainwestowania pracy programistów (przeciętnie ok. dzień czasu pracy na aplikację) do naniesienia zmian. Aplikacja taka powinna dać się uruchomić tylko wtedy, gdy użytkownik wyśle do niej bilet oraz odpowiadający mu authenticator (patrz rys.).

Kolejna słaba strona Kerberosa, to brak odporności na tzw. "atak słownikowy" (dictionary attack). Hacker, który bardzo chciałby się wedrzeć do strzeżonych przez Kerberosa zasobów sieciowych, zamiast hasła może podać mu plik, zawierający cały słownik używanych słów i za każdym słowem uruchamiać rozkodowanie typu DES. Dlatego też, twórcy Kerberosa zalecają korzystanie z haseł, których nie ma w dostępnych słownikach (np. połączenie liter z cyframi).

Mimo tych zastrzeżeń, Kerberos jest dobrym systemem zabezpieczenia danych. Jego podstawowymi zaletami są - automatyzacja poczynań i pewna "przezroczystość" działania. Polega to na tym, że końcowy (i legalny) użytkownik nie zauważa stosowanych kodowań czy porównań informacji - wszystko to zachodzi w tle. (NW/wn)


TOP 200