Red Hat Bugzilla – Bug 848754
Defeating PPTP VPNs and WPA2 Enterprise with MS-CHAPv2 (DEF CON 20)
Last modified: 2015-07-31 06:05:32 EDT
At DEF CON 20 Conference, Moxie Marlinspike, David Hulton and Marsh Ray presented a way to efficiently extract user passwords from the captured MS-CHAPv2 authentication exchange. They described how to reduce complexity of the attack to the complexity of cracking single DES - 2^56, and demonstrated this can be done in less that 24 hours using a specialized hardware. Details can be found in:
Additionally, chapcrack tool was published which extracts MS-CHAPv2 handshakes from network capture files (pcap) and use CloudCracker service to extract user password.
Presentation points out two common uses of MS-CHAPv2 - PPTP (Point-to-Point Tunneling Protocol) VPNs and WPA2 Enterprise network/wifi authentication.
(In reply to comment #0)
> They described how to reduce complexity of the attack to the complexity of
> cracking single DES - 2^56, and demonstrated this can be done in less that
> 24 hours using a specialized hardware.
Additional internet sources point out that this reduction to 2^57 / 2^56 was previously known and documented, such as in Bruce Schneier analysis of MS-CHAPv2 security:
> Presentation points out two common uses of MS-CHAPv2 - PPTP (Point-to-Point
> Tunneling Protocol) VPNs and WPA2 Enterprise network/wifi authentication.
This presentation demonstrates that with current hardware, it's possible to extract passwords from MS-CHAPv2 handshakes quickly regardless of the actual user password length. Authors point out that this renders the use of PPTP VPNs completely insecure, as extracted password allows decryption of the whole VPN communication.
In Red Hat Enterprise Linux and Fedora, this would affect uses of pptp client packages (along with ppp), and NetworkManager-pptp. There's currently no known mitigation for this issue for this use case, presentation authors recommend migration to different VPN solutions.
Following blog post discusses WPA2 Enterprise use case. It points out that MS-CHAPv2 is used as EAP tunneled authentication protocol, such as with PEAPv0/EAP-MSCHAPv2 and EAP-TTLS. MS-CHAPv2 handshake packets are exchanged over previously established TLS connection. The use of TLS prevents passive eavesdroppers from being able to easily sniff MS-CHAPv2 handshake, while wifi client configuration requiring verification of the SSL certificate of the Radius authentication server is required to prevent attacks from active MITM attackers trying to impersonate authentication server to obtain MS-CHAPv2 response form the client. The post concludes the impact of this on WPA2 use cases is minimal compared to the previous previous knowledge of the security of used protocols.
In Red Hat Enterprise Linux and Fedora, FreeRadius is available as open source implementation of the Radius server that includes MS-CHAPv2 support. On the client side, wpa_supplicant and NetworkManager are used.
Closing this. MS-CHAPv2 is broken and should only be used in protected / tunneled connections, or alternatives considered.