VPN隧道协议发展现状
发布时间:2006-10-14 4:03:17   收集提供:gaoqian
何宝宏
摘 要 本文首先介绍了VPN常见的隧道协议,然后对三层隧道协议和二层隧道协议进行了分析比较,剖析了目前广泛使用的L2TP协议存在的问题,最后就这几种隧道协议的成熟程度进行了小结,并对企业和运营商目前如何组建VPN提出了自己的看法。

关键词 VPN 隧道协议 L2TP IPSec MPLS

1 引言

    虚拟专用网(VPN)是通过公众互联网(IP)建立私有数据传输通道,将远程的分支办公室、商业伙伴、移动办公人员等连接起来,并且提供安全的端到端的数据通信的一种网络技术。VPN兼备了公众网和专用网的许多特点,将公众网可靠的性能、丰富的功能与专用网的灵活、高效结合在一起,是介于公众网与专用网之间的一种网络。

    可以把VPN简单协议划分为两类:隧道协议和其他相关协议。后者包括RADIUS、LDAP、X.509等,本文只介绍隧道协议。IETF与VPN隧道协议相关的研究有三个:“PPP Extension for PPTP and L2TP”、“IP Security”和“MPLS”,已经公布了一些RFC和草案。

    1999年8月公布了L2TP标准RFC 2661。GRE是由Cisco和NetSmiths等公司1994年提交给IETF的,标号为RFC1701和RFC1702。IPSec系列标准从1995年问世以来得到了广泛的支持,IETF工作组中已制定的与IPSec相关的RFC文档有:RFC2104、RFC2401-RFC2409、RFC2451等。其中RFC2409介绍了互连网密钥交换(IKE)协议;RFC2401介绍了IPSec协议;RFC2402介绍了验证包头(AH);RFC2406介绍了加密数据的报文安全封装(ESP)协议。IPSec的ESP协议和报文完整性协议认证的协议框架已趋成熟,IKE协议也已经增加了椭圆曲线密钥交换协议。MPLS协议本身的制定尚未完成,MPLS VPN目前是IETF和ITU-T等国际标准化组织研究的热点。

2 隧道协议简介

2.1 L2TP

    PPTP(点到点隧道协议)是在Window95/98中支持的,为中小企业提供的一个VPN解决方案。但根据一群安全专家的研究,PPTP在实现上存在着重大的安全问题,它的安全性甚至比PPP(点到点协议)还要弱,因此PPTP协议存在着重大安全缺陷。L2F协议的主要缺陷是没有把标准加密方法包括在内,因此它基本上已经成为一个过时的隧道协议。

    L2TP协议结合了Microsoft的PPTP和Cisco的L2F(二层前向转发)的优点。L2TP提供了一种PPP包的机制,特别适合于通过VPN拨号进入一个专用网络的用户。L2TP支持在各种网络连接上提供PPP包的封装,支持一个用户同时使用多个并发的隧道。它同样适用于非IP协议,支持动态寻址,是目前唯一能够提供全网状Intranet VPN连接的多协议隧道。

2.2 IPSec

    IPSec是一组开放的网络安全协议的总称,提供访问控制、无连接的完整性、数据来源验证、防重放保护、加密以及数据流分类加密等服务。IPSec在IP层提供这些安全服务,它包括两个安全协议AH(报文验证头协议)和ESP(报文安全封装协议)。AH主要提供的功能有数据来源验证、数据完整性验证和防报文重放功能。ESP在AH协议的功能之外再提供对IP报文的加密功能。AH和ESP同时具有认证功能,IPSec存在两个不同的认证协议是因为ESP要求使用高强度密码学算法,无论产际上是否在使用。而高强度密码学算法在很多国家都存在很多严格的政策限制。但认证措施是不受限制的,因此AH可以在全世界自由使用。另外一个原因是很多情况下人们只使用认证服务。AH或ESP协议都支持两种模式的使用:隧道模式和传输模式。隧道模式对传经不安全的链路或Internet的专用IP内部数据包进行加密和封装(此种模式适合于有NAT的环境)。传输模式直接对IP负载内容(即TCP或UDP数据)加密(适合于无NAT的环境)。

