Verstecken von Passwörtern in wpa_supplicant.conf mit WPA-EAP und MSCHAP-v2

23

Mein wpa_supplicant.confsieht so aus:

network={
  ssid="Some name"
  scan_ssid=1
  key_mgmt=WPA-EAP
  eap=PEAP
  identity="my-user-id"
  password="(clear text password here)"
  ca_cert="/usr/share/ca-certificates/mozilla/GeoTrust_Global_CA.crt"
  phase2="auth=MSCHAPV2"
}

Gibt es bei dieser speziellen Kombination von WPA-EAP und MSCHAP-v2 eine Möglichkeit, mein Kennwort nicht in clear in diese Konfigurationsdatei aufzunehmen?

Das ChangeLog scheint zu behaupten, dass dies machbar ist (seit 2005!):

* added support for storing EAP user password as NtPasswordHash instead
  of plaintext password when using MSCHAP or MSCHAPv2 for
  authentication (hash:<16-octet hex value>); added nt_password_hash
  tool for hashing password to generate NtPasswordHash

Einige Notizen:

1 Dieser Anser behauptet, dass die Verwendung eines Hash-Passworts bedeutet, dass der Hash zum Passwort wird. Dies ist technisch gesehen richtig, aber zumindest handelt es sich bei dem Hash um ein reines WLAN- Passwort. Dies ist ein bedeutender Fortschritt gegenüber dem Verlust eines gemeinsam genutzten Passworts, das den Zugriff auf mehrere Dienste gewährt .

Clément
quelle

Antworten:

20

Sie können den NtPasswordHashNTLM-Passwort-Hash wie folgt selbst generieren :

echo -n plaintext_password_here | iconv -t utf16le | openssl md4

Stellen Sie "hash:" in der Datei wpa_supplicant.conf voran, d. H

password=hash:6602f435f01b9173889a8d3b9bdcfd0b

Unter macOS lautet der Symbolcode UTF-16LE

echo -n plaintext_password_here | iconv -t UTF-16LE | openssl md4

Beachten Sie, dass Sie nicht viel Sicherheit gewinnen. Wenn ein Angreifer die Datei mit dem Hash findet, kann er sich trivial mit dem Netzwerk verbinden (genau wie Ihr Computer), sodass das Hashing des Passworts überhaupt nicht hilft. Wenn das Kennwort an einer anderen Stelle verwendet wird, muss der Angreifer das ursprüngliche Kennwort mit brachialer Gewalt ermitteln (dh die wahrscheinlichsten Kennwörter ausprobieren und ihren Hash berechnen, bis eine Übereinstimmung gefunden wird). Da auf einem normalen PC ungefähr 1 Milliarde Hashes pro Sekunde berechnet werden können, ist dies keine große Hürde, und Angreifer können leicht vorberechnete Tabellen verwenden, da der Hash nicht gesalzen ist. NT ist wirklich schrecklich als Passwort-Hashing-Algorithmus.

Guido
quelle
Vielen Dank! Das sieht vielversprechend aus, funktioniert aber bei mir nicht. auf der Suche -dSpur von wpa_supplicant, erhalte ich unterschiedliche EAP-PEAP: Derived Session-Id, EAP-PEAP: Decrypted Phase 2 EAP, MSCHAPV2: auth_challenge - hexdump(len=16):, und MSCHAPV2: password hash - hexdump(len=...)Ausgänge, und schließlich zwei Nachrichten sagen , EAP-TLV: TLV Result - FailureundEAPOL authentication completed - result=FAILURE
Clément
Nur zur Verdeutlichung: Ich erhalte eine MSCHAPV2: password hash - hexdumpZeile in der fehlgeschlagenen Debug-Ablaufverfolgung, was ermutigend ist (die unverschlüsselte hat MSCHAPV2: password - hexdump_asciistattdessen eine Zeile), aber die Verbindung schlägt fehl
Clément
1
@ Clément Nur um sicherzustellen, dass der richtige Hash generiert wird: Der oben auf Ihrem System ausgeführte Befehl berechnet den gleichen Hash wie dieser Online-Rechner , oder?
Guido
1
Dies funktioniert nicht, wenn das Passwort länger als 14 Zeichen ist.
tjohnson
1
@Alden Sehr günstig. Es gibt keine Möglichkeit, direkt vom Hash zur Eingabe zurückzukehren, aber Sie können viele mögliche Passwörter ausprobieren und deren Hashes berechnen, bis Sie die passende gefunden haben. MD4 ist sehr schnell, 1 Milliarde in 2 Sekunden mit einer 6 Jahre alten GPU .
Gilles 'SO- hör auf böse zu sein'
16

Öffnen Sie das Terminal und geben Sie Folgendes ein:

wpa_passphrase YOUR_SSID YOUR_PASSWORD

Beispielausgabe:

network={
    ssid="YOUR_SSID"
    #psk="YOUR_PASSWORD"
    psk=6a24edf1592aec4465271b7dcd204601b6e78df3186ce1a62a31f40ae9630702
}

Öffnen Sie die wpa_supplicant.confDatei und fügen Sie die folgende Zeile hinzu:

psk=6a24edf1592aec4465271b7dcd204601b6e78df3186ce1a62a31f40ae9630702
GAD3R
quelle
2
Ein WPA-PSK (bei dem es sich um eine Hash-Kombination aus SSID und Kennwort handelt) ist nicht dasselbe wie ein NTLM-Hash / NtPasswordHash (bei dem es sich nur um einen 16-Bit-MD4-Hash des Kennworts handelt).
Guido
5
Das OP fragte nach WPA-EAP, nicht nach WPA-PSK.
Guido
2
Tut mir leid, wenn der Beitrag nicht klargestellt hat: Dies ist genau die Lösung für das erste nicht duplizierte, das ich aufgelistet habe. Es gibt keinen Pre-Shared Key in der Konfiguration, nach dem ich frage.
Clément
1
Dies ist möglicherweise nicht die spezifische Frage, die gestellt wird, aber es hat mir geholfen, mein Problem zu lösen. Vielen Dank.
typelogic