Bezpieczenstwo w Windows 2000 Czarna ksiega bewibb


IDZ DO
IDZ DO
PRZYKŁADOWY ROZDZIAŁ
PRZYKŁADOWY ROZDZIAŁ
Bezpieczeństwo
SPIS TRERCI
SPIS TRERCI
w Windows 2000.
KATALOG KSIĄŻEK
KATALOG KSIĄŻEK
Czarna księga
KATALOG ONLINE Autor: Ian McLean
KATALOG ONLINE
Tłumaczenie: Andrzej Będkowski
ISBN: 83-7197-416-7
ZAMÓW DRUKOWANY KATALOG
ZAMÓW DRUKOWANY KATALOG
Tytuł oryginału: Windows 2000 Security. Little Black
Book
Format: B5, stron: 392
TWÓJ KOSZYK
TWÓJ KOSZYK
Książka  Bezpieczeństwo systemu Windows 2000. Czarna księga stanie się niezastąpionym narzędziem dla
DODAJ DO KOSZYKA
DODAJ DO KOSZYKA
specjalistów z dziedziny zabezpieczeń zajmujących się Srodowiskiem systemu Windows 2000. Zawiera wiele
sposobów i wskazówek dotyczących wprowadzania bezpiecznych, lecz użytecznych, zasad sieciowych.
Czytelnik znajdzie w niej informacje przydatne zarówno w niewielkich sieciach (do kilkuset użytkowników),
jak i w sieciach rozległych, z których korzystają wielkie firmy międzynarodowe. Autor odkrywa tajemnice
CENNIK I INFORMACJE
CENNIK I INFORMACJE
usług katalogowych Active Directory, zasad grupowych, protokołów zabezpieczeń, szyfrowania, zabezpieczeń
z kluczem publicznym, certyfikatów zabezpieczeń, kart elektronicznych, zabezpieczeń protokołu IP,
wirtualnych sieci prywatnych i programów narzędziowych związanych z bezpieczeństwem systemu
ZAMÓW INFORMACJE
ZAMÓW INFORMACJE
Windows 2000.
O NOWORCIACH
O NOWORCIACH
Nie zwlekaj, lecz kup tę książkę, by:
zastosować Active Directory do ustanawiania zasad zabezpieczeń użytkownika, grupy i komputera;
skonfigurować elastyczne zasady zabezpieczeń za pomocą obiektów zasad grupowych;
ZAMÓW CENNIK
ZAMÓW CENNIK
delegować zadania związane z bezpieczeństwem systemu bez naruszania zasad domeny;
zainstalować systemy zabezpieczeń z kluczem publicznym i kluczem tajnym;
zastosować protokół zabezpieczeń Kerberos 5;
CZYTELNIA wprowadzić szyfrowanie plików i folderów oraz zasady odzyskiwania foldera zaszyfrowanego;
CZYTELNIA
zainstalować jednostkę certyfikującą i wydawać certyfikaty;
wprowadzić zasady logowania się za pomocą kart elektronicznych;
FRAGMENTY KSIĄŻEK ONLINE
FRAGMENTY KSIĄŻEK ONLINE
korzystać z narzędzi do tworzenia oprogramowania dla kart elektronicznych;
wprowadzić zabezpieczenia internetowe za pomocą odwzorowywania certyfikatów oraz korzystania
z wirtualnych sieci prywatnych;
wprowadzić zabezpieczenia na poziomie sieci za pomoca protkołu IPSec;
korzystać z narzędzi programowych do konfigurowania zabezpieczeń.
Oprócz wyjaSnienia powyższych zgadnień, czytelnik może liczyć na:
proste, opisane krok po kroku, rozwiązania problemów związanych z bezpieczeństwem systemu
Windows 2000;
fachowe porady praktyczne umożliwiające osiągnięcie równowagi pomiędzy bezpieczeństwem
systemu a użytecznoScią systemu;
specjalistyczne wskazówki pomagające w podniesieniu kwalifikacji administratora zabezpieczeń.
Książka ta jest przeznaczona dla:
administratorów sieci i administratorów zabezpieczeń,
informatyków zajmujących się instalowaniem sieci bezpiecznych.
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
O Autorze ..............................................................................................11
Przedmowa............................................................................................13
Bezpieczeństwo w systemie Windows 2000............................................................. 14
Dla kogo jest przeznaczona niniejsza książka?......................................................... 14
Nowości w systemie zabezpieczeń Windows 2000 .................................................. 15
Układ książki ............................................................................................................. 15
W jaki sposób korzystać z niniejszej książki ............................................................ 17
Rozdział 1. Bezpiecze stwo w systemie Windows 2000 ...........................................19
W skrócie................................................................................................................... 20
Active Directory w systemie Windows 2000 .....................................................................20
Zabezpieczenia rozproszone i protokoły zabezpieczeń......................................................21
Korzystanie z kart inteligentnych .......................................................................................22
Szyfrowanie ........................................................................................................................23
Bezpieczeństwo protokołu IP .............................................................................................23
Wirtualne sieci prywatne ....................................................................................................24
Narządzia do konfigurowania i analizowania zabezpieczeń ..............................................24
Bezpośrednie rozwiązania ......................................................................................... 25
Struktura Active Directory .................................................................................................25
Zintegrowane zarządzanie kontami zabezpieczeń..............................................................26
Wykorzystywanie obustronnych przechodnich relacji zaufania ........................................27
Delegowanie administrowania............................................................................................29
Zastosowanie Listy kontroli dostąpu do precyzyjnego ustalania praw dostąpu.................30
Zastosowanie protokołów zabezpieczeń.............................................................................31
Zastosowanie interfejsu dostawcy zabezpieczeń................................................................32
Zastosowanie protokołu uwierzytelniania Kerberos 5 .......................................................34
Zastosowanie certyfikatów z kluczem publicznym
do zapewnienia bezpieczeństwa w Internecie..................................................................38
Implementowanie dostąpu miądzy przedsiąbiorstwami.....................................................43
Rozwiązania na skalą całego przedsiąbiorstwa ..................................................................44
Zastosowanie danych uwierzytelniających protokołu NTLM............................................45
Zastosowanie danych uwierzytelniających
w przypadku stosowania protokołu Kerberos ..................................................................45
Zastosowanie par kluczy prywatny-publiczny i certyfikatów .................................................45
Zastosowanie protokołu IPSec ...........................................................................................47
Zastosowanie Wirtualnych sieci prywatnych .....................................................................48
Zastosowanie narządzi do konfigurowania zabezpieczeń ..................................................49
Zmiana systemu z Windows NT 4 na Windows 2000 .......................................................51
6 Bezpieczeństwo w Windows 2000. Czarna księga
Rozdział 2. Active Directory i Lista kontroli dost pu.................................................53
W skrócie................................................................................................................... 53
Active Directory w systemie Windows 2000 .....................................................................53
Bezpośrednie rozwiązania ......................................................................................... 56
Obsługa standardów otwartych...........................................................................................56
Obsługa standardowych formatów nazw............................................................................57
Zastosowanie interfejsów API............................................................................................58
Zastosowanie programu Windows Scripting Host .............................................................61
Możliwości rozbudowy ......................................................................................................64
Zastosowanie zabezpieczeń rozproszonych .......................................................................69
Zastosowanie rozszerzenia ustawienia zabezpieczeń edytora zasad grupy........................70
Analiza domyślnych ustawień kontroli dostąpu .................................................................72
Analiza członkostwa w grupach domyślnych.....................................................................76
Przełączanie pomiądzy kontekstami użytkowników ..........................................................78
Synchronizacja komputerów po aktualizacji systemu
z domyślnymi ustawieniami zabezpieczeń ......................................................................78
Zastosowanie przystawki Szablony zabezpieczeń..............................................................79
Zastosowanie Edytora listy kontroli dostąpu......................................................................82
Rozdział 3. Zasady grup ..........................................................................................85
W skrócie................................................................................................................... 86
Możliwości zasad grup i korzyści z ich stosowania ...........................................................86
Zasady grup a usługi Active Directory...............................................................................87
Rozwiązania natychmiastowe ................................................................................... 90
Aączenie zasad grup ze strukturą Active Directory............................................................90
Konfigurowanie przystawki Zarządzanie Zasadami grup ..................................................91
Dostąp do zasad grup domeny lub jednostki organizacyjnej..............................................92
Tworzenie obiektu zasad grup ............................................................................................93
Edycja obiektu zasad grup ..................................................................................................95
Nadawanie użytkownikowi prawa do logowania sią lokalnie na kontrolerze domeny......96
Zarządzanie Zasadami grup................................................................................................97
Dodawanie lub przeglądanie obiektu zasad grup ...............................................................98
Ustanawianie dziedziczenia i zastąpowania zasad grup...................................................100
Wyłączanie cząści obiektu zasad grupy ...........................................................................103
Dołączanie obiektu zasad grup do wielu lokacji, domen i jednostek organizacyjnych....104
Administrowanie zasadami bazujących na Rejestrze .......................................................106
Przygotowywanie skryptów..............................................................................................110
Ustawianie odpowiednich uprawnień
dla poszczególnych członków grup zabezpieczeń .........................................................112
Dopasowanie zasad do danego komputera za pomocą sprzążenia zwrotnego .................114
Konfigurowanie zasad inspekcji.......................................................................................118
Rozdział 4. Protokoły zabezpiecze ........................................................................121
W skrócie................................................................................................................. 121
Protokoły...........................................................................................................................121
Rozwiązania natychmiastowe ................................................................................. 123
Konfigurowanie protokołów ze wspólnym kluczem tajnym............................................123
Zastosowanie Centrum dystrybucji kluczy.......................................................................126
Podstawowe wiadomości o podprotokołach protokołu Kerberos ....................................129
Uwierzytelnianie logowania .............................................................................................132
Analiza biletów protokołu Kerberos.................................................................................138
Delegowanie uwierzytelniania..........................................................................................141
Konfigurowanie zasad protokołu Kerberos domeny ........................................................142
Zastosowanie interfejsu dostawcy obsługi zabezpieczeń .................................................144
Spis treści 7
Rozdział 5. System szyfrowania plików...................................................................149
W skrócie................................................................................................................. 149
Dlaczego konieczne jest szyfrowanie danych ..................................................................149
System szyfrowania plików..............................................................................................150
Rozwiązania natychmiastowe ................................................................................. 155
Zastosowanie polecenia Cipher ........................................................................................155
Szyfrowanie foldera lub pliku ..........................................................................................156
Odszyfrowywanie foldera lub pliku .................................................................................158
Kopiowanie, przenoszenie i zmiana nazwy zaszyfrowanego foldera lub pliku ...............159
Wykonywanie kopii zapasowych plików lub folderów zaszyfrowanych.........................160
Odtwarzanie zaszyfrowanego foldera lub pliku ...............................................................162
Odtwarzanie plików do innego komputera.......................................................................164
Zabezpieczenia domyślnego klucza odzyskiwania na pojedynczym komputerze ...........167
Zabezpieczanie domyślnego klucza odzyskiwania dla domeny.......................................168
Dodawanie agentów odzyskiwania...................................................................................169
Ustawianie zasad odzyskiwania dla konkretnej jednostki organizacyjnej .......................172
Odzyskiwanie pliku lub foldera........................................................................................172
Wyłączanie systemu szyfrowania plików dla określonego zestawu komputerów ...........173
Rozdział 6. Klucze publiczne ..................................................................................175
W skrócie................................................................................................................. 175
Kryptografia z kluczem publicznym ...................................................................................175
Ochrona i określanie zaufania do kluczy kryptograficznych ...........................................177
Składniki Infrastruktury klucza publicznego systemu Windows 2000 ............................179
Rozwiązania natychmiastowe ................................................................................. 182
Uaktywnianie klientów domeny .......................................................................................182
Stosowanie zabezpieczeń z kluczem publicznym systemu Windows 2000.....................188
Ustawianie zabezpieczeń sieci Web .................................................................................190
Zastosowanie uwierzytelniania za pomocą klucza publicznego
w programie Internet Explorer .......................................................................................191
Konfigurowanie programu Microsoft Outlook,
aby korzystał z protokołu Secure Sockets Layer ...........................................................193
Konfigurowanie zabezpieczeń poczty elektronicznej z zastosowaniem
klucza publicznego.........................................................................................................194
Konfigurowanie zabezpieczeń z zastosowaniem klucza publicznego
dla programu Outlook Express.......................................................................................195
Konfigurowanie zabezpieczeń z zastosowaniem klucza publicznego
dla programu Microsoft Outlook....................................................................................200
Uzyskiwanie współdziałania ............................................................................................202
Rozdział 7. Usługi certyfikatów..............................................................................205
W skrócie................................................................................................................. 205
Certyfikaty ........................................................................................................................205
Instalowanie urządu certyfikacji w przedsiąbiorstwie......................................................208
Relacja zaufania w strukturach hierarchicznych z wieloma urządami certyfikacji..........209
Rozwiązania natychmiastowe ................................................................................. 210
Instalowanie urządu certyfikacji.......................................................................................210
Zastosowanie stron internetowych usług certyfikatów.....................................................213
Instalowanie certyfikatów urządów certyfikacji.................................................................215
Żądanie certyfikatów zaawansowanych ...........................................................................219
Rejestrowanie za pomocą pliku żądania w formacie PKCS #10......................................222
Konfigurowanie relacji zaufania pomiądzy domeną
a zewnątrznym urządem certyfikacji..............................................................................223
Instalowanie automatycznego żądania certyfikatów dla komputerów .............................224
8 Bezpieczeństwo w Windows 2000. Czarna księga
Uruchamianie i zatrzymywanie usług certyfikatów .........................................................225
Wykonywanie kopii zapasowych i odtwarzanie usług certyfikatów................................226
Wyświetlanie dziennika i bazy danych usług certyfikatów..............................................228
Odwoływanie wydanych certyfikatów i publikowanie Listy odwołań certyfikatów .......230
Konfigurowanie modułów zasad i modułów zakończenia dla usług certyfikatów ..........232
Rozdział 8. Mapowanie certyfikatów do kont u ytkowników....................................235
W skrócie................................................................................................................. 235
Dlaczego konieczne jest mapowanie certyfikatów...........................................................235
Rodzaje mapowania..........................................................................................................236
Gdzie dokonywane jest mapowanie?................................................................................237
Rozwiązania natychmiastowe ................................................................................. 238
Instalowanie certyfikatu użytkownika..............................................................................238
Eksportowanie certyfikatu ................................................................................................241
Instalowanie certyfikatu urządu certyfikacji ....................................................................243
Konfigurowanie Active Directory, dla mapowania głównej nazwy użytkownika...........244
Konfigurowanie Active Directory, dla mapowania jeden-do-jednego.............................249
Konfigurowanie Internetowych usług informacyjnych (IIS)
dla mapowania jeden-do-jednego...................................................................................250
Konfigurowanie Active Directory, dla mapowania wiele-do-jednego.............................252
Konfigurowanie Internetowych usług informacyjnych (IIS)
dla mapowania wiele-do-jednego...................................................................................253
Testowanie mapowania ....................................................................................................254
Rozdział 9. Karty inteligentne ................................................................................259
W skrócie................................................................................................................. 259
Co to jest karta inteligentna? ............................................................................................259
Współdziałanie kart inteligentnych ..................................................................................261
Obsługiwane karty inteligentne ........................................................................................263
Obsługiwane czytniki kart inteligentnych ........................................................................264
Rozwiązania natychmiastowe ................................................................................. 265
Instalowanie czytników kart inteligentnych .....................................................................265
Instalowanie stacji rejestrowania kart inteligentnych.......................................................267
Wydawanie kart inteligentnych ........................................................................................270
Logowanie za pomocą kart inteligentnych .......................................................................273
Wdrażanie kart inteligentnych..........................................................................................278
Rozwiązywanie problemów związanych z kartami inteligentnymi .................................280
Zabezpieczanie stacji rejestrowania kart inteligentnych ..................................................282
Umieszczanie aplikacji na kartach inteligentnych............................................................283
Zastosowanie pakietu Smart Card Software Development Kit...........................................284
Zastosowanie interfejsów API firmy Microsoft ...............................................................289
Zastosowanie interfejsu Java Card API 2.1......................................................................291
Zastosowanie osnowy aplikacji OpenCard.......................................................................292
Rozdział 10. Zabezpieczenia protokołu IP.................................................................295
W skrócie................................................................................................................. 295
Zabezpieczenia za pomocą IP Security ............................................................................295
Właściwości IPSec............................................................................................................296
Skojarzenia zabezpieczeń .................................................................................................298
Rozwiązania natychmiastowe ................................................................................. 300
Analiza działania IPSec ....................................................................................................300
Ustawienia IPSec ..............................................................................................................301
Konfigurowanie IPSec na pojedynczych komputerach....................................................305
Konfigurowanie IPSec dla domeny ..................................................................................309
Spis treści 9
Zmiana metody zabezpieczeń...........................................................................................310
Konfigurowanie IPSec dla jednostki organizacyjnej........................................................311
Rozdział 11. Wirtualne sieci prywatne......................................................................315
W skrócie................................................................................................................. 315
Zastosowanie Wirtualnych sieci prywatnych ...................................................................315
Tunelowanie .....................................................................................................................316
Uwierzytelnianie...............................................................................................................318
Porównanie protokołów PPTP i L2TP .............................................................................319
Protokół RADIUS.............................................................................................................320
Rozwiązania natychmiastowe ................................................................................. 321
Określanie strategii Wirtualnych sieci prywatnych..........................................................321
Konfigurowanie serwera VPN..........................................................................................326
Konfigurowanie serwera VPN..........................................................................................328
Konfigurowanie klienta VPN ...........................................................................................329
Organizowanie kont użytkowników usługi Dostąp zdalny ..............................................331
Tworzenie zasad dostąpu zdalnego dla połączeń VPN router-router...............................332
Włączanie uwierzytelniania wzajemnego.........................................................................333
Automatyczne uzyskiwanie certyfikatu komputera..........................................................334
Dodawanie portów L2TP i PPTP .....................................................................................335
Konfigurowanie serwera usługi RADIUS ........................................................................336
Rozdział 12. Narz dzia do konfigurowania i analizowania zabezpiecze ........................337
W skrócie................................................................................................................. 337
Narządzia do konfigurowania...........................................................................................337
Ustawienia szablonów zabezpieczeń................................................................................339
Skonfigurowane wstąpnie Szablony zabezpieczeń ..........................................................340
Rozwiązania natychmiastowe ................................................................................. 342
Tworzenie i analizowanie konfiguracji zabezpieczeń ......................................................342
Edytowanie konfiguracji zabezpieczeń ............................................................................344
Eksportowanie konfiguracji zabezpieczeń .......................................................................346
Edytowanie Szablonów zabezpieczeń ..............................................................................347
Zastosowanie polecenia Secedit .......................................................................................349
Dodatek A Słownik ...............................................................................................355
Dodatek B Podstawowe informacje .......................................................................369
Polecenia uruchamiane z linii poleceń .................................................................... 369
Dokumenty RFC...................................................................................................... 369
Grupy i organizacje ................................................................................................. 370
yródła informacji..................................................................................................... 371
Strona powitalna usług certyfikatów Microsoftu...................................................... 372
Magazyny certyfikatów CryptoAPI ........................................................................ 372
Zawartość biletu protokołu Kerberos ...................................................................... 372
Domyślne ustawienia zabezpieczeń ........................................................................ 374
Zdefiniowane wstąpnie szablony zabezpieczeń ...................................................... 374
Host skryptów Cscript ............................................................................................. 375
Program narządziowy Cipher.................................................................................. 376
Polecenie Secedit..................................................................................................... 377
Skorowidz............................................................................................379
Rozdział 4.
W tym rozdziale:
Konfigurowanie protokołów ze wspólnymi kluczami tajnymi.
Zastosowanie Centrum dystrybucji kluczy.
Podstawowe wiadomości o podprotokołach protokołu Kerberos.
Analiza biletów protokołu Kerberos.
Delegowanie uwierzytelniania.
Konfigurowanie zasad domeny protokołu Kerberos.
Zastosowanie interfejsu dostawcy obsługi zabezpieczeń.
W skrócie
Protokoły
Protokoły są zasadniczą cząścią każdego systemu zabezpieczeń, a podstawowe wiado-
mości o protokołach zastosowanych w systemie Windows 2000 są koniecznym ele-
mentem wyposażenia administratora. Jednak protokołów nie konfiguruje sią od razu,
jak np. Active Directory czy zasady grup. Przed przystąpieniem do konfigurowania
protokołu, 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 i jednocześnie mniej gotowych rozwiązań i opisów czynności.
Nie jest to bynajmniej złe  pokazna wiedza o protokołach zabezpieczeń jest konieczna.
Zabezpieczenia warstwy transportowej oparte na protokole Secure Sockets Layer 3
(SSL 3/TLS) opisano w rozdziale 6., przy okazji omawiania certyfikatów z kluczem
publicznym. Zabezpieczenia protokołu IP na poziomie sieci omówiono w rozdziale 10.
Pozostaje NT LAN Manager (NTLM) i protokół Kerberos 5. Protokołu NTLM używa
sią, aby zapewnić zgodność wsteczną z poprzednimi wersjami sieciowych systemów
operacyjnych Microsoftu, 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: Na stronie:
Ustawianie zabezpiecze sieci Web 190
122 Bezpiecze stwo w Windows 2000. Czarna ksi ga
Porównanie protokołów NTLM i Kerberos
Dostawca zabezpieczeń NTLM w celu uwierzytelniania korzysta z procedury wyzwanie-
odpowiedz. Dostawca zabezpieczeń zna hasło danego użytkownika lub, ściślej mówiąc,
wyciąg uzyskany za pomocą funkcji mieszającej MD4. Za pomocą funkcji mieszającej
MD4 szyfruje losowo wygenerowany blok danych i odsyła go do klienta (wyzwanie 
challenge). Nastąpnie klient rozszyfrowuje blok danych i przesyła z powrotem do ser-
wera. Jeśli klient również zna prawidłowe hasło, dane zostaną rozszyfrowane poprawnie
i serwer zarejestruje danego klienta jako uwierzytelnionego. Z kolei dostawca zabezpie-
czeń generuje niepowtarzalny znacznik dostąpu (access token), który jest przesyłany do
klienta, aby korzystał z niego w przyszłości. Kolejne uwierzytelnienia klienta dokony-
wane są na podstawie tego znacznika i dostawca zabezpieczeń NTLM nie musi powta-
rzać procedury uwierzytelniania wyzwanie-odpowiedz.
MD2, MD4 i MD5 s algorytmami wyznaczania funkcji mieszaj cej wiadomo ci
opracowanych dla potrzeb aplikacji tworz cych podpisy cyfrowe, w których du y blok
wiadomo ci 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 RFC od 1319 do 1321. Wi cej
informacji dost pnych jest na stronie internetowej RSA Laboratory www.rsasecurity.com/
rsalabs/, a szczególnie pod adresem www.rsasecurity.com/rsalabs/faq/3-6-6.html.
Protokół Kerberos korzysta z idei biletów pośrednich (proxy tickets). Wezmy pod uwagą,
np. proces A, który wywołuje aplikacją B. Nastąpnie aplikacja B staje sią personifikacją
procesu 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, a nie A, po-
nieważ uprawnienia dotyczące zabezpieczeń procesu A nie zostaną delegowane do apli-
kacji C. Prawdziwe delegowanie  takie, jakie zapewnia protokół Kerberos  oznacza,
że jeśli aplikacja B, która jest działającym wątkiem (thread) A, wywoła inną aplikacją  C
 to aplikacja C może być personifikacją A. Aplikacja B posiada bilet pośredni (proxy
ticket) aplikacji A, który umożliwia personifikacją A nawet, jeśli wywołuje inne aplikacje.
Komputery pracujące pod kontrolą systemów Windows 3.11, Windows 9x lub Win-
dows NT 4 bądą korzystały z protokołu NTLM przy uwierzytelnianiu sieciowym w do-
menach Windows 2000. Komputery pracujące pod kontrolą systemu Windows 2000
bądą korzystały z protokołu NTLM w przypadku uwierzytelniania przez serwery syste-
mu 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:
uwierzytelnianie wzajemne  protokół NTLM pozwala serwerowi na
weryfikowanie tożsamości klientów, ale nie umożliwia klientom sprawdzania
tożsamości serwera ani nie daje serwerowi możliwości zweryfikowania tożsamości
innego serwera. Protokół Kerberos gwarantuje, że obydwie strony połączenia
sieciowego wiedzą, że druga strona połączenia jest tym, za co sią podaje,
szybsze połączenia  w przypadku uwierzytelniania za pomocą protokołu NTLM
serwer aplikacji, aby uwierzytelnić każdego klienta, musi dołączyć sią do kontrolera
domeny. W przypadku uwierzytelniania za pomocą protokołu Kerberos, serwer nie
musi odwoływać sią do kontrolera domeny, ale zamiast tego może uwierzytelnić
klienta, sprawdzając jego dane uwierzytelniające. Klienci uzyskują dane
uwierzytelniające dla danego serwera tylko raz, a potem korzystają z nich ponownie
w trakcie logowania sieciowego,
Rozdział 4. Protokoły zabezpiecze 123



