Ochrona w tandemie

Kerberos, nie zawsze heros

Kerberos sam w sobie jest konstrukcją spójną i bezpieczną, ale przewidzianą głównie dla sieci lokalnych. Problemy pojawiają się wtedy, gdy zostaje on wykorzystany niezgodnie ze swoim przeznaczeniem, a więc w sieciach rozproszonych. Co oczywiste, w takich topologiach problemem staje się charakterystyczna dla Kerberosa centralizacja, czyniąca go "wąskim gardłem".

Innym problemem Kerberosa jest to, że zakłada on posiadanie przez użytkowników długich haseł. Jeśli hasła nie są wystarczająco mocne (a wszyscy wiemy, że zwykle nie są), Kerberos jest narażony na ataki typu bruteforce, czyli np. łamanie haseł za pomocą słowników. W konsekwencji, w sieciach, w których działa uwierzytelnianie Kerberos, konieczne jest wymuszanie tworzenia silnych haseł i ich regularnej zmiany. Ważne jest też, by sieć była zabezpieczona przed niepowołanym dostępem fizycznym (monitorowane kable, brak "pajęczarstwa").

Bez takich założeń może się pojawić następny problem dotyczący stacji bezdyskowych. Jest tu konieczność przesyłania kluczy i biletów w postaci jawnej przez sieć, w celu ich lokalnego zapisania. Niczym innym, tylko proszeniem się o kłopoty można nazwać instalowanie systemu Kerberos bez serwera TGS. W takim przypadku do zabezpieczenia klucza sesyjnego wykorzystywany jest klucz użytkownika, zwykle buforowany lokalnie. Trudno nazwać to bezpiecznym - aplikacje typu konie trojańskie i programy szpiegujące bez trudu sięgają do bufora.

Kerberos, jak widać, posiada wiele wad, lecz można je zminimalizować lub zneutralizować, pilnując żelaznych zasad wdrażania takich systemów, zdrowego rozsądku oraz starannego planowania.

Był sobie RADIUS

RADIUS, czyli Remote Authentication Dial-In User Service to protokół dostarczający uwierzytelnienie, kontrolę i przydzielanie praw dostępu, a także mechanizmy do audytu, pozwalające określić kto, kiedy i do jakich zasobów uzyskał dostęp (AAA - Authentication, Authorization, Accounting). RADIUS jest protokołem w pełni otwartym - specyfikacja protokołu jest publicznie osiągalna w formie dokumentu RFC, zaś oprogramowanie jest w pełni darmowe.

W przeciwieństwie do Kerberosa protokół ten został opracowany w celu nawiązywania połączeń ograniczonych do jednej usługi lub hosta. Początkowo zgodnie z nazwą RADIUS był wykorzystywany w sieciach z dostępem wdzwanianym. Z biegiem czasu spopularyzował się także w innych typach sieci rozległych. Obecnie RADIUS jest wykorzystywany jako standardowy protokół w routerach WAN i współpracujących z nimi urządzeniach dostępowych, przełącznikach LAN, stacjach bazowych WLAN, a także serwerach (Windows, Unix, Linux).

Kompleksowość bez gwarancji

Otwartość i kompleksowość, a zwłaszcza możliwość audytu działań użytkowników to czynniki, które niewątpliwie uczyniły RADIUS popularnym. Nie znaczy to jednak, że RADIUS jest idealny, a tym bardziej, że nadaje się do zastosowania w każdym miejscu. Przykładowo, wątpliwe, aby dobrym pomysłem było stosowanie go w połączeniach między routerami - z tej prostej przyczyny, że nie zapewnia on wzajemnego uwierzytelnienia stron, a jedynie jednej.

Do złotych zasad należy unikanie wdrożeń protokołu RADIUS w sieciach wielousługowych, protokół ten wiąże bowiem użytkownika z jednym rodzajem usługi. Po poprawnym uwierzytelnieniu serwer AAA sprawdza w swoich bazach, jaka usługa jest dostępna dla danego użytkownika (np. rlogin, SLIP, PPP) i umożliwia mu dostęp tylko do tej jednej usługi.

RADIUS nie powinien też działać w sieciach, w których równolegle działają protokoły Apple Talk Remote Access Protocol (ARAP), NetWare Asynchronous Service Interface (NASI), NetBIOS Frame Control Protocol (NBFCP), X.25 PAD. Powód jest oczywisty - protokoły te nie integrują się z uwierzytelnianiem RADIUS.

Kerberos

Kerberos to oparty na infrastrukturze PKI protokół uwierzytelnienia w sieci. Został on opracowany pod koniec lat 80. przez Steve'a Millera i Clifforda Neumana w ramach projektu Athena na Massachusetts Institute of Technology. Obecnie obowiązująca wersja piąta (John Kohl, Clifford Neuman) została opublikowana przez IETF w 1993 r. i do dziś doczekała się licznych rewizji, uwzględniających postęp w dziedzinie kryptografii (np. AES) i schematów uwierzytelniania w sieci.

Informacje na temat najnowszej wersji 5.1.4.1 dostępne są na stronie:http://web.mit.edu/kerberos/krb5-1.4/README-1.4.1.txt . Implementacje protokołu Kerberos 5 istnieją dla wszystkich ważniejszych komercyjnych platform sieciowych i serwerowych, w tym Windows, Unix i Linux. Powstały też całkowicie otwarte implementacje, np. Shishi http://josefsson.org/shishi/


TOP 200