检测报文被修改的方法、发送方设备和接收方设备的制作方法

文档序号:7758178阅读:259来源:国知局
专利名称:检测报文被修改的方法、发送方设备和接收方设备的制作方法
技术领域
本发明实施例涉及通信技术,尤其涉及检测报文被修改的方法、发送方设备和接 收方设备。
背景技术
随着hternet的发展,基于IP的通信业务也发展迅速,其中以会话初始协议 (Session Initiation Protocol,以下简称SIP)为控制信令的通信业务发展尤为显著。SIP 是一种信令协议,用于初始、管理和终止分组网络中的语音和视频会话,具体地说就是用来 生成、修改和终结一个或多个参与者之间的会话。但是,Internet是一个异常复杂的网络,网络设备众多,网络设备支持的能力有较 大差异,这就为SIP应用的推广带来了诸多的问题。具体来说,网络上的设备对SIP的支持 各有不同,甚至由于对SIP的理解不同,而实现方式和行为也会不同,导致的直接结果就是 当一个SIP请求或者响应经过这些设备时,这些设备很可能会对SIP请求或者响应进行修 改,使得SIP请求或者响应的某些字段变化了,甚至填写错误,从而导致SIP业务失败。同时SIP的发展也非常快,新的业务标准也是不断推出来,这些新业务需要经过 实践应用的检验,通常会很快就在hternet上推广应用,但由于上述SIP报文可能被修改 的问题的存在,对这些新业务的推广造成了很大的阻碍,如果对网络上的这些设备进行升 级、改造,其投入成本是非常巨大的。因此,目前需要一种能够检测SIP报文是否被修改的方法,以便于能够根据检测 结果采取相应的防止报文被修改的处理。而现有技术中,并不存在一种能够检测SIP报文 是否被修改的方法,只是在SIP业务失败后,确定失败原因可能是由于SIP报文被修改导致 的。

