IP sec 的组成--IPsec协议集包括三个协议:
1internet key exchange(IKE)密匙交换协议、isakmpinternet安全联系和密钥管理协议)
协议双方使用的算法,密匙,协商在两个对等体之间建立一条遂道的参数,协商完成再用下面的方法封装数据。
IKE动态的,周期性的在两个PEER之间更新密钥
2encapsulating secutity payload(ESP)封装安全负载
可以对数据包认证,加密,封装,IP中协议号--50,通常使用3DES来进行加密
3authentication header (AH)
只提供认证,封装,不提供加密,明文传送,IP中协议号--51
IPsec×××的两种模式--
一、传输模式:
不产生新的IP头,在原包头之后插入一个字段,当通信点等于加密点用这种方法
原始IP | (ESPAH) | Data
二、通道模式:
产生一个新IP包头,当通信点不等于加密点用这种方法,site-to-site×××就是这种模式,因为通信点的IP头通常不是一个公网上可路由的头部,而新的IP头用的是两个peer之间的IP地址。
IP | (ESPAH) | 原始IP | Data
通信点:实际通信的设备
加密点:进行加密的设备
ESP封装中只对原始IP分组进行完整性检验
AH封装中进行完整性检验还包括新的IP
--------------------------------------------------------------------------------------------
IKE密匙交换协议
IKE的作用:用于在两个peer之间协商建立IPsec-×××通道
1、协商参数
2、产生KEY,交换KEY、更新KEY
3、对双方进行认证
4、对密钥进行管理
也是由三个不同的协议组成:
1ISAKMP--定义了信息交换的体系结构,也就是格式
2SKEME--实现公钥加密认证的机制
3Oakley--提供在两个IPsec对等体间达成相同加密密钥的基于模式的机制
ISAKMP基于UDP,源目端口都是500
site-to-site ipsec ×××的协商过程,分两个阶段
要想在两个站点之间安全的传输IP数据流,它们之间必须要先进行协商,协商它们之间所采用的加密算法,封装技术以及密钥。这个协商过程是通过IKE来完成的,IKE协商分两个阶段运行:
阶段一:在两个对等体设备之间建立一个安全的管理连接。没有实际的数据通过这个连接。这个管理连接是用来保护第二阶段协商过程的。
阶段二:当对等体之间有了安全的管理连接之后,它们就可以接着协商用于构建安全数据连接的安全参数,这个协商过程是安全的,加了密的。协商完成后,将在两个站点间形成安全的数据连接。用户就可以利用这些安全的数据连接来传输自已的数据了。
第一阶段:建立ISAKMP SA   协商的是以下信息:
1、对等体之间采用何种方式做认证,是预共享密钥还是数字证书。
2、双方使用哪种加密算法
3、双方使用哪种HMAC方式,是MD5还是SHA
4、双方使用哪种Diffie-Hellman密钥组
5、使用哪种协商模式(主模式或主动模式)
6、还要协商SA的生存期
第二阶段:建立IPsec SA   协商的是以下信息:
1、双方使用哪种封装技术,AH还是ESP
2、双方使用哪种加密算法
3、双方使用哪种HMAC方式,是MD5还是SHA
4、使用哪种传输模式,是隧道模式还是传输模式
5、还要协商SA的生存期
第一阶段的协商过程总共有6条消息:
1
、消息1和消息2用于peer之间协商加密机制
ISAKMP包含有ISAKMP头、SA负载、提议负载、转换负载等字段
总之是让双方协商好我们之间使用啥子协议、加密方法
具体是要协定四个东东:加密机制、散列机制、DH组、认证机制
2、消息3和消息4用于相互之间交换公共密匙
两端的peer先各自生成自已的私匙和公匙,同时还产生一个临时值。然后再使用消息3或消息4将各自的公匙和临时值进行交换。
交换完公匙后,每个peer先根据对方的公匙和自已的私匙生成一个共享秘密(使用DH算法),再根据共享秘密、对方和自已的临时值、预共享密钥产生出三个SKEY
SKEYID_d--此密匙被用于计算后续IPsec密匙资源
SKEYID_a--此密匙被用于提供后续IKE消息的数据完整性以及认证
SKEYID_e--此密匙被用于对后续IKE消息进行加密
消息34ISAKMP包含以下字段:ISAKMP包头、密匙交换负载(KE)、临时值负载
3、消息5和消息6用于两个peer之间进行认证,这两个消息是用SKEYID_e进行过加密的。
每个peer根据一大堆东东(包括SKEYID-a、预共享密钥、标识ID)生成一个Hash值,再将这个值和自已的标识ID(通常是IP或主机名)发送给对方。当然,使用的就是消息5或消息6
每个peer收到对方的IDHash值后,先根据对方的ID找到对方的公匙,再计算本地Hash,如果本地Hash值和对方的Hash值一样,就表示认证成功。
这一步完成后,IKE SA被建立,主模式认证完成
第二阶段的协商过程总共有3条消息:
1、第一、二条信息是两个peer之间协商形成IPsec SA的封装协议、模式、加密算法,还要互发用DH重新生成的新的公匙和临时值,以及其它一些参数,像SPIID等等。
2、第三条消息通常由发起者发送给响应者,起一个确认的作用,也用来验证通信信道的有效性
第三条信息发送前,两端的peer必须先用和DH相关的信息(新的私钥和对方公钥)生成一个新的DH秘密,然后用该值和SKEYID_d以及其他一些参数一起来生成最终加解密的KEY
--------------------------------------------------------------------------------------------
SA--安全关联
SA是两个通信实体经协商建立起来的一种协定,它们决定了用来保护数据包安全的IPsec协议、转码方式、密钥、以及密钥的有效存在时间等等。任何IPsec实施方案始终会构建一个SA数据库(SA DB),由它来维护IPsec协议用来保障数据包安全的SA记录。
SA是单向的--如果两个主机(比如AB)正在通过ESP进行安全通信,那么主机A就需要有一个SA,即SAOUT),用来处理外发的数据包,另外还需要有一个不同的SA,即SAIN)用来处理进入的数据包。主机ASAOUT)和主机 BSAIN)将共享相同的加密参数(比如密钥)。
SA还要根据协议来区分,如果两个主机间同时使用ESPAH,对于ESPAH会生成不同的SA
SADB--安全关联数据库,包含双方协商的IKEIPsec安全信息
SPI--安全参数索引,是一个32位的值,用来标识用于处理数据包的特定的那个安全联盟。或者这样理解,用于唯一定义一条单向的IPsec通道。这个号码存在于ESP包头中,通道两端必须一致。
SA分为两种--
1IKEISAKMPSA 协商对IKE数据流进行加密以及对对等体进行验证的算法
2IPsec SA          协商对对等体之间的IP数据流进行加密的算法
对等体之间的IKE SA只能有一个
对等体之间的IPsec SA可以有多个
PFS--完善转发安全性,是一种IKE协商中发起者可以向响应者提供建议的属性,是一种强制对等体双方在快速模式交换中产生新的DH秘密的属性。这允许使用新的DH秘密生成用于加密数据的加密密钥。从第5个包起,后面的所有包将会加密,只不过不同的是,第56个包和第二阶段协商的3个包都是通过第一阶段协商的安全策略进行加密的,而用户通信的数据则是用第二阶段协商的IPSEC SA策略进行加密和认证的,至于密钥两者是否一样,就要看在第二阶段是否定义了PFS策略,如果应用了,那第第二阶段的密钥将与第一阶段的不同,否则两者的密钥是一样的。
--------------------------------------------------------------------------------------------
配置实例:
步骤:
1configure cryptoACL             配置感兴趣流,需要加密的流量就是感兴趣流。
2establish ISAKMPpolicy          第一阶段的策略
3configure IPsectransform set    第二阶段的策略
4configure crypto map
5apply crypto map tothe interface   在接口下应用
6configure interfaceACL          确定在外网接口放行哪些流量
一、定义感兴趣流:
ip access-list extended ×××
  permit ip 172.16.1.0 0.0.0.255172.16.2.0 0.0.0.255