prostsze zarządzanie relacjami zaufania  jedną z głównych korzyści
uwierzytelniania wzajemnego w przypadku protokołu Kerberos jest to, że
relacje zaufania pomiądzy domenami systemu Windows 2000 domyślnie są
obustronne i przechodnie. Jeśli sieć zawiera kilka drzew, to dane uwierzytelniające
 wydane przez domeną w dowolnym drzewie  są uznawane w całym drzewie,
Przechodnia relacja zaufania 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  nie.
uwierzytelnianie delegowane  zarówno protokół NTLM, jak i protokół
Kerberos dostarczają informacji potrzebnych usłudze do personifikowania
swojego klienta lokalnie, ale niektóre aplikacje rozproszone zostały zaprojektowane
tak, że usługa zewnątrzna musi personifikować klientów, łącząc sią z usługami
wewnątrznymi na innym komputerze. Protokół Kerberos zawiera mechanizm
pośredniczący, który pozwala usłudze na personifikowanie klienta, kiedy ten
łączy sią z innymi usługami. Protokół NTLM takiego mechanizmu nie zawiera,
współdziałanie  implementacja protokołu Kerberos w wersji firmy Microsoft
jest oparta na specyfikacji przedstawionej grupie roboczej Internet Engineering
Task Force (IETF). W wyniku tego implementacja protokołu Kerberos w systemie
Windows 2000 stanowi podstawą współdziałania z innymi sieciami (szczególnie
z sieciami zgodnymi ze standardem POSIX), w których do uwierzytelniania
stosuje sią protokół Kerberos.
Protokół uwierzytelniania Kerberos umożliwia wzajemne uwierzytelnianie 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 po-
miądzy klientami a serwerami mają miejsce w otwartej sieci, w której wiąkszość kom-
puterów nie jest zabezpieczonych i  napastnicy mogą monitorować oraz dowolnie mo-
dyfikować pakiety tak, jak w Internecie. Protokół Kerberos gwarantuje, że nadawca
wie, kim jest odbiorca i odwrotnie oraz gwarantuje, że nikt z zewnątrz nie bądzie mógł
sią podawać za żadną ze stron.
Rozwi zania natychmiastowe
Konfigurowanie protokołów ze wspólnym kluczem tajnym
W protokole Kerberos zastosowano uwierzytelnianie wymagające wspólnych kluczy
tajnych. Jeśli tylko dwoje ludzi zna klucz tajny, wówczas każdy z nich może zweryfi-
kować tożsamość drugiej strony przez uzyskanie potwierdzenia, że osoba ta zna ten sam
klucz tajny. Załóżmy, że np. 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.
124 Bezpiecze stwo w Windows 2000. Czarna ksi ga
W jaki sposób Bonnie pokaże, że zna to hasło? Mogłaby zamieścić w zakończeniu
swojej wiadomości coś na wzór bloku podpisu. Jest to sposób prosty i wydajny, ale bą-
dzie bezpieczny tylko wtedy, gdy Bonnie i Clyde bądą pewni, że nikt inny nie czyta ich
poczty. Niestety, wiadomości są przesyłane przez sieć, z której korzysta Szeryf, posia-
dający analizator sieci. Tak wiąc Bonnie, podając jedynie hasło, nie może udowodnić,
że je zna, tylko musi wykazać sią jego znajomością bez przesyłania przez sieć.
W protokole Kerberos rozwiązano ten problem za pomocą kryptografii z kluczem taj-
nym. Zamiast współdzielenia hasła, partnerzy komunikacji współdzielą klucz i stosują
go do weryfikowania tożsamości drugiej strony. Klucz wspólny musi być symetryczny.
Innymi 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  rozszy-
frowując te dane. Uwierzytelnianie za pomocą klucza tajnego rozpoczyna sią, gdy jedna
ze stron przedstawi wartość uwierzytelniającą w postaci cząści danych zaszyfrowanych
za pomocą klucza tajnego. Zestaw danych do tworzenia wartości uwierzytelniającej za
każdym razem musi być inny, w przeciwnym razie stara wartość uwierzytelniająca mo-
głaby być wykorzystana ponownie przez kogoś, komu udałoby sią podsłuchać wymianą
danych. Po otrzymaniu wartości uwierzytelniającej odbiorca odszyfrowuje ją. Jeśli od-
szyfrowanie przebiegło pomyślnie, to odbiorca wie, że osoba przedstawiająca tą war-
tość zna właściwy klucz. Tylko dwoje ludzi ma właściwy klucz; odbiorca jest jedną
z nich, wiąc osoba przedstawiająca wartość uwierzytelniającą musi być tą drugą.
Przyj to, e dwie i tylko dwie osoby posiadaj klucz tajny. Je li byłby on znany osobie
trzeciej  przestałby być tajnym.
Jeśli dane są pobierane z zaufanego zródła, odbiorca musi upewnić sią, czy zródło jest
tym, czym rzekomo jest oraz czy informacje nie zostały po drodze sfałszowane. Nie jest to
mało znaczący problem, ale parametry są ustalone i można znalezć 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 wza-
jemne, pojawiają sią nowe problemy, zwłaszcza gdy dochodzi do współdzielenia kluczy
tajnych i konieczne jest zastosowanie nowych narządzi do rozwiązania tych problemów.
Odbiorca, aby zapewnić uwierzytelnianie wzajemne, może wziąć cząść danych z pierwot-
nej wartości uwierzytelniającej, zaszyfrować je, tworząc nową wartość uwierzytelniającą,
którą wysyła do nadawcy, który z kolei może odszyfrować wartość uwierzytelniającą
odbiorcy i porównać z oryginałem. Jeśli zgadzają sią, nadawca bądzie wiedział, że od-
biorca był w stanie odszyfrować oryginał, a wiąc ma właściwy klucz.
Załóżmy, np. że Bonnie i Clyde zadecydowali, iż do weryfikowania tożsamości drugiej
strony, przed przesłaniem jakichkolwiek informacji, bądą korzystać ze wspólnego klucza
tajnego. Uzgodnili w ten sposób nastąpujący protokół:
1. Bonnie wysyła do Clyde a komunikat zawierający jej imią zapisane otwartym
tekstem oraz wartość uwierzytelniającą zaszyfrowaną za pomocą klucza tajnego
współdzielonego z Clydem. W tym protokole wartość uwierzytelniająca jest
strukturą danych zawierającą dwa pola. Jedno pole zawiera informacje o Bonnie
 np. nazwisko (Parker). Drugie pole zawiera aktualny czas wskazywany na
