logo好方法网

一种基于IPsec封装功能的密钥更新方法及装置


技术摘要:
本发明提供一种基于IPsec封装功能的密钥更新方法及装置,该方法基于一种新的IPsec封装协议,在现有IPsec封装协议封装头部分的下一个报文头中增加控制协议,并封装对应的TLV控制头。在更新密钥时,先通过确认是否接收到含有更新密钥控制协议的IPsec报文,再确认是否接收  全部
背景技术:
IETF定义的IPsec封装协议有两种,一种是AH,一种是ESP。这两种协议的封装模式 又分为传输模式和隧道模式。其中,传输模式是基于原始的IP头做一次IPsec封装,隧道模 式则封装了新的报文头,在实际的使用中,隧道模式用的较多。 在IPsec封装协议中,为了保证封装的安全性,其密钥是需要定期更换的,目前更 换的手段有两种:一是通过手工配置(可以通过SDN控制器下发或自动化配置);另一种是通 过IKE重协商。但这两种方法,都无法保证IPsec端点在同一时刻更换新的密钥,因此会造成 转发面的短暂断流。
技术实现要素:
针对上述现有技术中存在的问题,本发明通过使用基于IPsec封装的扩展协议,提 供一种更换密钥的方法,解决了在更换密钥后,双方密钥不同步,转发面出现断流的问题。 为了实现发明目的,本发明的技术方案如下,一种基于IPsec封装功能的密钥更新 方法,所述密钥更新方法包括以下步骤: 步骤一,IPsec隧道两端的节点接收更新后的密钥; 步骤二,所述IPsec隧道两端的节点分别判断是否收到过对方的控制报文,如果收 到过,则直接使用新的密钥发送转发报文;如果没有收到过,设置第一定时器,在定时器未 到期期间内,使用新的出向密钥定期发送控制报文,同时,使用旧的密钥发送和接收原来的 数据报文,保证转发面仍然正常加解密; 步骤三,所述第一定时器到期时,节点再次判断是否收到过对方的控制报文,如果 收到过,则直接使用新的密钥发送转发报文;如果没有收到过,设置第二定时器,在定时器 未到期期间内,使用新的出向密钥定期发送控制报文,同时,使用旧的密钥发送和接收原来 的数据报文,保证转发面仍然正常加解密; 步骤四,收到对方发送的控制报文后,通过SPI查找本地SA数据库,如果本节点还 没有收到更新后的密钥,则记录控制流信息,丢弃报文;如果收到了更新后的密钥,则停止 定时器,不再发送控制报文,并开始使用新的密钥发送数据报文。 进一步的,所述控制报文在现有IPsec封装协议封装头部分的下一个报文头中增 加控制协议头,并封装对应的TLV控制头。 更进一步的,所述控制协议包括: Next  Header:下一个报文头,8比特大小,用来填充IP报文IANA编号或原始数据的 协议IANA编号; Type:类型字段,根据需求定义填充控制类型; 4 CN 111614463 A 说 明 书 2/5 页 Len:长度字段,根据控制类型定义对应数据长度,其长度为Value的长度; Value:控制数据字段,长度根据Len定义。 进一步的,IPsec封装协议中的AH封装协议、ESP封装协议中,报文头中的下一个报 文头指明是IPsec控制头,IPsec控制头中的下一个报文头指明原始报文信息。 进一步的,在AH封装格式的隧道模式中,所述控制协议头添加到AH头之后,原始IP 头之前;在AH封装格式的传输模式中,所述控制协议头添加到AH头之后,数据之前。 进一步的,在ESP封装的隧道模式中,所述控制协议头添加到ESP头之后,原始IP头 之前;在ESP封装格式的传输模式中,所述控制协议头添加到ESP头之后,数据之前。 为了实现上述密钥更新的过程,本发明还提供基于IPsec封装功能的密钥更新装 置,所述密钥更新装置包括: 节点,所述节点为IPsec隧道两端设备; 判别模块,所述判别模块分布在节点内,用于判断该节点否收到过对方的控制报 文; 第一定时器,所述第一定时器用于当其中一个节点未收到对方的控制报文时,开 始为系统计时,在所述第一定时器的计时周期内,所述的一个节点使用新的出向密钥定期 发送控制报文,同时,使用旧的密钥发送和接收原来的数据报文,保证转发面仍然正常加解 密; 第二定时器,所述第一定时器用于当所述第一定时器计时周期届满时,所述的一 个节点仍未收到对方的控制报文时,开始为系统计时,在所述第二定时器的计时周期内,所 述的一个节点使用新的出向密钥定期发送控制报文,同时,使用旧的密钥发送和接收原来 的数据报文,保证转发面仍然正常加解密; 密钥接收模块,所述密钥接收模块分布在节点内,通过SPI查找本地SA数据库来判 断该节点是否收到更新后的密钥。 进一步的,如果该节点未收到更新后的密钥,该节点记录控制流信息,丢弃报文; 如果收到了更新后的密钥,则停止第一定时器或第二定时器,不再发送控制报文,并开始使 用新的密钥发送数据报文。 进一步的,所述控制报文在现有IPsec封装协议封装头部分的下一个报文头中增 加控制协议头,并封装对应的TLV控制头。 进一步的,所述控制协议包括: Next  Header:下一个报文头,8比特大小,用来填充IP报文IANA编号或原始数据的 协议IANA编号; Type:类型字段,根据需求定义填充控制类型; Len:长度字段,根据控制类型定义对应数据长度,其长度为Value的长度; Value:控制数据字段,长度根据Len定义。 有益效果 本发明的优势在于提出了一种可扩展的IPsec控制协议头,该协议头扩展灵活,可 以方便地为IPsec本身以及上层应用提供控制信息。 通过使用基于IPsec封装的扩展协议,通过定义新的TLV并设计对应的流程,解决 了在更换密钥后由于密钥不同步,转发面出现断流的问题。 5 CN 111614463 A 说 明 书 3/5 页 附图说明 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的 附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领 域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附 图。 图1为控制报文的数据结构示意图; 图2为增加IPsec控制协议后的AH封装格式示意图; 图3为增加IPsec控制协议后的ESP封装格式示意图; 图4为IPsec隧道端点处理流程业务流程示意图; 图5为本发明实施例中的网络环境场景示意图。
分享到:
收藏