Technische Übersicht über Kennwörter

Gilt für: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows 10, Windows Server 2012 R2, Windows 8.1, Windows Server 2012, Windows 8, Windows 7, Windows Server 2003, Windows Server 2008, Windows Server 2008 R2, Windows Vista

In diesem Thema für IT-Profis wird erläutert, wie Windows Kennwörter in Windows-Versionen ab Windows Server 2012 und Windows 8.1 implementiert. Außerdem werden sichere Kennwörter, Passphrasen und Kennwortrichtlinien erläutert.

Speicherung von Kennwörtern in Windows

Dieser Artikel enthält Informationen zum Speichern von „ruhenden“ Kennwörtern.

Windows stellt Kennwörter in 256 Zeichen langen UNICODE-Zeichenfolgen dar, das Anmeldedialogfeld ist jedoch auf 127 Zeichen beschränkt. Daher kann ein Kennwort höchstens 127 Zeichen lang sein. Programme wie beispielsweise Dienste können längere Kennwörter verwenden, diese müssen jedoch programmgesteuert festgelegt werden.

Das Windows-Betriebssystem speichert Kennwörter für unterschiedliche Zwecke auf unterschiedliche Arten.

Als OWF gespeicherte Kennwörter

Für die Verwendung in Windows-Netzwerken, einschließlich Active Directory-Domänen, werden Kennwörter standardmäßig auf zwei verschiedene Arten gespeichert: als LM OWF (LAN Manager One-Way Function, unidirektionale LAN-Manager-Funktion) und als NT OWF. „Unidirektionale Funktion“ ist ein Begriff, der eine mathematische Transformation von Daten nur in eine Richtung beschreibt. Die Daten, die transformiert werden, können nur unidirektional durch Verschlüsselung konvertiert werden, die Transformation kann nicht umgekehrt werden. Die am häufigsten verwendete Art von unidirektionalen Funktionen sind kryptografische Hashes. Ein Hash ist ein kleiner Satz an Daten, die mathematisch an einen größeren Satz an Daten gebunden sind, aus dem der Hash berechnet wird. Wenn der größere Satz Daten geändert wird, ändert sich auch der Hash. Hashes sind z. B. als Prüfsumme nützlich, um zu verifizieren, dass Daten bei einer Übertragung nicht geändert wurden. Ein kryptografischer Hash ist ein Hash, der bestimmte Eigenschaften erfüllt. Ein kryptografischer Hash muss beispielsweise so erstellt werden, dass es mathematisch nicht möglich ist, den größeren Satz Daten in einem angemessenen Zeitraum nur aus dem Hash abzuleiten. Ebenso ist es mathematisch nicht möglich, zwei Sätze an Daten zu finden, die denselben Hash generieren.

Es gibt viele verschiedene Arten von unidirektionalen Funktionen. Alle Hashfunktionen sind per Definition unidirektionale Funktionen. Dagegen können auch gewöhnliche kryptografische Funktionen, die in der Regel umkehrbar sind, dazu verwendet werden, eine unidirektionale Funktion zu erstellen. Dies lässt sich bewerkstelligen, indem die Daten und der Schlüssel in einer kryptografischen Funktion ausgetauscht werden und der feste Wert (der Schlüssel) mithilfe der Daten als Schlüssel verschlüsselt wird. Auf diese Weise wird der LM-Hash berechnet. Der LM-Hash wird wie folgt berechnet:

  1. Das Kennwort wird mit NULL-Bytes auf genau 14 Zeichen aufgefüllt. Wenn das Kennwort länger als 14 Zeichen ist, wird es für die weiteren Vorgänge durch 14 NULL-Bytes ersetzt.
  2. Das Kennwort wird in reine Großschreibung konvertiert.
  3. Das Kennwort wird in zwei Schlüssel mit je 7 Byte (56 Bit) aufgeteilt.
  4. Jeder Schlüssel wird verwendet, um eine feste Zeichenfolge zu verschlüsseln.
  5. Die beiden Ergebnisse aus Schritt 4 werden verkettet und als LM-Hash gespeichert.

Windows enthält den LM OWF-Algorithmus, um Abwärtskompatibilität mit Software- und Hardwarekomponenten zu gewährleisten, die keine neueren Algorithmen verwenden können.