stacji roboczej Bonnie.
Rozdział 4. Protokoły zabezpiecze 125



2. Clyde otrzymuje wiadomość i za pomocą klucza współdzielonego z Bonnie
odszyfrowuje wartość uwierzytelniającą 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 z czasem wskazywanym przez zegar w jego komputerze.
Jeśli różnica przekracza ustaloną granicą, Clyde odrzuca wartość uwierzytelniającą.
4. Jeśli czas ten mieści sią w dopuszczalnym zakresie, to wartość uwierzytelniająca
prawdopodobnie pochodzi od Bonnie, ale Clyde nadal nie ma na to dowodu.
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 przesłanych przez Bonnie, wtedy może udaremnić
próby powtarzania wcześniejszych wiadomości, odrzucając każdą wiadomość,
której czas jest taki sam lub wcześniejszy niż czas ostatniej wartości
uwierzytelniającej.
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 takim atakom wiele uwagi.
5. Clyde używa klucza współdzielonego z Bonnie do zaszyfrowania czasu
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, ale tylko czas. Gdyby odesłał wszystko,
Bonnie nie miałaby sposobu, aby dowiedzieć sią, czy ktoś udający Clyde a
po prostu nie skopiował wartości uwierzytelniającej z oryginalnego komunikatu
Bonnie i nie wysłał do niej w niezmienionej postaci. Clyde wybrał czas,
ponieważ jest to jedyna niepowtarzalna w komunikacie cząść informacji,
którą przesłała Bonnie.
6. Bonnie otrzymuje odpowiedz od Clyde a, odszyfrowuje ją i porównuje wynik
z czasem zamieszczonym w wartości uwierzytelniającej , którą wysłała.
Jeśli czas zgadza sią, Bonnie może być pewna, że jej wartość uwierzytelniająca
dotarła do kogoś, kto zna klucz tajny, 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, jak i odbiorca mogą
mieć zaufanie co do danego połączenia. Na rysunku 4.1 przedstawiono proces
wzajemnego uwierzytelniania.
Rysunek 4.1.
Uwierzytelnianie
wzajemne
126 Bezpiecze stwo w Windows 2000. Czarna ksi ga
Zastosowanie Centrum dystrybucji kluczy
Poprzednia procedura ma pewien mankament  nie wyjaśnia jak ani skąd Bonnie
i Clyde uzyskali klucz tajny, z którego korzystają podczas sesji. Dla jasności na potrze-
by poprzedniej procedury przyjąto, że Bonnie i Clyde są ludzmi, którzy mogliby sią
spotkać i uzgodnić współdzielony klucz tajny. W rzeczywistości Bonnie może być pro-
gramem-klientem pracującym na stacji roboczej, a Clyde  usługą 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 do każdej usługi, a każda usługa ma mieć klucz dla każdego klienta, to dys-
trybucja kluczy może szybko skomplikować sią i stanowić znaczące zagrożenie.
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 być programami lub usługami, 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, określając trzy jednostki: klienta, serwer
i zaufanym urządem niezależnym, która jest pośrednikiem pomiądzy nimi. Ten zaufany
pośrednik nosi nazwą Centrum dystrybucji kluczy (Key Distribution Center  KDC).
Obecnie zwi ksza si zapotrzebowanie na niezale ne firmy dostarczaj ce klucze tajne
i zarz dzaj ce nimi, które działaj jako zaufani po rednicy. Je li jeste przedsi biorczy
i bierzesz pod uwag mo liwo ć działalno ci komercyjnej, warto to przemy leć.
Usługa Centrum dystrybucji kluczy jest uruchomiona na serwerze, który jest fizycznie za-
bezpieczony i obsługuje bazą danych o kontach wszystkich obiektów typu security prin-
cipal w swoim obszarze, który jest w protokole Kerberos odpowiednikiem domeny syste-
mu Windows 2000. Razem z informacjami o każdym z obiektów typu security principal,
Centrum dystrybucji kluczy przechowuje również klucz szyfru (cryptographic key),
znany tylko obiektowi typu security principal i Centrum dystrybucji kluczy. Klucz ten
jest używany przy wymianie informacji pomiądzy obiektem zabezpieczeń głównych
(security principal) i centrum oraz jest określany jako klucz długoterminowy (long term
key). Zazwyczaj uzyskuje sią go na podstawie hasła logowania obiektu typu security
principal.
Zamknij serwer Centrum dystrybucji kluczy w zabezpieczonym pokoju i nie doł czaj
klawiatury ani monitora. Administruj tym serwerem ze stacji roboczej-klienta
z zainstalowanym odpowiednim oprogramowaniem. Dokonuj inspekcji ka dego
dost pu lub próby dost pu do serwera. Je li twoje Centrum dystrybucji kluczy
nie jest bezpieczne, to nic innego nie jest bezpieczne.
Klient, który chce skomunikować sią z serwerem, wysyła żądanie do Centrum dystry-
bucji kluczy, które przydziela obu stronom unikatowy, krótkoterminowy (short term)
klucz sesji, służący wzajemnemu uwierzytelnianiu. Kopia klucza sesji serwera jest za-
szyfrowana w kluczu długoterminowym serwera. Kopia klucza sesji klienta jest zaszy-
frowana w kluczu długoterminowym klienta.
Rozdział 4. Protokoły zabezpiecze 127



