AD autentizace používá dva hlavní protokoly: Kerberos a NTLM
NTLM
Proces certifikace probíhá následovně:
- Klient generuje NTLM hash lokálně a hodnota je hash hodnota uživatelova hesla.
- Klient odesílá uživatelské jméno aplikačnímu serveru.
- Aplikační server generuje náhodnou hodnotu pro klienta, která se obvykle nazývá nonce nebo challenge.
- klient zašifruje nonce pomocí NTLM hashu a odešle jej aplikačnímu serveru.
- Po jejím obdržení aplikační server odešle AD server spolu s uživatelským jménem a nonce.
- AD vygeneruje NTLM hash na základě uživatelského hesla, zašifruje nonce a poté porovná zprávu klienta.
- Pokud jsou hodnoty stejné, autentizace projde, a pokud jsou odlišné, autentizace selže.
Kerberos
Klíčové pojmy:
- KDC: Distribuční centrum klíčů, které poskytuje dvě služby: Autentizační službu (AS) a Službu pro vydávání vstupenek (TGS). Doména generuje doménový účet nazvaný krbtgt pro KDC a TGT používá heslo pro šifrování a dešifrování. Když uživatel domény přistupuje poprvé, chce, aby se AS autentizoval, a po jeho předání AS požádá TGS o poskytnutí tiketu (TGT) uživateli domény.
- SPN:Service Principal Name。 Kromě uživatelských účtů mají AD účty také servisní účty. Aplikace bude mít také přiřazený servisní účet, který umožní aplikaci přístup k serverovým zdrojům, jako jsou exchange, SQL, IIS atd. SPN je služba používaná k přiřazení služby, kterou aplikace aktivuje, s účtem služby v AD.
Proces certifikace:
1. Když se uživatel domény přihlásí, je do DC odeslán požadavek AS (AS_REQ), který obsahuje zašifrované časové razítko zašifrované hashem hesla uživatele a uživatelským jménem.
2. Po obdržení požadavku DC použije uživatelské jméno a hash hesla uživatele k jeho dešifrování. DC odpoví klientovi AS odpovědí (AS_REP), která obsahuje session key a TGT (Ticket Granting Ticket). Klíč relace je zašifrován hashem hesla uživatele. TGT obsahuje členství ve skupině, doménu, časové razítko, IP adresu klienta a klíč relace. TGT je také šifrován, šifrován heslem k účtu služby KDC a klient jej nemůže dešifrovat. (TGT je ve výchozím nastavení platné 10 hodin a aktualizace, které následují po této fázi, nevyžadují opětovné zadávání hesla)
3. Když uživatel požádá o zdroj v doméně, je odeslán požadavek na schválení tiketu (TGS_REQ), který obsahuje uživatelské jméno, časové razítko, TGT a SPN. Časová razítka a uživatelská jména jsou šifrována relačním klíčem.
4. Po obdržení požadavku KDC nejprve zjistí, zda je v požadavku SPN, poté dešifruje TGT, extrahuje klíč relace a časové razítko v TGT a použije klíč relace v TGT k dešifrování zašifrovaného uživatelského jména a časového razítka. Proveďte několik kontrol:
(1) Časové razítko dešifrované TGT musí být platné. (Pokud dojde k opakovanému útoku, časové razítko je neplatné.) )
(2) Zda uživatelské jméno v TGT odpovídá uživatelskému jménu v požadavku.
(3) Zda je IP adresa v TGT stejná jako IP adresa v požadavku.
Kontrola odpoví na Ticket Granting ServiceReply(TGS_REP) klienta, který obsahuje oprávněný přístup SPN, nový klíč relace používaný pro přístup mezi klientem a SPN a nový service ticket Service Ticket (včetně nového klíče relace, uživatelského jména a uživatelské skupiny). Jak autorizovaný SPN, tak klíč relace, který přistupuje k SPN, jsou šifrovány relačním klíčem v TGT. Ticket služby je zašifrovan heslem příslušného účtu SPN služby.
1. Po výše uvedeném procesu uživatel získal klíč relace a služební tiket související s aplikační službou. Uživatel odešle aplikační službu žádost (AP_REQ), která obsahuje uživatelské jméno a časové razítko, a je zašifrována relačním klíčem.
2. Aplikační služba používá hash hesla servisního účtu k dešifrování servisního ticketu a extrahování uživatele, uživatelské skupiny a relačního klíče. Dešifrujte uživatelské jméno a časové razítko v AP_REQ pomocí dešifrovaného relačního klíče. AP_REQ Pokud ano, požadavek je přijat a aplikační služba přiděluje oprávnění na základě informací o uživatelské skupině v tiketu služby, a uživatel pak může k požadované službě přistupovat.
Původní adresa:Přihlášení k hypertextovému odkazu je viditelné.
|