Der NT-Hash ist einfach ein Hash. Mithilfe des MD4-Algorithmus wird ein Hashwert für das Kennwort berechnet und gespeichert. Die NT OWF wird für die Authentifizierung durch Domänenmitglieder sowohl in Domänen unter Windows NT 4.0 und früher als auch in Active Directory-Domänen verwendet.

Weder für den NT-Hash noch für den LM-Hash wird ein Salt berechnet. Salting ist ein Prozess, der ein Kennwort mit einem zufälligen numerischen Wert (dem Salt) kombiniert, bevor die unidirektionale Funktion verarbeitet wird.

In Active Directory gespeicherte Kennwörter

Ruhende Kennwörter werden in mehreren Attributen der Active Directory-Datenbank gespeichert (NTDS.DIT-Datei). Diese Attribute sind in der folgenden Tabelle aufgeführt:

Active Directory-Attribut Inhalt
unicodePwd Verschlüsselter NT-Hash
dbcsPwd Verschlüsselter LM-Hash
ntPwdHistory Verschlüsselte NT-Hashes – Kennwortverlauf
lmPwdHistory Verschlüsselte LM-Hashes – Kennwortverlauf
supplementalCredentials Kerberos-Schlüssel, WDigest usw.

Hinweis

Die Speicherung von LM-Hashes ist seit Windows Vista und Windows Server 2008 standardmäßig deaktiviert.

Wenn ein NT-Hash in der DIT-Datei gespeichert ist, wird er durch zwei Verschlüsselungsebenen geschützt. Unter Windows Server 2016/Windows 10 und höher wird der Hash zuerst mit DES (aus Gründen der Abwärtskompatibilität) und dann mit CNG BCrypt AES-256 verschlüsselt (siehe CNGBCRYPT_AES_ALGORITHM). Frühere Windows-Versionen verschlüsseln NT-Hashes mit zwei DES + RC4-Verschlüsselungsebenen.

Weitere Informationen zu ergänzenden Anmeldeinformationen finden Sie unter MS-SAMR: supplementalCredentials und Strukturen ergänzender Anmeldeinformationen.

Im lokalen SAM gespeicherte Kennwörter

Auf Domänenmitgliedern und Arbeitsstationen werden Kennworthashes für lokale Benutzerkonten in einer lokalen SAM-Datenbank (Security Account Manager) gespeichert, die sich in der Registrierung befindet. Sie werden mit den gleichen Verschlüsselungs- und Hashalgorithmen wie bei Active Directory verschlüsselt. Die Kennwörter im SupplementalCredentials-Attribut für lokale Benutzerkonten werden seit Windows Server 2016 ebenfalls in der lokalen SAM-Datenbank gespeichert.

Zwischengespeicherte Anmeldeinformationen

Windows speichert außerdem eine Kennwortüberprüfung auf einem Domänenmitglied, wenn sich ein Domänenbenutzer bei diesem Domänenmitglied anmeldet. Mit dieser Überprüfung kann ein Domänenbenutzer authentifiziert werden, wenn der Computer nicht auf den Domänencontroller zugreifen kann. Die Kennwortüberprüfung wird häufig auch als „zwischengespeicherte Anmeldeinformationen“ bezeichnet. Die Berechnung erfolgt durch Verketten des Benutzernamens mit dem NT-Hash und anschließende Generierung eines Hashs aus dem Ergebnis mithilfe der MD4-Hashfunktion.

Funktionsweise von Kennwörtern in Windows

In Windows und vielen anderen Betriebssystemen besteht eine Methode zur Authentifizierung der Identität eines Benutzers in der Verwendung einer geheimen Passphrase oder eines Kennworts.

Es wird empfohlen, eine sichere Multi-Faktor-Authentifizierung z. B. per Smartcard, FIDO und Windows Hello for Business zu verwenden. In einigen Szenarien ist jedoch weiterhin eine Authentifizierung per Kennwort erforderlich.

