Ẩn mật khẩu trong wpa_supplicant.conf với WPA-EAP và MSCHAP-v2


23

Tôi wpa_supplicant.conftrông như thế này:

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

Với sự kết hợp cụ thể này của WPA-EAP và MSCHAP-v2, có cách nào để không bao gồm mật khẩu của tôi rõ ràng trong tệp cấu hình này không?

ChangeLog dường như tuyên bố rằng điều này là khả thi (kể từ năm 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

Một số lưu ý:

  • Sử dụng một mật khẩu khác không phải là một tùy chọn, vì tôi không có quyền kiểm soát mạng này (đây là mạng công ty và một tên người dùng / mật khẩu được sử dụng để truy cập tất cả các dịch vụ, bao gồm cả kết nối với Wifi).

  • Một từ về trùng lặp:

1 Anser tuyên bố rằng sử dụng mật khẩu băm có nghĩa là băm trở thành mật khẩu. Điều này đúng về mặt kỹ thuật, nhưng ít nhất hàm băm là mật khẩu chỉ có wifi , đây là tiến bộ đáng kể trong việc rò rỉ mật khẩu chia sẻ cấp quyền truy cập vào nhiều dịch vụ.

Câu trả lời:


20

Bạn có thể tự tạo NtPasswordHash(hay còn gọi là băm mật khẩu NTLM) như sau:

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

Tiền tố nó với "hash:" trong tệp wpa_supplicant.conf, tức là

password=hash:6602f435f01b9173889a8d3b9bdcfd0b

Trên macOS, mã iconv là UTF-16LE

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

Lưu ý rằng bạn không đạt được nhiều bảo mật. Nếu kẻ tấn công tìm thấy tệp có hàm băm, thì chúng có thể tham gia mạng một cách tầm thường (giống như máy tính của bạn), do đó, việc băm mật khẩu không giúp ích gì cả. Nếu mật khẩu được sử dụng ở bất kỳ nơi nào khác, thì kẻ tấn công sẽ phải sử dụng vũ lực để tìm mật khẩu ban đầu (tức là thử mật khẩu có khả năng nhất và tính toán hàm băm của chúng cho đến khi tìm thấy kết quả khớp). Vì bạn có thể tính toán khoảng 1 tỷ băm mỗi giây trên một PC thông thường, đó không phải là một trở ngại lớn và những kẻ tấn công có thể dễ dàng sử dụng các bảng được tính toán trước vì hàm băm không được mã hóa. NT thực sự khủng khiếp như một thuật toán băm mật khẩu.


Cảm ơn! Điều này có vẻ đầy hứa hẹn, nhưng nó không làm việc cho tôi; nhìn vào -ddấu vết của wpa_supplicant, tôi nhận khác nhau EAP-PEAP: Derived Session-Id, EAP-PEAP: Decrypted Phase 2 EAP, MSCHAPV2: auth_challenge - hexdump(len=16):, và MSCHAPV2: password hash - hexdump(len=...)kết quả đầu ra, và cuối cùng là hai thông điệp nói EAP-TLV: TLV Result - FailureEAPOL authentication completed - result=FAILURE
Clément

Chỉ cần làm rõ: Tôi có một MSCHAPV2: password hash - hexdumpdòng trong dấu vết gỡ lỗi không thành công, điều này rất đáng khích lệ (cái không được mã hóa có một MSCHAPV2: password - hexdump_asciidòng thay thế), nhưng kết nối không thành công
Clément

1
@ Clément Chỉ để đảm bảo băm đúng đang được tạo: lệnh trên được thực thi trên hệ thống của bạn sẽ tính toán băm giống như máy tính trực tuyến này , phải không?
Guido

1
Điều này không hoạt động nếu mật khẩu dài hơn 14 ký tự.
tjohnson

1
@Alden Rất rẻ. Không có cách nào để quay lại trực tiếp từ hàm băm đến đầu vào, nhưng bạn có thể thử rất nhiều mật khẩu có thể và tính toán giá trị băm của chúng cho đến khi bạn tìm thấy mật khẩu phù hợp. MD4 rất nhanh, 1 tỷ trong 2 giây với GPU 6 năm tuổi .
Gilles 'SO- ngừng trở nên xấu xa'

16

Mở terminal và gõ:

wpa_passphrase YOUR_SSID YOUR_PASSWORD

Đầu ra mẫu:

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

Mở wpa_supplicant.conftệp và thêm dòng sau:

psk=6a24edf1592aec4465271b7dcd204601b6e78df3186ce1a62a31f40ae9630702

2
WPA PSK (là sự kết hợp băm của SSID và mật khẩu) không giống với hàm băm NTLM / NtPasswordHash (chỉ là hàm băm MD4 16 bit của mật khẩu).
Guido

5
OP đã hỏi về WPA-EAP, không phải WPA-PSK.
Guido

2
Xin lỗi nếu bài đăng không làm rõ: đây chính xác là giải pháp trong lần đầu tiên không trùng lặp mà tôi liệt kê. Không có khóa chia sẻ trước trong cấu hình mà tôi đang hỏi về.
Clément

1
đây có thể không phải là câu hỏi cụ thể được hỏi, nhưng nó đã giúp tôi giải quyết vấn đề của mình. Cảm ơn bạn.
typelogic
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.