发明内容
本发明实施例提供检测报文被修改的方法、发送方设备和接收方设备,能够检测 出SIP报文是否被修改。本发明实施例提供的检测报文被修改的方法,包括接收会话初始协议报文;该会话初始协议报文的第一字段中携带有发送方对该会 话初始协议报文进行完整性校验计算后得到的第一完整性校验码,该第一字段为不会被修 改的字段;从会话初始协议报文的第一字段中提取第一完整性校验码;对会话初始协议报文进行完整性校验计算,得到第二完整性校验码;检测第一完整性校验码与第二完整性校验码是否相同,如果是,则确定会话初始 协议报文未被修改,否则,确定会话初始协议报文被修改。本发明实施例提供的发送方设备,包括第一校验码生成模块,用于对会话初始协议报文进行完整性校验计算,得到第一完整性校验码;第一收发处理模块,用于将第一完整性校验码携带在会话初始协议报文的第一字 段中,发送会话初始协议报文,其中,第一字段为不会被修改的字段。本发明实施例提供的接收方设备,包括第二收发处理模块,用于接收会话初始协议报文;该会话初始协议报文的第一字 段中携带有第一完整性校验码,该第一字段为不会被修改的字段;第二校验码生成模块,用于对会话初始协议报文进行完整性校验计算,得到第二 完整性校验码;检测处理模块,用于从会话初始协议报文的第一字段中提取第一完整性校验码, 检测第一完整性校验码与第二完整性校验码是否相同,如果是,则确定会话初始协议报文 未被修改,否则,确定会话初始协议报文被修改。本发明实施例提出的检测报文被修改的方法、发送方设备和接收方设备,由于在 发送SIP报文时对报文进行了完整性校验计算,在接收SIP报文时也对报文进行完整性校 验计算,这样通过比较两个计算结果就能检测出SIP报文是否被修改。并且,将完整性校验 计算的结果携带在SIP报文中不会被修改的字段中,以使接收方能够根据准确的校验值来 检测SIP报文是否被修改,从而保证了检测结果准确。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根 据这些附图获得其他的附图。图1是本发明实施例提出的检测报文被修改的基本流程图;图2是在本发明实施例中检测INVITE报文是否被修改的流程图;图3是本发明实施例中发送方设备的结构示意图;图4是本发明实施例中接收方设备的结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例提出了一种检测报文被修改的方法,参见图1,该方法包括以下步 骤步骤101 接收SIP报文;该SIP报文的第一字段中携带有发送方对该SIP报文进 行完整性校验计算后得到的第一完整性校验码,该第一字段为不会被修改的字段。步骤102 从SIP报文的第一字段中提取第一完整性校验码。步骤103 对SIP报文进行完整性校验计算,得到第二完整性校验码。步骤104 检测第一完整性校验码与第二完整性校验码是否相同,如果是,则执行
5步骤105,否则,执行步骤106。步骤105 确定SIP报文未被修改,结束当前流程。步骤106 确定SIP报文被修改。可见,本发明实施例提出的方法中,由于在发送SIP报文时对报文进行了完整性 校验计算,在接收SIP报文时也对报文进行完整性校验计算,这样通过比较两个计算结果 就能检测出SIP报文是否被修改。并且,将完整性校验计算的结果携带在SIP报文中不会 被修改的字段中,以使接收方能够根据准确的校验值来检测SIP报文是否被修改,从而保 证了检测结果准确。图2是在本发明实施例中检测INVITE报文是否被修改的流程图。参见图2,以SIP 报文中的INVITE报文为例,在本发明实施例的具体实现中,检测INVITE报文是否被修改的 过程具体包括以下步骤步骤201 业务终端对需发送的INVITE报文进行完整性校验计算,得到完整性校 验码1。本步骤中,进行完整性校验计算的过程可以包括利用INVITE报文的所有内容进 行完整性校验计算。或者,考虑到SIP报文中的Via头域通常是不会被修改的字段,该Via头域是否参 与完整性校验计算不会影响后续的检测报文是否被修改的结果,因此,为了简化计算过程, 在本步骤中,也可以是对INVITE报文中除Via头域之外的部分进行完整性校验计算。另外,本步骤中的完整性校验计算可以是预定的任意一种算法,比如可以为哈希算法。步骤202 业务终端将完整性校验码1携带在INVITE报文中,然后发送该INVITE 报文。Via头域中的Branch参数是SIP报文的基本参数,也就是说,所有SIP报文都会在 Via头域中携带该Branch参数,因此适合于携带完整性校验码。另外,分析SIP报文的特点,SIP报文在hternet网络中传输时,有一些字段是容 易被修改的字段比如Contact字段,有一些字段通常是不会被修改的字段,比如Via头域中 的Branch参数。基于上述分析,较佳地,在本步骤中,业务终端将完整性校验码1携带在INVITE报 文的Via头域的Branch参数中,从而保证完整性校验码在后续hternet网络传输中不被 修改,接收方能够接收到正确的完整性校验码,基于正确的完整性校验码来检测SIP报文 是否被修改,保证检测结果的准确。更具体的,完整性校验码1可以被携带在Via头域中的 Branch参数的魔鬼数字z9Hg4之后。当然,本步骤中,也可以将完整性校验码1携带在INVITE报文中预先被定义为数 值不可修改的扩展字段,或者其他任意扩展字段或参数中。步骤203 JNVITE报文经过hternet网络传输,到达应用服务器。步骤204 应用服务器从INVITE报文中提取完整性校验码1。这里,对应于上述步骤202的处理,应用服务器可以是从Via头域的Branch参数 中比如魔鬼数字z9Hg4之后的位置,提取出完整性校验码1 ;或者,从被定义为数值不可修 改的扩展字段中提取出完整性校验码1 ;或者,从其他任意扩展字段或参数中提取出完整性校验码1。步骤205 应用服务器对接收到的INVITE报文进行完整性校验计算,得到完整性 校验码2。这里,对应于上述步骤201的处理,应用服务器利用INVITE报文的所有内容进行 完整性校验计算,或者,对INVITE报文中除Via头域之外的部分进行完整性校验计算。完 整性校验计算的算法与步骤201中的算法对应,比如也为哈希算法。步骤206 应用服务器检测完整性校验码1与完整性校验码2是否相同,如果是, 则执行步骤207,否则,执行步骤208。步骤207 应用服务器确定INVITE报文未被修改,结束当前流程。步骤208 应用服务器确定INVITE报文被修改。至此,检测INVITE报文是否被修改的过程结束。为了能够进一步针对INVITE报文被修改的检测结果进行应对处理,使得业务终 端后续发送的SIP报文不被hternet网络中的设备修改,本发明实施例还可以进一步包括 如下步骤的处理步骤209 应用服务器向业务终端返回修改警告响应,其中携带许可的封装方式 fn息ο这里,修改警告响应可以为新定义的409响应,或者也可以为携带修改警告码的 403响应。步骤210 业务终端接收到修改警告响应后,根据其中的封装方式信息,对INVITE 报文进行封装,并重新通过hternet网络发送给应用服务器。通过采用对SIP报文封装后发送的方式,使得hternet网络中的网络设备不能识 别出SIP报文,从而使得SIP报文不会被修改。步骤211 业务终端和应用服务器对当前会话的其他SIP报文均进行上述封装后 发送给对方。上述图2所示流程是以INVITE报文为例进行说明,在实际的业务实现中,可以是 对所有的SIP报文都执行上述图2所示流程的检测处理,比如,初始呼叫(INVITE)报文、确 认(ACK)报文、注册(REGISTER)报文等。当然,也可以只对一个会话的首包进行上述图2 所示流程的检测处理,由于同一个会话的路径相同,因此,如果首包不会被修改,那么,该会 话后续所有的SIP报文通常也不会被修改,因此,无需再针对会话的后续SIP报文检测;如 果首包被修改了,那么,该会话后续所有的SIP报文都按照首包的封装方式进行封装,来避 免被传输路径中的网络设备修改。本发明实施例还提出了一种发送方设备,参见图3,包括第一校验码生成模块,用于对会话初始协议报文进行完整性校验计算,得到第一 完整性校验码;第一收发处理模块,用于将第一完整性校验码携带在会话初始协议报文的第一字 段中,发送会话初始协议报文,其中,第一字段为不会被修改的字段。其中,所述第一收发处理模块将第一完整性校验码携带在会话初始协议报文的 Via头域的Branch参数中,或者携带在会话初始协议报文的被定义为数值不可修改的扩展 字段中。
在一种较佳实现方式中,所述第一校验码生成模块对所述会话初始协议报文的除Via头域之外的部分进 行完整性校验计算;禾口/ 或,所述第一收发处理模块将第一完整性校验码携带在会话初始协议报文的Via头 域的Branch参数中的魔鬼数字z9Hg4之后。根据SIP报文被修改的检测结果,发送方设备可以进一步采取相应的应对处理, 即,所述第一收发处理模块进一步用于接收修改警告响应,根据其中的封装方式信息,对所 述会话初始协议报文进行封装,并重新发送。本发明实施例还提出了一种接收方设备,参见图4,包括第二收发处理模块,用于接收会话初始协议报文;该会话初始协议报文的第一字 段中携带有第一完整性校验码,该第一字段为不会被修改的字段;第二校验码生成模块,用于对会话初始协议报文进行完整性校验计算,得到第二 完整性校验码;检测处理模块,用于从会话初始协议报文的第一字段中提取第一完整性校验码, 检测第一完整性校验码与第二完整性校验码是否相同,如果是,则确定会话初始协议报文 未被修改,否则,确定会话初始协议报文被修改。其中,所述检测处理模块从会话初始协议报文的Via头域的Branch参数中或者被 定义为数值不可修改的扩展字段中提取第一完整性校验码。在一种较佳实现方式中,所述第二校验码生成模块对所述会话初始协议报文的除 Via头域之外的部分进行完整性校验计算;和/或,所述检测处理模块从Via头域的Branch参数中的魔鬼数字z9Hg4之后的位置提 取第一完整性校验码。根据SIP报文被修改的检测结果,接收方设备可以进一步采取相应的应对处理, 即,所述第二收发处理模块进一步用于在检测处理模块确定会话初始协议报文被修改后, 向发送方返回修改警告响应,其中携带许可的封装方式信息。其中,所述第二收发处理模块向发送方返回新定义的409响应作为上述的修改警 告响应,其中携带许可的封装方式信息;或者向发送方返回403响应作为上述的修改警告 响应,其中携带修改警告码。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在 执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光 盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
权利要求
1.一种检测报文被修改的方法,其特征在于,包括接收会话初始协议报文;该会话初始协议报文的第一字段中携带有发送方对该会话初 始协议报文进行完整性校验计算后得到的第一完整性校验码,该第一字段为不会被修改的 字段;从会话初始协议报文的第一字段中提取第一完整性校验码;对会话初始协议报文进行完整性校验计算,得到第二完整性校验码;检测第一完整性校验码与第二完整性校验码是否相同,如果是,则确定会话初始协议 报文未被修改,否则,确定会话初始协议报文被修改。
2.根据权利要求1所述的方法,其特征在于,所述第一字段为Via头域中的Branch参 数;或者,会话初始协议报文中被定义为数值不可修改的扩展字段。
3.根据权利要求2所述的方法,其特征在于,如果所述第一字段为Via头域中的 Branch参数;所述第一完整性校验码被携带在Via头域中的Branch参数的魔鬼数字z9Hg4 之后;和/或,所述进行完整性校验计算包括对所述会话初始协议报文的除Via头域之外的部分进 行完整性校验计算。
4.根据权利要求1、2或3所述的方法,其特征在于,在所述确定会话初始协议报文被修 改之后,进一步包括向发送方返回修改警告响应,其中携带许可的封装方式信息;发送方 接收到修改警告响应后,根据其中的封装方式信息,对所述会话初始协议报文进行封装,并 重新发送。
5.根据权利要求4所述的方法,其特征在于,所述会话初始协议报文为会话的首报文;该方法进一步包括对所述会话的其他会话初始协议报文进行所述封装后发送。
6.根据权利要求4所述的方法,其特征在于,所述修改警告响应为新定义的409响应, 或者为携带修改警告码的403响应。
7.—种发送方设备,其特征在于,包括第一校验码生成模块,用于对会话初始协议报文进行完整性校验计算,得到第一完整 性校验码;第一收发处理模块,用于将第一完整性校验码携带在会话初始协议报文的第一字段 中,发送会话初始协议报文,其中,第一字段为不会被修改的字段。
8.根据权利要求7所述的发送方设备,其特征在于,所述第一收发处理模块将第一完 整性校验码携带在会话初始协议报文的Via头域的Branch参数中,或者携带在会话初始协 议报文的被定义为数值不可修改的扩展字段中。
9.根据权利要求8所述的发送方设备,其特征在于,所述第一校验码生成模块对所述会话初始协议报文的除Via头域之外的部分进行完 整性校验计算;和/或,所述第一收发处理模块将第一完整性校验码携带在会话初始协议报文的Via头域的 Branch参数中的魔鬼数字z9Hg4之后。
10.根据权利要求7、8或9所述的发送方设备,其特征在于,所述第一收发处理模块,进一步用于接收修改警告响应,根据其中的封装方式信息,对所述会话初始协议报文进行封 装,并重新发送。
11.一种接收方设备,其特征在于,包括第二收发处理模块,用于接收会话初始协议报文;该会话初始协议报文的第一字段中 携带有第一完整性校验码,该第一字段为不会被修改的字段;第二校验码生成模块,用于对会话初始协议报文进行完整性校验计算,得到第二完整 性校验码;检测处理模块,用于从会话初始协议报文的第一字段中提取第一完整性校验码,检测 第一完整性校验码与第二完整性校验码是否相同,如果是,则确定会话初始协议报文未被 修改,否则,确定会话初始协议报文被修改。
12.根据权利要求11所述的接收方设备,其特征在于,所述检测处理模块从会话初始 协议报文的Via头域的Branch参数中或者被定义为数值不可修改的扩展字段中提取第一 完整性校验码。
13.根据权利要求12所述的接收方设备,其特征在于,所述第二校验码生成模块对所 述会话初始协议报文的除Via头域之外的部分进行完整性校验计算;和/或,所述检测处理模块从Via头域的Branch参数中的魔鬼数字z9Hg4之后的位置提取第一完整性校验码。
14.根据权利要求11、12或13所述的接收方设备,其特征在于,所述第二收发处理模 块进一步用于在检测处理模块确定会话初始协议报文被修改后,向发送方返回修改警告响 应,其中携带许可的封装方式信息。
15.根据权利要求14所述的接收方设备,其特征在于,所述第二收发处理模块向发送 方返回新定义的409响应,其中携带许可的封装方式信息;或者向发送方返回403响应,其 中携带修改警告码。
全文摘要
本发明提供了检测报文被修改的方法、发送方设备和接收方设备。该方法包括接收会话初始协议报文;该会话初始协议报文的第一字段中携带有发送方对该会话初始协议报文进行完整性校验计算后得到的第一完整性校验码,该第一字段为不会被修改的字段;从会话初始协议报文的第一字段中提取第一完整性校验码;对会话初始协议报文进行完整性校验计算,得到第二完整性校验码;检测第一完整性校验码与第二完整性校验码是否相同,如果是,则确定会话初始协议报文未被修改,否则,确定会话初始协议报文被修改。本发明能够检测出会话初始协议报文是否被修改。
文档编号H04L29/06GK102143010SQ201010264029
公开日2011年8月3日 申请日期2010年8月24日 优先权日2010年8月24日
发明者张恋, 黄蓉军 申请人:华为软件技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1