Point-to-Point Tunneling Protocol
Internet protocol suite |
---|
Application layer |
Transport layer |
Internet layer |
Link layer |
The Point-to-Point Tunneling Protocol (PPTP) is a method for implementing virtual private networks. PPTP uses a control channel over TCP and a GRE tunnel operating to encapsulate PPP packets.
The PPTP specification does not describe encryption or authentication features and relies on the Point-to-Point Protocol being tunneled to implement security functionality. However, the most common PPTP implementation shipping 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.
A specification for PPTP was published in July 1999 as RFC 2637[1] and was developed by a vendor consortium formed by Microsoft, Ascend Communications (today part of Alcatel-Lucent), 3Com, and others. PPTP has not been proposed nor ratified as a standard by the Internet Engineering Task Force.
Protocol 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 second GRE tunnel to the same peer.
The PPTP GRE packet format is non standard, including an additional acknowledgement 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.
In the Microsoft implementation, the tunneled PPP traffic can be authenticated with PAP, CHAP, MS-CHAP v1/v2 .
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.[2][3]
A summary of these vulnerabilities is below:
- MS-CHAP-v1 is fundamentally insecure. Tools exist to trivially extract the NT Password hashes from a captured MSCHAP-v1 exchange.[4]
- 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.[5]
- MS-CHAP-v2 is vulnerable to dictionary attacks on the captured challenge response packets. Tools exist to perform this process rapidly.[6]
- 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.[7][8]
- 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.[4]
EAP-TLS is seen as the superior authentication choice for PPTP;[9] however, it requires implementation of a public-key infrastructure for both client and server certificates. As such it is not a viable authentication option for many remote access installations.
See also
- IPsec
- Layer 2 Tunneling Protocol (L2TP)
- Secure Socket Tunneling Protocol (SSTP)
- OpenVPN, open source software application that implements VPN
References
- ↑ RFC 2637
- ↑ "Microsoft says don't use PPTP and MS-CHAP". Retrieved 2012-11-03.
- ↑ "A death blow for PPTP". Retrieved 2012-11-03.
- 1 2 Bruce Schneier, Cryptanalysis of Microsoft's Point to Point Tunneling Protocol (PPTP).
- ↑ Bruce Schneier, Cryptanalysis of Microsoft's PPTP Authentication Extensions (MS-CHAPv2), October 19 1999.
- ↑ Josh of willhackforsushi.com "news".
- ↑ "Divide and Conquer: Cracking MS-CHAPv2 with a 100% success rate". Cloudcracker.com. 2012-07-29. Retrieved 2012-09-07.
- ↑ "Marlinspike demos MS-CHAPv2 crack". The Register. 2012-07-31. Retrieved 2012-09-07.
- ↑ Choosing EAP-TLS or MS-CHAP v2 for User-Level Authentication, Microsoft TechNet, March 28, 2003
External links
- Windows NT: Understanding PPTP from Microsoft
- FAQ on security flaws in Microsoft's implementation, Bruce Schneier, 1998
- Cryptanalysis of Microsoft's PPTP Authentication Extensions (MS-CHAPv2), Bruce Schneier, 1999
- Differences Between OpenVPN, PPTP, L2TP, SSTP, & IKEv2