Windows Server 2008

Windows Confidential: Buforowanie poświadczeń Udostępnij na: Facebook

Autor: Raymond Chen

Opublikowano: 21 października 2009

Jeśli zalogujemy się do komputera przy użyciu konta domenowego, zablokujemy stację roboczą, po czym zmienimy hasło (na przykład z innego komputera), komputer ten będzie można odblokować, używając starego hasła, mimo że zostało zmienione. Dlaczego tak się dzieje?

Podczas logowania usługa Winlogon zapamiętuje skrót (hash) użytego hasła, zaś przy próbie odblokowania stacji roboczej dla wpisanego hasła wyliczany jest nowy hash i porównywany z tym, który został użyty przy logowaniu. Jeśli oba do siebie pasują, Winlogon odblokowuje stację roboczą, choć hasło może być nieaktualne. Zachowanie takie wynika z faktu, że nie chcemy zalewać kontrolerów domeny masą żądań uwierzytelniających – zarówno ze względu na ich obciążenie, jak i sprawność działania sieci. Większość operacji odblokowujących następuje z użyciem właściwego hasła, a unikanie połączenia z kontrolerem domeny zmniejsza ruch w sieci i znacząco poprawia wydajność, jeśli łącza sieciowe są powolne lub zatłoczone.

Ale zaraz, czy to oznacza, że nie możemy odciąć użytkownika od sieci, zmieniając jego hasło?

Nie, nadal istnieje możliwość zablokowania użytkownikowi dostępu do sieci poprzez zmianę jego hasła. Buforowany hash hasła używany jest tylko przy dostępie do zasobów lokalnej stacji roboczej. Gdy jednak użytkownik spróbuje połączyć się z jakimś zasobem sieciowym, ten zapyta kontroler domeny: „Hej, czy to na pewno ten facet, za którego się podaje?”, a odpowiedź będzie brzmiała „Próbuj dalej”.

Zastanówmy się jednak, czy nie oznacza to, że można po prostu trzymać stację roboczą włączoną przez cały czas i tym samym pominąć wymóg zmiany hasła narzucany przez kontroler domeny?

Oczywiście, że tak, ale to moglibyśmy robić tak czy inaczej: po prostu nie blokowalibyśmy naszych stacji roboczych. Jeśli nigdy nie blokujemy komputera, nie ma znaczenia, jak działa algorytm odblokowujący, gdyż nigdy nie jest uruchamiany!

Jeśli jednak z jakiegoś powodu uważamy, że odblokowanie stacji roboczej powinno wymagać połączenia z kontrolerem domeny w celu weryfikacji, czy hasło nie wygasło, można użyć Zasad grupy, włączają zasadę Require Domain Controller authentication to unlock workstation (Wymagaj uwierzytelnienia kontrolera domeny do odblokowania stacji roboczej).

Zauważmy, że ten jednopoziomowy bufor hasła na potrzeby odblokowywania stacji roboczej różni się od buforowanych poświadczeń domenowych. Ten ostatni mechanizm używany jest wówczas, gdy kontroler domeny nie jest dostępny. W takiej sytuacji hasło wpisane przez użytkownika jest porównywane z przechowywanym w buforze i jeśli pasują do siebie (a ściślej, jeśli pasują hashe ich hashy), usługa Winlogon uznaje, że logowanie jest poprawne. Podczas gdy bufor na potrzeby odblokowywania stacji roboczej ma na celu optymalizację (unikanie kontaktu z kontrolerem domeny, mimo że jest on dostępny), buforowanie poświadczeń jest mechanizmem awaryjnym, używanym wtedy, gdy kontroler domeny nie jest dostępny, ale chcemy pozwolić użytkownikom na dostęp na zasobów lokalnego komputera.

Buforowane poświadczenia mogą być błogosławieństwem lub przekleństwem, zależnie od koloru noszonych okularów. Dla użytkowników laptopów jest to podstawowy mechanizm, który umożliwia zalogowanie się na przenośnym komputerze, gdy nie jest on połączony z siecią firmy. Bez takiej możliwości laptopy poza biurem byłyby jedynie przyciskami do papierów, więc byłoby wątpliwe, by w ogóle ktoś chciałby je mieć.

Z drugiej strony buforowane poświadczenia sprawiają, że możliwy staje się atak offline na informacje przechowywane w buforze. Jeśli laptop wpadnie nieprzyjazne ręce, napastnik będzie miał dowolną ilość czasu na odgadnięcie hasła użytkownika bez możliwości dostrzeżenia tego przez nasz kontroler domeny. Pamiętajmy, że bufor nie zawiera haseł ani nawet ich hashy, zatem możliwość „złamania” hasła jest tylko probabilistyczna (i możemy przechylić szalę na naszą stronę, wymagając stosowania silnych haseł). Oczywiście, skradziony komputer daje hakerowi nieograniczony dostęp fizyczny, tak więc niezaszyfrowane informacje na nim samym już zostały skompromitowane, bez względu na hasła. Ponownie jednak, jeśli idea buforowanych poświadczeń wprawia kogoś w nerwowe drżenie, można ustawić wartość rejestru CachedLogonsCount na zero, aby je wyłączyć. W połączeniu ze wspomnianą wcześniej zasadą Require Domain Controller authentication to unlock workstation powoduje to całkowite wyłączenie buforowania haseł – w każdym tego słowa znaczeniu.

Strona Web Raymonda Chena, The Old New Thing, a także książka pod tym samym tytułem (Addison-Wesley, 2007) poświęcona jest historii systemu Windows, programowaniu Win32 oraz hipotezie Krashena dotyczącej zrozumiałości przekazu.

 Do początku strony Do początku strony

Windows Server 2008