Minha wpa_supplicant.conf
aparência é assim:
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"
}
Com essa combinação específica de WPA-EAP e MSCHAP-v2, existe uma maneira de não incluir minha senha clara neste arquivo de configuração?
O ChangeLog parece afirmar que isso é viável (desde 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
Algumas notas:
Usar uma senha diferente não é uma opção, pois não tenho controle sobre esta rede (esta é uma rede corporativa e um único nome de usuário / senha é usado para acessar todos os serviços, incluindo a conexão ao Wifi).
Uma palavra sobre duplicatas:
- 40: use-wpa-supplicant-sem-texto-simples-senhas é sobre chaves pré-compartilhadas
- 74500: wpa-suplicant-armazenar-senha-como-hash-wpa-eap-com-phase2-auth-pap usa PAP como autenticação de fase 2 (não MSCHAP-v2).
- 85757: armazenar-senha-como-hash-em-wpa-suplicante-conf é muito semelhante a esta pergunta, mas foi (incorretamente) fechado como uma duplicata de 74500 ; infelizmente, as respostas dadas à suposta duplicada são específicas para PAP e não se aplicam ao caso MSCHAP-v2. O próprio 85757 possui uma resposta alegando que é essencialmente impossível, independentemente do protocolo, mas a justificativa é inválida 1
1 Esse aviso afirma que o uso de uma senha com hash significa que o hash se torna a senha. Isso é tecnicamente verdade, mas pelo menos o hash é uma senha apenas de wifi , que é um progresso significativo ao vazar uma senha compartilhada que concede acesso a vários serviços.
-d
traço de wpa_supplicant, recebo diferentesEAP-PEAP: Derived Session-Id
,EAP-PEAP: Decrypted Phase 2 EAP
,MSCHAPV2: auth_challenge - hexdump(len=16):
, eMSCHAPV2: password hash - hexdump(len=...)
saídas, e, finalmente, duas mensagens dizendoEAP-TLV: TLV Result - Failure
eEAPOL authentication completed - result=FAILURE