IKE协议与实现Word文件下载.docx

上传人:b****3 文档编号:8214087 上传时间:2023-05-10 格式:DOCX 页数:9 大小:239.37KB
下载 相关 举报
IKE协议与实现Word文件下载.docx_第1页
第1页 / 共9页
IKE协议与实现Word文件下载.docx_第2页
第2页 / 共9页
IKE协议与实现Word文件下载.docx_第3页
第3页 / 共9页
IKE协议与实现Word文件下载.docx_第4页
第4页 / 共9页
IKE协议与实现Word文件下载.docx_第5页
第5页 / 共9页
IKE协议与实现Word文件下载.docx_第6页
第6页 / 共9页
IKE协议与实现Word文件下载.docx_第7页
第7页 / 共9页
IKE协议与实现Word文件下载.docx_第8页
第8页 / 共9页
IKE协议与实现Word文件下载.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

IKE协议与实现Word文件下载.docx

《IKE协议与实现Word文件下载.docx》由会员分享,可在线阅读,更多相关《IKE协议与实现Word文件下载.docx(9页珍藏版)》请在冰点文库上搜索。

IKE协议与实现Word文件下载.docx

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的互操作性和配置上的灵活性与可伸缩性,同时有利于软件的复用性。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2