2.3 MPLS VPN

    MPLS实际上就是一种隧道技术,所以使用它来建立VPN隧道是十分容易的。同时,MPLS是一种完备的网络技术,可以用它来建立起VPN成员之间简单而高效的VPN。MPLS VPN适用于实现对于服务质量、服务等级划分以及网络资源的利用率,网络的可靠性有较高要求的VPN业务。用户边缘(CE)路由器是用于将一个用户站点接入服务提供者网络的用户边缘路由器。CE路由器不使用MPLS,它可以只是一台IP路由器。CE不必支持任何VPN的特定路由协议或信令。提供者边缘(PE)路由器是与用户CE路由器相连的服务提供者边缘路由器。PE实际上就是MPLS中的边缘标记交换路由器(LER),它需要能够支持BGP协议,一种或几种IGP路由协议以及MPLS协议,需要能够执行IP包检查,协议转换等功能。用户站点是指这样一组网络或多条PE/CE链路接至VPN。一组共享相同路由信息的站点就构成了VPN。一个站点可以同时位于不同的几个VPN之中。

    与前面几种VPN技术不同,MPLS VPRN网络中的主角虽然仍然是边缘路由器(此时是MPLS网络的边缘LSR),但是它将需要公共IP网内部的所有相关路由器都能够支持MPLS,所以这种技术对网络有较为特殊的要求。

2.4 GRE

    通用路由协议封装(GRE)规定了如何用一种网络协议去封装另一种网络协议的方法。

3 隧道技术要求

    隧道类似于点到点的连接。这种方式能够使得来自许多源的网络流量从同一个基础设施中通过分开的隧道。这种技术使用点对点通信协议代替了交换连接,通过路由网络来连接数据地址。隧道技术允许授权移动用户或已授权的用户在任何时间任何地点访问企业网络。通过隧道的建立,可实现以下功能:

    ●将数据流量强制到特定的目的地;

    ●隐藏私有的网络地址;

    ●在IP网上传输非IP协议数据包;

    ●提供数据安全支持;

    ●协助完成用户基于AAA的管理。

    在安全方面可提供数据包认证、数据加密以及密钥管理等手段。

4 隧道协议剖析

4.1 二层和三层隧道协议

    二层和三层隧道协议的区别主要在于用户数据在网络协议栈的第几层被封装。第二层隧道技术的起始点在网络接入服务器(NAS),终点在用户网设备(CPE)上。另外,在隧道内整个PPP帧都封装在内,PPP会话要贯穿到CPE界内的网关或服务器上。第三层隧道技术的起点及终点均在ISP界内,PPP会话终止NAS内,只携带第三层报文体,终接设备同时也作为CPE的网关。

     第三层隧道与第二层隧道相比,优点在于它的安全性、可扩展性及可靠性。从安全的角度来看,由于第二层隧道一般终止在用户网设备(CPE)上,会对用户网的安全及防火墙技术提出较严竣的挑战。而第三层的隧道一般终止在ISP的网关上,不会对用户网的安全构成威胁。从可扩展性角度来看,第二层IP隧道将整个PPP帧封装在报文内,可能会产生传输效率问题。其次,PPP会话会贯穿整个隧道,并终止在用户网的网关或服务器上。由于用户网内的网关要保存大量的PPP对话状态及信息,这会对系统负荷产生较大的影响,当然也会影响系统的扩展性。除此之外,由于PPP的LCP及NCP对时间非常敏感,这样,IP隧道的效率会造成PPP会话超时等问题。而第三层隧道终止在ISP网内,并且PPP会话终止在RAS处,网点无需管理和维护每个PPP会话状态,从而减轻系统负荷。

    第三层隧道技术对于公司网络还有一些其他优点,网络管理者采用第三层隧道技术时,不必在他们的远程为或客户原有设备(CPE)上安装特殊软件。因为PPP和隧道终点由ISP的设备生成,CPE不用负担这些功能,而仅作为一台路由器。第三层隧道技术可采用任意厂家的CPE予以实现。使用第三层隧道技术的公司网络不需要IP地址,也具有安全性。服务提供商网络能够隐藏私有网络和远端节点地址。

     一般情况,第二层隧道协议和第三层隧道协议分别使用,但合理地运用两层协议,将具有更好的安全性。