Teoretycznie Centrum dystrybucji kluczy mogłoby wysyłać klucz sesji bezpośrednio do
każdego obiektu typu security principal, którego to dotyczy, ale w praktyce taka proce-
dura byłaby skrajnie 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órzy mogliby żądać obsługi. Za-
rządzanie kluczami 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
Centrum dystrybucji kluczy odpowiada na żądanie klienta, wysyłając do niego kopią
klucza sesji serwera i klucza sesji klienta, jak przedstawiono na rysunku 4.2. Kopia klucza
sesji klienta jest zaszyfrowana za pomocą klucza, który centrum dystrybucji współdzieli
z klientem. Kopia klucza sesji serwera jest umieszczona razem z informacjami o kliencie
w strukturze danych o nazwie bilet sesji (session ticket), a cała struktura jest zaszyfrowa-
na za pomocą klucza, który Centrum dystrybucji kluczy współdzieli z serwerem. Klient
korzysta z biletu sesji, kiedy kontaktuje sią z serwerem.
Rysunek 4.2.
Dystrybucja kluczy
Centrum dystrybucji kluczy nie śledzi swoich komunikatów, aby w ten sposób upewnić
sią, czy dotarły pod właściwy adres  po prostu wydaje bilet. Jeśli komunikat wysłany
przez centrum KDC dostanie sią w niepowołane rące, bezpieczeństwo nie jest zagrożone.
Tylko ktoś, kto zna klucz tajny klienta może odszyfrować kopią klienta klucza sesji i tylko
ktoś, kto zna klucz tajny serwera, może odczytać zawartość biletu.
Klient wyodrąbnia bilet i kopią klienta klucza sesji i umieszcza je w zabezpieczonej
pamiąci podrącznej, znajdującej sią w pamiąci operacyjnej, a nie na dysku. Kiedy klient
chce połączyć sią serwerem, wysyła komunikat zawierający bilet z wartością uwierzy-
telniającą zaszyfrowane za pomocą klucza sesji. Bilet, nadal zaszyfrowany za pomocą
klucza tajnego serwera i wartość uwierzytelniająca razem tworzą dane uwierzytelniające
klienta dla serwera.
Serwer odszyfrowuje bilet sesji za pomocą klucza tajnego, uzyskując w ten sposób klucz
sesji i stosuje go do odszyfrowania wartości uwierzytelniającej klienta. Jeśli wszystko sią
zgadza, serwer wie, że dane uwierzytelniające klienta zostały wydane przez centrum
KDC, które jest jednostką godną zaufania. Jeśli konieczne jest uwierzytelnianie wza-
jemne, serwer używa swojej kopii klucza sesji do zaszyfrowania znacznika czasu (time-
stamp) zawartego w wartości uwierzytelniającej klienta, a wynik przesyła z powrotem
do klienta jako wartość uwierzytelniającą serwera. Czyni to w sposób zaprezentowany
na rysunku 4.3.
128 Bezpiecze stwo w Windows 2000. Czarna ksi ga
Rysunek 4.3.
Uwierzytelnianie
wzajemne
(klient-serwer)
Należy zwrócić uwagą, że serwer nie musi przechowywać klucza sesji, którego używa do
komunikacji z klientem. Klient jest odpowiedzialny za przechowywanie biletu dla serwera
w pamiąci podrącznej danych uwierzytelniających i przedstawianie biletu za każdym ra-
zem, gdy chce uzyskać dostąp do serwera. Kiedy serwer nie potrzebuje już dłużej klucza
sesji, może go odrzucić.
Również klient nie musi zwracać sią do Centrum dystrybucji kluczy za każdym razem,
gdy chce uzyskać dostąp do konkretnego serwera, ponieważ bilety sesji mogą być wy-
korzystane ponownie, o ile nie utraciły ważności. Okres ważności biletu zależy od za-
sad protokołu Kerberos (Kerberos policy) obowiązujących w danej domenie. Zwykle
bilety są ważne 8 godzin. Kiedy użytkownik wylogowuje sią z komputera-klienta, pa-
miąć podrączna danych uwierzytelniających jest opróżniana, a wszystkie bilety sesji i klu-
cze sesji są niszczone.
Zastosowanie biletu przyznaj cego bilet
Dla przykładu przyjmijmy, że Bonnie sią loguje. Najpierw klient Kerberos, działający
na stacji roboczej, zamienia swoje hasło na klucz kryptograficzny (cryptographic key),
stosując jednokierunkową funkcją mieszającą Protokół Kerberos korzysta z algorytmu
funkcji mieszającej DES-CBC-MD5, chociaż dopuszcza sią stosowanie innych algoryt-
mów. Nastąpnie klient Kerberos żąda biletu sesji i klucza sesji, które może zastosować
w kolejnych transakcjach pomiądzy klientem a Centrum dystrybucji kluczy podczas danej
sesji logowania. Centrum KDC szuka w swojej bazie danych Bonnie i odczytuje z od-
powiedniego rekordu bazy danych klucza długoterminowego Bonnie. Proces ten, czyli
wyznaczanie kopii klucza na podstawie hasła i pobieranie kolejnej kopii klucza z bazy
danych, ma miejsce tylko raz  gdy użytkownik loguje sią do sieci.
Centrum dystrybucji kluczy odpowiada na żądanie klienta, zwracając specjalny rodzaj
biletu sesji, który nosi nazwą biletu przyznającego bilet (Ticket Granting Ticket 
TGT). Tak, jak zwykły bilet sesji, bilet przyznający bilet zawiera kopią klucza sesji,
który dana usługa, w tym przypadku Centrum dystrybucji kluczy bądzie stosować do
komunikacji z klientem. Pakiet, który zwraca klientowi bilet przyznający bilet, zawiera
także kopią klucza sesji, który klient może stosować do komunikacji z centrum (KDC).
Bilet przyznający bilet jest zaszyfrowany w kluczu długoterminowym centrum (KDC),
a kopia klienta klucza sesji jest zaszyfrowana w kluczu długoterminowym użytkownika.
W kolejnych wymianach komunikatów z centrum klient korzysta z klucza sesji. Klucz
kryptograficzny uzyskany na podstawie hasła użytkownika nie jest potrzebny i może
być odrzucony. Tak, jak inne klucze sesji, klucz ten jest tymczasowy, ważny tylko do
czasu utraty ważności przez bilet przyznający bilet lub wylogowania sią przez danego
użytkownika. Z tego wzglądu nazywany jest kluczem sesji logowania (logon session key).
Rozdział 4. Protokoły zabezpiecze 129



Klient, przed podjąciem próby połączenia z usługą, szuka w buforze danych uwierzytel-
niających biletu sesji do danej usługi. Jeśli takiego biletu nie ma, klient szuka w buforze
danych uwierzytelniających bilet przyznający bilet. Jeśli ten klucz zostanie znaleziony,
klient pobiera z bufora właściwy klucz sesji logowania, używa go do przygotowania
wartości uwierzytelniającej i wysyła wartość uwierzytelniającą oraz bilet przyznający
bilet do Centrum dystrybucji kluczy razem z żądaniem biletu sesji dla tej usługi. Tak
wiąc uzyskanie dostąpu do centrum nie różni sią niczym od uzyskiwania dostąpu do po-
zostałych usług w domenie  wymagany jest klucz sesji, wartość uwierzytelniająca
i bilet, w tym przypadku jest to bilet przyznający bilet.
Podstawowe wiadomo ci o podprotokołach
protokołu Kerberos
Protokół Kerberos składa sią z trzech podprotokołów:
Authentication Service (AS) Exchange  stosowany przez Centrum dystrybucji
kluczy do przydzielania klientowi klucza sesji logowania i biletu przyznającego
bilet,
Ticket Granting Service (TGS) Exchange  stosowany przez centrum do
przydzielania usłudze klucza sesji usługi (service session key) i biletu sesji,
Client-Server (CS) Exchange  stosowany, gdy klient przedstawia bilet sesji,
aby uzyskać dostąp do usługi.
Aby zrozumieć, w jaki sposób te trzy podprotokoły pracują razem, zobaczmy w jaki sposób
Bonnie  użytkownik stacji roboczej uzyskuje dostąp do Clyde a  usługi sieciowej.
Podprotokół Authentication Service Exchange
Wymiana informacji za pomocą podprotokołu Authentication Service Exchange prze-
biega nastąpująco:
1. Bonnie loguje sią w sieci. Klient Kerberos na stacji roboczej Bonnie zamienia
jej hasło na klucz szyfru i zapisuje go w buforze danych uwierzytelniających.
2. Klient Kerberos wysyła do Centrum dystrybucji kluczy komunikat Kerberos
Authentication Service Request (KRB_AS_REQ). Pierwsza cząść tego komunikatu
identyfikuje użytkownika, Bonnie i nazwą usługi, dla której żąda sią danych
uwierzytelniających  usługi wydającej bilety. Druga cząść komunikatu zawiera
dane do uwierzytelniania wstąpnego, które potwierdzają, że Bonnie zna hasło.
Jest to zwykle znacznik czasu zaszyfrowany za pomocą klucza długoterminowego
Bonnie.
3. Centrum dystrybucji kluczy odbiera komunikat KRB_AS_REQ.
4. Centrum dystrybucji kluczy wyszukuje w swojej bazie danych użytkownika
o nazwie Bonnie, odczytuje jej klucz długoterminowy, odszyfrowuje dane do
uwierzytelniania wstąpnego i ocenia zawarty w nich znacznik czasu.
Jeśli znacznik czasu jest do przyjącia, Centrum dystrybucji kluczy ma pewność,
że dane do uwierzytelniania wstąpnego zostały zaszyfrowane za pomocą klucza
długoterminowego Bonnie i że klient jest autentyczny.
130 Bezpiecze stwo w Windows 2000. Czarna ksi ga
5. Centrum tworzy dane uwierzytelniające, które klient Kerberos na stacji roboczej
Bonnie może przedstawić usłudze wydawania biletów (Ticket Granting Sernice
 TGS):
tworzy klucz sesji logowania i szyfruje jego kopią za pomocą klucza
długoterminowego Bonnie,
umieszcza w bilecie przyznającym bilet jeszcze jedną kopią klucza sesji
logowania razem z innymi informacjami dotyczącymi Bonnie, takimi jak jej
dane uwierzytelniające,
szyfruje bilet przyznający bilet za pomocą własnego klucza długoterminowego,
wysyła zaszyfrowany klucz sesji logowania i bilet przyznający bilet z powrotem
do klienta w komunikacie Kerberos Authentication Service Reply
(KRB_AS_REP).
6. Klient po odebraniu komunikatu korzysta z klucza, uzyskanego na podstawie
hasła Bonnie, do odszyfrowania jej klucza sesji logowania i zapisuje go
w buforze danych uwierzytelniających. Nastąpnie wyodrąbnia z komunikatu bilet
przyznający bilet i również zapisuje w tym buforze.
Działanie podprotokołu Authentication Service Exchange ilustruje rysunek 4.4.
Rysunek 4.4.
Wymiana komunikatów
podprotokołu
Authentication
Service (AS)
Podprotokół Ticket Granting Service Exchange
Po zakończeniu wymiany informacji przez usługą uwierzytelniania, proces wymiany
komunikatów usługi wydawania biletów 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 Centrum dystrybucji kluczy komunikat Kerberos
Ticket Granting Service Request (KRB_TGS_REQ). Komunikat ten zawiera
nazwą użytkownika, wartość uwierzytelniającą zaszyfrowaną za pomocą klucza
sesji logowania użytkownika, bilet przyznający bilet, uzyskany w procesie
wymiany komunikatów usługi uwierzytelniania oraz nazwą usługi, dla której
użytkownikowi potrzebny jest bilet.
2. Centrum (KDC) odbiera komunikat KRB_TGS_REQ i odszyfrowuje bilet
przyznający bilet za pomocą własnego klucza tajnego, odczytując klucz sesji
logowania Bonnie, który jest używany do odszyfrowania wartości
uwierzytelniającej.
3. Jeśli wartość uwierzytelniająca jest poprawna, to Centrum dystrybucji kluczy
odczytuje z biletu przyznającego bilet dane autoryzacji Bonnie i tworzy
dla klienta (Bonnie) klucz sesji, który jest współdzielony z usługą (Clyde).
Rozdział 4. Protokoły zabezpiecze 131



