r-04.05, ## Documents ##, Bezpieczeństwo w Windows 2000. Czarna księga


Rozdział 4

Protokoły zabezpieczeń

Rozwiązania natychmiastowezobacz na stronie

Konfigurowanie protokołów z kluczami tajnymi (shared secrets protocol)

Zastosowanie centrum dystrybucji kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ]Centrum Dystrybucji Kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ] (k[Author ID2: at Tue Oct 3 23:22:00 2000 ]K[Author ID2: at Tue Oct 3 23:22:00 2000 ]ey d[Author ID2: at Tue Oct 3 23:22:00 2000 ]D[Author ID2: at Tue Oct 3 23:22:00 2000 ]istribution C[Author ID2: at Tue Oct 3 23:22:00 2000 ]c[Author ID2: at Tue Oct 3 23:22:00 2000 ]enter — KDC[Author ID2: at Tue Oct 3 23:22:00 2000 ])

Podstawowe wiadomości o podprotokołach (subprotocols) protokołu Kerberos

Analiza biletów protokołu Kerberos (Kerberos tickets)

Delegowanie uwierzytelniania

Konfigurowanie zasad domeny protokołu Kerberos (Kerberos domain policy)

Zastosowanie interfejsu usługodawcy obsługi zabezpieczeń (Security Support Provider Interface)

W skrócie

Protokoły

Protokoły są zasadniczą częścią każdego systemu zabezpieczeń,[Author ID2: at Tue Oct 3 23:23:00 2000 ] a podstawowe wiadomości o protokołach zastosowanych w systemie Windows 2000 są koniecznym elementem wyposażenia administratora. Jednak protokołów nie konfiguruje się od razu,[Author ID2: at Tue Oct 3 23:23:00 2000 ] jak na przykład [Author ID2: at Tue Oct 3 23:23:00 2000 ]np. [Author ID2: at Tue Oct 3 23:23:00 2000 ]Active Directory czy Z[Author ID2: at Tue Oct 3 23:24:00 2000 ]z[Author ID2: at Tue Oct 3 23:24:00 2000 ]asady grupowe (Group Policy). Przed przystąpieniem do konfigurowania protokołu,[Author ID2: at Tue Oct 3 23:24:00 2000 ] konieczna jest znajomość zasad ich działania oraz skutków, jakie pociągają za sobą wprowadzane zmiany. Niniejszy rozdział zawiera więcej teorii niż którykolwiek z pozostałych w tej książce a[Author ID2: at Tue Oct 3 23:24:00 2000 ] i jednocześnie [Author ID2: at Tue Oct 3 23:24:00 2000 ]mniej gotowych rozwiązań i opisów czynności. Nie jest to bynajmniej żl[Author ID2: at Tue Oct 3 23:24:00 2000 ][Author ID2: at Tue Oct 3 23:24:00 2000 ]e — solidna [Author ID2: at Tue Oct 3 23:25:00 2000 ]pokaźna [Author ID2: at Tue Oct 3 23:25:00 2000 ]wiedza o protokołach zabezpieczeń jest konieczna.

Zabezpieczenia warstwy transportowej (transport layer security) oparte na protokole Secure Sockets Layer wersja [Author ID0: at Thu Nov 30 00:00:00 1899 ]3 (SSL 3/TLS) opisano w rozdziale 6.,[Author ID2: at Tue Oct 3 23:25:00 2000 ] przy okazji omawiania certyfikatów z kluczem publicznym (public key certificates). Zabezpieczenia protokołu IP (IP security) na poziomie sieci omówiono w rozdziale 10. Pozostaje NT LAN Manager (NTLM) i protokół Kerberos wersja [Author ID0: at Thu Nov 30 00:00:00 1899 ]5. Protokołu NTLM używa się, aby zapewnić zgodność wsteczną (backward compatibility) z poprzednimi wersjami sieciowych systemów operacyjnych Microsoftu (Microsoft Network Operating Systems [Author ID2: at Tue Oct 3 23:26:00 2000 ]-[Author ID2: at Tue Oct 3 23:26:00 2000 ][Author ID2: at Tue Oct 3 23:26:00 2000 ]NOS), takimi jak Windows NT 4 i LAN Manager. Tak więc większa część niniejszego rozdziału poświęcona jest protokołowi Kerberos.

Rozwiązania pokrewne [Author ID2: at Tue Oct 3 23:26:00 2000 ] [Author ID2: at Tue Oct 3 23:26:00 2000 ]zobacz na stronie

Ustanawianie zabezpieczeń sieci WWW (World Wide Web Security)

Porównanie protokołów NTLM i Kerberos

Usługodawca zabezpieczeń NTLM do[Author ID2: at Tue Oct 3 23:27:00 2000 ]w celu[Author ID2: at Tue Oct 3 23:27:00 2000 ] uwierzytelniania korzysta z procedury [Author ID1: at Wed Aug 1 17:42:00 2001 ] [Author ID1: at Wed Aug 1 17:42:00 2001 ]wyzwanie [Author ID2: at Tue Oct 3 23:27:00 2000 ][Author ID1: at Wed Aug 1 17:42:00 2001 ]-[Author ID2: at Tue Oct 3 23:27:00 2000 ]- [Author ID2: at Tue Oct 3 23:27:00 2000 ][Author ID1: at Wed Aug 1 17:42:00 2001 ]-[Author ID1: at Wed Aug 1 17:42:00 2001 ]odpowiedź (challenge [Author ID2: at Tue Oct 3 23:27:00 2000 ][Author ID1: at Wed Aug 1 17:42:00 2001 ]-[Author ID2: at Tue Oct 3 23:27:00 2000 ]- [Author ID2: at Tue Oct 3 23:27:00 2000 ][Author ID1: at Wed Aug 1 17:42:00 2001 ]-[Author ID1: at Wed Aug 1 17:42:00 2001 ]response). Usługodawca zabezpieczeń (security provider) zna hasło danego użytkownika,[Author ID2: at Tue Oct 3 23:27:00 2000 ] lub,[Author ID2: at Tue Oct 3 23:27:00 2000 ] ściślej mówiąc, wyciąg uzyskany za pomocą funkcji skrótu MD [Author ID0: at Thu Nov 30 00:00:00 1899 ]4 (MD4 hash of the password). Za pomocą funkcji skrótu MD4 (MD4 hash) szyfruje losowo wygenerowany blok danych i odsyła go do klienta (wyzwanie[Author ID2: at Tue Oct 3 23:28:00 2000 ])([Author ID2: at Tue Oct 3 23:28:00 2000 ]challenge). Następnie klient rozszyfrowuje blok danych i przesyła z powrotem do serwera. Jeśli klient również zna prawidłowe hasło, dane zostaną rozszyfrowane poprawnie i serwer zarejestruje danego klienta jako uwierzytelnionego. Z kolei [Author ID2: at Tue Oct 3 23:28:00 2000 ]U[Author ID2: at Tue Oct 3 23:28:00 2000 ]u[Author ID2: at Tue Oct 3 23:28:00 2000 ]sługodawca zabezpieczeń (security provider) z kolei [Author ID2: at Tue Oct 3 23:28:00 2000 ]generuje niepowtarzalny znacznik dostępu (access token), który jest przesyłany do klienta, aby korzystał[Author ID2: at Tue Oct 3 23:28:00 2000 ]ć[Author ID2: at Tue Oct 3 23:28:00 2000 ] z niego w przyszłości. Kolejne uwierzytelnienia klienta dokonywane są na podstawie tego znacznika (token) i usługodawca zabezpieczeń (security provider) NTLM nie musi powtarzać procedury uwierzytelniania wyzwanie [Author ID2: at Tue Oct 3 23:29:00 2000 ][Author ID1: at Wed Aug 1 17:44:00 2001 ]-[Author ID2: at Tue Oct 3 23:29:00 2000 ]- [Author ID2: at Tue Oct 3 23:29:00 2000 ][Author ID1: at Wed Aug 1 17:44:00 2001 ]-[Author ID1: at Wed Aug 1 17:44:00 2001 ]odpowiedź (challenge [Author ID2: at Tue Oct 3 23:29:00 2000 ][Author ID1: at Wed Aug 1 17:44:00 2001 ]-[Author ID2: at Tue Oct 3 23:29:00 2000 ]- [Author ID2: at Tue Oct 3 23:29:00 2000 ][Author ID1: at Wed Aug 1 17:44:00 2001 ]-[Author ID1: at Wed Aug 1 17:44:00 2001 ]response).

Wskazówka: MD2, MD4 i MD5 są algorytmami wyznaczania funkcji skrótu wiadomości (message digest) opracowanych dla potrzeb aplikacji tworzących podpisy cyfrowe, w których duży blok wiadomości (message) musi zostać „skompresowany” w sposób bezpieczny, zanim zostanie podpisany za pomocą klucza prywatnego. Opis i kody źródłowe wymienionych powyżej trzech algorytmów można znaleźć w dokumentach Requests For Comment (RFC) od 1319 do 1321. Więcej informacji dostępnych jest na stronie internetowej RSA Laboratory www.rsasecurity.com/rsalabs/, a szczególnie na stronie[Author ID2: at Tue Oct 3 23:30:00 2000 ]pod adrese[Author ID2: at Tue Oct 3 23:30:00 2000 ]m[Author ID2: at Tue Oct 3 23:30:00 2000 ] Frequently Asked Questions (FAQ) www.rsasecurity.com/rsalabs/faq/3-6-6.html.

Protokół Kerberos korzysta z idei biletów pośrednich (proxy tickets). Weźmy pod uwagę,[Author ID2: at Tue Oct 3 23:30:00 2000 ] na przykład [Author ID2: at Tue Oct 3 23:30:00 2000 ]np. [Author ID2: at Tue Oct 3 23:30:00 2000 ]pod uwagę [Author ID2: at Tue Oct 3 23:30:00 2000 ]proces A, który wywołuje aplikację B. Następnie aplikacja B staje się personifikacją procesu A (impersonates A), tzn. aplikacja B w ustalony sposób działa jak A. Jednak jeśli B, działając jako A, wywoła inną aplikację (C), to domyślnie aplikacja C będzie personifikacją B (impersonate B), a [Author ID2: at Tue Oct 3 23:31:00 2000 ]nie A, ponieważ uprawnienia dotyczące zabezpieczeń (security privileges) procesu A nie zostaną delegowane do aplikacji C. Prawdziwe delegowanie (delegation)[Author ID2: at Tue Oct 3 23:31:00 2000 ],[Author ID2: at Tue Oct 3 23:31:00 2000 ] takie, jakie zapewnia protokół Kerberos[Author ID2: at Tue Oct 3 23:31:00 2000 ],[Author ID2: at Tue Oct 3 23:31:00 2000 ] oznacza, że jeśli aplikacja B, która jest działającym wątkiem (thread) A, wywoła inną aplikację,[Author ID2: at Tue Oct 3 23:31:00 2000 ] [Author ID2: at Tue Oct 3 23:31:00 2000 ] [Author ID2: at Tue Oct 3 23:32:00 2000 ]C [Author ID2: at Tue Oct 3 23:32:00 2000 ][Author ID2: at Tue Oct 3 23:31:00 2000 ],[Author ID2: at Tue Oct 3 23:31:00 2000 ] to aplikacja C może być personifikacją A (impersonate A). Aplikacja B posiada bilet pośredni (proxy ticket) aplikacji A, który umożliwia personifikację A (impersonate A),[Author ID2: at Tue Oct 3 23:32:00 2000 ] nawet, jeśli wywołuje inne aplikacje.

Komputery pracujące pod kontrolą systemów Windows 3.11, Windows 95, Windows 98 lub Windows NT 4 będą korzystały z protokołu NTLM przy uwierzytelnianiu sieciowym (network authentication) w domenach Windows 2000. Komputery pracujące pod kontrolą systemu Windows 2000 będą korzystały z protokołu NTLM w przypadku uwierzytelniania przez serwery systemu Windows NT 4 i przy dostępie do zasobów znajdujących się w domenach systemu Windows NT 4. Ale w systemie Windows 2000 głównym protokołem jest Kerberos. Korzyści z zastosowania protokołu Kerberos do uwierzytelniania są następujące:

Uwaga: Przechodnia relacja zaufania (transitive trust) oznacza, że jeśli A ufa B i B ufa C, to A ufa C. Relacje zaufania ustanawiane za pomocą protokołu Kerberos są przechodnie, a relacje ustanawiane za pomocą protokołu NTLM [Author ID1: at Wed Aug 1 18:58:00 2001 ] [Author ID1: at Wed Aug 1 18:58:00 2001 ][Author ID2: at Tue Oct 3 23:41:00 2000 ][Author ID1: at Wed Aug 1 18:58:00 2001 ][Author ID1: at Wed Aug 1 18:58:00 2001 ] [Author ID2: at Tue Oct 3 23:41:00 2000 ][Author ID1: at Wed Aug 1 18:58:00 2001 ]nie[Author ID2: at Tue Oct 3 23:41:00 2000 ].

Protokół uwierzytelniania Kerberos umożliwia wzajemne uwierzytelnianie (mutual authentication) pomiędzy klientem a serwerem oraz pomiędzy dwoma serwerami, zanim pomiędzy nimi zostanie ustanowione połączenie sieciowe. Protokół przyjmuje, że początkowe transakcje (transactions) pomiędzy klientami a serwerami mają miejsce w otwartej sieci, w której większość komputerów nie jest zabezpieczonych i „napastnicy” mogą monitorować i[Author ID2: at Tue Oct 3 23:48:00 2000 ]oraz[Author ID2: at Tue Oct 3 23:48:00 2000 ] dowolnie modyfikować pakiety [Author ID2: at Tue Oct 3 23:48:00 2000 ]tak,[Author ID2: at Tue Oct 3 23:48:00 2000 ] jak w Internecie. Protokół Kerberos gwarantuje, że nadawca wie, kim jest odbiorca i odwrotnie,[Author ID2: at Tue Oct 3 23:48:00 2000 ] oraz gwarantuje, że nikt z zewnątrz nie będzie mógł się podszywać [Author ID2: at Tue Oct 3 23:48:00 2000 ]podawać za[Author ID2: at Tue Oct 3 23:48:00 2000 ]pod[Author ID2: at Tue Oct 3 23:48:00 2000 ] żadną ze stron.

Rozwiązania natychmiastowe

Konfigurowanie protokołów z kluczem tajnym (shared secrets protocol)

W protokole Kerberos zastosowano uwierzytelnianie wymagające kluczy tajnych (shared secrets). Jeśli tylko dwoje[Author ID2: at Tue Oct 3 23:49:00 2000 ]óch [Author ID2: at Tue Oct 3 23:49:00 2000 ] [Author ID2: at Tue Oct 3 23:49:00 2000 ]ludzi zna klucz tajny (secret), to wtedy [Author ID2: at Tue Oct 3 23:49:00 2000 ]wówczas [Author ID2: at Tue Oct 3 23:49:00 2000 ]każdy z nich może zweryfikować tożsamość drugiej strony przez uzyskanie potwierdzenia, że osoba ta zna ten sam klucz tajny (secret). Załóżmy na przykład[Author ID2: at Tue Oct 3 23:50:00 2000 ], że np. [Author ID2: at Tue Oct 3 23:51:00 2000 ]Bonnie często wysyła wiadomości do Clyde'a, który musi mieć pewność, że wiadomość od Bonnie jest autentyczna, zanim zacznie działać zgodnie z otrzymanymi informacjami. Bonnie i Clyde jako rozwiązanie tego problemu wybrali hasło, które nie będzie udostępniane nikomu innemu. Jeśli z wiadomości od Bonnie będzie wynikało, że nadawca zna to hasło, Clyde będzie wiedział, że nadawcą jest Bonnie.

W jaki sposób Bonnie pokaże, że zna to hasło? Mogłaby zamieścić w zakończeniu [Author ID2: at Tue Oct 3 23:52:00 2000 ]swojej wiadomości coś takiego jak [Author ID2: at Tue Oct 3 23:51:00 2000 ]na wzór [Author ID2: at Tue Oct 3 23:51:00 2000 ]bloku[Author ID2: at Tue Oct 3 23:51:00 2000 ] podpisu (signature block) na zakończenie wiadomości[Author ID2: at Tue Oct 3 23:52:00 2000 ]. Jest to sposób prosty i wydajny, ale będzie bezpieczny tylko wtedy, gdy Bonnie i Clyde mogą być [Author ID2: at Tue Oct 3 23:52:00 2000 ]będą [Author ID2: at Tue Oct 3 23:52:00 2000 ]pewni, że nikt inny nie czyta ich poczty. Niestety, wiadomości są przesyłane przez sieć, z której korzysta Szeryf, posiadający analizator sieci (network analyzer). Tak więc Bonnie,[Author ID2: at Tue Oct 3 23:53:00 2000 ] jedynie podając hasło,[Author ID2: at Tue Oct 3 23:53:00 2000 ]nie może udowodnić, że je [Author ID2: at Tue Oct 3 23:53:00 2000 ]zna hasło po prostu podając je[Author ID2: at Tue Oct 3 23:53:00 2000 ], tylko[Author ID2: at Tue Oct 3 23:53:00 2000 ] musi wykazać się jego znajomością[Author ID2: at Tue Oct 3 23:53:00 2000 ]pokazać, że je zna, [Author ID2: at Tue Oct 3 23:54:00 2000 ] [Author ID2: at Tue Oct 3 23:54:00 2000 ]bez przesyłania po[Author ID2: at Tue Oct 3 23:54:00 2000 ]przez sieć.

W protokole Kerberos rozwiązano ten problem za pomocą kryptografii z kluczem tajnym (secret key cryptography). Zamiast współdzielenia hasła,[Author ID2: at Tue Oct 3 23:54:00 2000 ] partnerzy komunikacji współdzielą klucz (cryptographic key) i stosują go do weryfikowania tożsamości drugiej strony. Klucz wspólny (shared key) musi być symetryczny (symmetric).[Author ID2: at Tue Oct 3 23:54:00 2000 ][Author ID2: at Tue Oct 3 23:54:00 2000 ]i[Author ID2: at Tue Oct 3 23:55:00 2000 ] I[Author ID2: at Tue Oct 3 23:55:00 2000 ]nnymi słowy, ten sam klucz służy do szyfrowania i odszyfrowywania. Jedna ze stron udowadnia znajomość klucza poprzez zaszyfrowanie części danych, a druga — rozszyfrowując te dane. Uwierzytelnianie za pomocą klucza tajnego (secret key authentication) rozpoczyna się, gdy jedna ze stron przedstawi wartość uwierzytelniającą (authenticator) w postaci części danych zaszyfrowanych za pomocą klucza tajnego (secret key)[Author ID2: at Wed Oct 4 02:15:00 2000 ]. Zestaw danych do tworzenia wartości uwierzytelniającej (authenticator) za każdym razem musi być inny, w przeciwnym razie stara wartość uwierzytelniająca (authenticator)[Author ID2: at Wed Oct 4 02:15:00 2000 ] mógła[Author ID2: at Tue Oct 3 23:55:00 2000 ]by być wykorzystany[Author ID2: at Tue Oct 3 23:55:00 2000 ]a[Author ID2: at Tue Oct 3 23:55:00 2000 ] ponownie przez kogoś, komu udałoby się podsłuchać wymianę danych. Po otrzymaniu wartości uwierzytelniającej (authenticator) odbiorca odszyfrowuje ją. Jeśli odszyfrowanie przebiegło pomyślnie, to odbiorca wie, że osoba przedstawiająca [Author ID2: at Tue Oct 3 23:56:00 2000 ]wartość uwierzytelniającą [Author ID2: at Tue Oct 3 23:56:00 2000 ](authenticat[Author ID2: at Wed Oct 4 02:15:00 2000 ]or) [Author ID2: at Wed Oct 4 02:15:00 2000 ]zna właściwy klucz. Tylko dwoje [Author ID2: at Tue Oct 3 23:56:00 2000 ]óch [Author ID2: at Tue Oct 3 23:56:00 2000 ]ludzi ma właściwy klucz; o[Author ID2: at Tue Oct 3 23:56:00 2000 ]-o[Author ID2: at Tue Oct 3 23:56:00 2000 ]dbiorca jest jedną z nich, więc osoba przedstawiająca wartość uwierzytelniającą (authenticator)[Author ID2: at Wed Oct 4 02:15:00 2000 ] musi być tą drugą.

Ostrzeżenie! Przyjęto, że dwie i tylko dwie osoby posiadają klucz tajny (secret key). Jeśli byłby on znany[Author ID2: at Tue Oct 3 23:57:00 2000 ]Klucz tajny (secret key), znany[Author ID2: at Tue Oct 3 23:57:00 2000 ] osobie trzeciej[Author ID2: at Tue Oct 3 23:57:00 2000 ],[Author ID2: at Tue Oct 3 23:57:00 2000 ] przestałby być[Author ID2: at Tue Oct 3 23:57:00 2000 ]nie jest już[Author ID2: at Tue Oct 3 23:57:00 2000 ] tajnym[Author ID2: at Tue Oct 3 23:57:00 2000 ].

Jeśli dane są pobierane z zaufanego źródła, odbiorca musi upewnić się, czy źródło jest tym, czym rzekomo jest,[Author ID2: at Tue Oct 3 23:57:00 2000 ] oraz czy informacje nie zostały sfałszowane [Author ID2: at Tue Oct 3 23:57:00 2000 ]po drodze sfałszowane[Author ID2: at Tue Oct 3 23:58:00 2000 ]. Nie jest [Author ID2: at Tue Oct 3 23:58:00 2000 ]Trudno [Author ID2: at Tue Oct 3 23:58:00 2000 ]to mało znaczący[Author ID2: at Tue Oct 3 23:58:00 2000 ]określić jako prosty[Author ID2: at Tue Oct 3 23:58:00 2000 ] problem, ale parametry są ustalone i można znaleźć właściwe rozwiązanie. Należy wrócić uwagę, że w kontekście bezpieczeństwa nie ma rozwiązań doskonałych. W przypadku komunikacji dwukierunkowej, kiedy wymagane jest uwierzytelnianie wzajemne (mutual authentication), pojawiają się nowe problemy, zwłaszcza kiedy [Author ID2: at Tue Oct 3 23:58:00 2000 ]gdy [Author ID2: at Tue Oct 3 23:58:00 2000 ]dochodzi do współdzielenia kluczy tajnych (secret keys),[Author ID2: at Tue Oct 3 23:58:00 2000 ] i konieczne jest zastosowanie nowych narzędzi do rozwiązania tych problemów.

Odbiorca, aby zapewnić uwierzytelnianie wzajemne (mutual authentication)[Author ID2: at Wed Oct 4 02:15:00 2000 ], może wziąć część danych z pierwotnej wartości uwierzytelniającej (authenticator), zaszyfrować je, tworząc nową wartość uwierzytelniającą (authentic[Author ID2: at Wed Oct 4 02:15:00 2000 ]ator)[Author ID2: at Wed Oct 4 02:15:00 2000 ], którą wysyła do nadawcy, który z kolei może odszyfrować wartość uwierzytelniającą (authenticator)[Author ID2: at Wed Oct 4 02:15:00 2000 ] odbiorcy i porównać z oryginałem. Jeśli zgadzają się, nadawca będzie wiedział, że odbiorca był w stanie odszyfrować oryginał, a więc ma właściwy klucz.

Załóżmy, np.[Author ID2: at Tue Oct 3 23:59:00 2000 ] na przykład, [Author ID2: at Tue Oct 3 23:59:00 2000 ]że Bonnie i Clyde zadecydowali, i[Author ID2: at Wed Oct 4 00:00:00 2000 ]że[Author ID2: at Wed Oct 4 00:00:00 2000 ] do weryfikowania tożsamości drugiej strony,[Author ID2: at Wed Oct 4 00:02:00 2000 ] przed przesłaniem jakichkolwiek informacji,[Author ID2: at Wed Oct 4 00:02:00 2000 ] będą korzystać z klucza tajnego (shared secret key). Uzgodnili w ten sposób następujący protokół:

  1. Bonnie wysyła do Clyde'a komunikat zawierający jej imię,[Author ID2: at Wed Oct 4 00:02:00 2000 ] zapisane otwartym tekstem [Author ID2: at Wed Oct 4 00:02:00 2000 ], [Author ID2: at Wed Oct 4 00:02:00 2000 ]oraz wartość uwierzytelniającą (authenticator) zaszyfrowaną za pomocą klucza tajnego (secret key) współdzielonego z Clydem. W tym protokole wartość uwierzytelniająca (authenticator) jest strukturą danych,[Author ID2: at Wed Oct 4 00:03:00 2000 ] zawierającą dwa pola. Jedno pole zawiera informacje o Bonnie — na przykład[Author ID2: at Wed Oct 4 00:03:00 2000 ]np.[Author ID2: at Wed Oct 4 00:03:00 2000 ] nazwisko [Author ID2: at Wed Oct 4 00:03:00 2000 ]([Author ID2: at Wed Oct 4 00:03:00 2000 ]Parker)[Author ID2: at Wed Oct 4 00:03:00 2000 ][Author ID2: at Wed Oct 4 00:03:00 2000 ]. Drugie pole zawiera aktualny czas wskazywany na stacji roboczej Bonnie.

  2. Clyde otrzymuje wiadomość i za pomocą klucza współdzielonego z Bonnie odszyfrowuje wartość uwierzytelniającą (authenticator) i odczytuje pole zawierające czas ze stacji roboczej Bonnie.

  3. Załóżmy, że oboje używają usługi sieciowej, która synchronizuje zegary w ich komputerach. Tak więc Clyde może porównać czas odczytany z wartości uwierzytelniającej (authenticator) z czasem wskazywanym przez zegar w jego komputerze. Jeśli różnica przekracza ustaloną granicę, Clyde odrzuca wartość uwierzytelniającą (authenticator)[Author ID2: at Wed Oct 4 02:15:00 2000 ].

  4. Jeśli czas ten mieści się w dopuszczalnym zakresie, to wartość uwierzytelniająca (authenticator) prawdopodobnie pochodzi od Bonnie, ale Clyde nadal nie ma dowodu [Author ID2: at Wed Oct 4 00:06:00 2000 ]na to dowodu[Author ID2: at Wed Oct 4 00:06:00 2000 ]. Szeryf mógł obserwować ruch w sieci i teraz powtórzył wcześniejszą próbę ustanowienia połączenia przez Bonnie. Jednak jeśli Clyde zapisał czasy uzyskane z wartości uwierzytelniających (authenticators) przesłanych przez Bonnie, wtedy może udaremnić próby powtarzania wcześniejszych wiadomości,[Author ID2: at Wed Oct 4 00:06:00 2000 ] odrzucając każdą wiadomość, której czas jest taki sam lub wcześniejszy niż czas ostatniej wartości uwierzytelniającej[Author ID2: at Wed Oct 4 00:06:00 2000 ] (authenticator)[Author ID2: at Wed Oct 4 02:16:00 2000 ].

Wskazówka: W poprzednim akapicie opisano atak metodą powtórzenia (replay attack). Jest to określenie warte zapamiętania, ponieważ osoby zajmujące się zabezpieczeniami poświęcają [Author ID2: at Wed Oct 4 00:07:00 2000 ]takim atakom osoby zajmujące się zabezpieczeniami poświęcają[Author ID2: at Wed Oct 4 00:07:00 2000 ] wiele uwagi.

  1. Clyde używa klucza współdzielonego z Bonnie do zaszyfrowania czasu,[Author ID2: at Wed Oct 4 00:07:00 2000 ] uzyskanego z komunikatu przesłanego przez Bonnie i wysyła go do niej z powrotem. Należy zwrócić uwagę, że Clyde nie odsyła wszystkich informacji zawartych w wartości uwierzytelniającej (authenticator), ale[Author ID2: at Wed Oct 4 00:07:00 2000 ] tylko czas. Gdyby odesłał wszystko, Bonnie nie miałaby sposobu, aby dowiedzieć się,[Author ID2: at Wed Oct 4 00:07:00 2000 ] czy ktoś udający Clyde'a po prostu nie skopiował wartości uwierzytelniającej (authenticator) z oryginalnego komunikatu Bonnie i nie wysłał do niej w niezmienionej postaci. Clyde wybrał czas, ponieważ jest to jedyna niepowtarzalna w komunikacie [Author ID2: at Wed Oct 4 00:08:00 2000 ]część informacji, która jest niepowtarzalna w komunikacie, [Author ID2: at Wed Oct 4 00:08:00 2000 ]który[Author ID2: at Wed Oct 4 00:08:00 2000 ]ą[Author ID2: at Wed Oct 4 00:08:00 2000 ] przesłała Bonnie.

  2. Bonnie otrzymuje odpowiedź od [Author ID2: at Wed Oct 4 00:08:00 2000 ]Clyde'a, odszyfrowuje ją i porównuje wynik z czasem zamieszczonym w wartości uwierzytelniającej (authenticator), którą wysłała. Jeśli czas zgadza się, Bonnie może być pewna, że jej wartość uwierzytelniająca (authenticator)[Author ID2: at Wed Oct 4 02:16:00 2000 ] dotarła do kogoś, kto zna klucz tajny (secret key), konieczny do odszyfrowania tej wartości i oczytania czasu. Klucz tajny Bonnie współdzieli tylko z Clyde'm., więc to on odebrał jej komunikat i odpowiedział. Zarówno nadawca,[Author ID2: at Wed Oct 4 00:09:00 2000 ] jak i odbiorca mogą mieć zaufanie co do danego połączenia. Na rysunku 4.1.[Author ID2: at Wed Oct 4 00:09:00 2000 ][Author ID3: at Mon Aug 13 12:35:00 2001 ] przedstawiono proces wzajemnego uwierzytelniania.

