AD autentifikácia používa dva hlavné protokoly: Kerberos a NTLM
NTLM
Proces certifikácie prebieha nasledovne:
- Klient lokálne generuje NTLM hash a hodnota je hash hodnota používateľského hesla.
- Klient posiela používateľské meno aplikačnému serveru.
- Aplikačný server generuje náhodnú hodnotu pre klienta, ktorá sa zvyčajne nazýva nonce alebo challenge.
- klient zašifruje nonce pomocou NTLM hashu a odošle ho aplikačnému serveru.
- Po prijatí ho aplikačný server pošle na AD server spolu s používateľským menom a nonce.
- AD vygeneruje NTLM hash na základe používateľského hesla, zašifruje nonce a následne porovná správu klienta.
- Ak sú hodnoty rovnaké, autentifikácia prejde, a ak sú odlišné, autentifikácia zlyhá.
Kerberos
Kľúčové pojmy:
- KDC: Centrum distribúcie kľúčov, ktoré poskytuje dve služby: Autentifikačnú službu (AS) a Službu udeľovania tiketov (TGS). Doména generuje doménový účet nazvaný krbtgt pre KDC a TGT používa heslo na šifrovanie a dešifrovanie. Keď používateľ domény pristupuje prvýkrát, chce, aby sa AS autentifikoval, a po jeho odoslaní požiada TGS o poskytnutie tiketu (TGT) používateľovi domény.
- SPN:Názov hlavného služby (Service Principal Name。) Okrem používateľských účtov majú AD účty aj servisné účty. Aplikácia bude mať tiež priradený servisný účet, ktorý umožní aplikácii prístup k serverovým zdrojom, ako sú exchange, SQL, IIS a podobne. SPN je služba používaná na priradenie služby, ktorú aplikácia aktivuje, so servisným účtom v AD.
Proces certifikácie:
1. Keď sa doménový používateľ prihlási, do DC sa pošle AS požiadavka (AS_REQ), ktorá obsahuje zašifrovanú časovú pečiatku zašifrovanú hashom hesla používateľa a používateľským menom.
2. Po prijatí požiadavky DC použije používateľské meno a hash hesla používateľa na jej dešifrovanie. DC odpovedá klientovi AS odpoveďou (AS_REP), ktorá obsahuje session key a TGT (Ticket Granting Ticket). Session kľúč je zašifrovaný hashom hesla používateľa. TGT obsahuje členstvo v skupine, doménu, časovú pečiatku, IP adresu klienta a kľúč relácie. TGT je tiež šifrovaný, zašifrovaný heslom k účtu služby KDC a klient ho nemôže dešifrovať. (TGT je štandardne platné 10 hodín a aktualizácie, ktoré nasledujú po tomto termíne, nevyžadujú opätovné zadávanie hesla)
3. Keď používateľ požiada o zdroj v doméne, odošle sa žiadosť o udelenie tiketu (TGS_REQ), ktorá obsahuje používateľské meno, časovú pečiatku, TGT a SPN. Časové pečiatky a používateľské mená sú šifrované reláciou kľúčom.
4. Po prijatí požiadavky KDC najprv zistí, či sa v požiadavke nachádza SPN, potom dešifruje TGT, extrahuje session kľúč a časovú pečiatku v TGT a použije session kľúč v TGT na dešifrovanie zašifrovaného používateľského mena a časovej značky. Vykonajte niekoľko kontrol:
(1) Časová pečiatka dešifrovaná TGT musí byť platná. (Ak dôjde k opakovanému útoku, časová značka je neplatná.) )
(2) Či je používateľské meno v TGT konzistentné s používateľským menom v požiadavke.
(3) Či je IP adresa v TGT rovnaká ako IP adresa v požiadavke.
Kontrola odpovie na Ticket Granting ServiceReply(TGS_REP) klienta, ktorý obsahuje oprávnený prístup SPN, nový kľúč relácie používaný na prístup medzi klientom a SPN a nový service ticket Service Ticket (vrátane nového kľúča relácie, používateľského mena a používateľskej skupiny). SPN autorizovaný aj session kľúč, ktorý pristupuje k SPN, sú šifrované session kľúčom v TGT. Servisný tiket je zašifrovaný heslom príslušného SPN servisného účtu.
1. Po vyššie uvedenom procese používateľ získal kľúč relácie a servisný tiket súvisiaci s aplikačnou službou. Používateľ odošle aplikačnej službe aplikačnú požiadavku (AP_REQ), ktorá obsahuje používateľské meno a časovú pečiatku, a je šifrovaná reláciou kľúčom.
2. Aplikačná služba používa hash hesla servisného účtu na dešifrovanie servisného tiketu a extrahovanie používateľa, používateľskej skupiny a relácie kľúča. Dešifrovať používateľské meno a časovú pečiatku v AP_REQ pomocou dešifrovaného relácie kľúča. AP_REQ Ak áno, požiadavka je prijatá a aplikačná služba priradí oprávnenia na základe informácií o používateľskej skupine v službenom tickete, a potom môže používateľ pristupovať k požadovanej službe.
Pôvodná adresa:Prihlásenie na hypertextový odkaz je viditeľné.
|