4. Centrum (KDC) szyfruje jedną kopią tego klucza sesji za pomocą klucza sesji
logowania Bonnie, umieszcza inną kopią w bilecie razem z danymi autoryzacji
Bonnie i szyfruje ten bilet za pomocą klucza długoterminowego Clyde a.
5. KDC wysyła te dane uwierzytelniające z powrotem do klienta w komunikacie
Kerberos Ticket Granting Service Reply (KRB_TGS_REP).
6. Kiedy klient otrzyma odpowiedz, korzysta z klucza sesji logowania Bonnie
do odszyfrowania klucza sesji używanego w przypadku danej usługi i zapisuje
ten klucz w buforze danych uwierzytelniających. Nastąpnie wyodrąbnia bilet
do danej usługi i także zapisuje to w buforze.
Działanie podprotokołu Ticket Granting Service Exchange ilustruje rysunek 4.5.
Rysunek 4.5.
Komunikaty
podprotokołu Ticket
Granting Service
Exchange
Podprotokół Client-Server Exchange
Po zakończeniu wymiany komunikatów usługi wydawania biletów rozpoczyna sią proce-
dura wymiany informacji klient-serwer (CS information exchange):
1. Klient Kerberos na stacji roboczej Bonnie żąda obsługi od Clyde a, wysyłając
mu komunikat Kerberos Application Requests (KRB_AP_REQ). Komunikat ten
zawiera wartość uwierzytelniającą zaszyfrowaną za pomocą klucza sesji danej
usługi, bilet, uzyskany podczas wymiany informacji TGS oraz wstąpnie
skonfigurowany znacznik wskazujący, czy klient wymaga uwierzytelniania
wzajemnego.
2. Clyde odbiera komunikat KRB_AP_REQ, odszyfrowuje bilet i odczytuje dane
autoryzacji Bonnie oraz klucz sesji.
3. Clyde korzysta z klucza sesji do odszyfrowania wartości uwierzytelniającej
Bonnie i ocenia zawarty w niej znacznik czasu.
4. Jeśli wartość uwierzytelniająca jest prawidłowa, Clyde szuka w komunikacie
klienta znacznika uwierzytelniania wzajemnego.
5. Jeśli znacznik jest ustawiony, usługa korzysta z klucza sesji do zaszyfrowania
czasu zawartego w wartości uwierzytelniającej Bonnie, a wynik zwraca
w komunikacie Kerberos Application Reply (KRB_AP_REP).
6. Gdy klient Kerberos na stacji roboczej Bonnie odbiera komunikat
KRB_AP_REP, odszyfrowuje wartość uwierzytelniającą Clyde a za pomocą
klucza sesji współdzielonego z Clydem i porównuje czas przesłany przez usługą
z czasem zawartym w pierwotnej wartości uwierzytelniającej klienta.
132 Bezpiecze stwo w Windows 2000. Czarna ksi ga
7. 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 może być użyty do szyfrowania
danych aplikacji lub też klient i serwer mogą w tym celu współdzielić inny klucz.
Na rysunku 4.6 przedstawiono proces wymiany komunikatów CS.
Rysunek 4.6.
Wymiana
komunikatów CS
Uwierzytelnianie logowania
Podczas logowania do sieci, w której do uwierzytelniania stosuje sią protokół Kerberos,
najpierw otrzymuje sią bilet przyznający bilet, który przedstawia sią, żądając biletów sesji
dla innych usług w domenie. Podczas logowania do domeny Windows 2000 zawsze ko-
nieczny jest przynajmniej jeden bilet sesji  bilet do komputera, do którego użytkownik
sią loguje. Komputery pracujące pod kontrolą systemu Windows 2000 mają własne konta
w domenie, które należy traktować jako konta usług. 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 Se-
rver tego komputera. Przed uzyskaniem dostąpu do którejkolwiek z wyżej wymienio-
nych usług lub jakiejkolwiek innej usługi, pracującej jako system lokalny, należy przed-
stawić bilet sesji dla danego komputera.
Przypuśćmy, że Bonnie ma konto sieciowe w domenie o nazwie Zachód i loguje sią do
komputera o nazwie Clyde, który również ma konto w domenie Zachód. 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 i uzyskuje dostąp do biblio-
teki dołączanej dynamicznie (DLL) 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 Lokalnego zródła zabezpieczeń (Local Se-
curity Authority  LSA) w celu weryfikacji.
Bonnie wpisuje swoją nazwą użytkownika oraz hasło i z listy rozwijalnej wybiera do-
meną Zachód. Po naciśniąciu OK. biblioteka DLL MSGINA zwraca informacje logowania
Bonnie do usługi WinLogon, która  korzystając z wywołania API LsaLogonUser 
wysyła dane do Lokalnego zródła zabezpieczeń (LSA) w celu sprawdzenia.
Lokalne zródło zabezpieczeń (LSA), po otrzymaniu struktury danych z danymi logowania
Bonnie, natychmiast zamienia niezabezpieczone, podane zwykłym tekstem, hasło na
klucz tajny za pomocą jednokierunkowej funkcji mieszającej. Wynik zostanie zapisany
w buforze danych uwierzytelniających, skąd może być pobrany w razie potrzeby do od-
nowienia biletu przyznającego bilet lub uwierzytelniania za pomocą protokołu NTLM
w przypadku serwerów, dla których nie można dokonać autoryzacji za pomocą proto-
kołu Kerberos.
Rozdział 4. Protokoły zabezpiecze 133



Aby sprawdzić informacje logowania Bonnie i ustanowić dla niej sesją logowania na da-
nym komputerze, Lokalne zródło zabezpieczeń musi otrzymać bilet przyznający bilet,
który jest odpowiedni do uzyskania dostąpu do usługi przyznającej bilet oraz bilet sesji
odpowiedni do uzyskania dostąpu do komputera. Lokalne zródło zabezpieczeń otrzy-
muje te bilety, korzystając z usługi Dostawca obsługi zabezpieczeń (Security Support
Provider  SSP), która wymienia komunikaty bezpośrednio z Centrum dystrybucji kluczy
w domenie Zachód.
Kolejność komunikatów jest nastąpująca:
1. Lokalne zródło zabezpieczeń (LSA) wysyła komunikat KRB_AS_REQ do
Centrum dystrybucji kluczy w domenie Zachód. Komunikat zawiera:
nazwą główną użytkownika, Bonnie,
nazwą domeny, Zachód,
dane uwierzytelnienia wstąpnego zaszyfrowane za pomocą klucza tajnego
uzyskanego z hasła Bonnie.
2. Jeśli dane uwierzytelniania wstąpnego są poprawne, wówczas centrum (KDC)
odpowiada komunikatem KRB-AS_REP. Komunikat ten zawiera:
klucz sesji dla Bonnie, który bądzie współdzielony z Centrum dystrybucji
kluczy, zaszyfrowany za pomocą klucza tajnego, uzyskanego z hasła Bonnie,
bilet przyznający bilet dla Centrum dystrybucji kluczy w domenie Zachód
zaszyfrowany za pomocą klucza tajnego Centrum dystrybucji kluczy.
Bilet przyznający bilet zawiera klucz sesji dla centrum (KDC), który bądzie
współdzielony z Bonnie oraz dane autoryzacji dla Bonnie. Dane te zawierają
identyfikator zabezpieczeń (Security Identifier  SID) dla konta Bonnie,
identyfikatory zabezpieczeń dla grup zabezpieczeń w domenie Zachód,
do której należy Bonnie oraz identyfikatory zabezpieczeń dla grup uniwersalnych
(universal groups) w przedsiąbiorstwie, do których należy Bonnie lub jedna z jej
grup domeny.
3. Lokalne zródło zabezpieczeń (LSA) wysyła do Centrum dystrybucji kluczy
w domenie Zachód komunikat KRB_TGS_REQ. Komunikat ten zawiera:
nazwą komputera docelowego, Clyde,
nazwą domeny komputera docelowego, Zachód,
bilet przyznający bilet Bonnie,
wartość uwierzytelniającą zaszyfrowaną za pomocą klucza sesji, który Bonnie
współdzieli z centrum (KDC).
4. Centrum dystrybucji kluczy odpowiada komunikatem KRB_TGS_REP.
Komunikat ten zawiera:
klucz sesji dla Bonnie, który bądzie współdzielony z Clydem., zaszyfrowany
za pomocą klucza sesji Bonnie, który użytkownik ten współdzieli z Centrum
dystrybucji kluczy,
bilet sesji Bonnie do komputera o nazwie Clyde, zaszyfrowany za pomocą
klucza tajnego, który Clyde współdzieli z Centrum dystrybucji kluczy. Bilet
sesji zawiera klucz sesji dla komputera o nazwie Clyde, skopiowany z biletu
przyznającego bilet Bonnie, który bądzie współdzielony z Bonnie oraz dane
autoryzacji.
134 Bezpiecze stwo w Windows 2000. Czarna ksi ga
Gdy Lokalne zródło zabezpieczeń (LSA) otrzymuje bilet sesji Bonnie, odszyfrowuje go
za pomocą klucza tajnego komputera i odczytuje dane autoryzacji Bonnie. Nastąpnie
wysyła zapytania do lokalnej bazy danych SAM (Security Accounts Manager) aby po-
szukać, 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ń, zwrócony przez kwerendą, jest dodawany do listy
uzyskanej z danych autoryzacji biletu. Cała lista jest nastąpnie używana do budowania
znacznika dostąpu, a uchwyt do znacznika dostąpu jest zwracane do usługi WinLogon ra-
zem z identyfikatorem sesji logowania Bonnie i potwierdzeniem, że informacje logowania
są prawidłowe.
WinLogon dla użytkownika o nazwie Bonnie tworzy stacją (window station) i kilka
obiektów pulpitu (desktop objects), dołącza znacznik dostąpu Bonnie i uruchamia po-
włoką (shell process), z której Bonnie korzysta przy pracy interaktywnej z komputerem.
Każda aplikacja, którą Bonnie uruchomi w trakcie swojej sesji logowania, dziedziczy
jej znacznik dostąpu.
Należy zwrócić uwagą, że w trakcie procesu opisanego poprzednio ten sam klucz jest
używany zarówno do szyfrowania, jak i odszyfrowania. Z tego powodu wspólne klucze
tajne stosowane do logowania za pomocą hasła są symetryczne.
Logowanie za pomoc kart inteligentnych
Do obsługi logowania za pomocą kart inteligentnych w systemie Windows 2000 zaim-
plementowano rozszerzenie zakresu funkcji wstąpnej wymiany komunikatów usługi
uwierzytelniania protokołu Kerberos, które dotyczy stosowania klucza publicznego.
Kryptografia klucza publicznego jest niesymetryczna, tzn. konieczne są dwa klucze; jeden
do szyfrowania, a drugi do odszyfrowania. Razem klucze te tworzą parą kluczy prywatny-
publiczny. Klucz prywatny jest znany tylko właścicielowi danej pary kluczy i nie jest nig-
dy współdzielony. Klucz publiczny może być znany każdemu, z kim właściciel bądzie
wymieniał poufne informacje.
Kiedy zamiast hasła stosuje sią kartą inteligentną para kluczy prywatny-publiczny zapi-
sana na karcie inteligentnej użytkownika zastąpuje współdzielony klucz tajny uzyskany
z hasła użytkownika. W przypadku rozszerzenia protokołu Kerberos, dotyczącego klucza
publicznego, wstąpna wymiana komunikatów usługi uwierzytelniania jest zmodyfiko-
wana w ten sposób, że Centrum dystrybucji kluczy szyfruje klucz sesji logowania użyt-
kownika za pomocą publicznej cząści pary kluczy prywatny-publiczny użytkownika.
Klient odszyfrowuje klucz sesji logowania za pomocą prywatnej połowy pary kluczy
prywatny-publiczny.
Logowanie za pomocą kart inteligentnych przebiega w nastąpujący sposób:
1. Użytkownik wkłada kartą inteligentną 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 inteligentnych,
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.
Rozdział 4. Protokoły zabezpiecze 135



