基于IPSec的VPN技术原理与实现

来源:互联网 发布:理解linux内核 编辑:程序博客网 时间:2024/05/16 01:40

基于IPSec的VPN技术原理与实现

摘要:本文描述了VPN技术的基本原理以及IPSec规范,在此基础上介绍了VPN技术的实现方法和几种典型应用方案。最后,作者对VPN技术的推广与应用提出了自己的看法。

1       引言

    1998年被称作“电子商务年”,而1999年则将是“政府上网年”。的确,Intemet作为具有世界范围连通性的“第四媒体”,已经成为一个具 有无限商机的场所。如何利用Intemet来开展商务活动,是目前各个企业讨论的热门话题。但将Internet实际运用到商业中,还存在一些亟待解决的 问题,其中最重要的两个问题是服务质量问题和安全问题。服务质量问题在有关厂商和ISP的努力下正在逐步得以解决,而VPN技术的产生为解决安全问题提供 了一条有效途径。
   
  所谓VPN(VirtualPrivateNetwork,虚拟私有网络)是指将物理上分布在不同地点的网络通过公用骨干网联接而成逻辑上的虚拟子网,这里的公用网主要指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技术

2.1     IPSec协议简介

IPSec(1PSecurity)产生于IPv6的制定之中,用于提供IP层的安全性。由于所有支持TCP/IP协议的主机进行通信时,都要经过IP层的处理,所以提供 了IP层的安全性就相当于为整个网络提供了安全通信的基础。鉴于IPv4的应用仍然很广泛,所以后来在IPSec的制定中也增添了对IPv4的支持。

最初的一组有关IPSec标准由IETF在1995年制定,但由于其中存在一些未解决的问题,从1997年开始IETF又开展了新一轮的IPSec 的制定工作,截止至1998年11月份主要协议已经基本制定完成。不过这组新的协议仍然存在一些问题,预计在不久的将来IETF又会进行下一轮IPSec 的修订工作。

2.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隧道模式示意图

2.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可以进行两种方式的组合,分别为传输临近和嵌套隧道。

2.3.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.3.2     AH(Authentication Header)

AH只涉及到认证,不涉及到加密。AH虽然在功能上和ESP有些重复,但AH除了对可以对IP的有效负载进行认证外,还可以对IP头部实施认证。主 要是处理数据对,可以对IP头部进行认证,而ESP的认证功能主要是面对IP的有效负载。为了提供最基本的功能并保证互操作性,AH必须包含对HMAC?/FONT>SHA和HMAC?/FONT>MD5(HMAC是一种SHA和MD5都支持的对称式认证系统)的支持。

AH既可以单独使用,也可在隧道模式下,或和ESP联用。

2.3.3     IKE(Internet Key Exchange)

IKE协议主要是对密钥交换进行管理,它主要包括三个功能:
  
  ●对使用的协议、加密算法和密钥进行协商。
  
  ●方便的密钥交换机制(这可能需要周期性的进行)。
  
  ●跟踪对以上这些约定的实施。

3       VPN系统的设计

如图4所示,VPN的实现包含管理模块、密钥分配和生成模块、身份认证模块、数据加密/解密模块、数据分组封装/分解模块和加密函数库几部分组成。
  
   
   管理模块负责整个系统的配置和管理。由管理模块来决定采取何种传输模式,对哪些IP数据包进行加密/解密。由于对IP数据包进行加密需要消耗系统资源, 增大网络延迟,因此对两个安全网关之间所有的IP数据包提供VPN服务是不现实的。网络管理员可以通过管理模块来指定对哪些IP数据包进行加密。 Intranet内部用户也可以通过Telnet协议传送的专用命令,指定VPN系统对自已的IP数据包提供加密服务。

密钥管理模块负责完成身份认证和数据加密所需的密钥生成和分配。其中密钥的生成采取随机生成的方式。各安全网关之间密钥的分配采取手工分配的方式,通过非网络传输的其它安全通信方式完成密钥在各安全网关之间的传送。各安全网关的密钥存贮在密数据库中,支持以IP地址为关键字的快速查询获取。

身份认证模块对IP数据包完成数字签名的运算。整个数字签名的过程如图5所示:


  图5 数字签名

首先,发送方对数据进行哈希运算h=H(m),然后 用通信密钥k对h进行加密得到签名Signature={ h} key。发送方将签名附在明文之后,一起传送给接收方。接收方收到数据后,首先用密钥k对签名进行解密得到 h,并将其与H(m)进行比较,如果二者一致,则表明数据是完整的。数字签名在保证数据完整性的同时,也起到了身份认证的作用,因为只有在有密钥的情况之下,才能对数据进行正确的签名。
  
  数据加密/解密模块完成对IP数据包的加密和解密操作。可选的加密算法有IDEA算法和DES算 法。前者在用软件方式实现时可以获得较快的加密速度。为了 进一步提高系统效率,可以采用专用硬件的方式实现数据的加密和解密,这时采用DES算法能得到较快的加密速度。随着当前计算机运算能力的提高,DES算法 的安 全性开始受到挑战,对于安全性要求更高的网络数据,数据加密/解密模块可以提供TriPle DES加密服务。

数据分组的封装/分解模块实现对IP数据分组进行安全封装或分解。当从安全网关发送IP数据分组时,数据分组封装/分解模块为IP数据分组附加上身份认证头AH和安全数据封装头ESP。当安全网关接收到IP 数据分组时,数据分组封装/分解模块对AH和ESP进行协议分析,并根据包头信息进行身份验证和数据解密。

加密函数库为上述模块提供统一的加密服务。加密 函数库设计的一条基本原则是通过一个统一的函数接口界面与上述模块进行通信。这样可以根据实际的需要,在挂接加密算法和加密强度不同的函数库时,其它模块不需作出改动。

4       几种典型的VPN应用方案

VPN的应用有两种基本类型:拨号式VPN与专用式VPN。

拨号VPN为移动用户与远程办公者提供远程内部网访问,这种形式的VPN是当前最流行的形式。拨号VPN业务也称为“公司拨号外包”方式。按照隧道建立的场所,拨号VPN分为两种:在用户PC机上或在服务提供商的网络访问服务器(NAS)上。

专用VPN有多种形式,其共同的要素是为用户提供IP服务,一般采用安全设备或客户端的路由器等设备在IP网络上完成服务。通过在帧中继或ATM网 上安装IP接口也可以提供IP服务。专用业务应用通过WAN将远程办公室与企业的内部网与外部网连接起来,这些业务的特点是多用户与高速连接,为提供完整的VPN业务,企业与服务提供商经常将专用VPN与远程访问方案结合起来。

目前刚出现一种VPN知觉的网络,服务提供商将很快推出一系列新产品,专门用于提供商在向企业提供专用增值服务时对扩展性与灵活性的需求。

5       结束语

总之,VPN是一项综合性的网络新技术,即使在网络高度发达的美国也才推出不久,但是已显示出强大的生命力,Cisco、3Com、Ascend等 公司已推出了各自的产品。但是VPN产品能否被广泛接受主要取决于以下两点:一是VPN方案能否以线路速度进行加密,否则将会产生瓶颈;二是能否调度和引 导VPN的数据流到网络上的不同管理域。

在中国,由于网络基础设施还比较落后,计算机应用水平也不高,因此目前对VPN技术的需求还不高,大多数厂商还处在徘徊观望阶段,但是随着国民经济信息化进程的加快,特别是政府上网、电子商务的推动,VPN技术将会大有用武之地。


原创粉丝点击