0x01 graphic
[Author ID3: at Mon Aug 13 12:35:00 2001 ][Author ID3: at Mon Aug 13 12:35:00 2001 ]

Timestamp[Author ID3: at Mon Aug 13 12:35:00 2001 ] [Author ID2: at Wed Oct 4 00:09:00 2000 ][Author ID3: at Mon Aug 13 12:35:00 2001 ]-[Author ID2: at Wed Oct 4 00:09:00 2000 ][Author ID2: at Wed Oct 4 00:09:00 2000 ][Author ID3: at Mon Aug 13 12:35:00 2001 ]znacznik czasu[Author ID3: at Mon Aug 13 12:35:00 2001 ][Author ID1: at Thu Aug 2 11:44:00 2001 ][Author ID3: at Mon Aug 13 12:35:00 2001 ]

[Author ID0: at Thu Nov 30 00:00:00 1899 ]

Rysunek 4.1.[Author ID2: at Wed Oct 4 00:09:00 2000 ] Uwierzytelnianie wzajemne.[Author ID0: at Thu Nov 30 00:00:00 1899 ]

Zastosowanie centrum dystrybucji kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ]Centrum Dystrybucji Kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ] (k[Author ID2: at Wed Oct 4 00:09:00 2000 ]K[Author ID2: at Wed Oct 4 00:09:00 2000 ]ey d[Author ID2: at Wed Oct 4 00:09:00 2000 ]D[Author ID2: at Wed Oct 4 00:09:00 2000 ]istribution c[Author ID2: at Wed Oct 4 00:09:00 2000 ]C[Author ID2: at Wed Oct 4 00:09:00 2000 ]enter — KDC[Author ID2: at Wed Oct 4 00:09:00 2000 ])

Poprzednia procedura ma widoczną słabość[Author ID2: at Wed Oct 4 00:09:00 2000 ]pewien mankament[Author ID2: at Wed Oct 4 00:09:00 2000 ] — nie wyjaśnia jak ani skąd Bonnie i Clyde uzyskali klucz tajny (secret key), z którego korzystają podczas sesji. Dla jasności na potrzeby poprzedniej procedury przyjęto, że Bonnie i Clyde są ludźmi, którzy mogliby się spotkać i uzgodnić współdzielony klucz tajny (shared secret). W rzeczywistości Bonnie może być programem[Author ID1: at Wed Aug 1 18:01:00 2001 ]-[Author ID1: at Wed Aug 1 18:01:00 2001 ]klientem pracującym na stacji roboczej, a Clyde może być[Author ID2: at Wed Oct 4 00:10:00 2000 ][Author ID2: at Wed Oct 4 00:10:00 2000 ] usługa[Author ID2: at Wed Oct 4 00:10:00 2000 ]ą[Author ID2: at Wed Oct 4 00:10:00 2000 ] uruchomioną na serwerze sieciowym. Następnym problemem jest to, że klient, Bonnie, komunikuje się z wieloma serwerami, więc potrzebne są klucze dla każdego z nich, a Clyde komunikuje się z wieloma klientami i również konieczne są klucze dla każdej sesji. Jeśli klient ma mieć klucz dla [Author ID2: at Wed Oct 4 00:10:00 2000 ]do [Author ID2: at Wed Oct 4 00:10:00 2000 ]każdej usługi, a każda usługa ma mieć klucz dla każdego klienta,[Author ID2: at Wed Oct 4 00:11:00 2000 ] to dystrybucja kluczy może szybko skomplikować się i stanowić znaczące zagrożenie.

Uwaga: W niniejszym rozdziale i w innych fragmentach książki, w których używa się przykładu Bonnie i Clyde'a, określa się ich jako „ona” i „on”. Jak podano w poprzednim fragmencie Bonnie i Clyde mogą to [Author ID2: at Wed Oct 4 00:11:00 2000 ]być programami[Author ID2: at Wed Oct 4 00:11:00 2000 ]y[Author ID2: at Wed Oct 4 00:11:00 2000 ] lub usługi, ale analogia nadal jest ważna. Używanie określeń „ona” i „on” nie musi oznaczać, że Bonnie i Clyde są ludźmi.

Protokół Kerberos rozwiązuje ten problem,[Author ID2: at Wed Oct 4 00:12:00 2000 ] określając trzy jednostki: klienta, serwer i zaufaną jednostkę niezależną, która jest pośrednikiem pomiędzy nimi. Ten zaufany pośrednik nosi nazwę centrum [Author ID0: at Thu Nov 30 00:00:00 1899 ]Centrum [Author ID1: at Wed Aug 1 18:03:00 2001 ]dystrybucji [Author ID1: at Sun Aug 5 21:08:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:08:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:08:00 2001 ] [Author ID1: at Sun Aug 5 21:08:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:08:00 2001 ] [Author ID1: at Sun Aug 5 21:08:00 2001 ](k[Author ID2: at Wed Oct 4 00:12:00 2000 ]K[Author ID2: at Wed Oct 4 00:12:00 2000 ]ey d[Author ID2: at Wed Oct 4 00:12:00 2000 ]D[Author ID2: at Wed Oct 4 00:12:00 2000 ]istribution c[Author ID2: at Wed Oct 4 00:12:00 2000 ]C[Author ID2: at Wed Oct 4 00:12:00 2000 ]enter [Author ID2: at Wed Oct 4 00:12:00 2000 ]-[Author ID2: at Wed Oct 4 00:12:00 2000 ][Author ID2: at Wed Oct 4 00:12:00 2000 ]KDC).

Wskazówka: Obecnie zwiększa się zapotrzebowanie na niezależne firmy,[Author ID2: at Wed Oct 4 00:12:00 2000 ] dostarczające klucze tajne (key pads) i zarządzające nimi, które działają jako zaufani pośrednicy. Jeśli jesteś przedsiębiorczy i bierzesz pod[Author ID1: at Wed Aug 1 18:03:00 2001 ] uwagę możliwość działalności komercyjnej, warto to przemyśleć.

Usługa Centrum dystrybucji [Author ID1: at Sun Aug 5 21:08:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:08:00 2001 ]kluczy [Author ID1: at Sun Aug 5 21:08:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:08:00 2001 ] [Author ID1: at Sun Aug 5 21:08:00 2001 ](Key [Author ID2: at Wed Oct 4 00:13:00 2000 ]Distribution [Author ID2: at Wed Oct 4 00:13:00 2000 ]Center[Author ID2: at Wed Oct 4 00:13:00 2000 ]) jest uruchomiona na serwerze, który jest fizycznie zabezpieczony i obsługuje bazę danych o kontach (account information) wszystkich obiektów typu security principal w swoim obszarze (realm), który jest w protokole Kerberos odpowiednikiem domeny systemu Windows 2000. Razem z informacjami o każdym z obiektów typu security principal, centrum [Author ID1: at Sun Aug 5 21:09:00 2001 ]Centrum [Author ID1: at Sun Aug 5 21:09:00 2001 ]dystrybucji [Author ID1: at Sun Aug 5 21:09:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:09:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:09:00 2001 ] (KDC)[Author ID0: at Thu Nov 30 00:00:00 1899 ] [Author ID1: at Sun Aug 5 21:09:00 2001 ]Kluczy (KDC)[Author ID1: at Sun Aug 5 21:09:00 2001 ] [Author ID1: at Sun Aug 5 21:09:00 2001 ]przechowuje również klucz szyfru (cryptographic key),[Author ID2: at Wed Oct 4 00:13:00 2000 ] znany tylko obiektowi typu security principal i centrum [Author ID1: at Sun Aug 5 21:09:00 2001 ]Centrum [Author ID1: at Sun Aug 5 21:09:00 2001 ]dystrybucji [Author ID1: at Sun Aug 5 21:09:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:09:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:09:00 2001 ] [Author ID1: at Sun Aug 5 21:09:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:09:00 2001 ] [Author ID1: at Sun Aug 5 21:09:00 2001 ](KDC). Klucz ten jest używany przy wymianie informacji pomiędzy obiektem zabezpieczeń głównych (security principal) i centrum dystrybucji kluczy (KDC)[Author ID2: at Wed Oct 4 00:14:00 2000 ] i[Author ID2: at Wed Oct 4 00:14:00 2000 ]oraz[Author ID2: at Wed Oct 4 00:14:00 2000 ] jest określany jako klucz długoterminowy (long-[Author ID2: at Wed Oct 4 00:14:00 2000 ] [Author ID2: at Wed Oct 4 00:14:00 2000 ]term key). Zwykle [Author ID2: at Wed Oct 4 00:14:00 2000 ]Zazwyczaj [Author ID2: at Wed Oct 4 00:14:00 2000 ]uzyskuje się go na podstawie hasła logowania obiektu typu security principal.

Wskazówka: Zamknij serwer centrum [Author ID1: at Sun Aug 5 21:09:00 2001 ]Centrum [Author ID1: at Sun Aug 5 21:09:00 2001 ]dystrybucji [Author ID1: at Sun Aug 5 21:09:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:09:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:09:00 2001 ] [Author ID1: at Sun Aug 5 21:09:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:09:00 2001 ] [Author ID1: at Sun Aug 5 21:09:00 2001 ](KDC) w zabezpieczonym pokoju i nie dołączaj klawiatury ani monitora (VDU). Administruj tym serwerem ze stacji roboczej [Author ID2: at Wed Oct 4 00:15:00 2000 ][Author ID1: at Wed Aug 1 18:20:00 2001 ]-[Author ID2: at Wed Oct 4 00:15:00 2000 ][Author ID2: at Wed Oct 4 00:15:00 2000 ][Author ID1: at Wed Aug 1 18:20:00 2001 ]-[Author ID1: at Wed Aug 1 18:20:00 2001 ]klienta z zainstalowanym odpowiednim oprogramowaniem. Dokonuj inspekcji każdego dostępu lub próby dostępu do serwera. Jeśli twoje centrum [Author ID1: at Sun Aug 5 21:09:00 2001 ]Centrum [Author ID1: at Sun Aug 5 21:09:00 2001 ]dystrybucji [Author ID1: at Sun Aug 5 21:09:00 2001 ]Dystrybucji[Author ID1: at Sun Aug 5 21:09:00 2001 ] [Author ID1: at Sun Aug 5 21:09:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:09:00 2001 ] [Author ID1: at Sun Aug 5 21:09:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:09:00 2001 ] [Author ID1: at Sun Aug 5 21:09:00 2001 ](KDC) nie jest bezpieczne,[Author ID2: at Wed Oct 4 00:15:00 2000 ] to nic innego nie jest bezpieczne.

Klient, który chce skomunikować się z serwerem,[Author ID2: at Wed Oct 4 00:15:00 2000 ] wysyła żądanie do centrum [Author ID1: at Sun Aug 5 21:09:00 2001 ]Centrum [Author ID1: at Sun Aug 5 21:09:00 2001 ]dystrybucji [Author ID1: at Sun Aug 5 21:09:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:09:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:09:00 2001 ] [Author ID1: at Sun Aug 5 21:09:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:09:00 2001 ] [Author ID1: at Sun Aug 5 21:09:00 2001 ](KDC), które przydziela obu stronom unikatowy, krótkoterminowy (short-[Author ID2: at Wed Oct 4 00:15:00 2000 ] [Author ID2: at Wed Oct 4 00:15:00 2000 ]term) klucz sesji (session key), który [Author ID2: at Wed Oct 4 00:15:00 2000 ]służy[Author ID2: at Wed Oct 4 00:15:00 2000 ]ący[Author ID2: at Wed Oct 4 00:15:00 2000 ] do[Author ID2: at Wed Oct 4 00:15:00 2000 ] [Author ID2: at Wed Oct 4 00:15:00 2000 ] wzajemnego [Author ID2: at Wed Oct 4 00:15:00 2000 ]wzajemnemu [Author ID2: at Wed Oct 4 00:15:00 2000 ]uwierzytelnianiu[Author ID2: at Wed Oct 4 00:15:00 2000 ]a[Author ID2: at Wed Oct 4 00:15:00 2000 ]. Kopia klucza sesji (session key)[Author ID2: at Wed Oct 4 02:16:00 2000 ] serwera jest zaszyfrowana w kluczu długoterminowym (long [Author ID2: at Wed Oct 4 00:15:00 2000 ]-[Author ID2: at Wed Oct 4 00:15:00 2000 ]term) serwera. Kopia klucza sesji (session key)[Author ID2: at Wed Oct 4 02:16:00 2000 ] klienta jest zaszyfrowana w kluczu długoterminowym klienta.

Teoretycznie centrum [Author ID1: at Sun Aug 5 21:09:00 2001 ]Centrum [Author ID1: at Sun Aug 5 21:09:00 2001 ]dystrybucji [Author ID1: at Sun Aug 5 21:09:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:09:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:09:00 2001 ] [Author ID1: at Sun Aug 5 21:09:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:09:00 2001 ] [Author ID1: at Sun Aug 5 21:09:00 2001 ](KDC) mogłoby wysyłać klucz sesji (session key) bezpośrednio do każdego obiektu typu security principal, którego to dotyczy, ale w praktyce taka procedura byłaby krańcowo [Author ID2: at Wed Oct 4 00:16:00 2000 ]skrajnie [Author ID2: at Wed Oct 4 00:16:00 2000 ]niewydajna. Wymagałaby od serwera zachowywania w pamięci swojego klucza sesji podczas oczekiwania na wywołanie przez klienta. Ponadto serwer musiałby pamiętać klucze dla wszystkich klientów, które[Author ID2: at Wed Oct 4 00:16:00 2000 ]zy[Author ID2: at Wed Oct 4 00:16:00 2000 ] mogły[Author ID2: at Wed Oct 4 00:16:00 2000 ]li[Author ID2: at Wed Oct 4 00:16:00 2000 ]by za[Author ID2: at Wed Oct 4 00:16:00 2000 ]żądać obsługi. Zarządzanie kluczami (key management) zajęłoby niewspółmiernie dużą część zasobów serwera i nie dałoby możliwości rozbudowy. Protokół Kerberos rozwiązuje ten problem za pomocą biletów sesji (session tickets).

Zastosowanie biletów sesji (session tickets)

Centrum dystrybucji [Author ID1: at Sun Aug 5 21:09:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:09:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:09:00 2001 ] [Author ID1: at Sun Aug 5 21:09:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:09:00 2001 ] [Author ID1: at Sun Aug 5 21:09:00 2001 ](KDC) odpowiada na żądanie klienta,[Author ID2: at Wed Oct 4 00:17:00 2000 ] wysyłając do niego kopię[Author ID2: at Wed Oct 4 00:17:00 2000 ]e[Author ID2: at Wed Oct 4 00:17:00 2000 ] klucza sesji (session key) serwera i klucza sesji (session key) klienta, jak przedstawiono na rysunku 4.2. Kopia klucza sesji (session key[Author ID2: at Wed Oct 4 02:17:00 2000 ])[Author ID2: at Wed Oct 4 02:17:00 2000 ] klienta jest zaszyfrowana za pomocą klucza, który centrum dystrybucji kluczy (KDC) [Author ID2: at Wed Oct 4 00:17:00 2000 ]współdzieli z klientem. Kopia klucza sesji (session key)[Author ID2: at Wed Oct 4 02:17:00 2000 ] serwera jest umieszczona razem z informacjami o[Author ID2: at Wed Oct 4 00:18:00 2000 ]i[Author ID2: at Wed Oct 4 00:18:00 2000 ] kliencie w strukturze danych o nazwie bilet sesji (session ticket), a cała struktura jest zaszyfrowana za pomocą klucza, który centrum [Author ID1: at Sun Aug 5 21:10:00 2001 ]Centrum [Author ID1: at Sun Aug 5 21:10:00 2001 ]dystrybucji [Author ID1: at Sun Aug 5 21:10:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:10:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:10:00 2001 ] [Author ID1: at Sun Aug 5 21:10:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:10:00 2001 ] [Author ID1: at Sun Aug 5 21:10:00 2001 ](KDC) współdzieli z serwerem. Klient korzysta z biletu sesji,[Author ID2: at Wed Oct 4 00:18:00 2000 ] kiedy kontaktuje się z serwerem.

Clients wants to access Server[Author ID1: at Sun Aug 5 21:10:00 2001 ] [Author ID2: at Wed Oct 4 00:18:00 2000 ][Author ID1: at Sun Aug 5 21:10:00 2001 ]-[Author ID2: at Wed Oct 4 00:18:00 2000 ][Author ID2: at Wed Oct 4 00:18:00 2000 ][Author ID1: at Sun Aug 5 21:10:00 2001 ]Klient żąda dostępu do [Author ID1: at Sun Aug 5 21:10:00 2001 ]S[Author ID2: at Wed Oct 4 00:18:00 2000 ]s[Author ID2: at Wed Oct 4 00:18:00 2000 ][Author ID1: at Sun Aug 5 21:10:00 2001 ]erwera[Author ID1: at Sun Aug 5 21:10:00 2001 ]

Client[Author ID1: at Sun Aug 5 21:10:00 2001 ] [Author ID2: at Wed Oct 4 00:18:00 2000 ][Author ID1: at Sun Aug 5 21:10:00 2001 ]-[Author ID2: at Wed Oct 4 00:18:00 2000 ][Author ID2: at Wed Oct 4 00:18:00 2000 ][Author ID1: at Sun Aug 5 21:10:00 2001 ]Klient[Author ID0: at Thu Nov 30 00:00:00 1899 ]

KDC creates session key[Author ID1: at Sun Aug 5 21:10:00 2001 ] [Author ID2: at Wed Oct 4 00:19:00 2000 ][Author ID1: at Sun Aug 5 21:10:00 2001 ]-[Author ID2: at Wed Oct 4 00:19:00 2000 ][Author ID2: at Wed Oct 4 00:19:00 2000 ][Author ID1: at Sun Aug 5 21:10:00 2001 ]Centrum dystrybucji kluczy (KDC) tworzy klucz sesji S[Author ID1: at Sun Aug 5 21:10:00 2001 ]CS[Author ID1: at Sun Aug 5 21:10:00 2001 ]

K[Author ID1: at Sun Aug 5 21:10:00 2001 ]clear[Author ID1: at Sun Aug 5 21:10:00 2001 ](use S[Author ID1: at Sun Aug 5 21:10:00 2001 ]CS[Author ID1: at Sun Aug 5 21:10:00 2001 ] for server), ticket[Author ID1: at Sun Aug 5 21:10:00 2001 ] [Author ID2: at Wed Oct 4 00:27:00 2000 ][Author ID1: at Sun Aug 5 21:10:00 2001 ]=[Author ID1: at Sun Aug 5 21:10:00 2001 ] [Author ID2: at Wed Oct 4 00:27:00 2000 ][Author ID1: at Sun Aug 5 21:10:00 2001 ]K[Author ID1: at Sun Aug 5 21:10:00 2001 ]server[Author ID1: at Sun Aug 5 21:10:00 2001 ](use S[Author ID1: at Sun Aug 5 21:10:00 2001 ]CS[Author ID1: at Sun Aug 5 21:10:00 2001 ] for client[Author ID1: at Sun Aug 5 21:10:00 2001 ])-[Author ID2: at Wed Oct 4 00:28:00 2000 ]) [Author ID2: at Wed Oct 4 00:28:00 2000 ][Author ID1: at Sun Aug 5 21:10:00 2001 ][Author ID2: at Wed Oct 4 00:54:00 2000 ][Author ID1: at Sun Aug 5 21:10:00 2001 ] [Author ID2: at Wed Oct 4 00:28:00 2000 ][Author ID1: at Sun Aug 5 21:10:00 2001 ]K[Author ID1: at Sun Aug 5 21:10:00 2001 ]clear[Author ID1: at Sun Aug 5 21:10:00 2001 ](zastosuj S[Author ID1: at Sun Aug 5 21:10:00 2001 ]CS[Author ID1: at Sun Aug 5 21:10:00 2001 ] dla serwera), bilet[Author ID1: at Sun Aug 5 21:10:00 2001 ] [Author ID2: at Wed Oct 4 00:28:00 2000 ][Author ID1: at Sun Aug 5 21:10:00 2001 ]=[Author ID1: at Sun Aug 5 21:10:00 2001 ] [Author ID2: at Wed Oct 4 00:28:00 2000 ][Author ID1: at Sun Aug 5 21:10:00 2001 ]K[Author ID1: at Sun Aug 5 21:10:00 2001 ]server[Author ID1: at Sun Aug 5 21:10:00 2001 ](zastosuj S[Author ID1: at Sun Aug 5 21:10:00 2001 ]CS[Author ID1: at Sun Aug 5 21:10:00 2001 ] dl[Author ID1: at Sun Aug 5 21:10:00 2001 ]a klienta)[Author ID1: at Sun Aug 5 21:10:00 2001 ]0x01 graphic
[Author ID1: at Sun Aug 5 21:11:00 2001 ]

Rysunek 4.2.[Author ID2: at Wed Oct 4 00:19:00 2000 ] Dystrybucja kluczy.[Author ID0: at Thu Nov 30 00:00:00 1899 ]

Centrum dystrybucji [Author ID1: at Sun Aug 5 21:11:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:11:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:11:00 2001 ] [Author ID1: at Sun Aug 5 21:11:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:11:00 2001 ] [Author ID1: at Sun Aug 5 21:11:00 2001 ](KDC) nie śledzi swoich komunikatów, aby w ten sposób upewnić się,[Author ID2: at Wed Oct 4 00:19:00 2000 ] czy dotarły pod właściwy adres — po prostu wydaje bilet (ticket). Jeśli komunikat wysłany przez centrum dystrybucji kluczy [Author ID2: at Wed Oct 4 00:19:00 2000 ](KDC) dostanie się w niepowołane ręce, bezpieczeństwo nie jest zagrożone. Tylko ktoś, kto zna klucz tajny (secret key) klienta może odszyfrować kopię klienta klucza sesji (session key) i tylko ktoś, kto zna klucz tajny (secret key) serwera,[Author ID2: at Wed Oct 4 00:20:00 2000 ] może odczytać zawartość biletu (ticket).

Klient wyodrębnia bilet i kopię klienta klucza sesji (session key) i umieszcza je w zabezpieczonej pamięci podręcznej (secure cache), znajdującej się w pamięci operacyjnej, a nie na dysku. Kiedy klient chce połączyć się serwerem, wysyła komunikat zawierający bilet (ticket) z[Author ID2: at Wed Oct 4 00:20:00 2000 ]i[Author ID2: at Wed Oct 4 00:20:00 2000 ] wartość[Author ID2: at Wed Oct 4 00:20:00 2000 ]cią[Author ID2: at Wed Oct 4 00:20:00 2000 ] uwierzytelniającą (authenticator) zaszyfrowany[Author ID2: at Wed Oct 4 00:20:00 2000 ]e[Author ID2: at Wed Oct 4 00:20:00 2000 ] za pomocą klucza sesji (session key)[Author ID2: at Wed Oct 4 02:17:00 2000 ]. Bilet (ticket), nadal zaszyfrowany za pomocą klucza tajnego (secret key) serwera,[Author ID2: at Wed Oct 4 00:21:00 2000 ] i wartość uwierzytelniająca (authenticator) razem tworzą dane uwierzytelniające (credentials) klienta dla serwera.

Serwer odszyfrowuje bilet sesji (session ticket) za pomocą klucza tajnego (secret key), uzyskując [Author ID2: at Wed Oct 4 00:21:00 2000 ]je [Author ID2: at Wed Oct 4 00:21:00 2000 ]w ten sposób klucz sesji (session key) i stosuje ten klucz [Author ID2: at Wed Oct 4 00:21:00 2000 ]go [Author ID2: at Wed Oct 4 00:21:00 2000 ]do odszyfrowania wartości uwierzytelniającej (authenticator) klienta. Jeśli wszystko się zgadza, serwer wie, że dane uwierzytelniające (credentials) klienta zostały wydane przez C[Author ID2: at Wed Oct 4 00:21:00 2000 ]c[Author ID2: at Wed Oct 4 00:21:00 2000 ]entrum dystrybucji kluczy [Author ID2: at Wed Oct 4 00:21:00 2000 ](KDC), które jest jednostką godną zaufania (trusted authority). Jeśli konieczne jest uwierzytelnianie wzajemne (mutual authentication),[Author ID2: at Wed Oct 4 00:21:00 2000 ] serwer używa swojej kopii klucza sesji (session key) [Author ID2: at Wed Oct 4 02:17:00 2000 ]do zaszyfrowania znacznika czasu (timestamp),[Author ID2: at Wed Oct 4 00:21:00 2000 ] zawartego w wartości uwierzytelniającej (authenticator) klienta, a wynik przesyła z powrotem do klienta jako wartość uwierzytelniającą (authenticator) serwera. Czyni to w sposób zaprezentowany[Author ID2: at Wed Oct 4 00:22:00 2000 ], jak przedstawiono to[Author ID2: at Wed Oct 4 00:22:00 2000 ] na rysunku 4.3.

Należy zwrócić uwagę, że serwer nie musi przechowywać klucza sesji (session key), którego używa do komunikacji z klientem. Klient jest odpowiedzialny za przechowywanie biletu (ticket) dla serwera w pamięci podręcznej danych uwierzytelniających (credentials cache) i przedstawianie biletu (ticket)[Author ID2: at Wed Oct 4 02:17:00 2000 ] za każdym razem, kiedy [Author ID2: at Wed Oct 4 00:22:00 2000 ]gdy [Author ID2: at Wed Oct 4 00:22:00 2000 ]chce uzyskać dostęp do serwera. Kiedy serwer nie potrzebuje już dłużej klucza sesji (session key), może go odrzucić.

Również klient nie musi zwracać się do C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 00:23:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:11:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:11:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:11:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:11:00 2001 ] [Author ID1: at Sun Aug 5 21:11:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:11:00 2001 ] [Author ID1: at Sun Aug 5 21:11:00 2001 ](KDC) [Author ID2: at Wed Oct 4 00:23:00 2000 ]za każdym razem, kiedy [Author ID2: at Wed Oct 4 00:23:00 2000 ]gdy [Author ID2: at Wed Oct 4 00:23:00 2000 ]chce uzyskać dostęp do konkretnego serwera, ponieważ bilety sesji (session tickets) mogą być wykorzystane ponownie, o ile nie utraciły ważności. Okres ważności biletu (ticket) zależy od zasad protokołu Kerberos (Kerberos policy) obowiązujących w danej domenie. Zwykle bilety (tickets) są ważne przez [Author ID2: at Wed Oct 4 00:23:00 2000 ]8 godzin. Kiedy użytkownik wylogowuje się z komputera [Author ID2: at Wed Oct 4 00:23:00 2000 ][Author ID1: at Wed Aug 1 18:21:00 2001 ]-[Author ID2: at Wed Oct 4 00:24:00 2000 ][Author ID2: at Wed Oct 4 00:24:00 2000 ][Author ID1: at Wed Aug 1 18:21:00 2001 ]-[Author ID1: at Wed Aug 1 18:21:00 2001 ]klienta, pamięć podręczna danych uwierzytelniających (credentials cache) jest opróżniana,[Author ID2: at Wed Oct 4 00:25:00 2000 ] a wszystkie bilety sesji (session tickets) i klucze sesji (session keys)[Author ID2: at Wed Oct 4 02:17:00 2000 ] są niszczone.

[Author ID1: at Sun Aug 5 21:11:00 2001 ]

0x01 graphic
[Author ID1: at Sun Aug 5 21:11:00 2001 ]

SC[Author ID0: at Thu Nov 30 00:00:00 1899 ]S(client, time), ticket[Author ID0: at Thu Nov 30 00:00:00 1899 ] [Author ID2: at Wed Oct 4 00:28:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]= Kserver(use SCS for client)[Author ID0: at Thu Nov 30 00:00:00 1899 ] [Author ID2: at Wed Oct 4 00:28:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]- [Author ID0: at Thu Nov 30 00:00:00 1899 ][Author ID2: at Wed Oct 4 00:54:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ] [Author ID2: at Wed Oct 4 00:28:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]SCS(klient, czas), Kserver(zastosuj SCS dla klienta)[Author ID0: at Thu Nov 30 00:00:00 1899 ]

SCS(time)[Author ID0: at Thu Nov 30 00:00:00 1899 ] [Author ID2: at Wed Oct 4 00:28:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]-[Author ID0: at Thu Nov 30 00:00:00 1899 ][Author ID2: at Wed Oct 4 00:54:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ] [Author ID2: at Wed Oct 4 00:28:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]SCS(czas)[Author ID0: at Thu Nov 30 00:00:00 1899 ]

