一种报文处理方法和设备转让专利

申请号 : CN200910085451.9

文献号 : CN101621464B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杜祥宇

申请人 : 杭州华三通信技术有限公司

摘要 :

本发明提供了一种报文处理方法和设备,其中,该方法包括:步骤A,发送端将发送时间信息携带在数据报文中发送给接收端;步骤B,接收端接收所述数据报文,根据接收到该数据报文的接收时间信息和该数据报文中携带的发送时间信息对所述数据报文执行检查;其中,所述发送端和所述接收端的时间是同步的。采用本发明,大大提高了网络安全性。

权利要求 :

1.一种用于防重放检查的报文处理方法,其特征在于,该方法包括:

步骤A,发送端将发送时间信息携带在数据报文中发送给接收端;

步骤B,接收端接收所述数据报文,根据接收到该数据报文的接收时间信息和该数据报文中携带的发送时间信息对所述数据报文执行检查,所述根据接收到该数据报文的接收时间信息和该数据报文中携带的发送时间信息对所述数据报文执行检查包括:判断接收到所述数据报文的接收时间信息和所述数据报文携带的发送时间信息的差值是否在预设定的范围内,如果是,则确定所述数据报文通过检查;如果否,则确定所述数据报文未通过检查;

其中,所述发送端和所述接收端的时间是同步的;

步骤A和步骤B是在已确定发送端和接收端同时支持时效性检查后执行的,其中,确定发送端和接收端同时支持时效性检查包括:设置用于表示时效性检查的标识信息;发送端将自身支持的与时效性检查对应的标识信息发送给接收端;所述接收端接收所述标识信息,根据所述标识信息判断自身是否支持该标识信息对应的时效性检查,如果是,将自身支持的与时效性检查对应的标识信息发送给所述发送端;当所述发送端接收到所述接收端发送的标识信息,并判断该接收的标识信息和自身发送的标识信息一致时,确定发送端和接收端同时支持时效性检查。

2.根据权利要求1所述的方法,其特征在于,该方法进一步包括:对通过检查的数据报文作提交给上层应用的处理;对未通过检查的数据报文做丢弃处理。

3.根据权利要求1所述的方法,其特征在于,所述确定发送端和接收端同时支持时效性检查的操作发生在IKE协商的第一阶段。

4.根据权利要求1所述的方法,其特征在于,若所述发送端和所述接收端不同时支持网络时间协议NTP,则所述发送端根据自身的本地时间信息和所述接收端的本地时间信息调整本地时间,与所述接收端时间同步。

5.根据权利要求4所述的方法,其特征在于,所述发送端根据自身的本地时间信息和所述接收端的本地时间信息调整本地时间包括:步骤A11,发送端将本地时间信息T1携带在第一时间载荷报文中发送给接收端;步骤A12,接收端将当前接收所述第一时间载荷报文的本地时间信息T2和第一时间载荷报文中的T1携带在第二时间载荷报文中发送给发送端;步骤A13,发送端接收第二时间载荷报文,并记录当前接收到该第二时间载荷报文的本地时间信息T3;步骤A14,发送端判断T1和T3之间的差值是否大于预设值,如果否,则根据T1、T2和T3计算发送端和接收端之间的时间偏移量;发送端根据计算的时间偏移量调整本地时间。

6.根据权利要求5所述的方法,其特征在于,所述第一时间载荷报文和所述第二时间载荷报文中都包含用于承载报文类型信息的字段;所述步骤A11进一步包括:在第一时间载荷报文中用于承载报文类型信息的字段内设置所述第一时间载荷报文对应的报文类型信息值;

所述步骤A12包括:步骤A121,接收端接收第一时间载荷报文,记录当前接收到第一时间载荷报文的本地时间信息T2;根据该接收的第一时间载荷报文中的报文类型信息值确定第一时间载荷报文的类型;构建与该确定出的类型相同的第二时间载荷报文;步骤A122,接收端将接收的第一时间载荷报文中的T1和本地时间信息T2携带在第二时间载荷报文中发送给发送端。

7.根据权利要求6所述的方法,其特征在于,所述T1和T2为N位;所述第一时间载荷报文和所述第二时间载荷报文都包含用于承载时间信息的大小为2N位的字段;

所述步骤A11中发送端将本地时间信息T1携带在第一时间载荷报文中发送给接收端包括:发送端将本地时间信息T1填入到第一时间载荷报文中用于承载时间信息的字段中的前N位,填入0到该字段中的后N位;将完成填入操作的第一时间载荷报文发送给接收端;

所述步骤A122包括:接收端将接收的第一时间载荷报文中的T1和当前接收所述第一时间载荷报文的本地时间信息T2分别填入到第二时间载荷报文中用于承载时间信息的字段中的前N位和后N位,将完成填入操作的第二时间载荷报文发送给发送端。

8.根据权利要求1至7任一所述的方法,其特征在于,步骤A中所述发送端发送的数据报文中还携带序列号信息;

所述步骤B中在根据接收到该数据报文的接收时间信息和该数据报文中携带的发送时间信息对所述数据报文执行检查之前,进一步包括:根据该数据报文携带的序列号判断当前是否接受该数据报文,如果是,则继续执行根据接收到该数据报文的接收时间信息和该数据报文中携带的发送时间信息对所述数据报文执行检查的操作;否则,丢弃该数据报文。

