一种ike可靠报文协商的方法、设备及系统的制作方法

文档序号:7707390阅读:414来源:国知局
专利名称:一种ike可靠报文协商的方法、设备及系统的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种IKE可靠报文协商的方法、设 备及系统。
背景技术
IKE协议(Internet Key Exchange,因特网密匙交换)用于在IPsec (IP security, IP安全)中建立安全联盟,在如Internet等不安全的网络环境中, 安全地建立和更新共享密钥。为保证诸如IPv6 (Internet Protocol Version 6, 第六版互联网协议)等的安全运行,建立IKE安全联盟,实现对数据进行加 密转发和传输就显得十分必要。
IKE是基于ISAKMP (Internet Security Association and Key Management Protocol,安全联盟和密钥管理协议)定义的框架上建立的。通常,建立IKE 包括两个阶段,第一阶段用于建立通信信道IKE SA (security association,安 全联盟),并对该信道进行验证,为进行IKE通信提供机密性、消息完整性以 及消息源验证服务。第二阶段基于IKE SA,在第一阶段的基础上创建IPsec SA,通过建立的IPsec SA转发或传输加密的数据。
IKE建立的第一阶段交换包括两种模式, 一种是主模式交换(Main Mode),另外一种是野蛮模式交换(AggressiveMode)。主模式交换如图1所 示,主模式交换提供了交换双方的身份保护机制,主模式交换包括三个交换 过程,在这三个交换过程中共交换六条报文,这三个交换过程分别是策略协 商交换、nonce随机交换以及身份验证交换。野蛮模式交换如图2所示,野蛮
模式交换不提供交换双方的身份保护机制,并且只交换三条报文,第一条报 文和第二条报文用于协商策略,第二条还用于认证响应方设备,第三条报文
用于认证发起方设备。在上述两种第一阶段交换模式中,发起方设备向响应 方设备发送最后一个报文后,建立发起方设备本地IKESA,响应方设备接收到发起方设备发送的最后一个报文后,响应发起方设备的报文协商,建立响
应方设备IKESA,响应方设备与发起方设备的IKE SA建立完成。在IKE第 一阶段协商中,发起方设备和响应方设备交互的信息包括HDR报文头信息, SA报文密钥信息,KE密钥交换信息,NONCE随机信息,HDI^加密报文头 信息,IDii发起方设备ID信息,IDir响应方设备ID信息,AUTH身份验证 信息。
IKE第二阶段通过快速模式交换建立,如图3所示,在快速模式交换中, 发起方设备和响应方设备交换三条报文,其中第 一条报文和第二条报文协商 IPsecSA的各项参数值,并生成IPsec使用的密钥,第二条才艮文还用于为响应 方设备提供在场的证据,第三条报文为发起方设备提供在场的证据。在IKE 第二阶段协商中,发起方设备和响应方设备交互的信息包括HDR^加密的报 文头信息,SA报文密钥信息,Ni随机发起方设备信息,Nr随机响应方设备 信息,IDci发起方设备数据ID信息,IDir响应方设备数据ID信息,HASH 哈希信息。
IPsec SA建立完成后,发起方设备通过双方建立的IPsec SA通道向响应 方设备转发经过IPsec加密的数据。具体协商过程在RFC2408 (Request For Comments, —系列以编号排定的文件)和RFC2409中有具体描述,在这里不 再赘述。
建立IKE的过程可以通过两种方式触发, 一种是当本地需要建立协商SA 时,本地触发建立IKE。另一种是当远程需要协商SA时,远程触发建立IKE。 触发建立IKE的一方即为上述的发起方设备,响应发起方设备建立IKE的一 方即为上述的响应方设备,根据触发方式的不同,发起方设备可以为本地设 备,也可以为远程设备,当发起方设备为本地设备时,响应方设备为与其对 应的远程设备,当发起方设备为远程设备时,响应方设备为与其对应的本地 设备。
在第一阶段IKE SA建立的报文协商过程中,如果发起方设备发送的第一 阶段最后一个报文丢失或响应方设备无法接收到该报文,响应方设备就无法 建立对应的响应方设备IKESA。按照现有的IKE协议,发起方设备无法获知响应方设备是否接收到该最后 一个报文,因此发起方设备误认为响应方设备 已经接收到发起方设备发送的第一阶段最后一个报文并建立了对应的响应方
设备IKE SA。此时发起方设备发起第二阶段协商,由于响应方设备IKE SA 在第一阶段中并没有建立起来,响应方设备无法进行基于第一阶段的第二阶 段报文协商,而发起方设备并不知道响应方设备不能进行第二阶段协商,发 起方设备不断向响应方设备发送第二阶段协商报文。另外,如果此时发起第 一阶段的发起方设备没有发起第二段协商,而是等待所述响应方发起第二段 协商,而响应方设备由于没有建立IKESA,也无法发起第二阶段协商,造成 第二阶段协商失败。
同样,在第二阶段IPsec SA建立的报文协商过程中,发起方设备发送第 二阶段最后一个报文后,建立发起方设备IPsec SA。如果第二阶段最后一个 报文在网络中丟失或响应方设备无法接收到该才艮文,则响应方设备无法建立 对应的响应方设备IPsec SA。按照现有的IKE协议,发起方设备无法获知响 应方设备是否接收到该最后一个报文,因此发起方设备误认为响应方设备已 经接收到发起方设备发送的第二阶段最后一个报文,并建立了对应的响应方 设备IPsec SA。此时发起方设备通过IPsec SA通道向响应方设备发送根据 IPsec协议加密的数据报文,响应方设备收到加密的数据报文,由于没有建立 响应方设备IPsec SA,无法识别这些数据报文,响应方设备将这些数据报文 丢弃,造成发起方设备传输加密数据失败。另外,如果此时第二阶段的发起 方没有发送该加密的数据报文,而是等待所述响应方发送该加密的数据报文, 而响应方设备由于没有建立IPsec SA,也无法发送加密的数据报文,同样会 造成发起方设备传输加密数据失败。
综上所述,现有技术在建立IKE的报文协商过程中,由于第一阶段或第 二阶段最后一个报文丟失或响应方设备无法接收到该报文,使得响应方设备 无法正常建立IKE SA或IPsec SA,从而导致后续IKE协商或加密的数据报文 转发失败。并且现有的IKE协议没有定义如何可靠的传输最后一个报文,因 此网络中一旦出现最后一个报文丢失或响应方设备无法接收到该报文的情 况,则会导致后续IKE协商或加密数据报文转发失败。

