Point-to-Point Tunneling Protocol: Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Domain redirect
 
imported>Artoria2e5
 
Line 10: Line 10:


== History ==
== History ==
A specification for PPTP was published in July 1999 as RFC 2637<ref>RFC 2637</ref> and was developed by a vendor consortium formed by [[Microsoft]], [[Ascend Communications]] (today part of [[Nokia]]), [[3Com]], and others.  
A specification for PPTP was published in July 1999 as {{IETF RFC|2637}}<ref>{{Cite IETF|rfc=2637}}</ref> and was developed by a vendor consortium formed by [[Microsoft]], [[Ascend Communications]] (today part of [[Nokia]]), [[3Com]], and others.  


PPTP has not been proposed nor ratified as a standard by the [[Internet Engineering Task Force]].
PPTP has not been proposed nor ratified as a standard by the [[Internet Engineering Task Force]].
Line 17: Line 17:
A PPTP tunnel is instantiated by communication to the peer on [[Transport Control Protocol|TCP]] port 1723. This TCP connection is then used to initiate and manage a [[Generic Routing Encapsulation|GRE]] tunnel to the same peer. The PPTP GRE packet format is non standard, including a new ''acknowledgement number'' field replacing the typical ''routing'' field in the GRE header. However, as in a normal GRE connection, those modified GRE packets are directly encapsulated into IP packets, and seen as IP protocol number 47. The GRE tunnel is used to carry encapsulated PPP packets, allowing the tunnelling of any protocols that can be carried within PPP, including [[Internet Protocol|IP]], [[NetBEUI]] and [[IPX]].
A PPTP tunnel is instantiated by communication to the peer on [[Transport Control Protocol|TCP]] port 1723. This TCP connection is then used to initiate and manage a [[Generic Routing Encapsulation|GRE]] tunnel to the same peer. The PPTP GRE packet format is non standard, including a new ''acknowledgement number'' field replacing the typical ''routing'' field in the GRE header. However, as in a normal GRE connection, those modified GRE packets are directly encapsulated into IP packets, and seen as IP protocol number 47. The GRE tunnel is used to carry encapsulated PPP packets, allowing the tunnelling of any protocols that can be carried within PPP, including [[Internet Protocol|IP]], [[NetBEUI]] and [[IPX]].


In the Microsoft implementation, the tunneled PPP traffic can be authenticated with [[Password authentication protocol|PAP]], [[Challenge-handshake authentication protocol|CHAP]], [[MS-CHAP|MS-CHAP v1/v2]] .
The RFC specification allows authentication using any PPP authentication method. In the Microsoft implementation, the tunneled PPP traffic can be authenticated with [[Password authentication protocol|PAP]], [[Challenge-handshake authentication protocol|CHAP]], [[MS-CHAP|MS-CHAP v1/v2]], [[Extensible Authentication Protocol]] (EAP), or PEAP-MS-CHAP v2.
 
On Linux, the {{code|pptp}} program is only responsible for setting up the GRE layer. Any other process, including authentication, is the responsibility of {{code|pppd}}, the PPP handler.<ref>{{man|8|pptp|Linux}}</ref> {{code|pppd}} can handle PAP, CHAP, MS-CHAP v1/v2, EAP (MD5-Challenge, SRP-SHA1, EAP-TLS, PEAP).<ref>{{man|8|pppd|Linux}}</ref>
 
Regardless of the authentication method used, PPTP (or rather, its encapsulated PPP link) can only use [[Microsoft Point-to-Point Encryption]], which is based on the broken RC4 with up to 128-bit key.