Zur Sicherung Ihrer Netzwerkumgebung ist es erforderlich, dass alle Benutzer sichere Kennwörter verwenden. Dadurch wird vermieden, dass ein böswilliger Benutzer ein schwaches Kennwort errät, sei es auf manuellem Weg oder mithilfe von Tools, um an die Anmeldeinformationen eines kompromittierten Benutzerkontos zu gelangen. Dies gilt insbesondere für Verwaltungskonten. Wenn Sie ein komplexes Kennwort regelmäßig ändern, verringert sich die Wahrscheinlichkeit eines erfolgreichen Kennwortangriffs.

Einstellungen für Kennwortrichtlinien steuern die Komplexität und Lebensdauer von Kennwörtern. Kennwortrichtlinien wirken sich auf Windows-Kennwörter aus, nicht unbedingt auf Kennwörter für Features und Funktionen.

Inwieweit Benutzer ihre Kennwörter ändern können und müssen, wird durch die Kennwortrichtlinien und die verfügbaren Schnittstellen reguliert. Beispielsweise können Benutzer über den sicheren Desktop ihr Kennwort jederzeit basierend auf den Kennwortrichtlinien ändern, die vom Systemadministrator oder Domänenadministrator verwaltet werden. Features wie Windows Vault, BitLocker und das verschlüsselnde Dateisystem ermöglichen Benutzern das Ändern von Kennwörtern, die nur für diese Features gelten.

Verwendung von Kennwörtern in Windows

Wenn ein Benutzer sich anmeldet, wird das von ihm eingegebene Kennwort in beide Arten von unidirektionalen Funktionen konvertiert und vom LSASS-Prozess (Local Security Authority Subsystem Service, Subsystemdienst der lokalen Sicherheitsautorität) im Arbeitsspeicher gespeichert. Wenn der Benutzer ein lokales Konto für die Authentifizierung verwendet, wird die NT OWF mit dem lokal gespeicherten NT-Hash verglichen. Stimmen beide Werte über, wird der Benutzer angemeldet. Wenn der Benutzer sich mit einem Hostnamen bei einer Active Directory-Domäne authentifiziert, um auf eine Ressource zuzugreifen, wird der NT-Hash in einer Kerberos-Anmeldung beim Schlüsselverteilungscenter (Key Distribution Center, KDC) verwendet, das in der Regel der Domänencontroller ist.

Kerberos kann in den folgenden Situationen nicht verwendet werden:

  • Authentifizieren bei einer Domäne, in der nur Windows NT 4.0 oder früher ausgeführt wird
  • Zugreifen auf eine Ressource auf einem Active Directory-Domänenmitglied unter Verwendung einer IP-Adresse anstelle eines Hostnamens
  • Zugreifen auf eine Ressource auf einem Computer, der kein Mitglied einer Active Directory-Domäne ist
  • Zugreifen auf eine Ressource auf einem Computer, der Mitglied einer Active Directory-Domäne ist, dem aber von Ihrer Domäne nicht vertraut wird
  • Zugreifen auf eine Ressource auf einem Computer, auf dem Kerberos nicht unterstützt wird

In diesen Situationen verwendet der Authentifizierungsprozess zwei verschiedene Protokolle: LAN-Manager und NTLM. Der Prozess beginnt damit, dass der Client eine Authentifizierungsaufforderung vom Authentifizierungsserver anfordert. Nach dem Empfang der Aufforderung berechnet der Client eine Antwort auf diese Aufforderung. Dazu werden zuerst die beiden Hashes des Kennworts mit NULL-Werten auf 168 Bit aufgefüllt. Die 168 Bit jedes Hashs werden dann in drei 56-Bit-DES-Schlüssel aufgeteilt. Die sechs DES-Schlüssel werden anschließend verwendet, um die Aufforderung zu verschlüsseln. Die drei mit dem LM-Hash erzeugten Verschlüsselungstexte werden verkettet und fungieren als LAN Manager-Antwort. Die drei mit dem NT-Hash erzeugten Verschlüsselungstexte werden verkettet und fungieren als NTLM-Antwort.

