Weak Cryptography Removal from PP TP/L2TP
Support for weak or nonstandard cryptographic algorithms has been removed beginning with Windows Vista. This initiative was based on a desire by Microsoft to move customers toward stronger crypto algorithms to increase VPN security, based on recommendations by the NIST and the Internet Engineering Task Force (IETF) as well as mandates toward stronger crypto algorithms from different industry standards bodies and regulators.
The following crypto algorithms are no longer supported on Windows Vista or later versions:
- 40- and 56-bit RC4 encryption, formerly used by the Microsoft Point-to-Point Encryption (MPPE) Protocol for PPTP-based VPN connections
- DES encryption, formerly used by IPsec policy within L2TP/IPsec-based VPN connections
- MD5 integrity checking, formerly used by IPsec policy within L2TP/IPsec-based VPN connections
The removal of support from the default configuration for 40- and 56-bit RC4 encryption means that PPTP-based VPN connections now support only 128-bit RC4 for data encryption and integrity checking. This means the encryption strength remains the same as 128-bit RC4-that is, independent of the encryption settings (Optional Encryption, Require Encryption, or Maximum Strength Encryption) specified by the Advanced Security Settings properties of the VPN connections. This also means that if your existing VPN server does not support 128-bit encryption and supports only incoming PPTP-based VPN connections, clients will not be able to connect. If you are unable to upgrade your existing VPN servers to support 128-bit encryption for PPTP or if 128-bit encryption is unavailable to you because of export restrictions, you can enable weak crypto for PPTP by editing the following registry value:
HKLM\System\CurrentControlSet\Services\Rasman\Parameters\AllowPPTPWeakCrypto
The default value of this DWORD registry value is 0, and by changing it to 1, you can enable 40- and 56-bit RC4 encryption on the computer for both outgoing and incoming PPTP-based VPN connections. You must restart the computer for this registry change to take effect. As an alternative to restarting the computer, you can restart the Remote Access Connection Manager service by opening a command prompt and typing net stop rasman followed by net start rasman.
The removal of support for DES encryption and MD5 integrity checking for L2TP/IPsecbased VPN connections means that L2TP/IPsec-based VPN connections now support the following data encryption and data integrity algorithms by default:
- 128-bit AES, 256-bit AES, and 3DES for data encryption using IPsec
- Secure Hash Algorithm (SHA1) for data integrity using IPsec
The removal of support for DES and MD5 from the default configuration means that L2TP/ IPsec-based VPN connections will not work if your existing VPN server supports only DES for data encryption and/or MD5 for data integrity checking. If you are unable to upgrade your existing VPN servers to support AES or 3DES for data encryption and/or SHA1 for integrity checking or if these crypto algorithms are unavailable to you because of export restrictions, you can disable weak crypto for L2TP by editing the following registry value:
HKLM\System\CurrentControlSet\Services\Rasman\Parameters\AllowL2TPWeakCrypto
The default value of this DWORD registry value is 0, and by changing it to 1, you can enable DES encryption and MD5 integrity checking on the computer for both outgoing and incoming L2TP/IPsec-based VPN connections. You must restart the computer for this registry change to take effect. As an alternative to restarting the computer, you can restart the Remote Access Connection Manager service by opening a command prompt and typing net stop rasman followed by net start rasman.
Note Microsoft recommends that you upgrade your VPN server to support 128-bit RC4 for PP TP and/or AES and SHA1 for L2TP instead of disabling weak crypto support on your VPN clients.
Table summarizes the differences between Windows 7, Windows Vista, and Windows XP with regard to crypto support for data integrity and encryption for VPN connections.
Data Integrity and Encryption Support for VPN Connections in Windows 7, Windows Vista, and Windows XP
Crypto Algorithm | Use | Windows 7 | Windows Vista | Windows XP |
40-bit RC4 | Data encryption and integrity checking for PPTP only | ✔; | ||
56-bit RC4 | Data encryption and integrity checking for PPTP only | ✔ | ||
128-bit RC4 | Data encryption and integrity checking for PPTP only | ✔ | ✔ | ✔ |
DES | Data encryption | ✔ | ||
3DES | Data encryption | ✔ | ✔ | ✔ |
128-bit AES | Data encryption | ✔ | * | |
196-bit AES | Data encryption | ✔ | * | |
256-bit AES | Data encryption | ✔ | * | |
MD5 | Integrity checking | ✔ | ||
SHA1 | Integrity checking | ✔ | ✔ | ✔ |
256-bit SHA | Integrity checking | ✔ | * | |
384-bit SHA | Integrity checking | ✔ | * |
An asterisk (*) means that configuration is possible, but only by using the Netsh command.
In this tutorial:
- Connecting Remote Users and Networks
- Enhancements for Connecting Remote Users and Networks in Windows 7
- Understanding IKEv2
- Understanding MOBIKE
- Understanding VPN Reconnect
- Protocols and Features of VPN Reconnect
- How VPN Reconnect Works
- Understanding DirectAccess
- Benefits of DirectAccess
- How DirectAccess Works
- Windows 7 and Windows Server 2008 R2
- Ipv6
- IPsec
- Perimeter Firewall Exceptions
- Implementing DirectAccess
- Understanding BranchCache
- Benefits of BranchCache
- How BranchCache Works
- Protocols Supported by BranchCache
- Implementing BranchCache
- Supported Connection Types
- Outgoing Connection Types
- Incoming Connection Types
- Deprecated Connection Types
- Supported Tunneling Protocols
- Comparing the Different Tunneling Protocols
- Understanding Cryptographic Enhancements
- Support for AES
- Weak Cryptography Removal from PP TP/L2TP
- Supported Authentication Protocols
- Understanding the VPN Connection Negotiation Process
- Creating and Configuring VPN Connection
- Creating a VPN Connection
- Initiating a Connection
- Terminating a Connection
- Viewing Connection Details
- Configuring a VPN Connection
- Configuring Security Settings for a VPN Connection
- Configuring the Tunneling Protocol (s) Used
- Configuring Advanced Connection Settings
- Configuring the Data Encryption Level
- Configuring the Authentication Method Used
- Configuring Authentication for IKEv2 connections
- Configuring Mobility for IKEv2 Connections
- Configuring Dial-Up Connections
- Creating a Dial-Up Connection
- Advanced Connection Settings
- Configuring Incoming Connections
- Managing Connections Using Group Policy
- Using Remote Desktop
- Understanding Remote Desktop
- Versions of RDP
- RDP 6.1 Features and Enhancements
- RDP 7.0 new features and enhancements
- RemoteApp and Desktop Connection
- Understanding RDC
- Understanding Remote Desktop Services Terminology
- Configuring and Using Remote Desktop
- Enabling Remote Desktop and Authorizing Users on a Single Computer
- Enabling Remote Desktop Using Group Policy
- Configuring and Deploying Remote Desktop Connection
- Configuring Remote Desktop Connection from the Command Line
- Configuring Remote Desktop Connection Using Notepad
- Configuring Remote Desktop Using Group Policy
- Establishing a Remote Desktop Session
- Improving Remote Desktop Performance
- Troubleshooting Remote Desktop Sessions
- Configuring and Using RemoteApp and Desktop Connection