Microsoft NTLM

Windows-Abfrage/Rückmeldung (NTLM) ist das Authentifizierungsprotokoll, das in Netzwerken mit Systemen, die über das Windows-Betriebssystem verfügen, sowie in eigenständigen Systemen verwendet wird.

Das Microsoft Kerberos-Sicherheitspaket bietet für Systeme in Netzwerken größere Sicherheit als NTLM. Obwohl Microsoft Kerberos das bevorzugte Protokoll ist, wird NTLM weiterhin unterstützt. NTLM muss auch für die Anmeldeauthentifizierung auf eigenständigen Systemen verwendet werden. Weitere Informationen über Kerberos finden Sie unter Microsoft Kerberos.

NTLM-Anmeldeinformationen basieren auf Daten, die im Rahmen des interaktiven Anmeldeprozesses erfasst wurden, und bestehen aus einem Domänennamen, einem Benutzernamen und einem unidirektionalen Hash des Benutzerkennworts. NTLM verwendet ein verschlüsseltes Abfrage-/Rückmeldungsprotokoll, um einen Benutzer zu authentifizieren, ohne das Kennwort des Benutzers über das Netzwerk zu senden. Stattdessen muss das System, das die Authentifizierung anfordert, eine Berechnung durchführen, um zu belegen, dass es Zugriff auf die geschützten NTLM-Anmeldeinformationen hat.

Die interaktive NTLM-Authentifizierung über ein Netzwerk umfasst in der Regel zwei Systeme: ein Clientsystem, in dem der Benutzer die Authentifizierung anfordert, und einen Domänencontroller, auf dem Informationen im Zusammenhang mit dem Kennwort des Benutzers gespeichert werden. Die nichtinteraktive Authentifizierung, die erforderlich sein kann, um einem bereits angemeldeten Benutzer den Zugriff auf eine Ressource wie eine Serveranwendung zu ermöglichen, umfasst in der Regel drei Systeme: einen Client, einen Server und einen Domänencontroller, der die Authentifizierungsberechnungen im Auftrag des Servers durchführt.

Die folgenden Schritte stellen eine Gliederung der nichtinteraktiven NTLM-Authentifizierung dar. Der erste Schritt stellt die NTLM-Anmeldeinformationen des Benutzers bereit und tritt nur im Rahmen des interaktiven Authentifizierungsprozesses (Anmeldung) auf.

  1. (Nur interaktive Authentifizierung) Ein Benutzer greift auf einen Clientcomputer zu und stellt einen Domänennamen, einen Benutzernamen und ein Kennwort bereit. Der Client berechnet einen kryptografischen Hash des Kennworts und verwirft das tatsächliche Kennwort.

  2. Der Client sendet den Benutzernamen an den Server (in Klartext).

  3. Der Server generiert eine 8-Byte-Zufallszahl, die als Herausforderung oder Nonce bezeichnet wird, und sendet sie an den Client.

  4. Der Client verschlüsselt diese Herausforderung mit dem Hash des Benutzerkennworts und gibt das Ergebnis an den Server zurück. Dies wird als Antwort bezeichnet.

  5. Der Server sendet die folgenden drei Elemente an den Domänencontroller:

    • Benutzername
    • An den Client gesendete Herausforderung
    • Antwort, die vom Client empfangen wurde
  6. Der Domänencontroller verwendet den Benutzernamen, um den Hash des Kennworts des Benutzers aus der Sicherheitskontenverwaltungsdatenbank abzurufen. Sie verwendet diesen Kennworthash, um die Herausforderung zu verschlüsseln.

  7. Der Domänencontroller vergleicht die verschlüsselte Herausforderung, die er (in Schritt 6) berechnet hat mit der vom Client (in Schritt 4) berechneten Antwort. Wenn sie identisch sind, ist die Authentifizierung erfolgreich.

Ihre Anwendung sollte nicht direkt auf das NTLM-Sicherheitspaket zugreifen. Stattdessen sollte das Aushandlung-Sicherheitspaket verwendet werden. Aushandlung ermöglicht es Ihrer Anwendung, erweiterte Sicherheitsprotokolle zu nutzen, wenn sie von den an der Authentifizierung beteiligten Systemen unterstützt werden. Derzeit wählt das Aushandlung-Sicherheitspaket zwischen Kerberos und NTLM aus. Aushandlung wählt Kerberos aus, es sei denn, es kann nicht von einem der Systeme verwendet werden, die an der Authentifizierung beteiligt sind.