==Security==
==Security==
PPTP has been the subject of many security analyses and serious security vulnerabilities have been found in the protocol. The known vulnerabilities relate to the underlying PPP authentication protocols used, the design of the [[Microsoft Point-to-Point Encryption|MPPE]] protocol as well as the integration between MPPE and PPP authentication for session key establishment.<ref>{{cite web|title=Malware FAQ: Microsoft PPTP VPN|url=https://www.sans.org/security-resources/malwarefaq/pptp-vpn|access-date=2017-06-29}}</ref><ref>{{cite web|title=Microsoft says don't use PPTP and MS-CHAP|url=http://www.h-online.com/security/news/item/Microsoft-says-don-t-use-PPTP-and-MS-CHAP-1672257.html|access-date=2012-11-03}}</ref><ref>{{cite web|title=A death blow for PPTP|url=http://www.h-online.com/security/features/A-death-blow-for-PPTP-1716768.html|access-date=2012-11-03}}</ref><ref>{{cite news|title=Differences between PPTP and L2TP|url=https://www.bestvpnrating.com/blog/main-differences-between-pptp-l2tp|access-date=7 August 2016|work=bestvpnrating|archive-url=https://web.archive.org/web/20160914125558/https://www.bestvpnrating.com/blog/main-differences-between-pptp-l2tp|archive-date=14 September 2016|url-status=dead}}</ref>
PPTP has been the subject of many security analyses and serious security vulnerabilities have been found in the protocol. The known vulnerabilities relate to the underlying PPP authentication protocols used, the design of the [[Microsoft Point-to-Point Encryption|MPPE]] protocol as well as the integration between MPPE and PPP authentication for session key establishment.<ref>{{cite web|title=Malware FAQ: Microsoft PPTP VPN|url=https://www.sans.org/security-resources/malwarefaq/pptp-vpn|access-date=2017-06-29}}</ref><ref>{{cite web|title=Microsoft says don't use PPTP and MS-CHAP|url=http://www.h-online.com/security/news/item/Microsoft-says-don-t-use-PPTP-and-MS-CHAP-1672257.html|access-date=2012-11-03}}</ref><ref>{{cite web|title=A death blow for PPTP|url=http://www.h-online.com/security/features/A-death-blow-for-PPTP-1716768.html|access-date=2012-11-03}}</ref><ref>{{cite news|title=Differences between PPTP and L2TP|url=https://www.bestvpnrating.com/blog/main-differences-between-pptp-l2tp|access-date=7 August 2016|work=bestvpnrating|archive-url=https://web.archive.org/web/20160914125558/https://www.bestvpnrating.com/blog/main-differences-between-pptp-l2tp|archive-date=14 September 2016|url-status=dead}}</ref>


A summary of these vulnerabilities is below:
=== Authentication layer ===
 
* [[MS-CHAP]]-v1 is fundamentally insecure. Tools exist to trivially extract the NT Password hashes from a captured MSCHAP-v1 exchange.<ref name="schneier1">[http://www.schneier.com/paper-pptp.pdf Bruce Schneier, ''Cryptanalysis of Microsoft's Point to Point Tunneling Protocol (PPTP)''] {{Webarchive|url=https://web.archive.org/web/20110604062340/http://www.schneier.com/paper-pptp.pdf |date=2011-06-04 }}.</ref>
* [[MS-CHAP]]-v1 is fundamentally insecure. Tools exist to trivially extract the NT Password hashes from a captured MSCHAP-v1 exchange.<ref name="schneier1">[http://www.schneier.com/paper-pptp.pdf Bruce Schneier, ''Cryptanalysis of Microsoft's Point to Point Tunneling Protocol (PPTP)''] {{Webarchive|url=https://web.archive.org/web/20110604062340/http://www.schneier.com/paper-pptp.pdf |date=2011-06-04 }}.</ref>
* When using MS-CHAP-v1, [[Microsoft Point-to-Point Encryption|MPPE]] uses the same RC4 session key for encryption in both directions of the communication flow. This can be cryptanalysed with standard methods by XORing the streams from each direction together.<ref>[http://www.schneier.com/paper-pptpv2.pdf Bruce Schneier, ''Cryptanalysis of Microsoft's PPTP Authentication Extensions (MS-CHAPv2)'', October 19 1999].</ref>
* When using MS-CHAP-v1, [[Microsoft Point-to-Point Encryption|MPPE]] uses the same RC4 session key for encryption in both directions of the communication flow. This can be cryptanalysed with standard methods by XORing the streams from each direction together.<ref>[http://www.schneier.com/paper-pptpv2.pdf Bruce Schneier, ''Cryptanalysis of Microsoft's PPTP Authentication Extensions (MS-CHAPv2)'', October 19 1999].</ref>
* MS-CHAP-v2 is vulnerable to dictionary attacks on the captured challenge response packets. Tools exist to perform this process rapidly.<ref>{{cite web |url=http://www.willhackforsushi.com/?page_id=41 |title=Asleap |last=Wright |first=Joshua |access-date=2017-11-01}}</ref>
* MS-CHAP-v2 is vulnerable to dictionary attacks on the captured challenge response packets. Tools exist to perform this process rapidly.<ref>{{cite web |url=http://www.willhackforsushi.com/?page_id=41 |title=Asleap |last=Wright |first=Joshua |access-date=2017-11-01}}</ref>
* In 2012, it was demonstrated that the complexity of a brute-force attack on a MS-CHAP-v2 key is equivalent to a brute-force attack on a single [[Data Encryption Standard|DES]] key. An online service was also demonstrated which is capable of decrypting a MS-CHAP-v2 MD4 passphrase in 23 hours.<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 |publisher=Cloudcracker.com |date=2012-07-29 |access-date=2012-09-07 |url-status=dead |archive-url=https://web.archive.org/web/20160316174007/https://www.cloudcracker.com/blog/2012/07/29/cracking-ms-chap-v2/ |archive-date=2016-03-16 }}</ref><ref>{{cite web|url=https://www.theregister.co.uk/2012/07/31/ms_chapv2_crack/ |title=Marlinspike demos MS-CHAPv2 crack |publisher=[[The Register]] |date=2012-07-31 |access-date=2012-09-07}}</ref>
* In 2012, it was demonstrated that the complexity of a brute-force attack on a MS-CHAP-v2 key is equivalent to a brute-force attack on a single [[Data Encryption Standard|DES]] key. An online service was also demonstrated which is capable of decrypting a MS-CHAP-v2 MD4 passphrase in 23 hours.<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 |publisher=Cloudcracker.com |date=2012-07-29 |access-date=2012-09-07 |url-status=dead |archive-url=https://web.archive.org/web/20160316174007/https://www.cloudcracker.com/blog/2012/07/29/cracking-ms-chap-v2/ |archive-date=2016-03-16 }}</ref><ref>{{cite web|url=https://www.theregister.co.uk/2012/07/31/ms_chapv2_crack/ |title=Marlinspike demos MS-CHAPv2 crack |publisher=[[The Register]] |date=2012-07-31 |access-date=2012-09-07}}</ref>
[[Extensible Authentication Protocol#EAP Transport Layer Security (EAP-TLS)|EAP-TLS]] are seen as the superior authentication choice for PPTP;<ref>[https://technet.microsoft.com/en-us/library/cc739638%28WS.10%29.aspx Choosing EAP-TLS or MS-CHAP v2 for User-Level Authentication], Microsoft TechNet, March 28, 2003</ref> however, it requires implementation of a [[public-key infrastructure]] (PKI) for both client and server certificates. As such, it may not be a viable authentication option for some remote access installations. The later PEAP also offers protection against capture of password hashes and response packets (making combinations such as PEAP-MS-CHAP secure), but also requires a PKI. Most networks that use PPTP have to apply additional security measures or be deemed completely inappropriate for the modern internet environment. At the same time, doing so means negating the aforementioned benefits of the protocol to some point.<ref>{{Cite news|url=https://www.vpnunlimited.com/blog/vpn-protocol-comparison/|title=VPN Protocol Comparison: IKEv2 vs IKEv1 vs OpenVPN vs L2TP vs PPTP|date=2018-05-14|work=VPN Unlimited Blog|access-date=2018-06-19|language=en-US}}</ref>
=== Encryption layer ===
* MPPE uses the [[RC4]] stream cipher for encryption. There is no method for authentication of the ciphertext stream and therefore the ciphertext is vulnerable to a bit-flipping attack. An attacker could modify the stream in transit and adjust single bits to change the output stream without possibility of detection. These bit flips may be detected by the protocols themselves through checksums or other means.<ref name="schneier1"/>
* MPPE uses the [[RC4]] stream cipher for encryption. There is no method for authentication of the ciphertext stream and therefore the ciphertext is vulnerable to a bit-flipping attack. An attacker could modify the stream in transit and adjust single bits to change the output stream without possibility of detection. These bit flips may be detected by the protocols themselves through checksums or other means.<ref name="schneier1"/>
[[Extensible Authentication Protocol#EAP Transport Layer Security (EAP-TLS)|EAP-TLS]] is seen as the superior authentication choice for PPTP;<ref>[https://technet.microsoft.com/en-us/library/cc739638%28WS.10%29.aspx Choosing EAP-TLS or MS-CHAP v2 for User-Level Authentication], Microsoft TechNet, March 28, 2003</ref> however, it requires implementation of a [[public-key infrastructure]] for both client and server certificates. As such, it may not be a viable authentication option for some remote access installations. Most networks that use PPTP have to apply additional security measures or be deemed completely inappropriate for the modern internet environment. At the same time, doing so means negating the aforementioned benefits of the protocol to some point.<ref>{{Cite news|url=https://www.vpnunlimited.com/blog/vpn-protocol-comparison/|title=VPN Protocol Comparison: IKEv2 vs IKEv1 vs OpenVPN vs L2TP vs PPTP|date=2018-05-14|work=VPN Unlimited Blog|access-date=2018-06-19|language=en-US}}</ref>


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

Latest revision as of 15:35, 29 September 2025

Template:Short description Template:IPstack The Point-to-Point Tunneling Protocol (PPTP) is an obsolete method for implementing virtual private networks. PPTP has many well known security issues.

PPTP uses a TCP control channel and a Generic Routing Encapsulation tunnel to encapsulate PPP packets. Many modern VPNs use various forms of UDP for this same functionality.

The PPTP specification does not describe encryption or authentication features and relies on the Point-to-Point Protocol being tunneled to implement any and all security functionalities.

The PPTP implementation that ships with the Microsoft Windows product families implements various levels of authentication and encryption natively as standard features of the Windows PPTP stack. The intended use of this protocol is to provide security levels and remote access levels comparable with typical VPN products.

History

A specification for PPTP was published in July 1999 as Template:IETF RFC[1] and was developed by a vendor consortium formed by Microsoft, Ascend Communications (today part of Nokia), 3Com, and others.

PPTP has not been proposed nor ratified as a standard by the Internet Engineering Task Force.

Description

A PPTP tunnel is instantiated by communication to the peer on TCP port 1723. This TCP connection is then used to initiate and manage a GRE tunnel to the same peer. The PPTP GRE packet format is non standard, including a new acknowledgement number field replacing the typical routing field in the GRE header. However, as in a normal GRE connection, those modified GRE packets are directly encapsulated into IP packets, and seen as IP protocol number 47. The GRE tunnel is used to carry encapsulated PPP packets, allowing the tunnelling of any protocols that can be carried within PPP, including IP, NetBEUI and IPX.

The RFC specification allows authentication using any PPP authentication method. In the Microsoft implementation, the tunneled PPP traffic can be authenticated with PAP, CHAP, MS-CHAP v1/v2, Extensible Authentication Protocol (EAP), or PEAP-MS-CHAP v2.

On Linux, the pptp program is only responsible for setting up the GRE layer. Any other process, including authentication, is the responsibility of pppd, the PPP handler.[2] pppd can handle PAP, CHAP, MS-CHAP v1/v2, EAP (MD5-Challenge, SRP-SHA1, EAP-TLS, PEAP).[3]

Regardless of the authentication method used, PPTP (or rather, its encapsulated PPP link) can only use Microsoft Point-to-Point Encryption, which is based on the broken RC4 with up to 128-bit key.

Security

PPTP has been the subject of many security analyses and serious security vulnerabilities have been found in the protocol. The known vulnerabilities relate to the underlying PPP authentication protocols used, the design of the MPPE protocol as well as the integration between MPPE and PPP authentication for session key establishment.[4][5][6][7]

Authentication layer

  • MS-CHAP-v1 is fundamentally insecure. Tools exist to trivially extract the NT Password hashes from a captured MSCHAP-v1 exchange.[8]
  • When using MS-CHAP-v1, MPPE uses the same RC4 session key for encryption in both directions of the communication flow. This can be cryptanalysed with standard methods by XORing the streams from each direction together.[9]
  • MS-CHAP-v2 is vulnerable to dictionary attacks on the captured challenge response packets. Tools exist to perform this process rapidly.[10]
  • In 2012, it was demonstrated that the complexity of a brute-force attack on a MS-CHAP-v2 key is equivalent to a brute-force attack on a single DES key. An online service was also demonstrated which is capable of decrypting a MS-CHAP-v2 MD4 passphrase in 23 hours.[11][12]

EAP-TLS are seen as the superior authentication choice for PPTP;[13] however, it requires implementation of a public-key infrastructure (PKI) for both client and server certificates. As such, it may not be a viable authentication option for some remote access installations. The later PEAP also offers protection against capture of password hashes and response packets (making combinations such as PEAP-MS-CHAP secure), but also requires a PKI. Most networks that use PPTP have to apply additional security measures or be deemed completely inappropriate for the modern internet environment. At the same time, doing so means negating the aforementioned benefits of the protocol to some point.[14]

Encryption layer

  • MPPE uses the RC4 stream cipher for encryption. There is no method for authentication of the ciphertext stream and therefore the ciphertext is vulnerable to a bit-flipping attack. An attacker could modify the stream in transit and adjust single bits to change the output stream without possibility of detection. These bit flips may be detected by the protocols themselves through checksums or other means.[8]

See also

References

<templatestyles src="Reflist/styles.css" />

  1. Template:Cite IETF
  2. pptp(8) – Linux Programmer's Manual – Administration and Privileged Commands
  3. pppd(8) – Linux Programmer's Manual – Administration and Privileged Commands
  4. Script error: No such module "citation/CS1".
  5. Script error: No such module "citation/CS1".
  6. Script error: No such module "citation/CS1".
  7. Script error: No such module "citation/CS1".
  8. a b Bruce Schneier, Cryptanalysis of Microsoft's Point to Point Tunneling Protocol (PPTP) Template:Webarchive.
  9. Bruce Schneier, Cryptanalysis of Microsoft's PPTP Authentication Extensions (MS-CHAPv2), October 19 1999.
  10. Script error: No such module "citation/CS1".
  11. Script error: No such module "citation/CS1".
  12. Script error: No such module "citation/CS1".
  13. Choosing EAP-TLS or MS-CHAP v2 for User-Level Authentication, Microsoft TechNet, March 28, 2003
  14. Script error: No such module "citation/CS1".

Script error: No such module "Check for unknown parameters".

External links

Template:VPN