Приховування паролів у wpa_supplicant.conf з WPA-EAP та MSCHAP-v2


23

Моє wpa_supplicant.confвиглядає так:

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"
}

За допомогою цієї специфічної комбінації WPA-EAP та MSCHAP-v2, чи є спосіб не включити свій пароль чітко в цей файл конфігурації?

Здається, ChangeLog стверджує, що це можливо (з 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

Деякі примітки:

  • Використовувати інший пароль - це не варіант, оскільки я не маю контролю над цією мережею (це корпоративна мережа, і одне ім’я користувача / пароль використовується для доступу до всіх сервісів, включаючи підключення до Wi-Fi).

  • Слово про дублікати:

1 Цей ансер стверджує, що використання хешованого пароля означає, що хеш стає паролем. Це технічно вірно, але, принаймні, хеш - це лише доступ до Wi-Fi , що є значним прогресом щодо витоку загального пароля, що надає доступ до декількох сервісів.

Відповіді:


20

Ви можете генерувати NtPasswordHash(так само хеш паролів NTLM) таким чином:

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

Префікс його "hash:" у файлі wpa_supplicant.conf, тобто

password=hash:6602f435f01b9173889a8d3b9bdcfd0b

На macOS код iconv є UTF-16LE

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

Зауважте, що ви не отримуєте особливої ​​безпеки. Якщо зловмисник знайде файл із хешем, то він може тривіально приєднатися до мережі (так само, як це робить ваш комп’ютер), тому хеширование пароля зовсім не допомагає. Якщо пароль використовується деінде, то зловмиснику доведеться застосувати грубу силу, щоб знайти оригінальний пароль (тобто спробувати найбільш вірогідні паролі та обчислити їх хеш, поки вони не знайдуть відповідність). Оскільки ви можете обчислити близько 1 мільярда хешів в секунду на звичайному ПК, це не велика перешкода, і зловмисники можуть легко використовувати попередньо обчислені таблиці, оскільки хеш несольовий. NT справді жахливий як алгоритм хешування паролів.


Спасибі! Це виглядає перспективно, але це не працює для мене; дивлячись на -dслід wpa_supplicant, я отримую різні EAP-PEAP: Derived Session-Id, EAP-PEAP: Decrypted Phase 2 EAP, MSCHAPV2: auth_challenge - hexdump(len=16):і MSCHAPV2: password hash - hexdump(len=...)виходи, і , нарешті , два повідомлення про те , EAP-TLV: TLV Result - FailureіEAPOL authentication completed - result=FAILURE
Клеман

Просто для уточнення: я отримую MSCHAPV2: password hash - hexdumpрядок у невдалому сліді налагодження, що є обнадійливим (у незашифрованого MSCHAPV2: password - hexdump_asciiнатомість є лінія), але з'єднання не вдається
Clément

1
@ Clément Просто для того, щоб переконатися, що генерується правильний хеш: наведена вище команда, виконана у вашій системі, обчислює той же хеш, що і цей онлайн-калькулятор , правда?
Гвідо

1
Це не працює, якщо пароль довший 14 символів.
tjohnson

1
@Alden Дуже дешево. Немає способу повернутися безпосередньо з хешу на вхід, але ви можете спробувати безліч можливих паролів і обчислити їх хеші, поки не знайдете відповідний. MD4 дуже швидкий, 1 мільярд за 2 секунди за допомогою 6-річного GPU .
Жил "ТАК - перестань бути злим"

16

Відкрити термінал і ввести:

wpa_passphrase YOUR_SSID YOUR_PASSWORD

Вибірка зразка:

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

Відкрийте wpa_supplicant.confфайл і додайте наступний рядок:

psk=6a24edf1592aec4465271b7dcd204601b6e78df3186ce1a62a31f40ae9630702

2
WPA PSK (який є хешованою комбінацією SSID та пароля) не є тим самим, як хеш NTLM / NtPasswordHash (який є 16-бітним хешем MD4 пароля).
Гвідо

5
ОП запитала про WPA-EAP, а не WPA-PSK.
Гвідо

2
Вибачте, якщо публікація не дала зрозуміти: це саме рішення в першому не дублікаті, який я вказав. У конфігурації, про яку я запитую, не існує загальнодоступного ключа.
Clément

1
це може бути не конкретним запитанням, але це допомогло мені вирішити свою проблему. Дякую.
друкарня
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.