二、IKE第一阶段
crypto isakmp policy 10
  encryption des
  hash md5
  authentication pre-share
  group 2
crypto isakmp key cisco address 202.100.1.2     pre-sharekey 的定义
三、IKE第二阶段
crypto ipsec transform-set MYSET esp-des esp-md5-hmac
  mode tunnel
四、把感兴趣流与转换集映射一下
crypto map MYMAP 100 ipsec-isakmp
  set peer 202.100.1.2 设置×××对等体的地址
  set tranform-set MYSET   设置转换集
  match address ×××     感兴趣流和转换集的绑定

五、MAP与接口绑定
int s0
  crypto map MYMAP
六、设定接口只允许跑×××流量,在接口入设置
access-list 100 permit udp any eq 500 any eq isakmp
access-list 100 permit esp any any
access-list 100 permit ip 172.16.2.0 0.0.0.255 172.16.1.0 0.0.0.255  由于ACL会二次查找,所以还要放行私网的流量
show crypto isakmp policy
show crypto isakmp sa   第一阶段的SA
show crypto ipsec sa 第二阶段的SA
show crypto engine connections active
show crypto map
crypto ipsec security-association lifetime [seconds|kilobytes] 第二阶段的一个协商时间,也就是说多长时间后重新协商密匙。也可按已发了多少流量来进行协商。哪个数值先到就先起效。
cryto isakmp keepalive 10 3
IPsec通道的终结:
当流量超过上限后或者超时自动终结
clear crypto isakmp 清第一阶段
clear crypto sa 清第二阶段
clear crypto session   在新版的IOS中,用这条命令全清
debug crypto isakmp
debug crypto ipsec