3. Użytkownik wpisuje numer PIN (Personal Identification Number).
4. Biblioteka DLL MSGINA wysyła informacje logowania użytkownika do
lokalnego zródła zabezpieczeń, korzystając z wywołania API LsaLogonUser.
5. Lokalne zródło zabezpieczeń (LSA) korzysta z numeru PIN, aby uzyskać dostąp
do karty inteligentnej, na której zapisany jest klucz prywatny użytkownika
oraz certyfikat X.509v3, zawierający publiczną połową z pary kluczy prywatny-
publiczny. Wszystkie operacje kryptograficzne korzystające z tych kluczy mają
miejsce na karcie inteligentnej.
6. Dostawca obsługi zabezpieczeń (SSP) Kerberos na komputerze klienta wysyła
w komunikacie żądania uwierzytelnienia wstąpnego, KRB_AS_REQ, certyfikat
z kluczem publicznym użytkownika do Centrum dystrybucji kluczy jako dane
uwierzytelniania wstąpnego.
7. Centrum dystrybucji kluczy sprawdza poprawność certyfikatu i odczytuje klucz
publiczny, który używa do szyfrowania klucza sesji logowania. W komunikacie
wysyłanym w odpowiedzi do klienta, KRB_AS_REP, zwraca zaszyfrowany klucz
sesji logowania i bilet przyznający bilet.
8. Jeśli klient posiada prywatną połową z pary kluczy prywatny-publiczny, korzysta
z klucza prywatnego do odszyfrowania klucza sesji logowania.
Nastąpnie zarówno klient, jak i Centrum dystrybucji kluczy korzystają z klucza sesji lo-
gowania do wymiany dwustronnej informacji. Nie ma innych odchyleń od protokołu
standardowego.
Dostawca obsługi zabezpieczeń Kerberos (Kerberos SSP), działający na komputerze
klienta, domyślnie wysyła dane uwierzytelniania wstąpnego do Centrum dystrybucji
kluczy w postaci zaszyfrowanego znacznika czasu. W systemach, w których zastosowano
logowanie za pomocą kart inteligentnych, Dostawca obsługi zabezpieczeń Kerberos
wysyła dane uwierzytelniania wstąpnego w postaci klucza publicznego. W rozdziale 6.
znajduje sią dokładniejszy opis kluczy publicznych, a w rozdziale 9. opisano szerzej ko-
rzystanie z kart inteligentnych.
Uwierzytelnianie przekraczaj ce granice domeny
Funkcje Centrum dystrybucji kluczy są podzielone na dwie odmienne usługi: usługą
uwierzytelniania, która wydaje bilety gwarantujące bilet oraz usługą przyznawania bi-
letów (Ticket Granting Service  TGS), która wydaje bilety sesji. Umożliwia to proto-
kołowi Kerberos przekraczanie granic domen. Klient może otrzymać bilet przyznający
bilet od usługi uwierzytelniania w jednej domenie i użyć go do uzyskania biletów sesji od
usługi wydawania biletów z innej domeny.
Po pierwsze rozważmy sieć, w której istnieją dwie domeny systemu Windows 2000,
Wschód i Zachód. Jeśli ustanowiono relacją zaufania, uwierzytelnianie przekraczające
granice domeny zaimplementowano przez współdzielenie klucza miądzydomenowego
(interdomain key). Usługa przyznawania biletów w każdej z domen jest zarejestrowana
jako obiekt typu security principal z centrami dystrybucji kluczy innych domen i usługa
wydawania biletów w każdej domenie może traktować tą samą usługą w innych dome-
nach jako po prostu jeszcze jedną usługą, dla której klienci, uzyskawszy poprawne
uwierzytelnienie, mogą żądać i uzyskać bilety sesji.
136 Bezpiecze stwo w Windows 2000. Czarna ksi ga
Kiedy użytkownik, którego konto znajduje sią w domenie Wschód chce uzyskać dostąp
do serwera, którego konto znajduje sią w domenie Zachód, proces uwierzytelniania
przebiega w nastąpujący sposób:
1. Klient Kerberos na stacji roboczej użytkownika wysyła żądanie biletu sesji
do usługi wydawania biletów w domenie Wschód.
2. Usługa wydawania biletów w domenie Wschód widzi, że pożądany serwer nie
jest obiektem typu security principal w tej domenie i odpowiada, wysyłając
klientowi bilet referencyjny, tzn. bilet przyznający bilet, zaszyfrowany za
pomocą klucza miądzydomenowego, który Centrum dystrybucji kluczy w domenie
Wschód współdzieli z Centrum dystrybucji kluczy w domenie Zachód.
3. Klient korzysta z biletu referencyjnego do przygotowania drugiego żądania
biletu sesji i tym razem wysyła żądanie do usługi wydawania biletów w domenie
Zachód.
4. Usługa wydawania biletów w domenie Zachód używa swojej kopii klucza
miądzydomenowego do odszyfrowania biletu referencyjnego. Jeśli bilet
referencyjny zostanie odszyfrowany prawidłowo, usługa wydawania biletów
wysyła klientowi bilet sesji do żądanego serwera w tej domenie.
Tam, gdzie istnieje drzewo domen, klient z jednej domeny może uzyskać bilet do ser-
wera w innej domenie, przechodząc ścieżką referencyjną przez jedną lub kilka domen
pośrednich. Przykład przedstawiono na rysunku 4.7.
Rysunek 4.7.
Uwierzytelnianie
poprzez granice domeny
W firmie, w której pracuje Bonnie, jest domena nadrządna helion.com oraz dwie domeny
podrządne, wschód.helion.com i zachód.helion.com.
Bonnie loguje sią na swoje konto w domenie zachód.helion.com i otrzymuje bilet przy-
znający bilet do Centrum dystrybucji kluczy w tej domenie. Bonnie potrzebny jest dostąp
do dokumentów zapisanych w udziale publicznym na serwerze w domenie wschód.
helion.com o nazwie Clyde. Ponieważ domena, w której Bonnie ma swoje konto jest inna
niż domena serwera plików, Dostawca obsługi zabezpieczeń (SSP) na stacji roboczej
Bonnie musi dostać bilet przyznający bilet dla domeny wschód.helion.com i użyć go, by
uzyskać bilet dla serwera. Proces referencyjny przebiega w nastąpujący sposób:
Rozdział 4. Protokoły zabezpiecze 137



1. Stacja robocza Bonnie wysyła komunikat KRB_TGS_REQ do Centrum
dystrybucji kluczy w domenie zachód.helion.com, który zawiera:
nazwą komputera docelowego, Clyde,
nazwą domeny, w której znajduje sią komputer docelowy, wschód.helion.com,
bilet przyznający bilet, który daje dostąp do Centrum dystrybucji kluczy
w domenie zachód.helion.com,
wartość uwierzytelniającą zaszyfrowaną za pomocą klucza sesji, który Bonnie
współdzieli z wyżej wymienionym Centrum dystrybucji kluczy.
2. Centrum dystrybucji kluczy w domenie zachód.helion.com wysyła komunikat
KRB_TGS_REP. Komunikat ten zawiera:
klucz sesji, który Bonnie bądzie współdzielić z Centrum dystrybucji kluczy
z domeny nadrządnej helion.com zaszyfrowany za pomocą klucza sesji
logowania Bonnie,
bilet przyznający bilet, który daje dostąp do Centrum dystrybucji kluczy
w domenie helion.com zaszyfrowany za pomocą klucza tajnego dla relacji
zaufania pomiądzy dwoma domenami helion.com i zachód.helion.com.
3. Stacja robocza Bonnie wysyła do Centrum dystrybucji kluczy w domenie
helion.com komunikat KRB_TGS_REQ, który zawiera:
nazwą komputera docelowego, Clyde,
nazwą domeny, w której znajduje sią komputer docelowy, wschód.helion.com,
bilet przyznający bilet, który daje dostąp do Centrum dystrybucji kluczy
w domenie helion.com,
wartość uwierzytelniającą zaszyfrowaną za pomocą klucza sesji, który Bonnie
współdzieli z wyżej wymienionym Centrum dystrybucji kluczy.
4. Centrum dystrybucji kluczy w domenie helion.com wysyła komunikat
KRB_TGS_REP. Komunikat ten zawiera:
bilet przyznający bilet, który daje dostąp do centrum w domenie
wschód.helion.com, zaszyfrowany za pomocą klucza tajnego dla relacji
zaufania pomiądzy dwoma domenami,
klucz sesji dla Bonnie, który bądzie współdzielony z wymienionym wyżej
Centrum dystrybucji kluczy zaszyfrowany za pomocą klucza sesji, który Bonnie
współdzieli z Centrum dystrybucji kluczy w domenie helion.com.
5. Stacja robocza Bonnie wysyła do Centrum dystrybucji kluczy w domenie
Wschód.helion.com komunikat KRB_TGS_REQ. Komunikat ten zawiera:
nazwą komputera docelowego, Clyde,
nazwą domeny, w której znajduje sią komputer docelowy, wschód.helion.com,
bilet przyznający bilet, który daje dostąp do Centrum dystrybucji kluczy
w domenie wschód.helion.com,
wartość uwierzytelniającą zaszyfrowaną za pomocą klucza sesji, który Bonnie
współdzieli z wymienionym wyżej Centrum dystrybucji kluczy.
138 Bezpiecze stwo w Windows 2000. Czarna ksi ga
6. Centrum dystrybucji kluczy w domenie wschód.helion.com wysyła komunikat
KRB_TGS_REP, który zawiera:
klucz sesji dla Bonnie, który bądzie współdzielić z komputerem o nazwie
Clyde, zaszyfrowany za pomocą klucza sesji współdzielonego przez Bonnie
z Centrum dystrybucji kluczy w domenie wschód.helion.com,
bilet sesji, który daje dostąp do komputera o nazwie Clyde, zaszyfrowany za
pomocą klucza tajnego, współdzielonego przez Clyde a z Centrum dystrybucji
kluczy. Bilet sesji zawiera klucz sesji, który komputer o nazwie Clyde bądzie
współdzielił z Bonnie, dane autoryzacji, skopiowane z biletu przyznającego
bilet Bonnie oraz dane dla domeny lokalnej wschód.helion.com.
Dane autoryzacji zawierają identyfikator zabezpieczeń konta Bonnie,
identyfikatory zabezpieczeń dla grup w domenie zachód.helion.com, których
członkiem jest Bonnie, identyfikatory zabezpieczeń grup uniwersalnych,
których członkiem jest Bonnie lub jedna z grup, w której jest członkiem,
z domeny zachód.helion.com oraz identyfikatory zabezpieczeń dla grup
w domenie wschód.helion.com, których członkiem jest Bonnie, jedna z jej
grup z domeny zachód.helion.com lub jedna z jej grup uniwersalnych.
7. Stacja robocza Bonnie wysyła do komputera Clyde komunikat KRB_AP_REQ.
Komunikat ten zawiera:
nazwą główną użytkownika, Bonnie,
bilet do komputera o nazwie Clyde,
wartość uwierzytelniającą zaszyfrowany za pomocą klucza sesji, który Bonnie
współdzieli z komputerem o nazwie Clyde.
8. Komputer Clyde odpowiada komunikatem KRB_AP_REP, który zawiera wartość
uwierzytelniającą zaszyfrowany za pomocą klucza sesji, który Clyde współdzieli
z Bonnie.
Analiza biletów protokołu Kerberos
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.
Zawarto ć biletu
W tej cząści rozdziału wymieniono pola biletu i opisano krótko, jakie informacje zwie-
rają. Dokładne struktury danych biletów, jak również komunikatów można znalezć
w dokumencie RFC 1510 ( The Kerberos Network Authentication Service (V5) ) z wrze-
śnia 1993, którego autorami są: J. Kohl i C. Neumann. W tabeli 4.1. zamieszczono
pierwsze trzy pola biletu. Nie są one zaszyfrowane; informacje zapisane są w postaci
zwykłego tekstu, wiąc klient może je wykorzystać do zarządzania biletami znajdujący-
mi sią w buforze.
Rozdział 4. Protokoły zabezpiecze 139