9.根据权利要求1所述的方法,其特征在于,所述数据报文包含认证报头AH报文和用于提供报文鉴别功能的封装安全负载ESP报文两者中的任意一种,或者两者组合;

若所述数据报文包含AH报文和所述ESP报文,则发送端将发送时间信息携带在该数据报文中的AH报文和所述ESP报文两者中的一个发送给接收端。

10.根据权利要求9所述的方法,其特征在于,当步骤A中的发送时间信息需要携带在AH报文中时,则发送端根据AH报文中的保留字段的大小确定发送时间信息的取值;将该取值携带在AH报文中的保留字段中发送给接收端;

当步骤A中的发送时间信息需要携带在所述ESP报文中时,则发送端确定发送时间信息的取值,将该取值携带在ESP报文的Padding字段或者PayloadData字段中发送给接收端。

11.一种用于防重放检查的报文处理方法中的发送端设备,其特征在于,所述发送端设备包括:确定单元、获取单元和发送单元;其中,所述确定单元用于确定所述发送端设备和与自身时间同步的接收端设备是否同时支持时效性检查;其中,所述确定所述发送端设备和接收端设备是否同时支持时效性检查包括:设置用于表示时效性检查的标识信息;发送端设备将自身支持的与时效性检查对应的标识信息发送给接收端设备;所述接收端设备接收所述标识信息,根据所述标识信息判断自身是否支持该标识信息对应的时效性检查,如果是,将自身支持的与时效性检查对应的标识信息发送给所述发送端设备;当所述发送端设备接收到所述接收端发送的标识信息,并判断该接收的标识信息和自身发送的标识信息一致时,确定发送端设备和接收端设备同时支持时效性检查;

所述获取单元用于获取当前发送数据报文的发送时间信息;

所述发送单元在接收到所述确定单元的确定结果为是时,将所述获取单元获取的发送时间信息携带在数据报文中发送给所述接收端设备,由所述接收端设备根据接收到该数据报文的接收时间信息和该数据报文中携带的发送时间信息对所述数据报文执行检查,具体包括:判断接收到所述数据报文的接收时间信息和所述数据报文携带的发送时间信息的差值是否在预设定的范围内,如果是,则确定所述数据报文通过检查;如果否,则确定所述数据报文未通过检查;

其中,所述发送端设备和接收端设备时间同步。

12.根据权利要求11所述的发送端设备,其特征在于,若所述发送端设备和所述接收端设备中有一个不支持网络时间协议NTP,该发送端设备还包括时间调整单元;

所述时间调整单元用于调整本地时间,与接收端设备时间同步;其中,所述时间调整单元包括:

处理子单元,用于将本地时间信息T1携带在第一时间载荷数据报文中发送给接收端设备;以及接收所述接收端设备发送的携带了该接收端设备接收所述第一时间载荷报文的本地时间信息T2和本地时间信息T1的第二时间载荷报文,并记录当前接收到该第二时间载荷报文的本地时间信息T3;其中,所述第一时间载荷报文与第二时间载荷报文的类型相同;

判断子单元,用于判断T1和T3之间的差值是否大于预设值,如果否,则根据T1、T2和T3计算与所述接收端设备之间的时间偏移量;

时间调整子单元,用于根据计算的时间偏移量调整本地时间,与接收端设备时间同步。

13.一种用于防重放检查的报文处理方法中的接收端设备,其特征在于,所述接收端设备与发送端设备同时支持时效性检查,其中,所述接收端设备与发送端设备通过以下操作确定同时支持时效性检查:设置用于表示时效性检查的标识信息;发送端设备将自身支持的与时效性检查对应的标识信息发送给接收端设备;所述接收端设备接收所述标识信息,根据所述标识信息判断自身是否支持该标识信息对应的时效性检查,如果是,将自身支持的与时效性检查对应的标识信息发送给所述发送端设备;当所述发送端设备接收到所述接收端设备发送的标识信息,并判断该接收的标识信息和自身发送的标识信息一致时,确定发送端设备和接收端设备同时支持时效性检查;

所述接收端设备包括:接收单元和处理单元;其中,

所述接收单元用于接收与自身时间同步的发送端设备发送的携带了发送时间信息的数据报文;

所述处理单元用于提取出所述接收单元接收的数据报文所携带的发送时间信息,根据所述接收单元当前接收到所述数据报文的接收时间信息和该数据报文中携带的发送时间信息对该数据报文执行检查,具体为:判断接收到所述数据报文的接收时间信息和所述数据报文携带的发送时间信息的差值是否在预设定的范围内,如果是,则确定所述数据报文通过检查;如果否,则确定所述数据报文未通过检查;

14.根据权利要求13所述的接收端设备,其特征在于,所述处理单元包括:

提取子单元,用于提取出所述接收单元接收的数据报文所携带的发送时间信息;

判断子单元,用于判断所述接收单元当前接收到所述数据报文的接收时间信息和所述发送时间信息的差值是否在预设定的范围内;