Rysunek 4.3.[Author ID2: at Wed Oct 4 00:27:00 2000 ] Uwierzytelnianie wzajemne (klient-[Author ID0: at Thu Nov 30 00:00:00 1899 ]-[Author ID2: at Wed Oct 4 12:48:00 2000 ]serwer) [Author ID1: at Sun Aug 5 21:11:00 2001 ][Author ID3: at Mon Aug 13 12:37:00 2001 ].[Author ID0: at Thu Nov 30 00:00:00 1899 ]

Zastosowanie biletu gwarantującego bilet (Ticket [Author ID2: at Wed Oct 4 00:29:00 2000 ]-[Author ID2: at Wed Oct 4 00:29:00 2000 ]Granting Ticket — TGT[Author ID2: at Wed Oct 4 00:29:00 2000 ])

Dla przykładu przyjmijmy, że Bonnie loguje [Author ID2: at Wed Oct 4 00:29:00 2000 ]się loguje[Author ID2: at Wed Oct 4 00:29:00 2000 ]. Najpierw klient Kerberos, działający na stacji roboczej, zamienia swoje hasło na klucz kryptograficzny (cryptographic key),[Author ID2: at Wed Oct 4 00:30:00 2000 ] stosując jednokierunkową funkcję skrótu (one-way hashing function). Protokół Kerberos korzysta z algorytmu funkcji skrótu DES-CBC-MD5, chociaż dopuszcza się stosowanie innych algorytmów. Następnie klient Kerberos żąda biletu sesji (session ticket) i klucza sesji (session key), które może zastosować w kolejnych transakcjach pomiędzy klientem a C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 00:31:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:11:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:11:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:11:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:11:00 2001 ] [Author ID1: at Sun Aug 5 21:11:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:11:00 2001 ] [Author ID1: at Sun Aug 5 21:11:00 2001 ]podczas tej [Author ID2: at Wed Oct 4 00:31:00 2000 ]danej [Author ID2: at Wed Oct 4 00:31:00 2000 ]sesji logowania. Centrum dystrybucji kluczy [Author ID2: at Wed Oct 4 00:32:00 2000 ](KDC) szuka w swojej bazie danych Bonnie,[Author ID2: at Wed Oct 4 00:32:00 2000 ] i[Author ID2: at Wed Oct 4 00:32:00 2000 ] odczytuje z odpowiedniego rekordu bazy danych klucza długoterminowego (long-term key) Bonnie. Proces ten, czyli wyznaczanie kopii klucza na podstawie hasła i pobieranie kolejnej kopii klucza z bazy danych, ma miejsce tylko raz,[Author ID2: at Wed Oct 4 00:32:00 2000 ][Author ID2: at Wed Oct 4 00:32:00 2000 ] kiedy [Author ID2: at Wed Oct 4 00:32:00 2000 ]gdy [Author ID2: at Wed Oct 4 00:32:00 2000 ]użytkownik loguje się do sieci.

Centrum dystrybucji [Author ID1: at Sun Aug 5 21:12:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:12:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:12:00 2001 ] [Author ID1: at Sun Aug 5 21:12:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:12:00 2001 ] [Author ID1: at Sun Aug 5 21:12:00 2001 ](KDC) odpowiada na żądanie klienta,[Author ID2: at Wed Oct 4 00:33:00 2000 ] zwracając specjalny rodzaj biletu sesji (session ticket), który nosi nazwę bilet gwarantujący bilet (t[Author ID2: at Wed Oct 4 00:33:00 2000 ]T[Author ID2: at Wed Oct 4 00:33:00 2000 ]icket-g[Author ID2: at Wed Oct 4 00:33:00 2000 ] G[Author ID2: at Wed Oct 4 00:33:00 2000 ]ranting t[Author ID2: at Wed Oct 4 00:33:00 2000 ]T[Author ID2: at Wed Oct 4 00:33:00 2000 ]icket [Author ID2: at Wed Oct 4 00:33:00 2000 ]-[Author ID2: at Wed Oct 4 00:33:00 2000 ][Author ID2: at Wed Oct 4 00:33:00 2000 ]TGT). Tak,[Author ID2: at Wed Oct 4 00:33:00 2000 ] jak zwykły bilet sesji (session ticket),[Author ID2: at Wed Oct 4 00:33:00 2000 ] bilet gwarantujący bilet (TGT) zawiera kopię klucza sesji (session key), który dana usługa, w tym przypadku C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 00:34:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:12:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:12:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:12:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:12:00 2001 ] [Author ID1: at Sun Aug 5 21:12:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:12:00 2001 ] [Author ID1: at Sun Aug 5 21:12:00 2001 ](KDC),[Author ID2: at Wed Oct 4 00:34:00 2000 ] będzie stosować do komunikacji z klientem. Pakiet, który zwraca klientowi [Author ID2: at Wed Oct 4 00:34:00 2000 ]bilet gwarantujący bilet (TGT)[Author ID2: at Wed Oct 4 03:10:00 2000 ] do klienta[Author ID2: at Wed Oct 4 00:34:00 2000 ], zawiera także kopię klucza sesji (session key), który klient może stosować do komunikacji z C[Author ID2: at Wed Oct 4 00:35:00 2000 ]c[Author ID2: at Wed Oct 4 00:35:00 2000 ]entrum dystrybucji kluczy [Author ID2: at Wed Oct 4 00:35:00 2000 ](KDC). Bilet gwarantujący bilet (TGT)[Author ID2: at Wed Oct 4 03:10:00 2000 ] jest zaszyfrowany w kluczu długoterminowym (long-[Author ID2: at Wed Oct 4 00:35:00 2000 ] [Author ID2: at Wed Oct 4 00:35:00 2000 ]term key) C[Author ID2: at Wed Oct 4 00:35:00 2000 ]c[Author ID2: at Wed Oct 4 00:35:00 2000 ]entrum dystrybucji kluczy [Author ID2: at Wed Oct 4 00:35:00 2000 ](KDC), a kopia klienta klucza sesji (session key) jest zaszyfrowana w kluczu długoterminowym (long-[Author ID2: at Wed Oct 4 00:35:00 2000 ] [Author ID2: at Wed Oct 4 00:35:00 2000 ]term key) użytkownika.

W kolejnych wymianach komunikatów z c[Author ID2: at Wed Oct 4 00:35:00 2000 ]C[Author ID2: at Wed Oct 4 00:35:00 2000 ]entrum dystrybucji kluczy (KDC),[Author ID2: at Wed Oct 4 00:35:00 2000 ] klient korzysta z klucza sesji (session key).[Author ID2: at Wed Oct 4 00:35:00 2000 ];[Author ID2: at Wed Oct 4 00:35:00 2000 ] k[Author ID2: at Wed Oct 4 00:35:00 2000 ]K[Author ID2: at Wed Oct 4 00:35:00 2000 ]lucz kryptograficzny (cryptographic key) uzyskany na podstawie hasła użytkownika nie jest potrzebny i może być odrzucony. Tak,[Author ID2: at Wed Oct 4 00:36:00 2000 ] jak inne klucze sesji (session key)[Author ID2: at Wed Oct 4 02:18:00 2000 ], klucz ten jest tymczasowy, ważny tylko do czasu [Author ID2: at Wed Oct 4 00:36:00 2000 ]utraty ważności przez bilet gwarantujący bilet (TGT) lub wylogowania się przez danego użytkownika. Z tego względu nazywany jest kluczem sesji logowania (logon session key).

Klient,[Author ID2: at Wed Oct 4 00:36:00 2000 ] przed podjęciem próby połączenia z usługą,[Author ID2: at Wed Oct 4 00:36:00 2000 ] szuka w buforze danych uwierzytelniających (credentials cache) biletu sesji (session ticket) do danej usługi. Jeśli takiego biletu nie ma, klient szuka w buforze danych uwierzytelniających bilet gwarantujący bilet (TGT). Jeśli ten klucz zostanie znaleziony, klient pobiera[Author ID2: at Wed Oct 4 00:37:00 2000 ]ze[Author ID2: at Wed Oct 4 00:37:00 2000 ] z bufora właściwy klucz sesji logowania (logon session key), użyje[Author ID2: at Wed Oct 4 00:37:00 2000 ]wa[Author ID2: at Wed Oct 4 00:37:00 2000 ] tego klucza [Author ID2: at Wed Oct 4 00:37:00 2000 ]go [Author ID2: at Wed Oct 4 00:37:00 2000 ]do przygotowania wartości uwierzytelniającej (authenticator) i wysyła [Author ID2: at Wed Oct 4 00:37:00 2000 ]śle [Author ID2: at Wed Oct 4 00:37:00 2000 ]wartość uwierzytelniającą (authenticator) i[Author ID2: at Wed Oct 4 00:37:00 2000 ]oraz[Author ID2: at Wed Oct 4 00:37:00 2000 ] bilet gwarantujący bilet (TGT)[Author ID2: at Wed Oct 4 02:18:00 2000 ] do C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 00:37:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:12:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:12:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:12:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:12:00 2001 ] [Author ID1: at Sun Aug 5 21:12:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:12:00 2001 ] [Author ID1: at Sun Aug 5 21:12:00 2001 ](KDC) razem z żądaniem biletu sesji (session ticket)[Author ID2: at Wed Oct 4 02:18:00 2000 ] dla tej usługi. Tak więc uzyskanie dostępu do C[Author ID2: at Wed Oct 4 00:38:00 2000 ]c[Author ID2: at Wed Oct 4 00:38:00 2000 ]entrum dystrybucji kluczy (KDC) [Author ID2: at Wed Oct 4 00:38:00 2000 ]nie różni się niczym od uzyskiwania dostępu do pozostałych usług w domenie — wymagany jest klucz sesji (session key), wartość uwierzytelniająca (authenticator) i bilet (ticket), w tym przypadku jest to bilet gwarantujący bilet (TGT).

Podstawowe wiadomości o podprotokołach (subprotocols) protokołu Kerberos

Protokół Kerberos składa się z trzech podprotokołów (subprotocols):

Aby zrozumieć, w jaki sposób te trzy podprotokoły (subprotocols) pracują razem, zobaczmy w jaki sposób Bonnie,[Author ID2: at Wed Oct 4 00:39:00 2000 ][Author ID2: at Wed Oct 4 00:39:00 2000 ] użytkownik stacji roboczej,[Author ID2: at Wed Oct 4 00:39:00 2000 ] uzyskuje dostęp do Clyde'a[Author ID2: at Wed Oct 4 00:39:00 2000 ],[Author ID2: at Wed Oct 4 00:39:00 2000 ] usługi sieciowej.

Podprotokół Authentication Service Exchange

Wymiana informacji za pomocą podprotokołu Authentication Service Exchange przebiega następująco:

  1. Bonnie loguje się w sieci. Klient Kerberos na stacji roboczej Bonnie zamienia jej hasło na klucz szyfru (encryption key) i zapisuje go w buforze danych uwierzytelniających (credentials cache).

  2. Klient Kerberos wysyła do usługi uwierzytelniania (authentication service) c[Author ID2: at Wed Oct 4 00:43:00 2000 ][Author ID1: at Sun Aug 5 21:12:00 2001 ]C[Author ID1: at Sun Aug 5 21:12:00 2001 ]C[Author ID0: at Thu Nov 30 00:00:00 1899 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:12:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:12:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:12:00 2001 ] (KDC)[Author ID2: at Wed Oct 4 02:18:00 2000 ] [Author ID1: at Sun Aug 5 21:12:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:12:00 2001 ] (KDC) [Author ID1: at Sun Aug 5 21:12:00 2001 ]komunikat Kerberos Authentication Service Request (KRB_AS_REQ). Pierwsza część tego komunikatu identyfikuje użytkownika, Bonnie,[Author ID2: at Wed Oct 4 00:43:00 2000 ] i nazwę usługi, dla której żąda się danych uwierzytelniających (credentials) — usługi wydającej bilety (t[Author ID2: at Wed Oct 4 00:43:00 2000 ]T[Author ID2: at Wed Oct 4 00:43:00 2000 ]icket-[Author ID2: at Wed Oct 4 00:43:00 2000 ] [Author ID2: at Wed Oct 4 00:43:00 2000 ]g[Author ID2: at Wed Oct 4 00:43:00 2000 ]G[Author ID2: at Wed Oct 4 00:43:00 2000 ]ranting s[Author ID2: at Wed Oct 4 00:43:00 2000 ]S[Author ID2: at Wed Oct 4 00:43:00 2000 ]ervice). Druga część komunikatu zawiera dane do uwierzytelniania wstępnego (preauthentication data), które potwierdzają, że Bonnie zna hasło. Jest to zwykle znacznik czasu (timestamp) zaszyfrowany za pomocą klucza długoterminowego (long-[Author ID2: at Wed Oct 4 00:44:00 2000 ] [Author ID2: at Wed Oct 4 00:44:00 2000 ]term key) Bonnie.

  3. Centrum dystrybucji [Author ID1: at Sun Aug 5 21:12:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:12:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:12:00 2001 ] [Author ID1: at Sun Aug 5 21:12:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:12:00 2001 ] [Author ID1: at Sun Aug 5 21:12:00 2001 ](KDC) odbiera komunikat KRB_AS_REQ.

  4. Centrum dystrybucji [Author ID1: at Sun Aug 5 21:12:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:12:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:12:00 2001 ] [Author ID1: at Sun Aug 5 21:12:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:12:00 2001 ] [Author ID1: at Sun Aug 5 21:12:00 2001 ](KDC) wyszukuje w swojej bazie danych użytkownika o nazwie Bonnie, odczytuje jej klucz długoterminowy (long-[Author ID2: at Wed Oct 4 00:44:00 2000 ] [Author ID2: at Wed Oct 4 00:44:00 2000 ]term key), odszyfrowuje dane do uwierzytelniania wstępnego (preauthentication data) i ocenia zawarty w nich znacznik czasu (timestamp). Jeśli znacznik czasu (timestamp) jest do przyjęcia, C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 00:44:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:12:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:12:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:12:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:12:00 2001 ] [Author ID1: at Sun Aug 5 21:12:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:12:00 2001 ] [Author ID1: at Sun Aug 5 21:12:00 2001 ](KDC) ma pewność, że dane do uwierzytelniania wstępnego (preauthentication data) zostały zaszyfrowane za pomocą klucza długoterminowego (long[Author ID2: at Wed Oct 4 02:18:00 2000 ]-[Author ID2: at Wed Oct 4 00:44:00 2000 ]term key)[Author ID2: at Wed Oct 4 02:18:00 2000 ] Bonnie i że klient jest autentyczny.

  5. Centrum dystrybucji kluczy [Author ID2: at Wed Oct 4 00:44:00 2000 ](KDC) tworzy dane uwierzytelniające (credentials), które klient Kerberos na stacji roboczej Bonnie może przedstawić usłudze wydawania biletów (t[Author ID2: at Wed Oct 4 00:44:00 2000 ]T[Author ID2: at Wed Oct 4 00:44:00 2000 ]icket-g[Author ID2: at Wed Oct 4 00:44:00 2000 ] G[Author ID2: at Wed Oct 4 00:44:00 2000 ]ranting s[Author ID2: at Wed Oct 4 00:45:00 2000 ]S[Author ID2: at Wed Oct 4 00:45:00 2000 ]ervice):[Author ID2: at Wed Oct 4 00:45:00 2000 ].[Author ID2: at Wed Oct 4 00:45:00 2000 ]

  1. Klient po odebraniu komunikatu korzysta z klucza,[Author ID2: at Wed Oct 4 00:47:00 2000 ] uzyskanego na podstawie hasła Bonnie, do odszyfrowania jej klucza sesji logowania (logon session key) [Author ID2: at Wed Oct 4 02:19:00 2000 ]i zapisuje klucz [Author ID2: at Wed Oct 4 00:47:00 2000 ]go [Author ID2: at Wed Oct 4 00:47:00 2000 ]w buforze danych uwierzytelniających (credentials cache). Następnie wyodrębnia z komunikatu bilet gwarantujący bilet (TGT) i również zapisuje w tym [Author ID2: at Wed Oct 4 00:47:00 2000 ]buforze danych uwierzytelniających [Author ID2: at Wed Oct 4 00:47:00 2000 ](credentials cache).

Działanie podprotokołu Authentication Service Exchange ilustruje rysunek 4.4.

0x01 graphic
[Author ID1: at Sun Aug 5 21:13:00 2001 ]Bonnie requests TGS, K[Author ID1: at Sun Aug 5 21:13:00 2001 ]Bonnie[Author ID1: at Sun Aug 5 21:13:00 2001 ](Parker, time)[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]-[Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID2: at Wed Oct 4 00:53:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]Bonnie żąda TGS, K[Author ID1: at Sun Aug 5 21:13:00 2001 ]Bonnie[Author ID1: at Sun Aug 5 21:13:00 2001 ](Parker, czas)[Author ID0: at Thu Nov 30 00:00:00 1899 ]

K[Author ID1: at Sun Aug 5 21:13:00 2001 ]Bonnie[Author ID1: at Sun Aug 5 21:13:00 2001 ](use S[Author ID1: at Sun Aug 5 21:13:00 2001 ]Parker[Author ID1: at Sun Aug 5 21:13:00 2001 ] for TGS), TGT[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]=[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]K[Author ID1: at Sun Aug 5 21:13:00 2001 ]TGS[Author ID1: at Sun Aug 5 21:13:00 2001 ](use S[Author ID1: at Sun Aug 5 21:13:00 2001 ]Parker[Author ID1: at Sun Aug 5 21:13:00 2001 ] for Bonnie)[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]- [Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID2: at Wed Oct 4 00:53:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]K[Author ID1: at Sun Aug 5 21:13:00 2001 ]Bonnie[Author ID1: at Sun Aug 5 21:13:00 2001 ](użyj S[Author ID1: at Sun Aug 5 21:13:00 2001 ]Parker[Author ID1: at Sun Aug 5 21:13:00 2001 ] dla TGS), TGT[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]=[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]K[Author ID1: at Sun Aug 5 21:13:00 2001 ]TGS[Author ID1: at Sun Aug 5 21:13:00 2001 ](użyj S[Author ID1: at Sun Aug 5 21:13:00 2001 ]Parker[Author ID1: at Sun Aug 5 21:13:00 2001 ] dla Bonnie)[Author ID1: at Sun Aug 5 21:13:00 2001 ]

KDC AS create[Author ID1: at Sun Aug 5 21:13:00 2001 ]s session key S[Author ID1: at Sun Aug 5 21:13:00 2001 ]Parker[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]-[Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]KDC AS tworzy klucz sesji S[Author ID1: at Sun Aug 5 21:13:00 2001 ]Parker[Author ID1: at Sun Aug 5 21:13:00 2001 ]

Rysunek 4.4.[Author ID2: at Wed Oct 4 00:47:00 2000 ] Wymiana komunikatów podprotokołu (subprotocol) Authentication Service (AS).[Author ID0: at Thu Nov 30 00:00:00 1899 ]

Podprotokół Ticket-[Author ID2: at Wed Oct 4 00:47:00 2000 ] [Author ID2: at Wed Oct 4 00:47:00 2000 ]Granting Service Exchange

Po zakończeniu wymiany informacji przez usługę uwierzytelniania (Authentication Service), proces wymiany komunikatów usługi wydawania biletów (Ticket-[Author ID2: at Wed Oct 4 00:48:00 2000 ] [Author ID2: at Wed Oct 4 00:48:00 2000 ]Granting Service) przebiega w następujący sposób:

  1. Klient Kerberos na stacji roboczej Bonnie żąda danych uwierzytelniających dla usługi Clyde, wysyłając do C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 00:48:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:13:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:13:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:13:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID1: at Sun Aug 5 21:13:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID1: at Sun Aug 5 21:13:00 2001 ](KDC) komunikat Kerberos Ticket [Author ID2: at Wed Oct 4 00:48:00 2000 ]-[Author ID0: at Thu Nov 30 00:00:00 1899 ]Granting Service Request (KRB_TGS_REQ). Komunikat ten zawiera nazwę użytkownika, wartość uwierzytelniającą (authenticator) zaszyfrowaną za pomocą klucza sesji logowania (logon session key) użytkownika, bilet gwarantujący bilet (TGT), uzyskany w procesie wymiany komunikatów usługi uwierzytelniania (Authentication Service) oraz nazwę usługi, dla której użytkownikowi potrzebny jest bilet (ticket).

  2. Centrum dystrybucji kluczy [Author ID2: at Wed Oct 4 00:48:00 2000 ](KDC) odbiera komunikat KRB_TGS_REQ i odszyfrowuje bilet gwarantujący bilet (TGT) za pomocą własnego klucza tajnego (secret key), odczytując klucz sesji logowania (logon session key) Bonnie, który jest używany do odszyfrowania wartości uwierzytelniającej (authenticator).

  3. Jeśli wartość uwierzytelniająca (authenticator) jest poprawna, to C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 00:49:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:13:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:13:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:13:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID1: at Sun Aug 5 21:13:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID1: at Sun Aug 5 21:13:00 2001 ](KDC) [Author ID2: at Wed Oct 4 00:49:00 2000 ]odczytuje z biletu gwarantującego bilet (TGT) dane autoryzacji (authorization data) Bonnie i tworzy dla klienta (Bonnie) klucz sesji (session key), który jest współdzielony z usługą (Clyde).

  4. Centrum dystrybucji kluczy [Author ID2: at Wed Oct 4 00:49:00 2000 ](KDC) szyfruje jedną kopię tego klucza sesji (session key)[Author ID2: at Wed Oct 4 02:19:00 2000 ] za pomocą klucza sesji logowania (logon session key) Bonnie, umieszcza inną kopię w bilecie (ticket) razem z danymi autoryzacji (authorization data)[Author ID2: at Wed Oct 4 02:19:00 2000 ] Bonnie i szyfruje ten bilet (ticket) [Author ID2: at Wed Oct 4 00:49:00 2000 ]za pomocą klucza długoterminowego (long-[Author ID2: at Wed Oct 4 00:49:00 2000 ] [Author ID2: at Wed Oct 4 00:49:00 2000 ]term key) Clyde'a.

  5. Centrum dystrybucji kluczy ([Author ID2: at Wed Oct 4 00:49:00 2000 ]KDC)[Author ID2: at Wed Oct 4 00:49:00 2000 ] wysyła te dane uwierzytelniające (credentials) z powrotem do klienta w komunikacie Kerberos Ticket-[Author ID0: at Thu Nov 30 00:00:00 1899 ] [Author ID2: at Wed Oct 4 00:50:00 2000 ]Granting Service Reply (KRB_TGS_REP).

  6. Kiedy klient odbierze [Author ID2: at Wed Oct 4 00:50:00 2000 ]otrzyma [Author ID2: at Wed Oct 4 00:50:00 2000 ]odpowiedź, korzysta z klucza sesji logowania (logon session key) Bonnie do odszyfrowania klucza sesji (session key)[Author ID2: at Wed Oct 4 02:19:00 2000 ],[Author ID2: at Wed Oct 4 00:50:00 2000 ] używanego w przypadku danej usługi,[Author ID2: at Wed Oct 4 00:50:00 2000 ] i zapisuje ten klucz w buforze danych uwierzytelniających (credentials cache). Następnie wyodrębnia bilet (ticket) do danej usługi i także zapisuje to w buforze.

Działanie podprotokołu Ticket-[Author ID2: at Wed Oct 4 00:50:00 2000 ] [Author ID2: at Wed Oct 4 00:50:00 2000 ]Granting Service Exchange ilustruje rysunek 4.5.

Podprotokół Client-Server Exchange

Po zakończeniu wymiany komunikatów usługi wydawania biletów (Ticket [Author ID2: at Wed Oct 4 00:51:00 2000 ]-[Author ID2: at Wed Oct 4 00:51:00 2000 ]Granting Service) rozpoczyna się procedura wymiany informacji K[Author ID2: at Wed Oct 4 12:51:00 2000 ]k[Author ID2: at Wed Oct 4 12:51:00 2000 ]lient-[Author ID2: at Wed Oct 4 00:51:00 2000 ]-s[Author ID2: at Wed Oct 4 00:51:00 2000 ]S[Author ID2: at Wed Oct 4 12:51:00 2000 ]erwer (CS information exchange):

  1. Klient Kerberos na stacji roboczej (workstation) Bonnie żąda obsługi od Clyde'a,[Author ID2: at Wed Oct 4 00:51:00 2000 ] wysyłając mu komunikat Kerberos Application Requests (KRB_AP_REQ). Komunikat ten zawiera wartość uwierzytelniającą (authenticator)[Author ID2: at Wed Oct 4 02:19:00 2000 ] zaszyfrowaną za pomocą klucza sesji (session key) danej usługi, bilet (ticket),[Author ID2: at Wed Oct 4 00:51:00 2000 ] uzyskany podczas wymiany informacji TGS oraz wstępnie skonfigurowany znacznik (preconfigured flag),[Author ID2: at Wed Oct 4 00:51:00 2000 ] wskazujący, czy klient wymaga uwierzytelniania wzajemnego (mutual authentication).

Bonnie requests Clyde, S[Author ID1: at Sun Aug 5 21:13:00 2001 ]Parker[Author ID1: at Sun Aug 5 21:13:00 2001 ](Parker, time), TGT[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]=[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]K[Author ID1: at Sun Aug 5 21:13:00 2001 ]TGS[Author ID1: at Sun Aug 5 21:13:00 2001 ](use S[Author ID1: at Sun Aug 5 21:13:00 2001 ]Parker[Author ID1: at Sun Aug 5 21:13:00 2001 ] for Bonnie)[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]-[Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]Bonnie żąda Clyde'a, S[Author ID1: at Sun Aug 5 21:13:00 2001 ]Parker[Author ID1: at Sun Aug 5 21:13:00 2001 ](Parker, c[Author ID1: at Sun Aug 5 21:13:00 2001 ]zas), TGT[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]=[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]K[Author ID1: at Sun Aug 5 21:13:00 2001 ]TGS[Author ID1: at Sun Aug 5 21:13:00 2001 ](użyj S[Author ID1: at Sun Aug 5 21:13:00 2001 ]Parker[Author ID1: at Sun Aug 5 21:13:00 2001 ] dla Bonnie)[Author ID0: at Thu Nov 30 00:00:00 1899 ]

