CN101527729A - 一种ike可靠报文协商的方法、设备及系统 - Google Patents
一种ike可靠报文协商的方法、设备及系统 Download PDFInfo
- Publication number
- CN101527729A CN101527729A CN200910136293A CN200910136293A CN101527729A CN 101527729 A CN101527729 A CN 101527729A CN 200910136293 A CN200910136293 A CN 200910136293A CN 200910136293 A CN200910136293 A CN 200910136293A CN 101527729 A CN101527729 A CN 101527729A
- Authority
- CN
- China
- Prior art keywords
- message
- equipment
- stage
- phase
- sends
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种IKE可靠报文协商的方法、设备及系统,其中方法应用于包括第一设备、第二设备的系统中,包括:a.所述第一设备向所述第二设备发送最后一个协商报文后,判断在预设周期内是否接收到所述第二设备发送的响应报文;b.如果判断结果为在所述预设周期内接收到所述第二设备发送的响应报文,所述第一设备立即建立安全联盟SA。本发明能够在网络状况不佳,IKE第一阶段或第二阶段报文协商的最后一个报文丢失或延迟时,保证IKE SA和IPsec SA的可靠建立以及根据IPsec协议加密的数据报文的可靠传输。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种IKE可靠报文协商的方法、设备及系统。
背景技术
IKE协议(Internet Key Exchange,因特网密匙交换)用于在IPsec(IPsecurity,IP安全)中建立安全联盟,在如Internet等不安全的网络环境中,安全地建立和更新共享密钥。为保证诸如IPv6(Internet Protocol Version 6,第六版互联网协议)等的安全运行,建立IKE安全联盟,实现对数据进行加密转发和传输就显得十分必要。
IKE是基于ISAKMP(Internet Security Association and Key ManagementProtocol,安全联盟和密钥管理协议)定义的框架上建立的。通常,建立IKE包括两个阶段,第一阶段用于建立通信信道IKE SA(security association,安全联盟),并对该信道进行验证,为进行IKE通信提供机密性、消息完整性以及消息源验证服务。第二阶段基于IKE SA,在第一阶段的基础上创建IPsecSA,通过建立的IPsec SA转发或传输加密的数据。
IKE建立的第一阶段交换包括两种模式,一种是主模式交换(MainMode),另外一种是野蛮模式交换(Aggressive Mode)。主模式交换如图1所示,主模式交换提供了交换双方的身份保护机制,主模式交换包括三个交换过程,在这三个交换过程中共交换六条报文,这三个交换过程分别是策略协商交换、nonce随机交换以及身份验证交换。野蛮模式交换如图2所示,野蛮模式交换不提供交换双方的身份保护机制,并且只交换三条报文,第一条报文和第二条报文用于协商策略,第二条还用于认证响应方设备,第三条报文用于认证发起方设备。在上述两种第一阶段交换模式中,发起方设备向响应方设备发送最后一个报文后,建立发起方设备本地IKE SA,响应方设备接收到发起方设备发送的最后一个报文后,响应发起方设备的报文协商,建立响应方设备IKE SA,响应方设备与发起方设备的IKE SA建立完成。在IKE第一阶段协商中,发起方设备和响应方设备交互的信息包括:HDR报文头信息,SA报文密钥信息,KE密钥交换信息,NONCE随机信息,HDR*加密报文头信息,IDii发起方设备ID信息,IDir响应方设备ID信息,AUTH身份验证信息。
IKE第二阶段通过快速模式交换建立,如图3所示,在快速模式交换中,发起方设备和响应方设备交换三条报文,其中第一条报文和第二条报文协商IPsec SA的各项参数值,并生成IPsec使用的密钥,第二条报文还用于为响应方设备提供在场的证据,第三条报文为发起方设备提供在场的证据。在IKE第二阶段协商中,发起方设备和响应方设备交互的信息包括:HDR*加密的报文头信息,SA报文密钥信息,Ni随机发起方设备信息,Nr随机响应方设备信息,IDci发起方设备数据ID信息,IDir响应方设备数据ID信息,HASH哈希信息。
IPsec SA建立完成后,发起方设备通过双方建立的IPsec SA通道向响应方设备转发经过IPsec加密的数据。具体协商过程在RFC2408(Request ForComments,一系列以编号排定的文件)和RFC2409中有具体描述,在这里不再赘述。
建立IKE的过程可以通过两种方式触发,一种是当本地需要建立协商SA时,本地触发建立IKE。另一种是当远程需要协商SA时,远程触发建立IKE。触发建立IKE的一方即为上述的发起方设备,响应发起方设备建立IKE的一方即为上述的响应方设备,根据触发方式的不同,发起方设备可以为本地设备,也可以为远程设备,当发起方设备为本地设备时,响应方设备为与其对应的远程设备,当发起方设备为远程设备时,响应方设备为与其对应的本地设备。
在第一阶段IKE SA建立的报文协商过程中,如果发起方设备发送的第一阶段最后一个报文丢失或响应方设备无法接收到该报文,响应方设备就无法建立对应的响应方设备IKE SA。按照现有的IKE协议,发起方设备无法获知响应方设备是否接收到该最后一个报文,因此发起方设备误认为响应方设备已经接收到发起方设备发送的第一阶段最后一个报文并建立了对应的响应方设备IKE SA。此时发起方设备发起第二阶段协商,由于响应方设备IKE SA在第一阶段中并没有建立起来,响应方设备无法进行基于第一阶段的第二阶段报文协商,而发起方设备并不知道响应方设备不能进行第二阶段协商,发起方设备不断向响应方设备发送第二阶段协商报文。另外,如果此时发起第一阶段的发起方设备没有发起第二段协商,而是等待所述响应方发起第二段协商,而响应方设备由于没有建立IKE SA,也无法发起第二阶段协商,造成第二阶段协商失败。
同样,在第二阶段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为网络互连协议安全联盟IPsecSA。
优选的,
当接收到所述第二设备发送的响应报文为第二阶段ACK报文时,所述步骤b之后还包括:
所述第一设备向所述第二设备发送根据所述IPsec协议加密的数据报文。
本发明还提供一种IKE可靠报文协商的发起方设备,包括:
报文发送模块,用于向响应方设备发送协商报文;
报文接收模块,与所述报文发送模块连接,用于当所述报文发送模块向所述响应方设备发送最后一个协商报文后,在预设周期内接收所述响应方设备发送的响应报文;
判断模块,与所述报文接收模块连接,用于判断在预设周期内是否接收到所述响应方设备发送的响应报文;
SA建立模块,与所述判断模块连接,用于当所述判断模块的判断结果为在所述预设周期内接收到所述响应方设备发送的响应报文时,立即建立SA。
优选的,所述SA建立模块还用于当所述判断模块的判断结果为在所述预设周期内没有接收到所述响应方设备发送的响应报文时,不立即建立SA。
优选的,当所述判断模块的判断结果为在所述预设周期内没有接收到所述响应方设备发送的响应报文时,所述报文发送模块还用于重发所述最后一个协商报文,
所述设备还包括:
重发报文次数记录模块,分别与所述判断模块和所述报文发送模块连接,用于记录重发次数;
资源释放模块,分别与所述报文接收模块和所述重发报文次数记录模块连接,当所述报文接收模块在预设重发次数内没有接收到所述响应方设备发送的响应报文,所述设备释放本地资源,并向所述响应方设备发送取消协商报文。
优选的,所述IKE可靠报文协商包括第一阶段可靠报文协商和第二阶段可靠报文协商,当所述设备与所述响应方设备处于第一阶段可靠报文协商时,所述报文发送模块向所述响应方设备发送的最后一个协商报文为第一阶段最后一个协商报文,所述报文接收模块接收所述响应方设备发送的响应报文的预设周期为第一预设周期,所述报文接收模块接收的所述响应报文为第一阶段ACK报文或第二阶段发起协商报文,所述SA建立模块进一步用于建立IKESA。
优选的,当所述报文接收模块接收的所述响应方设备发送的响应报文为第一阶段ACK报文时,所述报文发送模块还用于向所述响应方设备发送第二阶段发起协商报文;
当所述报文接收模块接收的所述响应方设备发送的响应报文为第二阶段发起协商报文时,所述设备响应所述响应方设备发送的所述第二阶段协商报文。
优选的,所述报文发送模块还用于向所述响应方设备发送携带有所述设备能力的协商报文,所述报文接收模块还用于接收响应方设备发送的反馈报文,
所述设备还包括:
能力协商模块,与所述报文接收模块连接,用于与所述响应方设备进行能力协商,
所述能力协商模块具体用于判断所述报文接收模块接收的所述反馈报文中是否携带有所述响应方设备能力,如果判断结果为所述反馈报文中携带有所述响应方设备能力,所述设备与所述响应方设备进行后续可靠报文协商,如果判断结果为所述反馈报文中未携带有所述响应方设备能力,所述设备与所述响应方设备进行后续常规报文协商。
优选的,所述IKE可靠报文协商包括第一阶段可靠报文协商和第二阶段可靠报文协商,当所述设备与所述响应方设备处于第二阶段可靠报文协商时,所述报文发送模块向所述响应方设备发送的最后一个协商报文为第二阶段最后一个协商报文,所述报文接收模块接收所述响应方设备发送的响应报文的预设周期为第二预设周期,所述报文接收模块接收的所述响应报文为第二阶段ACK报文或根据IPsec协议加密的数据报文,所述SA建立模块进一步用于建立IPsec SA,
优选的,当所述报文接收模块接收的所述响应方设备发送的响应报文为第二阶段ACK报文时,所述报文发送模块还用于向所述响应方设备发送根据所述IPsec协议加密的数据报文。
本发明还提供一种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的可靠建立。
附图说明
图1是现有技术中主模式交换过程示意图;
图2是现有技术中野蛮模式交换过程示意图;
图3是现有技术中快速模式交换过程示意图;
图4是本发明中的用于IKE可靠报文协商的方法的一个实施例示意图;
图5是本发明中的用于第一阶段进行可靠报文协商的方法示意图;
图6是本发明中的能力协商方法示意图;
图7是本发明中的用于第二阶段可靠报文协商的方法示意图;
图8是本发明中的主模式交换报文协商方法示意图;
图9是本发明中的野蛮模式交换报文协商方法示意图;
图10是本发明中的快速模式交换报文协商方法示意图;
图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报文或第二阶段发起协商报文,SA为IKE SA,
在第一阶段报文协商过程中,需要对第一设备与第二设备是否具有进行可靠报文协商能力进行协商。
第二种情况,与第一种情况不同的是,由于第二阶段报文协商是基于第一阶段报文协商的基础上进行的,因此在第二种情况中,第一设备与第二设备不需要进行能力协商,并且第一设备向第二设备发送的最后一个协商报文为第二阶段最后一个协商报文,预设周期为第二预设周期,响应报文为第二阶段ACK报文或根据IPsec协议加密的数据报文,SA为网络互连协议安全联盟IPsec SA。
在此需要说明的是,在第一阶段报文协商过程中为第一阶段发起方设备的第一设备在第二阶段报文协商过程中并不一定为第二阶段发起方设备,也可能为第二阶段响应方设备,当该第一设备向该第二设备发送第二阶段发起协商报文,该第一设备为第二阶段发起方设备;当该第一设备响应该第二设备发送第二阶段发起协商报文,该第一设备为第二阶段响应方设备。同样,在第一阶段报文协商过程中为第一阶段响应方设备的第二设备在第二阶段报文协商过程中并不一定为第二阶段响应方设备,也可能为第二阶段发起方设备,当该第二设备向该第一设备发送第二阶段发起协商报文,该第二设备为第二阶段发起方设备;当该第二设备响应该第一设备发送第二阶段发起协商报文,该第二设备为第二阶段响应方设备。
通过本实施例,可知本发明在网络状况不佳的情况下,如果IKE第一阶段协商的最后一个报文丢失或延迟发送,发起方不会仅基于本地IKE SA使用单向IKE隧道传输数据,并且能够通过响应方发送的ACK报文或第二阶段发起协商报文获知响应方是否收到第一阶段最后一个报文,如果没有收到ACK报文或第二阶段发起协商报文则进行重新发送第一阶段最后一个报文,在最大限度上保证IKE SA的可靠建立。并且在网络状况不佳的情况下,如果IKE第二阶段协商的最后一个报文丢失或延迟发送,发起方不会仅基于本地IPsecSA使用单向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,第一阶段发起方设备向第一阶段响应方设备发送第一阶段最后一个协商报文,并开始计时。为避免第一阶段响应方设备无法接收到第一阶段最后一个协商报文,第一阶段发起方设备发送第一阶段最后一个协商报文后,不立即建立第一阶段发起方设备IKE SA,而是等待第一阶段响应方设备回复第一阶段ACK报文,确认接收到第一阶段最后一个协商报文或第二阶段发起协商报文后,再建立第一阶段发起方设备IKE SA。如果第一阶段发起方设备在第一预设周期内接收到第一阶段响应方设备发送的第一阶段ACK报文或第二阶段发起协商报文,则转步骤504;如果第一阶段发起方设备在第一预设周期内没有接收到第一阶段响应方设备发送的第一阶段ACK报文或第二阶段发起协商报文,则转步骤505。
步骤504,第一阶段发起方设备在第一预设周期内接收到第一阶段响应方设备发送的第一阶段ACK报文或第二阶段发起协商报文。第一阶段发起方设备获知第一阶段响应方设备已经接收到第一阶段发起方设备发送的第一阶段最后一个协商报文,第一阶段发起方设备建立第一阶段发起方设备IKE SA。在响应方设备一侧,第一阶段响应方设备接收到第一阶段发起方设备发送的第一阶段最后一个协商报文后,建立第一阶段响应方设备IKE SA,并在该IKESA保护下向第一阶段发起方设备发送第一阶段ACK报文,通过第一阶段ACK报文告知第一阶段发起方设备已经接收到第一阶段发起方设备发送的第一阶段最后一个协商报文。如果第一阶段发起方设备在第一预设周期内没有收到第一阶段响应方设备发送的第一阶段ACK报文,为防止第一阶段ACK报文不可靠传输而丢失,如果收到第一阶段响应方设备发送的第二阶段发起协商报文,则仍说明已经接收到第一阶段发起方设备发送的第一阶段最后一个协商报文,并且第一阶段响应方设备已经建立IKE SA,并在该IKE SA基础上向第一阶段发起方设备发起第二阶段协商。
在本实施例中,第一阶段响应方设备通过informational报文中携带notification负载向第一阶段发起方设备发送第一阶段ACK报文,在此需要说明的是,通过informational报文(报告交换报文)携带notification负载向第一阶段发起方设备发送第一阶段ACK报文,只是本发明的一个可选方案,本发明的技术方案并不局限于此。
步骤505,第一阶段发起方设备认为第一阶段响应方设备没有接收到第一阶段最后一个协商报文,第一阶段发起方设备重新向第一阶段响应方设备发送第一阶段最后一个协商报文,并重新进行计时。如果在第二个第一预设周期内,第一阶段发起方设备接收到第一阶段响应方设备发送的第一阶段ACK报文或第二阶段发起协商报文,第一阶段发起方设备建立第一阶段发起方设备IKE SA。如果在该第二个第一预设周期后仍没有收到第一阶段响应方设备发送的第一阶段ACK报文或第二阶段发起协商报文,第一阶段发起方设备继续向第一阶段响应方设备发送第一阶段最后一个协商报文,并继续重新进行计时,如此进行循环,在此循环期间如果第一阶段发起方设备收到第一阶段响应方设备发送的第一阶段ACK报文或第二阶段发起协商报文,则第一阶段发起方设备建立第一阶段发起方设备IKE SA;如果第一阶段发起方设备向第一阶段响应方设备发送了多次第一阶段最后一个协商报文,经过多个第一预设周期后,仍没有接收到第一阶段响应方设备发送的第一阶段ACK报文或第二阶段发起协商报文,第一阶段发起方设备认为第一阶段响应方设备与第一阶段发起方设备第一阶段协商失败,第一阶段发起方设备删除本地为尚未建立的IKE SA,并向第一阶段响应方设备发送取消协商报文,告知第一阶段响应方设备本次第一阶段报文协商失败,第一阶段响应方设备接收到该报文后,释放本地资源,删除本地尚未建立的IKE SA。
在此需要说明的是,第一阶段发起方设备发送的取消协商报文可以为informational报文,但选用informational报文只是本发明的一个可选方案,本发明的技术方案并不局限于此。在此还需要说明的是,第一阶段发起方设备发送第一阶段最后一个协商报文后,计时的第一预设周期值根据具体实际情况不同,而有所不同。第一阶段发起方设备经过多个第一预设周期后,认为第一阶段协商失败,该多个第一预设周期根据具体实际情况不同,而有所不同。
通过本实施例,可知本发明在网络状况不佳的情况下,如果IKE第一阶段协商的最后一个报文丢失或延迟发送,第一阶段发起方设备不会仅基于本地IKE SA使用单向IKE隧道传输数据,并且能够通过第一阶段响应方设备发送的第一阶段ACK报文获知第一阶段响应方设备是否收到第一阶段最后一个报文,如果没有收到第一阶段ACK报文则进行重新发送第一阶段最后一个报文,在最大限度上保证IKE SA的可靠建立。
如图7所示,为基于第二阶段可靠报文协商的方法,与上述基于第一阶段可靠报文协商的方法不同的是,由于第二阶段报文协商是基于第一阶段报文协商的基础上进行的,因此不需要进行能力协商,基于本发明技术方案在第二阶段报文协商具体包括以下步骤:
步骤701,第二阶段发起方设备向第二阶段响应方设备发送第二阶段协商报文,发起第二阶段协商,第二阶段响应方设备响应该第二阶段发起方设备,进行第二阶段报文协商。
步骤702,第二阶段发起方设备向第二阶段响应方设备发送第二阶段最后一个协商报文,并开始计时。为避免第二阶段响应方设备无法接收到第二阶段最后一个协商报文,第二阶段发起方设备发送第二阶段最后一个协商报文后,不立即建立第二阶段发起方设备IPsec SA,等待第二阶段响应方设备回复第二阶段ACK报文或根据IPsec协议加密的数据报文,确认第二阶段响应方设备接收到第二阶段最后一个协商报文后,建立第二阶段发起方设备IPsecSA。如果第二阶段发起方设备在第二预设周期内接收到第二阶段响应方设备发送的第二阶段ACK报文或根据IPsec协议加密的数据报文,则转步骤703;如果第二阶段发起方设备在第二预设周期内没有接收到第二阶段响应方设备发送的第二阶段ACK报文或根据IPsec协议加密的数据报文,转步骤704。
在此将第二阶段可靠报文协商的计时周期定义为第二预设周期,以与第一阶段可靠报文协商的第一预设周期相区别,第一预设周期的值与第二预设周期的值没有直接关系。
步骤703,第二阶段发起方设备在第二预设周期内接收到第二阶段响应方设备发送的第二阶段ACK报文或根据IPsec协议加密的数据报文。第二阶段发起方设备获知第二阶段响应方设备已经接收到第二阶段发起方设备发送的第二阶段最后一个协商报文,第二阶段发起方设备建立第二阶段发起方设备IPsec SA。在第二阶段响应方设备一侧,第二阶段响应方设备接收到第二阶段发起方设备发送的第二阶段最后一个协商报文后,建立第二阶段响应方设备IPsec SA,并在该IPsec SA下向第二阶段发起方设备发送第二阶段ACK报文,通过第二阶段ACK报文告知第二阶段发起方设备已经接收到第二阶段发起方设备发送的第二阶段最后一个协商报文。为避免第二阶段ACK报文传输丢失,如果第二阶段发起方设备接收到第二阶段响应方设备发送的根据IPsec协议加密的数据报文,则仍说明已经接收到第二阶段发起方设备发送的第二阶段最后一个协商报文,并且第二阶段响应方设备已经建立IPsec SA,并在该IPsecSA通道发送根据IPsec协议加密的数据报文。
在本实施例中,第二阶段响应方设备通过informational(报告交换报文)报文携带notification负载向第二阶段发起方设备发送第二阶段ACK报文,在此需要说明的是,通过informational报文(报告交换报文)携带notification报文负载向第二阶段发起方设备发送第二阶段ACK报文,只是本发明的一个可选方案,本发明的技术方案并不局限于此。
步骤704,第二阶段发起方设备认为第二阶段响应方设备没有接收到第二阶段最后一个协商报文,第二阶段发起方设备重新向第二阶段响应方设备发送第二阶段最后一个协商报文,并进行计时。如果在该第二个第二预设周期内,第二阶段发起方设备接收到第二阶段响应方设备发送的第二阶段ACK报文或根据IPsec协议加密的数据报文,第二阶段发起方设备建立第二阶段发起方设备IPsec SA。如果在该第二个第二预设周期后仍没有收到第二阶段响应方设备发送的第二阶段ACK报文或根据IPsec协议加密的数据报文,第二阶段发起方设备继续向第二阶段响应方设备发送第二阶段最后一个协商报文,并进行计时,如此进行循环,在此循环期间如果第二阶段发起方设备收到第二阶段响应方设备发送的第二阶段ACK报文或根据IPsec协议加密的数据报文,则第二阶段发起方设备建立第二阶段发起方设备IPsec SA;如果第二阶段发起方设备向第二阶段响应方设备发送了多次第二阶段最后一个协商报文,经过多个第二预设周期后,仍没有接收到第二阶段响应方设备发送的第二阶段ACK报文或根据IPsec协议加密的数据报文,第二阶段发起方设备则认为第二阶段响应方设备与第二阶段发起方设备第二阶段协商失败,第二阶段发起方设备删除本地为尚未建立的IPsec SA,并向第二阶段响应方设备发送取消协商报文,告知第二阶段响应方设备本次第二阶段协商失败,第二阶段响应方设备接收到该报文后,释放本地资源,删除本地尚未建立的IPsec SA。
还需要说明的是,第二阶段发起方设备发送第二阶段最后一个协商报文后,计时的第二预设周期值根据具体实际情况不同,而有所不同。第二阶段发起方设备经过多个第二预设周期后,认为第二阶段协商失败,该多个第二预设周期根据具体实际情况不同,而有所不同。
通过上述实施例,可知在网络状况不佳的情况下,如果IKE第二阶段协商的最后一个报文丢失或延迟发送,第二阶段发起方设备不会仅基于本地IPsec SA使用单向IPsec隧道传输数据,并且能够通过第二阶段响应方设备发送的第二阶段ACK报文获知第二阶段响应方设备是否收到第二阶段最后一个报文,如果没有收到第二阶段ACK报文则进行重新发送第二阶段最后一个报文,在最大限度上保证IPsec SA的可靠建立。
IKE第一阶段报文协商在具体应用当中,包括主模式交换和野蛮模式交换协商两种,其中本发明应用于主模式交换协商的具体方法如图8所示,包括以下步骤:
步骤801,第一阶段发起方设备向第一阶段响应方设备发送携带有VID标识的报文。该VID标识用于承载第一阶段发起方设备的能力。
步骤802,第一阶段响应方设备接收到第一阶段发起方设备发送的具有VID标识的报文后,获知第一阶段发起方设备具有进行后续IKE可靠协商的能力,向第一阶段发起方设备返回携带有VID标识的报文,该VID标识用于承载第一阶段响应方设备的能力。
步骤803,第一阶段发起方设备收到第一阶段响应方设备发送的携带有VID标识的报文后,获知第一阶段响应方设备具有进行后续IKE可靠协商的能力,与第一阶段响应方设备进行主模式交换报文协商。具体能力协商过程在图5所示的实施例已经有所描述,在此不再赘述。
步骤804,第一阶段发起方设备向第一阶段响应方设备发送最后一个主模式交换报文。
步骤805,第一阶段响应方设备接收到第一阶段发起方设备发送的最后一个主模式交换报文后,建立第一阶段响应方设备本地IKE SA,并在该IKE SA下,向第一阶段发起方设备发送第一阶段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,第一阶段响应方设备接收到第一阶段发起方设备发送的最后一个野蛮模式交换报文后,建立第一阶段响应方设备本地IKE SA,并在该IKESA下,向第一阶段发起方设备发送第一阶段ACK报文或第二阶段发起协商报文,告知第一阶段发起方设备已经接收到最后一个野蛮模式交换报文。第一阶段发起方设备接收到该第一阶段ACK报文或第二阶段发起协商报文后,建立第一阶段发起方设备本地IKE SA,野蛮模式交换报文协商完成。
通过本实施例,可知本发明在网络状况不佳的情况下,如果IKE第一阶段协商的最后一个报文丢失或延迟发送,第一阶段发起方设备不会仅基于本地IKE SA使用单向IKE隧道传输数据,并且能够通过第一阶段响应方设备发送的第一阶段ACK报文或第二阶段发起协商报文获知第一阶段响应方设备是否收到第一阶段最后一个报文,如果没有收到第一阶段ACK报文或第二阶段发起协商报文则进行重新发送第一阶段最后一个报文,在最大限度上保证IKESA的可靠建立。
IKE第二阶段报文协商在具体应用当中为快速模式交换协商,本发明应用于快速模式交换协商的具体方法如图10所示,包括以下步骤:
步骤1001,第二阶段发起方设备与第二阶段响应方设备进行快速模式交换协商。
步骤1002,第二阶段发起方设备向第二阶段响应方设备发送最后一个快速模式交换协商报文。
步骤1003,第二阶段响应方设备接收到第二阶段发起方设备发送的最后一个快速模式交换协商报文后,建立本地IPsec SA,并在该IPsec SA下,向第二阶段发起方设备发送第二阶段ACK报文或根据IPsec协议加密的数据报文,告知第二阶段发起方设备已经接收到第二阶段发起方设备发送的第二阶段最后一个协商报文,第二阶段发起方设备建立第二阶段发起方设备IPsecSA,快速模式交换协商完成。
通过上述实施例,可知在网络状况不佳的情况下,如果IKE第二阶段协商的最后一个报文丢失或延迟发送,第二阶段发起方设备不会仅基于本地IPsec SA使用单向IPsec隧道传输数据,并且能够通过第二阶段响应方设备发送的第二阶段ACK报文获知第二阶段响应方设备是否收到第二阶段最后一个报文,如果没有收到第二阶段ACK报文则进行重新发送第二阶段最后一个报文,在最大限度上保证IPsec SA的可靠建立。
如图11所示,本发明基于上述方法提供一种IKE可靠报文协商的发起方设备A,包括:
报文发送模块1110,用于向响应方设备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发送的所述第二阶段协商报文。
所述报文发送模块1110还用于向所述响应方设备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协议加密的数据报文。
通过本实施例,可知本发明在网络状况不佳的情况下,如果IKE第一阶段协商的最后一个报文丢失或延迟发送,发起方不会仅基于本地IKE SA使用单向IKE隧道传输数据,并且能够通过响应方发送的ACK报文或第二阶段发起协商报文获知是否响应方是否收到第一阶段最后一个报文,如果没有收到ACK报文或第二阶段发起协商报文则进行重新发送第一阶段最后一个报文,在最大限度上保证IKE SA的可靠建立。并且在网络状况不佳的情况下,如果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报文或第二阶段发起协商报文则进行重新发送第一阶段最后一个报文,在最大限度上保证IKE SA的可靠建立。并且在网络状况不佳的情况下,如果IKE第二阶段协商的最后一个报文丢失或延迟发送,发起方不会仅基于本地IPsec SA使用单向IPsec隧道传输数据,并且能够通过响应方发送的ACK报文或IPsec协议加密的数据报文获知是否响应方是否收到第二阶段最后一个报文,如果没有收到ACK报文或IPsec协议加密的数据报文则进行重新发送第二阶段最后一个报文,在最大限度上保证IPsec SA的可靠建立。
如图12所示,本发明基于上述方法提供一种IKE可靠报文协商的系统,包括:
发起方设备1310,用于向响应方设备1320发送协商报文,当发送最后一个协商报文后,判断在预设周期内是否接收到所述响应方设备发送的响应报文,当判断结果为在所述预设周期内接收到所述响应方设备发送的响应报文时,立即建立SA,当判断结果为在所述预设周期内没有接收到所述响应方设备发送的响应报文时,不立即建立SA;
响应方设备1320,与所述发起方设备1310连接,用于当接收到所述发起方设备发送的最后一个协商报文后,向所述发起方设备发送所述响应报文。
通过本实施例,可知本发明在网络状况不佳的情况下,如果IKE第一阶段协商的最后一个报文丢失或延迟发送,发起方不会仅基于本地IKE SA使用单向IKE隧道传输数据,并且能够通过响应方发送的ACK报文或第二阶段发起协商报文获知是否响应方是否收到第一阶段最后一个报文,如果没有收到ACK报文或第二阶段发起协商报文则进行重新发送第一阶段最后一个报文,在最大限度上保证IKE SA的可靠建立。并且在网络状况不佳的情况下,如果IKE第二阶段协商的最后一个报文丢失或延迟发送,发起方不会仅基于本地IPsec SA使用单向IPsec隧道传输数据,并且能够通过响应方发送的ACK报文或IPsec协议加密的数据报文获知是否响应方是否收到第二阶段最后一个报文,如果没有收到ACK报文或IPsec协议加密的数据报文则进行重新发送第二阶段最后一个报文,在最大限度上保证IPsec SA的可靠建立。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (24)
1、一种因特网密匙交换IKE可靠报文协商的方法,应用于包括第一设备、第二设备的系统中,其特征在于,包括:
a、所述第一设备向所述第二设备发送最后一个协商报文后,判断在预设周期内是否接收到所述第二设备发送的响应报文;
b、如果判断结果为在所述预设周期内接收到所述第二设备发送的响应报文,所述第一设备立即建立安全联盟SA。
2、如权利要求1所述的方法,其特征在于,所述方法还包括:
c、如果判断结果为在所述预设周期内没有接收到所述第二设备发送的响应报文,所述第一设备不立即建立所述SA。
3、如权利要求2所述的方法,其特征在于,所述步骤c之后还包括:
所述第一设备重发所述最后一个协商报文,并记录重发次数;
当所述第一设备在预设重发次数内没有接收到所述第二设备发送的响应报文时,所述第一设备释放本地资源,并向所述第二设备发送取消协商报文;
当所述第一设备在预设重发次数内接收到所述第二设备发送的响应报文时,所述第一设备建立所述SA。
4、如权利要求1-3任一项所述的方法,其特征在于,所述IKE可靠报文协商包括第一阶段可靠报文协商和第二阶段可靠报文协商,当所述第一设备与第二设备处于第一阶段可靠报文协商时,所述第一设备向所述第二设备发送的所述最后一个协商报文为第一阶段最后一个协商报文,所述预设周期为第一预设周期,所述响应报文为第一阶段确认ACK报文或第二阶段发起协商报文,所述SA为IKE SA。
5、如权利要求4所述的方法,其特征在于,
当接收到所述第二设备发送的响应报文为第一阶段ACK报文时,所述步骤b之后还包括:
所述第一设备向所述第二设备发送第二阶段发起协商报文,
所述第二设备响应所述第一设备发送的第二阶段发起协商报文;
当接收到所述第二设备发送的响应报文为第二阶段发起协商报文时,所述步骤b之后还包括:
所述第一设备响应所述第二设备发送的所述第二阶段协商报文。
6、如权利要求4所述的方法,其特征在于,所述步骤a之前还包括:
所述第一设备与所述第二设备进行能力协商,具体包括:
所述第一设备向所述第二设备发送携带有所述第一设备能力的报文;
所述第二设备接收到所述携带有第一设备能力的报文后,判断自身是否具有与所述第一设备匹配的能力;
当所述第二设备具有与所述第一设备匹配的能力时,所述第二设备向所述第一设备发送携带有自身能力的反馈报文,所述第一设备接收到所述反馈报文后,与所述第二设备进行后续可靠报文协商;
当所述第二设备不具有与所述第一设备匹配的能力时,所述第二设备向所述第一设备发送未携带自身能力的反馈报文,所述第一设备接收到所述反馈报文后,与所述第二设备进行后续常规报文协商。
7、如权利要求6所述的方法,其特征在于,通过供应商标识VID承载所述第一设备或所述第二设备的能力,所述第一设备或所述第二设备携带所述VID,
当所述第一设备接收到所述第二设备发送的携带所述VID的反馈报文后,与所述第二设备进行后续可靠报文协商;
所述第一设备接收到所述第二设备发送的未携带所述VID的反馈报文后,与所述第二设备进行后续常规报文协商。
8、如权利要求1-3任一项所述的方法,其特征在于,所述IKE可靠报文协商包括第一阶段可靠报文协商和第二阶段可靠报文协商,当所述第一设备与第二设备处于第二阶段可靠报文协商时,所述第一设备向所述第二设备发送的最后一个协商报文为第二阶段最后一个协商报文,所述预设周期为第二预设周期,所述响应报文为第二阶段ACK报文或根据IPsec协议加密的数据报文,所述SA为网络互连协议安全联盟IPsec SA。
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;
响应方设备,与所述发起方设备连接,用于当接收到所述发起方设备发送的最后一个协商报文后,向所述发起方设备发送所述响应报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910136293A CN101527729A (zh) | 2009-05-05 | 2009-05-05 | 一种ike可靠报文协商的方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910136293A CN101527729A (zh) | 2009-05-05 | 2009-05-05 | 一种ike可靠报文协商的方法、设备及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101527729A true CN101527729A (zh) | 2009-09-09 |
Family
ID=41095422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910136293A Pending CN101527729A (zh) | 2009-05-05 | 2009-05-05 | 一种ike可靠报文协商的方法、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101527729A (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025742A (zh) * | 2010-12-16 | 2011-04-20 | 成都市华为赛门铁克科技有限公司 | 一种ike报文的协商方法和设备 |
CN102420770A (zh) * | 2011-12-27 | 2012-04-18 | 汉柏科技有限公司 | Ike报文协商方法及设备 |
CN102761553A (zh) * | 2012-07-23 | 2012-10-31 | 杭州华三通信技术有限公司 | IPSec SA协商方法及装置 |
CN102868522A (zh) * | 2012-09-12 | 2013-01-09 | 汉柏科技有限公司 | 一种ike协商异常的处理方法 |
CN103118017A (zh) * | 2013-01-21 | 2013-05-22 | 杭州华三通信技术有限公司 | 维护IKE SA的本端发送消息的MessageID的方法及装置 |
CN103392323A (zh) * | 2012-12-25 | 2013-11-13 | 华为技术有限公司 | 一种ipsec协商的方法、装置、设备和系统 |
CN103475645A (zh) * | 2013-08-23 | 2013-12-25 | 天津汉柏汉安信息技术有限公司 | 一种解决ike重复协商的方法 |
CN103547334A (zh) * | 2013-04-28 | 2014-01-29 | 华为技术有限公司 | 一种通道建立方法、基站及通道建立系统 |
CN104426737A (zh) * | 2013-08-30 | 2015-03-18 | 杭州华三通信技术有限公司 | 一种实现动态虚拟专用网络链路层通信的方法和装置 |
CN105812322A (zh) * | 2014-12-30 | 2016-07-27 | 华为数字技术(苏州)有限公司 | 因特网安全协议安全联盟的建立方法及装置 |
CN106169952A (zh) * | 2016-09-06 | 2016-11-30 | 杭州迪普科技有限公司 | 一种英特网密钥管理协议重协商的认证方法及装置 |
CN106656910A (zh) * | 2015-10-28 | 2017-05-10 | 网神信息技术(北京)股份有限公司 | Vpn网关的密钥的更新方法及系统 |
CN108270613A (zh) * | 2017-12-21 | 2018-07-10 | 华为技术有限公司 | 发送消息方法及网络设备 |
CN111835613A (zh) * | 2019-04-23 | 2020-10-27 | 厦门网宿有限公司 | 一种vpn服务器的数据传输方法及vpn服务器 |
-
2009
- 2009-05-05 CN CN200910136293A patent/CN101527729A/zh active Pending
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012079462A1 (zh) * | 2010-12-16 | 2012-06-21 | 成都市华为赛门铁克科技有限公司 | 一种ike报文的协商方法和设备 |
CN102025742A (zh) * | 2010-12-16 | 2011-04-20 | 成都市华为赛门铁克科技有限公司 | 一种ike报文的协商方法和设备 |
CN102420770B (zh) * | 2011-12-27 | 2014-03-12 | 汉柏科技有限公司 | Ike报文协商方法及设备 |
CN102420770A (zh) * | 2011-12-27 | 2012-04-18 | 汉柏科技有限公司 | Ike报文协商方法及设备 |
CN102761553A (zh) * | 2012-07-23 | 2012-10-31 | 杭州华三通信技术有限公司 | IPSec SA协商方法及装置 |
CN102868522A (zh) * | 2012-09-12 | 2013-01-09 | 汉柏科技有限公司 | 一种ike协商异常的处理方法 |
CN103392323B (zh) * | 2012-12-25 | 2016-09-28 | 华为技术有限公司 | 一种ipsec协商的方法和设备 |
CN103392323A (zh) * | 2012-12-25 | 2013-11-13 | 华为技术有限公司 | 一种ipsec协商的方法、装置、设备和系统 |
CN103118017B (zh) * | 2013-01-21 | 2016-02-03 | 杭州华三通信技术有限公司 | 维护IKE SA的本端发送消息的MessageID的方法及装置 |
CN103118017A (zh) * | 2013-01-21 | 2013-05-22 | 杭州华三通信技术有限公司 | 维护IKE SA的本端发送消息的MessageID的方法及装置 |
WO2014176718A1 (zh) * | 2013-04-28 | 2014-11-06 | 华为技术有限公司 | 一种通道建立方法、基站及通道建立系统 |
CN103547334A (zh) * | 2013-04-28 | 2014-01-29 | 华为技术有限公司 | 一种通道建立方法、基站及通道建立系统 |
CN103475645A (zh) * | 2013-08-23 | 2013-12-25 | 天津汉柏汉安信息技术有限公司 | 一种解决ike重复协商的方法 |
CN104426737B (zh) * | 2013-08-30 | 2018-01-12 | 新华三技术有限公司 | 一种实现动态虚拟专用网络链路层通信的方法和装置 |
CN104426737A (zh) * | 2013-08-30 | 2015-03-18 | 杭州华三通信技术有限公司 | 一种实现动态虚拟专用网络链路层通信的方法和装置 |
CN105812322A (zh) * | 2014-12-30 | 2016-07-27 | 华为数字技术(苏州)有限公司 | 因特网安全协议安全联盟的建立方法及装置 |
CN105812322B (zh) * | 2014-12-30 | 2019-11-12 | 华为数字技术(苏州)有限公司 | 因特网安全协议安全联盟的建立方法及装置 |
CN106656910A (zh) * | 2015-10-28 | 2017-05-10 | 网神信息技术(北京)股份有限公司 | Vpn网关的密钥的更新方法及系统 |
CN106656910B (zh) * | 2015-10-28 | 2019-11-22 | 网神信息技术(北京)股份有限公司 | Vpn网关的密钥的更新方法及系统 |
CN106169952A (zh) * | 2016-09-06 | 2016-11-30 | 杭州迪普科技有限公司 | 一种英特网密钥管理协议重协商的认证方法及装置 |
CN106169952B (zh) * | 2016-09-06 | 2019-05-07 | 杭州迪普科技股份有限公司 | 一种英特网密钥管理协议重协商的认证方法及装置 |
CN108270613A (zh) * | 2017-12-21 | 2018-07-10 | 华为技术有限公司 | 发送消息方法及网络设备 |
CN108270613B (zh) * | 2017-12-21 | 2021-07-16 | 华为技术有限公司 | 发送消息方法及网络设备 |
CN111835613A (zh) * | 2019-04-23 | 2020-10-27 | 厦门网宿有限公司 | 一种vpn服务器的数据传输方法及vpn服务器 |
CN111835613B (zh) * | 2019-04-23 | 2022-07-08 | 厦门网宿有限公司 | 一种vpn服务器的数据传输方法及vpn服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101527729A (zh) | 一种ike可靠报文协商的方法、设备及系统 | |
Vanhoef et al. | Key reinstallation attacks: Forcing nonce reuse in WPA2 | |
US8639929B2 (en) | Method, device and system for authenticating gateway, node and server | |
US20210007176A1 (en) | Wireless connection establishing methods and wireless connection establishing apparatuses | |
CN102946333B (zh) | 一种基于IPsec的DPD探测方法和设备 | |
CN104185176B (zh) | 一种物联网虚拟用户识别模块卡远程初始化方法及系统 | |
US8295488B2 (en) | Exchange of key material | |
CN103828414A (zh) | 安全网关通信 | |
CN101548503A (zh) | 为移动操作环境提供安全的应用程序间通信 | |
JP5877623B2 (ja) | 送信端末、受信端末および情報配信システム | |
Tiloca et al. | Axiom: DTLS-based secure IoT group communication | |
CN105656875A (zh) | 基于mptcp的主流连接建立方法及装置 | |
JP2003204349A (ja) | ノード装置及び通信制御方法 | |
CN102420770A (zh) | Ike报文协商方法及设备 | |
KR20170104180A (ko) | 전자 장치 및 전자 장치 간의 인증 수행 방법 | |
CN104601541A (zh) | 数据传输的方法、服务器和用户设备 | |
CN114698150A (zh) | 重新建立无线电资源控制连接 | |
CN102957704B (zh) | 一种确定mitm攻击的方法、装置及系统 | |
CN101427545A (zh) | 防篡改地建立密钥的方法和系统 | |
CN101227452B (zh) | 一种网络接入认证的方法及系统 | |
CN102025742A (zh) | 一种ike报文的协商方法和设备 | |
CN112350823B (zh) | 车载控制器间can fd通信方法 | |
CN105610577B (zh) | 一种防止IPSec VPN设备多隧道IKE协商失败的系统及方法 | |
Claycomb et al. | Extending Formal Analysis of Mobile Device Authentication. | |
CN105828330A (zh) | 一种接入方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20090909 |