发明内容
本发明提供了一种IKE可靠报文协商的方法、设备及系统,以在IKE协 商报文丢失的情况下不会出现单向隧道,保证后续IKE可靠报文协商。
本发明提供了一种因特网密匙交换IKE可靠报文协商的方法,应用于包 括第一设备、第二设备的系统中,包括
a、 所述第一设备向所述第二设备发送最后一个协商报文后,判断在预设 周期内是否接收到所述第二设备发送的响应报文;
b、 如果判断结果为在所述预设周期内接收到所述第二设备发送的响应报 文,所述第一设备立即建立安全联盟SA。
优选的,所述方法还包才舌
c、 如果判断结果为在所述预设周期内没有接收到所述第二设备发送的响 应报文,所述第一设备不立即建立所述SA。
优选的,所述步骤c之后还包括
所述第一设备重发所述最后一个协商报文,并记录重发次数;
当所述第 一设备在预设重发次数内没有接收到所述第二设备发送的响应 报文时,所述第一设备释放本地资源,并向所述第二设备发送取消协商报文;
当所述第一设备在预设重发次数内接收到所述第二设备发送的响应报文 时,所述第一设备建立所述SA。
优选的,所述IKE可靠报文协商包括第一阶段可靠报文协商和第二阶段 可靠报文协商,当所述第一设备与第二设备处于第一阶段可靠报文协商时, 所述第一设备向所述第二设备发送的所述最后一个协商报文为第一阶段最后 一个协商报文,所述预设周期为第一预设周期,所述响应报文为第一阶段确 认ACK报文或第二阶段发起协商报文,所述SA为IKE SA。
优选的,
当接收到所述第二设备发送的响应报文为第一阶段ACK报文时,所述步 骤b之后还包括
所述第 一设备向所述第二设备发送第二阶段发起协商报文,所述第二设备响应所述第 一设备发送的第二阶段发起协商报文; 当接收到所述第二设备发送的响应报文为第二阶段发起协商报文时,所 述步骤b之后还包括
所述第 一设备响应所述第二设备发送的所述第二阶段协商报文。 优选的,所述步骤a之前还包括
所述第一设备与所述第二设备进行能力协商,具体包括
所述第一设备向所述第二设备发送携带有所述第一设备能力的报文;
所述第二设备接收到所述携带有第一设备能力的报文后,判断自身是否 具有与所述第 一设备匹配的能力;
当所述第二设备具有与所述第 一设备匹配的能力时,所述第二设备向所 述第一设备发送携带有自身能力的反馈报文,所述第一设备接收到所述反馈 报文后,与所述第二设备进行后续可靠报文协商;
当所述第二设备不具有与所述第一设备匹配的能力时,所述第二设备向 所述第一设备发送未携带自身能力的反馈报文,所述第一设备接收到所述反 馈报文后,与所述第二设备进行后续常规报文协商。
优选的,通过供应商标识VID承载所述第一设备或所述第二设备的能力, 所述第 一设备或所述第二设备携带所述VID,
当所述第一设备接收到所述第二设备发送的携带所述VID的反馈报文 后,与所述第二设备进行后续可靠报文协商;
所述第一设备接收到所述第二设备发送的未携带所述VID的反馈报文 后,与所述第二设备进行后续常规报文协商。
优选的,所述IKE可靠报文协商包括第一阶段可靠报文协商和第二阶段 可靠报文协商,当所述第 一设备与第二设备处于第二阶段可靠报文协商时, 所述第一设备向所述第二设备发送的最后一个协商报文为第二阶段最后一个 协商报文,所述预设周期为第二预设周期,所述响应报文为第二阶段ACK报 文或根据IPsec协议加密的数据报文,所述SA为网络互连协议安全联盟IPsec SA。
优选的,当接收到所述第二设备发送的响应报文为第二阶段ACK报文时,所述步 骤b之后还包括
所述第一设备向所述第二设备发送根据所述IPsec协议加密的数据报文。
本发明还提供一种IKE可靠报文协商的发起方设备,包括 报文发送模块,用于向响应方设备发送协商报文;
报文接收模块,与所述才艮文发送模块连接,用于当所述报文发送模块向 所述响应方设备发送最后一个协商报文后,在预设周期内接收所述响应方设 备发送的响应报文;
判断模块,与所述报文接收模块连接,用于判断在预设周期内是否接收 到所述响应方设备发送的响应报文;
SA建立模块,与所述判断模块连接,用于当所述判断模块的判断结果为 在所述预设周期内接收到所述响应方设备发送的响应报文时,立即建立SA。
优选的,所述SA建立模块还用于当所述判断模块的判断结果为在所述预 设周期内没有接收到所述响应方设备发送的响应报文时,不立即建立SA。
优选的,当所述判断模块的判断结果为在所述预设周期内没有接收到所 述响应方设备发送的响应报文时,所述报文发送模块还用于重发所述最后一 个协商报文,
所述设备还包括
重发报文次数记录模块,分别与所述判断模块和所述报文发送模块连接, 用于记录重发次数;
资源释放模块,分别与所述报文接收模块和所述重发报文次数记录模块 连接,当所述报文接收^t块在预设重发次数内没有接收到所述响应方设备发 送的响应报文,所述设备释放本地资源,并向所述响应方设备发送取消协商 报文。
优选的,所述IKE可靠报文协商包括第一阶段可靠报文协商和第二阶段 可靠报文协商,当所述设备与所述响应方设备处于第一阶段可靠报文协商时, 所述报文发送模块向所述响应方设备发送的最后一个协商报文为第一阶段最后一个协商报文,所述报文接收模块接收所述响应方设备发送的响应报文的 预设周期为第 一预设周期,所述报文接收模块接收的所述响应报文为第 一阶
段ACK报文或第二阶段发起协商报文,所述SA建立模块进一步用于建立IKE SA。
优选的,当所述报文接收模块接收的所述响应方设备发送的响应报文为 第一阶段ACK报文时,所述报文发送模块还用于向所述响应方设备发送第二 阶段发起协商报文;
当所述报文接收模块接收的所述响应方设备发送的响应报文为第二阶段 发起协商报文时,所述设备响应所述响应方设备发送的所述第二阶段协商报 文。
优选的,所述报文发送模块还用于向所述响应方设备发送携带有所述设 备能力的协商报文,所述报文接收模块还用于接收响应方设备发送的反馈报 文,
所述设备还包括
能力协商模块,与所述报文接收模块连接,用于与所述响应方设备进行 能力协商,
所述能力协商模块具体用于判断所述报文接收模块接收的所述反馈报文 中是否携带有所述响应方设备能力,如果判断结果为所述反馈报文中携带有 所述响应方设备能力,所述设备与所述响应方设备进行后续可靠报文协商, 如果判断结果为所述反馈报文中未携带有所述响应方设备能力,所述设备与 所述响应方设备进行后续常规报文协商。
优选的,所述IKE可靠报文协商包括第一阶段可靠报文协商和第二阶段 可靠报文协商,当所述设备与所述响应方设备处于第二阶段可靠报文协商时, 所述报文发送模块向所述响应方设备发送的最后一个协商报文为第二阶段最 后一个协商报文,所述报文接收模块接收所述响应方设备发送的响应报文的 预设周期为第二预设周期,所述报文接收模块接收的所述响应报文为第二阶 段ACK报文或根据IPsec协议加密的数据报文,所述SA建立模块进一步用 于建立IPsec SA,优选的,当所述报文接收模块接收的所述响应方设备发送的响应报文为
第二阶段ACK报文时,所述报文发送模块还用于向所述响应方设备发送根据 所述IPsec协议加密的^t据才艮文。
本发明还提供一种IKE可靠报文协商的响应方设备,包括
报文接收模块,用于接收发起方设备发送的协商报文;
SA建立模块,与所述报文接收模块连接,用于当接收所述发起方设备发 送的最后一个协商报文后,建立SA;
报文发送模块,与所述SA建立模块连接,用于当所述SA建立模块建立 所述SA后,在预设周期内向所述发起方设备发送响应报文。
优选的,所述IKE可靠报文协商包括第一阶段可靠报文协商和第二阶段 可靠报文协商,当所述设备与所述发起方设备处于第一阶段可靠报文协商时, 所述报文接收模块接收发起方设备发送的最后一个协商报文为第 一阶段最后 一个协商报文,所述报文发送模块发送响应报文的预设周期为第一预设周期, 所述报文发送模块发送的响应报文为第 一 阶段ACK报文或第二阶段发起协商 报文,所述SA建立模块进一步用于建立IKE SA。
优选的,当所述报文发送模块发送的响应报文为第一阶段ACK报文时, 所述设备响应所述发起方设备发送的第二阶段发起协商报文;
当所述报文发送模块发送的响应报文为第二阶段发起协商报文时,响应 所述第二阶段协商报文。
优选的,所述报文接收模块还用于接收所述发起方设备发送的携带有所 述发起方设备能力的协商报文,所述报文发送模块还用于向所述发起方设备 发送反馈报文,
还包括
能力协商模块,分别与所述报文接收模块和所述报文发送模块连接,用 于与所述发起方设备进行能力协商,
所述能力协商模块具体用于判断所述设备是否具有与所述发起方设备匹 配的能力,如果判断结果为所述设备具有与所述发起方设备匹配的能力,所述报文发送模块进一步用于向所述发起方设备发送携带有所述设备能力的反 馈报文,如果判断结果为所述设备不具有与所述发起方设备匹配的能力,所 述报文发送模块进一步用于向所述发起方设备发送未携带有所述设备能力的 反馈报文。
优选的,所述IKE可靠报文协商包括第一阶段可靠报文协商和第二阶段 可靠报文协商,当所述设备与所述发起方设备处于第二阶段可靠报文协商时, 所述报文接收模块接收发起方设备发送的最后一个协商报文为第二阶段最后 一个协商报文,所述报文发送模块发送响应报文的预设周期为第二预设周期, 所述报文发送模块发送的响应报文为第二阶段ACK报文或根据IPsec协议加 密的数据报文,所述SA建立模块进一步用于建立IPsec SA。
优选的,当所述报文发送模块发送的响应报文为第二阶段ACK报文时, 所述报文接收模块还用于接收所述发起方设备发送的根据所述IPsec协议加 密的数据报文。
本发明还提供一种IKE可靠报文协商的系统,包括
发起方设备,用于向响应方设备发送协商报文,当发送最后一个协商报 文后,判断在预设周期内是否接收到所述响应方设备发送的响应报文,当判 断结果为在所述预设周期内接收到所述响应方设备发送的响应报文时,立即 建立SA;
响应方设备,与所述发起方设备连接,用于当接收到所述发起方设备发 送的最后一个协商报文后,向所述发起方设备发送所述响应报文。
与现有技术相比,本发明具有以下优点
本发明在网络状况不佳的情况下,如果IKE第一阶段协商的最后一个报 文丟失或延迟发送,发起方设备不会仅基于本地IKE SA使用单向IKE隧道传 输数据,并且能够通过响应方设备发送的ACK报文或第二阶段发起协商报文 获知响应方设备是否收到第一阶段最后一个报文,如果没有收到ACK报文或 第二阶段发起协商报文则进行重新发送第一阶段最后一个报文,在最大限度上保证IKE SA的可靠建立。
另外,在网络状况不佳的情况下,如果IKE第二阶段协商的最后一个报 文丢失或延迟发送,发起方设备不会仅基于本地IPsec SA使用单向IPsec隧道 传输数据,并且能够通过响应方设备发送的ACK报文或IPsec协议加密的数 据报文获知响应方设备是否收到第二阶段最后一个报文,如果没有收到ACK 报文或IPsec协议加密的数据报文则进行重新发送第二阶段最后一个报文,在 最大限度上保证IPsec SA的可靠建立。


