NTLM Vartotojo autentifikavimas sistemoje "Windows"


Suvestinė


Šiame straipsnyje aptariami šie "Windows" NTLM vartotojo autentifikavimo aspektai:
  • Slaptažodžių saugykla paskyros duomenų bazėje
  • Vartotojo autentifikavimas naudojant MSV1_0 autentifikavimo paketą
  • Pass-per autentifikavimas

Daugiau informacijos


Slaptažodžių saugykla paskyros duomenų bazėje

Vartotojų įrašų saugomi saugos abonementų tvarkytuvo (SAM) duomenų bazėje arba "Active Directory" duomenų bazėje. Kiekvienas vartotojo abonementas susietas su dviem slaptažodžiais: LAN tvarkytuvas suderinamas slaptažodis ir "Windows" slaptažodis. Kiekvienas slaptažodis užšifruotas ir saugomas SAM duomenų bazėje arba "Active Directory" duomenų bazėje. LAN tvarkytuvas suderinamas slaptažodis suderinamas su slaptažodžiu, kurį naudoja LAN tvarkytuvas. Šis slaptažodis pagrįstas originaliosios įrangos gamintojo (OĮG) simbolių rinkiniu. Šiam slaptažodžiui neskiriamos didžiosios ir mažosios raidės ir gali būti iki 14 simbolių. Šio slaptažodžio OWF versija taip pat vadinama LAN Manager OWF arba ESTD versija. Šis slaptažodis apskaičiuojamas naudojant DES šifravimą, kad būtų šifruojama konstanta naudojant aiškų teksto slaptažodį. LAN Manager OWF slaptažodis yra 16 baitų ilgio. Pirmieji 7 baitų skaidraus teksto slaptažodis naudojami apskaičiuoti pirmuosius 8 baitus LAN Manager OWF slaptažodį. Antrasis 7 baitų skaidraus teksto slaptažodis yra naudojami kompiuterio antrąjį 8 baitų LAN Manager OWF slaptažodį. "Windows" Slaptažodis pagrįstas "Unicode" simbolių rinkiniu. Šis slaptažodis yra Didžiosios ir mažosios raidės ir gali būti iki 128 simbolių ilgio. Šio slaptažodžio OWF versija taip pat vadinama "Windows OWF" slaptažodžiu. Šis slaptažodis apskaičiuojamas naudojant RSA MD-4 šifravimo algoritmą. Šis algoritmas apskaičiuoja 16 baitų, kintamo ilgio eilutės, kurioje yra aiškių tekstinių slaptažodžių baitų, sąrašas. Bet kuriam vartotojo abonementui gali būti trūksta "LAN Manager" slaptažodžio arba "Windows" slaptažodžio. Tačiau kiekvienas bandymas atliekamas siekiant išlaikyti abi slaptažodžio versijas. Pvz., jei vartotojo paskyra yra persiunčiama iš LAN Manager UAS duomenų bazės naudojant PortUas, arba jei slaptažodis pakeistas iš "LAN Manager" kliento arba iš "Windows", skirtos "Workgroups" kliento, bus rodomas tik "LAN Manager" versijos slaptažodis. Jei slaptažodis nustatytas arba pakeistas "Windows" kliente, o slaptažodyje nėra LAN vadovo atstovavimo, bus naudojama tik "Windows" slaptažodžio versija. (Slaptažodyje gali būti ne LAN vadovo atstovybės, nes slaptažodis ilgesnis nei 14 simbolių arba jo negalima atvaizduoti OEM simbolių rinkinyje.) "Windows" vartotojo sąsajos limitai neleidžia "Windows" slaptažodžiams viršyti 14 simbolių. Šio apribojimo pasekmės aptariamos toliau šiame straipsnyje. "Windows 2000" 2 pakeitimų pakete ir naujesnėse "Windows" versijose yra parametras, leidžiantis apsisaugoti nuo "Windows" saugoti LAN Manager maišos slaptažodį. Jei reikia daugiau informacijos, spustelėkite toliau esantį straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazėje:
299656 Kaip apsisaugoti nuo "Windows" saugoti LAN Manager maišos slaptažodį "Active Directory" ir vietinių SAM duomenų bazėse
Pastaba "Microsoft" nepalaiko neautomatiškai arba programiškai keičia SAM duomenų bazę.