Tabela 4.1. Pola biletu zawierające dane zapisane zwykłym tekstem
Nazwa pola Opis
Tkt-vno Numer wersji formatu biletu. W przypadku protokołu Kerberos 5 w polu tym zapisana
jest 5
Realm Nazwa obszaru (realm)  domeny, w której wydano dany bilet. Centrum dystrybucji
kluczy może wydawać bilety tylko dla serwerów we własnym obszarze, wiąc jest to
także nazwa obszaru serwera
Sname Nazwa serwera
Pozostałe pola są zaszyfrowane za pomocą klucza tajnego serwera. Pola te przedstawiono
w tabeli 4.2.
Tabela 4.2. Zaszyfrowane pola biletu
Nazwa pola Opis
Flags Opcje biletu
Key Klucz sesji
Crealm Nazwa obszaru (domeny) klienta
Cname Nazwa klienta
Transited Lista obszarów protokołu Kerberos biorących udział w uwierzytelnianiu klienta,
któremu wydano dany bilet
Authtime Czas pierwszego uwierzytelniania przez klienta. Centrum dystrybucji kluczy
umieszcza w tym znacznik czasu, gdy wyda bilet przyznający bilet. Kiedy Centrum
dystrybucji kluczy wydaje bilety na podstawie biletu przyznającego bilet , zapisuje
kopią czasu pierwszego uwierzytelnienia biletu przyznającego bilet w polu Authtime
w bilecie
Starttime Czas, po którym bilet jest ważny
Endtime Data ważności biletu
Renew-till Maksymalny okres ważności, który można ustawić w bilecie za pomocą znacznika
RENEW-ABLE. (opcjonalnie)
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 (opcjonalnie)
Authorization- Atrybuty uprawnień dla klienta. Protokół Kerberos nie interpretuje zawartości tego
data pola. Interpretacja jest dokonywana przez usługą (opcjonalnie)
Pole Flags jest polem bitowym, w którym opcje konfiguruje sią, ustawiając lub zerując
poszczególne bity. Chociaż pole to ma długość 32 bitów, tylko kilka znaczników biletu
jest interesujących. Przedstawiono je w tabeli 4.3.
Klienci powinny znać niektóre informacje znajdujące sią w biletach i biletach przyzna-
jących bilet, aby zarządzać swoim buforem danych uwierzytelniających. Centrum dys-
trybucji kluczy, zwracając bilet i klucz sesji jako wynik wymiany komunikatów usługi
uwierzytelniania lub usługi przyznawania biletów, umieszcza kopią klucza sesji klienta
w strukturze danych, która zawiera informacje w polach biletu Flags, 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.
140 Bezpiecze stwo w Windows 2000. Czarna ksi ga
Tabela 4.3. Pole Flags biletu
Nazwa znacznika Opis
FORWARDABLE Informuje usługą przyznawania biletów, że może wydać nowy bilet przyznający
bilet z innym adresem sieciowym na podstawie przedstawionego biletu
przyznającego bilet (tylko w przypadku biletu przyznającego bilet)
FORWARDED Wskazuje, że bilet przyznający bilet został przekazany dalej lub, że dany bilet
został wydany z przekazanego dalej biletu przyznającego bilet
PROXIABLE Informuje usługą przyznawania biletów, że może wydawać bilety z innymi
adresem sieciowym niż ten, który znajduje sią w danym bilecie przyznającym bilet
(tylko w przypadku biletu przyznającego bilet)
PROXY Wskazuje, że adres sieciowy w bilecie jest inny niż adres w bilecie przyznającym
bilet 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 Centrum dystrybucji kluczy
INITIAL Wskazuje, że jest to bilet przyznający bilet (tylko w przypadku biletu
przyznającego bilet)
Ograniczanie czasu ycia biletu
Bilety protokołu Kerberos mają określony czas początkowy i czas ważności. W okresie
ważności biletu klient, który otrzymał ten bilet do realizacji pewnej usługi, może go przed-
stawić i uzyskać dostąp do tej usługi, bez wzglądu na to, ile razy korzystał wcześniej
z danego biletu. Aby ograniczyć zagrożenia dla bezpieczeństwa biletu lub odpowiadają-
cemu mu klucza sesji, administratorzy mogą ustawić maksymalny czas  życia biletów.
Kiedy klient żąda od Centrum dystrybucji kluczy biletu do jakiejś usługi, może żądać
określonego czasu początkowego. Jeśli żądanie nie zawiera tego czasu lub on minął,
Centrum dystrybucji kluczy wpisuje czas aktualny w polu Starttime biletu.
Niezależnie od tego, czy klienci podają czasy początkowe ich żądania muszą zawierać
wymagany czas ważności. Centrum dystrybucji kluczy ustala wartość zapisaną w polu
Endtime danego biletu, dodając maksymalną wartość okresu ważności biletu, podaną
w zasadach protokołu Kerberos, do wartości zapisanej w polu Starttime tego biletu a na-
stąpnie porównuje wynik z wymaganym czasem ważności biletu. Zostanie ten czas, który
jest wcześniejszy.
Centrum dystrybucji kluczy nie powiadamia klientów, kiedy kończy sią okres ważności
biletów sesji lub biletów przyznających bilet. Jeśli klient, żądając połączenia z serwe-
rem, przedstawia bilet sesji, który utracił ważność, to serwer odsyła komunikat o błądzie
i klient musi uzyskać nowy bilet sesji z Centrum dystrybucji kluczy. Jednak jeśli połą-
czenie zostało uwierzytelnione, to nie ma znaczenia czy bilet sesji traci ważność w tej
sesji. Bilety sesji 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.
W przypadku, gdy klient, żądając od Centrum dystrybucji kluczy biletu sesji, przedstawi
bilet przyznający bilet, który utracił ważność, wówczas centrum (KDC) odpowiada ko-
munikatem o błądzie. Klient musi zażądać nowego biletu przyznającego bilet , jak i po-
trzebny mu bądzie klucz długoterminowy użytkownika. Jeśli podczas wstąpnego logo-
wania klient nie zapisał tego klucza w buforze, to może zażądać hasła użytkownika.
Rozdział 4. Protokoły zabezpiecze 141



Odnawialne bilety protokołu Kerberos
Jednym ze sposobów obrony przeciwko  atakom na klucze sesji jest takie ustanowie-
nie zasad protokołu Kerberos, aby maksymalny okres ważności biletu był stosunkowo
krótki. Innym ze sposobów obrony jest umożliwienie stosowania biletów odnawialnych.
Gdy bilety są odnawialne, to klucze sesji są odświeżane okresowo bez wydawania zu-
pełnie nowego biletu. Jeśli zasady protokołu Kerberos zezwalają na stosowanie biletów
odnawialnych, to Centrum dystrybucji kluczy ustawia znacznik RENEWABLE w każ-
dym bilecie, który wydaje i ustawia w nim dwa czasy ważności. Pierwszy czas ograni-
cza okres ważności bieżącej postaci danego biletu, a drugi ogranicza łączny okres waż-
ności wszystkich postaci danego biletu.
Czas ważności bieżącej postaci danego biletu jest zapisany w polu Endtime. Klient, który
ma bilet odnawialny musi wysłać go do Centrum dystrybucji kluczy, aby został odno-
wiony, zanim osiągniąty zostanie czas zapisany w polu Endtime, przedstawiając także
nową wartość uwierzytelniającą. Kiedy centrum otrzyma bilet do odnowienia, sprawdza
drugi, łączny czas ważności zapisany w polu Renew-till i upewnia sią, czy ten czas już nie
upłynął. Nastąpnie wydaje nową postać biletu z pózniejszym czasem ważności Endtime
i nowym kluczem sesji. Oznacza to, że administrator może ustalić zasady protokołu Ker-
beros, tak aby bilety musiały być odnawiane w stosunkowo krótkich okresach czasu, po-
nieważ w takich sytuacjach wydawany jest nowy klucz sesji, co minimalizuje straty, które
mogłyby powstać w wyniku zagrożeń bezpieczeństwa klucza. Administratorzy mogą
również podać stosunkowo długi łączny czas ważności biletu, po upływie którego bilet
traci ostatecznie ważność i nie podlega odnowieniu.
Delegowanie uwierzytelniania
W wielowarstwowych aplikacjach klient-serwer, klient łączy sią z serwerem, który z kolei
musi połączyć sią z drugim, wewnątrznym serwerem. Aby do tego doszło, pierwszy
serwer musi mieć bilet do drugiego. Byłoby doskonale, gdyby bilet ograniczał prawo
dostąpu pierwszego serwera do drugiego w sytuacjach, w których klient, a nie pierwszy
serwer, jest upoważniony.
W protokole Kerberos rozwiązano ten problem za pomocą mechanizmu zwanego Dele-
gowaniem uwierzytelniania (Delegation of Authentication), który polega na delegowaniu
przez klienta uwierzytelnienia do serwera poprzez poinformowanie Centrum dystrybucji
kluczy, że serwer jest uprawniony do reprezentowania tego klienta. Jest to idea podobna
do personifikacji wystąpującej w systemie Windows 2000.
Delegowania można dokonać na dwa sposoby:
bilety pośrednie (proxy tickets)  klient otrzymuje bilet dla serwera wewnątrznego,
a nastąpnie przekazuje go do serwera zewnątrznego. Trudność stosowania tego
sposobu polega na tym, że klient musi znać nazwą serwera wewnątrznego,
bilety przekazywane (forwarded tickets)  klient daje serwerowi zewnątrznemu
bilet przyznający bilet, który serwer może w razie potrzeby używać do żądania
biletów.
Zasady protokołu Kerberos domeny mogą korzystać tylko z jednej z tych metod.
142 Bezpiecze stwo w Windows 2000. Czarna ksi ga
Bilety po rednie
Kiedy Centrum dystrybucji kluczy wydaje klientowi bilet przyznający bilet, sprawdza,
czy zasady protokołu Kerberos dopuszczają używanie biletów. Jeśli tak jest, Centrum
dystrybucji kluczy ustawia znacznik PROXIABLE w wydanym danemu klientowi bi-
lecie gwarantującym bilet.
Klient uzyskuje bilet pośredni, przedstawiając bilet przyznający bilet usłudze przyzna-
wania biletów i żądając biletu do serwera wewnątrznego. Żądanie wysłane przez klienta
zawiera znacznik, który sygnalizuje, że konieczny jest bilet pośredni, a także nazwą
serwera, który bądzie reprezentował tego klienta. Kiedy centrum (KDC) otrzymuje żą-
danie klienta, tworzy bilet dla serwera wewnątrznego, ustawia w tym bilecie znacznik
PROXY i wysyła z powrotem do klienta. Nastąpnie klient wysyła bilet do serwera ze-
wnątrznego, który korzysta z tego biletu, aby uzyskać dostąp do serwera wewnątrznego.
Bilety przekazywane
Jeśli klient chce delegować do serwera zewnątrznego zadanie uzyskiwania biletów dla
serwera wewnątrznego, to żąda od Centrum dystrybucji kluczy przekazywalnego biletu
przyznającego bilet. Klient robi to za pomocą komunikatu żądania podprotokołu Au-
thentication Service Exchange, wskazując Centrum dystrybucji kluczy nazwą serwera,
który bądzie działał w jego imieniu. Jeśli zasady protokołu Kerberos zezwalają na prze-
kazywanie, to Centrum dystrybucji kluczy tworzy bilet przyznający bilet dla serwera
zewnątrznego, który jest używany w imieniu klienta, ustawia znacznik FORWARDA-
BLE i wysyła bilet przyznający bilet z powrotem do klienta. Nastąpnie klient przekazuje
ten bilet do serwera zewnątrznego.
Serwer zewnątrzny, żądając biletu do serwera wewnątrznego przedstawia Centrum dys-
trybucji kluczy bilet przyznający bilet klienta. Centrum, wydając bilet, sprawdza znacz-
nik FORWARDABLE w tym bilecie przyznającym bilet, ustawia w wydawanym bilecie
znacznik FORWARDED i zwraca bilet do serwera zewnątrznego.
Konfigurowanie zasad protokołu Kerberos domeny
W systemie Windows 2000 zasady protokołu Kerberos są określane na poziomie domeny
i wprowadzane w życie przez Centrum dystrybucji kluczy danej domeny. Zasady proto-
kołu Kerberos są zapisane w Active Directory jako podzbiór atrybutów zasad zabezpieczeń
domeny. Domyślnie zasady mogą być konfigurowane tylko przez administratorów domeny.
Do ustawień zasad protokołu Kerberos można uzyskać dostąp: edytując obiekt zasad grup
Zasady domeny (Domain Policies), rozwijając gałązie Konfiguracja komputera (Computer
Configuration), Ustawienia systemu Windows (Windows Settings), Ustawienia zabezpie-
czeń (Security Settings) i Zasady konta (account policies), a nastąpnie wybierając pozycją
Zasady protokołu Kerberos (Kerberos Policies), jak przedstawiono to na rysunku 4.8.
Zasady protokołu Kerberos obejmują nastąpujące ustawienia:
Wymuszaj ograniczenia logowania użytkowników (Enforce user logon restrictions)
 jeśli ta opcja jest ustawiona, to Centrum dystrybucji kluczy zatwierdza każde
żądanie biletu sesji sprawdzając zasady praw użytkownika na komputerze
Rozdział 4. Protokoły zabezpiecze 143



Rysunek 4.8.
Ustawienia zasad
protokołu Kerberos
domeny
docelowym, aby potwierdzić, że użytkownik ma prawo albo do logowania
lokalnego, albo do dostąpu poprzez sieć. Weryfikacja jest opcjonalna, ponieważ
dodatkowy etap jest czasochłonny i może spowolnić dostąp sieciowy do usług.
Domyślnie ustawione jest Włączony (Enabled),
Maksymalny okres istnienia biletu usługi (Maximum lifetime for service ticket)
 określenie bilet usługi oznacza bilet sesji. Okres ważności podany jest
w minutach i musi być dłuższy niż 10 minut i mniejszy lub równy wartości
Maksymalny czas istnienia biletu użytkownika. Domyślną wartością jest 600
minut (10 godzin),
Maksymalny czas istnienia biletu użytkownika (Maximum lifetime for user ticket)
 określenie bilet użytkownika oznacza bilet przyznający bilet. Wartość podana