S[Author ID1: at Sun Aug 5 21:13:00 2001 ]Parker[Author ID1: at Sun Aug 5 21:13:00 2001 ](use S[Author ID1: at Sun Aug 5 21:13:00 2001 ]PC[Author ID1: at Sun Aug 5 21:13:00 2001 ] for Clyde), ticket[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]=[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:52:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]K[Author ID1: at Sun Aug 5 21:13:00 2001 ]Clyde[Author ID1: at Sun Aug 5 21:13:00 2001 ](use S[Author ID1: at Sun Aug 5 21:13:00 2001 ]PCr[Author ID1: at Sun Aug 5 21:13:00 2001 ] for Bonnie)[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:53:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]-[Author ID2: at Wed Oct 4 00:53:00 2000 ][Author ID2: at Wed Oct 4 00:53:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]S[Author ID1: at Sun Aug 5 21:13:00 2001 ]Parker[Author ID1: at Sun Aug 5 21:13:00 2001 ](użyj S[Author ID1: at Sun Aug 5 21:13:00 2001 ]PC[Author ID1: at Sun Aug 5 21:13:00 2001 ] dla Clyde'a), bilet[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:53:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]=[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:53:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]K[Author ID1: at Sun Aug 5 21:13:00 2001 ]Clyde[Author ID1: at Sun Aug 5 21:13:00 2001 ](użyj S[Author ID1: at Sun Aug 5 21:13:00 2001 ]PC[Author ID1: at Sun Aug 5 21:13:00 2001 ] dla Bonnie)[Author ID0: at Thu Nov 30 00:00:00 1899 ]

KDC TGS creates session key S[Author ID1: at Sun Aug 5 21:13:00 2001 ]PC[Author ID1: at Sun Aug 5 21:13:00 2001 ] [Author ID2: at Wed Oct 4 00:53:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]-[Author ID2: at Wed Oct 4 00:53:00 2000 ][Author ID2: at Wed Oct 4 00:53:00 2000 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]KDC TGS tworzy klucz sesji S[Author ID1: at Sun Aug 5 21:13:00 2001 ]PC.[Author ID1: at Sun Aug 5 21:13:00 2001 ]-->0x01 graphic
[Author ID1: at Sun Aug 5 21:13:00 2001 ][Author ID1: at Sun Aug 5 21:13:00 2001 ]

Rysunek 4.5.[Author ID2: at Wed Oct 4 00:53:00 2000 ] Komunikaty podprotokołu Ticket-[Author ID0: at Thu Nov 30 00:00:00 1899 ] [Author ID2: at Wed Oct 4 00:53:00 2000 ]Granting Service Exchange.[Author ID0: at Thu Nov 30 00:00:00 1899 ]

  1. Clyde odbiera komunikat KRB_AP_REQ, odszyfrowuje bilet i odczytuje dane autoryzacji (authorization data) Bonnie oraz klucz sesji (session key).

  2. Clyde korzysta z klucza sesji do odszyfrowania wartości uwierzytelniającej (authenticator) Bonnie i ocenia zawarty w niej znacznik czasu (timestamp).

  3. Jeśli wartość uwierzytelniająca (authenticator) jest prawidłowa, Clyde szuka w komunikacie klienta znacznika uwierzytelniania wzajemnego (mutual authentication flag).

  4. Jeśli znacznik jest ustawiony, usługa korzysta z klucza sesji (session key) do zaszyfrowania czasu zawartego w wartości uwierzytelniającej (authenticator) Bonnie,[Author ID2: at Wed Oct 4 00:56:00 2000 ] a wynik zwraca w komunikacie Kerberos Application Reply (KRB_AP_REP).

  5. Kiedy [Author ID2: at Wed Oct 4 00:56:00 2000 ]Gdy [Author ID2: at Wed Oct 4 00:56:00 2000 ]klient Kerberos na stacji roboczej Bonnie odbiera komunikat KRB_AP_REP, odszyfrowuje wartość uwierzytelniającą (authenticator) Clyde'a za pomocą klucza sesji (session key) współdzielonego z Clydem i porównuje czas przesłany przez usługę z czasem zawartym w pierwotnej wartości uwierzytelniającej (authenticator)[Author ID2: at Wed Oct 4 02:19:00 2000 ] klienta.

  6. Jeśli czas jest ten sam, klient wie, że jest to usługa prawidłowa i połączenie jest utrzymane. W trakcie połączenia klucz sesji (session key) może być użyty do szyfrowania danych aplikacji,[Author ID2: at Wed Oct 4 00:56:00 2000 ] lub też klient i serwer mogą w tym celu współdzielić inny klucz.

Na rysunku 4.6.[Author ID2: at Wed Oct 4 00:56:00 2000 ][Author ID3: at Mon Aug 13 12:38:00 2001 ] przedstawiono proces wymiany komunikatów CS.

[Author ID1: at Sun Aug 5 21:14:00 2001 ]

0x01 graphic
[Author ID1: at Sun Aug 5 21:14:00 2001 ]Bonnie (client)[Author ID1: at Sun Aug 5 21:14:00 2001 ] [Author ID2: at Wed Oct 4 00:57:00 2000 ][Author ID1: at Sun Aug 5 21:14:00 2001 ]-[Author ID2: at Wed Oct 4 00:57:00 2000 ][Author ID2: at Wed Oct 4 00:57:00 2000 ][Author ID1: at Sun Aug 5 21:14:00 2001 ]Bonnie (klient)[Author ID0: at Thu Nov 30 00:00:00 1899 ]

S[Author ID1: at Sun Aug 5 21:14:00 2001 ]PC[Author ID1: at Sun Aug 5 21:14:00 2001 ](Parker, time), ticket[Author ID1: at Sun Aug 5 21:14:00 2001 ] [Author ID2: at Wed Oct 4 00:57:00 2000 ][Author ID1: at Sun Aug 5 21:14:00 2001 ]=[Author ID1: at Sun Aug 5 21:14:00 2001 ] [Author ID2: at Wed Oct 4 00:57:00 2000 ][Author ID1: at Sun Aug 5 21:14:00 2001 ]K[Author ID1: at Sun Aug 5 21:14:00 2001 ]Clyde[Author ID1: at Sun Aug 5 21:14:00 2001 ](use S[Author ID1: at Sun Aug 5 21:14:00 2001 ]PCr[Author ID1: at Sun Aug 5 21:14:00 2001 ] for Bonnie)[Author ID1: at Sun Aug 5 21:14:00 2001 ] [Author ID2: at Wed Oct 4 00:57:00 2000 ][Author ID1: at Sun Aug 5 21:14:00 2001 ]-[Author ID2: at Wed Oct 4 00:57:00 2000 ][Author ID2: at Wed Oct 4 00:57:00 2000 ][Author ID1: at Sun Aug 5 21:14:00 2001 ]S[Author ID1: at Sun Aug 5 21:14:00 2001 ]PC[Author ID1: at Sun Aug 5 21:14:00 2001 ](Parker, czas), bilet[Author ID1: at Sun Aug 5 21:14:00 2001 ] [Author ID2: at Wed Oct 4 00:57:00 2000 ][Author ID1: at Sun Aug 5 21:14:00 2001 ]=[Author ID1: at Sun Aug 5 21:14:00 2001 ] [Author ID2: at Wed Oct 4 00:57:00 2000 ][Author ID1: at Sun Aug 5 21:14:00 2001 ]K[Author ID1: at Sun Aug 5 21:14:00 2001 ]Clyde[Author ID1: at Sun Aug 5 21:14:00 2001 ](użyj S[Author ID1: at Sun Aug 5 21:14:00 2001 ]PC[Author ID1: at Sun Aug 5 21:14:00 2001 ] dla Bonnie)[Author ID0: at Thu Nov 30 00:00:00 1899 ]

Clyde (server)[Author ID1: at Sun Aug 5 21:14:00 2001 ] [Author ID2: at Wed Oct 4 00:57:00 2000 ][Author ID1: at Sun Aug 5 21:14:00 2001 ]-[Author ID2: at Wed Oct 4 00:57:00 2000 ][Author ID2: at Wed Oct 4 00:57:00 2000 ][Author ID1: at Sun Aug 5 21:14:00 2001 ]Clyde (serwer)[Author ID0: at Thu Nov 30 00:00:00 1899 ]

S[Author ID1: at Sun Aug 5 21:14:00 2001 ]PC[Author ID1: at Sun Aug 5 21:14:00 2001 ](time)[Author ID1: at Sun Aug 5 21:14:00 2001 ] [Author ID2: at Wed Oct 4 00:57:00 2000 ][Author ID1: at Sun Aug 5 21:14:00 2001 ]- [Author ID2: at Wed Oct 4 00:57:00 2000 ][Author ID2: at Wed Oct 4 00:57:00 2000 ][Author ID1: at Sun Aug 5 21:14:00 2001 ]S[Author ID1: at Sun Aug 5 21:14:00 2001 ]PC[Author ID1: at Sun Aug 5 21:14:00 2001 ](czas)[Author ID1: at Sun Aug 5 21:14:00 2001 ][Author ID2: at Wed Oct 4 00:57:00 2000 ][Author ID1: at Sun Aug 5 21:14:00 2001 ]

Rysunek 4.6.[Author ID2: at Wed Oct 4 00:57:00 2000 ] Wymiana komunikatów CS.[Author ID0: at Thu Nov 30 00:00:00 1899 ]

Uwierzytelnianie logowania

Podczas logowania do sieci, w której do uwierzytelniania stosuje się protokół Kerberos, najpierw otrzymuje się bilet gwarantujący bilet (Ticket-[Author ID2: at Wed Oct 4 00:57:00 2000 ] [Author ID2: at Wed Oct 4 00:57:00 2000 ]Granting Ticket [Author ID2: at Wed Oct 4 00:57:00 2000 ]-[Author ID2: at Wed Oct 4 00:57:00 2000 ][Author ID2: at Wed Oct 4 00:57:00 2000 ]TGT), który przedstawia się,[Author ID2: at Wed Oct 4 00:58:00 2000 ] żądając biletów sesji (session tickets) dla innych usług w domenie. Podczas logowania się [Author ID2: at Wed Oct 4 00:58:00 2000 ]do domeny Windows 2000 zawsze konieczny jest przynajmniej jeden bilet sesji (session ticket) — bilet do komputera,[Author ID2: at Wed Oct 4 00:58:00 2000 ] do którego użytkownik się loguje. Komputery pracujące pod kontrolą systemu Windows 2000 mają[Author ID2: at Wed Oct 4 00:58:00 2000 ]a[Author ID2: at Wed Oct 4 00:58:00 2000 ] własne konta w domenie, które[Author ID2: at Wed Oct 4 00:58:00 2000 ][Author ID2: at Wed Oct 4 00:58:00 2000 ] należy je [Author ID2: at Wed Oct 4 00:58:00 2000 ]traktować jako konta usług (service accounts). Użytkownicy interaktywni mogą mieć dostęp do zasobów w domenie Windows 2000 przez wysyłanie żądania do usługi Workstation danego komputera, ale użytkownicy zdalni wysyłają żądania do usługi Server tego komputera. Przed uzyskaniem dostępu do którejkolwiek[Author ID2: at Wed Oct 4 00:59:00 2000 ]ś[Author ID2: at Wed Oct 4 00:59:00 2000 ] z wyżej wymienionych usług lub jakiejkolwiek innej usługi,[Author ID2: at Wed Oct 4 00:59:00 2000 ] pracującej jako system lokalny ([Author ID2: at Wed Oct 4 00:59:00 2000 ]L[Author ID2: at Wed Oct 4 00:59:00 2000 ]l[Author ID2: at Wed Oct 4 00:59:00 2000 ]ocal S[Author ID2: at Wed Oct 4 00:59:00 2000 ]s[Author ID2: at Wed Oct 4 00:59:00 2000 ]ystem),[Author ID2: at Wed Oct 4 00:59:00 2000 ] należy przedstawić bilet sesji (session ticket)[Author ID2: at Wed Oct 4 02:19:00 2000 ] dla danego komputera.

Przypuśćmy, że Bonnie ma konto sieciowe w domenie o nazwie West i loguje się do komputera o nazwie Clyde, który również ma konto w domenie West. Bonnie rozpoczyna od sekwencji Secure Attention Sequence (SAS) Ctrl+Alt+Delete. Usługa WinLogon na komputerze o nazwie Clyde, przełącza się na pulpit logowania (logon desktop) i uzyskuje dostęp do biblioteki dołączanej dynamicznie[Author ID2: at Wed Oct 4 01:01:00 2000 ]DLL[Author ID2: at Wed Oct 4 01:01:00 2000 ] (d[Author ID2: at Wed Oct 4 00:59:00 2000 ]D[Author ID2: at Wed Oct 4 00:59:00 2000 ]ynamic l[Author ID2: at Wed Oct 4 00:59:00 2000 ]L[Author ID2: at Wed Oct 4 00:59:00 2000 ]ink l[Author ID2: at Wed Oct 4 00:59:00 2000 ]L[Author ID2: at Wed Oct 4 01:00:00 2000 ]ibrary — DLL[Author ID2: at Wed Oct 4 01:01:00 2000 ]) Graphical Identification and Authentication (GINA), msgina.dll, która odpowiada za zbieranie od użytkowników danych logowania, pakowanie ich do struktury danych i wysyłanie całości do L[Author ID0: at Thu Nov 30 00:00:00 1899 ]l[Author ID2: at Wed Oct 4 01:06:00 2000 ][Author ID1: at Sun Aug 5 21:14:00 2001 ]L[Author ID1: at Sun Aug 5 21:14:00 2001 ]okalnej jednostki [Author ID1: at Sun Aug 5 21:14:00 2001 ]Jednostki [Author ID1: at Sun Aug 5 21:14:00 2001 ]certyfik[Author ID1: at Sun Aug 5 21:14:00 2001 ]ującej[Author ID1: at Sun Aug 5 21:14:00 2001 ] [Author ID1: at Sun Aug 5 21:14:00 2001 ]Certyfikującej[Author ID1: at Sun Aug 5 21:14:00 2001 ] [Author ID1: at Sun Aug 5 21:14:00 2001 ](Local Security Authority [Author ID2: at Wed Oct 4 01:06:00 2000 ]-[Author ID2: at Wed Oct 4 01:06:00 2000 ][Author ID2: at Wed Oct 4 01:06:00 2000 ]LSA) w celu weryfikacji.

Bonnie wpisuje swoją nazwę użytkownika i[Author ID2: at Wed Oct 4 01:06:00 2000 ]oraz[Author ID2: at Wed Oct 4 01:06:00 2000 ] hasło i z listy rozwijalnej wybiera domenę West. Po naciśnięciu OK. biblioteka DLL MSGINA zwraca informacje logowania Bonnie do usługi WinLogon, która — korzystając z wywołania [Author ID2: at Wed Oct 4 01:07:00 2000 ]API LsaLogonUser[Author ID2: at Wed Oct 4 01:07:00 2000 ][Author ID2: at Wed Oct 4 01:07:00 2000 ]wysyła dane do L[Author ID0: at Thu Nov 30 00:00:00 1899 ]l[Author ID2: at Wed Oct 4 01:06:00 2000 ][Author ID1: at Sun Aug 5 21:14:00 2001 ]L[Author ID1: at Sun Aug 5 21:14:00 2001 ]okalnej jednostki [Author ID1: at Sun Aug 5 21:14:00 2001 ]Jednostki [Author ID1: at Sun Aug 5 21:14:00 2001 ]certyfikującej [Author ID1: at Sun Aug 5 21:14:00 2001 ]Certyfikującej[Author ID1: at Sun Aug 5 21:14:00 2001 ] [Author ID1: at Sun Aug 5 21:14:00 2001 ](Local Security Authority-[Author ID2: at Wed Oct 4 01:06:00 2000 ]LSA) w celu sprawdzenia, korzystając z wywołania API LsaLogonUser[Author ID2: at Wed Oct 4 01:07:00 2000 ].

Lokalna [Author ID2: at Wed Oct 4 01:07:00 2000 ]j[Author ID2: at Wed Oct 4 01:07:00 2000 ][Author ID1: at Sun Aug 5 21:14:00 2001 ]J[Author ID1: at Sun Aug 5 21:14:00 2001 ]ednostka [Author ID2: at Wed Oct 4 01:07:00 2000 ]c[Author ID2: at Wed Oct 4 01:07:00 2000 ][Author ID1: at Sun Aug 5 21:14:00 2001 ]C[Author ID1: at Sun Aug 5 21:14:00 2001 ]ertyf[Author ID2: at Wed Oct 4 01:07:00 2000 ]ikująca[Author ID2: at Wed Oct 4 01:07:00 2000 ] (LSA), [Author ID2: at Wed Oct 4 01:07:00 2000 ]P[Author ID2: at Wed Oct 4 01:07:00 2000 ]p[Author ID2: at Wed Oct 4 01:07:00 2000 ]o otrzymaniu struktury danych z danymi logowania Bonnie,[Author ID2: at Wed Oct 4 01:07:00 2000 ] Lokalna jednostka certyfikująca (Local Security Authority-LSA) [Author ID2: at Wed Oct 4 01:07:00 2000 ]natychmiast zamienia niezabezpieczone [Author ID2: at Wed Oct 4 01:08:00 2000 ], podane zwykłym tekstem, [Author ID2: at Wed Oct 4 01:08:00 2000 ]hasło [Author ID2: at Wed Oct 4 01:08:00 2000 ], podane zwykłym tekstem, [Author ID2: at Wed Oct 4 01:08:00 2000 ]na klucz tajny (secret key) za pomocą jednokierunkowej funkcji skrótu (one-way hashing function). Wynik zostanie zapisany w buforze danych uwierzytelniających (credentials cache), skąd może być pobrany w razie potrzeby do odnowienia biletu gwarantującego bilet (Ticket-[Author ID2: at Wed Oct 4 01:08:00 2000 ]Granting [Author ID2: at Wed Oct 4 01:08:00 2000 ]Ticket[Author ID2: at Wed Oct 4 01:08:00 2000 ]) lub uwierzytelniania za pomocą protokołu NTLM w przypadku serwerów, dla których nie można dokonać autoryzacji za pomocą protokołu Kerberos.

Aby sprawdzić informacje logowania Bonnie i ustanowić dla niej sesję logowania na danym komputerze, L[Author ID0: at Thu Nov 30 00:00:00 1899 ]l[Author ID2: at Wed Oct 4 01:08:00 2000 ][Author ID1: at Sun Aug 5 21:14:00 2001 ]L[Author ID1: at Sun Aug 5 21:14:00 2001 ]okalna jednostka [Author ID1: at Sun Aug 5 21:14:00 2001 ]Jednostka [Author ID1: at Sun Aug 5 21:14:00 2001 ]certyfikująca[Author ID1: at Sun Aug 5 21:14:00 2001 ] [Author ID1: at Sun Aug 5 21:14:00 2001 ]Certyfikująca[Author ID1: at Sun Aug 5 21:14:00 2001 ] [Author ID1: at Sun Aug 5 21:14:00 2001 ](Local Security Authority [Author ID2: at Wed Oct 4 01:08:00 2000 ]-[Author ID2: at Wed Oct 4 01:08:00 2000 ][Author ID2: at Wed Oct 4 01:08:00 2000 ]LSA) musi otrzymać bilet gwarantujący bilet (Ticket-Granting Ticket-[Author ID2: at Wed Oct 4 01:09:00 2000 ]TGT), który jest odpowiedni do uzyskania dostępu do usługi gwarantującej bilet (t[Author ID2: at Wed Oct 4 01:09:00 2000 ]T[Author ID2: at Wed Oct 4 01:09:00 2000 ]icket-g[Author ID2: at Wed Oct 4 01:09:00 2000 ] G[Author ID2: at Wed Oct 4 01:09:00 2000 ]ranting s[Author ID2: at Wed Oct 4 01:09:00 2000 ]S[Author ID2: at Wed Oct 4 01:09:00 2000 ]ervice) oraz bilet sesji,[Author ID2: at Wed Oct 4 01:09:00 2000 ] odpowiedni do uzyskania dostępu do komputera. Lokalna jednostka [Author ID1: at Sun Aug 5 21:14:00 2001 ]Jednostka [Author ID1: at Sun Aug 5 21:14:00 2001 ]certyfikująca[Author ID1: at Sun Aug 5 21:14:00 2001 ] [Author ID1: at Sun Aug 5 21:14:00 2001 ]Certyfikująca[Author ID1: at Sun Aug 5 21:14:00 2001 ] [Author ID1: at Sun Aug 5 21:14:00 2001 ](Local Security Authority) [Author ID2: at Wed Oct 4 01:09:00 2000 ]otrzymuje te bilety,[Author ID2: at Wed Oct 4 01:09:00 2000 ] korzystając z usługi Usługodawca [Author ID2: at Wed Oct 4 01:10:00 2000 ]o[Author ID2: at Wed Oct 4 02:22:00 2000 ][Author ID1: at Sun Aug 5 21:14:00 2001 ]O[Author ID1: at Sun Aug 5 21:14:00 2001 ]bsługi [Author ID2: at Wed Oct 4 02:22:00 2000 ]z[Author ID2: at Wed Oct 4 01:10:00 2000 ][Author ID1: at Sun Aug 5 21:15:00 2001 ]Z[Author ID1: at Sun Aug 5 21:15:00 2001 ]abezpieczeń[Author ID2: at Wed Oct 4 01:10:00 2000 ] ([Author ID2: at Wed Oct 4 01:10:00 2000 ]Security Support Provider [Author ID2: at Wed Oct 4 01:10:00 2000 ]([Author ID2: at Wed Oct 4 01:10:00 2000 ]SSP), która wymienia komunikaty bezpośrednio z C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 01:10:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:15:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:15:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:15:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:15:00 2001 ] [Author ID1: at Sun Aug 5 21:15:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:15:00 2001 ] [Author ID1: at Sun Aug 5 21:15:00 2001 ](Key d[Author ID2: at Wed Oct 4 01:10:00 2000 ]D[Author ID2: at Wed Oct 4 01:10:00 2000 ]istribution Center [Author ID2: at Wed Oct 4 01:10:00 2000 ]-[Author ID2: at Wed Oct 4 01:11:00 2000 ][Author ID2: at Wed Oct 4 01:11:00 2000 ]KDC) w domenie West.

Kolejność komunikatów jest następująca:

  1. Lokalna jednostka [Author ID1: at Sun Aug 5 21:15:00 2001 ]Jednostka [Author ID1: at Sun Aug 5 21:15:00 2001 ]certyfikująca[Author ID1: at Sun Aug 5 21:15:00 2001 ] [Author ID1: at Sun Aug 5 21:15:00 2001 ]Certyfikująca[Author ID1: at Sun Aug 5 21:15:00 2001 ] [Author ID1: at Sun Aug 5 21:15:00 2001 ](Local Security Au[Author ID2: at Wed Oct 4 01:11:00 2000 ]thority-[Author ID2: at Wed Oct 4 01:11:00 2000 ]LSA) wysyła komunikat KRB_AS_REQ do Centrum dystrybucji [Author ID1: at Sun Aug 5 21:15:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:15:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:15:00 2001 ] [Author ID1: at Sun Aug 5 21:15:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:15:00 2001 ] [Author ID1: at Sun Aug 5 21:15:00 2001 ](Key Distribution Center-[Author ID2: at Wed Oct 4 01:11:00 2000 ]KDC) w domenie West. Komunikat zawiera:

  1. Jeśli dane uwierzytelniania wstępnego (preauthentication data) są poprawne, wówczas [Author ID2: at Wed Oct 4 01:11:00 2000 ]C[Author ID2: at Wed Oct 4 01:11:00 2000 ]c[Author ID2: at Wed Oct 4 01:11:00 2000 ]entrum [Author ID2: at Wed Oct 4 01:12:00 2000 ] dystrybucji kluczy (Key Distribution Center-[Author ID2: at Wed Oct 4 01:12:00 2000 ]([Author ID2: at Wed Oct 4 01:12:00 2000 ]KDC) odpowiada komunikatem KRB-AS_REP. Komunikat ten zawiera:

  1. Lokalna jednostka [Author ID1: at Sun Aug 5 21:15:00 2001 ]Jednostka [Author ID1: at Sun Aug 5 21:15:00 2001 ]certyfikująca[Author ID1: at Sun Aug 5 21:15:00 2001 ] [Author ID1: at Sun Aug 5 21:15:00 2001 ]Certyfikująca[Author ID1: at Sun Aug 5 21:15:00 2001 ] [Author ID1: at Sun Aug 5 21:15:00 2001 ](Local Security Authority-[Author ID2: at Wed Oct 4 01:16:00 2000 ]LSA) wysyła do C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 01:16:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:15:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:15:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:15:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:15:00 2001 ] [Author ID1: at Sun Aug 5 21:15:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:15:00 2001 ] [Author ID1: at Sun Aug 5 21:15:00 2001 ](Key Distribution Center-[Author ID2: at Wed Oct 4 01:16:00 2000 ]KDC) w domenie West komunikat KRB_TGS_REQ. Komunikat ten zawiera:

  1. Centrum dystrybucji [Author ID1: at Sun Aug 5 21:15:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:15:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:16:00 2001 ] [Author ID1: at Sun Aug 5 21:16:00 2001 ]Kluc[Author ID1: at Sun Aug 5 21:16:00 2001 ]zy[Author ID1: at Sun Aug 5 21:16:00 2001 ] [Author ID1: at Sun Aug 5 21:16:00 2001 ](Key Distribution Center-KDC) [Author ID2: at Wed Oct 4 01:18:00 2000 ]odpowiada komunikatem KRB_TGS_REP. Komunikat ten zawiera:

Kiedy [Author ID4: at Wed Oct 4 01:20:00 2000 ]Gdy [Author ID2: at Wed Oct 4 01:20:00 2000 ]L[Author ID0: at Thu Nov 30 00:00:00 1899 ]l[Author ID2: at Wed Oct 4 01:20:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]L[Author ID1: at Sun Aug 5 21:16:00 2001 ]okalna jednostka [Author ID1: at Sun Aug 5 21:16:00 2001 ]Jednostka [Author ID1: at Sun Aug 5 21:16:00 2001 ]certyfikująca[Author ID1: at Sun Aug 5 21:16:00 2001 ] [Author ID1: at Sun Aug 5 21:16:00 2001 ]Certyfikująca[Author ID1: at Sun Aug 5 21:16:00 2001 ] [Author ID1: at Sun Aug 5 21:16:00 2001 ](Local Security Authority-[Author ID4: at Wed Oct 4 01:20:00 2000 ]LSA) otrzymuje bilet sesji (session ticket) Bonnie, odszyfrowuje go za pomocą klucza tajnego (secret key) komputera i odczytuje dane autoryzacji (authorization data) Bonnie. Następnie wysyła kwerendy (query[Author ID4: at Wed Oct 4 01:20:00 2000 ]ies[Author ID2: at Wed Oct 4 01:20:00 2000 ]) do lokalnej bazy danych SAM (Security Accounts Manager) aby poszukać, czy Bonnie jest członkiem lokalnej grupy zabezpieczeń na tym komputerze i czy nadano temu użytkownikowi uprawnienia specjalne na danym komputerze lokalnym. Każdy z identyfikatorów zabezpieczeń (SIDs), zwrócony przez kwerendę, jest dodawany do listy uzyskanej z danych autoryzacji (authorization data) biletu. Cała lista jest następnie używana do budowania znacznika dostępu (access token),[Author ID2: at Wed Oct 4 01:22:00 2000 ] a dojście (handle) do znacznika dostępu (access token) jest zwracane[Author ID2: at Wed Oct 4 01:22:00 2000 ]y[Author ID4: at Wed Oct 4 01:22:00 2000 ] do usługi WinLogon,[Author ID0: at Thu Nov 30 00:00:00 1899 ] razem z identyfikatorem sesji logowania (logon session) Bonnie i potwierdzeniem, że informacje logowania są prawidłowe,[Author ID4: at Wed Oct 4 01:23:00 2000 ].

WinLogon dla użytkownika o nazwie Bonnie tworzy stację (window station) i kilka obiektów pulpitu (desktop objects), dołącza znacznik dostępu (access token) Bonnie i uruchamia powłokę (shell process), z którego[Author ID4: at Wed Oct 4 01:23:00 2000 ]j[Author ID2: at Wed Oct 4 01:23:00 2000 ] Bonnie korzysta przy pracy interaktywnej z komputerem. Każda aplikacja, którą Bonnie uruchomi w trakcie swojej sesji logowania (logon session), dziedziczy jej znacznik dostępu (access token)[Author ID4: at Wed Oct 4 01:23:00 2000 ].

Należy zwrócić uwagę, że w trakcie procesu opisanego poprzednio ten sam klucz jest używany zarówno do szyfrowania,[Author ID2: at Wed Oct 4 01:23:00 2000 ] jak i odszyfrowania. Z tego powodu klucze tajne (shared secret keys) stosowane do logowania za pomocą hasła (password logon) są symetryczne (symmetric).

Logowanie za pomocą kart elektronicznych (smart card logon)

Do obsługi logowania za pomocą kart elektronicznych (smart card logons) w systemie Windows 2000 zaimplementowano rozszerzenie zakresu funkcji wstępnej wymiany komunikatów usługi uwierzytelniania (Authentication Service) protokołu Kerberos, które dotyczy stosowania klucza publicznego (public key). Kryptografia klucza publicznego (public key cryptography) jest niesymetryczna (asymmetric),[Author ID2: at Wed Oct 4 01:24:00 2000 ][Author ID4: at Wed Oct 4 01:24:00 2000 ] tzn. konieczne są dwa klucze;[Author ID2: at Wed Oct 4 01:24:00 2000 ],[Author ID4: at Wed Oct 4 01:24:00 2000 ] jeden do szyfrowania,[Author ID2: at Wed Oct 4 01:24:00 2000 ] a drugi do odszyfrowania. Razem klucze te tworzą parę kluczy prywatny [Author ID2: at Wed Oct 4 01:24:00 2000 ][Author ID1: at Wed Aug 1 18:37:00 2001 ]-[Author ID4: at Wed Oct 4 01:24:00 2000 ]- [Author ID2: at Wed Oct 4 01:24:00 2000 ][Author ID1: at Wed Aug 1 18:37:00 2001 ]-[Author ID1: at Wed Aug 1 18:37:00 2001 ]publiczny (private key [Author ID2: at Wed Oct 4 01:25:00 2000 ][Author ID1: at Wed Aug 1 18:37:00 2001 ]-[Author ID4: at Wed Oct 4 01:25:00 2000 ]- [Author ID2: at Wed Oct 4 01:25:00 2000 ][Author ID1: at Wed Aug 1 18:37:00 2001 ]-[Author ID1: at Wed Aug 1 18:37:00 2001 ]public key). Klucz prywatny (private key) [Author ID4: at Wed Oct 4 01:25:00 2000 ]jest znany tylko właścicielowi danej pary kluczy i nie jest nigdy współdzielony. Klucz publiczny (public key)[Author ID4: at Wed Oct 4 01:25:00 2000 ] może być znany każdemu, z kim właściciel będzie wymieniał pou[Author ID4: at Wed Oct 4 01:25:00 2000 ]fne[Author ID4: at Wed Oct 4 01:25:00 2000 ] [Author ID2: at Wed Oct 4 01:25:00 2000 ]informacje poufne[Author ID4: at Wed Oct 4 01:25:00 2000 ].

Kiedy zamiast hasła stosuje się kartę elektroniczną (smart card) para kluczy prywatny [Author ID2: at Wed Oct 4 01:25:00 2000 ][Author ID1: at Wed Aug 1 18:37:00 2001 ]-[Author ID4: at Wed Oct 4 01:25:00 2000 ]- [Author ID2: at Wed Oct 4 01:25:00 2000 ][Author ID1: at Wed Aug 1 18:37:00 2001 ]-[Author ID1: at Wed Aug 1 18:37:00 2001 ]publiczny zapisana na karcie elektronicznej (smart card) [Author ID4: at Wed Oct 4 01:25:00 2000 ]użytkownika zastępuje klucz tajny (shared secret key) uzyskany z hasła użytkownika. W przypadku rozszerzenia protokołu Kerberos, dotyczącego klucza publicznego,[Author ID2: at Wed Oct 4 01:26:00 2000 ] (public key) [Author ID4: at Wed Oct 4 01:25:00 2000 ]wstępna wymiana komunikatów usługi uwierzytelniania (initial Authentication Service information exchange) jest zmodyfikowana w ten sposób, że C[Author ID4: at Wed Oct 4 01:26:00 2000 ]c[Author ID2: at Wed Oct 4 01:26:00 2000 ][Author ID1: at Sun Aug 5 21:25:00 2001 ]entrum dystrybucji klucz[Author ID1: at Sun Aug 5 21:25:00 2001 ]y[Author ID1: at Sun Aug 5 21:25:00 2001 ]Centrum Dystrybucji Kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ] (Key Distribution Center-KDC) [Author ID4: at Wed Oct 4 01:26:00 2000 ]szyfruje klucz sesji logowania (logon session key) użytkownika za pomocą publicznej części pary kluczy prywatny [Author ID2: at Wed Oct 4 01:26:00 2000 ][Author ID1: at Wed Aug 1 18:37:00 2001 ]-[Author ID4: at Wed Oct 4 01:26:00 2000 ]- [Author ID2: at Wed Oct 4 01:26:00 2000 ][Author ID1: at Wed Aug 1 18:37:00 2001 ]-[Author ID1: at Wed Aug 1 18:37:00 2001 ]publiczny użytkownika. Klient odszyfrowuje klucz sesji logowania (logon session ke[Author ID4: at Wed Oct 4 01:26:00 2000 ]y) [Author ID4: at Wed Oct 4 01:26:00 2000 ]za pomocą prywatnej połowy pary kluczy prywatny - [Author ID2: at Wed Oct 4 01:26:00 2000 ][Author ID1: at Wed Aug 1 18:37:00 2001 ]-[Author ID1: at Wed Aug 1 18:37:00 2001 ]--[Author ID4: at Wed Oct 4 01:26:00 2000 ]publiczny.