Vartotojo autentifikavimas naudojant MSV1_0 autentifikavimo paketą

"Windows" naudoja "LsaLogonUser" API visų tipų autentifikavimo vartotojams. LsaLogonUser API autentifikuoja vartotojus paskambinus autentifikavimo paketui. Pagal numatytuosius "LsaLogonUser" iškviečia MSV1_0 (MSV) autentifikavimo paketą. Šis paketas yra įtrauktas į "Windows NT". MSV autentifikavimo paketas išsaugo vartotojų įrašą SAM duomenų bazėje. Šis paketas palaiko kitų domenų vartotojų Pass-per autentifikavimą naudodami tinklo registravimo tarnybą. Viduje MSV autentifikavimo paketas padalytas į dvi dalis. Pirmoji MSV autentifikavimo paketo dalis veikia kompiuteryje, prie kurio prijungta. Antroji pastraipa vykdoma kompiuteryje, kuriame yra vartotojo paskyra. Kai abi dalys veikia tame pačiame kompiuteryje, pirmoji MSV autentifikavimo paketo dalis iškviečia antrąją dalį neįtraukiant tinklo registravimo tarnybos. Pirmojoje MSV autentifikavimo paketo dalyje pripažįstama, kad būtinas leidimo autentifikavimas, nes perduotas domeno vardas nėra jo domeno vardas. Kai reikia perduoti autentifikavimą, MSV perduoda užklausą į tinklo registravimo tarnybą. Tinklo registravimo tarnyba tada nukreipia užklausą į tinklo registravimo tarnybą paskirties kompiuteryje. Savo ruožtu, tinklo registravimo tarnyba perduoda užklausą į kitą MSV autentifikavimo paketo dalį tame kompiuteryje. LsaLogonUser palaiko interaktyvius prisijungimus, paslaugų logus ir tinklo prisijungimus. MSV autentifikavimo pakete visos įėjimo formos pereina vartotojo paskyros pavadinimą, domeno, kuriame yra vartotojo abonementas, vardą ir kai kurias vartotojo slaptažodžio funkcijas. Skirtingi įėjimo tipai nurodo slaptažodį, kai jie pereina į LsaLogonUser. interaktyviems registravimuisi, paketiniams registravimuisi ir paslaugų registravimuisi, registravimosi klientas yra kompiuteryje, kuriame paleista pirmoji MSV autentifikavimo paketo dalis. Šiuo atveju aiškaus teksto slaptažodis perduodamas LsaLogonUser ir į pirmą MSV autentifikavimo paketo dalį. Paslaugų ir paketų prisijungimų atveju tarnybų valdymo tvarkytuvas ir užduočių planavimo priemonė suteikia saugesnį paskyros kredencialų saugojimo būdą. Pirmoji MSV autentifikavimo paketo dalis konvertuoja aiškaus teksto slaptažodį tiek LAN Manager OWF slaptažodžiu, tiek "Windows NT OWF" slaptažodžiu. Tada pirmoji paketo dalis pereina skaidraus teksto slaptažodį į tinklo registravimo tarnybą arba į antrąją paketo dalį. Antra dalį, tada užklausiama SAM duomenų bazės OWF slaptažodžius ir užtikrina, kad jos yra identiškos. Registruojantis tinkle, klientui, kuris prisijungia prie kompiuterio, anksčiau buvo pateiktas 16 baitų iššūkis arba "nonce". Jei klientas yra LAN Manager klientas, klientas apskaičiavo 24 baitų iššūkių atsakymą užšifruodamas 16 baitų iššūkį su 16 baitų LAN Manager OWF slaptažodžiu. "LAN Manager" klientas perduoda šį "LAN Manager Challenge" atsakymo į serverį. Jei klientas yra "Windows" klientas, "Windows NT Challenge" atsakymas apskaičiuojamas naudojant tą patį algoritmą. Tačiau "Windows" klientas vietoj LAN tvarkytuvo OWF duomenų naudoja 16 baitų "Windows" OWF duomenis. "Windows" klientas perduoda ir LAN Manager iššūkių atsakymą, ir "Windows NT Challenge" atsakymo į serverį. Bet kuriuo atveju serveris autentifikuoja vartotoją perėję į "LsaLogonUser" API:
  • Domeno vardas
  • Vartotojo vardas
  • Originalus iššūkis
  • LAN tvarkytuvo iššūkių atsakymas
  • Pasirinktinis "Windows NT Challenge" atsakymas
