IPSec协议IPSec协议1IPSec协议概述2IPSecVPN工作原理4.2.1隧道建立方式2.2数据保护方式2.3IPSEC协议体系结构3IPSec的优点1IPSec协议概述IPSec是一系列基于IP网络(包括Intranet、Extranet和Internet)的,由IETF正式定制的开放性IP安全标准,是虚拟专网的基础,已经相当成熟可靠。IPSec可以保证局域网、专用或公用的广域网及Internet上信息传输的安全。①保证Internet上各分支办公点的安全连接:公司可以借助Internet或公用的广域网搭建安全的虚拟专用网络。这使得公司可以不必耗巨资去建立自己的专用网络,而只需依托Internet即可以获得同样的效果。②保证Internet上远程访问的安全:在计算机上装有IPSec的终端用户可以通过拨入所在地的ISP的方式获得对公司网络的安全访问权。这一做法降低了流动办公雇员及远距离工作者的长途电话费用。③通过外部网或内部网建立与合作伙伴的联系:IPSec通过认证和钥匙交换机制确保企业与其它组织的信息往来的安全性与机密性。④提高了电子商务的安全性:尽管在电子商务的许多应用中已嵌入了一些安全协议,IPSec的使用仍可以使其安全级别在原有的基础上更进一步,因为所有由网络管理员指定的通信都是经过加密和认证的。IPSec的主要特征在于它可以对所有IP级的通信进行加密和认证,正是这一点才使IPSec可以确保包括远程登录、客户/服务器、电子邮件、文件传输及Web访问在内多种应用程序的安全。IPSec在传输层之下,对于应用程序来说是透明的。当在路由器或防火墙上安装IPSec时,无需更改用户或服务器系统中的软件设置。即使在终端系统中执行IPSec,应用程序一类的上层软件也不会被影响。IPSec对终端用户来说是透明的,因此不必对用户进行安全机制的培训。如果需要的话,IPSec可以为个体用户提供安全保障,这样做就可以保护企业内部的敏感信息。IPSec正向Internet靠拢。已经有一些机构部分或全部执行了IPSec。IAB的前任总裁ChristianHuitema认为,关于如何保证Internet安全的讨论是他所见过的最激烈的讨论之一。讨论的话题之一就是安全是否在恰当的协议层上被使用。想要提供IP级的安全,IPSec必须成为配置在所有相关平台(包括WindowsNT,Unix和Macintosh系统)的网络代码中的一部分。实际上,现在发行的许多Internet应用软件中已包含了安全特征。例如,NetscapeNavigator和MicrosoftInternetExplorer支持保护互联网通信的安全套层协议(SSL),还有一部分产品支持保护Internet上信用卡交易的安全电子交易协议(SET)。然而,VPN需要的是网络级的功能,这也正是IPSec所提供的。2IPSecVPN工作原理当IPSec用于路由器时,就可以建立虚拟专用网。在路由器的连内部网的一端,是一个受保护的网络,另一端则是不安全的公共网络。两个这样的路由器建立起一个安全通道,通信就可以通过这个通道从一个本地的保护子网发送到一个远程的保护子网,这就形成了一个VPN。4.2.1隧道建立方式IPsecVPN隧道的建立过程可以分为二个阶段:第一阶段有二种模式:主模式或主动模式和第二阶段:快速模式。第一阶段有三个任务必须完成:①协商一系列算法和参数(这些算法和参数用于保护隧道建立过程中的数据)。②必须计算出二边使用的加密KEY值,例如,二边使用3DES算法密,3DES算法则需要一个密码,这个密码两端端必须一样,但又不能在链路上传递。③对等体的验证,如何才能知道对端就是我要与之通信的对端.这里验证有三种方法:预共享,数字签名,加密临时值。这一系列过程都是IKE这个协议来实现。第一阶段三个任务,分别用6个消息来完成,每二个为一组。第一个消息由隧道的发起者发起,携带了如这样一些参数,如加密机制-DES,散列机制-MD5-HMAC,Diffie-Hellman组-2,认证机制-预共享。第二个消息由响应者回应,内容基本一样,主要与发起者比较,是否与发起者匹配,不匹配就进行下一组的比较.如果最终都找不到匹配,隧道就停止建立。第三个消息由发起者发出,但是在发出这个消息之前,有个过程必须先完成,就是Diffie-Hellman算法过程。该过程的目的是什么呢?刚刚第一二条消息中所协商的算法它们必须需要一个KEY,这个KEY在二个对等体上必须一样,但同时这个KEY不能在链路中传递,因为传递KEY是一个不安全的手段.所以,该过程的目的是分别在二个对等间独立地生成一个DH公共值,该公共值有什么用呢?因为二个对等体上都生成该DH公共值后,它们会在接下来的第三第四消息中传送给对方,打个比方,就是A收到了B的DH公共值,B收到了A的DH公共值.当A,B都收到了对方的该公共值后,问题就好解决了.因为有一个公式在数学中被论证成立,那么现在借助该公式,就可以在二个对等上生成一个只有他们二个对等体知道的相同的KEY,该公式为发起者密秘=(Xb)amodp=(Xa)bmodp=响应者密秘注意,这个密秘不是最终算法中使用的KEY,但二个对等体通过该KEY材料来生成另个三个密钥,分别是:SKEYID_d--此密钥被用于计算后续IPsec密钥资源。SKEYID_a--此密钥被用于提供后续IKE消息的数据完整性以及认证。SKEYID_e--此密钥被用于对后续IKE消息进行加密。所以由发起者发起的第三条消息主要是向对等体发送自己的DH公共值。第四条消息由响应者向发起者发送,主要是向发送者发送自己的DH公共值.由于第一二条消息的算法,第三四条消息生成的KEY,所以在后续的第五六条消息就能被加密传送.第五条消息由发起者向响应者发送,主要是为了验证对端自己就是自己想要与之通信的对端.这可以通过预共享,数字签名,加密临时值来实现.。第六条消息由响应者向发起者发送,主要目的和第五条一样。第二阶段只有一任务必须完成:在二个对等体间协商产生IPsec联盟的属性,安全联盟可以加密二个对等体间的数据,这才是真正的需要加密的用户数据,至此,隧道才真正建立起来。在第一阶段的六条消息过后,就进入了第二阶段:快速模式,快速模式使用二条消息来实现:发起者会在第一条消息中发送IPsecSA的转换属性,如:封装--ESP,完整性检验--SHA-HMAC,DH组--2,模式--隧道,响应者向发起者发送第二条消息,同意第一条消息中的属性,同时也能起到确认收到对端消息的作用。这一步一旦完成,隧道就建立起来了,用户的数据就能被放入隧道中传送。IPSec隧道建立过程类似于TCP三次握手,如下图所示:连接请求确认SYN,ACK,SEQ=Y,ACK=X+1被动打开SYN,SEQ=X确认SYN,SEQ=X+1,ACK=Y+1服务器客户端图1“三次”握手隧道的建立过程1)客户端向服务器端发送一个SYN置位的TCP报文;2)服务器端接收到客户端发送过来的SYN报文后,向客户端发送一个SYN和ACK都置位的TCP报文,其中包括确认号为x+1和服务器的初始序列号y;3)客户端收到服务器返回的SYN+ACK报文后,向服务器返回一个确认号为y+1序列号为x+1的ACK报文。2.2数据保护方式IPSec提供三种不同的形式来保护通过公有或私有IP网络来传送的私有数据:①认证:可以确定所接受的数据与所发送的数据是一致的,同时可以确定申请发送者在实际上是真实发送者,而不是伪装的。②数据完整:保证数据从原发地到目的地的传送过程中没有任何不可检测的数据丢失与改变。③机密性:使相应的接收者能获取发送的真正内容,而无意获取数据的接收者无法获知数据的真正内容。在IPSec由三个基本要素来提供以上三种保护形式:认证协议头(AH)、安全加载封装(ESP)和互联网密钥管理协议(IKMP)。认证协议头和安全加载封装可以通过分开或组合使用来达到所希望的保护等级。对于VPN来说,认证和加密都是必需的,因为只有双重安全措施才能确保未经授权的用户不能进入VPN,同时,Internet上的窃听者无法读取VPN上传输的信息。大部分的应用实例中都采用了ESP而不是AH。密钥交换功能允许手工或自动交换密钥。当前的IPSec支持数据加密标准(DES),但也可以使用其它多种加密算法。因为人们对DES的安全性有所怀疑,所以用户会选择使用Triple-DES(即三次DES加密)。至于认证技术,将会推出一个叫作HMAC(MAC即信息认证代码MessageAuthenticationCode)的新概念。2.3IPSEC协议体系结构IPSec将几种安全技术结合形成一个完整的安全体系,它包括安全协议部分和密匙协商部分。这些协议之间的相互关系如图2所示:图2IPSec协议体系①安全关联和安全策略:安全关联(SecurityAssociation,SA)是构成IPSec的基础,是两个通信实体经协商建立起来的一种协定,它们决定了用来保护数据包安全的安全协议(AH协或者ESP协议)、转码方式、密匙及密匙的有效存在时间等等。②IPSec协议的运行模式:IPSec协议的运行模式有两种,IPSec隧道模式及IPSec传输模式。隧道模式的特点是数据包最终的目的地不是安全的终点。通常情况下,只有IPSec双方有一方是安全网关或路由器,就必须使用隧道模式。传输模式下,IPSec主要对上层协议即IP包的载荷进行封装保护,通常情况下,传输模式只用于两台主机之间的安全通信。③认证协议头(AH)是在所有数据包头加入一个密码。正如整个名称所示,AH通过一个只有密钥持有人才知道的数字签名来对用户进行认证。这个签名是数据包通过特别的算法得出的独特结果;AH还能维持数据的完整性,因为在传输过程中无论多小的变化被加载,数据包头的数字签名都能把它检测出来。不过由于AH不能加密数据包所加载的内容,因而它不保证任何的机密性。两个最普遍的AH标准是MD5和SHA-1,MD5使用最高到128位的密匙,而SHA-1通过最高到160位密匙提供更强的保护。④安全加载封装(ESP)通过对数据包的全部数据和加载内容进行全加密来严格保证传输信息的机密性,这样可以避免其他用户通过监听来打开信息交换的内容,因为只有受信任的用户拥有密匙打开内容。ESP也能提供认证和维持数据的完整性。最主要的ESP标准是数据加密标准(DES),DES最高支持56位的密匙,而Triple-DES使用三套密匙加密,那就相当于使用最高到168位的密匙。由于ESP实际上加密所有的数据,因而它比AH需要更多的处理时间,从而导致性能下降。⑤密钥管理包括密钥确定和密钥分发两个方面,最多需要四个密钥:AH和ESP各两个发送和接收密钥。密钥本身是一个二进制字符串,通常用十六进制表示,例如,一个56位的密钥可以表示为5F39DA752E0C25B4。注意全部长度总共是64位,包括了8位的奇偶校验。56位的密钥(DES)足够满足大多数商业应用了。密钥管理包括手工和自动两种方式。1)人工手动管理方式。人工手动管理方式是指管理员使用自己的密钥及其它系统的密钥手工设置每个系统。这种方法在小型网络环境中使用比较实际。手工管理系统在有限的安全需要可以工作得很好。使用手工管理系统,密钥由管理站点确定然后分发到所有的远程用户。真实的密钥可以用随机数字生成器或简单的任意拼凑计算出来,每一个密钥可以根据集团的安全政策进行修改。2)自动管理系统。自动管理系统能满足其他所有的应用要求。使用自动管理系统,可以动态地确定和分发密钥,显然和名称一样,是自动的。自动管理系统具有一个中央控制点,集中的密钥管理者可以令自己更加安全,最大限度的发挥IPSec的效用。另一方面,自动管理系统可以随时建立新的SA密钥,并可以对较大的分布式系统上使用密钥进行定期的更新。自动管理模式是很有弹性的,但需要花费更多的时间及精力去设置,同时,还需要使用更多的软件。⑥因为IP安全机制是独立定义,其用途与现在的IP或IPv6不同,IP安全机制不需要依靠IPv6部署。我们可以看到安全IP