摘要:本文描述了VPN技术的基本原理以及IPSec规范,在此基础上介绍了VPN技术的实现方法和几种典型应用方案。最后,作者对VPN技术的推广与应用提出了自己的看法。
1.引言
1998年被称作“电子商务年”,而1999年则将是“政府上网年”。的确,Intemet作为具有世界范围连通性的“第四媒体”,已经成为一个具有无限商机的场所。如何利用Intemet来开展商务活动,是目前各个企业讨论的热门话题。但将Internet实际运用到商业中,还存在一些亟待解决的问题,其中最重要的两个问题是服务质量问题和安全问题。服务质量问题在有关厂商和ISP的努力下正在逐步得以解决,而VPN技术的产生为解决安全问题提供了一条有效途径。
所谓VPN(VirtualPrivate Network,虚拟私有网络)是指将物理上分布在不同地点的网络通过公用骨干网联接而成逻辑上的虚拟子网,这里的公用网主要指Interet。为了保障信息在Internet上传输的安全性,VPN技术采用了认证、存取控制、机密性、数据完整性等措施,,以保证了信息在传输中不被偷看、篡改、复制。由于使用Internet进行传输相对于租用专线来说,费用极为低廉,所以VPN的出现使企业通过Internet既安全又经济地传输私有的机密信息成为可能。
VPN技术除了可以节省费用外,还具有其它特点:
●伸缩性?能够随着网络的扩张,很灵活的加以扩展。当增加新的用户或子网时,只需修改已有网络软件配置,在新增客户机或网关上安装相应软件并接人Internet后,新的VPN即可工作。
●灵活性?除了能够方便地将新的子网扩充到企业的网络外,由于Intemet的全球连通性,VPN可以使企业随时安全地将信息存取到全球的商贸伙伴和顾客。
●易于管理?用专线将企业的各个子网连接起来时,随着子网数量的增加,需要的专线数以几何级数增长。而使用VPN时Internet的作用类似一个HUB,只需要将各个子网接入Internet即可,不需要进行各个线路的管理。
VPN既可以用于构建企业的Intranet,也可以用于构建Extranet。随着全球电子商务热的兴起,VPN应用必将越来越广泛。据Infonetics Reseach的预测,VPN的市场分额将从今天的两亿美元增长到2001年时的119亿美元,其中VPN产品的销售收入就要占其中的十分之一。
2.基于IPSec规范的VPN技术
1)IPSec协议简介
IPSec(1P Security)产生于IPv6的制定之中,用于提供IP层的安全性。由于所有支持TCP/IP协议的主机进行通信时,都要经过IP层的处理,所以提供了IP层的安全性就相当于为整个网络提供了安全通信的基础。鉴于IPv4的应用仍然很广泛,所以后来在IPSec的制定中也增添了对IPv4的支持。
最初的一组有关IPSec标准由IETF在1995年制定,但由于其中存在一些未解决的问题,从1997年开始IETF又开展了新一轮的IPSec的制定工作,截止至1998年11月份主要协议已经基本制定完成。不过这组新的协议仍然存在一些问题,预计在不久的将来IETF又会进行下一轮IPSec的修订工作。
2)IPSec基本工作原理
IPSec的工作原理(如图l所示)类似于包过滤防火墙,可以看作是对包过滤防火墙的一种扩展。当接收到一个IP数据包时,包过滤防火墙使用其头部在一个规则表中进行匹配。当找到一个相匹配的规则时,包过滤防火墙就按照该规则制定的方法对接收到的IP数据包进行处理。 这里的处理工作只有两种:
丢弃或转发。
图1 IPSec工作原理示意图
IPSec通过查询SPD(Security P01icy Database安全策略数据库)决定对接收到的IP数据包的处理。但是IPSec不同于包过滤防火墙的是,对IP数据包的处理方法除了丢弃,直接转发(绕过IPSec)外,还有一种,即进行IPSec处理。正是这新增添的处理方法提供了比包过滤防火墙更进一步的网络安全性。
进行IPSec处理意味着对IP数据包进行加密和认证。包过滤防火墙只能控制来自或去往某个站点的IP数据包的通过,可以拒绝来自某个外部站点的IP数据包访问内部某些站点,.也可以拒绝某个内部站点方对某些外部网站的访问。但是包过滤防火墙不能保证自内部网络出去的数据包不被截取,也不能保证进入内部网络的数据包未经过篡改。只有在对IP数据包实施了加密和认证后,才能保证在外部网络传输的数据包的机密性,真实性,完整性,通过Internet进新安全的通信才成为可能。
IPSec既可以只对IP数据包进行加密,或只进行认证,也可以同时实施二者。但无论是进行加密还是进行认证,IPSec都有两种工作模式,一种是与其前一节提到的协议工作方式类似的隧道模式,另一种是传输模式。
传输模式,如图2所示,只对IP数据包的有效负载进行加密或认证。此时,继续使用以前的IP头部,只对IP头部的部分域进行修改,而IPSec协议头部插入到IP头部和传输层头部之间。
图2 传输模式示意图
隧道模式,如图3所示,对整个IP数据色进行加密或认证。此时,需要新产生一个IP头部,IPSec头部被放在新产生的IP头部和以前的IP数据包之间,从而组成一个新的IP头部。
图3隧道模式示意图
3)IPSec中的三个主要协议
前面已经提到IPSec主要功能为加密和认证,为了进行加密和认证IPSec还需要有密钥的管理和交换的功能,以便为加密和认证提供所需要的密钥并对密钥的使用进行管理。以上三方面的工作分别由AH,ESP和IKE三个协议规定。为了介绍这三个协议,需要先引人一个非常重要的术语?SA(Securlty Association安全关联)。所谓安全关联是指安全服务与它服务的载体之间的一个“连接”。AH和ESP都需要使用SA,而IKE的主要功能就是SA的建立和维护。只要实现AH和ESP都必须提供对SA的支持。
通信双方如果要用IPSec建立一条安全的传输通路,需要事先协商好将要采用的安全策略,包括使用的加密算法、密钥、密钥的生存期等。当双方协商好使用的安全策略后,我们就说双方建立了一个SA。SA就是能向其上的数据传输提供某种IPSec安全保障的一个简单连接,可以由AH或ESP提供。当给定了一个SA,就确定了IPSec要执行的处理,如加密,认证等。SA可以进行两种方式的组合,分别为传输临近和嵌套隧道。
1)ESP(Encapsulating Secuity Fayload)
ESP协议主要用来处理对IP数据包的加密,此外对认证也提供某种程度的支持。ESP是与具体的加密算法相独立的,几乎可以支持各种对称密钥加密算法,例如DES,TripleDES,RC5等。为了保证各种IPSec实现间的互操作性,目前ESP必须提供对56位DES算法的支持。
ESP协议数据单元格式三个部分组成,除了头部、加密数据部分外,在实施认证时还包含一个可选尾部。头部有两个域:安全策略索引(SPl)和序列号(Sequencenumber)。使用ESP进行安全通信之前,通信双方需要先协商好一组将要采用的加密策略,包括使用的算法、密钥以及密钥的有效期等。“安全策略索引”使用来标识发送方是使用哪组加密策略来处理IP数据包的,当接收方看到了这个序号就知道了对收到的IP数据包应该如何处理。“序列号”用来区分使用同一组加密策略的不同数据包。加密数据部分除了包含原IP数据包的有效负载,填充域(用来保证加密数据部分满足块加密的长度要求)包含其余部分在传输时都是加密过的。其中“下一个头部(Next Header)”用来指出有效负载部分使用的协议,可能是传输层协议(TCP或UDP),也可能还是IPSec协议(ESP或AH)。
通常,ESP可以作为IP的有效负载进行传输,这JFIP的头UKB指出下广个协议是ESP,而非TCP和UDP。由于采用了这种封装形式,所以ESP可以使用旧有的网络进行传输。
前面已经提到用IPSec进行加密是可以有两种工作模式,意味着ESP协议有两种工作模式:传输模式(Transport Mode)和隧道模式(TunnelMode)。当ESP工作在传输模式时,采用当前的IP头部。而在隧道模式时,侍整个IP数据包进行加密作为ESP的有效负载,并在ESP头部前增添以网关地址为源地址的新的IP头部,此时可以起到NAT的作用。
2)AH(Authentication Header)
AH只涉及到认证,不涉及到加密。AH虽然在功能上和ESP有些重复,但AH除了对可以对IP的有效负载进行认证外,还可以对IP头部实施认证。主要是处理数据对,可以对IP头部进行认证,而ESP的认证功能主要是面对IP的有效负载。为了提供最基本的功能并保证互操作性,AH必须包含对HMAC?/FONTSHA和HMAC?/FONTMD5(HMAC是一种SHA和MD5都支持的对称式认证系统)的支持。
AH既可以单独使用,也可在隧道模式下,或和ESP联用。
3)IKE(Internet Key Exchange)
IKE协议主要是对密钥交换进行管理,它主要包括三个功能:
●对使用的协议、加密算法和密钥进行协商。
●方便的密钥交换机制(这可能需要周期性的进行)。
●跟踪对以上这些约定的实施。
3.VPN系统的设计
如图4所示,VPN的实现包含管理模块、密钥分配和生成模块、身份认证模块、数据加密/解密模块、数据分组封装/分解模块和加密函数库几部分组成。
管理模块负责整个系统的配置和管理。由管理模块来决定采取何种传输模式,对哪些IP数据包进行加密/解密。由于