jest w godzinach (domyślną wartością jest 10 godzin),
Maksymalny czas istnienia odnowienia biletu użytkownika (Maximum lifetime
for user ticket renewal)  wartość podana jest w dniach (domyślnie jest to 7 dni),
Maksymalna tolerancja synchronizacji zegara komputerowego (Maximum
tolerance for computer clock synchronization)  wartość podana jest w minutach
(domyślnie  5 minut).
Dostawca obsługi zabezpiecze Kerberos
Dostawca obsługi zabezpieczeń (Security Support Provider  SSP) był wspominany
w niniejszym rozdziale kilkakrotnie, ale bez szczegółowych wyjaśnień. Dostawca obsługi
zabezpieczeń jest to biblioteka DLL dostarczana z systemem operacyjnym, która jest
implementacją protokołu zabezpieczeń Kerberos. System Windows 2000 zawiera także
dostawcą obsługi zabezpieczeń (SSP) dla uwierzytelniania za pomocą protokołu NTLM.
Obydwie biblioteki są domyślnie pobierane podczas rozruchu systemu przez Lokalne
zródło zabezpieczeń (LSA), pracującą na komputerze z systemem Windows 2000. Każdy
144 Bezpiecze stwo w Windows 2000. Czarna ksi ga
z dostawców może być użyty do uwierzytelniania logowania sieciowego i połączeń
klient-serwer. To, który zostanie zastosowany, zależy od możliwości komputera po dru-
giej stronie połączenia. Jako pierwszy wybierany jest dostawca zabezpieczeń Kerberos.
Po tym, jak Lokalne zródło zabezpieczeń ustanowi kontekst zabezpieczeń dla użytkowni-
ka interaktywnego, proces obsługi podpisywania i pieczątowania komunikatów, działają-
cy w kontekście zabezpieczeń użytkownika, może załadować kolejną kopią) Dostawcy
obsługi zabezpieczeń Kerberos.
Usługi systemowe i aplikacje warstwy transportowej mają dostąp do dostawców obsługi
zabezpieczeń za pomocą Interfejsu Dostawcy obsługi zabezpieczeń (Security Support
Provider Interface  SSPI). Jest to interfejs Win32, który służy do wyliczania dostaw-
ców dostąpnych w systemie, wyboru jednego z nich i użycia go w celu uzyskania połą-
czenia uwierzytelnionego. Interfejs SSPI omówiono poniżej.
Zastosowanie interfejsu dostawcy obsługi zabezpiecze
Interfejs Dostawcy obsługi zabezpieczeń (SSPI) jest interfejsem Win32 pomiądzy apli-
kacjami warstwy transportowej a dostawcami zabezpieczeń sieciowych. Integruje on
uwierzytelnianie, spójność i poufność komunikatów z aplikacjami rozproszonymi. Szkie-
let aplikacji modelu obiektowego składników rozproszonych (DCOM) i uwierzytelnione,
zdalne wywołania procedur (authenticated Remote Procedure Calls) korzystają z usług
Interfejsu Dostawcy obsługi zabezpieczeń interfejsów wyższego poziomu. Usługi za-
bezpieczeń interfejsu SSPI są również zintegrowane z interfejsami poziomu aplikacji ta-
kimi jak WinSock 2.0 i WinInet.
Na rysunku 4.9 przedstawiono miejsce usług zabezpieczeń interfejsu SSPI w całej struk-
turze aplikacji rozproszonej.
Rysunek 4.9.
Interfejs dostawcy
obsługi zabezpieczeń
i model bezpieczeństwa
systemu Windows
Interfejs Dostawcy obsługi zabezpieczeń stanowi warstwą abstrakcji pomiądzy proto-
kołami poziomu aplikacji a protokołami zabezpieczeń. Usługi tego interfejsu SSPI mogą
być używane w różny sposob:
Rozdział 4. Protokoły zabezpiecze 145



1. Tradycyjne aplikacje oparte na gniazdach (socket based applications) mogą
wywoływać procedury Interfejsu Dostawcy obsługi zabezpieczeń bezpośrednio
i zastosować protokół aplikacji, który przekazuje dane dotyczące bezpieczeństwa
Interfejsu Dostawcy obsługi zabezpieczeń za pomocą komunikatów żądania
i odpowiedzi.
2. Aplikacje mogą korzystać z modelu DCOM do wywoływania opcji zabezpieczeń,
które zaimplementowano za pomocą uwierzytelnionych zdalnych wywołań
procedur i Interfejsu Dostawcy obsługi zabezpieczeń na niższych poziomach.
Aplikacje nie wywołują bezpośrednio tego interfejsu.
3. WinSock 2.0 rozszerza interfejs gniazd systemu Windows (Windows Sockets
interface), aby umożliwić usługodawcom transportu ujawnienie funkcji
zabezpieczeń. Takie podejście integruje Interfejs Dostawcy obsługi zabezpieczeń
ze stosem sieciowym i stanowi wspólny interfejs dla usług zabezpieczeń
i transportowych.
4. WinInet jest interfejsem protokołu aplikacji, który jest przeznaczony do obsługi
zabezpieczonych protokołów internetowych, takich jak Secure Socket Layer (SSL).
Obsługa zabezpieczeń WinInet stosuje Interfejs Dostawcy obsługi zabezpieczeń
do dostawcy zabezpieczeń bezpiecznego kanału.
Jązyki skryptowe, takie jak VBscript czy JScript zezwalają programistom na dostąp do
Interfejsu Dostawcy obsługi zabezpieczeń. O ile tworzenie aplikacji wykracza poza za-
kres niniejszej książki, to administrator zabezpieczeń powinien mimo wszystko wiedzieć
o strukturze interfejsu dostawcy obsługi zabezpieczeń i jego miejscu w architekturze
systemu Windows 2000.
Interfejs Dostawcy obsługi zabezpieczeń stanowi wspólny interfejs pomiądzy aplikacjami
warstwy transportowej, takimi jak Microsoft RPC lub program przeadresowujący syste-
mu plików oraz dostawcami zabezpieczeń. Dostarcza również mechanizmy, za pomocą
których aplikacje rozproszone mogą wywoływać jednego z wielu usługodawców za-
bezpieczeń, aby uzyskać połączenie uwierzytelnione, bez znajomości szczegółów pro-
tokołu zabezpieczeń.
Interfejs Dostawcy obsługi zabezpieczeń składa sią z czterech rodzajów interfejsów:
1. Interfejsy do zarządzania danymi uwierzytelniającymi (Credential management
interfaces)  umożliwiają uzyskanie dostąpu do danych uwierzytelniających 
dane, hasła, bilety, itd.  lub zwolnienie tego dostąpu. Dostąpne są nastąpujące
metody:
AcquireCredentialsHandle  uzyskuje uchwyt do wskazanych danych
uwierzytelniających,
FreeCredentialsHandle  zwalnia uchwyt do danych uwierzytelniających
i związane z tym zasoby,
QueryCredentialsAttributes  umożliwiają wysyłanie zapytań dotyczących
różnych atrybutów danych uwierzytelniających, takich jak skojarzona nazwa,
nazwa domeny, itd.
146 Bezpiecze stwo w Windows 2000. Czarna ksi ga
2. Interfejsy do zarządzania kontekstem (Context management interfaces)
 dostarczają metody do tworzenia i stosowania kontekstów zabezpieczeń.
Konteksty te są tworzone zarówno po stronie klienta, jak i serwera połączenia
komunikacyjnego i mogą być używane pózniej z interfejsami obsługi komunikatów.
Dostąpne są nastąpujące metody:
InitializeSecurityContext  inicjuje kontekst zabezpieczeń, generując
komunikat nieprzejrzysty (opaque message)  znacznik zabezpieczeń 
który może być przekazany do serwera,
AcceptSecurityContext  tworzy kontekst zabezpieczeń, za pomocą komunikatu
nieprzejrzystego otrzymanego od klienta,
DeleteSecurityContext  zwalnia kontekst zabezpieczeń i związane z nim
zasoby,
QueryContextAttributes  pozwala na wysyłanie zapytań dotyczących
różnych atrybutów kontekstu,
ApplyControlToken  wprowadza dodatkowe komunikaty zabezpieczeń
do istniejącego kontekstu zabezpieczeń,
CompleteAuthToken  uzupełnia znacznik uwierzytelnienia. Jest to konieczne,
ponieważ w przypadku niektórych protokołów, takich jak Distributed
Computing Environment Remote Procedure Call (DCE RPC), konieczne jest
przejrzenie informacji o zabezpieczeniach, gdy tylko transport uaktualni
określone pola komunikatu,
ImpersonateSecurityContext  dołącza kontekst zabezpieczeń klienta
do wywoływanego wątku jako znacznik personifikacji,
RevertSecurityContext  przerywa personifikacją i przywraca wywoływanemu
wątkowi znacznik pierwotny.
3. Interfejsy obsługi komunikatów (Message support interfaces)  zawierają usługi
zapewniające spójność i poufność komunikacji, które są oparte na kontekście
zabezpieczeń. Dostąpne są nastąpujące metody:
MakeSignature  generuje podpis zabezpieczony na podstawie komunikatu
i kontekstu zabezpieczeń,
VerifySignature  sprawdza, czy podpis jest zgodny z odebranym komunikatem.
4. Interfejsy do zarządzania pakietami (Package- management interfaces)
 zawierają usługi dla różnych pakietów zabezpieczeń obsługiwanych
przez dostawcą zabezpieczeń. Dostąpne są nastąpujące metody:
EnumerateSecurityPackages  przedstawia listą dostąpnych pakietów
zabezpieczeń i ich możliwości,
QuerySecurityPackageInfo  wysyła do pojedynczych pakietów zabezpieczeń
zapytania dotyczące ich możliwości.
Dostawca zabezpieczeń to biblioteka DLL, która jest implementacją interfejsu dostawcy
obsługi zabezpieczeń i udostąpnia aplikacjom jeden lub kilka pakietów zabezpieczeń.
Pakiet zabezpieczeń SSP przyporządkowuje funkcje interfejsu SSPI implementacji
protokołu zabezpieczeń, właściwej dla danego pakietu, takiego jak NTLM, Kerberos czy
SSL. Na etapie inicjalizacji identyfikacji określonego pakietu używana jest nazwa pa-
kietu zabezpieczeń.
Rozdział 4. Protokoły zabezpiecze 147



Interfejs SSPI pozwala aplikacji na używanie dowolnego, dostąpnego w systemie pa-
kietu zabezpieczeń, bez zmiany interfejsu do korzystania z usług zabezpieczeń. Ponadto
nie ustanawia danych uwierzytelniających logowania, ponieważ zazwyczaj jest to opera-
cja uprzywilejowana, przeprowadzana przez system operacyjny.
Aplikacja może użyć funkcji zarządzania pakietami do prezentowania listy dostąpnych
pakietów zabezpieczeń i wybrania tego, który jest potrzebny. Nastąpnie aplikacja korzysta
z funkcji do zarządzania danymi uwierzytelniającymi, aby uzyskać uchwyt do danych
uwierzytelniających użytkownika, w którego imieniu działa. Mając to dojście, aplikacja
może skorzystać z funkcji do zarządzania kontekstem, aby utworzyć kontekst zabezpieczeń
usługi. Kontekst zabezpieczeń jest to struktura danych nieprzejrzystych zawierająca dane
o zabezpieczeniach odpowiednich dla połączenia, takiego jak klucz sesji, czas trwania sesji,
itd. Ostatecznie aplikacja korzysta z kontekstu zabezpieczeń z funkcjami obsługi komuni-
katów dla zapewnienia integralności i poufności komunikacji podczas trwania połączenia.
Mo liwo ci pakietów zabezpiecze
Możliwości pakietu zabezpieczeń określają, jakie usługi dostarcza on danej aplikacji. Obej-
mują one, np. obsługą uwierzytelniania klienta uwierzytelnianie wzajemne lub obsługą
spójności komunikatów oraz ich poufności. Dodatkowo niektóre pakiety są przeznaczone
do korzystania tylko z niezawodnych protokołów transportowych, a nie z transportów
datagramowych.
Możliwości pakietów zabezpieczeń, dostąpne w określonym pakiecie, można uzyskać
za pomocą funkcji QuerySecurityPackageInfo. Poniższa lista przedstawia możliwości
pakietów zabezpieczeń.
1. Możliwości związane z uwierzytelnianiem:
uwierzytelnianie wyłącznie klienta,
wymagane uwierzytelnianie wieloetapowe,
obsługa personifikacji w systemie Windows.
2. Możliwości związane z transportem:
transport z wykorzystaniem datagramów,
transporty połączeniowe,
semantyka połączenia strumienia danych.
3. Możliwości związane z komunikatami:
obsługa integralności komunikatów,
obsługa poufności komunikatów.
W wiąkszości przypadków aplikacje wybierają pakiety zabezpieczeń na podstawie ro-
dzaju dostąpnych możliwości zabezpieczeń, które zaspokajają potrzeby danej aplikacji.
Powyższe informacje na temat interfejsu SSPI dają jego pełny obraz, bez wnikania
w szczegóły programowania. Wiącej wiadomości na ten temat można znalezć w doku-
mentacji systemu Windows 2000: Books OnLine oraz Technet. Jeśli ktoś chce spróbować
samodzielnego programowania, najpierw niech zapozna sią z przykładami zamieszczo-
nymi w Windows 2000 Software Development Kit (SDK).


Wyszukiwarka

Podobne podstrony:
Windows XP Professional Czarna ksiega
Windows 2000 TCP IP Czarna ksiega
ddt2000 and windows 00
Bezpieczeństwo w Windows 7

więcej podobnych podstron