Logowanie za pomocą kart elektronicznych (smart card) [Author ID4: at Wed Oct 4 01:26:00 2000 ]przebiega w następujący sposób:

  1. Użytkownik wkłada kartę elektroniczną (smart card) do czytnika kart dołączonego do danego komputera. Jeśli komputery z systemem Windows 2000 są skonfigurowane tak, aby można było korzystać z logowania za pomocą kart elektronicznych (smart card), włożenie karty jest równoważne sekwencji Secure Attention Sequence (SAS).

  2. WinLogon wysyła komunikat do biblioteki DLL o nazwie MSGINA, która wyświetla okno dialogowe Informacje logowania (l[Author ID2: at Wed Oct 4 02:21:00 2000 ]L[Author ID2: at Wed Oct 4 02:21:00 2000 ]ogon I[Author ID2: at Wed Oct 4 02:21:00 2000 ]i[Author ID2: at Wed Oct 4 02:21:00 2000 ]nformation (Informacje logowania[Author ID2: at Wed Oct 4 02:21:00 2000 ]).

  3. Użytkownik wpisuje numer PIN (personal [Author ID1: at Thu Aug 2 11:14:00 2001 ]Personal [Author ID1: at Thu Aug 2 11:14:00 2001 ]identification [Author ID1: at Thu Aug 2 11:14:00 2001 ]Identification [Author ID1: at Thu Aug 2 11:14:00 2001 ]number[Author ID1: at Thu Aug 2 11:14:00 2001 ]Number[Author ID1: at Thu Aug 2 11:14:00 2001 ]).

  4. Biblioteka DLL MSGINA wysyła informacje logowania użytkownika do L[Author ID2: at Wed Oct 4 02:20:00 2000 ]l[Author ID2: at Wed Oct 4 02:20:00 2000 ]okalnej jednostki certyfikującej (Local Security Authority-LSA)[Author ID2: at Wed Oct 4 02:20:00 2000 ], korzystając z wywołania API LsaLogonUser.

  5. Lokalna jednostka [Author ID1: at Sun Aug 5 21:16:00 2001 ]Jednostka [Author ID1: at Sun Aug 5 21:16:00 2001 ]certyfikująca[Author ID1: at Sun Aug 5 21:16:00 2001 ] [Author ID1: at Sun Aug 5 21:16:00 2001 ]Certyfikująca[Author ID1: at Sun Aug 5 21:16:00 2001 ] [Author ID1: at Sun Aug 5 21:16:00 2001 ](Local Security Authority [Author ID2: at Wed Oct 4 02:21:00 2000 ]-[Author ID2: at Wed Oct 4 02:21:00 2000 ][Author ID2: at Wed Oct 4 02:21:00 2000 ]LSA) korzysta z numeru PIN, aby uzyskać dostęp do karty elektronicznej (smart card), na której zapisany jest klucz prywatny użytkownika oraz certyfikat X.509v3, zawierający publiczną połowę z pary kluczy prywatny-[Author ID2: at Wed Oct 4 02:21:00 2000 ]-[Author ID2: at Wed Oct 4 02:21:00 2000 ]publiczny. Wszystkie operacje kryptograficzne korzystające z tych kluczy mają miejsce na karcie elektronicznej.[Author ID2: at Wed Oct 4 02:21:00 2000 ]

  6. Usługodawca obsługi [Author ID1: at Sun Aug 5 21:16:00 2001 ]Obsługi [Author ID1: at Sun Aug 5 21:16:00 2001 ]zabezpieczeń[Author ID1: at Sun Aug 5 21:16:00 2001 ] [Author ID1: at Sun Aug 5 21:16:00 2001 ]Zabezpieczeń[Author ID1: at Sun Aug 5 21:16:00 2001 ] [Author ID1: at Sun Aug 5 21:16:00 2001 ](SSP) Kerberos na komputerze klienta wysyła w komunikacie żądania uwierzytelnienia wstępnego, KRB_AS_REQ, certyfikat z kluczem publicznym (public key certificate) użytkownika do C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 02:25:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:16:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:16:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:16:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:16:00 2001 ] [Author ID1: at Sun Aug 5 21:16:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:16:00 2001 ] [Author ID1: at Sun Aug 5 21:16:00 2001 ](Key Distribution Center-[Author ID2: at Wed Oct 4 02:25:00 2000 ]([Author ID2: at Wed Oct 4 02:25:00 2000 ]KDC) jako dane uwierzytelniania wstępnego (preauthentication data).

  7. Centrum dystrybucji [Author ID1: at Sun Aug 5 21:16:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:16:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:16:00 2001 ] [Author ID1: at Sun Aug 5 21:16:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:16:00 2001 ] [Author ID1: at Sun Aug 5 21:16:00 2001 ](Key Distribution Center-KDC) [Author ID2: at Wed Oct 4 02:26:00 2000 ]sprawdza poprawność certyfikatu i odczytuje klucz publiczny (public key), który używa do szyfrowania klucza sesji logowania (logon session key). W komunikacie wysyłanym w odpowiedzi do klienta, KRB_AS_REP, zwraca zaszyfrowany klucz sesji logowania (logon session key) i bilet gwarantujący bilet (Ticket-Granting Ticket-[Author ID2: at Wed Oct 4 02:26:00 2000 ]TGT).

  8. Jeśli klient posiada prywatną połowę z pary kluczy prywatny [Author ID2: at Wed Oct 4 02:26:00 2000 ][Author ID1: at Wed Aug 1 18:38:00 2001 ]-[Author ID2: at Wed Oct 4 02:26:00 2000 ]- [Author ID2: at Wed Oct 4 02:26:00 2000 ][Author ID1: at Wed Aug 1 18:38:00 2001 ]-[Author ID1: at Wed Aug 1 18:38:00 2001 ]publiczny, korzysta z klucza prywatnego (pivate key) do odszyfrowania klucza sesji logowania (logon session key).

Następnie zarówno klient,[Author ID2: at Wed Oct 4 02:26:00 2000 ] jak i centrum dy[Author ID1: at Sun Aug 5 21:25:00 2001 ]strybucji kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ]Centrum Dystrybucji Kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ] (Key Distribution Center-KDC)[Author ID2: at Wed Oct 4 02:26:00 2000 ] [Author ID2: at Wed Oct 4 02:27:00 2000 ]korzystają z klucza sesji logowania (logon session key) [Author ID2: at Wed Oct 4 02:27:00 2000 ]do wymiany dwustronnej informacji. Nie ma innych odchyleń od protokołu standardowego.

Usługodawca [Author ID2: at Wed Oct 4 02:27:00 2000 ]o[Author ID2: at Wed Oct 4 02:27:00 2000 ][Author ID1: at Sun Aug 5 21:17:00 2001 ]O[Author ID1: at Sun Aug 5 21:17:00 2001 ]bsługi [Author ID2: at Wed Oct 4 02:27:00 2000 ]z[Author ID2: at Wed Oct 4 02:27:00 2000 ][Author ID1: at Sun Aug 5 21:17:00 2001 ]Z[Author ID1: at Sun Aug 5 21:17:00 2001 ]abezpieczeń[Author ID2: at Wed Oct 4 02:27:00 2000 ] [Author ID2: at Wed Oct 4 02:27:00 2000 ]Kerber[Author ID2: at Wed Oct 4 02:27:00 2000 ]os[Author ID2: at Wed Oct 4 02:27:00 2000 ] (Kerberos SSP), działający na komputerze klienta, [Author ID2: at Wed Oct 4 02:27:00 2000 ]D[Author ID2: at Wed Oct 4 02:27:00 2000 ]d[Author ID2: at Wed Oct 4 02:27:00 2000 ]omyślnie usługodawca obsługi zabezpieczeń Kerberos (Kerberos SSP) działający na komputerze klienta [Author ID2: at Wed Oct 4 02:27:00 2000 ]wysyła dane uwierzytelniania wstępnego do [Author ID2: at Wed Oct 4 02:27:00 2000 ]C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 02:27:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:17:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:17:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:17:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:17:00 2001 ] [Author ID1: at Sun Aug 5 21:17:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:17:00 2001 ] [Author ID1: at Sun Aug 5 21:17:00 2001 ](KDC preauthentication data) w postaci zaszyfrowanego znacznika czasu (timestamp). W systemach, w których zastosowano logowanie się [Author ID2: at Wed Oct 4 02:27:00 2000 ]za pomocą kart elektronicznych (smart card), usługodawca [Author ID1: at Wed Aug 1 18:30:00 2001 ]Usługodawca [Author ID1: at Wed Aug 1 18:30:00 2001 ]obsługi [Author ID1: at Sun Aug 5 21:17:00 2001 ]Obsługi [Author ID1: at Sun Aug 5 21:17:00 2001 ]zabezpieczeń[Author ID1: at Sun Aug 5 21:17:00 2001 ] [Author ID1: at Sun Aug 5 21:17:00 2001 ]Zabezpieczeń[Author ID1: at Sun Aug 5 21:17:00 2001 ] [Author ID1: at Sun Aug 5 21:17:00 2001 ]Kerberos (Kerberos SSP) wysyła dane uwierzytelniania wstępnego (preauthentication data) [Author ID2: at Wed Oct 4 02:28:00 2000 ]w postaci klucza publicznego. W rozdziale 6.[Author ID2: at Wed Oct 4 02:28:00 2000 ] znajduje się dokładniejszy opis kluczy publicznych, a w rozdziale 9.[Author ID2: at Wed Oct 4 02:28:00 2000 ] opisano szerzej korzystanie z kart elektronicznych (smart cards).

Uwierzytelnianie przekraczające granice domeny

Funkcje C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 02:28:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:17:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:17:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:17:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:17:00 2001 ] [Author ID1: at Sun Aug 5 21:17:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:17:00 2001 ] [Author ID1: at Sun Aug 5 21:17:00 2001 ](Key Distribution Center[Author ID2: at Wed Oct 4 03:11:00 2000 ]-[Author ID2: at Wed Oct 4 02:28:00 2000 ]KDC) [Author ID2: at Wed Oct 4 03:11:00 2000 ]są podzielone na dwie odmienne usługi: usługę uwierzytelniania, która wydaje bilety gwarantujące bilet (Ticket[Author ID2: at Wed Oct 4 03:11:00 2000 ]-[Author ID2: at Wed Oct 4 02:28:00 2000 ]Granting Ticket[Author ID2: at Wed Oct 4 03:11:00 2000 ]-[Author ID2: at Wed Oct 4 02:28:00 2000 ]TGT)[Author ID2: at Wed Oct 4 03:11:00 2000 ],[Author ID2: at Wed Oct 4 02:28:00 2000 ] [Author ID2: at Wed Oct 4 03:11:00 2000 ]oraz usługę wydawania biletów (Ticket-[Author ID2: at Wed Oct 4 02:28:00 2000 ] [Author ID2: at Wed Oct 4 02:28:00 2000 ]Granting Service [Author ID2: at Wed Oct 4 02:28:00 2000 ]-[Author ID2: at Wed Oct 4 02:28:00 2000 ][Author ID2: at Wed Oct 4 02:28:00 2000 ]TGS), która wydaje bilety sesji (session tickets). Umożliwia to protokołowi Kerberos przekraczanie granic domen. Klient może otrzymać bilet gwarantujący bilet (Ticket-Granting Ticket-TGT) [Author ID2: at Wed Oct 4 02:29:00 2000 ]od usługi uwierzytelniania (authentication service) w jednej domenie i użyć go do uzyskania biletów sesji (session tickets) [Author ID2: at Wed Oct 4 02:29:00 2000 ]od usługi wydawania biletów (t[Author ID2: at Wed Oct 4 02:29:00 2000 ]T[Author ID2: at Wed Oct 4 02:29:00 2000 ]icket [Author ID2: at Wed Oct 4 03:11:00 2000 ]g[Author ID2: at Wed Oct 4 02:29:00 2000 ]G[Author ID2: at Wed Oct 4 02:29:00 2000 ]ranting [Author ID2: at Wed Oct 4 03:11:00 2000 ]s[Author ID2: at Wed Oct 4 02:29:00 2000 ]S[Author ID2: at Wed Oct 4 02:29:00 2000 ]ervice[Author ID2: at Wed Oct 4 03:11:00 2000 ]) z innej domeny.

Po pierwsze,[Author ID2: at Wed Oct 4 02:29:00 2000 ] rozważmy sieć, w której istnieją dwie domeny systemu Windows 2000, East i West. Jeśli ustanowiono relację zaufania (trust relationship), uwierzytelnianie przekraczające granice domeny zaimplementowano przez współdzielenie klucza międzydomenowego (interdomain key). Usługa wydawania biletów (Ticket-[Author ID2: at Wed Oct 4 02:29:00 2000 ] [Author ID2: at Wed Oct 4 02:29:00 2000 ]Granting Service [Author ID2: at Wed Oct 4 02:29:00 2000 ]-[Author ID2: at Wed Oct 4 02:29:00 2000 ][Author ID2: at Wed Oct 4 02:29:00 2000 ]TGS) w każdej z domen jest zarejestrowana jako obiekt typu security principal z centrami dystrybucji kluczy (Key Distribution Center-KDC) [Author ID2: at Wed Oct 4 02:29:00 2000 ]innych domen i usługa wydawania biletów (Ticket-Granting Service-[Author ID2: at Wed Oct 4 02:29:00 2000 ]TGS) w każdej domenie może traktować tę samą [Author ID2: at Wed Oct 4 02:30:00 2000 ]usługę wydawania biletów (Ticket-Granting Service-TGS) [Author ID2: at Wed Oct 4 02:30:00 2000 ]w innych domenach jako po prostu jeszcze jedną usługę, dla której klienty[Author ID2: at Wed Oct 4 02:30:00 2000 ]ci[Author ID2: at Wed Oct 4 02:30:00 2000 ], uzyskawszy poprawne uwierzytelnienie, mogą żądać i uzyskać bilety sesji (session tickets).

Kiedy użytkownik, którego konto znajduje się w domenie East chce uzyskać dostęp do serwera, którego konto znajduje się w domenie West, proces uwierzytelniania przebiega w następujący sposób:

  1. Klient Kerberos na stacji roboczej użytkownika wysyła żądanie biletu sesji (session ticket) do usługi wydawania biletów (Ticket-[Author ID2: at Wed Oct 4 02:30:00 2000 ] [Author ID2: at Wed Oct 4 02:30:00 2000 ]Granting Service [Author ID2: at Wed Oct 4 02:30:00 2000 ]-[Author ID2: at Wed Oct 4 02:30:00 2000 ][Author ID2: at Wed Oct 4 02:30:00 2000 ]TGS) w domenie East.

  2. Usługa wydawania biletów (Ticket-Granting Services-[Author ID2: at Wed Oct 4 02:31:00 2000 ]TGS) w domenie East widzi, że pożądany[Author ID2: at Wed Oct 4 02:31:00 2000 ]upragniony[Author ID2: at Wed Oct 4 02:31:00 2000 ] serwer nie jest obiektem typu security principal w tej domenie i odpowiada,[Author ID2: at Wed Oct 4 02:31:00 2000 ] wysyłając klientowi bilet referencyjny (referral ticket), tzn. bilet gwarantujący bilet (Ticket-Granting Ticket-[Author ID2: at Wed Oct 4 02:31:00 2000 ]([Author ID2: at Wed Oct 4 02:31:00 2000 ]TGT), zaszyfrowany za pomocą klucza międzydomenowego (interdomain key), który c[Author ID2: at Wed Oct 4 02:31:00 2000 ][Author ID1: at Sun Aug 5 21:17:00 2001 ]C[Author ID1: at Sun Aug 5 21:17:00 2001 ]C[Author ID0: at Thu Nov 30 00:00:00 1899 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:17:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:17:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:17:00 2001 ] [Author ID1: at Sun Aug 5 21:17:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:17:00 2001 ] [Author ID1: at Sun Aug 5 21:17:00 2001 ](Key Distribution Center-[Author ID2: at Wed Oct 4 02:31:00 2000 ]KDC) w domenie East współdzieli z C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 02:31:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:17:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:17:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:17:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:17:00 2001 ] [Author ID1: at Sun Aug 5 21:17:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:17:00 2001 ] [Author ID1: at Sun Aug 5 21:17:00 2001 ](Key Distribution Center-[Author ID2: at Wed Oct 4 02:31:00 2000 ]KDC) w domenie West.

  3. Klient korzysta z biletu referencyjnego (referral ticket) do przygotowania drugiego żądania biletu sesji (session ticket) i tym razem wysyła żądanie do usługi wydawania biletów (Ticket-Granting Service-[Author ID2: at Wed Oct 4 02:32:00 2000 ]TGS) w domenie West.

  4. Usługa wydawania biletów (Ticket-Granting Service-TGS)[Author ID2: at Wed Oct 4 02:32:00 2000 ] w domenie West używa swojej kopii klucza międzydomenowego (interdomain key)[Author ID2: at Wed Oct 4 02:32:00 2000 ] do odszyfrowania biletu referencyjnego (referral ticket). Jeśli bilet referencyjny (referral ticket) [Author ID2: at Wed Oct 4 02:32:00 2000 ]zostanie odszyfrowany prawidłowo, usługa wydawania biletów (Ticket-Granting Service-[Author ID2: at Wed Oct 4 02:32:00 2000 ]TGS) wysyła klientowi bilet sesji (session ticket) do żądanego serwera w tej domenie.

Tam, gdzie istnieje drzewo domen (domain tree), klient z jednej domeny może uzyskać bilet do serwera w innej domenie,[Author ID2: at Wed Oct 4 02:33:00 2000 ] przechodząc ścieżką referencyjną (referral path) przez jedną lub kilka domen pośrednich. Przykład przedstawiono na rysunku 4.7.

[Author ID1: at Sun Aug 5 21:19:00 2001 ]

0x01 graphic
[Author ID3: at Mon Aug 13 12:40:00 2001 ]

Rysunek 4.7.[Author ID2: at Wed Oct 4 02:33:00 2000 ] Uwierzytelnianie poprzez granice domeny.[Author ID0: at Thu Nov 30 00:00:00 1899 ]

W firmie, w której pracuje Bonnie, jest domena nadrzędna (parent domain) coriolis.com,[Author ID2: at Wed Oct 4 02:33:00 2000 ] oraz dwie domeny podrzędne (children domains), east.coriolis.com i west.coriolis.com.

Bonnie loguje się na swoje konto w domenie west.coriolis.com i otrzymuje bilet gwarantujący bilet (Ticket-Granting Ticket-TGT) [Author ID2: at Wed Oct 4 02:33:00 2000 ]do C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 02:33:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:19:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:19:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:19:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:19:00 2001 ] [Author ID1: at Sun Aug 5 21:19:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:19:00 2001 ] [Author ID1: at Sun Aug 5 21:19:00 2001 ](Key Distribution Center-KDC) [Author ID2: at Wed Oct 4 02:33:00 2000 ]w tej domenie. Bonnie potrzebny jest dostęp do dokumentów zapisanych w udziale publicznym (public share) na serwerze w domenie east.coriolis.com o nazwie Clyde. Ponieważ domena, w której Bonnie ma swoje konto jest inna niż domena serwera plików (file server), usługodawca [Author ID1: at Wed Aug 1 18:30:00 2001 ]Usługodawca [Author ID1: at Wed Aug 1 18:30:00 2001 ]obsługi [Author ID1: at Sun Aug 5 21:19:00 2001 ]Obsługi [Author ID1: at Sun Aug 5 21:19:00 2001 ]zabezpieczeń[Author ID1: at Sun Aug 5 21:19:00 2001 ] [Author ID1: at Sun Aug 5 21:19:00 2001 ]Zabezpieczeń[Author ID1: at Sun Aug 5 21:19:00 2001 ] [Author ID1: at Sun Aug 5 21:19:00 2001 ](SSP) na stacji roboczej Bonnie musi dostać bilet gwarantujący bilet (Ticket-[Author ID2: at Wed Oct 4 02:34:00 2000 ] [Author ID2: at Wed Oct 4 02:34:00 2000 ]Granting Ticket-TGT[Author ID2: at Wed Oct 4 02:34:00 2000 ]) dla domeny east.coriolis.com i użyć ten bilet gwarantujący bilet (Ticket-Granting Ticket-TGT) a[Author ID2: at Wed Oct 4 02:34:00 2000 ]go, [Author ID2: at Wed Oct 4 02:34:00 2000 ]by uzyskać bilet dla serwera. Proces referencyjny (referral process) przebiega w następujący sposób:

  1. Stacja robocza Bonnie wysyła komunikat KRB_TGS_REQ do C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 02:34:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:19:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:19:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:19:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:19:00 2001 ] [Author ID1: at Sun Aug 5 21:19:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:19:00 2001 ] [Author ID1: at Sun Aug 5 21:19:00 2001 ](Key Distribution Center-KDC) [Author ID2: at Wed Oct 4 02:34:00 2000 ]w domenie west.coriolis.com. [Author ID2: at Wed Oct 4 02:44:00 2000 ], który[Author ID2: at Wed Oct 4 02:44:00 2000 ]Komunikat ten[Author ID2: at Wed Oct 4 02:44:00 2000 ] zawiera:

  1. Centrum dystrybucji [Author ID1: at Sun Aug 5 21:19:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:19:00 2001 ]kl[Author ID1: at Sun Aug 5 21:19:00 2001 ]uczy[Author ID1: at Sun Aug 5 21:19:00 2001 ] [Author ID1: at Sun Aug 5 21:19:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:19:00 2001 ] [Author ID1: at Sun Aug 5 21:19:00 2001 ](Key Distribution Center-[Author ID2: at Wed Oct 4 02:35:00 2000 ]KDC) w domenie west.coriolis.com wysyła komunikat KRB_TGS_REP. Komunikat ten zawiera:

  1. Stacja robocza Bonnie wysyła do C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 02:36:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:20:00 2001 ]entrum dystry[Author ID1: at Sun Aug 5 21:20:00 2001 ]bucji [Author ID1: at Sun Aug 5 21:20:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:20:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:20:00 2001 ] [Author ID1: at Sun Aug 5 21:20:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:20:00 2001 ] [Author ID1: at Sun Aug 5 21:20:00 2001 ](Key Distribution Center-[Author ID2: at Wed Oct 4 02:36:00 2000 ]KDC) w domenie coriolis.com komunikat KRB_TGS_REQ. [Author ID2: at Wed Oct 4 02:44:00 2000 ], który zawiera[Author ID2: at Wed Oct 4 02:44:00 2000 ]Komunikat ten zawiera[Author ID2: at Wed Oct 4 02:44:00 2000 ]:

  1. Centrum dystrybucji [Author ID1: at Sun Aug 5 21:20:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:20:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:20:00 2001 ] [Author ID1: at Sun Aug 5 21:20:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:20:00 2001 ] [Author ID1: at Sun Aug 5 21:20:00 2001 ](Key Distribution Center-KDC) [Author ID2: at Wed Oct 4 02:38:00 2000 ]w domenie coriolis.com wysyła komunikat KRB_TGS_REP. Komunikat ten zawiera:

  1. Stacja robocza Bonnie wysyła do c[Author ID2: at Wed Oct 4 02:39:00 2000 ][Author ID1: at Sun Aug 5 21:21:00 2001 ]C[Author ID1: at Sun Aug 5 21:21:00 2001 ]C[Author ID0: at Thu Nov 30 00:00:00 1899 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:21:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:21:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:22:00 2001 ] [Author ID1: at Sun Aug 5 21:22:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:22:00 2001 ] [Author ID1: at Sun Aug 5 21:22:00 2001 ](Key Distribution Center-KDC) [Author ID2: at Wed Oct 4 02:40:00 2000 ]w domenie east.coriolis.com komunikat KRB_TGS_REQ. Komunikat ten zawiera:

  1. Centrum dystrybucji [Author ID1: at Sun Aug 5 21:21:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:21:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:21:00 2001 ] [Author ID1: at Sun Aug 5 21:21:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:21:00 2001 ] [Author ID1: at Sun Aug 5 21:21:00 2001 ](Key Distribution Center-KDC) [Author ID2: at Wed Oct 4 02:41:00 2000 ]w domenie east.coriolis.com wysyła komunikat KRB_TGS_REP.[Author ID2: at Wed Oct 4 02:44:00 2000 ],[Author ID2: at Wed Oct 4 02:44:00 2000 ] który[Author ID2: at Wed Oct 4 02:44:00 2000 ]Komunikat ten[Author ID2: at Wed Oct 4 02:44:00 2000 ] zawiera:

  1. Stacja robocza Bonnie wysyła do komputera o nazwie Clyde komunikat KRB_AP_REQ. Komunikat ten zawiera:

  1. Komputer o nazwie Clyde odpowiada komunikatem KRB_AP_REP.[Author ID2: at Wed Oct 4 02:44:00 2000 ],[Author ID2: at Wed Oct 4 02:44:00 2000 ] który[Author ID2: at Wed Oct 4 02:44:00 2000 ]Komunikat ten[Author ID2: at Wed Oct 4 02:44:00 2000 ] zawiera wartość uwierzytelniającą (authenticator) zaszyfrowany za pomocą klucza sesji (session key), który Clyde współdzieli z Bonnie.

Analiza biletów protokołu Kerberos (Kerberos tickets)

Co zawierają bilety protokołu Kerberos? W jaki sposób oblicza się czas wygaśnięcia (expiration time)? Jak dużą część zawartości biletu jest znana klientowi? Odpowiedzi na te pytania są ważne, jeśli bierze się pod uwagę sposób konfigurowania zasad protokołu Kerberos (Kerberos policy).

Zawartość biletu

