Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 3036|Odpowiedź: 0

[okna] Uwierzytelnianie Windows AD: Kerberos i NTLM

[Skopiuj link]
Opublikowano 22.08.2023 19:16:28 | | | |
Uwierzytelnianie AD wykorzystuje dwa główne protokoły: Kerberos i NTLM

NTLM



Proces certyfikacji przebiega następująco:

  • Klient generuje lokalnie hash NTLM, a wartość ta jest hashem hasła użytkownika.
  • Klient wysyła nazwę użytkownika do serwera aplikacji.
  • Serwer aplikacji generuje losową wartość dla klienta, zwykle nazywaną nonce lub challenge.
  • klient szyfruje nonce za pomocą hasha NTLM i wysyła go do serwera aplikacji.
  • Po otrzymaniu go serwer aplikacji przesyła do serwera AD wraz z nazwą użytkownika i nonce.
  • AD generuje hash NTLM na podstawie hasła użytkownika, szyfruje nonce, a następnie porównuje wiadomość klienta.
  • Jeśli wartości są takie same, uwierzytelnianie przechodzi, a jeśli są różne, uwierzytelnianie się nie udaje.


Kerberos



Kluczowe terminy:

  • KDC: Centrum Dystrybucji Kluczy, które oferuje dwie usługi: Usługę Uwierzytelniania (AS) oraz Usługę Udostępniania Zgłoszeń (TGS). Domena generuje konto domenowe o nazwie krbtgt dla KDC, a TGT używa hasła do szyfrowania i odszyfrowania. Gdy użytkownik domeny uzyskuje dostęp po raz pierwszy, chce, aby AS uwierzytelnił się, a po przejściu AS żąda od TGS zgłoszenia (TGT) dla użytkownika domeny.
  • SPN:Nazwa Dyrektora Usług。 Oprócz kont użytkowników, konta AD mają także konta usługowe. Aplikacja będzie miała również powiązane konto usługowe, które ułatwi dostęp do zasobów serwera, takich jak exchange, SQL, IIS itp. SPN to usługa służąca do powiązania usługi, włączonej przez aplikację, z kontem usługi w AD.


Proces certyfikacji:

1. Gdy użytkownik domeny się loguje, do kontrolera trafia żądanie AS (AS_REQ), które zawiera zaszyfrowany znacznik czasu zaszyfrowany hashem hasła użytkownika i nazwą użytkownika.

2. Po otrzymaniu żądania DC używa hashu użytkownika i hasła użytkownika do jego odszyfrowania. Kontroler odpowiada klientowi na odpowiedź AS (AS_REP), która zawiera klucz sesji oraz TGT (Ticket Granting Ticket). Klucz sesji jest szyfrowany hashem hasła użytkownika. TGT zawiera członkostwo w grupie, domenę, znacznik czasu, adres IP klienta oraz klucz sesji. TGT jest również szyfrowany, zaszyfrowany hasłem do konta usługi KDC i klient nie może go odszyfrować. (TGT jest domyślnie ważny przez 10 godzin, a aktualizacje następujące po tym nie wymagają ponownego wpisywania hasła)

3. Gdy użytkownik żąda zasobu w domenie, wysyłane jest żądanie usługi Ticket Granting Service Request (TGS_REQ), zawierające nazwę użytkownika, znacznik czasu, TGT i SPN. Znaczniki czasu i nazwy użytkowników są szyfrowane kluczem sesyjnym.

4. Po otrzymaniu żądania KDC najpierw ustala, czy w żądaniu znajduje się SPN, następnie odszyfrowuje TGT, wyodrębnia klucz sesji i znacznik czasu w TGT, a następnie używa klucza sesji w TGT do odszyfrowania zaszyfrowanej nazwy użytkownika i znacznika czasu. Wykonaj kilka kontroli:

(1) Znacznik czasu odszyfrowany przez TGT musi być ważny. (Jeśli dojdzie do ataku powtórkowego, znacznik czasu jest nieprawidłowy.) )

(2) Czy nazwa użytkownika w TGT jest zgodna z nazwą użytkownika w żądaniu.

(3) Czy adres IP w TGT jest taki sam jak adres IP w żądaniu.

Sprawdzenie odpowiada na zgłoszenie Ticket Granting ServiceReply(TGS_REP) klienta, które zawiera autoryzowany dostęp SPN, nowy klucz sesji używany do dostępu między klientem a SPN oraz nowy Service Ticket service ticket (w tym nowy klucz sesji, nazwę użytkownika i grupę użytkowników). Zarówno autoryzowany SPN, jak i klucz sesji uzyskujący dostęp do SPN są szyfrowane kluczem sesji w TGT. Zgłoszenie usługi jest szyfrowane hasłem odpowiadającego mu konta usługi SPN.

1. Po powyższym procesie użytkownik uzyskał klucz sesji i zgłoszenie usługi związane z usługą aplikacyjną. Użytkownik wysyła żądanie aplikacji (AP_REQ) do usługi aplikacji, które zawiera nazwę użytkownika i znacznik czasu, a jest szyfrowane kluczem sesyjnym.

2. Usługa aplikacji wykorzystuje hasz hasła konta serwisowego do odszyfrowania zgłoszenia usługi oraz wyodrębnienia klucza użytkownika, grupy użytkownika i sesji. Odszyfruj nazwę użytkownika i znacznik czasu w AP_REQ za pomocą odszyfrowanego klucza sesji. AP_REQ Jeśli tak, żądanie jest akceptowane, a usługa aplikacyjna przydziela uprawnienia na podstawie informacji o grupie użytkownika w zgłoszeniu usługi, dzięki czemu użytkownik może uzyskać dostęp do żądanej usługi.

Oryginalny adres:Logowanie do linku jest widoczne.





Poprzedni:Przeglądarka Windows Edge otwiera rozwiązanie awarii za pomocą IE
Następny:DNS-over-HTTPS oraz DNS-over-TLS do rozwiązywania nazw domen
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com