Wozu wird NTLM verwendet?
Windows New Technology LAN Manager (NTLM) ist ein von Microsoft angebotenes Paket mit Sicherheitsprotokollen. Diese dienen der Authentifizierung der Benutzeridentität und sollen die Integrität und Vertraulichkeit der Benutzeraktivität schützen. Genau genommen ist NTLM ein Single Sign-On (SSO)-Tool, das anhand eines Challenge-Response-Protokolls den Benutzer verifiziert, ohne von ihm die Eingabe eines Kennworts zu verlangen.
Trotz bekannter Schwachstellen ist NTLM nach wie vor weit verbreitet und wird selbst auf neuen Systemen implementiert, um die Kompatibilität mit Legacy-Clients und -Servern zu gewährleisten. NTLM wird weiterhin von Microsoft unterstützt, allerdings wurde das Protokoll bei Windows 2000 und späteren Active Directory-Domänen durch das Standard-Authentifizierungsprotokoll Kerberos ersetzt.
Wie funktioniert das NTLM-Protokoll?
NTLM authentifiziert Benutzer mithilfe eines Challenge-Response-Mechanismus. Dieser Prozess besteht aus drei Meldungen:
- Verhandlungsmeldung vom Client
- Challenge-Meldung vom Server
- Authentifizierungsmeldung vom Client
NTLM-Authentifizierungsprozess
Die NTLM-Authentifizierung erfolgt in der Regel in diesen Schritten:
- Der Benutzer gibt dem Client seinen Benutzernamen, sein Kennwort und seinen Domänennamen bekannt.
- Der Client generiert eine „verschlüsselte“ Variante des Kennworts, den so genannten Hash, und löscht das vollständige Kennwort.
- Der Client übergibt dem relevanten Server eine Klartextversion des Benutzernamens.
- Der Server antwortet dem Client mit einer Challenge, die aus einer willkürlichen 16-Byte-Zahl besteht.
- Als Antwort sendet der Client die Challenge, die mit dem Hash des Benutzerkennworts verschlüsselt ist.
- Anschließend sendet der Server Challenge, Antwort und Benutzername an den Domänencontroller.
- Der Domänencontroller ruft das Kennwort des Benutzers aus der Datenbank ab und verschlüsselt damit die Challenge.
- Anschließend gleicht der Domänencontroller die verschlüsselte Challenge mit der Client-Antwort ab. Stimmen die beiden Teile überein, gilt der Benutzer als authentifiziert und ihm wird Zugriff gewährt.
Was ist der Unterschied zwischen NTLM und Kerberos?
Genau wie NTLM ist auch Kerberos ein Authentifizierungsprotokoll. Es hat NTLM bei Windows 2000 und späteren Versionen als Standardtool für die Authentifizierung abgelöst.
Der wesentliche Unterschied zwischen NTLM und Kerberos besteht darin, dass die beiden Protokolle die Authentifizierung anders handhaben. NTLM basiert auf einem dreifachen Handshake zwischen Client und Server, um einen Benutzer zu authentifizieren. Kerberos folgt einem zweistufigen Prozess, bei dem ein Ticketing-Dienst bzw. ein Schlüsselverteilungscenter zum Einsatz kommen.
Ein weiterer wichtiger Unterschied ist das Hashen bzw. Verschlüsseln des Kennworts. NTLM basiert auf Kennwort-Hashing – einer Einwegfunktion, die basierend auf einer Eingabedatei eine Textzeichenfolge erzeugt. Kerberos nutzt Verschlüsselung – eine Zweiwegefunktion, die Informationen mithilfe eines Verschlüsselungsschlüssels verschlüsselt bzw. mithilfe eines Entschlüsselungsschlüssels wieder entschlüsselt.
Das Kerberos-Protokoll ist bei Microsoft heute die Standardmethode für Authentifizierung, dennoch wird NTLM als Ersatzlösung weiterhin vorgehalten. Falls die Benutzerauthentifizierung mit Kerberos nicht gelingt, versucht das System den Vorgang mit NTLM.
Warum wurde NTLM durch Kerberos ersetzt?
NTLM weist mehrere bekannte Sicherheitsschwachstellen in Verbindung mit Hashing und dem so genannten Salting auf.
Bei NTLM werden die auf dem Server und im Domänencontroller gespeicherten Kennwörter nicht mit einem Salt versehen. Das heißt, dem gehashten Kennwort wird keine zufällige Zeichenfolge hinzugefügt, um die Kennwortsicherheit zusätzlich zu erhöhen. Bedrohungsakteure, die im Besitz des Kennwort-Hashs sind, benötigen dann für die Authentifizierung bei einer Sitzung nicht das zugrunde liegende Kennwort. Die Systeme sind deshalb anfälliger für Brute-Force-Angriffe, bei denen der Angreifer versucht, ein Kennwort durch mehrere Anmeldeversuche zu erraten. Verwendet der Benutzer zudem ein schwaches oder gängiges Kennwort, sind die betreffenden Systeme gegenüber solchen Taktiken besonders wehrlos.
Die Kryptografie von NTLM ist außerdem nicht in der Lage, Weiterentwicklungen in den Bereichen Algorithmen und Verschlüsselung zu nutzen, durch die sich Sicherheitsfunktionen erheblich verbessern lassen.
Kerberos-Protokoll
Kerberos wurde Mitte der 1980er Jahre von Forschern des Massachusetts Institute of Technology (MIT) entwickelt. Der Name ist einer Gestalt der griechischen Mythologie entlehnt: Kerberos war ein dreiköpfiger Höllenhund, der den Eingang der Unterwelt bewachte.
Das Kerberos-Protokoll basiert auf den folgenden drei Sicherheitskomponenten:
- Einem Client, der die Authentifizierung anfordert
- Einem Server, zu dem der Client Zugriff haben möchte
- Einem Ticketing-Dienst oder Schlüsselverteilungscenter (Key Distribution Center, KDC)
Kerberos-Authentifizierung
Dies ist der zwölfstufige Prozess der Kerberos-Authentifizierung:
- Der Benutzer gibt dem Client seinen Benutzernamen, sein Kennwort und seinen Domänennamen bekannt.
- Der Client stellt ein Paket zusammen, den so genannten Authentifizierer. Darin sind alle relevanten Informationen zum Client enthalten, einschließlich Benutzername, Datum und Uhrzeit. Alle im Authentifizierer enthaltenen Informationen, mit Ausnahme des Benutzernamens, werden mit dem Kennwort des Benutzers verschlüsselt.
- Der Client sendet den verschlüsselten Authentifizierer an das KDC.
- Das KDC prüft den Benutzernamen, um die Identität des Clients festzustellen. Das KDC durchsucht die Active Directory-Datenbank nach dem Kennwort des Benutzers. Anschließend versucht das KDC, den Authentifizierer mit dem Kennwort zu entschlüsseln. Gelingt dies, ist die Identität des Clients verifiziert.
- Nachdem die Identität des Clients verifiziert wurde, erstellt das KDC ein Ticket bzw. einen Sitzungsschlüssel, das/der ebenfalls verschlüsselt und an den Client gesendet wird.
- Das Ticket bzw. der Sitzungsschlüssel wird im Kerberos-Fach des Clients abgelegt. Das Ticket kann innerhalb eines festgelegten Zeitraums (in der Regel 8 Stunden) für den Zugriff auf den Server verwendet werden.
- Falls der Client Zugriff auf einen weiteren Server benötigt, sendet er das ursprüngliche Ticket, zusammen mit einer Anfrage für den Zugriff auf die neue Ressource, an das KDC.
- Das KDC entschlüsselt das Ticket mit dem Schlüssel. (Der Client muss den Benutzer nicht authentifizieren, da das KDC anhand des Tickets verifizieren kann, dass die Identität des Benutzers bereits bestätigt wurde.)
- Das KDC generiert ein aktualisiertes Ticket bzw. einen aktualisierten Sitzungsschlüssel, damit der Client auf die neue freigegebene Ressource zugreifen kann. Dieses Ticket wird ebenfalls mit dem Schlüssel des Servers verschlüsselt. Anschließend sendet das KDC das Ticket an den Client.
- Der Client speichert den neuen Sitzungsschlüssel im Kerberos-Fach und sendet eine Kopie davon an den Server.
- Der Server entschlüsselt das Ticket mit seinem eigenen Kennwort.
- Wenn ihm dies gelingt, ist das Ticket gültig. Anschließend öffnet der Server das Ticket und überprüft in der Zugriffskontrollliste (ACL), ob der Client über die erforderliche Berechtigung für den Zugriff auf die Ressource verfügt.
Anwendungen, die NTLM verwenden
NTLM wurde ab Windows 2000 als Standardprotokoll für die Authentifizierung durch Kerberos abgelöst. NTLM wird jedoch weiterhin in allen Windows-Systemen verwendet, um die Kompatibilität zu älteren Clients und Servern zu gewährleisten.
Beispiel: Computer, auf denen Windows 95, Windows 98 oder Windows NT 4.0 ausgeführt wird, nutzen für die Netzwerkauthentifizierung mit einer Windows 2000-Domäne weiterhin das NTLM-Protokoll. Ebenso verwenden Computer, auf denen Windows 2000 ausgeführt wird, NTLM für die Authentifizierung von Servern bei Windows NT 4.0 oder früheren Versionen sowie für den Zugriff auf Ressourcen in Windows 2000- oder früheren Domänen. NTLM wird außerdem für das Authentifizieren lokaler Anmeldungen bei Controllern außerhalb der Domäne verwendet.
Vorteile und Nachteile von NTLM
NTLM gilt als veraltetes Protokoll. Seine Vorteile sind daher, im Vergleich zu moderneren Lösungen wie Kerberos, begrenzt. Das ursprüngliche Versprechen von NTLM wird jedoch nach wie vor gehalten: Clients vermeiden durch das Kennwort-Hashing, dass Kennwörter ungeschützt über das Netzwerk gesendet werden.
An folgender Stelle weist die NTLM-Authentifizierung jedoch einige eindeutige Nachteile auf:
- Einfache Authentifizierung. NTLM basiert auf einfacher Authentifizierung und stützt sich auf ein Challenge-Response-Protokoll, um den Benutzer zu identifizieren. Es bietet jedoch keine Unterstützung für Multifaktor-Authentifizierung (MFA), bei der die Identität eines Benutzers anhand von zwei oder mehr Informationen bestätigt wird.
- Sicherheitsschwachstellen. Die relativ simple Form von Kennwort-Hashing macht NTLM-Systeme anfällig für verschiedene Angriffsformen, darunter Pass-the-Hash- und Brute-Force-Angriffe.
- Veraltete Kryptografie. NTLM nutzt keine Weiterentwicklungen in den Bereichen Algorithmen und Verschlüsselung, um Kennwörter sicherer zu machen.
Lässt sich das Netzwerk mit NTLM überhaupt schützen?
Angesichts der bekannten Sicherheitsrisiken von NTLM empfiehlt CrowdStrike, den Einsatz von NTLM in Unternehmensnetzwerken weitestgehend zu reduzieren.
Unternehmen, die aus Kompatibilitätsgründen nicht auf NTLM verzichten können, empfiehlt CrowdStrike Folgendes, um die Sicherheit zu verbessern und das Risiko zu reduzieren:
- NTLM-Schutzmaßnahmen erzwingen. Um vom vollständigen Schutz vor NTLM-Relay-Angriffen zu profitieren, müssen Sie Serversignatur und EPA auf allen relevanten Servern aktivieren.
- Patchen! Stellen Sie sicher, dass Ihre Systeme über die neuesten Sicherheitsupdates von Microsoft verfügen.
- Fortschrittliche Techniken verwenden. Nutzen Sie fortschrittliche Techniken für NTLM-Relay-Erkennung und -Verhinderung, ähnlich denen, die beim Black Hat 2019-Auftritt von Preempt (jetzt CrowdStrike) veröffentlicht wurden.
- Schwache Varianten identifizieren. Einige NTLM-Clients verwenden schwache NTLM-Varianten (sie senden beispielsweise keinen Message Integrity Code). Dadurch setzen Sie Ihr Netzwerk einer höheren Gefährdung durch NTLM-Relay aus.
- NTLM-Datenverkehr im Netzwerk überwachen. Versuchen Sie, unsicheren NTLM-Datenverkehr weitestgehend einzuschränken.
Eliminieren Sie Clients, die LM-Antworten senden, und legen Sie die Netzwerksicherheit für Gruppenrichtlinienobjekte fest, damit die LAN-Manager-Authentifizierungsebene LM-Antworten ablehnt.