张莉
广东女子职业技术学院 广东 511450
网际密钥交换协议(Internet Key Exchange, IKE)是一种密钥交换、管理协议,用于为互联网协议安全(Internet Protocol Security, IPSec)提供密钥服务,即交换和管理在虚拟专用网(Virtual Private Network, VPN)中使用的加密密钥。IKE活动在用户数据报协议(User Datagram Protocol, UDP)层上,提供安全的密钥交换和管理机制。虽然 IPSec可以单独使用,但IKE能使IPSec更灵活、易于配置,且有更高的安全性。IPSec中的安全协议在处理数据前必须先要和通信对方建立安全联盟(Security Association, SA)。SA是两个通信实体经协商建立起来的一种协定,它决定了用来保护数据包安全的IPSec 协议、密钥以及密钥的有效存在时间等。
IPSec为两个IPSec同位体(例如两台路由器)提供安全通道。用户定义哪些是需要保护的敏感数据流,并将由安全通道进行传送,并且通过指定这些通道的参数来定义用于保护这些敏感包的参数,当 IPSec看到这样的一个敏感包时,它将建立起相应的安全通道,通过这条安全通道将这份数据报传送到远端同位体。定义敏感数据流的工作可以由配置访问列表的方式来实现,基于访问列表中的源目的地址和协议以及端口来描述要保护的敏感数据流。配置好访问列表,使用加密映射集将这些访问列表应用到接口上,可以使接口对进出的特定数据流进行保护。
一个加密映射集合可以有多个条目,每一个对应一个不同的访问列表,路由器按顺序查找与当前通讯流匹配的条目。当某个包匹配特定访问列表中的一个permit项时,如果加密映射条目被标记为ipsec-manual,则IPSec直接被触发,对数据流进行安全处理;如果加密映射条目标记为 ipsecisakmp,如IPSec安全联盟已经建立,则直接对数据进行IPSec保护,否则会自动触发IKE协商产生IPSec的安全联盟。如果用户没有正确配置IPSec或IKE参数,导致安全联盟无法建立,数据包将丢失。
安全联盟一旦建立,外出数据包被IPSec加密或填写验证信息后送出,被传递到同位体;对于同位体该数据包为进入包,查找对应的安全联盟,并对此包实施相应解密、验证后还原。加密映射条目还指定了变换集,变换集中定义了IPSec采用的算法、协议模式等的组合。两个IPSec同位体必须最终采用一致的转换集,才能进行有效的通讯。
IPSec配置任务的最终目的是为了建立IPSec安全联盟,IPSec支持两种方式的 SA建立和密钥管理。一种是手工方式:所有的信息需要手工配置,参数的拟定均是人工进行的,这样做既容易出错,又很不安全,而且手工建立的SA使用时间较长,不方便更新,增加了不安全因素,适用于结构简单的网络。另一种是自动方式(IKE协商):SA可以通过协商方式产生,SA过期以后自动重新协商,提高了安全性,适用于较复杂拓扑和较高安性的网络。
位于广东省的某高校校园网由两个校区构成,在主校区采用了Cisco 路由器作为网关,在分校区采用锐捷路由器作为网关,为了保护两个校区子网之间的IP数据通信安全,在IPSec中采用IKE方式进行SA建立和密钥管理配置,两个校区的拓扑图如图1所示。
图1 某高校网络拓扑结构简图
为了实现IPSec的在校园网中的安全服务,采用IKE方式的配置如下。
2.1.1 分校区路由器的配置
进入分校区的路由器管理界面,进行如下配置:
ra(config)# crypto isakmp enable //打开IKE功能
ra(config)#crypto isakmp key 0 perword address 10.1.1.1 //指定与特定远程IKE同位体一起使用的共享密钥。
ra(config)#crypto ipsec transform-set myset esp-des esp-md5-hmac //定义变换集合。transform参数是系统所支持的算法,算法可以进行一定规则的组合。
ra(cfg-crypto-trans)#exit //退回到全局配置模式继续配置。
ra(config)#crypto map mymap 5 ipsec-isakmp //指定要创建或修改的加密映射条目,执行此命令将进入加密映射配置模式。
ra(config-crypto-map)#match address 101 //为加密映射列表指定一个访问列表。这个访问列表决定了哪些通信应该受到IPSec 的保护,哪些通信不应该受到此加密映射条目中定义的 IPSec 安全性的保护。
ra(config-crypto-map)#set peer 10.1.1.1 //指定远端IPSec同位体。受到IPSec保护的通信将被发往这个同位体。
ra(config-crypto-map)#set transform-set myset //指定使用哪个变换集合,这个变换集合必须和远端同位体相应加密映射条目中所指定的一样。
ra(config-crypto-map)#exit //退回到全局配置模式
ra(config)#interface fa 1/0 //指定路由器内网连接口Ip地址及子网掩码
ra(config-if)#ip address 192.168.10.1 255.255.255.0
ra(config)#interface serial 1/2 //指定路由器外网连接口IP地址及子网掩码
ra(config-if)#ip address 10.1.1.2 255.255.255.0
ra(config-if)#encapsulation ppp //设置接口的链路层协议封装为ppp
ra(config-if)#crypto map mymap //将加密映射集合应用于接口。一个接口只能同时应用一个加密映射集合,加密映射集合不能同时应用到多个接口上。
ra(config-if)#exit //退回到全局配置模式
ra(config)#ip route 0.0.0.0 0.0.0.0 serial 1/2 //添加路由信息
ra(config)#access-list 101 permit ip 192.168.10.0 0.0.0.255 192.168.11.0 0.0.255 //定义加密访问列表,对192.168.10.0/24和192.168.11.0/24子网之间的IP通信进行保护
ra(config)#end //结束配置
2.1.2 主校区路由器的配置
IKE 协商开始时,IKE 试图去寻找在两个同位体上一致的策略。发起协商的一方将策略全部发送给远程响应方,响应方在接收到的另一端同位体的策略中按优先顺序寻找与本地匹配的策略。进入主校区的路由器管理界面,配置如下:
Ca(config)#crypto isakmp policy 1 //标识要创建的策略,每条策略由优先级惟一标识,范围是从 1到 10000,1为最高优先级。
Ca(isakmp-policy)#authentication pre-share//指定验证方法
Ca(isakmp-policy)#exit //退回到全局配置模式
Ca(config)#crypto isakmp key 0 preword address 10.1.1.2 //配置预共享密钥
Ca(config)#crypto ipsec transform-set myset esp-des esp-md5-hmac //定义变换集合
Ca(cfg-crypto-trans)#exit //退回到全局配置模式
Ca(config)#crypto map mymap 5 ipsec-isakmp //定义加密映射
Ca(config-crypto-map)#set peer 10.1.1.2//指定远端 IPSec同位体。受到 IPSec 保护的通信将被发往这个同位体。
Ca(config-crypto-map)#set transform-set myset //指定使用哪个变换集合,这个变换集合必须和远端同位体相应加密映射条目中所指定的一样。
Ca(config-crypto-map)#match address 101 //为加密映射列表指定一个访问列表。Ca(config-crypto-map)#exit //退回到全局配置模式
Ca(config)#interface fa 0/0 //指定路由器内网连接口IP地址及子网掩码
Ca(config-if)#ip address 192.168.11.1 255.255.255.0
Ca(config-if)#exit //退回到全局配置模式
Ca(config)#interface Serial0 //指定路由器外网连接口IP地址
Ca(config-if)#ip address 10.1.1.1 255.255.255.0
Ca(config-if)#encapsulation ppp //设置接口的链路层协议封装为ppp
Ca(config-if)#crypto map mymap //将加密映射应用到接口上
Ca(config-if)#exit //退回到全局配置模式
Ca(config)#ip route 192.168.10.0 255.255.255.0 Serial0 //添加路由信息
Ca(config)#access-list 101 permit ip 192.168.11.0 0.0.0.255 192.168.10.0 0.0.0.255 //定义加密访问列表,对192.168.11.0/24和192.168.10.0/24子网之间的IP通信进行保护
Ca(config)#end //结束配置
在分校区的任一台主机上,发一个数据报文到主校区主机中,IKE 协商被触发,最后,成功建立 IPSEC安全联盟。打开IKE和IPSEC的调试开关命令如下:
RouterA#debug crypto ipsec
RouterA#debug crypto isakmp //显示关于 IKE事件的debug消息
为了查看并确认 IKE和 IPSEC的安全联盟是否已经建立,通过以下命令查看相关信息:
RouterA#show crypto isakmp sa //浏览所有当前IKE安全联盟
RouterA#show crypto ipsec sa //查看SA信息
IKE是一种密钥管理协议标准,与IPSec标准一起使用。IPSec是提供稳健认证及IP 包加密的一种IP安全功能。IPSec虽然可以不用IKE进行配置,但是通过IKE提供额外功能及灵活性使得IPSec标准更易于配置,从而增强了IPSec的功能。
IKE协议是一个经过精心设计的协议,借鉴了许多其它协议的经验和优点,充分考虑到了协议的安全性和灵活性,对通信给予了很高的安全保障;但由于要依赖其它方面的使用,如证书发布机制,所以实用性方面有一定缺憾,普遍使用的时机还尚未成熟,相信最终IPSec将成为安全的首选解决方案。
[1]郭成芳.Internet密钥交换协议(IKE)的安全性研究[J].电脑与电信.2008.
[2]冀强.IPSec VPN技术研究及应用[D].北京邮电大学.2009.
[3]贺建伟.因特网密钥交换协议的应用研究[J].电脑编程技巧与维护.
[4]杨明.基于IPSec体系结构的VPN网络系统的研究与实现[D].吉林大学.2010.
[5]蒋家棠.应用IPSec的软交换网络安全性研究[D].中国优秀硕士学位论文全文数据库.2010.
[6]王科.基于IPSec的VPN网关设计及其在电子政务系统中的应用[D].武汉理工大学.2010.