处理子单元,用于在接收到所述判断子单元的判断结果为否时,丢弃所述数据报文;在接收到所述判断子单元的判断结果为是时,将该数据报文提交给上层应用处理。

说明书 :

一种报文处理方法和设备

技术领域

[0001] 本发明涉及网络通信技术,特别涉及一种报文处理方法和设备。 背景技术
[0002] 在网络通信技术中,internet协议安全(Internet Protocol Security,IPSec)两个主流版本即IPSecV2和IPSecV3中,其都在认证报头(AH:AuthenticationHeader)协议和封装安全负载(ESP:Encapaulating Security Payload)协议中支持防重放检查,这能够避免接收端针对已经接收到过的数据报文(其中,该数据报文具体为AH协议中的AH报文或者ESP协议中的ESP报文)不会被重复提交到上层应用处理。
[0003] 具体地,上述防重放检查的能力可通过在发送端发送的数据报文中设置序列号(sequence number)字段来体现,具体地,该防重放检查的操作包括:发送端在发送数据报文时,先在该待发送的数据报文中设置序列号字段,之后,在该设置的序列号字段中填入该待发送的数据报文的序列号;之后,将该数据报文发送给接收端;接收端接收到数据报文后,从该数据报文中的序列号字段中提取出序列号,并判断该提取出的序列号是否与滑动窗口记录的序列号相同,如果是,确定当前接收的数据报文与已存储的数据报文相同,即当前接收的数据报文为重复报文,则无需接受该数据报文,如此,可丢弃该接收的数据报文;否则,确定该当前接收的数据报文不是重复报文,接受该数据报文,即当前接收的数据报文通过了防重放检查,之后,存储该提取出的序列号,并将该接收的数据报文提交到上层应用处理。
[0004] 可见,通过上述操作,能够保证每个已经收到过的数据报文不会被接收端重复提交到上层应用。但是,现有提供的防重放检查操作并不能防止数据报文 被攻击者截获后的延迟发送;比如,攻击者在发送端发送数据报文给接收端的过程中截获该数据报文,之后,提交该延迟的被截获的数据报文给接收端,当接收端接收到该数据报文后,采用现有的防重放检查操作,就有可能使攻击者提交的数据报文通过防重放检查,这样,就大大降低了网络的安全性。

发明内容

[0005] 有鉴于此,本发明提供了一种报文处理方法和设备,以便提高网络的安全性。 [0006] 本发明提供的技术方案是这样实现的:
[0007] 一种报文处理方法,包括:
[0008] 步骤A,发送端将发送时间信息携带在数据报文中发送给接收端; [0009] 步骤B,接收端接收所述数据报文,根据接收到该数据报文的接收时间信息和该数据报文中携带的发送时间信息对所述数据报文执行检查;
[0010] 其中,所述发送端和所述接收端的时间是同步的。
[0011] 一种发送端设备,所述发送端设备包括:确定单元、获取单元和发送单元;其中, [0012] 所述确定单元用于确定自身和与自身时间同步的接收端设备是否同时支持时效性检查;
[0013] 所述获取单元用于获取当前发送数据报文的发送时间信息;
[0014] 所述发送单元在接收到所述确定单元的确定结果为是时,将所述获取单元获取的发送时间信息携带在数据报文中发送给所述接收端设备。
[0015] 一种接收端设备,该接收端设备包括:接收单元和处理单元;其中, [0016] 所述接收单元用于接收与自身时间同步的发送端设备发送的携带了发送时间信息的数据报文;
[0017] 所述处理单元用于提取出所述接收单元接收的数据报文所携带的发送时间信息,根据所述接收单元当前接收到所述数据报文的接收时间信息和该数据报文中携带的发送时间信息对该数据报文执行检查。
[0018] 综上所述,本发明实施例提供的一种报文处理方法、发送端设备和接收端设备,其中,该方法包括:步骤A,发送端将发送时间信息携带在数据报文中发送给接收端;步骤B,接收端接收所述数据报文,根据接收到该数据报文的接收时间信息和该数据报文中携带的发送时间信息对所述数据报文执行检查;其中,所述发送端和所述接收端的时间是同步的。这样,相比于现有技术在防重放检查时,只依赖于数据报文携带的序列号,本发明通过时间信息检查数据报文,更能提高网络的安全性。比如现有技术在AH报文或者ESP报文携带序列号,如此,当攻击者截获该AH报文或者ESP报文时,采用现有提供的防重放检查,若攻击者提交的该截获的,并且具有一定时间延迟的AH报文或者ESP报文中的序列号与已存储的序列号不同,则使该AH报文或者ESP报文通过检查,这大大降低了网络的安全性;由于攻击者在截获报文后,再发送该截获的报文,这样,相比正常到达的报文,该攻击者提交的报文相比于正常传输的报文而言具有一定的时间延迟,因此,本发明从时间信息角度考虑,若该AH报文或者ESP报文携带的发送时间信息与当前接收该AH报文或者ESP报文的时间信息的差值不在预设定的范围内,则丢弃该接收的AH报文或者ESP报文,这避免了攻击者通过截获并提交该延迟的数据报文达到干扰正常的通信的缺陷,大大提高了网络的安全性。 附图说明
[0019] 图1为本发明实施例提供的方法的基本流程图;
[0020] 图2为本发明实施例提供的方法的详细流程图;
[0021] 图3为本发明实施例提供的确定发送端和接收端是否同时支持时效性检查的流程图;
[0022] 图4为本发明实施例提供的发送端和接收端时间同步的流程图; [0023] 图5a为本发明实施例中AH报文的示意图;
[0024] 图5b为本发明实施例中ESP报文的示意图;
[0025] 图6为本发明实施例提供的发送端设备的结构图;
[0026] 图7为本发明实施例提供的接收端端设备的结构图。
[0027] 图8为本发明实施例提供的通知载荷报文的格式示意图。