W tej części rozdziału wymieniono pola biletu i opisano krótko, jakie informacje zwierają. Dokładne struktury danych biletów (tickets),[Author ID2: at Wed Oct 4 02:45:00 2000 ] jak również komunikatów (messages) można znaleźć w dokumencie RFC 1510 ([Author ID2: at Wed Oct 4 02:45:00 2000 ][Author ID2: at Wed Oct 4 02:45:00 2000 ]Usługa uwierzytelniania sieciowego Kerberos V[Author ID0: at Thu Nov 30 00:00:00 1899 ]5”[Author ID2: at Wed Oct 4 02:45:00 2000 ][Author ID2: at Wed Oct 4 02:45:00 2000 ] („[Author ID2: at Wed Oct 4 02:45:00 2000 ]„The Kerberos Network Authentication Service (V[Author ID2: at Wed Oct 4 02:46:00 2000 ]5)”[Author ID2: at Wed Oct 4 02:46:00 2000 ]”) z września 1993, którego [Author ID2: at Wed Oct 4 02:46:00 2000 ]autorami są[Author ID2: at Wed Oct 4 02:46:00 2000 ]zy[Author ID2: at Wed Oct 4 02:46:00 2000 ]: J. Kohl i C. Neumann. W tabeli 4.1.[Author ID2: at Wed Oct 4 02:46:00 2000 ] zamieszczono pierwsze trzy pola biletu. Nie są one zaszyfrowane;[Author ID2: at Wed Oct 4 02:46:00 2000 ],[Author ID2: at Wed Oct 4 02:46:00 2000 ] informacje zapisane są w postaci zwykłego tekstu, więc klient może je wykorzystać do zarządzania biletami znajdującymi się w buforze.

Pozostałe pola są zaszyfrowane za pomocą klucza tajnego (secret key) serwera. Pola te przedstawiono w tabeli 4.2.

Pole Znaczniki (Flags) jest polem bitowym, w którym opcje konfiguruje się,[Author ID2: at Wed Oct 4 02:47:00 2000 ] ustawiając lub kasując poszczególne bity. Chociaż pole to ma długość 32 bity[Author ID2: at Wed Oct 4 02:47:00 2000 ]ów[Author ID2: at Wed Oct 4 02:47:00 2000 ], tylko kilka znaczników biletu (ticket flags) jest interesujących. Przedstawiono je w tabeli 4.3.

Klienty[Author ID2: at Wed Oct 4 02:47:00 2000 ]ci[Author ID2: at Wed Oct 4 02:47:00 2000 ] powinny znać niektóre informacje znajdujące się w biletach (tickets) i biletach gwarantujących bilety (Ticket-Granting Tickets-[Author ID2: at Wed Oct 4 02:47:00 2000 ]TGTs), aby zarządzać swoim buforem danych uwierzytelniających (credentials cache). Centrum dystrybucji [Author ID1: at Sun Aug 5 21:22:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:22:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:22:00 2001 ] [Author ID1: at Sun Aug 5 21:22:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:22:00 2001 ] [Author ID1: at Sun Aug 5 21:22:00 2001 ](Key Distribution Center-[Author ID2: at Wed Oct 4 02:48:00 2000 ]KDC),[Author ID2: at Wed Oct 4 02:48:00 2000 ] zwracając bilet i klucz sesji (session key) jako wynik wymiany komunikatów usługi Uwierzytelniania [Author ID1: at Wed Aug 1 18:43:00 2001 ]uwierzytelniania [Author ID1: at Wed Aug 1 18:43:00 2001 ](AS information exchange) lub usługi wydawania biletów (TGS information exchange), umieszcza kopię klucza sesji klienta w strukturze danych, która zawiera informacje w polach biletu (ticket fields) Znaczniki[Author ID2: at Wed Oct 4 02:48:00 2000 ] ([Author ID2: at Wed Oct 4 02:48:00 2000 ]f[Author ID2: at Wed Oct 4 02:48:00 2000 ][Author ID1: at Wed Aug 1 18:43:00 2001 ]F[Author ID1: at Wed Aug 1 18:43:00 2001 ]F[Author ID2: at Wed Oct 4 02:48:00 2000 ]lags)[Author ID2: at Wed Oct 4 02:48:00 2000 ], Authtime, Starttime, Endtime i Renew-till. Cała struktura jest zaszyfrowana w kluczu klienta i zwracana za pomocą komunikatów KRB_AS_REP i KRB_TGS_REP.

Tabela 4.1.[Author ID2: at Wed Oct 4 02:50:00 2000 ] Pola biletu zawierające dane zapisane zwykłym tekstem

Tkt-vno

Numer wersji formatu biletu (ticket format). W przypadku protokołu Kerberos wersja [Author ID2: at Wed Oct 4 02:51:00 2000 ]5 w polu tym zapisana jest 5.

Nazwa obszaru (realm)-[Author ID1: at Wed Aug 1 18:56:00 2001 ]) — [Author ID1: at Wed Aug 1 18:56:00 2001 ]domeny, w której wydano dany bilet. Centrum dystrybucji kluczy (Key Distribution Centre [Author ID2: at Wed Oct 4 02:51:00 2000 ]-[Author ID2: at Wed Oct 4 02:51:00 2000 ][Author ID2: at Wed Oct 4 02:51:00 2000 ]KDC) może wydawać bilety tylko dla serwerów we własnym obszarze (realm), więc jest to także nazwa obszaru (realm) serwera.

Sname

Nazwa serwera

Tabela 4.2.[Author ID2: at Wed Oct 4 02:52:00 2000 ] Zaszyfrowane pola biletu.[Author ID2: at Wed Oct 4 02:52:00 2000 ]

Opcje biletu

Klucz sesji

Crealm

Cname

Nazwa klienta

Transited

Lista obszarów protokołu Kerberos,[Author ID2: at Wed Oct 4 02:53:00 2000 ] biorących udział w uwierzytelnianiu klienta, któremu wydano dany bilet.

Authtime

Czas pierwszego uwierzytelniania przez klienta. Centrum dystrybucji kluczy (Key Distribution Center-[Author ID2: at Wed Oct 4 02:53:00 2000 ]KDC) umieszcza w tym znacznik czasu (timestamp), [Author ID2: at Wed Oct 4 02:53:00 2000 ] kie[Author ID2: at Wed Oct 4 02:53:00 2000 ]g[Author ID2: at Wed Oct 4 02:53:00 2000 ]dy wyda bilet gwarantujący bilet (Ticket [Author ID2: at Wed Oct 4 02:53:00 2000 ]-[Author ID2: at Wed Oct 4 02:53:00 2000 ]Granting Bilet [Author ID2: at Wed Oct 4 02:54:00 2000 ]-[Author ID2: at Wed Oct 4 02:54:00 2000 ][Author ID2: at Wed Oct 4 02:54:00 2000 ]TGT). Kiedy C[Author ID2: at Wed Oct 4 02:54:00 2000 ]c[Author ID2: at Wed Oct 4 02:54:00 2000 ][Author ID1: at Sun Aug 5 21:25:00 2001 ]entrum dystrybucji kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ]Centrum Dystrybucji Kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ] (Key Distri[Author ID2: at Wed Oct 4 02:54:00 2000 ]bution Center-KDC) [Author ID2: at Wed Oct 4 02:54:00 2000 ]wydaje bilety na podstawie biletu gwarantującego bilet[Author ID2: at Wed Oct 4 02:54:00 2000 ]t (Ticket-Granting Ticket-TGT)[Author ID2: at Wed Oct 4 02:54:00 2000 ], zapisuje kopię czasu pierwszego uwierzytelnienia biletu gwarantującego bilet (Ticket-Granting Ticket-[Author ID2: at Wed Oct 4 02:54:00 2000 ]TGT) w polu Authtime w bilecie.

Starttime

Czas, po którym bilet jest ważny.[Author ID2: at Wed Oct 4 02:58:00 2000 ]

Endtime

Renew-till

Maksymalny okres ważności, który można ustawić w bilecie za pomocą znacznika RENEW-ABLE. (O[Author ID2: at Wed Oct 4 02:55:00 2000 ]o[Author ID2: at Wed Oct 4 02:55:00 2000 ]pcja)

Caddr

Jeden lub kilka adresów, z których danych bilet może być wykorzystany. Jeśli pole jest wolne, bilet może być użyty z dowolnego adresu (O[Author ID2: at Wed Oct 4 02:55:00 2000 ]o[Author ID2: at Wed Oct 4 02:55:00 2000 ]pcja)

Authorization Data

Atrybuty uprawnień dla klienta. Protokół Kerberos nie interpretuje zawartości tego pola. Interpretacja jest dokonywana przez usługę (O[Author ID2: at Wed Oct 4 02:55:00 2000 ]o[Author ID2: at Wed Oct 4 02:55:00 2000 ]pcja)

Tabela 4.3.[Author ID2: at Wed Oct 4 02:55:00 2000 ] Znaczniki biletu.[Author ID2: at Wed Oct 4 02:55:00 2000 ]

FORWARDABLE

Informuje usługę wydawania biletów (Ticket-[Author ID2: at Wed Oct 4 02:56:00 2000 ] [Author ID2: at Wed Oct 4 02:56:00 2000 ]Granting Service [Author ID2: at Wed Oct 4 02:56:00 2000 ]-[Author ID2: at Wed Oct 4 02:56:00 2000 ][Author ID2: at Wed Oct 4 02:56:00 2000 ]TGS), że może wydać nowy bilet gwarantujący bilet (Ticket-[Author ID2: at Wed Oct 4 02:56:00 2000 ] [Author ID2: at Wed Oct 4 02:56:00 2000 ]Granting Ticket [Author ID2: at Wed Oct 4 02:56:00 2000 ]-[Author ID2: at Wed Oct 4 02:56:00 2000 ][Author ID2: at Wed Oct 4 02:56:00 2000 ]TGT) z innym adresem sieciowym na podstawie przedstawionego biletu gwarantującego bilet [Author ID2: at Wed Oct 4 02:57:00 2000 ] (Ticket-Granting Ticket-TGT). ([Author ID2: at Wed Oct 4 02:56:00 2000 ](t[Author ID2: at Wed Oct 4 02:56:00 2000 ]T[Author ID2: at Wed Oct 4 02:56:00 2000 ]ylko w przypadku biletów gwarantujących bilet ([Author ID2: at Wed Oct 4 02:57:00 2000 ]TGTs[Author ID2: at Wed Oct 4 03:11:00 2000 ]).[Author ID2: at Wed Oct 4 02:58:00 2000 ]

FORWARDED

Wskazuje, że bilet gwarantujący bilet (Ticket-Granting Ticket-TGT) [Author ID2: at Wed Oct 4 02:57:00 2000 ]został przekazany dalej lub,[Author ID2: at Wed Oct 4 02:58:00 2000 ] że dany bilet został wydany z przekazanego dalej biletu gwarantującego bilet (Ticket-Granting Ticket-TGT)[Author ID2: at Wed Oct 4 02:58:00 2000 ].

PROXIABLE

Informuje usługę wydawania biletów (Ticket-Granting Service-[Author ID2: at Wed Oct 4 02:58:00 2000 ]TGS), że może wydawać bilety z innymi adresem sieciowym niż ten, który znajduje się w danym bilecie gwarantującym bilet (Ticket-Gr[Author ID2: at Wed Oct 4 02:58:00 2000 ]anting Ticket-[Author ID2: at Wed Oct 4 02:58:00 2000 ]TGT). ([Author ID2: at Wed Oct 4 02:59:00 2000 ] ([Author ID2: at Wed Oct 4 02:59:00 2000 ]T[Author ID2: at Wed Oct 4 02:59:00 2000 ]t[Author ID2: at Wed Oct 4 02:59:00 2000 ]ylko w przypadku biletów gwarantujących bilety TGT[Author ID2: at Wed Oct 4 02:59:00 2000 ]).

PROXY

Wskazuje, że adres sieciowy w bilecie jest inny niż adres w bilecie gwarantującym bilet (Ticket-Granting Ticket-[Author ID2: at Wed Oct 4 02:59:00 2000 ]TGT),[Author ID2: at Wed Oct 4 02:59:00 2000 ] użytym do uzyskania danego biletu.

RENEWABLE

Używany w kombinacji z polami Endtime i Renew-till, aby bilety z długim okresem ważności były odświeżane okresowo w C[Author ID2: at Wed Oct 4 02:59:00 2000 ]c[Author ID2: at Wed Oct 4 02:59:00 2000 ][Author ID1: at Sun Aug 5 21:25:00 2001 ]entrum dystrybucji kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ]Centrum Dystrybucji Kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ] (Key Distribution Center-[Author ID2: at Wed Oct 4 03:00:00 2000 ]KDC).

INITIAL

Ograniczanie czasu życia biletu

Bilety protokołu Kerberos mają określony czas początkowy (start time) i czas ważności (expiration time). W okresie ważności biletu klient, który otrzymał ten bilet dla [Author ID2: at Wed Oct 4 03:05:00 2000 ]do realizacji [Author ID2: at Wed Oct 4 03:05:00 2000 ]pewnej usługi, może go przedstawić i uzyskać[Author ID2: at Wed Oct 4 03:05:00 2000 ] dostęp do tej usługi, bez względu na to, ile razy korzystał wcześniej z tego [Author ID2: at Wed Oct 4 03:05:00 2000 ]danego [Author ID2: at Wed Oct 4 03:05:00 2000 ]biletu. Aby ograniczyć ryzyko narażenia [Author ID2: at Wed Oct 4 03:06:00 2000 ]na szwank [Author ID2: at Wed Oct 4 03:05:00 2000 ]b[Author ID2: at Wed Oct 4 03:06:00 2000 ]zagrożenia dla b[Author ID2: at Wed Oct 4 03:06:00 2000 ]ezpieczeństwa biletu lub odpowiadającemu [Author ID2: at Wed Oct 4 03:06:00 2000 ]go [Author ID2: at Wed Oct 4 03:06:00 2000 ]mu klucza sesji (session key),[Author ID2: at Wed Oct 4 03:06:00 2000 ] administratorzy mogą ustawić maksymalny czas „życia” biletów.

Kiedy klient żąda od c[Author ID2: at Wed Oct 4 03:06:00 2000 ][Author ID1: at Sun Aug 5 21:22:00 2001 ]C[Author ID1: at Sun Aug 5 21:22:00 2001 ]C[Author ID0: at Thu Nov 30 00:00:00 1899 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:22:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:22:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:22:00 2001 ] [Author ID1: at Sun Aug 5 21:22:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:22:00 2001 ] [Author ID1: at Sun Aug 5 21:22:00 2001 ](Key Distribution Center-[Author ID2: at Wed Oct 4 03:06:00 2000 ]KDC) biletu do jakiejś usługi, może żądać określonego czasu początkowego (start time). Jeśli żądanie nie zawiera tego czasu lub ten czas już[Author ID2: at Wed Oct 4 03:07:00 2000 ]on[Author ID2: at Wed Oct 4 03:07:00 2000 ] minął, C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 03:07:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:22:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:23:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:23:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:23:00 2001 ] [Author ID1: at Sun Aug 5 21:23:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:23:00 2001 ] [Author ID1: at Sun Aug 5 21:23:00 2001 ](Key Distribution Center-KDC) [Author ID2: at Wed Oct 4 03:07:00 2000 ]wpisujeczas aktualny [Author ID2: at Wed Oct 4 03:07:00 2000 ] [Author ID2: at Wed Oct 4 03:07:00 2000 ]w polu Starttime biletu czas aktualny[Author ID2: at Wed Oct 4 03:07:00 2000 ].

Niezależnie od tego, czy klienci [Author ID2: at Wed Oct 4 03:07:00 2000 ]ty [Author ID2: at Wed Oct 4 03:07:00 2000 ]podają czasy początkowe (start times[Author ID2: at Wed Oct 4 03:07:00 2000 ]),[Author ID2: at Wed Oct 4 03:07:00 2000 ] ich żądania muszą zawierać wymagany czas ważności (expiration time). Centrum dystrybucji [Author ID1: at Sun Aug 5 21:23:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:23:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:23:00 2001 ] [Author ID1: at Sun Aug 5 21:23:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:23:00 2001 ] [Author ID1: at Sun Aug 5 21:23:00 2001 ](Key Distribution Center-KDC) [Author ID2: at Wed Oct 4 03:08:00 2000 ]ustala wartość zapisaną w polu Endtime danego biletu,[Author ID2: at Wed Oct 4 03:08:00 2000 ] dodając maksymalną wartość okresu ważności biletu, podaną w zasadach protokołu Kerberos (Kerberos policy),[Author ID2: at Wed Oct 4 03:08:00 2000 ] do wartości zapisanej w polu Starttime tego biletu a n[Author ID2: at Wed Oct 4 03:08:00 2000 ]. N[Author ID2: at Wed Oct 4 03:08:00 2000 ]astępnie porównuje wynik z wymaganym czasem ważności (expiration time) biletu[Author ID2: at Wed Oct 4 03:09:00 2000 ]. Cza[Author ID2: at Wed Oct 4 03:09:00 2000 ]sem ważności (expiration time) biletu z[Author ID2: at Wed Oct 4 03:09:00 2000 ]Z[Author ID2: at Wed Oct 4 03:09:00 2000 ]ostanie ten czas[Author ID2: at Wed Oct 4 03:09:00 2000 ], który jest wcześniejszy.

Centrum dystrybucji [Author ID1: at Sun Aug 5 21:23:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:23:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:23:00 2001 ] [Author ID1: at Sun Aug 5 21:23:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:23:00 2001 ] [Author ID1: at Sun Aug 5 21:23:00 2001 ](Key Distribution Center-KDC) [Author ID2: at Wed Oct 4 03:09:00 2000 ]nie powiadamia klientów,[Author ID2: at Wed Oct 4 03:09:00 2000 ] kiedy kończy się okres ważności biletów sesji (session tickets) lub biletów gwarantujących bilety (Ticket-Granting Tickets-[Author ID2: at Wed Oct 4 03:09:00 2000 ]TGTs). Jeśli klient, żądając połączenia z serwerem, przedstawia bilet sesji, który utracił ważność, to serwer odsyła komunikat o błędzie i klient musi uzyskać nowy bilet sesji (session ticket) z Centrum dy[Author ID1: at Sun Aug 5 21:23:00 2001 ]strybucji [Author ID1: at Sun Aug 5 21:23:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:23:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:23:00 2001 ] [Author ID1: at Sun Aug 5 21:23:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:23:00 2001 ] [Author ID1: at Sun Aug 5 21:23:00 2001 ](Key Distribution Center [Author ID1: at Wed Aug 1 18:55:00 2001 ]-[Author ID1: at Wed Aug 1 18:55:00 2001 ][Author ID1: at Wed Aug 1 18:55:00 2001 ]KDC). Jednak jeśli połączenie zostało uwierzytelnione, to nie ma znaczenia czy bilet sesji (session ticket) traci ważność w tej sesji. Bilety sesji (session tickets) używane są tylko do uwierzytelniania nowych połączeń z serwerem i operacje w toku nie są przerywane w przypadku utraty ważności biletu sesji (session ticket).

W przypadku, gdy[Author ID2: at Wed Oct 4 03:12:00 2000 ]Jeśli [Author ID2: at Wed Oct 4 03:12:00 2000 ] [Author ID2: at Wed Oct 4 03:12:00 2000 ]klient, żądając od C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 03:12:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:23:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:23:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:23:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:23:00 2001 ] [Author ID1: at Sun Aug 5 21:23:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:23:00 2001 ] [Author ID1: at Sun Aug 5 21:23:00 2001 ](Key Distribution Center-KDC) [Author ID2: at Wed Oct 4 03:12:00 2000 ]biletu sesji (session ticket), przedstawi bilet gwarantujący bilet (Ticket-Granting Ticket-TGT)[Author ID2: at Wed Oct 4 03:12:00 2000 ], który utracił ważność, to [Author ID2: at Wed Oct 4 03:12:00 2000 ]wówczas [Author ID2: at Wed Oct 4 03:12:00 2000 ]C[Author ID2: at Wed Oct 4 03:12:00 2000 ]c[Author ID2: at Wed Oct 4 03:12:00 2000 ]entrum dystrybucji kluczy (Key distribution Center-KDC) [Author ID2: at Wed Oct 4 03:12:00 2000 ](KDC)[Author ID2: at Wed Oct 4 03:12:00 2000 ] [Author ID2: at Wed Oct 4 03:13:00 2000 ]odpowiada komunikatem o błędzie. Klient musi zażądać nowego biletu gwarantującego bilet, jak[Author ID2: at Wed Oct 4 03:13:00 2000 ] (Ticket-Granting Ticket-TGT) [Author ID2: at Wed Oct 4 03:13:00 2000 ]i potrzebny mu jest [Author ID2: at Wed Oct 4 03:13:00 2000 ]będzie [Author ID2: at Wed Oct 4 03:13:00 2000 ]klucz długoterminowy (long-[Author ID2: at Wed Oct 4 03:13:00 2000 ] [Author ID2: at Wed Oct 4 03:13:00 2000 ]term key) użytkownika. Jeśli podczas wstępnego logowania (initial logon process) klient nie zapisał tego klucza w buforze, to może zażądać hasła użytkownika.

Odnawialne bilety protokołu Kerberos

Jednym ze sposobów obrony przeciwko „atakom na klucze sesji” (session keys) jest takie ustanowienie zasad protokołu Kerberos (Kerberos policy), aby maksymalny okres ważności biletu był stosunkowo krótki. Innym ze sposobów obrony jest umożliwienie stosowania biletów odnawialnych (renewable tickets). Kiedy [Author ID2: at Wed Oct 4 03:14:00 2000 ]Gdy [Author ID2: at Wed Oct 4 03:14:00 2000 ]bilety są odnawialne, to [Author ID2: at Wed Oct 4 03:14:00 2000 ]klucze sesji (session keys) są odświeżane okresowo bez wydawania zupełnie nowego biletu. Jeśli zasady protokołu Kerberos (Kerberos policies[Author ID2: at Wed Oct 4 03:14:00 2000 ]y[Author ID2: at Wed Oct 4 03:14:00 2000 ]) zezwalają na stosowanie biletów odnawialnych (renewable tickets), to C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 03:14:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:23:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:23:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:23:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:23:00 2001 ] [Author ID1: at Sun Aug 5 21:23:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:23:00 2001 ] [Author ID1: at Sun Aug 5 21:23:00 2001 ](Key Distribution Center [Author ID2: at Wed Oct 4 03:14:00 2000 ]-[Author ID2: at Wed Oct 4 03:14:00 2000 ][Author ID2: at Wed Oct 4 03:14:00 2000 ]KDC) ustawia znacznik RENEWABLE w każdym bilecie, który wydaje i ustawia w bilecie [Author ID2: at Wed Oct 4 03:14:00 2000 ]nim [Author ID2: at Wed Oct 4 03:14:00 2000 ]dwa czasy ważności (expiration times[Author ID2: at Wed Oct 4 03:15:00 2000 ]). Pierwszy czas ważności (expiration time) [Author ID2: at Wed Oct 4 03:15:00 2000 ]ogranicza okres ważności bieżącej postaci (instance) danego biletu, a drugi czas ważności (expiration time) [Author ID2: at Wed Oct 4 03:15:00 2000 ]ogranicza łączny okres ważności wszystkich postaci (instance) danego biletu.

Czas ważności (expiration time) bieżącej postaci (instance) danego biletu jest zapisany w polu Endtime. Klient, który ma bilet odnawialny musi wysłać go do C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 03:15:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:23:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:23:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:23:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:23:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:23:00 2001 ] (Key Distribution Center-KDC)[Author ID2: at Wed Oct 4 03:15:00 2000 ], aby został odnowiony, zanim osiągnięty zostanie czas zapisany w polu Endtime, przedstawiając także nową wartość uwierzytelniającą (authenticator). Kiedy C[Author ID2: at Wed Oct 4 03:16:00 2000 ]c[Author ID2: at Wed Oct 4 03:16:00 2000 ]entrum dystrybucji kluczy (Key Distribution Center-KDC) [Author ID2: at Wed Oct 4 03:16:00 2000 ]otrzyma bilet do odnowienia, sprawdza drugi, łączny czas ważności (expiration time),[Author ID2: at Wed Oct 4 03:16:00 2000 ] zapisany w polu Renew-till i upewnia się, czy ten czas już nie upłynął. Następnie wydaje nową postać (instance) biletu z późniejszym czasem ważności Endtime i nowym kluczem sesji (session key)[Author ID2: at Wed Oct 4 03:16:00 2000 ].[Author ID2: at Wed Oct 4 03:16:00 2000 ]

Oznacza to, że administrator może ustalić zasady protokołu Kerberos (Kerberos policies[Author ID2: at Wed Oct 4 03:16:00 2000 ]y[Author ID2: at Wed Oct 4 03:16:00 2000 ]), tak aby bilety musiały być odnawiane w stosunkowo krótkich okresach czasu, ponieważ w takich sytuacjach[Author ID2: at Wed Oct 4 03:17:00 2000 ]. Kiedy bilety są odnawiane,[Author ID2: at Wed Oct 4 03:17:00 2000 ] wydawany jest nowy klucz sesji (session key), co minimalizuje straty, które mogłyby powstać w [Author ID2: at Wed Oct 4 03:17:00 2000 ] [Author ID2: at Wed Oct 4 03:18:00 2000 ]wyniku zagrożeń[Author ID2: at Wed Oct 4 03:18:00 2000 ]narażenia na szwank[Author ID2: at Wed Oct 4 03:18:00 2000 ] bezpieczeństwa klucza. Administratorzy mogą również podać stosunkowo długi łączny czas ważności biletu, [Author ID2: at Wed Oct 4 03:19:00 2000 ]. P[Author ID2: at Wed Oct 4 03:19:00 2000 ]p[Author ID2: at Wed Oct 4 03:19:00 2000 ]o upływie którego[Author ID2: at Wed Oct 4 03:19:00 2000 ]tego czasu[Author ID2: at Wed Oct 4 03:19:00 2000 ] bilet traci ostatecznie ważność i nie podlega odnowieniu.

[Author ID2: at Wed Oct 4 03:19:00 2000 ]

Delegowanie uwierzytelniania

W wielowarstwowych (multitier) aplikacjach klient-[Author ID2: at Wed Oct 4 12:52:00 2000 ]-[Author ID2: at Wed Oct 4 03:19:00 2000 ]serwer,[Author ID2: at Wed Oct 4 03:19:00 2000 ] klient łączy się z serwerem, który z kolei musi połączyć się z drugim [Author ID2: at Wed Oct 4 03:19:00 2000 ], wewnętrznym [Author ID2: at Wed Oct 4 03:19:00 2000 ]serwerem, wewnętrznym[Author ID2: at Wed Oct 4 03:19:00 2000 ] (back-end server). Aby do tego doszło, pierwszy serwer musi mieć bilet do drugiego serwera[Author ID2: at Wed Oct 4 03:20:00 2000 ]. Byłoby doskonale, gdyby bilet ograniczał prawo dostępu pierwszego serwera do drugiego serwera [Author ID2: at Wed Oct 4 03:20:00 2000 ]w sytuacjach, w których[Author ID2: at Wed Oct 4 03:20:00 2000 ]do tego, do czego[Author ID2: at Wed Oct 4 03:20:00 2000 ] klient, a nie pierwszy serwer, jest upoważniony.

W protokole Kerberos rozwiązano ten problem za pomocą mechanizmu zwanego delegowaniem [Author ID1: at Sun Aug 5 21:24:00 2001 ]Delegowaniem [Author ID1: at Sun Aug 5 21:24:00 2001 ]uwierzytelniania [Author ID1: at Sun Aug 5 21:24:00 2001 ]Uwierzytelniania[Author ID1: at Sun Aug 5 21:24:00 2001 ] [Author ID1: at Sun Aug 5 21:24:00 2001 ](delegation [Author ID1: at Sun Aug 5 21:24:00 2001 ]Delegation [Author ID1: at Sun Aug 5 21:24:00 2001 ]of authentication[Author ID1: at Sun Aug 5 21:24:00 2001 ]Authentication[Author ID1: at Sun Aug 5 21:24:00 2001 ]), który polega na delegowaniu przez klienta uwierzytelnienia do serwera poprzez poinformowanie C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 03:21:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:24:00 2001 ]entrum dystryb[Author ID1: at Sun Aug 5 21:24:00 2001 ]ucji [Author ID1: at Sun Aug 5 21:24:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:24:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:24:00 2001 ] [Author ID1: at Sun Aug 5 21:24:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:24:00 2001 ] [Author ID1: at Sun Aug 5 21:24:00 2001 ](Key Distribution Center-[Author ID2: at Wed Oct 4 03:21:00 2000 ]([Author ID2: at Wed Oct 4 03:21:00 2000 ]KDC), że serwer jest uprawniony do reprezentowania tego klienta. Jest to [Author ID2: at Wed Oct 4 03:21:00 2000 ]idea podobna do personifikacji (impersonation) występującej w systemie Windows 2000. [Author ID3: at Mon Aug 13 12:59:00 2001 ]

Delegowania można dokonać na dwa sposoby:

Zasady domen protokołu Kerberos (Kerberos domain policies[Author ID2: at Wed Oct 4 03:22:00 2000 ]y[Author ID2: at Wed Oct 4 03:22:00 2000 ]) mogą korzystać tylko z jednej z tych metod.

Bilety pośrednie (proxy tickets)

Kiedy C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 03:22:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:24:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:24:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:24:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:24:00 2001 ] [Author ID1: at Sun Aug 5 21:24:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:24:00 2001 ] [Author ID1: at Sun Aug 5 21:24:00 2001 ](Key Distribution Center [Author ID2: at Wed Oct 4 03:22:00 2000 ]-[Author ID2: at Wed Oct 4 03:22:00 2000 ][Author ID2: at Wed Oct 4 03:22:00 2000 ]KDC) wydaje klientowi bilet gwarantujący bilet (Ticket-[Author ID2: at Wed Oct 4 03:22:00 2000 ] [Author ID2: at Wed Oct 4 03:22:00 2000 ]Granting Ticket [Author ID2: at Wed Oct 4 03:22:00 2000 ]-[Author ID2: at Wed Oct 4 03:22:00 2000 ][Author ID2: at Wed Oct 4 03:22:00 2000 ]TGT), sprawdza, czy zasady protokołu Kerberos (Kerberos policies[Author ID2: at Wed Oct 4 03:23:00 2000 ]y[Author ID2: at Wed Oct 4 03:23:00 2000 ]) dopuszczają używanie biletów pośrednich (proxy tickets). Jeśli tak jest, C[Author ID0: at Thu Nov 30 00:00:00 1899 ]c[Author ID2: at Wed Oct 4 03:23:00 2000 ][Author ID0: at Thu Nov 30 00:00:00 1899 ]C[Author ID1: at Sun Aug 5 21:24:00 2001 ]entrum dystrybucji [Author ID1: at Sun Aug 5 21:24:00 2001 ]Dystrybucji [Author ID1: at Sun Aug 5 21:24:00 2001 ]kluczy[Author ID1: at Sun Aug 5 21:24:00 2001 ] [Author ID1: at Sun Aug 5 21:24:00 2001 ]Kluczy[Author ID1: at Sun Aug 5 21:24:00 2001 ] [Author ID1: at Sun Aug 5 21:24:00 2001 ](Key Distrib[Author ID2: at Wed Oct 4 03:23:00 2000 ]ution Center-KDC) [Author ID2: at Wed Oct 4 03:23:00 2000 ]ustawiaznacznik [Author ID2: at Wed Oct 4 03:23:00 2000 ]PROXIABLE[Author ID2: at Wed Oct 4 03:23:00 2000 ] [Author ID2: at Wed Oct 4 03:23:00 2000 ] [Author ID2: at Wed Oct 4 03:23:00 2000 ]w wydanym danemu klientowi [Author ID2: at Wed Oct 4 03:23:00 2000 ]bilecie gwarantującym bilet (Ticket-Granting Ticket-TGT), wydanym danemu klientowi znacznik [Author ID2: at Wed Oct 4 03:23:00 2000 ]PROXIABLE[Author ID2: at Wed Oct 4 03:23:00 2000 ].

