Menyembunyikan kata sandi di wpa_supplicant.conf dengan WPA-EAP dan MSCHAP-v2

23

wpa_supplicant.confPenampilan saya seperti ini:

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

Dengan kombinasi spesifik WPA-EAP dan MSCHAP-v2 ini, adakah cara untuk tidak memasukkan kata sandi saya dengan jelas dalam file konfigurasi ini?

ChangeLog tampaknya mengklaim bahwa ini layak (sejak 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

Beberapa catatan:

  • Menggunakan kata sandi yang berbeda bukanlah suatu pilihan, karena saya tidak memiliki kendali atas jaringan ini (ini adalah jaringan perusahaan, dan satu nama pengguna / kata sandi digunakan untuk mengakses semua layanan, termasuk menghubungkan ke Wifi).

  • Sepatah kata tentang duplikat:

1 Bahwa anser mengklaim bahwa menggunakan kata sandi hash berarti bahwa hash menjadi kata sandi. Secara teknis ini benar, tetapi setidaknya hash adalah kata sandi wifi-saja , yang merupakan kemajuan signifikan dari kebocoran kata sandi bersama yang memberikan akses ke beberapa layanan.

Sejuk
sumber

Jawaban:

20

Anda dapat membuat sendiri NtPasswordHash(alias hash NTLM kata sandi) sebagai berikut:

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

Awali dengan "hash:" di file wpa_supplicant.conf, yaitu

password=hash:6602f435f01b9173889a8d3b9bdcfd0b

Pada macOS kode ikonv adalah UTF-16LE

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

Perhatikan bahwa Anda tidak mendapatkan banyak keamanan. Jika penyerang menemukan file dengan hash, maka mereka dapat dengan mudah bergabung dengan jaringan (dengan cara yang sama seperti komputer Anda), jadi memiliki hash kata sandi tidak membantu sama sekali. Jika kata sandi digunakan di tempat lain, maka penyerang harus menggunakan brute force untuk menemukan kata sandi asli (yaitu mencoba kata sandi yang paling mungkin dan menghitung hash mereka sampai mereka menemukan kecocokan). Karena Anda dapat menghitung sekitar 1 miliar hash per detik pada PC biasa, itu bukan rintangan besar, dan penyerang dapat dengan mudah menggunakan tabel yang sudah dikomputasi karena hash tidak diasah. NT benar-benar mengerikan sebagai algoritma hashing kata sandi.

Guido
sumber
Terima kasih! Ini terlihat menjanjikan, tetapi tidak berhasil untuk saya; melihat -djejak wpa_supplicant, saya mendapatkan berbeda EAP-PEAP: Derived Session-Id, EAP-PEAP: Decrypted Phase 2 EAP, MSCHAPV2: auth_challenge - hexdump(len=16):, dan MSCHAPV2: password hash - hexdump(len=...)output, dan akhirnya dua pesan yang mengatakan EAP-TLV: TLV Result - FailuredanEAPOL authentication completed - result=FAILURE
Clément
Hanya untuk mengklarifikasi: Saya mendapatkan MSCHAPV2: password hash - hexdumpgaris di jejak debug yang gagal, yang cukup menggembirakan (yang non-terenkripsi memiliki MSCHAPV2: password - hexdump_asciigaris sebagai gantinya), tetapi koneksi gagal
Clément
1
@ Clément Hanya untuk memastikan hash yang tepat dihasilkan: perintah di atas yang dijalankan pada sistem Anda menghitung hash yang sama dengan kalkulator online ini , bukan?
Guido
1
Ini tidak berfungsi jika kata sandi lebih panjang dari 14 karakter.
tjohnson
1
@Alden Sangat murah. Tidak ada cara untuk kembali langsung dari hash ke input, tetapi Anda dapat mencoba banyak kata sandi yang mungkin dan menghitung hash mereka sampai Anda menemukan yang cocok. MD4 sangat cepat, 1 miliar dalam 2 detik dengan GPU berusia 6 tahun .
Gilles 'SANGAT berhenti menjadi jahat'
16

Terminal terbuka dan ketik:

wpa_passphrase YOUR_SSID YOUR_PASSWORD

Output sampel:

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

Buka wpa_supplicant.conffile dan tambahkan baris berikut:

psk=6a24edf1592aec4465271b7dcd204601b6e78df3186ce1a62a31f40ae9630702
GAD3R
sumber
2
WPA PSK (yang merupakan kombinasi hash SSID dan kata sandi) tidak sama dengan hash / NtPasswordHash NTLM (yang merupakan hash 16-bit MD4 dari kata sandi saja).
Guido
5
OP bertanya tentang WPA-EAP, bukan WPA-PSK.
Guido
2
Maaf jika posting tidak memperjelas: ini adalah solusi tepat pada non-duplikat pertama yang saya daftarkan. Tidak ada kunci yang dibagikan sebelumnya dalam konfigurasi yang saya tanyakan.
Clément
1
ini mungkin bukan pertanyaan khusus yang diajukan, tetapi itu membantu saya menyelesaikan masalah saya. Terima kasih.
typelogic