当前位置:文档之家› IPSec协议介绍

IPSec协议介绍

IPSec协议介绍

IP_SECURITY协议(IPSec),是INTERNET工程任务组(IETF)为IP安全推荐的一个协议。通过相应的隧道技术,可实现VPN。IPSec有两种模式:隧道模式和传输模式。

IPSec协议组还包括支持网络层安全性密钥管理要求的密码技术。ISAKMP(Internet Security Association Key Management Protocol Internet安全协定密钥管理协议)为Internet密钥管理提供框架结构,为安全属性的协商提供协议支持。它本身不能建立会话密钥;然而它可与各种会话密钥建立协议一起使用,如Qakley,为Internet密钥管理提供完整的解决方案。

Oakley密钥确定协议使用一种混合的Diffie-Hellman技术,在Internet主机及路由器上建立会话密钥。Onkley提供重要的完美的前向保密安全特性,它基于经过大量公众审查的密码技术。完善的前向保密确保在任何单个密钥受损时只有用此密钥加密的数据受损。而用后续的会话密钥加密的数据不会受损。

ISAKMP及Qakley协议已结合到一种混合协议中。用Qakley分解ISAKMP使用ISAKMP框架来支持Qakley密钥交换模式的子集。这种新的密钥交换协议提供可选的完美前向保密、全安全关联特性协商以及提供否认、非否认的鉴别方法。例如,这种协议的实施可用于建立虚拟专用网络(VPN)并允许远程用户从远程站址(有动态分配的IP地址)接入安全网络。

IPSec工作时,首先两端的网络设备必须就SA(security association)达成一致,这是两者之间的一项安全策略协定。SA包括:

◆加密算法

◆鉴别算法

◆共享会话密钥

◆密钥使用期限

SA是单向的,故欲进行双向通信需建立两个SA(各为一个方向)。这些SA通过ISAKMP 协商或可人工定义。

SA商定之后,然后确定是使用鉴别、保密和完整性或仅仅只用鉴别。IPSec有两种模式:隧道模式和传输模式;

在隧道模式中,整个IP数据报、IP报头和数据都封装在ESP报头中。在传输模式中,只有数据部分是封装,而IP报头则不封装即被传送。目前,标准规定必须实施密码块链接(CBC)模式中的DES。

IPSec接收端的网络设备根据接收端的SA数据库对使用IPSec加密的数据进行相应的解密并接收,这样就达到了传送数据的私有性和完整性。

IPsec VPN隧道的建立过程两个阶段收藏

IPsec VPN隧道的建立过程可以分为二个阶段:

第一阶段二种模式: 主模式或主动模式

第二阶段:快速模式

第一阶段有三个任务必须完成:

1) 协商一系列算法和参数(这些算法和参数用于保护隧道建立过程中的数据)

2) 必须计算出二边使用的加密KEY值,例如,二边使用3DES算法密,3DES算法则需要一个密码,这个密码二端必须一样,但又不能在链路上传递.

3) 对等体的验证,如何才能知道对端就是我要与之通信的对端.这里验证有三种方法:预共享,数字签名,加密临时值.

这一系列过程都是IKE这个协议来实现,IKE这个协议也存在着一些不足,"IKE

之子"或第二版IKE正在开发之中.

第二阶段只有一任务必须完成:在二个对等体间协商产生IPsec联盟的属性,安全联盟可以加密二个对等体间的数据,这才是真正的需要加密的用户数据,至此,隧道才真正建立起来.

第一阶段三个任务,分别用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)amod p=(Xa)bmod p=响应者密秘

注意,这个密秘不是最终算法中使用的KEY,但二个对等体通过该KEY材料来生成另个三个密钥,分别是:

SKEYID_d--此密钥被用于计算后续IPsec密钥资源.

SKEYID_a--此密钥被用于提供后续IKE消息的数据完整性以及认证. SKEYID_e--此密钥被用于对后续IKE消息进行加密.

所以由发起者发起的第三条消息主要是向对等体发送自己的DH公共值

.第四条消息由响应者向发起者发送,主要是向发送者发送自己的DH公共值.由于第一二条消息的算法,第三四条消息生成的KEY,所以在后续的第五六条消息就能被加密传送.

第五条消息由发起者向响应者发送,主要是为了验证对端自己就是自己想要与之通信的对端.这可以通过预共享,数字签名,加密临时值来实现.

第六条消息由响应者向发起者发送,主要目的和第五条一样.

在这六条消息过后,就进入了第二阶段:快速模式,快速模式使用二条消息来实现.

快速模式

发起者会在第一条消息中发送IPsec SA的转换属性,如:封装--ESP,完整性检验--SHA-HMAC,DH组--2,模式--隧道

响应者向发起者发送第二条消息,同意第一条消息中的属性,同时也能起到确认收到对端消息的作用.

这一步一旦完成,隧道就建立起来了,用户的数据就能被放入隧道中传送

相关主题