Klient uzyskuje bilet pośredni,[Author ID2: at Wed Oct 4 03:23:00 2000 ] (proxy ticket) [Author ID2: at Wed Oct 4 03:23:00 2000 ]przedstawiając bilet gwarantujący bilet (Ticket-Granting Ticket-[Author ID2: at Wed Oct 4 03:24:00 2000 ]([Author ID2: at Wed Oct 4 03:24:00 2000 ]TGT) usłudze wydawania biletów (Ticket-[Author ID2: at Wed Oct 4 03:24:00 2000 ] [Author ID2: at Wed Oct 4 03:24:00 2000 ]Granting Service [Author ID2: at Wed Oct 4 03:24:00 2000 ]-[Author ID2: at Wed Oct 4 03:24:00 2000 ][Author ID2: at Wed Oct 4 03:24:00 2000 ]TGS) i żądając biletu do serwera wewnętrznego (back-end server). Żądanie wysłane przez klienta zawiera znacznik, który sygnalizuje, że konieczny jest bilet pośredni (proxy ticket), a także nazwę serwera, który będzie reprezentował tego klienta. Kiedy C[Author ID2: at Wed Oct 4 03:24:00 2000 ]c[Author ID2: at Wed Oct 4 03:24:00 2000 ]entrum dystrybucji kluczy (Key Distribution Center-[Author ID2: at Wed Oct 4 03:24:00 2000 ]([Author ID2: at Wed Oct 4 03:24:00 2000 ]KDC) otrzymuje żądanie klienta, tworzy wtedy [Author ID2: at Wed Oct 4 03:24:00 2000 ]bilet dla serwera wewnętrznego (back-end server), ustawia w tym bilecie znacznik PROXY i wysyła z powrotem do klienta. Następnie k[Author ID2: at Wed Oct 4 03:24:00 2000 ]K[Author ID2: at Wed Oct 4 03:24:00 2000 ]lient następnie [Author ID2: at Wed Oct 4 03:24:00 2000 ]wysyła bilet do serwera zewnętrznego (front-end server), który korzysta z tego biletu,[Author ID2: at Wed Oct 4 03:25:00 2000 ] aby uzyskać dostęp do serwera wewnętrznego (back-end server)[Author ID2: at Wed Oct 4 03:25:00 2000 ].

Bilety przekazywane (forwarded tickets)

Jeśli klient chce delegować do serwera zewnętrznego (front-end server) zadanie uzyskiwania biletów dla serwera wewnętrznego (back-end server), to żąda od C[Author ID2: at Wed Oct 4 03:25:00 2000 ]c[Author ID2: at Wed Oct 4 03:25:00 2000 ][Author ID1: at Sun Aug 5 21:25:00 2001 ]entrum dystrybucji kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ]Centrum Dystrybucji Kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ] (Key Distribution Center-[Author ID2: at Wed Oct 4 03:25:00 2000 ]KDC) przekazywalnego (forwardable) biletu gwarantującego bilet (Ticket-Granting Ticket-[Author ID2: at Wed Oct 4 03:25:00 2000 ]TGT). Klient robi to za pomocą komunikatu żądania podprotokołu Authentication Service Exchange, wskazując C[Author ID2: at Wed Oct 4 03:27:00 2000 ]c[Author ID2: at Wed Oct 4 03:27:00 2000 ][Author ID1: at Sun Aug 5 21:25:00 2001 ]entrum dystrybucji kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ]Centrum Dystrybucji Kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ] (Key Distribution Cen[Author ID2: at Wed Oct 4 03:27:00 2000 ]ter-KDC) [Author ID2: at Wed Oct 4 03:27:00 2000 ]nazwę serwera, który będzie działał[Author ID2: at Wed Oct 4 03:27:00 2000 ]ć[Author ID2: at Wed Oct 4 03:27:00 2000 ] w jego imieniu. Jeśli zasady (policy[Author ID2: at Wed Oct 4 03:27:00 2000 ]ies[Author ID2: at Wed Oct 4 03:28:00 2000 ]) protokołu Kerberos zezwalają na przekazywanie (forwarding),[Author ID2: at Wed Oct 4 03:28:00 2000 ] to C[Author ID2: at Wed Oct 4 03:28:00 2000 ]c[Author ID2: at Wed Oct 4 03:28:00 2000 ][Author ID1: at Sun Aug 5 21:25:00 2001 ]entrum dystrybucji kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ]Centrum Dystrybucji Kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ] (Key Distribution Center-[Author ID2: at Wed Oct 4 03:28:00 2000 ]KDC) tworzy bilet gwarantujący bilet (Ticket-Granting Ticket-[Author ID2: at Wed Oct 4 03:28:00 2000 ]TGT) dla serwera zewnętrznego (front-end server)[Author ID2: at Wed Oct 4 03:28:00 2000 ],który jest[Author ID2: at Wed Oct 4 03:28:00 2000 ] używany w imieniu klienta, ustawia znacznik FORWARDABLE i wysyła bilet gwarantujący bilet (Ticket-Granting Ticket-TGT) [Author ID2: at Wed Oct 4 03:28:00 2000 ]z powrotem do klienta. Następnie klient przekazuje ten bilet do serwera zewnętrznego (front-end serwer).

Serwer zewnętrzny (front-end server),[Author ID2: at Wed Oct 4 03:29:00 2000 ] żądając biletu do serwera wewnętrznego (back-end serwer) przedstawia C[Author ID2: at Wed Oct 4 03:29:00 2000 ]c[Author ID2: at Wed Oct 4 03:29:00 2000 ][Author ID1: at Sun Aug 5 21:25:00 2001 ]entrum dystrybucji kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ]Centrum Dystrybucji Kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ] (Key Distribution Center-KDC) [Author ID2: at Wed Oct 4 03:29:00 2000 ]bilet gwarantujący bilet (Ticket-Granting Ticket-TGT) [Author ID2: at Wed Oct 4 03:29:00 2000 ]klienta. Centrum dystrybucji kluczy (Key Distribution Center-KDC) [Author ID2: at Wed Oct 4 03:29:00 2000 ], [Author ID2: at Wed Oct 4 03:29:00 2000 ]wydając bilet,[Author ID2: at Wed Oct 4 03:29:00 2000 ] sprawdza znacznik FORWARDABLE w tym bilecie gwarantującym bilet (Ticket-Granting Ticket-[Author ID2: at Wed Oct 4 03:29:00 2000 ]TGT), ustawia w wydawanym bilecie znacznik FORWARDED i zwraca bilet do serwera zewnętrznego (front-end server)[Author ID2: at Wed Oct 4 03:30:00 2000 ].

Konfigurowanie zasad domeny protokołu Kerberos (Kerberos domain policies[Author ID2: at Wed Oct 4 03:30:00 2000 ]y[Author ID2: at Wed Oct 4 03:30:00 2000 ])

W systemie Windows 2000 zasady (policies[Author ID2: at Wed Oct 4 03:30:00 2000 ]y[Author ID2: at Wed Oct 4 03:30:00 2000 ]) protokołu Kerberos są określane na poziomie domeny i wprowadzane w życie przez C[Author ID2: at Wed Oct 4 03:30:00 2000 ]c[Author ID2: at Wed Oct 4 03:30:00 2000 ][Author ID1: at Sun Aug 5 21:25:00 2001 ]entrum dystrybucji kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ]Centrum Dystrybucji Kluczy[Author ID1: at Sun Aug 5 21:25:00 2001 ] (Key Distribution Center [Author ID2: at Wed Oct 4 03:30:00 2000 ]-[Author ID2: at Wed Oct 4 03:30:00 2000 ][Author ID2: at Wed Oct 4 03:30:00 2000 ]KDC) danej domeny. Zasady (policy) [Author ID2: at Wed Oct 4 03:30:00 2000 ]protokołu Kerberos są zapisane w Active Directory jako podzbiór atrybutów zasad zabezpieczeń domeny (domain security policy). Domyślnie zasady (policies[Author ID2: at Wed Oct 4 03:30:00 2000 ]y[Author ID2: at Wed Oct 4 03:30:00 2000 ]) mogą być konfigurowane tylko przez administratorów sieci ([Author ID2: at Wed Oct 4 03:31:00 2000 ]członków grupy Domain Administrators)[Author ID2: at Wed Oct 4 03:32:00 2000 ]. Do ustawień zasad (policy settings) protokołu Kerberos można uzyskać dostęp:[Author ID2: at Wed Oct 4 03:32:00 2000 ] edytując obiekt zasad grupy (GPO) Zasady dome[Author ID1: at Thu Aug 2 11:48:00 2001 ]ny [Author ID1: at Thu Aug 2 11:48:00 2001 ]Domeny[Author ID1: at Thu Aug 2 11:48:00 2001 ] [Author ID1: at Thu Aug 2 11:48:00 2001 ](D[Author ID2: at Wed Oct 4 03:32:00 2000 ]d[Author ID2: at Wed Oct 4 03:32:00 2000 ][Author ID1: at Thu Aug 2 11:48:00 2001 ]D[Author ID1: at Thu Aug 2 11:48:00 2001 ]omain P[Author ID2: at Wed Oct 4 03:32:00 2000 ]p[Author ID2: at Wed Oct 4 03:32:00 2000 ][Author ID1: at Thu Aug 2 11:48:00 2001 ]P[Author ID1: at Thu Aug 2 11:48:00 2001 ]olicy[Author ID2: at Wed Oct 4 03:32:00 2000 ]ies[Author ID2: at Wed Oct 4 03:32:00 2000 ]), rozwijając gałęzie Konfiguracja komputera [Author ID1: at Thu Aug 2 11:48:00 2001 ]Komputera[Author ID1: at Thu Aug 2 11:48:00 2001 ] [Author ID1: at Thu Aug 2 11:48:00 2001 ](C[Author ID2: at Wed Oct 4 03:32:00 2000 ]c[Author ID2: at Wed Oct 4 03:32:00 2000 ][Author ID1: at Thu Aug 2 11:48:00 2001 ]C[Author ID1: at Thu Aug 2 11:48:00 2001 ]omputer C[Author ID2: at Wed Oct 4 03:32:00 2000 ]c[Author ID2: at Wed Oct 4 03:32:00 2000 ][Author ID1: at Thu Aug 2 11:48:00 2001 ]C[Author ID1: at Thu Aug 2 11:48:00 2001 ]onfiguration), Ustawienia systemu [Author ID1: at Thu Aug 2 11:48:00 2001 ]Systemu [Author ID1: at Thu Aug 2 11:48:00 2001 ]Windows (Windows S[Author ID2: at Wed Oct 4 03:32:00 2000 ]s[Author ID2: at Wed Oct 4 03:32:00 2000 ][Author ID1: at Thu Aug 2 11:48:00 2001 ]S[Author ID1: at Thu Aug 2 11:48:00 2001 ]ettings), Ustawienia zabezpieczeń [Author ID1: at Thu Aug 2 11:48:00 2001 ]Zabezpieczeń [Author ID1: at Thu Aug 2 11:48:00 2001 ](S[Author ID2: at Wed Oct 4 03:33:00 2000 ]s[Author ID2: at Wed Oct 4 03:33:00 2000 ][Author ID1: at Thu Aug 2 11:48:00 2001 ]S[Author ID1: at Thu Aug 2 11:48:00 2001 ]ecurity s[Author ID2: at Wed Oct 4 03:33:00 2000 ][Author ID1: at Thu Aug 2 11:48:00 2001 ]S[Author ID1: at Thu Aug 2 11:48:00 2001 ]S[Author ID2: at Wed Oct 4 03:33:00 2000 ]ettings) i Zasady konta (A[Author ID2: at Wed Oct 4 03:33:00 2000 ]a[Author ID2: at Wed Oct 4 03:33:00 2000 ]ccount P[Author ID2: at Wed Oct 4 03:33:00 2000 ]p[Author ID2: at Wed Oct 4 03:33:00 2000 ]olicies[Author ID2: at Wed Oct 4 03:33:00 2000 ]y[Author ID2: at Wed Oct 4 03:33:00 2000 ]),[Author ID2: at Wed Oct 4 03:33:00 2000 ] a następnie wybierając pozycję Zasady protokołu [Author ID1: at Mon Aug 6 10:21:00 2001 ]Protokołu [Author ID1: at Mon Aug 6 10:21:00 2001 ]Kerberos (Kerberos p[Author ID2: at Wed Oct 4 03:33:00 2000 ][Author ID1: at Thu Aug 2 11:49:00 2001 ]P[Author ID1: at Thu Aug 2 11:49:00 2001 ]P[Author ID2: at Wed Oct 4 03:33:00 2000 ]olicy[Author ID2: at Wed Oct 4 03:33:00 2000 ]ies[Author ID2: at Wed Oct 4 03:33:00 2000 ]), jak przedstawiono to na rysunku 4.8.

[Author ID1: at Wed Aug 1 19:00:00 2001 ]

0x01 graphic
[Author ID1: at Wed Aug 1 19:01:00 2001 ][Author ID1: at Wed Aug 1 19:01:00 2001 ]

[Author ID0: at Thu Nov 30 00:00:00 1899 ]

Rysunek 4.8.[Author ID2: at Wed Oct 4 03:33:00 2000 ] Ustawienia zasad domeny (domain policies[Author ID2: at Wed Oct 4 03:33:00 2000 ]y[Author ID0: at Thu Nov 30 00:00:00 1899 ]) protokołu Kerberos.[Author ID0: at Thu Nov 30 00:00:00 1899 ]

Zasady (policy) [Author ID0: at Thu Nov 30 00:00:00 1899 ] [Author ID2: at Wed Oct 4 03:33:00 2000 ]protokołu[Author ID1: at Sun Aug 5 21:26:00 2001 ] [Author ID1: at Sun Aug 5 21:26:00 2001 ]Prot[Author ID1: at Sun Aug 5 21:26:00 2001 ]okołu[Author ID1: at Sun Aug 5 21:26:00 2001 ] [Author ID1: at Sun Aug 5 21:26:00 2001 ]Kerberos obejmują następujące ustawienia:

Usługodawca obsługi zabezpieczeń Kerberos

Usługodawca [Author ID1: at Wed Aug 1 18:31:00 2001 ]Usługodawca [Author ID1: at Wed Aug 1 18:31:00 2001 ]obsługi [Author ID1: at Sun Aug 5 21:26:00 2001 ]Obsługi [Author ID1: at Sun Aug 5 21:26:00 2001 ]zabezpieczeń[Author ID1: at Sun Aug 5 21:26:00 2001 ] [Author ID1: at Sun Aug 5 21:26:00 2001 ]Zabezpieczeń[Author ID1: at Sun Aug 5 21:26:00 2001 ] [Author ID1: at Sun Aug 5 21:26:00 2001 ](Security Support Provider — SSP[Author ID2: at Wed Oct 4 04:20:00 2000 ]) był wspominany w niniejszym rozdziale kilkakrotnie, ale[Author ID2: at Wed Oct 4 04:20:00 2000 ] razy[Author ID2: at Wed Oct 4 04:20:00 2000 ] bez szczegółowych [Author ID2: at Wed Oct 4 04:20:00 2000 ]wyjaśni[Author ID2: at Wed Oct 4 04:20:00 2000 ]ania co to jest[Author ID2: at Wed Oct 4 04:20:00 2000 ]. Usługodawca obsługi [Author ID1: at Sun Aug 5 21:26:00 2001 ]Obsługi [Author ID1: at Sun Aug 5 21:26:00 2001 ]zabezpieczeń[Author ID1: at Sun Aug 5 21:26:00 2001 ] [Author ID1: at Sun Aug 5 21:26:00 2001 ]Zabezpieczeń[Author ID1: at Sun Aug 5 21:26:00 2001 ] [Author ID1: at Sun Aug 5 21:26:00 2001 ](Security Support Provider-SSP) [Author ID2: at Wed Oct 4 04:22:00 2000 ]jest to biblioteka DLL [Author ID2: at Wed Oct 4 04:24:00 2000 ](Dynamic Link[Author ID2: at Wed Oct 4 04:23:00 2000 ] Library)[Author ID2: at Wed Oct 4 04:23:00 2000 ]DLL[Author ID2: at Wed Oct 4 04:23:00 2000 ] dostarczana z systemem operacyjnym, która jest implementacją protokołu zabezpieczeń (authentication protocol) Kerberos. System Windows 2000 zawiera także usługodawcę obsługi zabezpieczeń (SSP) dla uwierzytelniania za pomocą protokołu NTLM. Obydwie biblioteki są domyślnie pobierane podczas rozruchu systemu przez L[Author ID0: at Thu Nov 30 00:00:00 1899 ]l[Author ID2: at Wed Oct 4 04:24:00 2000 ][Author ID1: at Sun Aug 5 21:26:00 2001 ]L[Author ID1: at Sun Aug 5 21:26:00 2001 ]okalną jednostkę [Author ID1: at Sun Aug 5 21:27:00 2001 ]Jednostkę [Author ID1: at Sun Aug 5 21:27:00 2001 ]certyfikującą[Author ID1: at Sun Aug 5 21:27:00 2001 ] [Author ID1: at Sun Aug 5 21:27:00 2001 ]Certyfikującą[Author ID1: at Sun Aug 5 21:27:00 2001 ] [Author ID1: at Sun Aug 5 21:27:00 2001 ](Local Security Authority-[Author ID2: at Wed Oct 4 04:24:00 2000 ]LSA),[Author ID2: at Wed Oct 4 04:24:00 2000 ] pracującą na komputerze z systemem Windows 2000. Każdy z usługodawców może być użyty do uwierzytelniania logowania sieciowego i połączeń klient-[Author ID2: at Wed Oct 4 12:53:00 2000 ]-[Author ID2: at Wed Oct 4 04:25:00 2000 ]serwer. To, który zostanie zastosowany, zależy od możliwości komputera po drugiej stronie połączenia. Jako pierwszy wybierany jest usługodawca zabezpieczeń (SSP) [Author ID2: at Wed Oct 4 04:25:00 2000 ]Kerberos.

Po tym, jak l[Author ID2: at Wed Oct 4 04:25:00 2000 ][Author ID1: at Sun Aug 5 21:27:00 2001 ]L[Author ID1: at Sun Aug 5 21:27:00 2001 ]L[Author ID0: at Thu Nov 30 00:00:00 1899 ]okalna jednostka [Author ID1: at Sun Aug 5 21:27:00 2001 ]Jed[Author ID1: at Sun Aug 5 21:27:00 2001 ]nostka [Author ID1: at Sun Aug 5 21:27:00 2001 ]certyfikująca[Author ID1: at Sun Aug 5 21:27:00 2001 ] [Author ID1: at Sun Aug 5 21:27:00 2001 ]Certyfikująca[Author ID1: at Sun Aug 5 21:27:00 2001 ] [Author ID1: at Sun Aug 5 21:27:00 2001 ](Local Security Authority-LSA) [Author ID2: at Wed Oct 4 04:25:00 2000 ]ustanowi kontekst zabezpieczeń (security context) dla użytkownika interaktywnego, proces obsługi podpisywania (signing) i pieczętowania (sealing) komunikatów, działający w kontekście zabezpieczeń (security context) użytkownika, może załadować kolejną kopię (instance) usługodawcy [Author ID1: at Sun Aug 5 21:27:00 2001 ]Usługodawcy [Author ID1: at Sun Aug 5 21:27:00 2001 ]obsługi [Author ID1: at Sun Aug 5 21:27:00 2001 ]Obsługi [Author ID1: at Sun Aug 5 21:27:00 2001 ]zabezpieczeń[Author ID1: at Sun Aug 5 21:27:00 2001 ] [Author ID1: at Sun Aug 5 21:27:00 2001 ]Zabezpieczeń[Author ID1: at Sun Aug 5 21:27:00 2001 ] [Author ID1: at Sun Aug 5 21:27:00 2001 ](SSP) Kerberos.

Usługi systemowe (system services) i aplikacje warstwy transportowej (transport-[Author ID2: at Wed Oct 4 04:25:00 2000 ] [Author ID2: at Wed Oct 4 04:25:00 2000 ]level applications) mają dostęp do usługodawców obsługi zabezpieczeń (SSP) [Author ID2: at Wed Oct 4 04:25:00 2000 ]za pomocą interfejsu [Author ID1: at Sun Aug 5 21:27:00 2001 ]Interfejsu [Author ID1: at Sun Aug 5 21:27:00 2001 ]usługodawcy [Author ID1: at Sun Aug 5 21:27:00 2001 ]Usługodawcy [Author ID1: at Sun Aug 5 21:27:00 2001 ]obsługi [Author ID1: at Sun Aug 5 21:27:00 2001 ]Obsługi [Author ID1: at Sun Aug 5 21:27:00 2001 ]zabezpieczeń[Author ID1: at Sun Aug 5 21:27:00 2001 ] [Author ID1: at Sun Aug 5 21:27:00 2001 ]Zabezpieczeń[Author ID1: at Sun Aug 5 21:27:00 2001 ] [Author ID1: at Sun Aug 5 21:27:00 2001 ](Security Support Provider Interface [Author ID2: at Wed Oct 4 04:26:00 2000 ]-[Author ID2: at Wed Oct 4 04:26:00 2000 ][Author ID2: at Wed Oct 4 04:26:00 2000 ]SSPI). Jest to interfejs Win32, który ma funkcje [Author ID2: at Wed Oct 4 04:27:00 2000 ]służy [Author ID2: at Wed Oct 4 04:27:00 2000 ]do wyliczania usługodawców dostępnych w systemie, wyboru jednego z nich i użycia go do [Author ID2: at Wed Oct 4 04:28:00 2000 ]w celu [Author ID2: at Wed Oct 4 04:28:00 2000 ]uzyskania połączenia uwierzytelnionego. Interfejs SSPI omówiono poniżej.

Zastosowanie interfejsu usługodawcy obsługi zabezpieczeń (SSPI)

Interfejs usługodawcy [Author ID1: at Sun Aug 5 21:27:00 2001 ]Usługodawcy [Author ID1: at Sun Aug 5 21:27:00 2001 ]obsługi [Author ID1: at Sun Aug 5 21:27:00 2001 ]Obsługi [Author ID1: at Sun Aug 5 21:27:00 2001 ]zabezpieczeń[Author ID1: at Sun Aug 5 21:27:00 2001 ] [Author ID1: at Sun Aug 5 21:27:00 2001 ]Zabezpieczeń[Author ID1: at Sun Aug 5 21:27:00 2001 ] [Author ID1: at Sun Aug 5 21:27:00 2001 ](SSPI) jest interfejsem Win32 pomiędzy aplikacjami warstwy transportowej a usługodawcami zabezpieczeń sieciowych (network security service providers). Interfejs usługodawcy obsługi zabezpieczeń [Author ID2: at Wed Oct 4 04:40:00 2000 ]SSPI [Author ID2: at Wed Oct 4 04:32:00 2000 ]I[Author ID2: at Wed Oct 4 04:40:00 2000 ]i[Author ID2: at Wed Oct 4 04:40:00 2000 ]ntegruje on [Author ID2: at Wed Oct 4 04:40:00 2000 ]uwierzytelnianie (authentication), spójność i poufność komunikatów z aplikacjami rozproszonymi (distributed applications). Szkielet aplikacji (application framework) modelu obiektowego składników rozproszonych (Distributed Component Object Model-[Author ID2: at Wed Oct 4 04:32:00 2000 ][Author ID2: at Wed Oct 4 04:32:00 2000 ]DCOM) i uwierzytelnione,[Author ID2: at Wed Oct 4 04:40:00 2000 ] zdalne wywołania procedur (authenticated Remote Procedure Calls [Author ID2: at Wed Oct 4 04:39:00 2000 ]-[Author ID2: at Wed Oct 4 04:39:00 2000 ][Author ID2: at Wed Oct 4 04:39:00 2000 ]RPCs) korzystają z usług interfejsu [Author ID1: at Sun Aug 5 21:27:00 2001 ]Interfejsu [Author ID1: at Sun Aug 5 21:27:00 2001 ]usługodawcy [Author ID1: at Sun Aug 5 21:27:00 2001 ]Usługodawcy [Author ID1: at Sun Aug 5 21:27:00 2001 ]obsługi [Author ID1: at Sun Aug 5 21:27:00 2001 ]Obsługi [Author ID1: at Sun Aug 5 21:27:00 2001 ]zabezpieczeń[Author ID1: at Sun Aug 5 21:27:00 2001 ] [Author ID1: at Sun Aug 5 21:27:00 2001 ]Zabezpieczeń[Author ID1: at Sun Aug 5 21:27:00 2001 ] [Author ID1: at Sun Aug 5 21:27:00 2001 ](SSPI) interfejsów wyższego poziomu. Usługi zabezpieczeń interfejsu SSPI są również zintegrowane z interfejsami poziomu aplikacji takimi jak WinSock 2.0 i WinInet.

Na rysunku 4.9.[Author ID2: at Wed Oct 4 04:41:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ] przedstawiono miejsce usług zabezpieczeń interfejsu SSPI w całej strukturze aplikacji rozproszonej.

