Dela via


Microsoft NTLM

Windows Challenge/Response (NTLM) är autentiseringsprotokollet som används i nätverk som omfattar system som kör Windows-operativsystemet och på fristående system.

Microsoft Kerberossäkerhetspaket ger större säkerhet än NTLM för system i ett nätverk. Även om Microsoft Kerberos är det protokoll som valts, stöds NTLM fortfarande. NTLM måste också användas för inloggningsautentisering i fristående system. Mer information om Kerberos finns i Microsoft Kerberos.

NTLM-autentiseringsuppgifter baseras på data som hämtas under den interaktiva inloggningsprocessen och består av ett domännamn, ett användarnamn och en enkelriktad hash- av användarens lösenord. NTLM använder ett krypterat protokoll för utmaning/svar för att autentisera en användare utan att skicka användarens lösenord via kabeln. I stället måste systemet som begär autentisering utföra en beräkning som bevisar att det har åtkomst till de skyddade NTLM-autentiseringsuppgifterna.

Interaktiv NTLM-autentisering via ett nätverk omfattar vanligtvis två system: ett klientsystem, där användaren begär autentisering, och en domänkontrollant, där information om användarens lösenord sparas. Icke-interaktiv autentisering, som kan krävas för att tillåta en redan inloggad användare att komma åt en resurs, till exempel ett serverprogram, omfattar vanligtvis tre system: en klient, en server och en domänkontrollant som utför autentiseringsberäkningar för serverns räkning.

Följande steg visar en översikt över NTLM-icke-interaktiv autentisering. Det första steget innehåller användarens NTLM-autentiseringsuppgifter och sker endast som en del av processen för interaktiv autentisering (inloggning).

  1. (Endast interaktiv autentisering) En användare får åtkomst till en klientdator och tillhandahåller ett domännamn, användarnamn och lösenord. Klienten beräknar en kryptografisk hash- av lösenordet och tar bort det faktiska lösenordet.

  2. Klienten skickar användarnamnet till servern (i klartext).

  3. Servern genererar ett slumptal på 8 byte som kallas utmaning eller nonceoch skickar det till klienten.

  4. Klienten krypterar den här utmaningen med hash-värdet för användarens lösenord och returnerar resultatet till servern. Detta kallas svar.

  5. Servern skickar följande tre objekt till domänkontrollanten:

    • Användarnamn
    • Utmaning skickad till klienten
    • Svar som tagits emot från klienten
  6. Domänkontrollanten använder användarnamnet för att hämta hashen för användarens lösenord från säkerhetskontohanterarens databas. Den använder den här lösenordshash för att kryptera utmaningen.

  7. Domänkontrollanten jämför den krypterade utmaning som den beräknade (i steg 6) med det svar som beräknas av klienten (i steg 4). Om de är identiska lyckas autentiseringen.

Ditt program bör inte komma åt NTLM-säkerhetspaketet direkt. I stället bör den använda säkerhetspaketet Negotiate. Med Negotiate kan ditt program dra nytta av mer avancerade säkerhetsprotokoll om de stöds av de system som ingår i autentiseringen. För närvarande väljer säkerhetspaketet Förhandla mellan Kerberos och NTLM. Negotiate väljer Kerberos om det inte kan användas av något av de system som ingår i autentiseringen.