# LM-Hash

Der LAN-Manager-Hash oder LM-Hash ist eine kryptographische Hashfunktion. Sie wird vom Microsoft LAN Manager und teilweise von Windows-NT-basierten Betriebssystemen verwendet, um 128-Bit-Hashwerte von Passwörtern zu speichern. Ursprünglich wurde LM-Hash für den Microsoft LAN Manager entwickelt. Er wird seitdem sowohl im LAN Manager als auch von Microsoft Windows genutzt, um Benutzerpasswörter zu speichern, die kürzer als 15 Zeichen sind. Diese Art von Hash ist die einzige Art von Hash-Funktion, die in Microsoft LAN Manager und Versionen von Windows bis zu Windows Me verwendet wird. Er wird nur aus Gründen der Abwärtskompatibilität auch von neueren Windows-Versionen unterstützt, aber für die Authentifizierung von Konten nicht verwendet.

## Algorithmus

Der LM-Hash wird folgendermaßen berechnet:
* Das Passwort des Benutzers in Form eines OEM-Strings wird zu Großbuchstaben umgeformt.
* Ist das Passwort kürzer als 14 Bytes, wird es mit Nullbytes aufgefüllt.
* Das Passwort mit der festen Länge wird in zwei 7-Byte-Hälften aufgeteilt.
* Aus jeder Hälfte wird durch Hinzufügen eines NON-Parity-Bits nach jeweils 7 Bits ein 64 Bit langer DES-Schlüssel erzeugt.
* Jeder dieser Schlüssel wird dazu genutzt, den konstanten ASCII-String “KGS!@#$%” mit DES zu verschlüsseln, woraus zwei 8 Byte Chiffretext-Werte resultieren.
* Diese beiden Chiffretext-Werte werden verbunden, um einen 16-Byte-Wert zu bilden, der den LM-Hash darstellt.
** War das Passwort kürzer als 8 Stellen, so enthält die 2. Hälfte stets den Hash von 7 Nullen.
Wird ein Passwort gewählt, für welches kein LM-Hash gebildet werden kann, z. B. mit einer Länge von mindestens 15 Stellen, so werden beide Hälften mit Nullen aufgefüllt. Derselbe Wert wird auch gebildet, wenn auf dem jeweiligen System die Generierung von LM-Hashes allgemein deaktiviert wurde.

## Sicherheitsschwäche

Obwohl der LM-Hash auf DES basiert, kann er aufgrund zweier Schwächen in seiner Implementation einfach geknackt werden. Erstens werden Passwörter länger als sieben Zeichen in zwei 7 Byte lange Stücke geteilt und jedes Stück für sich gehasht. Zweitens werden alle Kleinbuchstaben im Passwort zu Großbuchstaben umgeformt, bevor das Passwort gehasht wird. Die erste Schwäche erlaubt, jede Hälfte des Passwortes getrennt anzugreifen. Während es $95^{14}\approx 2^{92}$ verschiedene Passwörter aus bis zu 14 Buchstaben uneinheitlicher Groß-/Kleinschreibung und anderen in einem Passwort zulässigen Zeichen gebildet werden können, gibt es nur $95^{7}\approx 2^{46}$ verschiedene 1-7 Zeichen-Passwörter, welche den gleichen Zeichensatz nutzen. Durch die Konvertierung des Strings in Großbuchstaben reduziert sich die Anzahl der Möglichkeiten für jede Hälfte auf $69^{7}\approx 2^{43}$. Bei Durchführung einer Bruteforceattacke auf die einzelnen Hälften können moderne, leistungsfähige CPUs alphanumerische LM-Hashes innerhalb weniger Stunden auf einem Kern knacken.
Anschließend liegt das jeweilige Passwort in Großbuchstaben vor. Falls dies nicht bereits das tatsächliche Passwort ist, können gegen die NTLM Hash des jeweiligen Kontos noch alle Varianten in Groß- und Kleinschreibung geprüft werden. Der Rechenaufwand dafür ist minimal.
Da der LM-Hash keinen Salt beinhaltet, ist auch eine time-memory trade-off Kryptoanalyse-Attacke, wie bei Rainbow Tables, durchführbar. Im Jahr 2003 wurde Ophcrack, eine Implementation der Rainbow-Table-Technik, veröffentlicht. Es zielt speziell auf die Schwächen in der LM-Verschlüsselung ab und beinhaltet vorberechnete Daten, hinreichend, um nahezu alle alphanumerischen LM-Hashes in wenigen Sekunden zu brechen. Viele Cracking-Tools, wie zum Beispiel RainbowCrack, L0phtCrack und Cain & Abel, enthalten ähnliche Attacken und machen das Knacken von LM-Hashes trivial.
Als Reaktion auf die Sicherheitsschwächen des LM-Hashs führte Microsoft den NTLM-Algorithmus in Windows NT 3.1 ein. Während LAN Manager als veraltet betrachtet wird und aktuelle Windows-Betriebssysteme die stärkere NTLM-Hashing-Methode verwenden, berechnen und speichern alle Windows-Systeme den LM-Hash standardmäßig noch immer, um mit LAN Manager und Windows Me oder früheren Clients kompatibel zu sein. Es ist sinnvoll, diese Eigenschaft dort zu deaktivieren, wo sie nicht benötigt wird. Microsoft behauptete, dass die Unterstützung für LM im neuen Betriebssystem Windows Vista vollständig beseitigt werden wird. Dennoch enthält selbst Windows 7 in der Praxis die Unterstützung für den LM-Hash, wenn sie auch standardmäßig deaktiviert ist. Über Lokale Sicherheitsrichtlinien in der Systemverwaltung ist eine Aktivierung möglich. Bei den Home-Versionen von Microsoft Windows Vista und 7 ist diese Einstellung nur über die Registrierungsdatenbank verfügbar.

## Quellen

* ↑ Jesper M. Johansson: Die Grundsatzdiskussion: Kennwort-Sätze oder Kennwörter. Problemstellung.
* ↑ Eric Glass: The NTLM Authentication Protocol. 2003, abgerufen am 5. Juni 2006.
* ↑ https://support.microsoft.com/de-de/help/299656/how-to-prevent-windows-from-storing-a-lan-manager-hash-of-your-passwor. Abgerufen am 23. Oktober 2017.
* ↑ How to prevent Windows from storing a LAN manager hash of your password in Active Directory and local SAM databases. In: Microsoft Knowledge Base. Abgerufen am 5. Juni 2006.
* ↑ Jesper Johansson: The Most Misunderstood Windows Security Setting of All Time. In: TechNet Magazine. August 2006 (microsoft.com [abgerufen am 8. Januar 2007]).