Interfejs usługodawcy [Author ID1: at Sun Aug 5 21:28:00 2001 ]Usługodawcy [Author ID1: at Sun Aug 5 21:28:00 2001 ]obsługi [Author ID1: at Sun Aug 5 21:28:00 2001 ]Obsługi [Author ID1: at Sun Aug 5 21:28:00 2001 ]zabezpieczeń[Author ID1: at Sun Aug 5 21:28:00 2001 ] [Author ID1: at Sun Aug 5 21:28:00 2001 ]Zabezpieczeń[Author ID1: at Sun Aug 5 21:28:00 2001 ] [Author ID1: at Sun Aug 5 21:28:00 2001 ](SSPI) stanowi warstwę abstrakcji (abstraction layer) pomiędzy protokołami poziomu aplikacji (application-[Author ID2: at Wed Oct 4 04:41:00 2000 ] [Author ID2: at Wed Oct 4 04:41:00 2000 ]level protocol) a protokołami zabezpieczeń (security protocols). Usługi tego [Author ID2: at Wed Oct 4 04:41:00 2000 ]interfejsu usługodawcy obsługi zabezpieczeń ([Author ID0: at Thu Nov 30 00:00:00 1899 ]SSPI)[Author ID0: at Thu Nov 30 00:00:00 1899 ] mogą być używane na kilka[Author ID2: at Wed Oct 4 04:41:00 2000 ]w różny[Author ID2: at Wed Oct 4 04:41:00 2000 ] sposob:

  1. Tradycyjne aplikacje oparte na gniazdach (socket[Author ID2: at Wed Oct 4 04:44:00 2000 ] [Author ID2: at Wed Oct 4 04:45:00 2000 ]based applications) mogą wywoływać procedury [Author ID2: at Wed Oct 4 04:44:00 2000 ]i[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Sun Aug 5 21:28:00 2001 ]I[Author ID1: at Sun Aug 5 21:28:00 2001 ]nterfejsu [Author ID2: at Wed Oct 4 04:44:00 2000 ]u[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Sun Aug 5 21:28:00 2001 ]U[Author ID1: at Sun Aug 5 21:28:00 2001 ]sługodawcy [Author ID2: at Wed Oct 4 04:44:00 2000 ]o[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Sun Aug 5 21:28:00 2001 ]O[Author ID1: at Sun Aug 5 21:28:00 2001 ]bsługi [Author ID2: at Wed Oct 4 04:44:00 2000 ]z[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Sun Aug 5 21:28:00 2001 ]Z[Author ID1: at Sun Aug 5 21:28:00 2001 ]abezpieczeń[Author ID2: at Wed Oct 4 04:44:00 2000 ] (SSPI routines) bezpośrednio i zastosować protokół aplikacji, który przekazuje dane dotyczące bezpieczeństwa [Author ID2: at Wed Oct 4 04:44:00 2000 ]i[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Sun Aug 5 21:28:00 2001 ]I[Author ID1: at Sun Aug 5 21:28:00 2001 ]nterfejsu [Author ID2: at Wed Oct 4 04:44:00 2000 ]u[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Sun Aug 5 21:28:00 2001 ]U[Author ID1: at Sun Aug 5 21:28:00 2001 ]sługodawcy [Author ID2: at Wed Oct 4 04:44:00 2000 ]o[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Sun Aug 5 21:28:00 2001 ]O[Author ID1: at Sun Aug 5 21:28:00 2001 ]bsługi [Author ID2: at Wed Oct 4 04:44:00 2000 ]z[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Sun Aug 5 21:28:00 2001 ]Z[Author ID1: at Sun Aug 5 21:28:00 2001 ]abezpieczeń[Author ID2: at Wed Oct 4 04:44:00 2000 ] (SSPI security[Author ID2: at Wed Oct 4 04:44:00 2000 ] [Author ID2: at Wed Oct 4 04:45:00 2000 ]related data) za pomocą komunikatów żądania i odpowiedzi.[Author ID0: at Thu Nov 30 00:00:00 1899 ]

  2. Aplikacje mogą korzystać z modelu DCOM do wywoływania opcji zabezpieczeń, które zaimplementowano za pomocą uwierzytelnionych zdalnych wywołań procedur (authenticated RPC) i [Author ID2: at Wed Oct 4 04:44:00 2000 ]i[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Sun Aug 5 21:28:00 2001 ]I[Author ID1: at Sun Aug 5 21:28:00 2001 ]nterfejsu [Author ID2: at Wed Oct 4 04:44:00 2000 ]u[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Sun Aug 5 21:28:00 2001 ]U[Author ID1: at Sun Aug 5 21:28:00 2001 ]sługodawcy [Author ID2: at Wed Oct 4 04:44:00 2000 ]o[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Sun Aug 5 21:28:00 2001 ]O[Author ID1: at Sun Aug 5 21:28:00 2001 ]bsługi [Author ID2: at Wed Oct 4 04:44:00 2000 ]z[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Sun Aug 5 21:28:00 2001 ]Z[Author ID1: at Sun Aug 5 21:28:00 2001 ]abezpieczeń[Author ID2: at Wed Oct 4 04:44:00 2000 ] (SSPI) na niższych poziomach. Aplikacje nie wywołują bezpośrednio [Author ID2: at Wed Oct 4 04:44:00 2000 ]tego [Author ID2: at Wed Oct 4 04:45:00 2000 ]interfejsu (SSPI).[Author ID2: at Wed Oct 4 04:44:00 2000 ]

  3. WinSock 2.0[Author ID2: at Wed Oct 4 04:44:00 2000 ] rozs[Author ID2: at Wed Oct 4 04:44:00 2000 ]zerza interfejs gniazd systemu Windows (Windows Sockets interface)[Author ID2: at Wed Oct 4 04:44:00 2000 ],[Author ID2: at Wed Oct 4 04:48:00 2000 ] aby umożliwić usługodawcom transportu (transport provider[Author ID2: at Wed Oct 4 04:44:00 2000 ]s[Author ID2: at Wed Oct 4 04:48:00 2000 ]) ujawnienie funkcji zabezpieczeń (security features). Takie podejście integruje [Author ID2: at Wed Oct 4 04:44:00 2000 ]i[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Mon Aug 6 10:21:00 2001 ]I[Author ID1: at Mon Aug 6 10:21:00 2001 ]nterfejs [Author ID2: at Wed Oct 4 04:44:00 2000 ]u[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Mon Aug 6 10:21:00 2001 ]U[Author ID1: at Mon Aug 6 10:21:00 2001 ]sługodawcy [Author ID2: at Wed Oct 4 04:44:00 2000 ]o[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Mon Aug 6 10:21:00 2001 ]O[Author ID1: at Mon Aug 6 10:21:00 2001 ]bsługi [Author ID2: at Wed Oct 4 04:44:00 2000 ]z[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Mon Aug 6 10:21:00 2001 ]Z[Author ID1: at Mon Aug 6 10:21:00 2001 ]abezpieczeń[Author ID2: at Wed Oct 4 04:44:00 2000 ] (S[Author ID2: at Wed Oct 4 04:44:00 2000 ]SPI) ze stosem sieciowym (network stack) i stanowi wspólny interfejs dla usług zabezpieczeń i transportowych.[Author ID2: at Wed Oct 4 04:44:00 2000 ]

  4. WinInet[Author ID2: at Wed Oct 4 04:44:00 2000 ] jest interfejsem protokołu aplikacji (application protocol interface), który jest przeznaczony do obsługi protokołów zabezpieczeń internetowych (Internet security protocols), takich jak [Author ID2: at Wed Oct 4 04:44:00 2000 ]Secure Socket Layer[Author ID2: at Wed Oct 4 04:44:00 2000 ] (SSL). Obsługa zabezpieczeń WinInet stosuje [Author ID2: at Wed Oct 4 04:44:00 2000 ]i[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Sun Aug 5 21:28:00 2001 ]I[Author ID1: at Sun Aug 5 21:28:00 2001 ]nterfejs [Author ID2: at Wed Oct 4 04:44:00 2000 ]u[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Sun Aug 5 21:28:00 2001 ]U[Author ID1: at Sun Aug 5 21:28:00 2001 ]sługodawcy [Author ID2: at Wed Oct 4 04:44:00 2000 ]o[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Sun Aug 5 21:28:00 2001 ]O[Author ID1: at Sun Aug 5 21:28:00 2001 ]bsługi [Author ID2: at Wed Oct 4 04:44:00 2000 ]z[Author ID2: at Wed Oct 4 04:44:00 2000 ][Author ID1: at Sun Aug 5 21:28:00 2001 ]Z[Author ID1: at Sun Aug 5 21:28:00 2001 ]abezpieczeń[Author ID2: at Wed Oct 4 04:44:00 2000 ] do usługodawcy zabezpieczeń [Author ID2: at Wed Oct 4 04:44:00 2000 ]b[Author ID2: at Wed Oct 4 04:49:00 2000 ]ezpieczny kanał ([Author ID2: at Wed Oct 4 04:44:00 2000 ]s[Author ID2: at Wed Oct 4 04:49:00 2000 ]ecure [Author ID2: at Wed Oct 4 04:44:00 2000 ]c[Author ID2: at Wed Oct 4 04:49:00 2000 ]hannel security provider).[Author ID2: at Wed Oct 4 04:44:00 2000 ]

0x01 graphic
[Author ID3: at Mon Aug 13 12:41:00 2001 ][Author ID3: at Mon Aug 13 12:41:00 2001 ]

Distributed A[Author ID3: at Mon Aug 13 12:41:00 2001 ]pplications[Author ID3: at Mon Aug 13 12:41:00 2001 ] [Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ]-[Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ]A[Author ID2: at Wed Oct 4 04:42:00 2000 ]a[Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ]plikacje rozproszone[Author ID0: at Thu Nov 30 00:00:00 1899 ]

Java Applications, DCOM Applications, Internet Applications, etc[Author ID3: at Mon Aug 13 12:41:00 2001 ] [Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ]-[Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ]A[Author ID2: at Wed Oct 4 04:42:00 2000 ]a[Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ]plikacje Javy, aplikacje DCOM, aplikacje internetowe[Author ID3: at Mon Aug 13 12:41:00 2001 ],[Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ] itp.[Author ID0: at Thu Nov 30 00:00:00 1899 ]

WinSock 2.0 Interface[Author ID3: at Mon Aug 13 12:41:00 2001 ] [Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ]-[Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ]I[Author ID2: at Wed Oct 4 04:42:00 2000 ]i[Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ]nterfejs WinSock 2.0[Author ID0: at Thu Nov 30 00:00:00 1899 ]

SSPI-TCP/IP Provider[Author ID3: at Mon Aug 13 12:41:00 2001 ] [Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ]-[Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ]U[Author ID2: at Wed Oct 4 04:42:00 2000 ]u[Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ]sługodawca SSPI[Author ID3: at Mon Aug 13 12:41:00 2001 ] [Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ]-[Author ID2: at Wed Oct 4 04:42:00 2000 ]-[Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID1: at Wed Aug 1 18:57:00 2001 ][Author ID1: at Wed Aug 1 18:57:00 2001 ][Author ID3: at Mon Aug 13 12:41:00 2001 ] [Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ]TCP/IP[Author ID3: at Mon Aug 13 12:41:00 2001 ]

Security Support Provider Interface (SSPI)[Author ID3: at Mon Aug 13 12:41:00 2001 ] [Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ]-[Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ]I[Author ID2: at Wed Oct 4 04:42:00 2000 ]i[Author ID2: at Wed Oct 4 04:42:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ]nterfejs usługodawcy obsługi zabezpieczeń (SSPI)[Author ID3: at Mon Aug 13 12:41:00 2001 ][Author ID2: at Wed Oct 4 04:49:00 2000 ][Author ID3: at Mon Aug 13 12:41:00 2001 ]

[Author ID3: at Mon Aug 13 12:41:00 2001 ]

Rysunek 4.9.[Author ID2: at Wed Oct 4 04:43:00 2000 ] Interfejs usługodawcy obsługi zabezpieczeń (SSPI) i model bezpieczeństwa systemu Windows.[Author ID0: at Thu Nov 30 00:00:00 1899 ]

Tradycyjne aplikacje oparte na gniazdach ([Author ID2: at Wed Oct 4 04:44:00 2000 ]socket-based applications) mogą wywoływać procedury interfejsu usługodawcy obsługi zabezpieczeń (SSPI routines) bezpośrednio i zastosować protokół aplikacji, który przekazuje dane dotyczące bezpieczeństwa interfejsu usługodawcy obsługi zabezpieczeń (SSPI security-related data) za pomocą komunikatów żądania i odpowiedzi.[Author ID0: at Thu Nov 30 00:00:00 1899 ]

  1. Aplikacje mogą korzystać z modelu DCOM do wywoływania opcji zabezpieczeń, które zaimplementowano za pomocą uwierzytelnionych zdalnych wywołań procedur (authenticated RPC) i interfejsu usługodawcy obsługi zabezpieczeń (SSPI) na niższych poziomach. Aplikacje nie wywołują bezpośrednio interfejsu usługodawcy obsługi zabezpieczeń (SSPI).[Author ID0: at Thu Nov 30 00:00:00 1899 ]

  2. WinSock 2.0 rozszerza interfejs gniazd systemu Windows (Windows Sockets interface) aby umożliwić usługodawcom transportu (transport provider) ujawnienie funkcji zabezpieczeń (security features). Takie podejście integruje interfejs usługodawcy obsługi zabezpieczeń (SSPI) ze stosem sieciowym (network stack) i stanowi wspólny interfejs dla usług zabezpieczeń i transportowych.[Author ID0: at Thu Nov 30 00:00:00 1899 ]

  3. WinInet jest interfejsem protokołu aplikacji (application protocol interface), który jest przeznaczony do obsługi protokołów zabezpieczeń internetowych (Internet security protocols), takich jak Secure Socket Layer (SSL). Obsługa zabezpieczeń WinInet stosuje interfejs usługodawcy obsługi zabezpieczeń (SSPI) do usługodawcy zabezpieczeń Bezpieczny kanał (Secure Channel security provider).[Author ID2: at Wed Oct 4 04:44:00 2000 ]

[Author ID2: at Wed Oct 4 04:49:00 2000 ]

Języki skryptowe,[Author ID2: at Wed Oct 4 04:49:00 2000 ] takie jak vb[Author ID0: at Thu Nov 30 00:00:00 1899 ]VB[Author ID2: at Wed Oct 4 04:53:00 2000 ]script czy js[Author ID0: at Thu Nov 30 00:00:00 1899 ]JS[Author ID2: at Wed Oct 4 04:53:00 2000 ]cript zezwalają programistom na dostęp do interfejsu [Author ID1: at Sun Aug 5 21:28:00 2001 ]Interfejsu [Author ID1: at Sun Aug 5 21:28:00 2001 ]usługodawcy [Author ID1: at Sun Aug 5 21:28:00 2001 ]Usługodawcy [Author ID1: at Sun Aug 5 21:28:00 2001 ]obsługi [Author ID1: at Sun Aug 5 21:28:00 2001 ]Obsługi [Author ID1: at Sun Aug 5 21:28:00 2001 ]zabezpieczeń[Author ID1: at Sun Aug 5 21:29:00 2001 ] [Author ID1: at Sun Aug 5 21:29:00 2001 ]Zabezpieczeń[Author ID1: at Sun Aug 5 21:29:00 2001 ] [Author ID1: at Sun Aug 5 21:29:00 2001 ](SSPI). O ile tworzenie aplikacji wykracza poza zakres niniejszej książki, to administrator zabezpieczeń (security administrator) powinien mimo wszystko [Author ID2: at Wed Oct 4 04:53:00 2000 ]wiedzieć o strukturze interfejsu usługodawcy obsługi zabezpieczeń (SSPI) [Author ID2: at Wed Oct 4 04:53:00 2000 ]i jego miejscu w architekturze systemu Windows 2000.

Interfejs usługodawcy [Author ID1: at Sun Aug 5 21:29:00 2001 ]Usługodawcy [Author ID1: at Sun Aug 5 21:29:00 2001 ]obsługi [Author ID1: at Sun Aug 5 21:29:00 2001 ]Obsługi [Author ID1: at Sun Aug 5 21:29:00 2001 ]zabezpieczeń[Author ID1: at Sun Aug 5 21:29:00 2001 ] [Author ID1: at Sun Aug 5 21:29:00 2001 ]Zabezpieczeń[Author ID1: at Sun Aug 5 21:29:00 2001 ] [Author ID1: at Sun Aug 5 21:29:00 2001 ](SSPI) [Author ID2: at Wed Oct 4 04:55:00 2000 ]stanowi wspólny interfejs pomiędzy aplikacjami warstwy transportowej, takimi jak Microsoft RPC lub program przeadresowujący systemu plików (file system redirector) oraz usługodawcami zabezpieczeń. Dostarcza również mechanizmy,[Author ID2: at Wed Oct 4 04:54:00 2000 ] za pomocą których aplikacje rozproszone mogą wywoływać jednego z wielu usługodawców zabezpieczeń, aby uzyskać połączenie uwierzytelnione, bez znajomości szczegółów protokołu zabezpieczeń.

Interfejs usługodawcy [Author ID1: at Sun Aug 5 21:29:00 2001 ]Usługodawcy [Author ID1: at Sun Aug 5 21:29:00 2001 ]obsługi [Author ID1: at Sun Aug 5 21:29:00 2001 ]Obsługi [Author ID1: at Sun Aug 5 21:29:00 2001 ]zabezpieczeń[Author ID1: at Sun Aug 5 21:29:00 2001 ] [Author ID1: at Sun Aug 5 21:29:00 2001 ]Zabezpieczeń[Author ID1: at Sun Aug 5 21:29:00 2001 ] [Author ID1: at Sun Aug 5 21:29:00 2001 ](SSPI) składa się z czterech rodzajów interfejsów:

  1. Interfejsy do zarządzania danymi uwierzytelniającymi (cr[Author ID1: at Wed Aug 1 18:52:00 2001 ]edential[Author ID1: at Wed Aug 1 18:52:00 2001 ]-[Author ID2: at Wed Oct 4 04:55:00 2000 ] [Author ID2: at Wed Oct 4 04:55:00 2000 ][Author ID1: at Wed Aug 1 18:52:00 2001 ]Credential [Author ID1: at Wed Aug 1 18:52:00 2001 ]management interfaces) — U[Author ID2: at Wed Oct 4 04:55:00 2000 ]u[Author ID2: at Wed Oct 4 04:55:00 2000 ]możliwiają uzyskanie dostępu do danych uwierzytelniających (credentials) — dane,[Author ID2: at Wed Oct 4 04:55:00 2000 ] hasła, bilety,[Author ID2: at Wed Oct 4 04:55:00 2000 ] itd. — lub zwolnienie (free) tego dostępu. Dostępne są następujące metody:

  1. Interfejsy do zarządzania kontekstem (C[Author ID2: at Wed Oct 4 04:56:00 2000 ]c[Author ID2: at Wed Oct 4 04:56:00 2000 ][Author ID1: at Wed Aug 1 18:52:00 2001 ]C[Author ID1: at Wed Aug 1 18:52:00 2001 ]ontext-[Author ID2: at Wed Oct 4 04:56:00 2000 ] [Author ID2: at Wed Oct 4 04:56:00 2000 ]management interfaces) — D[Author ID2: at Wed Oct 4 04:56:00 2000 ]d[Author ID2: at Wed Oct 4 04:56:00 2000 ]ostarczają metody do tworzenia i stosowania kontekstów zabezpieczeń (security contexts). Konteksty te są tworzone zarówno po stronie klienta,[Author ID2: at Wed Oct 4 04:57:00 2000 ] jak i serwera połączenia komunikacyjnego i mogą być używane później z interfejsami obsługi komunikatów (message support interfaces). Dostępne są następujące metody:

  1. Interfejsy obsługi komunikatów (message[Author ID1: at Sun Aug 5 21:29:00 2001 ] [Author ID2: at Wed Oct 4 05:02:00 2000 ][Author ID1: at Sun Aug 5 21:29:00 2001 ]Message [Author ID1: at Sun Aug 5 21:29:00 2001 ]-[Author ID2: at Wed Oct 4 05:02:00 2000 ]support interfaces) — z[Author ID2: at Wed Oct 4 05:02:00 2000 ]Z[Author ID2: at Wed Oct 4 05:02:00 2000 ]awierają usługi zapewniające spójność i poufność komunikacji, które są [Author ID2: at Wed Oct 4 05:02:00 2000 ]oparte na kontekście zabezpieczeń. Dostępne są następujące metody:

  1. Interfejsy do zarządzania pakietami (package[Author ID1: at Sun Aug 5 21:29:00 2001 ]-[Author ID2: at Wed Oct 4 05:03:00 2000 ] [Author ID2: at Wed Oct 4 05:03:00 2000 ][Author ID1: at Sun Aug 5 21:29:00 2001 ]Package- [Author ID1: at Sun Aug 5 21:29:00 2001 ]management interfaces) — Z[Author ID2: at Wed Oct 4 05:03:00 2000 ]z[Author ID2: at Wed Oct 4 05:03:00 2000 ]awierają usługi dla różnych pakietów zabezpieczeń (security packages),[Author ID2: at Wed Oct 4 05:03:00 2000 ] obsługiwanych przez usługodawcę zabezpieczeń (security provider). Dostępne są następujące metody:

Usługodawca zabezpieczeń [Author ID1: at Sun Aug 5 21:30:00 2001 ]Zabezpieczeń[Author ID1: at Sun Aug 5 21:30:00 2001 ] [Author ID1: at Sun Aug 5 21:30:00 2001 ](security [Author ID1: at Sun Aug 5 21:30:00 2001 ]Security [Author ID1: at Sun Aug 5 21:30:00 2001 ]provider[Author ID1: at Sun Aug 5 21:30:00 2001 ]Provider[Author ID1: at Sun Aug 5 21:30:00 2001 ]) to biblioteka dołączana dynamicznie [Author ID2: at Wed Oct 4 05:05:00 2000 ] DLL [Author ID2: at Wed Oct 4 05:05:00 2000 ](d[Author ID2: at Wed Oct 4 05:05:00 2000 ]D[Author ID2: at Wed Oct 4 05:05:00 2000 ]ynamic-[Author ID2: at Wed Oct 4 05:05:00 2000 ] [Author ID2: at Wed Oct 4 05:05:00 2000 ]l[Author ID2: at Wed Oct 4 05:05:00 2000 ]L[Author ID2: at Wed Oct 4 05:05:00 2000 ]ink l[Author ID2: at Wed Oct 4 05:05:00 2000 ]L[Author ID2: at Wed Oct 4 05:05:00 2000 ]ibrary [Author ID2: at Wed Oct 4 05:05:00 2000 ]— DLL[Author ID2: at Wed Oct 4 05:06:00 2000 ]), która jest implementacją interfejsu usługodawcy obsługi zabezpieczeń (interfejs [Author ID2: at Wed Oct 4 05:06:00 2000 ]Security [Author ID2: at Wed Oct 4 05:06:00 2000 ]Support [Author ID2: at Wed Oct 4 05:06:00 2000 ]Provider Interface[Author ID2: at Wed Oct 4 05:06:00 2000 ]) i udostępnia aplikacjom jeden lub kilka pakietów zabezpieczeń (security packages). Pakiet zabezpieczeń SSP przyporządkowuje funkcje interfejsu SSPI do [Author ID2: at Wed Oct 4 05:06:00 2000 ]implementacji protokołu zabezpieczeń (security protocol), właściwej dla danego pakietu,[Author ID2: at Wed Oct 4 05:07:00 2000 ] (package) [Author ID2: at Wed Oct 4 05:07:00 2000 ]takiego jak NTLM, Kerberos czy SSL. Na etapie inicjalizacji identyfikacji określonego pakietu (package) [Author ID2: at Wed Oct 4 05:07:00 2000 ]używana jest nazwa pakietu zabezpieczeń.

Interfejs SSPI pozwala aplikacji na używanie dowolnego, dostępnego w systemie pakietu zabezpieczeń,[Author ID2: at Wed Oct 4 05:07:00 2000 ] (security packages[Author ID2: at Wed Oct 4 05:07:00 2000 ]), [Author ID2: at Wed Oct 4 05:07:00 2000 ]bez zmiany interfejsu do korzystania z usług zabezpieczeń (security services). Interfejs SSPI[Author ID2: at Wed Oct 4 05:08:00 2000 ]Ponadto[Author ID2: at Wed Oct 4 05:08:00 2000 ] nie ustanawia danych uwierzytelniających logowania (logon credentials),[Author ID2: at Wed Oct 4 05:08:00 2000 ] ponieważ zwykle [Author ID2: at Wed Oct 4 05:08:00 2000 ]zazwyczaj [Author ID2: at Wed Oct 4 05:08:00 2000 ]jest to operacja uprzywilejowana, przeprowadzana przez system operacyjny.

Aplikacja może użyć funkcji zarządzania pakietami (package-[Author ID2: at Wed Oct 4 05:08:00 2000 ] [Author ID2: at Wed Oct 4 05:08:00 2000 ]management functions) do prezentowania listy dostępnych pakietów zabezpieczeń (security packages) i wybrania tego, który jest potrzebny. Następnie aplikacja korzysta z funkcji do zarządzania danymi uwierzytelniającymi (credential [Author ID2: at Wed Oct 4 05:08:00 2000 ]-[Author ID2: at Wed Oct 4 05:08:00 2000 ]management functions), aby uzyskać dojście (handle) do danych uwierzytelniających (credentials) użytkownika, w którego imieniu działa. Mając to dojście,[Author ID2: at Wed Oct 4 05:09:00 2000 ] (handle) [Author ID2: at Wed Oct 4 05:08:00 2000 ]aplikacja może skorzystać z funkcji do zarządzania kontekstem (context [Author ID2: at Wed Oct 4 05:09:00 2000 ]-[Author ID2: at Wed Oct 4 05:09:00 2000 ]management functions), aby utworzyć kontekst zabezpieczeń (security context) usługi. Kontekst zabezpieczeń (security context) [Author ID2: at Wed Oct 4 05:09:00 2000 ]jest to struktura danych nieprzejrzysta (opaque data structure), zawierająca dane o zabezpieczeniach odpowiednich dla połączenia, takiego[Author ID2: at Wed Oct 4 05:09:00 2000 ] jak klucz sesji (session key)[Author ID2: at Wed Oct 4 05:09:00 2000 ], czas trwania sesji,[Author ID2: at Wed Oct 4 05:09:00 2000 ] itd. Ostatecznie aplikacja korzysta z kontekstu zabezpieczeń (security context) z funkcjami obsługi komunikatów (message [Author ID2: at Wed Oct 4 05:09:00 2000 ]-[Author ID2: at Wed Oct 4 05:09:00 2000 ]support functions) do[Author ID2: at Wed Oct 4 05:10:00 2000 ]la[Author ID2: at Wed Oct 4 05:10:00 2000 ] zapewnienia integralności i poufności komunikacji podczas trwania połączenia.

Możliwości pakietów zabezpieczeń

Możliwości pakietu zabezpieczeń (security package) określają, jakie usługi dostarcza on danej aplikacji. Obejmują one, np.[Author ID2: at Wed Oct 4 05:10:00 2000 ] na przykład[Author ID2: at Wed Oct 4 05:10:00 2000 ] obsługę uwierzytelniania klienta (client[Author ID2: at Wed Oct 4 05:12:00 2000 ]-[Author ID2: at Wed Oct 4 05:10:00 2000 ]only authentication) [Author ID2: at Wed Oct 4 05:12:00 2000 ]lub [Author ID2: at Wed Oct 4 05:11:00 2000 ]uwierzytelnianie wzajemne (mutual authentication) lub obsługę spójności komunikatów (message integrity) oraz ich [Author ID2: at Wed Oct 4 05:11:00 2000 ]poufności komunikatów [Author ID2: at Wed Oct 4 05:11:00 2000 ](message privacy). Dodatkowo niektóre pakiety są przeznaczone do korzystania tylko z niezawodnych protokołów transportowych (transport protocols),[Author ID2: at Wed Oct 4 05:11:00 2000 ] a nie korzystają [Author ID2: at Wed Oct 4 05:11:00 2000 ]z transportów datagramowych (datagram transports).

Możliwości pakietów zabezpieczeń (security package capabilities),[Author ID2: at Wed Oct 4 05:11:00 2000 ] dostępne w określonym pakiecie,[Author ID2: at Wed Oct 4 05:11:00 2000 ] można uzyskać za pomocą funkcji QuerySecurityPackageInfo. Poniższa lista przedstawia możliwości pakietów zabezpieczeń (security package)[Author ID2: at Wed Oct 4 05:12:00 2000 ].

  1. Możliwości związane z uwierzytelnianiem:

  1. Możliwości związane z transportem:

  1. Możliwości związane z komunikatami:[Author ID2: at Wed Oct 4 05:13:00 2000 ]

W większości przypadków aplikacje wybierają pakiety zabezpieczeń (security packages) na podstawie rodzaju dostępnych możliwości zabezpieczeń, które zaspokajają potrzeby danej aplikacji.

Powyż[Author ID2: at Wed Oct 4 05:13:00 2000 ]s[Author ID2: at Wed Oct 4 05:14:00 2000 ]ze informacje [Author ID2: at Wed Oct 4 05:13:00 2000 ]To wszystko co można napisać [Author ID2: at Wed Oct 4 05:14:00 2000 ]na temat interfejsu SSPI dają jego pełny obraz, [Author ID2: at Wed Oct 4 05:14:00 2000 ]bez wnikania w szczegóły programowania. Więcej informacji [Author ID2: at Wed Oct 4 05:15:00 2000 ]wiadomości [Author ID2: at Wed Oct 4 05:15:00 2000 ]na ten temat można znaleźć w dokumentacji systemu Windows 2000: Books OnLine oraz Technet. Jeśli ktoś chce spróbować samodzielnego [Author ID2: at Wed Oct 4 05:15:00 2000 ]programowania[Author ID2: at Wed Oct 4 05:15:00 2000 ]ć samodzielnie[Author ID2: at Wed Oct 4 05:15:00 2000 ], najpierw niech zapozna się z przykładami zamieszczonymi w Windows 2000 Software Development Kit (SDK).

33 Część I Podstawy obsługi systemu WhizBang (Nagłówek strony)

2 T:\Paweł\r-04.03.doc[Author ID3: at Mon Aug 13 12:34:00 2001 ]C:\Helion\Windows_2000_Security\zwr[Author ID1: at Mon Aug 6 10:07:00 2001 ][Author ID3: at Mon Aug 13 12:34:00 2001 ]ot\Poprawione\r-04.03.doc[Author ID1: at Mon Aug 6 10:07:00 2001 ][Author ID3: at Mon Aug 13 12:34:00 2001 ]C:\Helion\Windows_2000_Security\zwrot\3 po kor. językowej\r-04.03.doc[Author ID1: at Sun Aug 5 21:07:00 2001 ]



Wyszukiwarka

Podobne podstrony:
r-dod.B.05, ## Documents ##, Bezpieczeństwo w Windows 2000. Czarna księga
r-11.05, ## Documents ##, Bezpieczeństwo w Windows 2000. Czarna księga
r-00.05, ## Documents ##, Bezpieczeństwo w Windows 2000. Czarna księga
r-02.05, ## Documents ##, Bezpieczeństwo w Windows 2000. Czarna księga
r-07.05, ## Documents ##, Bezpieczeństwo w Windows 2000. Czarna księga
r-05.05, ## Documents ##, Bezpieczeństwo w Windows 2000. Czarna księga
r-10.05, ## Documents ##, Bezpieczeństwo w Windows 2000. Czarna księga
r-08.05, ## Documents ##, Bezpieczeństwo w Windows 2000. Czarna księga
r-01.05, ## Documents ##, Bezpieczeństwo w Windows 2000. Czarna księga
r-12.05, ## Documents ##, Bezpieczeństwo w Windows 2000. Czarna księga
Bezpieczenstwo w Windows 2000 Czarna ksiega bewibb
Bezpieczenstwo w Windows 2000 Czarna Księga 4
Bezpieczenstwo w Windows 2000 Czarna ksiega bewibb
Bezpieczenstwo w Windows 2000 Czarna ksiega bewibb
Bezpieczenstwo w Windows 2000 Czarna ksiega 2
Bezpieczenstwo w Windows 2000 Czarna ksiega bewibb
Bezpieczenstwo w Windows 2000 Czarna ksiega
Bezpieczenstwo w Windows 2000 Czarna ksiega bewibb

więcej podobnych podstron