Die Funktionen, die zum Berechnen der Antwort verwendet werden, können durch die Einstellung LM-Kompatibilitätsgrad in der Gruppenrichtlinieneinstellung Netzwerksicherheit: LAN Manager-Authentifizierungsebene geändert werden. Wenn dieser Wert auf 1 oder niedriger festgelegt ist, sendet der Client die ursprünglichen LAN Manager- und NTLM-Antworten. Bei Festlegung auf 2 wird nur die NTLM-Antwort gesendet. Wenn der Wert auf 3 oder höher festgelegt ist, wird eine neue Version beider Protokolle verwendet. Die NTLM-Version wird als NTLMv2 bezeichnet. Die LAN Manager-Version wird häufig als LMv2 bezeichnet. Beide Protokolle verwenden den NT-Hash, um die Antwort zu berechnen, und beide verwenden anstelle oder zusätzlich zur Serveraufforderung eine clientseitige Aufforderung. Darüber hinaus gilt: Wenn die Einstellung für den LM-Kompatibilitätsgrad auf 1 oder höher festgelegt ist, erhält die NTLM-Antwort einen Zeitstempel, um Replay-Angriffe zu verhindern. Informationen zur Einstellung des LM-Kompatibilitätsgrads finden Sie unter Netzwerksicherheit: LAN Manager-Authentifizierungsebene.

Sichere Kennwörter

Kennwörter bilden die erste Verteidigungslinie vor nicht autorisierten Zugriffen auf Ihre Organisation. Ab Windows Server 2003 überprüft Windows während des Setups des Betriebssystems die Komplexität des Kennworts für das Administratorkonto. Wenn das Kennwort leer ist oder die Komplexitätsanforderungen nicht erfüllt, werden Sie im Windows Setup-Dialogfeld aufgefordert, ein sicheres Kennwort für das Administratorkonto zu erstellen. Wenn Sie dieses Kennwort leer lassen, können Sie nicht über das Netzwerk auf dieses Konto zugreifen.

Unsichere Kennwörter bieten Angreifern einfachen Zugang zu Ihren Computern und Ihrem Netzwerk, während sichere Kennwörter erheblich schwieriger zu entschlüsseln sind. In der folgenden Tabelle werden unsichere und sichere Kennwörter verglichen.

Unsicheres Kennwort Ein sicheres Kennwort
Leer Ist mindestens sieben Zeichen lang.
Enthält leicht erkennbare oder bekannte Informationen, z. B. den Benutzernamen oder den Domänennamen. Enthält „geheime“ oder zufällig generierte Informationen.
Ähnelt früheren Kennwörtern. Unterscheidet sich deutlich von früheren Kennwörtern.
Enthält ein vollständiges Wörterbuchwort. Enthält eine Mischung aus den folgenden Zeichen:

– Großbuchstaben

– Kleinbuchstaben

– Ziffern

– Symbole einschließlich Leerzeichen

Ein Beispiel für ein sicheres Kennwort wäre „J*p2leO4>F“.

Ein Kennwort kann die meisten Kriterien eines sicheren Kennworts erfüllen, aber dennoch eher unsicher sein. Beispielsweise ist „Hello2U!“ ein relativ unsicheres Kennwort, auch wenn es die meisten Kriterien für ein sicheres Kennwort und auch die Komplexitätsanforderungen der Kennwortrichtlinie erfüllt. „H!elZl2o“ ist ein sicheres Kennwort, weil Symbole, Ziffern und andere Buchstaben in das Wörterbuchwort eingestreut sind. Es ist wichtig, Benutzer über die Vorteile der Verwendung sicherer Kennwörter zu informieren und ihnen zu vermitteln, wie Kennwörter erstellt werden, die tatsächlich sicher sind.

Sie können Kennwörter erstellen, die Zeichen aus dem erweiterten ANSI-Zeichensatz enthalten. Die Verwendung erweiterter ANSI-Zeichen erhöht die Anzahl von Zeichen, aus denen Sie beim Erstellen eines Kennworts auswählen können. Eine Software zum Knacken von Kennwörtern wird zum Entschlüsseln von Kennwörtern mit erweiterten ANSI-Zeichen wahrscheinlich länger brauchen aus für andere Kennwörter. Bevor Sie erweiterte ANSI-Zeichen in Ihren Kennwörtern verwenden, testen Sie sie sorgfältig, um sicherzustellen, dass Kennwörter, die solche Zeichen enthalten, mit den Anwendungen kompatibel sind, die Ihre Organisation verwendet. Seien Sie bei der Verwendung von erweiterten ANSI-Zeichen in Kennwörtern besonders vorsichtig, wenn Ihre Organisation mehrere verschiedene Betriebssysteme verwendet. Diese Systeme verwenden z. B. möglicherweise eine Standardisierung gemäß ISO-8859-15. Die tatsächliche Protokollimplementierung unter Windows verwendet häufig UNICODE oder UTF8 anstelle der tatsächlichen ANSI-Codierung.

