Jump to content

MS-CHAP: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Codename Lisa (talk | contribs)
Reverted good faith edits by 101.187.226.184 (talk): "Cryptanalysis" is the more common form. See http://www.dictionary.com/browse/cryptanalysis?r=75&src=ref&ch=dic.
Flaws: Add link to EAP-TLS
 
(35 intermediate revisions by 25 users not shown)
Line 1: Line 1:
{{Short description|Authentication protocol to validate users}}
'''MS-CHAP''' is the [[Microsoft]] version of the [[Challenge-Handshake Authentication Protocol]], CHAP. The protocol exists in two versions, MS-CHAPv1 (defined in RFC 2433) and MS-CHAPv2 (defined in RFC 2759). MS-CHAPv2 was introduced with [[Windows NT 4.0]] SP4 and was added to [[Windows 98]] in the "Windows 98 Dial-Up Networking Security Upgrade Release"<ref>{{cite web|title=Windows 98 Dial-Up Networking Security Upgrade Release Notes (August 1998)|url=https://support.microsoft.com/en-us/kb/189771|website=Support|publisher=Microsoft|date=August 1998}}</ref> and [[Windows 95]] in the "Dial Up Networking 1.3 Performance & Security Update for MS Windows 95" upgrade. [[Windows Vista]] dropped support for MS-CHAPv1.
'''MS-CHAP''' is the [[Microsoft]] version of the [[Challenge-Handshake Authentication Protocol]], (CHAP).


== Versions ==
MS-CHAP is used as one authentication option in Microsoft's implementation of the [[PPTP]] protocol for [[virtual private network]]s. It is also used as an authentication option with [[RADIUS]]<ref>{{Cite IETF |rfc=2548 |title=Microsoft Vendor-specific RADIUS Attributes}}</ref> servers which are used for [[WiFi]] security using the [[Wi-Fi Protected Access|WPA-Enterprise]] protocol. It is further used as the main authentication option of the [[Protected Extensible Authentication Protocol]] (PEAP).
The protocol exists in two versions, MS-CHAPv1 (defined in {{IETF RFC|2433}}) and MS-CHAPv2 (defined in {{IETF RFC|2759}}). MS-CHAPv2 was introduced with pptp3-fix <!-- from MS's old FTP site --> that was included in [[Windows NT 4.0]] SP4 and was added to [[Windows 98]] in the "Windows 98 Dial-Up Networking Security Upgrade Release"<ref>{{cite web|title=Windows 98 Dial-Up Networking Security Upgrade Release Notes (August 1998)|url=https://support.microsoft.com/en-us/kb/189771|website=Support|publisher=Microsoft|date=August 1998}}</ref> and [[Windows 95]] in the "Dial Up Networking 1.3 Performance & Security Update for MS Windows 95" upgrade. [[Windows Vista]] dropped support for MS-CHAPv1.


== Applications ==
Compared with CHAP,<ref>{{cite IETF |rfc=1994 |title=PPP Challenge Handshake Authentication Protocol (CHAP)}}</ref> MS-CHAP:<ref>{{Cite IETF |rfc=2433 |title=Microsoft PPP CHAP Extensions}}</ref><ref>{{Cite IETF |rfc=2759 |title=Microsoft PPP CHAP Extensions, Version 2}}</ref>
MS-CHAP is used as one authentication option in Microsoft's implementation of the [[PPTP]] protocol for [[virtual private network]]s. It is also used as an authentication option with [[RADIUS]]<ref>{{Cite IETF |rfc=2548 |title=Microsoft Vendor-specific RADIUS Attributes}}</ref> servers which are used with [[IEEE 802.1X]] (e.g., [[WiFi]] security using the [[Wi-Fi Protected Access|WPA-Enterprise]] protocol). It is further used as the main authentication option of the [[Protected Extensible Authentication Protocol]] (PEAP).
* is enabled by negotiating CHAP Algorithm 0x80 (0x81 for MS-CHAPv2) in LCP option 3, Authentication Protocol
* provides an authenticator-controlled password change mechanism
* provides an authenticator-controlled authentication retry mechanism
* defines failure codes returned in the Failure packet message field


== Features ==
MS-CHAPv2 provides mutual authentication between peers by piggybacking a peer challenge on the Response packet and an authenticator response on the Success packet.
Compared with CHAP,<ref>{{cite IETF |rfc=1994 |title=PPP Challenge Handshake Authentication Protocol (CHAP)}}</ref> MS-CHAP:<ref>{{Cite IETF |rfc=2433 |title=Microsoft PPP CHAP Extensions}}</ref><ref>{{Cite IETF |rfc=2759 |title=Microsoft PPP CHAP Extensions, Version 2}}</ref> works by negotiating CHAP Algorithm 0x80 (0x81 for MS-CHAPv2) in LCP option 3, Authentication Protocol. It provides an authenticator-controlled password change mechanism. It provides an authenticator-controlled authentication retry mechanism and defines failure codes returned in the Failure packet message field.
[[File:MSCHAPv2_Flow.pdf|thumb]]
MS-CHAPv2 provides mutual authentication between peers by piggybacking a peer challenge on the response packet and an authenticator response on the success packet.


MS-CHAP requires each peer to either know the plaintext password, or an MD4 hash of the password, and does not transmit the password over the link. As such, it is not compatible with most [[Password#Form_of_stored_passwords|password storage]] formats.
== Cryptanalysis ==


== Flaws ==
Several weaknesses have been found in MS-CHAPv2, some of which severely reduce the complexity of brute-force attacks making them feasible with modern hardware.<ref>{{Cite web |url=http://www.schneier.com/paper-pptpv2.pdf |title=Cryptanalysis of Microsoft's PPTP Authentication Extensions (MS-CHAPv2) |first1=Bruce |last1=Schneier |authorlink1=Bruce Schneier |author2=Mudge |first3=David |last3=Wagner |website=schneier.com |date=19 October 1999 |format=[[PDF]]}}</ref><ref>{{Cite web |url=http://penguin-breeder.org/pptp/download/pptp_mschapv2.pdf |title=Exploiting known security holes in Microsoft's PPTP Authentication Extensions (MS-CHAPv2) |first=Jochen |last=Eisinger |date=23 July 2001 |website=penguin-breeder.org}}</ref>
Weaknesses have been identified in MS-CHAP and MS-CHAPv2.<ref>{{Cite web |url=http://www.schneier.com/paper-pptpv2.pdf |title=Cryptanalysis of Microsoft's PPTP Authentication Extensions (MS-CHAPv2) |first1=Bruce |last1=Schneier |authorlink1=Bruce Schneier |author2=Mudge |first3=David |last3=Wagner |website=schneier.com |date=19 October 1999 }}</ref> The [[Data Encryption Standard|DES]] encryption used in NTLMv1 and MS-CHAPv2 to encrypt the [[NTLM]] password hash enable custom hardware attacks utilizing the method of brute force.<ref>{{Cite web |url=http://penguin-breeder.org/pptp/download/pptp_mschapv2.pdf |title=Exploiting known security holes in Microsoft's PPTP Authentication Extensions (MS-CHAPv2) |first=Jochen |last=Eisinger |date=23 July 2001 |website=penguin-breeder.org}}</ref>


MS-CHAP and MS-CHAPv2 uses the same weak 56-bit DES encryption as NTLMv1 to encrypt the NTLM password hash. 56-bit encryption had been well known as weak for years, but CloudCracker now provides a service targeted at cracking this weak DES encryption.<ref>{{Cite web |url=https://www.cloudcracker.com/blog/2012/07/29/cracking-ms-chap-v2/ |title=Divide and Conquer: Cracking MS-CHAPv2 with a 100% success rate |first=Moxie |last=Marlinspike |authorlink=Moxie Marlinspike |first2=David |last2=Hulton |work=Cloud Cracler |date=29 July 2012}}</ref>
As of 2012, MS-CHAP had been completely broken.<ref>{{cite web|url=https://www.cloudcracker.com/blog/2012/07/29/cracking-ms-chap-v2/|title=Divide and Conquer: Cracking MS-CHAPv2 with a 100% success rate|year=2012|publisher=[[DEF CON|David Hulton]]|archive-url=https://web.archive.org/web/20160316174007/https://www.cloudcracker.com/blog/2012/07/29/cracking-ms-chap-v2/|archive-date=16 March 2016|access-date=2013-03-10}}</ref>

After [[Windows 11]] 22H2, with the default activation of Windows Defender Credential Guard, users can no longer authenticate with MSCHAPv2. The developers recommend a move from MSCHAPv2-based connections to certificate-based authentication (such as PEAP-TLS or [[Extensible_Authentication_Protocol#EAP-TLS|EAP-TLS]]).<ref>{{Cite web|url=https://learn.microsoft.com/en-us/windows/security/identity-protection/credential-guard/credential-guard-considerations|title=Considerations when using Windows Defender Credential Guard - Windows Security|date=January 27, 2023|website=learn.microsoft.com}}</ref>


==See also==
==See also==

Latest revision as of 12:09, 23 November 2024

MS-CHAP is the Microsoft version of the Challenge-Handshake Authentication Protocol, (CHAP).

Versions

[edit]

The protocol exists in two versions, MS-CHAPv1 (defined in RFC 2433) and MS-CHAPv2 (defined in RFC 2759). MS-CHAPv2 was introduced with pptp3-fix that was included in Windows NT 4.0 SP4 and was added to Windows 98 in the "Windows 98 Dial-Up Networking Security Upgrade Release"[1] and Windows 95 in the "Dial Up Networking 1.3 Performance & Security Update for MS Windows 95" upgrade. Windows Vista dropped support for MS-CHAPv1.

Applications

[edit]

MS-CHAP is used as one authentication option in Microsoft's implementation of the PPTP protocol for virtual private networks. It is also used as an authentication option with RADIUS[2] servers which are used with IEEE 802.1X (e.g., WiFi security using the WPA-Enterprise protocol). It is further used as the main authentication option of the Protected Extensible Authentication Protocol (PEAP).

Features

[edit]

Compared with CHAP,[3] MS-CHAP:[4][5] works by negotiating CHAP Algorithm 0x80 (0x81 for MS-CHAPv2) in LCP option 3, Authentication Protocol. It provides an authenticator-controlled password change mechanism. It provides an authenticator-controlled authentication retry mechanism and defines failure codes returned in the Failure packet message field.

MS-CHAPv2 provides mutual authentication between peers by piggybacking a peer challenge on the response packet and an authenticator response on the success packet.

MS-CHAP requires each peer to either know the plaintext password, or an MD4 hash of the password, and does not transmit the password over the link. As such, it is not compatible with most password storage formats.

Flaws

[edit]

Weaknesses have been identified in MS-CHAP and MS-CHAPv2.[6] The DES encryption used in NTLMv1 and MS-CHAPv2 to encrypt the NTLM password hash enable custom hardware attacks utilizing the method of brute force.[7]

As of 2012, MS-CHAP had been completely broken.[8]

After Windows 11 22H2, with the default activation of Windows Defender Credential Guard, users can no longer authenticate with MSCHAPv2. The developers recommend a move from MSCHAPv2-based connections to certificate-based authentication (such as PEAP-TLS or EAP-TLS).[9]

See also

[edit]

References

[edit]