Pirmoji MSV autentifikavimo paketo dalis pereina į antrąją dalį šios informacijos. Pirma, antroje dalyje klausiama apie OWF slaptažodžius iš SAM duomenų bazės arba iš "Active Directory" duomenų bazės. Tada antroji pastraipa apskaičiuoja iššūkio atsakymą naudodami OWF slaptažodį iš duomenų bazės ir problemą, kuri buvo perduota. Antrojoje dalyje lyginamos apskaičiuotųjų iššūkių reakcijos į perduotas iššūkis atsakymas.Pastaba NTLMv2 taip pat leidžia klientui išsiųsti iššūkį kartu su seanso raktų naudojimu, padedantį sumažinti bendrų atakų riziką. Kaip minėta anksčiau, bet kurios slaptažodžio versijos gali trūkti iš SAM duomenų bazės arba iš "Active Directory" duomenų bazės. Be to, skambučio versija gali trūkti "LsaLogonUser". Jei yra "Windows" slaptažodžio iš SAM duomenų bazės ir "Windows" slaptažodžio iš LsaLogonUser versija, jie abu naudojami. Priešingu atveju, "LAN Manager" versijoje slaptažodis naudojamas palyginimui. Ši taisyklė padeda nustatyti atvejų jautrumą, kai "Windows" sistemoje "Windows" atsiranda tinklo įėjimams. Ši taisyklė taip pat leidžia naudoti atgalinį suderinamumą.

Pass-per autentifikavimas

Tinklo registravimo tarnyba įgyvendina Pass-per autentifikavimą. Ji atlieka šias funkcijas:
  • Pasirenka domeną, kad būtų galima perduoti autentifikavimo užklausą.
  • Pasirenka domeno serverį.
  • Pereina prie pasirinkto serverio autentifikavimo užklausos.
Domeno žymėjimas yra paprastas. Domeno vardas perduodamas "LsaLogonUser". Domeno vardas apdorojamas taip:
  • Jei domeno vardas sutampa su SAM duomenų bazės pavadinimu, tame kompiuteryje apdorojamas autentifikavimas. "Windows" darbo vietoje, kuri priklauso domenui, SAM duomenų bazės pavadinimas laikomas kompiuterio pavadinimu. "Active Directory" domeno valdiklyje paskyros duomenų bazės pavadinimas yra domeno vardas. Kompiuteryje, kuris nėra domeno narys, visi įėjimai proceso užklausos vietoje.
  • Jei šis domenas pasitiki nurodytu domeno vardu, autentifikavimo užklausa perduodama į patikimą domeną. "Active Directory" domeno valdikliuose galima lengvai pasiekti patikimų domenų sąrašą. "Windows" domeno nariui užklausa visada perduodama iki pirminio darbo vietos domeno, todėl pirminis domenas nustatomas, ar patikimas konkretus domenas.
  • Jei domenas nepasitiki nurodytu domeno vardu, autentifikavimo užklausa apdorojama kompiuteryje, prie kurio prijungtas, jei nurodytas domeno vardas buvo to domeno vardas. Tinklo registravimasis neskiria neegzistuojančio domeno, nepatikimo domeno ir netinkamai įvesto domeno vardo.
"NetLogon" pasirenka domeno serverį pagal procesą, vadinamą aptikimas. "Windows" darbo vieta aptinka vieno iš "Windows Active Directory" domeno valdiklių vardą pagrindiniame domene. "Active Directory" domeno valdiklis aptinka kiekvieno patikimo domeno "Active Directory" domeno valdiklio pavadinimą. Komponentas, kuris atlieka aptikimą, yra DC lokatorius, kuris veikia "tinklo registravimo" tarnyboje. DC lokatorius naudoja arba NETBIOS, arba DNS vardų vertinimą, kad rastų reikiamus serverius, atsižvelgiant į domeno tipą ir sukonfigūruotą patikimumą.