Beispiele für Kennwörter mit Zeichen aus dem erweiterten ANSI-Zeichensatz: „kUµ!¶0o“ und „Wf©$0k#»g¤5ªrd“.

Passphrasen in Windows

Eine Passphrase ist eine andere Form eines tokenbasierten Kennworts – die Token sind keine Symbole aus einem Zeichensatz, sondern ganze Wörter. Ein Beispiel für eine Passphrase wäre ein Satz, der Sonderzeichen, Ziffern, Großbuchstaben und Kleinbuchstaben enthält. Die wichtigsten Unterschiede zwischen Passphrasen und Kennwörtern:

  • Eine Passphrase enthält in der Regel Leerzeichen, Kennwörter dagegen nicht.
  • Eine Passphrase wesentlich viel länger als die meisten Wörter und – viel wichtiger – länger als jede zufällige Zeichenfolge aus Buchstaben, die ein Mensch sich im Normalfall merken könnte.

Passphrasen, die dem in der Richtlinie festgelegten Zeichenlimit entsprechen, sind im Allgemeinen schwieriger zu entschlüsseln als Kennwörter, da sie mehr Zeichen enthalten. Der LM-Hash bzw. der NT-Hash speichert ein Kennwort oder eine Passphrase, und der LM-Hash ist der schwächere der beiden.

Es gibt verschiedene Möglichkeiten, um sicherzustellen, dass der LM-Hash nicht gespeichert wird; eine davon besteht darin, Kennwörter oder Passphrasen mit mehr als 14 Zeichen zu verwenden. Sie können auch die Gruppenrichtlinieneinstellung Netzwerksicherheit: Keine LAN Manager-Hashwerte für nächste Kennwortänderung speichern verwenden. Durch Verwendung dieser Richtlinieneinstellung wird die Speicherung von LM-Hashes für alle Konten global deaktiviert. Die Änderung wird wirksam, wenn das Kennwort das nächste Mal geändert wird. Da sich diese Richtlinie nicht unmittelbar auswirkt, werden Sie potenzielle Interoperabilitätsprobleme, die dadurch verursacht werden, dass LM-Hashes nicht gespeichert werden, nicht sofort bemerken.

In Windows verfügbare lokale Kennwortrichtlinien

Sie können eine Kennwortrichtlinieneinstellung implementieren, die Anforderungen an die Kennwortkomplexität erzwingt. Weitere Informationen zu dieser Richtlinieneinstellung finden Sie unter Kennwort muss Komplexitätsanforderungen erfüllen. Informationen zum Anwenden einer Kennwortrichtlinie finden Sie unter Anwenden oder Ändern einer Kennwortrichtlinie. Informationen zu allen verfügbaren Kennwortrichtlinieneinstellungen finden Sie unter Kennwortrichtlinie.

Über Active Directory Domain Services (AD DS) verfügbare differenzierte Kennwortrichtlinie

Ab Windows Server 2008 können Sie mithilfe differenzierter Kennwortrichtlinienobjekte mehrere Kennwortrichtlinien festlegen und verschiedene Kennworteinschränkungen und Kontosperrungsrichtlinien auf unterschiedliche Gruppen von Benutzern innerhalb einer einzigen Domäne anwenden. Um beispielsweise die Sicherheit von privilegierten Konten zu erhöhen, können Sie striktere Einstellungen auf die privilegierten Konten und weniger strikte Einstellungen auf die Konten anderer Benutzer anwenden. Vielleicht möchten Sie auch für Konten, deren Kennwörter mit anderen Datenquellen synchronisiert werden, eine spezielle Kennwortrichtlinie anwenden.

Zum Speichern differenzierter Kennwortrichtlinien gibt es zwei neue Objektklassen im AD DS-Schema:

  • Container für Kennworteinstellungen
  • Kennworteinstellungen

Weitere Informationen zu diesen Richtlinien finden Sie unter AD DS: differenzierte Kennwortrichtlinien.