图l是现有技术中主模式交换过程示意图; 图2是现有技术中野蛮模式交换过程示意图; 图3是现有技术中快速模式交换过程示意图4是本发明中的用于IKE可靠报文协商的方法的一个实施例示意图; 图5是本发明中的用于第一阶段进行可靠报文协商的方法示意图; 图6是本发明中的能力协商方法示意图; 图7是本发明中的用于第二阶段可靠报文协商的方法示意图; 图8是本发明中的主模式交换报文协商方法示意图; 图9是本发明中的野蛮模式交换报文协商方法示意图; 图IO是本发明中的快速模式交换报文协商方法示意图; 图11是本发明中的用于IKE可靠报文协商的设备A和设备B的结构示 意图12是本发明中的用于IKE可靠报文协商系统的结构示意图。
具体实施例方式
本发明的核心内容为,在进行IKE报文协商的过程中,响应方设备接收 到发起方设备发送的最后一个协商报文时,响应方设备向发起方设备返回 ACK (ACKnowledge,确认)报文,告知发起方设备该响应方设备已经接收 到发起方设备发送的最后一个协商报文,发起方设备接收到该ACK报文后,建立发起方设备SA。本发明还通过在第一阶段进行可靠报文协商前,发起方 设备与响应方设备进行能力协商,以确定双方具有进行后续的可靠IKE协商。 本发明的技术方案对在IKE第一阶段和第二阶段建立过程中,出现的因最后 一个协商报文丟失或延迟发送而造成的单向IKE或IPsec SA进行了有效防护, 在最大限度上保证IKE SA与IPsec SA的可靠建立。
如图4所示,为本发明所述的一种IKE可靠报文协商的方法的一个实施 例,应用于包括第一设备、第二设备的系统中,包括
步骤401,第一设备向第二设备发送最后一个协商报文后,判断在预设周 期内是否接收到第二设备发送的响应报文,当接收到响应报文时,转步骤402, 当没有接收到响应报文时,转步骤403;
步骤402,在预设周期内接收到第二设备发送的响应报文,第一设备立即 建立安全联盟SA;
步骤403,在预设周期内没有接收到第二设备发送的响应报文,第一设备 不立即建立安全联盟SA。
IKE可靠报文协商包括第一阶段可靠报文协商和第二阶段可靠报文协商, 因此IKE可靠报文协商包括两种情况
第一种情况,当第一设备与第二设备处于第一阶段可靠报文协商时,第 一设备向第二设备发送的最后一个协商报文为第一阶段最后一个协商报文, 预设周期为第一预设周期,响应报文为第一阶段确认ACK ^R文或第二阶段发 起协商报文,SA为IKE SA,
在第一阶段报文协商过程中,需要对第一设备与第二设备是否具有进行 可靠报文协商能力进行协商。
第二种情况,与第一种情况不同的是,由于第二阶段报文协商是基于第 一阶段报文协商的基础上进行的,因此在第二种情况中,第一设备与第二设 备不需要进行能力协商,并且第一设备向第二设备发送的最后一个协商报文 为第二阶段最后一个协商报文,预设周期为第二预设周期,响应报文为第二 阶段ACK报文或根据IPsec协议加密的数据报文,SA为网络互连协议安全联 盟IPsec SA。在此需要说明的是,在第 一阶段报文协商过程中为第 一 阶段发起方设备 的第 一设备在第二阶段报文协商过程中并不一定为第二阶段发起方设备,也 可能为第二阶段响应方设备,当该第 一设备向该第二设备发送第二阶段发起
协商报文,该第一设备为第二阶段发起方设备;当该第一设备响应该第二设 备发送第二阶段发起协商报文,该第一设备为第二阶段响应方设备。同样, 在第 一阶段报文协商过程中为第 一阶段响应方设备的第二设备在第二阶段报 文协商过程中并不一定为第二阶段响应方设备,也可能为第二阶段发起方设 备,当该第二设备向该第一设备发送第二阶段发起协商报文,该第二设备为 第二阶段发起方设备;当该第二设备响应该第 一设备发送第二阶段发起协商 报文,该第二设备为第二阶段响应方设备。
通过本实施例,可知本发明在网络状况不佳的情况下,如果IKE第一阶 段协商的最后一个报文丟失或延迟发送,发起方不会仅基于本地IKE SA使用 单向IKE隧道传输数据,并且能够通过响应方发送的ACK报文或第二阶段发 起协商报文获知响应方是否收到第一阶段最后一个报文,如果没有收到ACK 报文或第二阶段发起协商报文则进行重新发送第一阶段最后一个报文,在最 大限度上保证IKESA的可靠建立。并且在网络状况不佳的情况下,如果IKE 第二阶段协商的最后一个报文丟失或延迟发送,发起方不会仅基于本地IPsec
SA使用单向IPsec隧道传输数据,并且能够通过响应方发送的ACK报文或 IPsec协议加密的数据报文获知响应方是否收到第二阶段最后一个报文,如果 没有收到ACK报文或IPsec协议加密的数据报文则进行重新发送第二阶段最 后一个报文,在最大限度上保证IPsec SA的可靠建立。
以下分别对第一阶段报文协商和第二阶段报文协商进行具体描述。 如图5所示,基于本发明技术方案在第一阶段进行可靠报文协商的方法, 具体包括以下步骤
步骤501,第一阶段发起方设备与第一阶段响应方设备进行能力协商。在 进行可靠IKE协商前,第一阶段发起方设备需要和第一阶段响应方设备进行 能力协商,以确保双方都具有能够进行后续的可靠IKE协商的协商能力。当第一阶段发起方设备与第一阶段响应方设备都具有进行可靠IKE报文协商的 能力时,转步骤502;当第一阶段发起方设备与第一阶段响应方设备都不具有, 或其中一方不具有进行可靠IKE报文协商的能力时,第一阶段发起方设备与 第一阶段响应方设备进行常规IKE协商,常规IKE协商过程在此不再赘述。 如图6所示,本步骤进一步包括
步骤5011,第一阶段发起方设备向第一阶段响应方设备发送携带有第一 阶段发起方设备能力的协商报文。第一阶段发起方设备通过在报文中携带具 有第一阶段发起方设备能力的标识,告知第 一阶段响应方设备该第一阶段发 起方设备具有进行后续IKE报文协商的能力,该标识具体为具有承载能力的 VID( vender ID,供应商标识),通过该VID承载该第一阶段发起方设备能力, 第一阶段发起方设备向第一阶段响应方设备发送报文时,携带该VID。 VID 的内容为对特定字串进行MD5运算(Message-digest Algorithm 5 ,信息-摘要 算法)得出的散列值,如VID可以为特定字符串"Reliable IKE Exchange"的 MD5运算结果。在此需要说明的是,通过VID承载发送方的能力只是本发明 的一个可选方案,本发明的技术方案并不局限于此。
步骤5012,第一阶段响应方设备接收到第一阶段发起方设备发送的携带 有该标识的报文后,获知第一阶段发起方设备具有进行后续可靠IKE协商的 能力,判断自身是否具有与第 一 阶段发起方设备匹配的能力进行后续可靠IKE 报文协商,如果第 一阶段响应方设备具有与第一阶段发起方设备对应的能力, 则转步骤5013,如果第一阶段响应方设备不具有与第一阶段发起方设备对应 的能力,转步骤5014;
步骤5013,第一阶段响应方设备向第一阶段发起方设备发送携带有该标 识的反馈报文,该标识用于标识第一阶段响应方设备能力。第一阶段响应方 设备设置VID承载第一阶段响应方设备能力,通过反馈报文携带该VID。接 着转步骤5015。
步骤5014,第一阶段响应方设备向第一阶段发起方设备发送反馈报文, 在该反馈报文中未携带用于标识第一阶段响应方设备能力的标识。接着转步 骤5015。在此需要说明的是,通过VID承载第一阶段响应方设备能力只是本发明的一个可选方案,本发明的技术方案并不局限于此。
步骤5015,第一阶段发起方设备接收到第一阶段响应方设备发送的反馈 报文,判断该反馈报文中是否具有携带第一阶段响应方设备能力的标识,如 果携带有该标识,则转步骤5016;如果未携带有该标识,则转步骤5017;
步骤5016,第一阶段响应方设备发送的反馈报文中携带有该标识,进行 后续可靠IKE协商。
步骤5017,第一阶段响应方设备发送的反馈报文中未携带有该标识,进 行后续常规IKE协商。
在此还需要说明的是,如果第一阶段发起方设备发送的报文中没有携带 具有第 一阶段发起方设备能力的标识,则第 一阶段响应方设备认为第 一阶段 发起方设备不具有进行后续可靠IKE协商的能力,第一阶段响应方设备返回 反馈报文时,未携带具有自身能力的标识。
步骤502,第一阶段发起方设备向第一阶段响应方设备发送协商报文。第 一阶段响应方设备响应第一阶段发起方设备的协商报文,进行第一阶段协商。
步骤503,第一阶段发起方设备向第一阶段响应方设备发送第一阶段最后 一个协商报文,并开始计时。为避免第一阶段响应方设备无法接收到第一阶 段最后一个协商报文,第一阶段发起方设备发送第一阶段最后一个协商报文 后,不立即建立第一阶段发起方设备IKESA,而是等待第一阶段响应方设备 回复第 一阶段ACK报文,确认接收到第 一 阶段最后 一个协商报文或第二阶段 发起协商报文后,再建立第一阶段发起方设备IKESA。如果第一阶段发起方 设备在第 一预设周期内接收到第 一阶段响应方设备发送的第 一阶段ACK报文 或第二阶段发起协商报文,则转步骤504;如果第一阶段发起方设备在第一预 设周期内没有接收到第 一 阶段响应方设备发送的第 一阶段ACK报文或第二阶 段发起协商报文,则转步骤505。
步骤504,第一阶段发起方设备在第一预设周期内接收到第一阶段响应方 设备发送的第一阶段ACK报文或第二阶段发起协商报文。第一阶段发起方设 备获知第 一阶段响应方设备已经接收到第 一阶段发起方设备发送的第 一阶段 最后一个协商报文,第一阶段发起方设备建立第一阶段发起方设备IKE SA。在响应方设备一侧,第 一阶段响应方设备接收到第 一阶段发起方设备发送的
第一阶段最后一个协商报文后,建立第一阶段响应方设备IKE SA,并在该IKE SA保护下向第一阶段发起方设备发送第一阶段ACK报文,通过第一阶段 ACK报文告知第 一阶段发起方设备已经接收到第 一阶段发起方设备发送的第 一阶段最后一个协商报文。如果第一阶段发起方设备在第一预设周期内没有 收到第一阶段响应方设备发送的第一阶段ACK报文,为防止第一阶段ACK 报文不可靠传输而丢失,如果收到第一阶段响应方设备发送的第二阶段发起 协商报文,则仍说明已经接收到第一阶段发起方设备发送的第一阶段最后一 个协商报文,并且第一阶段响应方设备已经建立IKE SA,并在该IKESA基 础上向第 一阶段发起方设备发起第二阶段协商。
在本实施例中,第一阶段响应方设备通过informational报文中携带 notification负载向第 一 阶段发起方设备发送第 一 阶段ACK报文,在此需要说 明的是,通过informational报文(报告交换报文)携带notification负载向第 一阶段发起方设备发送第一阶段ACK报文,只是本发明的一个可选方案,本 发明的技术方案并不局限于此。
步骤505,第一阶段发起方设备认为第一阶段响应方设备没有接收到第一 阶段最后一个协商报文,第一阶段发起方设备重新向第一阶段响应方设备发 送第一阶段最后一个协商报文,并重新进行计时。如果在第二个第一预设周 期内,第一阶段发起方设备接收到第一阶段响应方设备发送的第一阶段ACK 报文或第二阶段发起协商报文,第 一阶段发起方设备建立第 一阶段发起方设 备IKE SA。如果在该第二个第一预设周期后仍没有收到第一阶段响应方设备 发送的第一阶段ACK报文或第二阶段发起协商报文,第一阶段发起方设备继 续向第一阶段响应方设备发送第一阶段最后一个协商报文,并继续重新进行 计时,如此进行循环,在此循环期间如果第一阶段发起方设备收到第一阶段 响应方设备发送的第 一 阶段ACK报文或第二阶段发起协商报文,则第 一 阶段 发起方设备建立第一阶段发起方设备IKE SA;如果第一阶段发起方设备向第 一阶段响应方设备发送了多次第一阶段最后一个协商报文,经过多个第一预 设周期后,仍没有接收到第一阶段响应方设备发送的第一阶段ACK报文或第二阶段发起协商报文,第 一阶段发起方设备认为第 一阶段响应方设备与第一 阶段发起方设备第 一阶段协商失败,第 一阶段发起方设备删除本地为尚未建
立的IKESA,并向第一阶段响应方设备发送取消协商报文,告知第一阶段响 应方设备本次第一阶段报文协商失败,第一阶段响应方设备接收到该报文后, 释放本地资源,删除本地尚未建立的IKE SA。
在此需要说明的是,第 一 阶段发起方设备发送的取消协商报文可以为 informational报文,但选用informational报文只是本发明的一个可选方案,本 发明的技术方案并不局限于此。在此还需要说明的是,第一阶段发起方设备 发送第一阶段最后一个协商报文后,计时的第一预设周期值根据具体实际情 况不同,而有所不同。第一阶段发起方设备经过多个第一预设周期后,认为 第一阶段协商失败,该多个第一预设周期根据具体实际情况不同,而有所不 同。
通过本实施例,可知本发明在网络状况不佳的情况下,如果IKE第一阶 段协商的最后一个报文丟失或延迟发送,第一阶段发起方设备不会仅基于本 地IKE SA使用单向IKE隧道传输数据,并且能够通过第一阶段响应方设备发 送的第 一阶段ACK报文获知第 一 阶段响应方设备是否收到第 一阶段最后一个 报文,如果没有收到第 一 阶段ACK报文则进行重新发送第 一阶段最后 一个报 文,在最大限度上保证IKESA的可靠建立。
如图7所示,为基于第二阶段可靠报文协商的方法,与上述基于第一阶 段可靠报文协商的方法不同的是,由于第二阶段报文协商是基于第一阶段报 文协商的基础上进行的,因此不需要进行能力协商,基于本发明技术方案在 第二阶段报文协商具体包括以下步骤
步骤701,第二阶段发起方设备向第二阶段响应方设备发送第二阶段协商
报文,发起第二阶段协商,第二阶段响应方设备响应该第二阶段发起方设备, 进行第二阶段报文协商。
步骤702,第二阶段发起方设备向第二阶段响应方设备发送第二阶段最后 一个协商报文,并开始计时。为避免第二阶段响应方设备无法接收到第二阶段最后 一个协商报文,第二阶段发起方设备发送第二阶段最后 一个协商报文
后,不立即建立第二阶段发起方设备IPsec SA,等待第二阶段响应方设备回 复第二阶段ACK报文或根据IPsec协议加密的数据报文,确认第二阶段响应 方设备接收到第二阶段最后一个协商报文后,建立第二阶段发起方设备IPsec SA。如果第二阶段发起方设备在第二预设周期内接收到第二阶段响应方设备 发送的第二阶段ACK报文或根据IPsec协议加密的数据报文,则转步骤703; 如果第二阶段发起方设备在第二预设周期内没有接收到第二阶段响应方设备 发送的第二阶段ACK报文或根据IPsec协议加密的数据报文,转步骤704。 在此将第二阶段可靠报文协商的计时周期定义为第二预设周期,以与第
一阶段可靠报文协商的第 一预设周期相区别,第 一预设周期的值与第二预设 周期的值没有直接关系。
步骤703,第二阶段发起方设备在第二预设周期内接收到第二阶段响应方 设备发送的第二阶段ACK报文或根据IPsec协议加密的数据报文。第二阶段 发起方设备获知第二阶段响应方设备已经接收到第二阶段发起方设备发送的 第二阶段最后一个协商报文,第二阶段发起方设备建立第二阶段发起方设备 IPsec SA。在第二阶段响应方设备一侧,第二阶段响应方设备接收到第二阶段 发起方设备发送的第二阶段最后一个协商报文后,建立第二阶段响应方设备 IPsec SA,并在该IPsec SA下向第二阶段发起方设备发送第二阶段ACK报文, 通过第二阶段ACK报文告知第二阶段发起方设备已经接收到第二阶段发起方 设备发送的第二阶段最后 一个协商报文。为避免第二阶段ACK报文传输丢失, 如果第二阶段发起方设备接收到第二阶段响应方设备发送的根据IPsec协议
加密的数据报文,则仍说明已经接收到第二阶段发起方设备发送的第二阶段 最后一个协商报文,并且第二阶段响应方设备已经建立IPsec SA,并在该IPsec SA通道发送根据IPsec协议加密的数据净艮文。
在本实施例中,第二阶段响应方设备通过informational (报告交换报文) 报文携带notification负载向第二阶段发起方设备发送第二阶段ACK报文,在 此需要说明的是,通过informational报文(报告交换报文)携带notification 报文负载向第二阶段发起方设备发送第二阶段ACK报文,只是本发明的一个可选方案,本发明的技术方案并不局限于此。
步骤704,第二阶段发起方设备认为第二阶段响应方设备没有接收到第二 阶段最后一个协商报文,第二阶段发起方设备重新向第二阶段响应方设备发 送第二阶段最后一个协商报文,并进行计时。如果在该第二个第二预设周期 内,第二阶段发起方设备接收到第二阶段响应方设备发送的第二阶段ACK报 文或根据IPsec协议加密的数据报文,第二阶段发起方设备建立第二阶段发起 方设备IPsec SA。如果在该第二个第二预设周期后仍没有收到第二阶段响应 方设备发送的第二阶段ACK报文或根据IPsec协议加密的数据报文,第二阶 段发起方设备继续向第二阶段响应方设备发送第二阶段最后一个协商报文, 并进行计时,如此进行循环,在此循环期间如果第二阶段发起方设备收到第 二阶段响应方设备发送的第二阶段ACK报文或根据IPsec协议加密的数据报 文,则第二阶段发起方设备建立第二阶段发起方设备IPsec SA;如果第二阶 段发起方设备向第二阶段响应方设备发送了多次第二阶段最后一个协商报 文,经过多个第二预设周期后,仍没有接收到第二阶^R响应方设备发送的第 二阶段ACK报文或根据IPsec协议加密的数据4良文,第二阶段发起方设备则 认为第二阶段响应方设备与第二阶段发起方设备第二阶段协商失败,第二阶 段发起方设备删除本地为尚未建立的IPsec SA,并向第二阶段响应方设备发 送取消协商报文,告知第二阶段响应方设备本次第二阶段协商失败,第二阶 段响应方设备接收到该报文后,释放本地资源,删除本地尚未建立的IPsec SA。
还需要说明的是,第二阶段发起方设备发送第二阶段最后一个协商报文 后,计时的第二预设周期值根据具体实际情况不同,而有所不同。第二阶段 发起方设备经过多个第二预设周期后,认为第二阶段协商失败,该多个第二 预设周期根据具体实际情况不同,而有所不同。
通过上述实施例,可知在网络状况不佳的情况下,如果IKE第二阶段协 商的最后一个报文丢失或延迟发送,第二阶段发起方设备不会仅基于本地 IPsec SA使用单向IPsec隧道传输数据,并且能够通过第二阶段响应方设备发 送的第二阶段ACK报文获知第二阶段响应方设备是否收到第二阶段最后一个 报文,如果没有收到第二阶段ACK报文则进行重新发送第二阶段最后 一个报文,在最大限度上保证IPsecSA的可靠建立。
IKE第一阶段报文协商在具体应用当中,包括主模式交换和野蛮模式交 换协商两种,其中本发明应用于主模式交换协商的具体方法如图8所示,包 括以下步骤
步骤801,第一阶段发起方设备向第一阶段响应方设备发送携带有VID 标识的报文。该VID标识用于承载第一阶段发起方设备的能力。
步骤802,第一阶段响应方设备接收到第一阶段发起方设备发送的具有 VID标识的报文后,获知第一阶段发起方设备具有进行后续IKE可靠协商的 能力,向第一阶段发起方设备返回携带有VID标识的报文,该VID标识用于 承载第一阶段响应方设备的能力。
步骤803,第一阶段发起方设备收到第一阶段响应方设备发送的携带有 VID标识的报文后,获知第一阶段响应方设备具有进行后续IKE可靠协商的 能力,与第一阶段响应方设备进行主模式交换报文协商。具体能力协商过程 在图5所示的实施例已经有所描述,在此不再赘述。
步骤804,第一阶段发起方设备向第一阶段响应方设备发送最后一个主模 式交换报文。
步骤805,第一阶段响应方设备接收到第一阶段发起方设备发送的最后一 个主模式交换报文后,建立第一阶段响应方设备本地IKESA,并在该IKESA 下,向第 一阶段发起方设备发送第一阶段ACK报文或第二阶段发起协商报文, 告知第一阶段发起方设备已经接收到最后一个主模式交换报文。第一阶段发 起方设备接收到该第 一 阶段ACK报文或第二阶段发起协商报文后,建立第一 阶段发起方设备本地IKE SA,主模式交换报文协商完成。
通过本实施例,可知本发明在网络状况不佳的情况下,如果IKE第一阶 段协商的最后一个报文丟失或延迟发送,第一阶段发起方设备不会仅基于本 地IKE SA使用单向IKE隧道传输数据,并且能够通过第一阶段响应方设备发 送的第 一阶段ACK报文获知第 一阶段响应方设备是否收到第 一阶段最后一个 报文,如果没有收到第一阶段ACK报文则进行重新发送第一阶段最后一个报文,在最大限度上保证IKE SA的可靠建立。
本发明应用于野蛮模式交换的具体方法如图9所示,包括以下步骤 步骤901,第一阶段发起方设备向第一阶段响应方设备发送携带有VID
标识的报文。该VID标识用于承载第一阶段发起方设备的能力。
步骤902,第一阶段响应方设备接收到第一阶段发起方设备发送的具有
VID标识的报文后,获知第一阶段发起方设备具有进行后续IKE可靠协商的
能力,向第一阶段发起方设备返回携带有VID标识的报文,该VID标识用于
承载第 一阶段响应方设备的能力。
步骤903,第一阶段发起方设备收到第一阶段响应方设备发送的携带有 VID标识的报文后,获知第一阶段响应方设备具有进行后续IKE可靠协商的 能力,与第一阶段响应方设备进行野蛮模式交换报文协商,发送最后一个野 蛮模式交换报文。具体能力协商过程在图5所示的实施例已经有所描述,在 此不再赘述。
步骤904,第一阶段响应方设备接收到第一阶段发起方设备发送的最后一 个野蛮模式交换报文后,建立第一阶段响应方设备本地IKESA,并在该IKE SA下,向第一阶段发起方设备发送第一阶段ACK报文或第二阶段发起协商 报文,告知第一阶段发起方设备已经接收到最后一个野蛮模式交换报文。第 一阶段发起方设备接收到该第一阶段ACK报文或第二阶段发起协商报文后, 建立第一阶段发起方设备本地IKE SA,野蛮模式交换报文协商完成。
通过本实施例,可知本发明在网络状况不佳的情况下,如果IKE第一阶 段协商的最后一个报文丢失或延迟发送,第一阶段发起方设备不会仅基于本 地IKE SA使用单向IKE隧道传输数据,并且能够通过第一阶段响应方设备发 送的第 一阶段ACK报文或第二阶段发起协商报文获知第 一阶段响应方设备是 否收到第 一 阶段最后 一个报文,如果没有收到第 一 阶段ACK报文或第二阶段 发起协商报文则进行重新发送第一阶段最后一个报文,在最大限度上保证IKE SA的可靠建立。
IKE第二阶段报文协商在具体应用当中为快速模式交换协商,本发明应 用于快速模式交换协商的具体方法如图IO所示,包括以下步骤步骤1001,第二阶段发起方设备与第二阶段响应方设备进行快速模式交
换协商。
步骤1002,第二阶段发起方设备向第二阶段响应方设备发送最后一个快 速模式交换协商报文。
步骤1003,第二阶段响应方设备接收到第二阶段发起方设备发送的最后 一个快速模式交换协商报文后,建立本地IPsec SA,并在该IPsec SA下,向 第二阶段发起方设备发送第二阶段ACK报文或根据IPsec协议加密的数据报 文,告知第二阶段发起方设备已经接收到第二阶段发起方设备发送的第二阶 段最后一个协商报文,第二阶段发起方设备建立第二阶段发起方设备IPsec SA,快速模式交换协商完成。
通过上述实施例,可知在网络状况不佳的情况下,如果IKE第二阶段协 商的最后一个报文丟失或延迟发送,第二阶段发起方设备不会仅基于本地 IPsec SA使用单向IPsec隧道传输数据,并且能够通过第二阶段响应方设备发 送的第二阶段ACK报文获知第二阶段响应方设备是否收到第二阶段最后一个 报文,如果没有收到第二阶段ACK报文则进行重新发送第二阶段最后一个报 文,在最大限度上保证IPsec SA的可靠建立。
如图11所示,本发明基于上述方法提供一种IKE可靠报文协商的发起方 设备A,包括
报文发送模块IHO,用于向响应方设备B发送协商报文;
报文接收模块1120,与所述报文发送模块1110连接,用于当所述报文发 送模块1110向所述响应方设备B发送最后一个协商报文后,在预设周期内接 收所述响应方设备B发送的响应报文;
判断模块1130,与所述报文接收模块1120连接,用于判断在预设周期内 是否接收到所述响应方设备发送的响应报文;
SA建立模块1140,与所述判断模块1130连接,用于当所述判断模块1130 的判断结果为在所述预设周期内接收到所述响应方设备发送的响应报文时, 立即建立SA,判断结果为在所述预设周期内没有接收到所述响应方设备发送 的响应报文时,不立即建立SA。当所述判断模块1130的判断结果为在所述预设周期内没有接收到所述响 应方设备发送的响应报文时,所述报文发送模块1110还用于重发所述最后一 个协商报文,所述设备A还包括
重发报文次数记录模块1150,分别与所述判断模块1130和所述报文发送 模块1110连接,用于记录重发次数;
资源释放模块1160,分别与所述报文接收模块1120和所述重发报文次数 记录模块1150连接,当所述报文接收模块1120在预设重发次数内没有接收 到所述响应方设备B发送的响应报文,所述设备A释放本地资源,并向所述 响应方设备B发送取消协商报文。
所述IKE可靠报文协商包括第一阶段可靠报文协商和第二阶段可靠报文 协商,当所述设备A与所述响应方设备B处于第一阶段可靠报文协商时,所 述报文发送模块1110向所述响应方设备B发送的最后一个协商报文为第一阶 段最后一个协商报文,所述报文接收模块1120接收所述响应方设备B发送的 响应报文的预设周期为第一预设周期,所述报文接收模块1120接收的所述响 应报文为第一阶段ACK报文或第二阶段发起协商报文,所述SA建立模块 1140进一步用于建立IKE SA,
当所述报文接收模块1120接收的所述响应方设备B发送的响应报文为第 一阶段ACK报文时,所述才艮文发送模块1110还用于向所述响应方设备B发 送第二阶段发起协商报文;
当所述报文接收模块1120接收的所述响应方设备B发送的响应报文为第 二阶段发起协商报文时,所述设备A响应所述响应方设备B发送的所述第二 阶段协商报文。
所述报文发送模块lllO还用于向所述响应方设备B发送携带有所述设备 A能力的协商报文,所述报文接收模块1120还用于接收响应方设备发送的反 馈报文,所述设备A还包括
能力协商模块1170,与所述报文接收模块1120连接,用于与所述响应方 设备B进行能力协商,该能力协商模块1170具体用于判断所述报文接收模块 1120接收的所述反馈报文中是否携带有所述响应方设备能力,如果判断结果为所述反馈报文中携带有所述响应方设备B能力,所述设备A与所述响应方设备B进行后续可靠报文协商,
如果判断结果为所述反馈报文中未携带有所述响应方设备B能力,所述设备A与所述响应方设备B进行后续常规报文协商。
当所述设备与所述响应方设备处于第二阶段可靠报文协商时,所述报文发送模块1110向所述响应方设备B发送的最后一个协商报文为第二阶段最后一个协商报文,所述报文接收模块1120接收所述响应方设备B发送的响应报文的预设周期为第二预设周期,所述报文接收模块1120接收的所述响应报文为第二阶段ACK报文或根据IPSEC协议加密的数据报文,所述SA建立模块1140进一步用于建立IPsec SA,
当所述报文接收模块1120接收的所述响应方设备B发送的响应报文为第二阶段ACK报文时,所述报文发送模块1110还用于向所述响应方设备B发送根据所述IPSEC协议加密的数据^JL。
通过本实施例,可知本发明在网络状况不佳的情况下,如果IKE第一阶段协商的最后一个报文丢失或延迟发送,发起方不会仅基于本地IKE SA使用单向IKE隧道传输数据,并且能够通过响应方发送的ACK报文或第二阶段发起协商报文获知是否响应方是否收到第一阶段最后一个报文,如果没有收到ACK报文或第二阶段发起协商报文则进行重新发送第一阶段最后一个报文,在最大限度上保证IKESA的可靠建立。并且在网络状况不佳的情况下,如果IKE第二阶段协商的最后一个报文丟失或延迟发送,发起方不会仅基于本地IPsec SA使用单向IPsec隧道传输数据,并且能够通过响应方发送的ACK报文或IPsec协议加密的数据报文获知是否响应方是否收到第二阶段最后一个报文,如果没有收到ACK报文或IPsec协议加密的数据报文则进行重新发送第二阶段最后一个报文,在最大限度上保证IPsec SA的可靠建立。
请继续参阅图11所示,本发明基于上述方法提供一种IKE可靠报文协商的响应方设备B,包括
报文接收模块1210,用于接收发起方设备A发送的协商报文;
SA建立模块1220,与所述报文接收模块1210连接,用于当接收所述发起方设备A发送的最后一个协商报文后,建立SA;
报文发送模块1230,与所述SA建立模块1220连接,用于当所述SA建立模块1220建立所述SA后,在预设周期内向所述发起方设备发送响应报文。
所述IKE可靠报文协商包括第一阶段可靠报文协商和第二阶段可靠报文协商,当所述设备B与所述发起方设备A处于第一阶段可靠报文协商时,所述报文接收模块1210接收发起方设备A发送的最后一个协商报文为第一阶段最后一个协商报文,所述报文发送模块1230发送响应报文的预设周期为第一预设周期,所述报文发送模块1230发送的响应报文为第一阶段ACK报文或第二阶段发起协商报文,所述SA建立模块1220进一步用于建立IKE SA,
当所述报文发送模块1230发送的响应报文为第一阶段ACK报文时,所述设备B响应所述发起方设备A发送的第二阶段发起协商报文;
当所述报文发送模块1230发送的响应报文为第二阶段发起协商报文时。
所述报文接收模块1210还用于接收所述发起方设备A发送的携带有所述发起方设备A能力的协商报文,所述报文发送模块还用于向所述发起方设备发送反馈报文,还包括
能力协商模块1240,分别与所述报文接收模块1210和所述报文发送模块1230连接,用于与该发起方设备A进行能力协商,
该能力协商模块1240具体用于判断所述设备B是否具有与所述发起方设备A匹配的能力,
如果判断结果为所述设备B具有与所述发起方设备A匹配的能力,所述报文发送模块1230进一步用于向所述发起方设备A发送携带有所述设备能力的反馈报文,
如果判断结果为所述设备B不具有与所述发起方设备A匹配的能力,所述报文发送模块1230进一步用于向所述发起方设备A发送未携带有所述设备能力的反馈报文。
当所述设备B与所述发起方设备A处于第二阶段可靠报文协商时,所述报文接收模块1210接收发起方设备A发送的最后一个协商报文为第二阶段最后一个协商报文,所述报文发送模块1230发送响应报文的预设周期为第二预设周期,所述报文发送模块1230发送的响应报文为第二阶段ACK报文或根据IPsec协议加密的数据报文,所述SA建立模块1220进一步用于建立IPsecSA,
当所述报文发送模块1230发送的响应报文为第二阶段ACK报文时,所述报文接收模块1210还用于接收所述发起方设备A发送的根据所述IPsec协议加密的数据报文。
通过本实施例,可知本发明在网络状况不佳的情况下,如果IKE第一阶段协商的最后一个报文丟失或延迟发送,发起方不会仅基于本地IKE SA使用单向IKE隧道传输数据,并且能够通过响应方发送的ACK报文或第二阶段发起协商报文获知是否响应方是否收到第一阶段最后一个报文,如果没有收到ACK报文或第二阶段发起协商报文则进行重新发送第一阶段最后一个报文,在最大限度上保证IKESA的可靠建立。并且在网络状况不佳的情况下,如果IKE第二阶段协商的最后一个报文丟失或延迟发送,发起方不会仅基于本地IPsec SA使用单向IPsec隧道传输数据,并且能够通过响应方发送的ACK报文或IPsec协议加密的数据报文获知是否响应方是否收到第二阶段最后一个报文,如果没有收到ACK报文或IPsec协议加密的数据报文则进行重新发送第二阶段最后一个报文,在最大限度上保证IPsec SA的可靠建立。
如图12所示,本发明基于上述方法提供一种IKE可靠报文协商的系统,包括
发起方设备1310,用于向响应方设备1320发送协商报文,当发送最后一个协商报文后,判断在预设周期内是否接收到所述响应方设备发送的响应报文,当判断结果为在所述预设周期内接收到所述响应方设备发送的响应报文时,立即建立SA,当判断结果为在所述预设周期内没有接收到所述响应方设备发送的响应报文时,不立即建立SA;
响应方设备1320,与所述发起方设备1310连接,用于当接收到所述发起方设备发送的最后一个协商报文后,向所述发起方设备发送所述响应报文。
通过本实施例,可知本发明在网络状况不佳的情况下,如果IKE第一阶段协商的最后一个报文丟失或延迟发送,发起方不会仅基于本地IKE SA使用单向IKE隧道传输数据,并且能够通过响应方发送的ACK报文或第二阶段发
起协商报文获知是否响应方是否收到第一阶段最后一个报文,如果没有收到
ACK报文或第二阶段发起协商报文则进行重新发送第一阶段最后一个报文,在最大限度上保证IKESA的可靠建立。并且在网络状况不佳的情况下,如果IKE第二阶段协商的最后一个报文丢失或延迟发送,发起方不会仅基于本地IPsec SA使用单向IPsec隧道传输数据,并且能够通过响应方发送的ACK报文或IPsec协议加密的数据报文获知是否响应方是否收到第二阶段最后一个报文,如果没有收到ACK报文或IPsec协议加密的数据报文则进行重新发送第二阶段最后一个报文,在最大限度上保证IPsec SA的可靠建立。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以軟件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
权利要求
1、一种因特网密匙交换IKE可靠报文协商的方法,应用于包括第一设备、第二设备的系统中,其特征在于,包括a、所述第一设备向所述第二设备发送最后一个协商报文后,判断在预设周期内是否接收到所述第二设备发送的响应报文;b、如果判断结果为在所述预设周期内接收到所述第二设备发送的响应报文,所述第一设备立即建立安全联盟SA。
2、 如权利要求l所述的方法,其特征在于,所述方法还包括c、 如果判断结果为在所述预设周期内没有接收到所述第二设备发送的响 应报文,所述第一设备不立即建立所述SA。
3、 如权利要求2所述的方法,其特征在于,所述步骤c之后还包括 所述第一设备重发所述最后一个协商报文,并记录重发次数;当所述第 一设备在预设重发次数内没有接收到所述第二设备发送的响应 报文时,所述第一设备释放本地资源,并向所述第二设备发送取消协商报文;当所述第 一设备在预设重发次数内接收到所述第二设备发送的响应报文 时,所述第一设备建立所述SA。
4、 如权利要求l-3任一项所述的方法,其特征在于,所述IKE可靠报文 协商包括第一阶段可靠报文协商和第二阶段可靠报文协商,当所述第一设备 与第二设备处于第一阶段可靠报文协商时,所述第一设备向所述第二设备发 送的所述最后一个协商报文为第一阶段最后一个协商报文,所述预设周期为 第一预设周期,所述响应报文为第一阶段确认ACK报文或第二阶段发起协商 报文,所述SA为IKESA。
5、 如权利要求4所述的方法,其特征在于,当接收到所述第二设备发送的响应报文为第一阶段ACK报文时,所述步 骤b之后还包括所述第一设备向所述第二设备发送第二阶段发起协商报文,所迷第二设备响应所述第 一设备发送的第二阶段发起协商报文;当接收到所述第二设备发送的响应报文为第二阶段发起协商报文时,所述步骤b之后还包括所述第一设备响应所述第二设备发送的所述第二阶段协商报文。
6、 如权利要求4所述的方法,其特征在于,所述步骤a之前还包括 所述第一设备与所述第二设备进行能力协商,具体包括所述第 一设备向所述第二设备发送携带有所述第 一设备能力的报文;所述第二设备接收到所述携带有第一设备能力的报文后,判断自身是否 具有与所述第 一设备匹配的能力;当所述第二设备具有与所述第 一设备匹配的能力时,所述第二设备向所 述第一设备发送携带有自身能力的反馈报文,所述第一设备接收到所述反馈 报文后,与所述第二设备进行后续可靠报文协商;当所述第二设备不具有与所述第一设备匹配的能力时,所述第二设备向 所述第一设备发送未携带自身能力的反馈报文,所述第一设备接收到所述反 馈报文后,与所述第二设备进行后续常规报文协商。
7、 如权利要求6所述的方法,其特征在于,通过供应商标识VID承载所 述第一设备或所述第二设备的能力,所述第一设备或所述第二设备携带所述 VID,当所述第一设备接收到所述第二设备发送的携带所述VID的反馈报文 后,与所述第二设备进行后续可靠报文协商;所述第一设备接收到所述第二设备发送的未携带所述VID的反馈报文 后,与所述第二设备进行后续常规报文协商。
8、 如权利要求1-3任一项所述的方法,其特征在于,所述IKE可靠报文 协商包括第一阶段可靠报文协商和第二阶段可靠报文协商,当所述第一设备 与第二设备处于第二阶段可靠报文协商时,所述第一设备向所迷第二设备发 送的最后一个协商报文为第二阶段最后一个协商报文,所述预设周期为第二 预设周期,所述响应报文为第二阶段ACK报文或根据IPsec协议加密的数据 报文,所述SA为网络互连协议安全联盟IPsecSA。
9、 如权利要求8所述的方法,其特征在于,当接收到所述第二设备发送的响应报文为第二阶段ACK报文时,所述步骤b之后还包括所述第一设备向所述第二设备发送根据所述IPsec协议加密的数据报文。
10、 一种IKE可靠报文协商的发起方设备,其特征在于,包括 报文发送模块,用于向响应方设备发送协商报文;报文接收模块,与所述报文发送模块连接,用于当所述报文发送模块向 所述响应方设备发送最后 一个协商报文后,在预设周期内接收所述响应方设 备发送的响应报文;判断模块,与所述报文接收模块连接,用于判断在预设周期内是否接收 到所述响应方设备发送的响应报文;SA建立模块,与所述判断模块连接,用于当所述判断模块的判断结果为 在所述预设周期内接收到所述响应方设备发送的响应报文时,立即建立SA。
11、 如权利要求10所述的设备,其特征在于,所述SA建立模块还用于 当所述判断模块的判断结果为在所述预设周期内没有接收到所述响应方设备 发送的响应报文时,不立即建立SA。
12、 如权利要求11所述的设备,其特征在于,当所述判断模块的判断结报文发送模块还用于重发所述最后一个协商报文, 所述设备还包括重发报文次数记录模块,分别与所述判断模块和所述报文发送模块连接, 用于记录重发次数;资源释放模块,分别与所述报文接收模块和所述重发报文次数记录模块 连接,当所述报文接收模块在预设重发次数内没有接收到所述响应方设备发 送的响应报文,所述设备释放本地资源,并向所述响应方设备发送取消协商 报文。
13、 如权利要求10-12任一项所述的设备,其特征在于,所述IKE可靠 报文协商包括第一阶段可靠报文协商和第二阶段可靠报文协商,当所述设备 与所述响应方设备处于第 一阶段可靠报文协商时,所述报文发送模块向所述响应方设备发送的最后一个协商报文为第一阶段最后一个协商报文,所述报 文接收模块接收所述响应方设备发送的响应报文的预设周期为第一预设周期,所述报文接收模块接收的所述响应报文为第 一阶段ACK报文或第二阶段 发起协商报文,所述SA建立模块进一步用于建立IKE SA。
14、 如权利要求13所述的设备,其特征在于,当所述报文接收模块接收 的所述响应方设备发送的响应报文为第一阶段ACK报文时,所述报文发送模 块还用于向所述响应方设备发送第二阶段发起协商报文;当所述报文接收模块接收的所述响应方设备发送的响应报文为第二阶段 发起协商报文时,所述设备响应所述响应方设备发送的所述第二阶段协商报 文。
15、 如权利要求13所述的设备,其特征在于,所述报文发送模块还用于 向所述响应方设备发送携带有所述设备能力的协商报文,所述报文接收模块 还用于接收响应方设备发送的反馈报文,所述设备还包括能力协商模块,与所述报文接收模块连接,用于与所述响应方设备进行 能力协商,所述能力协商模块具体用于判断所述报文接收模块接收的所述反馈报文 中是否携带有所述响应方设备能力,如果判断结果为所述反馈报文中携带有 所述响应方设备能力,所述设备与所述响应方设备进行后续可靠报文协商, 如果判断结果为所述反馈报文中未携带有所述响应方设备能力,所述设备与 所述响应方设备进行后续常规报文协商。
16、 如权利要求10-12任一项所述的设备,其特征在于,所述IKE可靠 报文协商包括第一阶段可靠报文协商和第二阶段可靠报文协商,当所述设备 与所述响应方设备处于第二阶段可靠报文协商时,所述报文发送模块向所述 响应方设备发送的最后一个协商报文为第二阶段最后一个协商报文,所述报 文接收模块接收所述响应方设备发送的响应报文的预设周期为第二预设周 期,所述报文接收模块接收的所述响应报文为第二阶段ACK报文或根据IPsec 协议加密的数据报文,所述SA建立模块进一步用于建立IPsec SA。
17、 如权利要求16所述的设备,其特征在于,当所述报文接收模块接收 的所述响应方设备发送的响应报文为第二阶段ACK报文时,所述报文发送模 块还用于向所述响应方设备发送根据所述IPsec协议加密的数据报文。
18、 一种IKE可靠报文协商的响应方设备,其特征在于,包括 报文接收模块,用于接收发起方设备发送的协商报文; SA建立模块,与所述报文接收模块连接,用于当接收所述发起方设备发送的最后一个协商报文后,建立SA;报文发送模块,与所述SA建立模块连接,用于当所述SA建立模块建立 所述SA后,在预设周期内向所述发起方设备发送响应报文。
19、 如权利要求18所述的设备,其特征在于,所述IKE可靠报文协商包 括第一阶段可靠报文协商和第二阶段可靠报文协商,当所述设备与所述发起 方设备处于第一阶段可靠报文协商时,所述报文接收模块接收发起方设备发 送的最后一个协商报文为第一阶段最后一个协商报文,所述报文发送模块发 送响应报文的预设周期为第一预设周期,所述报文发送模块发送的响应报文 为第一阶段ACK报文或第二阶段发起协商报文,所述SA建立模块进一步用 于建立IKE SA。
20、 如权利要求19所述的设备,其特征在于,当所述报文发送模块发送 的响应报文为第一阶段ACK报文时,所述设备响应所述发起方设备发送的第 二阶段发起协商报文;当所述报文发送模块发送的响应报文为第二阶段发起协商报文时,响应 所述第二阶段协商报文。
21、 如权利要求19所述的设备,其特征在于,所述报文接收模块还用于 接收所述发起方设备发送的携带有所述发起方设备能力的协商报文,所述报 文发送模块还用于向所述发起方设备发送反馈报文,还包括能力协商模块,分别与所述报文接收模块和所述报文发送模块连接,用 于与所述发起方设备进行能力协商,所述能力协商模块具体用于判断所述设备是否具有与所述发起方设备匹 配的能力,如果判断结果为所述设备具有与所述发起方设备匹配的能力,所 述报文发送模块进一步用于向所述发起方设备发送携带有所述设备能力的反 馈报文,如果判断结果为所述设备不具有与所述发起方设备匹配的能力,所 述报文发送模块进一步用于向所述发起方设备发送未携带有所述设备能力的 反馈报文。
22、如权利要求18所述的设备,其特征在于,所述IKE可靠报文协商 包括第一阶段可靠报文协商和第二阶段可靠报文协商,当所述设备与所述发 起方设备处于第二阶段可靠报文协商时,所述报文接收模块接收发起方设备 发送的最后一个协商报文为第二阶段最后一个协商报文,所述报文发送模块 发送响应报文的预设周期为第二预设周期,所述报文发送模块发送的响应报 文为第二阶段ACK才艮文或根据IPsec协议加密的数据报文,所述SA建立模 块进一步用于建立IPsec SA。
23、 如权利要求22所述的设备,其特征在于,当所述报文发送模块发送 的响应报文为第二阶段ACK报文时,所述报文接收模块还用于接收所述发起 方设备发送的才艮据所述IPsec协议加密的数据才艮文。
24、 一种IKE可靠报文协商的系统,其特征在于,包括 发起方设备,用于向响应方设备发送协商报文,当发送最后一个协商报文后,判断在预设周期内是否接收到所述响应方设备发送的响应报文,当判 断结果为在所述预设周期内接收到所述响应方设备发送的响应报文时,立即 建立SA;响应方设备,与所述发起方设备连接,用于当接收到所述发起方设备发 送的最后一个协商报文后,向所述发起方设备发送所述响应报文。
全文摘要
本发明公开了一种IKE可靠报文协商的方法、设备及系统,其中方法应用于包括第一设备、第二设备的系统中,包括a.所述第一设备向所述第二设备发送最后一个协商报文后,判断在预设周期内是否接收到所述第二设备发送的响应报文;b.如果判断结果为在所述预设周期内接收到所述第二设备发送的响应报文,所述第一设备立即建立安全联盟SA。本发明能够在网络状况不佳,IKE第一阶段或第二阶段报文协商的最后一个报文丢失或延迟时,保证IKE SA和IPsec SA的可靠建立以及根据IPsec协议加密的数据报文的可靠传输。
文档编号H04L29/06GK101527729SQ20091013629
公开日2009年9月9日 申请日期2009年5月5日 优先权日2009年5月5日
发明者徐庆伟, 潇 罗 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1