安全是VPN至关重要的组成部分。下面分别就PPTP协议和基于IPSec的L2TP协议讨论VPN连接中的安全策略。
一、PPTP连接
PPTP协议提供的安全策略有用户认证和加密。
1)基于PPP的用户认证
PPTP连接采用基于PPP的用户认证协议,如EAP,MS-CHAP,CHAP,SPAP,和PAP。对于PPTP连接,智能卡支持的交易层安全协议EAP-TLS和MS-CHAPv2版,由于提供双向认证,被认为是两种最安全的信任状交换的验证方法,因此得到大力推广,使用最为广泛。
2)基于MPPE的加密措施
PPTP承继MPPE加密技术,MPPE采用RSA/RC4加密算法,这是一种流式加密器(stream cipher)。这里需要指出的是,仅当采用EAP-TLS或MS-CHAP认证协议时才能使用MPPE进行加密。
MPPE采用40位、56位、128位三种不同长度的密钥。40位密钥提供与非Windows 2000客户机的向后兼容性。缺省情况下,在连接建立过程中,VPN客户机和服务器自动协商采用最高位数的密钥。如果VPN服务器要求的密钥位数比VPN客户机所能支持的最大密钥位数还要高,则连接请求被拒绝。
最早MPPE是为点-点的连接加密设计的,在点-点连接中,数据包收发顺序相同,极少发生包丢失现象。因此针对这种环境而设计的MPPE加密法,每个数据包的解密有赖于前一数据包的解密结果。
然而,对VPN而言,IP数据包通过Internet传输,无法确保收发同序,且数据包丢失比例较高。因此,VPN连接中所使用的MPPE,其报头中包含了一个序列号,如果发生数据包丢失或到达时失序,MPPE则依据序列号对数据包密钥做修改,从而使得每个数据包的解密过程可以独立于前一数据包。
3)PPTP包过滤
一个典型的基于PPTP的VPN服务器有两个物理接口:其中一个接口在诸如Internet这样的公共或共享网络上,另一个接口在企业专用Intranet上。同时它还有一个面向所有VPN客户机连接的虚拟接口。当VPN服务器需要在VPN客户机之间进行数据流转发时,必须在所有接口之间允许IP转发。然而,允许两个物理接口之间的转发会导致VPN服务器将所有来自共享或公共网络上的IP数据包通过路由全部传送至内部Intranet。为了防止Intranet接收来自非特定VPN客户机以外的其他数据流,必须配置PPTP包过滤,使得VPN服务器仅在VPN客户机和企业专用Intranet之间进行路由转发,拒绝公共网络和Intranet之间所有其他用户,从而杜绝可能出现的的潜在恶意行为。
PPTP包过滤可以配置在VPN服务器上,也可以配置在中介防火墙上。有关包过滤和防火墙的详细内容,将在"VPN与防火墙"中做进一步介绍。
二、基于IPSec的L2TP连接
基于IPSec的L2TP提供的安全策略有用户认证、双向计算机认证、加密、数据验证和数据完整性。
1)基于IPSec的L2TP用户认证
VPN客户机认证分为两级:计算机认证和用户认证。
a.IPSec计算机认证
使用基于IPSec的L2TP协议,需要在VPN客户机和服务器之间建立IPSec ESP 安全联系SA(security association),这时要用到双向计算机认证。所谓IPSec SA,是经过IPSec第一和第二阶段的协商,两端的VPN客户机和VPN服务器在加密算法、hash运算规则、加密密钥等方面取得一致后,建立起来的客户机和服务器之间的IPSec 安全联系。
双向计算机认证,要求VPN客户机和服务器两端均安装有计算机认证书。有两种途径可以获得证书,一是配置Windows 2000组策略方案的自动注册,二是以手工方式使用证书插件(Certificates snap-in)。详细内容,可参考Windows 2000服务器帮助信息。
b.L2TP用户级认证
请求建立L2TP连接的用户由基于PPP的用户认证协议进行认证,此类认证协议主要有:EAP,MS-CHAP,CHAP,SPAP,和PAP。由于在L2TP连接建立过程中采用的是IPSec加密技术,因此可选择任意一种PPP认证协议进行用户认证,其中MS-CHAPv2版和EAP-TLS要求实现双向用户认证。
c.L2TP隧道认证
L2TP还提供在隧道建立过程中对L2TP隧道端点的认证。但在缺省情况下,Windows 2000并不要求对L2TP隧道进行认证。有关L2TP隧道认证的详细信息,可参阅微软网站相关资料。
2)基于IPSec的L2TP加密
L2TP加密取决于IPSec SA的建立。加密算法包括:
?基于56位密钥的数据加密标准DES
?3DES,使用3个56位密钥,适用于对安全要求更高的环境中。
由于在IP网络环境中,可能出现数据包丢失或数据包到达时失序等现象,因此在IP网络中,每个IPSec数据包都经过单独加密,加解密过程独立于其他IPSec数据包。
初始密钥在IPSec认证过程中获得。此后密钥的产生在不同类型的连接中有所不同,在DES加密连接中,每隔5分钟或每传输250兆字节产生一个新密钥;在3DES加密连接中,每隔1小时或每传输2千兆字节产生一个新密钥;在AH保护连接中,每隔1小时或每传输2千兆字节产生一个新hash密钥。
3)基于IPSec的L2TP数据验证和数据完整性
数据验证和数据完整性可由下述之一提供:
?Hash消息验证码HMAC的消息摘要MD5,该hash算法从需要验证的有效载荷中产生一个128位的消息摘要。
?HMAC 安全Hash算法SHA,该hash算法从需要验证的有效载荷中产生一个160位的hash散列。
4)基于IPSec的L2TP包过滤
正如在基于PPTP的VPN连接中一样,允许VPN服务器的两个物理接口即在公共网络上的接口和在Intranet上的接口之间进行转发,会导致VPN服务器将所有来自诸如Internet等公共网络上的IP数据包通过路由全部传送至内部Intranet。为了防止Intranet接收来自非特定VPN客户机以外的其他数据流,必须配置基于IPSec 的L2TP包过滤,使得VPN服务器仅在VPN客户机和Intranet之间进行路由转发,拒绝公共网络和Intranet之间所有其他用户,从而杜绝可能出现的的潜在恶意行为。
同样,基于IPSec 的L2TP包过滤既可以配置在VPN服务器上,也可以配置在中介防火墙上。详细内容,将?quot;VPN与防火墙"中做进一步介绍。