4.2 L2TP协议的弱点

     L2TP也有一些弱点。协议自身并不提供对连接安全性的保证,它依赖于PPP提供的认证和链路层加密,比如CHAP和PAP认证以及使用DES的ECP,或者配合使用IPSec的保护。L2TP并不能满足用户对安全性的需求。如果需要安全的VPDN,则依然需要IPSec。L2TP协议存在以下的安全问题:

     --仅仅定义了对隧道的终端实体进行身份认证,而不是认证隧道中流过的每一个数据报文。这样的隧道无法抵抗插入攻击和地址欺骗攻击。

     --由于没有针对每个数据报文的完整性校验,就有可能遭到拒绝服务(DoS)的攻击:发送一些假冒的控制信息,导致L2TP隧道或底层PPP连接的关闭。

     --L2TP本身不提供任何加密手段,当数据需要保密时,就要另想办法。

     --虽然PPP报文的数据可以加密,但PPP协议不支持密钥的自动产生和自动刷新。这样进行监听的攻击者就有可能最终攻破密钥,从而得到所传输的数据。

     因此,为了保证L2TP业务的安全性,需要结合IPSec使用,但这会降低L2TP协议的可扩展性。另外,当设计使用“有状态”算法实现点到点的可靠链路时,比如采用IETF建立的IPCOMP进行PPP压缩和加密时,包丢失率可能会明显增加,因为IPCOMP技术对包丢失不敏感。

5 标准成熟程度与应用

     L2TP协议主要由Cisco、Ascend、Microsoft、3Com和Bay等厂商共同制定,目前已经比较成熟,国内外已经开始大规模开展了VPDN业务。建设VPDN应该是企业和运营商共同建设:运营商提供远程拨号接入设备(LAC),企业自己购置企业VPDN服务器。

     虽然IPSec以及与之相关的IKE已基本完成最后的标准化工作,但不同厂家设备的IPSec隧道方式连接时还存在互操作的问题。对于自己组建IPSec VPN的企业而言,可以选择同一厂家的IPSec产品以回避这一问题。但对运营商,除了前面的问题外,还有一个问题是当向多个用户提供这种方式的VPN业务时,如果多个用户共享一台VPN接入设备,因为用户普遍使用内部网IP地址,会存在地址冲突的可能性。但解决地址冲突的虚拟路由技术目前还不成熟。因此运营商目前大规模使用IPSec还存在困难。

     GRE协议的主要用途有两个:企业内部协议封装和私有地址封装。中国的企业网几乎全部采用的是TCP/IP协议,因此笔者认为在中国建立隧道时没有对企业内部协议封装的市场需求,企业使用GRE的唯一理由应该是对内部地址的封装。当运营商向多个用户提供这种方式的VPN业务时与IPSec一样,仍然存在地址冲突的可能性。

     MPLS协议本身的制定尚未完成,MPLS VPN也正处于研究、开发和实验之中也就不足为奇。目前使用MPLS VPN还面临着许多问题,首先就是MPLS技术的不成熟性,MPLS技术本身还面临着不少问题,比如信令协议的选择问题等。其次,MPLS VPN解决方案需要网络中所有的节点都要支持MPLS,这将需要对网络中所有的节点进行功能的升级。第三,虽然MPLS本身利用已经能够提供一定的安全机制,MPLS VPN可以将不同用户的数据流分开,可以利用标记来判断分组所属的VPN,从而可以防止数据的误传。但是MPLS中并没有描述对于用户数据的加密机制以及用户的认证过程。所以,当对于数据的加密以及用户的认证有较高的要求时,需要将MPLS与IPSec等安全协议结合起来使用。在安全能力上的欠缺也是MPLS有待完善的方面。

摘自《中国数据通信》
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50