具体实施方式

[0028] 由于现有技术在防重放检查时,只依赖于数据报文携带的序列号,这样,若攻击者在发送端发送数据报文过程中截获了该数据报文,之后,又提交了该截获的数据报文,若攻击者提交的该截获的数据报文中的序列号与已存储的序列号不同,则使该AH报文或者ESP报文通过检查,这大大降低了网络的安全性,进而影响了正常通信。为了解决该问题,本发明实施例可在发送端发送数据报文时将发送时间信息携带在该数据报文中,由于攻击者在截获报文后,再发送该截获的报文,这样,相比正常到达的报文,该攻击者提交的报文相比于正常传输的报文而言具有一定的时间延迟,如此,接收端根据当前接收到数据报文的时间信息和该数据报文中携带的发送时间信息检查该数据报文,其中,这种通过时间信息检查数据报文的操作可称为时效性检查操作。
[0029] 为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
[0030] 参见图1,图1为本发明实施例提供的方法的基本流程图。如图1所示,该流程可包括以下步骤:
[0031] 步骤101,发送端将发送时间信息携带在数据报文中发送给接收端。 [0032] 这里,发送时间信息具体可为发送端当前发送数据报文的时间信息中的全部位或者其中的若干位,本发明实施例并不具体限定。
[0033] 步骤102,接收端接收发送端发送的数据报文,根据接收到该数据报文的接收时间信息和该数据报文中携带的发送时间信息对该数据报文执行检查。
[0034] 这里,步骤102中根据接收到该数据报文的接收时间信息和该数据报文中携带的发送时间信息对该数据报文执行检查具体可包括:判断接收到该数据报文的接收时间信息和接收到的数据报文中所携带的发送时间信息的差值是否在预设定的范围内,如果是,则确定该数据报文通过检查;如果否,则确定数据报文未通过检查。其中,预设定的范围与发送端和接收端之间的时间基准偏差、以及网络延迟有关,本实施例中,该预设定的范围可为几十毫秒至几百毫秒,本发明实施例不进行具体限定。并且,该预设定的范围可基于接收端单方策略行为设定,即可省略就该预设定的范围与发送端协商的操作。 [0035] 优选地,本实施例中,针对通过检查的数据报文,可作提交到上层应用处理。具体操作与现有技术类似,这里不再赘述。而对未通过检查的数据报文,则执行丢弃处理。 [0036] 如此,实现了本发明实施例提供的报文处理方法,该方法并不依赖于数据报文携带的序列号,因此,能够解决现有技术中使攻击者提交的时间具有一定延迟的数据报文通过防重放检查而降低防网络安全性的技术问题,进而也提高了防重放检查的能力。 [0037] 以上是对本发明实施例提供的方法进行了简单描述,下面结合具体实施例对本发明实施例提供的方法进行详细描述。
[0038] 通常,在通信双方交互数据报文之前,通信双方之间须先在如何交换和保护信息方面建立一个契约,该契约称为安全关联(SA:SecurityAssociation,)。其中,SA可用手工建立,或者通过IKE协商建立。其中,手工建立的SA在建立好后,一般不会改变,如此,手工建立的SA的生存时间为永久。
[0039] 而现有技术在执行防重放检查时,完全依赖于数据报文中的序列号,其中,数据报文中的序列号为一个预设范围内的序列号,并且各个数据报文中的序列号不可重复,如此,就会出现预设范围内的序列号耗尽的情况。而手工建立的SA的生存时间为永久,如此,当序列号耗尽时现有技术中的防重放检查操作就不能在手工建立的SA中正常使用,这大大降低了网络安全性。因此,可以看出,现有技术中的防重放检查操作不能适用于手工建立的SA场景中。
[0040] 本发明实施例提供的方法中由于不像现有技术完全依赖于数据报文中的序列号,而是利用时间信息来对数据报文进行时效性检查,如此,就不会出现现有技术中序列号耗尽而导致防重放操作不能在手工建立的SA中正常使用的问题,相比于现有技术,本发明实施例提供的方案的应用更加广泛。因此,可以得到,本发明实施例提供的方法可以适用于手工建立的SA场景中,也可适用于IKE协商建立的SA场景中。
[0041] 下面以IKE协商建立的SA场景为例说明本发明实施例提供的流程。 [0042] 参见图2,图2为本发明实施例提供的方法的详细流程图。如图2所示,该流程可包括以下步骤:
[0043] 步骤201,确定发送端和接收端同时支持时效性检查,若已确定,执行步骤202;否则,按照现有的IKE协商操作执行。
[0044] 这里,IKE协商操作主要包括两个阶段,即第一阶段和第二阶段,其中,第一阶段为IKE SA的协商,第二阶段为IPSec SA的协商。步骤201中确定发送端和接收端同时支持时效性检查的操作发生在IKE协商操作中的第一阶段。其中,确定发送端和接收端是否同时支持时效性检查的操作可参见图3所示。
[0045] 步骤202,判断发送端和接收端是否同时支持网络时间协议,如果是,执行步骤204,否则,执行步骤203。
[0046] 这里,网络中的设备通常都支持网络时间协议(NTP:Network TimeProtocol),其中,NTP的功能是使得全网中各个设备的时间精确同步,即使没有精准时钟源的情况,发送端和接收端之间的时间同步也能达到毫秒级。NTP协议中,NTP时间信息的大小为64位(bits),其中,前32bits为秒的整数部分,后32bits为秒的小数部分。 [0047] 当然,若发送端和接收端不同时支持NTP,比如,发送端和接收端中有一个不支持NTP;或者发送端和接收端支持时钟异步,则应执行步骤203。
[0048] 步骤203,使发送端和接收端的时间同步。之后,执行步骤204. [0049] 这里,步骤203主要在发送端和接收端不同时支持NTP时所提供的一 种时间调整操作,以使发送端和接收端达到一个精度相对比较低的时间同步。具体可参见图4所示的同步操作。
[0050] 需要说明的是,步骤201中在确定发送端和接收端同时支持时效性检查后,后续若发送端发送数据报文,则都可一劳永逸地执行步骤204,即将当前发送的数据报文的时间信息携带在该数据报文中发送给接收端,也就是说,本发明实施例中确定发送端和接收端同时支持时效性检查的操作并非每发送一次数据报文都需要执行该确定操作,其可仅执行一次即可。
[0051] 步骤204,发送端将发送时间信息携带在数据报文中发送给接收端。 [0052] 这里,发送时间信息为发送端当前发送数据报文的时间信息,具体可有多种实现形式,比如可为时间戳或者时间点等,本发明实施例并不具体限定。若发送端和接收端同时支持NTP,则发送时间信息具体可为发送端当前发送数据报文的NTP时间信息;若发送端和接收端不同时支持NTP,则发送时间信息具体可为发送端在调整时间,与接收端时间同步后,发送数据报文的时间信息。
[0053] 通常,时效性检查中,亚秒级就已足够精确,因此,本实施例中的发送时间信息的刻度范围可为亚秒或者毫秒,具体可与SA的生存时间和网络延迟的允许范围有关。 [0054] 优选地,步骤204中发送的数据报文可用IPsec封装。如此,本实施例中该数据报文具体可包含AH报文和用于提供报文鉴别功能的ESP报文;或者本实施例中该数据报文为AH报文;或者本实施例中该数据报文为用于提供报文鉴别功能的ESP报文。在IPsec技术中,ESP报文可用于提供机密性功能,和/或提供报文鉴别功能,本实施例中,若数据报文包含ESP报文,或者数据报文为ESP报文,则需要该ESP报文能够提供报文鉴别功能;具体地,报文鉴别功能主要是用于保证报文的完整性,防止传输过程中报文被篡改,确保发出的报文和接收的报文一致。而AH报文本身可提供报文鉴别功能,即在通信双方之间交互AH报文的过程中,若AH报文被攻击者截获并修改,则接收端在接收到AH报文后,由于AH报文自身提供报文鉴别功 能,可使接收端获知该AH报文被修改,从而大大提高了网络安全性。 [0055] 若发送时间信息为NTP时间信息,由于NTP时间信息的大小为64位;当步骤204中的发送时间信息需要携带在AH报文中,其中,AH报文的格式如图5a所示,从图5a中可以看出,AH报文有一个16位的保留字段未使用,若利用AH报文中未使用的保留字段承载发送时间信息,可根据当前所要求的发送时间信息的刻度范围从当前NTP时间信息中选择出16位作为发送时间信息,具体是作为发送时间信息的取值,比如,可将当前NTP时间信息中整数部分中的最低8位和小数部分中的最高8位确定为发送时间信息(具体是确定为发送时间信息的取值),或者其他方式等,本发明实施例并不具体限定。需要说明的是,本发明实施例也可利用AH报文中的其他字段来承载发送时间信息,比如,在AH报文中的序列号字段不承载序列号时,可将AH报文中的序列号字段和保留字段结合在一起提供发送时间信息,或者对AH报文中的某一个字段重新进行定义,以便将发送时间信息插入到该字段中等,因此,上述只是一种举例,并不用来限定本发明实施例的应用。
[0056] 若步骤204中的发送时间信息需要携带在用于提供报文鉴别功能的ESP报文中,其中,该ESP报文的格式可如图5b所示,从图5b中可以看出,虽然ESP报文中没有保留字段,但是,也可在ESP报文中携带发送时间信息,其中,在ESP报文中携带发送时间信息具体实现时可有多种方式,比如,在不改变ESP报文的前提下,利用该报文中的Padding字段承载发送时间信息;或者,对该ESP报文中的Payload Data字段重新定义,以便将发送时间信息承载在Payload Data的头部等,因此,上述只是一种举例,并不用来限定本发明实施例的应用。并且,若发送时间信息为NTP时间信息,该ESP报文中用于承载发送时间信息的字段可以容纳64位的NTP时间信息;当然,考虑到本实施例实现的简便和有效,可利用Padding字段中的N位来表示发送时间信息,其中,N小于等于64,并且,N的取值可有多种形式,比如,N为16或者为其他值;若N为16,则可根据当前所要求的发送时间信息的刻度范围从当前NTP时间信息中选择出16位,比如,将当前NTP 时间信息中整数部分中的最低8位和小数部分中的最高8位确定为发送时间信息的取值,或者直接将整数部分中的最低10位和小数部分中的最高6位确定为发送时间信息的取值等,本发明实施例并不具体限定。 [0057] 步骤205,接收端从接收的数据报文中提取出发送时间信息,并判断接收到该数据报文的接收时间信息和提取出的发送时间信息的差值是否在预定的时间范围内,如果是,执行步骤206;否则,执行步骤207。
[0058] 这里,若发送时间信息为发送端当前发送数据报文的时间信息,则相应地,本步骤中的接收时间信息具体为接收端当前接收到数据报文的时间信息;若发送时间信息为发送端当前发送数据报文的时间信息中的若干位,则相应地,本步骤中的接收时间信息具体为接收端当前接收到数据报文的时间信息中的若干位。
[0059] 若上述数据报文为AH报文,则本步骤可直接从该AH报文中提取发送时间信息;若上述数据报文为ESP报文,如果该ESP报文还用于提供机密性,因此,接收端在接收到ESP报文后,还需对该ESP报文解密,之后,从该ESP报文中提取发送时间信息。 [0060] 本实施例中,由于步骤205中的判断接收时间信息和提取出的发送时间信息的差值是否在预定的时间范围内是接收端单方的行为,因此,预定的时间范围不需要与发送端协商。通常,该预定的时间范围与发送端和接收端之间的时间基准偏差有关。 [0061] 需要说明的是,上述步骤204和步骤205具体可为本发明实施例提供的时效检查操作。
[0062] 步骤206,将接收的数据报文提交到上层应用处理。
[0063] 这里,若接收时间信息和提取出的发送时间信息的差值在预定的时间范围内,则可确定当前接收的数据报文通过了检查,如此,可将该数据报文提交到上层应用处理。 [0064] 步骤207,丢弃该接收的数据报文。
[0065] 这里,若接收时间信息和提取出的发送时间信息的差值不在预定的时间 范围内,则可确定当前接收的数据报文未通过检查,如此,进一步证明,该接收的数据报文可能为攻击者发送的数据报文,为保证网络系统的安全,可丢弃该数据报文。
[0066] 需要说明的是,为进一步提高网络安全,则在步骤204发送数据报文时,也可在该发送的数据报文中携带对应的序列号,即步骤204可更换为:发送端将发送时间信息和对应的序列号携带在数据报文中发送给接收端。如此,步骤205替换为:接收端从接收的数据报文中提取出发送时间信息和序列号,并根据该序列号判断出是否可接受该数据报文,当判断结果为是时,继续判断接收时间信息和提取出的发送时间信息的差值是否在预定的时间范围内,如果是,执行步骤206;否则,执行步骤207;当判断结果为否时,丢弃该接收的数据报文。其中,根据序列号判断是否可接受数据报文的操作和现有技术类似,这里不再赘述。
[0067] 如此,实现了本发明实施例提供的数据报文处理的详细流程。 [0068] 下面对本发明实施例提供的发送端确定自身和接收端是否同时支持时效性检查的操作流程进行描述。
[0069] 参见图3,图3为本发明实施例提供的确定发送端和接收端是否同时支持时效性检查的流程图。其中,时效性检查可通过对应的标识信息来表示。如图3所示,由于确定发送端和接收端是否同时支持时效性检查的操作发生在IKE协商操作中的第一阶段,因此,本发明实施例以确定发送端和接收端是否同时支持时效性检查的操作在IKE协商的前两个协商报文中完成为例。具体可如图3所示,该流程可包括以下步骤:
[0070] 步骤301,若发送端支持时效性检查,则发送端将其支持的时效性检查对应的标识信息携带在第一个IKE协商报文中发送给接收端。
[0071] 这里,标识信息具体实现时可有多种实现形式,比如可为预设值,或者为对预设定的字符串执行MD5运算而得到的散列值等,本发明实施例并不具体限定。 [0072] 步骤302,接收端从接收的第一个IKE协商报文中提取出标识信息,并 判断自身是否存储了与该接收的标识信息相同的标识信息,如果是,执行步骤304;否则,执行步骤303。
[0073] 步骤303,接收端不将标识信息携带在第二个协商报文中发送给发送端。如此,也可确定发送端与接收端不同时支持时效性检查。结束流程。
[0074] 步骤304,接收端将自身支持的与时效性检查对应的标识信息携带在第二个协商报文中发送给接收端。之后,执行步骤305。
[0075] 步骤305,若发送端接收到接收端发送的标识信息,并判断该接收的标识信息和自身发送的标识信息是否一致,如果是,确定发送端和接收端同时支持时效性检查;否则,确定发送端和接收端不同时支持时效性检查。
[0076] 需要说明的是,如果步骤301中发送端发送的第一个协商报文中没有携带发送端支持的时效性检查对应的标识信息,那么接收端即使支持该时效性检查,也不会将该时效性检查对应的标识信息携带在第二个协商报文中发送给发送端。
[0077] 还需要说明的是,图3中发送端确定自身和接收端是否同时支持时效性检查的操作是以发生在IKE协商阶段的前两个IKE协商报文中执行。优选地,该操作也可应用于IKE协商中第一阶段的其他IKE协商报文中,本发明实施例并不具体限定。
[0078] 下面对本发明实施例提供的使发送端和接收端的时间同步的操作进行描述。 [0079] 参见图4,图4为本发明实施例提供的发送端和接收端时间同步的流程图。由于本实施例中,发送端和接收端并不同时支持NTP,因此,发送端和接收端不可根据NTP进行时间同步,具体地,本实施例中,发送端可根据自身的本地时间信息和接收端的本地时间信息调整本地时间,与接收端时间同步,如图4所示,该流程可包括以下步骤: [0080] 步骤401,发送端构造时间载荷报文。
[0081] 这里,步骤401中的时间载荷报文至少包含用于承载报文类型信息的字段和用于承载时间信息的字段。优选地,本实施例中时间载荷报文的格式可与RFC2408定义的通知(notification)载荷报文的格式类似。其中,通知载荷报文的格式如图8所示。
[0082] 本实施例中时间载荷报文中的用于承载时间信息的字段与通知载荷报文中的通知数据字段(Notification Data)对应;时间载荷报文中的用于承载报文类型信息的字段与通知载荷报文中的通知信息类型(Notify MessageType)字段相对应,其余字段可类似。 [0083] 优选地,时间载荷报文中用于承载报文类型信息的字段内可以用表示当前发送的时间载荷报文的报文类型的信息值标识。
[0084] 步骤402,发送端将本地时间信息time1携带在时间载荷报文中用于承载时间信息的字段内发送给接收端。
[0085] 这里,时间载荷报文中用于承载时间信息的字段的大小与该发送端发送的时间信息的大小有关,具体地,若发送端发送的时间信息的大小为N位,则时间载荷报文中用于承载时间信息的字段的大小为2N位。比如,发送端要发送的时间信息time1的大小与NTP时间信息的大小相同,为64位,则该字段的大小至少为2*64=128位。这里,该字段的大小之所以为发送端后续要发送的时间信息的大小的2倍,是为了便于实现接收端后续反馈time1和自身接收到time1的本地时间信息time2给发送端。
[0086] 本实施例中假如发送端要发送的时间信息time1的大小为64位,时间载荷报文中用于承载时间信息的字段的大小为2*64=128位,则步骤402可 为:发送端将time1填入到该字段的前64位,由于现在还未有接收端的时间信息,因此,将该字段中的后64位全部填入0,之后,将完成填入操作的时间载荷报文发送给接收端。
[0087] 步骤403,接收端接收到发送端发送的时间载荷报文后,根据该接收的时间载荷报文中承载报文类型信息的字段中的信息值确定该时间载荷报文的类型。 [0088] 步骤404,接收端立即构建与该确定出的类型相同的另一时间载荷报文;将接收的时间载荷报文中的Time1和自身当前所处的本地时间信息time2分别填入到另一时间载荷报文中用于承载时间信息的字段中的前N位和后N位。
[0089] 这里,接收端发送的时间载荷报文和接收端发送的时间载荷报文类型相同,但并不是同一个。具体地,假如步骤402中发送的时间载荷报文中用于承载时间信息的字段的大小为2*64=128位,则步骤404中具体可包括:接收端立即构建一个与该接收的报文同类型的另一时间载荷报文,其中,该时间载荷报文中用于承载时间信息的字段的大小也为2*64=128位;并将接收的时间载荷报文中携带的time1填充到该构建的时间载荷报文中用于承载时间信息的字段中的前64位,将自身当前所处的本地时间信息time2填充到该字段中的后64位。
[0090] 步骤405,发送端记录当前接收到接收端发送的时间载荷报文的本地时间信息time3,并判断T1和T3之间的差值是否大于预设值,如果是,发送端重新返回上述步骤401;否则,执行步骤406。
[0091] 步骤406,发送端根据time3、接收的另一时间载荷报文中所携带的time1和time2计算和接收端之间的时间偏移量Time data。
[0092] 这里,根据time3、接收的时间载荷报文中所携带的time1和time2计算和接收端之间的时间偏移量可按照下式进行:
[0093] 时间偏移量=(time1+time3)/2-time2。
[0094] 步骤407,发送端根据步骤406计算出的时间按偏移量调整本地时间。 [0095] 如此,通过上述步骤实现了发送端和接收端之间的时间同步。 [0096] 需要说明的是,上述考虑到本发明实施例的简便,本实施例仅执行了单方的时间调整,即仅发送端调整了本地时间;优选地,本实施例中,接收端也按照发送端调整时间的操作相应调整本地时间,这里不再赘述。
[0097] 还需要说明的是,上述发送端在调整本地时间后,并非一直沿用该调整后的时间,其还可定时重新按照上述图4所示的操作调整时间,这样,能够保证发送端和接收端的时间同步的精确度更高。
[0098] 上述对本发明实施例提供的方法进行了详细描述,下面结合具体实施例对本发明实施例提供的装置进行描述。
[0099] 具体实现时,发送端设备可有多种实现形式,参见图6,图6为本发明实施例提供的发送端设备的结构图。如图6所示,该发送端设备包括:获取单元601、确定单元602和发送单元603。
[0100] 其中,获取单元601用于获取当前发送数据报文的发送时间信息; [0101] 确定单元602用于在确定自身和与自身时间同步的接收端设备是否同时支持时效性检查;
[0102] 发送单元603在接收到确定单元602的确定结果为是时,将所述获取单元获取的发送时间信息携带在数据报文中发送给接收端设备。
[0103] 优选地,若发送端设备和接收端设备中有一个不支持NTP,该发送端设备还包括时间调整单元604。
[0104] 其中,时间调整单元604用于调整本地时间,与接收端设备时间同步; [0105] 获取单元601用于在时间调整单元604完成调整本地时间后,获取当前发送数据报文的发送时间信息。
[0106] 优选地,如图6所示,时间调整单元604可包括:处理子单元6041、判断子单元6042和时间调整子单元6043。
[0107] 其中,处理子单元6041用于将本地时间信息T1携带在第一时间载荷数据报文中发送给接收端设备;以及接收该接收端设备发送的携带了接收端设备接收第一时间载荷报文的本地时间信息T2和本地时间信息T1的第二时间载荷报 文,并记录当前接收到该第二时间载荷报文的本地时间信息T3;其中,所述第一时间载荷报文与第二时间载荷报文的类型相同。
[0108] 判断子单元6042用于判断T1和T3之间的差值是否大于预设值,如果否,则根据T1、T2和T3计算与接收端设备之间的时间偏移量.
[0109] 时间调整子单元6043用于根据计算的时间偏移量调整本地时间,与接收端设备时间同步。
[0110] 接收端设备具体实现时可有多种实现形式,参见图7,图7为本发明实施例提供的接收端设备的结构图。如图7所示,接收端设备包括:接收单元701和处理单元702。 [0111] 其中,接收单元701用于接收与自身时间同步的发送端设备发送的携带了发送时间信息的数据报文。
[0112] 处理单元702用于提取出接收单元701接收的数据报文所携带的发送时间信息,根据接收单元701当前接收到所述数据报文的接收时间信息和该数据报文中携带的发送时间信息对该数据报文执行检查。
[0113] 优选地,本实施例中,处理单元702可对未通过检查的数据报文作丢弃处理;对通过检查的数据报文作提交给上层应用的处理。
[0114] 优选地,如图7所示,处理单元702可包括:提取子单元7021、判断子单元7022和处理子单元7023.
[0115] 其中,提取子单元7021用于提取出接收单元701接收的数据报文所携带的发送时间信息.
[0116] 判断子单元7022用于判断接收单元701当前接收到所述数据报文的接收时间信息和所述发送时间信息的差值是否在预设定的范围内.
[0117] 处理子单元7023用于在接收到判断子单元7022的判断结果为否时,丢弃所述数据报文;在接收到判断子单元7022的判断结果为是时,将该数据报文提交给上层应用处理。
[0118] 可见,本发明实施例提供的报文处理方法、发送端设备和接收端设备,其中,该方法包括:步骤A,发送端将发送时间信息携带在数据报文中发送 给接收端;步骤B,接收端接收所述数据报文,根据当前接收到数据报文的接收时间信息和该数据报文中携带的发送时间信息检查该数据报文,对未通过检查的数据报文作丢弃处理;对通过检查的数据报文作提交给上层应用的处理;其中,所述发送端和所述接收端的时间是同步的。这样,相比于现有技术在防重放检查时,只依赖于数据报文携带的序列号,本发明通过时间信息检查数据报文,更能提高网络安全性。比如现有技术在AH报文或者ESP报文携带序列号,如此,当攻击者截获该AH报文或者ESP报文时,采用现有提供的防重放检查,若攻击者提交的该截获的,并且具有一定时间延迟的AH报文或者ESP报文中的序列号与已存储的序列号不同,则使该AH报文或者ESP报文通过检查,这大大降低了网络安全性;由于攻击者在截获报文后,再发送该截获的报文,这样,相比正常到达的报文,该攻击者提交的报文相比于正常传输的报文而言具有一定的时间延迟,因此,本发明从时间信息角度考虑,若该AH报文或者ESP报文携带的时间信息与当前接收该AH报文或者ESP报文的时间信息的差值不在预设定的范围内,则丢弃该接收的AH报文或者ESP报文,这避免了攻击者通过截获并提交该延迟的数据报文达到干扰正常的通信的缺陷,大大提高了网络安全性,进而也保证了网络中正常通信。
[0119] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。