IKE协议与实现Word文件下载.docx
- 文档编号:8214087
- 上传时间:2023-05-10
- 格式:DOCX
- 页数:9
- 大小:239.37KB
IKE协议与实现Word文件下载.docx
《IKE协议与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《IKE协议与实现Word文件下载.docx(9页珍藏版)》请在冰点文库上搜索。
1为通信各方间协商一个新的DiffieHellman组类型的“新组模式”交换;
2在IKE通信双方间传送错误及状态消息的ISAKMP信息交换。
1.主模式交换
主模式交换提供了身份保护机制,经过三个步骤,共交换了六条消息。
三个步骤分别是策略协商交换、DiffieHellman共享值、nonce交换以及身份验证交换(如图2所示)。
2.野蛮模式交换
野蛮模式交换也分为三个步骤,但只交换三条消息:
头两条消息协商策略,交换DiffieHellman公开值必需的辅助数据以及身份信息;
第二条消息认证响应方;
第三条消息认证发起方,并为发起方提供在场的证据(如图3所示)。
3.快速模式交换
快速模式交换通过三条消息建立IPsecSA:
头两条消息协商IPsecSA的各项参数值,并生成IPsec使用的密钥;
第二条消息还为响应方提供在场的证据;
第三条消息为发起方提供在场的证据(如图4所示)。
4.新组模式交换
通信双方通过新组模式交换协商新的DiffieHellman组。
新组模式交换属于一种请求/响应交换。
发送方发送提议的组的标识符及其特征,如果响应方能够接收提议,就用完全一样的消息应答(如图5所示)。
5.ISAKMP信息交换
参与IKE通信的双方均能向对方发送错误及状态提示消息。
这实际上并非真正意义上的交换,而只是发送单独一条消息,不需要确认(如图6所示)。
三、IKE的安全
1.机密性保护
IKE使用DiffieHellman组中的加密算法。
IKE共定义了五个DiffieHellman组,其中三个组使用乘幂算法(模数位数分别是768、1024、1680位),另两个组使用椭圆曲线算法(字段长度分别是155、185位)。
因此,IKE的加密算法强度高,密钥长度大。
2.完整性保护及身份验证
在阶段1、2交换中,IKE通过交换验证载荷(包含散列值或数字签名)保护交换消息的完整性,并提供对数据源的身份验证。
IKE列举了四种验证方法:
1预共享密钥;
2数字签名;
3公钥加密;
4改进的公钥加密。
3.抵抗拒绝服务攻击
对任何交换来说,第一步都是cookie交换。
每个通信实体都生成自己的cookie,cookie提供了一定程度的抗拒绝服务攻击的能力。
如果在进行一次密钥交换,直到完成cookie交换,才进行密集型的运算,比如DiffieHellman交换所需的乘幂运算,则可以有效地抵抗某些拒绝服务攻击,如简单使用伪造IP源地址进行的溢出攻击。
4.防止中间人攻击
中间人攻击包括窃听、插入、删除、修改消息,反射消息回到发送者,重放旧消息以及重定向消息。
ISAKMP的特征能阻止这些攻击。
5.完美向前保密
完美向前保密(PFS),指即使攻击者破解了一个密钥,也只能还原这个密钥加密的数据,而不能还原其他的加密数据。
要达到理想的PFS,一个密钥只能用于一种用途,生成一个密钥的素材也不能用来生成其他的密钥。
我们把采用短暂的一次性密钥的系统称为“PFS”。
如果要求对身份的保护也是PFS,则一个IKESA只能创建一个IPsecSA。
四、IKE的实现
IKE是一个用户级的进程。
启动后,作为后台守护进程运行。
在需要使用IKE服务前,它一直处于不活动状态。
可以通过两种方式请求IKE服务:
1当内核的安全策略模块要求建立SA时,内核触发IKE。
2当远程IKE实体需要协商SA时,可触发IKE。
1.IKE与内核的接口
内核为了进行安全通信,需要通过IKE建立或更新SA。
IKE同内核间的接口有:
1、同SPD通信的双向接口。
当IKE得到SPD的策略信息后,把它提交给远程IKE对等实体;
当IKE收到远程IKE对等实体的提议后,为进行本地策略校验,必须把它交给SPD。
2、同SAD通信的双向接口。
IKE负责动态填充SAD,要向SAD发送消息(SPI请求和SA实例),也要接收从SAD返回的消息(SPI应答)。
2.IKE对等实体间接口
IKE为请求创建SA的远程IKE对等实体提供了一个接口。
当节点需要安全通信时,IKE与另一个IKE对等实体通信,协商建立IPsecSA。
如果已经创建了IKESA,就可以直接通过阶段2交换,创建新的IPsecSA;
如果还没有创建IKESA,就要通过阶段1、2交换创建新的IKESA及IPsecSA。
一、总体设计
IPsec规定的组件包括安全协议验证头(AH)和封装安全载荷(ESP)、安全策略数据库(SPD)和安全关联数据库(SAD)、IKE密钥交换及加密和验证算法。
1.总体结构
如图1所示,IPsec实现的总体结构分为IPsec协议引擎、策略管理、IKE密钥交换及密码变换4个模块。
其中IPsec安全协议的处理是数据流程的核心,策略管理模块为其直接提供所需参数,IKE密钥交换用于自动管理SAD,而密码算法是达到安全的基本工具。
2.功能分配
策略管理:
位于内核中,管理SPD和SAD,对数据包(要进行IPsec处理的数据报或数据包的统称)的安全保障起决定作用。
功能包括SPD和SAD的管理(记录的增加、删除、修改、刷新和查询)、同IPsec协议引擎的接口和同IKE的接口。
IPsec协议引擎:
位于内核中,实现安全协议AH和ESP。
功能包括外出数据包的处理、进入数据包的处理、同IP层和TCP层的接口。
IKE密钥交换:
一个用户级进程,用于动态管理SAD。
功能包括IKE间的交互、同SAD和SPD的接口。
密码算法:
至少应实现AES、DES、3DES、HMAC-MD5、HMAC-SHA1。
二、实现策略管理模块和协议引擎
1.策略管理模块
(1)SPD和SAD在内存中的组织和管理
IPsec系统所使用的策略库一般保存在一个策略服务器中。
该服务器为域中的所有节点(主机和路由器)维护策略库。
各节点可将策略库拷贝到本地,也可使用轻型目录访问协议(LDAP)动态获取。
从名义上说,一个IPsec系统中SPD分为进入SPD和外出SPD,均处于内核中。
系统初始化时,将策略库中的每一条记录分别装入进入SPD和外出SPD中。
为了确保SPD的有效性和安全性,应定期进行更新和刷新。
SAD的每一条记录对应一个SA。
SA经IKE协商得到,并以有序散列链表的形式组织。
从名义上说,SAD也分为进入SAD和外出SAD,分别与进入散列链表和外出散列链表相对应。
进入散列链表用SA中的IPsec源地址计算散列值,外出散列链表用SA中的IPsec目的地址计算散列值。
SA的维护视SA的建立方式而定。
如采用自动方式协商SA,则根据SA生存期的状态和序号计数器的溢出标志来决定SA的有效性。
生存期分为软生存期和硬生存期。
软生存期状态决定发送方是否可用SA发送数据包,硬生存期状态决定接收方是否可用SA来处理收到的数据包。
当一个SA的软生存期期满时,发送方不能继续用其来发送数据包,此时,可以启动或触发IKE再协商一个。
使用软、硬生存机制可保证通信的持续性。
如采用手工方式建立SA,则不存在生存期,仅根据序号计数器的溢出标志来决定SA的有效性。
如SPD或SAD过于庞大,则可将一部分置于用户空间。
(2)SPD和SAD间的关系
对数据包进行IPsec处理时,要查询SPD和SAD。
为了提高速度,SPD的每一条记录都应有指向SAD中相应记录的指针,反之亦然。
对于外出处理,先查询SPD,获得指向SA的指针,再在SAD查询进行处理所需参数。
如SA未建立,则应使用IKE协商,并建立SPD和SAD间的指针。
对于进入处理,先查询SAD,对IPsec包进行还原,取出指向SPD的指针,然后验证该包应用的策略与SPD中规定的是否相符。
2.IPsec协议引擎
(1)外出处理
对于外出数据包,不论是本机产生的还是转发的,IPsec协议引擎要先调用策略管理模块,查询SPD,确定为数据包应使用的安全策略。
根据策略管理模块的指示,协议引擎对该数据包作出3种可能的处理(如图2所示):
丢弃——丢弃数据包,并记录出错信息。
绕过——给数据包添加IP头,然后发送。
应用Ipsec——调用策略管理模块,查询SAD,确定是否存在有效的SA。
1存在有效的SA,则取出相应的参数,将数据包封装(包括加密、验证,添加IPsec头和IP头等),然后发送。
2尚未建立SA,策略管理模块启动或触发IKE协商,协商成功后按1中的步骤处理,不成功则应将数据包丢弃,并记录出错信息。
3存在SA但无效,策略管理模块将此信息向IKE通告,请求协商新的SA,协商成功后按1中的步骤处理,不成功则应将数据包丢弃,并记录出错信息。
(2)进入处理
对于进入数据包,IPsec协议引擎先调用策略管理模块,查询SAD。
如得到有效的SA,则对数据包进行解封(还原),再查询SPD,验证为该数据包提供的安全保护是否与策略配置的相符。
如相符,则将还原后的数据包交给TCP层或转发。
如不相符,或要求应用IPsec但未建立SA,或SA无效,则将数据包丢弃,并记录出错信息。
三、分片和ICMP问题
1.解决分片和PMTU问题的建议
外出的IP包长度如果超过网络接口的最大传输单元(MTU),则要进行分片处理。
由于实施IPsec时,要增加一个或多个IPsec头,因此不能直接使用Linux中的PMTU(PathMaximumTransferUnit)查找。
以下分主机实施和路由器实施2种情况来讨论分片和PMTU问题。
主机实施IPsec时,可在传输层或IP层查找PMTU。
由于主机不维护源路由,因此应在传输层维护端到端的PMTU信息。
计算和确定IP包的长度时,要考虑IPsec的模式及AH头和ESP头的长度。
对于路由器转发的数据包,如不允许分片,且长度超过了转发该数据包接口的MTU,路由器就应向始发主机发送一条控制消息协议(ICMP)不可到达消息。
为有效利用网络带宽,应允许路由器决定是否可对数据包进行分片。
2.解决ICMP问题的建议
ICMP用于Internet差错处理和报文控制。
ICMP消息分为错误消息和查询消息。
以端到端的方式使用IPsec时,不会影响ICMP,而以隧道模式来使用IPsec,则会影响ICMP错误消息的处理。
这是因为ICMP错误消息只能发送数据包的外部IP头及其后的64比特数据,内部IP头的源地址不会在ICMP错误消息中出现,路由器不能正确地转发该消息。
因此,应对路由器生成的ICMP错误消息进行特殊处理,特别是当路由器通过隧道传输其他路由器生成的ICMP错误消息时,可以为隧道两端的路由器建立一个隧道模式SA,用于发送ICMP错误消息。
同时,路由器应不对ICMP错误消息的源地址进行检查。
四、结束语
将IPsec集成到Linux内核中,涉及修改TCP层和IP层的部分源代码,比作为线缆中的块实施要复杂得多。
但这样做有利于保证IPsec的互操作性和配置上的灵活性与可伸缩性,同时有利于软件的复用性。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- IKE 协议 实现