1. 介绍
随着IP/MPLS VPN的兴起,用户和运营商都将目光转向了这种极具竞争力和市场前景的VPN。对用户而言,IP/MPLS VPN可以非常方面地替代租用线和传统的ATM/帧中继VPN来连接计算机或LAN,也可以提供租用线的备份、冗余和峰值负载分担等,费用节省明显。而就服务提供商而言,IP/MPLS VPN是其未来数年内扩大业务范围,保持竞争力和客户忠诚度,降低成本,增加利润的重要手段。
安全性保证是IP/MPLS VPN(以下统称VPN)能否取代租用线和传统的ATM/帧中继 VPN的一个关键因素(另外一个是QoS的保证)。尽管2000年2月Yankee group发表了研究报告,指出传统的ATM/帧中继VPN存在严重的安全隐患,但ATM/帧中继VPN在安全性方面仍然享有很高的声誉。与人们对ATM/帧中继 VPN安全性非常信任的情况相反,尽管IP/MPLS VPN技术声称提供了安全性保证,但由于人们普遍认为IP网本身是不安全的,因此对基于IP/MPLS的VPN的安全性仍然存在很大疑虑。
IP/MPLS的安全性究竟如何,比ATM/帧中继 VPN安全性要高还是不如?要回答这个问题并不容易,因为安全性是一个复杂的系统问题,任何一个网络系统单靠VPN提供的安全通信是不可能保证安全的。本文不讨论IP/MPLS与ATM/帧中继 VPN面临的相同的安全问题,如实现上(比如后门)和实施时(配置错误)的安全问题,而是从不同的VPN隧道技术和不同的组网方式的角度来探讨其安全性。
2. VPN安全性实施方式
根据用户是否信任运营商以及用户数据的安全敏感程度,用户可以选择由运营商提供安全性保障,也可以选择由用户自己实施安全性保障。IP/MPLS VPN同时支持这两种实施方式。
2.1 用户不信任运营商
当用户不相信运营商提供的任何形式的安全服务时(比如用户的数据特别敏感),用户应该使用防火墙以及具有安全隧道功能的用户驻地设备(CPE)来实现IP/MPLS VPN。在这种情况下,用户自己负责所传递数据的安全性,VPN数据的安全性取决于用户防火墙以及所使用的隧道协议的安全性(后文对不同隧道协议的安全性分别进行了讨论)等具体实施时的多方面因素。
与在传统的ATM/帧中继VPN的中运营商只提供传递ATM信元或帧中继帧的传输通道相似,运营商这时只负责提供传递IP/MPLS包的传输通道,不负责安全保证,隧道数据的安全性由用户自己负责。
2.2 用户信任运营商
传统的基于帧中继和ATM的VPN都假定运营商是值得信赖的,在IP/MPLS VPN的实施中,也可以这样假设。
在这种情况下,防火墙功能的提供以及包传输的安全性保证都是由运营商提提供的。如果是基于网络的VPN,运营商负责运营商两个边缘设备(PE)之间的安全性,不包括用户接入链路的安全性(这段链路一般是用户专用的,通常认为是安全的);如果是基于用户设备(CE)的VPN,则运营商负责保证CE设备到PE设备之间的安全性,包括了用户接入链路的安全性,这是一种基于CE的管理型VPN。
在不同场合下运营商可以根据需要采用不同的安全等级。如果运营商认为PE到PE或CE到CE的路径本来就是安全的,因为运营商拥有整个骨干网基础设施(VPN数据传递只在一个运营商的IP骨干网中传递),或者把部分骨干网外包给另一个值得信赖的运营商(比如可能是SONET/SDH电路,波长或光纤),那么就不大需要太高的安全机制(如IPSec)来提供骨干网节点间的隧道安全服务。如果VPN数据的传递横跨多个运营商的骨干网,那么使用高级别的安全机制就很有必要。
3. IPSec的安全性
IPSec是专门设计为IP提供安全服务的一种协议(其实是一个协议族)。IPSec可有效保护IP数据报的安全,所采取的具体保护形式包括:数据源验证;无连接数据的完整性验证;数据内容的机密性保护;抗重播保护等。
使用IPSec协议中的认证头(AH)协议和封装安全载荷(ESP)协议,可以对IP数据报或上层协议(如UDP和TCP)进行保护,这种保护由IPSec两种不同的工作模式(分别对应隧道模式和传输模式)来提供。其中AH可以验证数据的起源、保障数据的完整性以及防止相同数据包的不断重播。ESP除具有AH的所有能力之外,还可选择保障数据的机密性,以及为数据流提供有限的机密性保障。
AH和ESP协议根据安全联盟(SA)规定的参数为IP数据包提供安全服务。SA可以手工建立,也可以自动建立。IKE就是IPSec规定的一种用来自动管理SA的协议。IKE的实现可支持协商VPN,也可支持IP地址事先并不知道的远程接入。IKE必须支持协商方不是SA协商发生的端点的客户协商模式,这样可以隐藏端方身份。
虽然到目前为止,全球安全专家普遍认为IPSec是最安全的IP协议,但也并非全是赞美之词,最主要的批评是它的复杂性,因为系统复杂性是系统安全的主要威胁之一。IPSec有两个运行模式:传输模式和隧道模式,有两个安全协议:AH和ESP。AH提供认证,ESP提供认证和/或加密。这导致了额外的复杂性:打算认证一个包的两台机器之间的通信总共有四种模式可供选择:传输/AH,隧道/AH,空加密的传输/ESP以及空加密的隧道/ESP,而这些选择之间的功能和性能差别都很小(因此没有太大实际意义)。产生这种问题的原因是IPSec是多个国家的安全专家经过多年的研究和讨论后折衷的产物。因此有安全专家已经提出安全协议的设计原则应是多家竞争,择优使用,正如AES(高级加密标准)那样。
ATM/帧中继 VPN的“专用”性体现在虚电路连接的是一组闭合的用户或社区,安全性保证主要来自它的“闭合用户群(CUG)”的特性,假设运营商不会(恶意)错误配置而导致数据传递错误,不会监听用户的流量,不会不经过授权就进入用户网络,不会被修改,不会被非授权方进行流量分析等,根本不提供认证和加密等安全服务(当然如果用户需要传递特别敏感的数据(如金融信息)等,通常需要采用用户自己实施的链路加密等方法)。而对于IPSec VPN,连接的也是一组闭合的用户或社区,但这时提供的安全服务还包括认证和加密等。因此可以这样认为,IPSec比传统的ATM/帧中继 VPN更强的安全服务,是到目前为止最为安全的VPN技术。
4. L2TP的安全性
二层隧道技术(L2TP) 定义了利用包交换方式的公共网络基础设施(如IP网络、ATM和帧中继)封装链路层PPP帧的方法。远程拨号接入VPN(VPDN)通常使用L2TP在用户和企业客户网络之间通过拨号方式创建一个虚拟的点到点连接。
在L2TP隧道建立的过程中,隧道终点之间可以选择是否进行认证。这种认证的安全性与PPP CHAP相同,能够在隧道建立的过程中有效防止重放和窃听攻击。该机制设计用于隧道的建立过程,因此并不适用于其它方面。对于一个恶意用户而言,在已经认证的隧道成功建立之后,窃听隧道数据流或插入数据包是一件很容易的事情。
在使用中L2TP可能会遇到的安全性问题分析总结如下(这些都是相对于IPSec所提供的安全服务比较而言的):
1) L2TP只定义了对隧道的终端实体进行身份认证,而不是认证隧道中流过的每一个数据报文。这样的隧道无法抵抗插入攻击和地址欺骗攻击。
2) L2TP由于没有针对每个数据报文的完整性校验,就有可能进行拒绝服务 (DoS) 攻击:发送一些假冒的控制信息,导致L2TP隧道或底层PPP连接的关闭。
3) L2TP本身不提供任何加密手段,当数据需要保密时,需要其它技术的支持。
4) 虽然PPP报文的数据可以加密,但PPP协议不支持密钥的自动产生和自动刷新。这样进行监听的攻击者就可能最终攻破密钥,从而得到所传输的数据。
当L2TP运行在IP上时是不安全的。但对于IPSec而言,特定隧道的所有L2TP控制和数据包都是相同的UDP/IP数据包,因此可以将L2TP与IPSec结合使用,使用IPSec安全保护后的L2TP能够提供与IPSec相同程度的安全性。
5. MPLS的安全性
MPLS为每个IP包加上一个固定长度的标签,并根据标签值转发数据包。MPLS实际上就是一种隧道技术,所以使用它来建立VPN隧道十分容易而高效。由于MPLS 技术本身就非常新,因此这里对MPLS VPN的安全性从多个方面做了一个较为详细的、同时适用于BGP方式和虚拟路由器方式的实现的分析和介绍。
从下面的分析可以得出这样的结论:MPLS VPN采用路由隔离、地址隔离和信息隐藏等多种手段提供了抗攻击和标记欺骗的手段,完全能够提供与传统的ATM或帧中继VPN相类似的安全保证。
1) 路由隔离
MPLS VPN实现了VPN之间的路由隔离。每个PE路由器为每个所连接的VPN都维护一个独立的虚拟路由转发实例(VFI),每个VFI驻留来自同一VPN的路由(静态配置或在PE和CE之间运行路由协议)。因为每个VPN都产生一个独立的VFI,因此不会受到该PE路由器上其它VPN的影响。
在穿越MPLS核心到其它PE路由器时,这种隔离是通过为多协议BGP(MP-BGP)增加唯一的VPN标志符(比如路由区分器)来实现的(这是在BGP方式下,虚拟路由的方式与此类似)。MP-BGP穿越核心网专门交换VPN路由,只把路由信息重新分发给其它PE路由器,并保存在其它PE的特定VPN的VFI中,而不会把这些BGP信息重新分发给核心网络。因此穿越MPLS网络的每个VPN的路由是相互隔离的。
2) 隐藏MPLS核心结构
出于安全考虑,运营商和终端用户通常并不希望把它们的网络拓扑暴露给外界,这可以使攻击变得更加困难。如果知道了IP地址,一个潜在的攻击者至少可以对该设备发起DoS攻击。但由于使用了“路由隔离”,MPLS不会将不必要的信息泄露给外界,甚至是向客户VPN。
在不提供因特网接入服务的“纯粹”的MPLS VPN中,信息隐藏的