一种报文发送方法及装置与流程

文档序号:11590160阅读:282来源:国知局
一种报文发送方法及装置与流程
本申请涉及通讯
技术领域
,尤其涉及一种报文发送方法及装置。
背景技术
:密钥认证是一种在网络协议中广泛应用的技术,可以有效防止网络上的攻击者通过伪造协议报文来对网络中的设备进行破坏。当应用密钥认证技术时,在发送端设备和接收端设备中配置相同的认证密钥,发送端设备在发送报文时,将配置在发送端设备的认证密钥与待发送的报文的预设内容一同进行哈希运算得到第一哈希值,并将该第一哈希值记录到该报文中。当接收端设备接收到该报文时,将配置在接收端设备的认证密钥与该报文的预设内容一同进行哈希运算得到第二哈希值,比较第一哈希值与第二哈希值是否相等,若两者相等,则认证通过,否则,接收端设备丢弃该报文。由于网络的迁移、合并、升级等操作,经常要对网络中的设备的认证密钥进行变更。为了保证在变更过程中保持网络的稳定,需要对认证密钥进行增添或删除的操作,称之为认证过渡。例如,当进行网络迁移时,在发送端设备和接收端设备中同时配置多组密钥信息,从而保证在网络正常迁移后再删除多余的认证密钥。在相关技术中,在配置了多组认证密钥的情况下,当发送端设备发送报文时,常见以下两种方式:第一种方式,发送端设备使用全部认证密钥分别向接收端设备发送报文,即若配置了n组认证密钥,则发送端设备对于每一待发送报文,都要向接收端设备发送n次,且每次使用这n组认证密钥中不同的认证密钥;第二种方式,发送端设备固定使用多组认证密钥中的一组认证密钥对报文进行发送,例如固定使用第一组或最后一组认证密钥。然而,针对第一种方式,由于发送端设备需要分别使用全部的认证密钥和报文进行哈希运算,且对于同一报文需要发送多次,导致占用了发送端设备大量的处理资源;针对第二种方式,由于发送端设备仅使用一组认证密钥,导致当对网络进行迁移、合并、升级等操作时,需要对网络中各个设备增添或删除认证密钥的操作的顺序进行限定,其限定过程繁琐复杂,消耗大量的时间,容易出错。技术实现要素:有鉴于此,本申请提供一种报文发送方法及装置,可以在保证认证过渡顺利完成的情况下,减少对发送端设备处理资源的占用,从而提高发送端设备的性能。为实现上述目的,本申请提供技术方案如下:根据本申请的第一方面,提出了一种报文发送方法,应用于发送端设备,所述发送端设备针对每一接收端设备维护了认证密钥组,每一认证密钥组用于记录所述发送端设备针对对应于该认证密钥组的接收端设备配置的多个认证密钥以及每一认证密钥的状态;所述方法包括:当所述发送端设备向任一接收端设备发送报文时,选取对应于所述任一接收端设备的认证密钥组中被标记为活跃状态的认证密钥;根据选取的认证密钥和待发送的报文的预设内容计算相应的哈希值,并生成包含所述哈希值和所述报文的认证报文;向所述任一接收端设备发送所述认证报文,以由所述任一接收端设备根据所述哈希值对所述报文进行认证。根据本申请的第二方面,提出了一种报文发送方法,应用于发送端设备,所述发送端设备与多个接收端设备处于同一组播组中,所述发送端设备针对每一接收端设备维护了认证密钥组,每一认证密钥组用于记录所述发送端设备针对对应于该认证密钥组的接收端设备配置的多个认证密钥,以及所述多个认证密钥中各个认证密钥的状态;所述方法包括:当对应于任一接收端设备的认证密钥组中被标记为活跃状态或抑制状态的认证密钥发生变化时,针对每一接收端设备创建认证密钥集合,所述认证密钥集合中包含相应的认证密钥组中所有被标记为活跃状态和抑制状态的认证密钥;在所有认证密钥集合中,依次选取出现次数最多的认证密钥并加入到初始为空的预设公共认证密钥集合中,且在每次选取操作结束后将包含被加入到所述预设公共认证密钥集合中的认证密钥的认证密钥集合清空;当所有的认证密钥集合都为空时,分别根据所述公共认证密钥集合中的各个认证密钥和待发送报文中的预设内容计算相应的哈希值,并分别生成包含相应的哈希值和所述待发送报文的认证报文;分别向所述组播组发送各个认证报文,以由所述组播组中的每个接收端设备根据接收到的各个认证报文中包含的哈希值,对所述待发送报文进行认证。根据本申请的第三方面,提出了一种报文发送装置,应用于发送端设备,所述发送端设备针对每一接收端设备维护了认证密钥组,每一认证密钥组用于记录所述发送端设备针对对应于该认证密钥组的接收端设备配置的多个认证密钥以及每一认证密钥的状态;所述装置包括:选取单元,当所述发送端设备向任一接收端设备发送报文时,选取对应于所述任一接收端设备的认证密钥组中被标记为活跃状态的认证密钥;生成单元,根据选取的认证密钥和待发送的报文的预设内容计算相应的哈希值,并生成包含所述哈希值和所述报文的认证报文;发送单元,向所述任一接收端设备发送所述认证报文,以由所述任一接收端设备根据所述哈希值对所述报文进行认证。根据本申请的第四方面,提出了一种报文发送装置,应用于发送端设备,所述发送端设备与多个接收端设备处于同一组播组中,所述发送端设备针对每一接收端设备维护了认证密钥组,每一认证密钥组用于记录所述发送端设备针对对应于该认证密钥组的接收端设备配置的多个认证密钥,以及所述多个认证密钥中各个认证密钥的状态;所述装置包括:创建单元,当对应于任一接收端设备的认证密钥组中被标记为活跃状态或抑制状态的认证密钥发生变化时,针对每一接收端设备创建认证密钥集合,所述认证密钥集合中包含相应的认证密钥组中所有被标记为活跃状态和抑制状态的认证密钥;选取单元,在所有认证密钥集合中,依次选取出现次数最多的认证密钥并加入到初始为空的预设公共认证密钥集合中,且在每次选取操作结束后将包含被加入到所述预设公共认证密钥集合中的认证密钥的认证密钥集合清空;生成单元,当所有的认证密钥集合都为空时,分别根据所述公共认证密钥集合中的各个认证密钥和待发送报文中的预设内容计算相应的哈希值,并分别生成包含相应的哈希值和所述待发送报文的认证报文;发送单元,分别向所述组播组发送各个认证报文,以由所述组播组中的每个接收端设备根据接收到的各个认证报文中包含的哈希值,对所述待发送报文进行认证。由以上技术方案可见,在本申请的技术方案中,通过动态维护发送端设备针对每一接收端设备的认证密钥组中各个认证密钥的状态,在保证认证过渡顺利完成的情况下,可以减少发送端设备计算哈希值以及发送报文的次数,从而减少对发送端设备处理资源的占用,进一步提高发送端设备的性能。附图说明图1是本申请一示例性实施例提供的一种报文发送方法的流程图。图2是本申请一示例性实施例提供的另一种报文发送方法的流程图。图3是本申请一示例性实施例提供的一种基于单播的报文发送方法的流程图。图4是本申请一示例性实施例提供的一种基于组播的报文发送方法的流程图。图5是本申请一示例性实施例提供的选举公共认证密钥集合的方法的流程图。图6是本申请一示例性实施例提供的一种电子设备的结构示意图。图7是本申请一示例性实施例提供的一种报文发送装置的框图。图8是本申请一示例性实施例提供的另一种电子设备的结构示意图。图9是本申请一示例性实施例提供的另一种报文发送装置的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。在相关技术中,在配置了多组认证密钥的情况下,当发送端设备发送报文时,常见的方式有两种:第一种方式,发送端设备使用全部认证密钥分别向接收端设备发送报文,即若配置了n组认证密钥,则发送端设备对于每一待发送报文,都要向接收端设备发送n次,且每次使用这n组认证密钥中不同的认证密钥。举例而言,假定发送端设备配置了4组认证密钥,分别为k1、k2、k3、k4。则当发送端设备向接收端设备发送报文时,需要分别使用k1、k2、k3、k4对待发送报文进行4次发送。第二种方式,发送端设备固定使用多组认证密钥中的一组认证密钥对报文进行发送,例如固定使用第一组或最后一组认证密钥。举例而言,假定发送端设备配置了4组认证密钥,分别为k1、k2、k3、k4。则当发送端设备向接收端设备发送报文时,固定使用第一组(即k1)认证密钥对待发送报文进行发送,或者,固定使用最后一组(即k4)认证密钥对待发送报文进行发送。然而,在相关技术中,针对第一种方式,当在进行认证过渡时,虽然可以最大程度地保证认证过渡成功完成,但是由于需要发送端设备使用全部的认证密钥进行哈希运算,且需要根据计算得到的多个哈希值分别发送报文,导致占用了发送端设备大量的处理资源,从而降低了发送端设备的性能。针对第二种方式,当在进行认证过渡时,虽然发送端设备只需要计算一次哈希值,发送一次报文,但是由于发送端设备仅使用一组认证密钥,导致当对网络进行迁移、合并、升级等操作时,需要对网络中各个设备进行操作的顺序进行限定,还需要对同一台设备中增添或删除认证密钥的操作的顺序进行限定,其限定过程繁琐复杂,消耗大量的时间,容易出错。举例而言,针对只存在一台接收端设备的情况,如表1所示:步骤发送端设备接收端设备1k1k12k2k13k2k2表1步骤1,发送端设备和接收端设备都固定使用认证密钥k1。步骤2,发送端设备将k1替换为k2。步骤3,接收端设备将k1替换为k2。其中,在将两端的认证密钥k1替换为认证密钥k2时,由于操作两台设备的时差,导致在步骤2与步骤3之间,存在一定时间段内两端的认证密钥不一致的情况,若在该时间段内发送端设备使用k2向接收端设备发送报文,由于接收端设备还是使用认证密钥k1,则会导致接收端设备接收到该报文时认证失败。针对存在多台接收端设备的情况,则会加大认证失败的可能性。如表2所示:步骤发送端设备接收端设备a接收端设备b接收端设备c1k1k1k1k12k2k1k1k13k2k2k1k14k2k2k2k15k2k2k2k2表2步骤1,发送端设备和接收端设备a、b、c都固定使用认证密钥k1。步骤2,发送端设备将k1替换为k2。步骤3,接收端设备a将k1替换为k2。步骤4,接收端设备b将k1替换为k2。步骤5,接收端设备c将k1替换为k2。其中,同理可得,在执行步骤2-步骤4期间,存在认证失败的情况。针对上述导致认证失败的情况,以下以只存在一台接收端设备的情况举例。在相关技术中,假设两端设备在配置多组认证密钥时,都使用第一组认证密钥进行报文的发送,采用以下顺序进行操作,可以避免认证失败的情况,如表3所示:步骤发送端设备接收端设备1k1k12k1,k2k13k1,k2k2,k14k2k2,k15k2k2表3步骤1,发送端设备和接收端设备都固定使用认证密钥k1。步骤2,发送端设备增添k2,并同时使用k1和k2。步骤3,接收端设备增添k2,并同时使用k1和k2。步骤4,发送端设备删除k1,仅固定使用k2。步骤5,接收端设备删除k1,仅固定使用k2。然而,在同时对多台接收端设备进行认证密钥的增添删除操作时,由于其繁琐且冗长的操作步骤,导致需要花费大量的时间和成本,还容易出错,所以不能适用于大规模操作。因此,本申请通过改进发送端设备选取认证密钥的方式,以解决相关技术中存在的上述技术问题,下面结合实施例进行详细说明。图1是本申请一示例性实施例示出的一种报文发送方法的流程图,该方法应用于发送端设备,所述发送端设备针对每一接收端设备维护了认证密钥组,每一认证密钥组用于记录所述发送端设备针对对应于该认证密钥组的接收端设备配置的多个认证密钥以及每一认证密钥的状态;如图1所示,该方法可以包括以下步骤:步骤101,当所述发送端设备向任一接收端设备发送报文时,选取对应于所述任一接收端设备的认证密钥组中被标记为活跃状态的认证密钥。步骤102,根据选取的认证密钥和待发送的报文的预设内容计算相应的哈希值,并生成包含所述哈希值和所述报文的认证报文。步骤103,向所述任一接收端设备发送所述认证报文,以由所述任一接收端设备根据所述哈希值对所述报文进行认证。在本实施例中,当所述发送端设备和所述任一接收端设备中新配置一区别于所述认证密钥组中全部认证密钥的认证密钥时,可以将新配置的认证密钥标记为活跃状态。在本实施例中,当所述认证密钥组中存在多个被标记为活跃状态的认证密钥时,可以按照以下方式中至少之一,保留一个活跃状态的认证密钥并将其他的认证密钥修改为抑制状态:保留上一次被保留为活跃状态的认证密钥;保留所述多个被标记为活跃状态的认证密钥中数值最小的认证密钥;保留所述多个被标记为活跃状态的认证密钥中数值最大的认证密钥。当所述认证密钥组中不存在被标记为活跃状态的认证密钥时,将所述认证密钥组中被标记为抑制状态的认证密钥中数值最小或最大的认证密钥修改为活跃状态。在本实施例中,当出现以下情况时,可以将认证密钥标记为非活跃状态:接收各个接收端设备返回的报文;当在预设时长内无任何接收到的报文与所述认证密钥组中任一认证密钥匹配时,将所述任一认证密钥标记为非活跃状态。在本实施例中,可以通过以下方式处理被标记为非活跃状态的认证密钥:当接收到所述任一接收端设备发送的报文时,将所述认证密钥组中全部认证密钥与接收到的报文进行匹配;当匹配到的认证密钥被标记为非活跃状态时,将匹配到的认证密钥修改为活跃状态。图2是本申请一示例性实施例示出的另一种报文发送方法的流程图,该方法应用于发送端设备,所述发送端设备与多个接收端设备处于同一组播组中,所述发送端设备针对每一接收端设备维护了认证密钥组,每一认证密钥组用于记录所述发送端设备针对对应于该认证密钥组的接收端设备配置的多个认证密钥,以及所述多个认证密钥中各个认证密钥的状态;如图2所示,该方法可以包括以下步骤:步骤201,当对应于任一接收端设备的认证密钥组中被标记为活跃状态或抑制状态的认证密钥发生变化时,针对每一接收端设备创建认证密钥集合。在本实施例中,所述认证密钥集合中包含相应的认证密钥组中所有被标记为活跃状态和抑制状态的认证密钥。步骤202,在所有认证密钥集合中,依次选取出现次数最多的认证密钥并加入到初始为空的预设公共认证密钥集合中,且在每次选取操作结束后将包含被加入到所述预设公共认证密钥集合中的认证密钥的认证密钥集合清空。在本实施例中,当存在多个出现次数相同且为最多的认证密钥时,可以选取数值最小或数值最大的加入到所述公共认证密钥集合中。步骤203,当所有的认证密钥集合都为空时,分别根据所述公共认证密钥集合中的各个认证密钥和待发送报文中的预设内容计算相应的哈希值,并分别生成包含相应的哈希值和所述待发送报文的认证报文。步骤204,分别向所述组播组发送各个认证报文,以由所述组播组中的每个接收端设备根据接收到的各个认证报文中包含的哈希值,对所述待发送报文进行认证。由以上技术方案可见,在本申请的技术方案中,通过动态维护发送端设备针对每一接收端设备的认证密钥组中各个认证密钥的状态,在保证认证过渡顺利完成的情况下,可以减少发送端设备计算哈希值以及发送报文的次数,从而减少对发送端设备处理资源的占用,进一步提高发送端设备的性能。为了便于理解,下面针对发送端设备动态维护认证密钥的状态的过程,对本申请的技术方案进行详细说明。使用密钥认证的协议在发送报文时可能使用不同的通信机制,有些协议使用单播,有些协议使用组播,还有一些协议同时使用单播和组播。本申请提供的技术方案既适用于单播的情况,也适用于组播的情况,下面分别针对单播和组播的情况,对发送端设备动态维护认证密钥的状态的过程进行详细说明。1、单播图3是本申请一示例性实施例示出的一种报文发送方法的流程图,请参见图3,该方法可以包括以下步骤:步骤301,选取被标记为活跃状态的认证密钥。在本实施例中,发送端设备可能需要向多台接收端设备发送报文,在此,针对多台接收端设备中任一接收端设备,对本申请的技术方案中单播的情况进行详细说明。发送端设备通过对该任一接收端设备向本端发送报文所使用的认证密钥的统计和更新,可以维护一个认证密钥组,该认证密钥组用于记录发送端设备针对该任一接收端设备配置的多个认证密钥,以及每一认证密钥的状态。其中,认证密钥的状态包括三种:1)活跃状态;2)抑制状态;3)非活跃状态。当某一认证密钥被标记为活跃状态时,表明该任一接收端设备使用该认证密钥向发送端设备发送报文,所以如果发送端设备也使用该认证密钥向该任一接收端设备发送报文,那么在该任一接收端设备中,发送的报文可以通过认证。综上所述,被标记为活跃状态的认证密钥为发送端设备在向接收端设备发送报文时可以使用的认证密钥。当发送端设备和该任一接收端设备中新配置一区别于认证密钥组中全部认证密钥的认证密钥时,将新配置的认证密钥标记为活跃状态。举例而言,假定发送端设备a针对接收端设备b维护的认证密钥组中包含认证密钥1、2、3。其中,认证密钥1被标记为活跃状态,认证密钥2被标记为抑制状态,认证密钥3被标记为非活跃状态,当发送端设备a和接收端设备b中新配置认证密钥4时,将认证密钥4标记为活跃状态。当发送端设备选取被标记为活跃状态的认证密钥来发送报文时,若认证密钥组中存在多个被标记为活跃状态的认证密钥,则保留一个活跃状态的认证密钥并将其他的认证密钥修改为抑制状态。即发送端设备仅仅使用保留下的认证密钥来发送报文,而无需使用全部被标记为活跃状态的认证密钥来发送报文,从而避免发送端设备因重复发送报文而占用大量的处理资源的问题,提高了发送端设备的性能。具体保留活跃状态的认证密钥的方式可以为:保留上一次被保留为活跃状态的认证密钥;保留多个被标记为活跃状态的认证密钥中数值最小的认证密钥;保留多个被标记为活跃状态的认证密钥中数值最大的认证密钥。承接上述举例,由于存在认证密钥1和4被标记为活跃状态,所以在发送端设备a发送报文时,可以保留上一次被保留为活跃状态的认证密钥,即认证密钥1保留为活跃状态,而认证密钥4修改为抑制状态;也可以保留数值最小的认证密钥,即认证密钥1保留为活跃状态,而认证密钥4修改为抑制状态;还可以保留数值最大的认证密钥,即认证密钥4保留为活跃状态,而认证密钥1修改为抑制状态。其中,优先选择保留上一次被保留为活跃状态的认证密钥的方式,可以减少修改认证密钥的状态的操作,减轻发送端设备的负担。在本实施例中,也可以选择保留其他数值关系的被标记为活跃状态的认证密钥,只需可以保留一个认证密钥为活跃状态,而其他被标记为活跃状态的认证密钥修改为抑制状态即可,本申请并不对此进行限制。被标记为非活跃状态的认证密钥表示发送端设备配置了该认证密钥,但该任一接收端设备在向发送端设备发送报文时未使用的认证密钥,所以在本申请的技术方案中,发送端设备在向该任一接收端设备发送报文时,不使用被标记为非活跃状态的认证密钥发送报文。当发送端设备接收到该任一接收端设备发送的报文时,使用本地配置的全部认证密钥与接收到报文进行匹配,当匹配到对应的认证密钥时(说明该任一接收端设备在使用该认证密钥发送报文),若该认证密钥被标记为非活跃状态,则将该认证密钥修改为活跃状态,若该认证密钥被标记为活跃状态或抑制状态,则保持不变。承接于上述举例,假定发送端设备a接收到接收端设备b发送的报文,并匹配到认证密钥3,由于认证密钥3被标记为非活跃状态,所以将认证密钥3修改为活跃状态。在本实施例中,发送端设备定时对针对该任一接收端设备维护的认证密钥组中各个认证密钥的状态进行更新:当在预设时长内无任何接收到的报文与认证密钥组中某一认证密钥匹配时,将该认证密钥标记为非活跃状态;其中,更新的周期和预设时长可以根据实际情况动态调整,本申请并不对此进行限制。承接于上述举例,假定在保留一个活跃状态的认证密钥并将其他标记为活跃状态的认证密钥修改为抑制状态时,选择保留上一次被保留为活跃状态的认证密钥,即认证密钥1保留为活跃状态,而认证密钥4修改为抑制状态,则此时各个认证密钥的状态为:认证密钥1被标记为活跃状态,认证密钥2被标记为抑制状态,认证密钥3被标记为活跃状态,认证密钥4被标记为抑制状态。假定在预设时长(例如可以是2分钟)内无任何接收到的报文与认证密钥1和认证密钥3匹配,则将认证密钥1和认证密钥3修改为非活跃状态。当认证密钥组中不存在被标记为活跃状态的认证密钥时,将认证密钥组中被标记为抑制状态的认证密钥中数值最小或最大的认证密钥修改为活跃状态。其中,也可以选择其他数值关系,只要可以从被标记为抑制状态的认证密钥中选举出一个认证密钥修改为活跃状态即可。本申请并不对选举的方法进行限制。承接于上述举例,由于不存在被标记为活跃状态的认证密钥(认证密钥1和认证密钥3被修改为非活跃状态),所以从认证密钥2和认证密钥4中选取数值最小或数值最大的认证密钥修改为活跃状态。步骤302,发送端设备根据选取的认证密钥和待发送的报文的预设内容计算相应的哈希值,并生成包含该哈希值和该报文的认证报文。在本实施例中,报文的预设内容根据不同的协议有所不同,需要视具体情况而定,例如可以是报文的五元组信息。步骤303,发送端设备向该任一接收端设备发送认证报文,以由该任一接收端设备根据认证报文中的哈希值对该报文进行认证。在本实施例中,认证的过程与上述
背景技术
中的认证过程类似,对此不再赘述。由以上技术方案可见,在本申请的技术方案中,发送端设备通过动态维护认证密钥的状态,最终在发送报文时,仅使用一个被标记为活跃状态的认证密钥,在保证认证过渡顺利完成的情况下(增添或删除认证密钥不影响接收端设备对发送端设备发送的报文通过认证),可以减少发送端设备计算哈希值以及发送报文的次数,从而减少对发送端设备处理资源的占用,进一步提高发送端设备的性能。2、组播图4是本申请一示例性实施例示出的另一种报文发送方法的流程图,请参见图4,该方法可以包括以下步骤:步骤401,选举出公共认证密钥集合。在本实施例中,发送端设备与多个接收端设备处于同一组播组中,发送端设备针对每一接收端设备维护了认证密钥组,每一认证密钥组用于记录发送端设备针对对应于该认证密钥组的接收端设备配置的多个认证密钥,以及各个认证密钥的状态。其中,各个认证密钥的状态的类型、各个状态的含义、状态变迁的规则与上述单播的情况中相同,对此不再赘述。在本实施例中,发送端设备可能同时处于多个组播组中,在此,针对多个组播组中任一组播组,对本申请的技术方案中组播的情况进行详细说明。当该任一组播组中对应于任一接收端设备的认证密钥组中被标记为活跃状态或抑制状态的认证密钥发生变化时,触发针对发送端设备对应于该任一组播组中所有接收端设备的公共认证密钥集合的选举操作。此处结合图5对选举过程进行详细说明。如图5所示,该选举过程包括以下步骤:步骤401a,发送端设备针对该任一组播组中每一接收端设备创建认证密钥集合。在本实施例中,该认证密钥集合中包含相应的认证密钥组中所有被标记为活跃状态和抑制状态的认证密钥。步骤401b,选取各个认证密钥集合中出现次数最多的认证密钥加入到预设公共认证密钥集合中。在本实施例中,当存在多个出现次数相同且为最多的认证密钥时,选取数值最小或数值最大的加入到公共认证密钥集合中。当然,也可以按照其他选取方式确定选取的认证密钥,只要可以选取出一确定的认证密钥即可,本申请并不对此进行限制。另外,公共认证密钥集合初始为空。步骤401c,逐个检查所有的认证密钥集合,当本次选取的认证密钥在当前检查的认证密钥集合中时,将该当前检查的认证密钥集合清空。步骤401d,确定是否所有的认证密钥集合均为空,若所有的认证密钥集合均为空,则结束选举,否则转入步骤401b。举例而言,假定组播组中包含接收端设备a、b、c、d、e。发送端设备针对接收端设备a、b、c、d、e依次创建的认证密钥集合为{1,2,3}、{2,3}、{1,5,6}、{3,4}、{4,6}。由于5个认证密钥集合中出现次数最多的认证密钥为3,经过步骤401b的选取过程后,公共认证密钥集合为{3},再经过步骤401c,将包含认证密钥3的认证密钥集合清空后,5个认证密钥集合分别为{}、{}、{1,5,6}、{}、{4,6},再经过步骤401d,确定是否所有的认证密钥集合均为空,由于并不是所有的认证密钥集合为空,所以转入步骤401b再次选取,得到公共认证密钥集合为{3,6},此时5个认证密钥集合分别为{}、{}、{}、{}、{},即均为空,因此结束选举。最终得到的公共认证密钥集合为{3,6}。步骤402,发送端设备分别根据公共认证密钥集合中的各个认证密钥和待发送报文中的预设内容计算相应的哈希值,并分别生成包含相应的哈希值和待发送报文的认证报文。步骤403,发送端设备分别向组播组发送各个认证报文,以由所述组播组中的每个接收端设备根据接收到的各个认证报文中包含的哈希值,对所述待发送报文进行认证。在本实施例中,承接于上述举例,发送端设备分别使用选举出的公共认证密钥集合中的认证密钥3和6来向组播组发送认证报文(即只需发送2次),从而保证了组播组中的接收端设备a、b、c、d、e接收到发送端设备发送的报文都可以通过认证,同时,在上述举例中,通过本申请的技术方案,可以避免发送端设备使用认证密钥1、2、4、5发送报文的情况,从而减轻了发送端设备的负担。由以上技术方案可见,在本申请的技术方案中,发送端设备通过动态维护针对组播组的公共认证密钥集合中的认证密钥,最终在发送报文时,尽可能少的使用认证密钥,在保证认证过渡顺利完成的情况下(增添或删除认证密钥不影响接收端设备对发送端设备发送的报文通过认证),可以减少发送端设备计算哈希值以及发送报文的次数,从而减少对发送端设备处理资源的占用,进一步提高发送端设备的性能。图6示出了根据本申请的一示例性实施例的一种电子设备的示意结构图。请参考图6,在硬件层面,该电子设备包括处理器602、内部总线604、网络接口606、内存608以及非易失性存储器610,当然还可能包括其他业务所需要的硬件。处理器602从非易失性存储器610中读取对应的计算机程序到内存602中然后运行,在逻辑层面上形成报文发送装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。请参考图7,在软件实施方式中,该报文发送装置可以包括选取单元701、生成单元702和发送单元703。其中:选取单元701,当所述发送端设备向任一接收端设备发送报文时,选取对应于所述任一接收端设备的认证密钥组中被标记为活跃状态的认证密钥;生成单元702,根据选取的认证密钥和待发送的报文的预设内容计算相应的哈希值,并生成包含所述哈希值和所述报文的认证报文;发送单元703,向所述任一接收端设备发送所述认证报文,以由所述任一接收端设备根据所述哈希值对所述报文进行认证。可选的,还包括:第一标记单元704,当所述发送端设备和所述任一接收端设备中新配置一区别于所述认证密钥组中全部认证密钥的认证密钥时,将新配置的认证密钥标记为活跃状态。可选的,还包括:保留单元705,当所述认证密钥组中存在多个被标记为活跃状态的认证密钥时,按照以下方式中至少之一,保留一个活跃状态的认证密钥并将其他的认证密钥修改为抑制状态:保留上一次被保留为活跃状态的认证密钥;保留所述多个被标记为活跃状态的认证密钥中数值最小的认证密钥;保留所述多个被标记为活跃状态的认证密钥中数值最大的认证密钥。可选的,还包括:第一修改单元706,当所述认证密钥组中不存在被标记为活跃状态的认证密钥时,将所述认证密钥组中被标记为抑制状态的认证密钥中数值最小或最大的认证密钥修改为活跃状态。可选的,还包括:第二标记单元707,接收各个接收端设备返回的报文;当在预设时长内无任何接收到的报文与所述认证密钥组中任一认证密钥匹配时,将所述任一认证密钥标记为非活跃状态。可选的,还包括:第二修改单元708,当接收到所述任一接收端设备发送的报文时,将所述认证密钥组中全部认证密钥与接收到的报文进行匹配;当匹配到的认证密钥被标记为非活跃状态时,将匹配到的认证密钥修改为活跃状态。图8示出了根据本申请的一示例性实施例的另一种电子设备的示意结构图。请参考图8,在硬件层面,该电子设备包括处理器802、内部总线804、网络接口806、内存808以及非易失性存储器810,当然还可能包括其他业务所需要的硬件。处理器802从非易失性存储器810中读取对应的计算机程序到内存802中然后运行,在逻辑层面上形成报文发送装置。当然,除了软件实现方式之外,本申请并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。请参考图9,在软件实施方式中,该报文发送装置可以包括创建单元901、选取单元902、生成单元903和发送单元904。其中:创建单元901,当对应于任一接收端设备的认证密钥组中被标记为活跃状态或抑制状态的认证密钥发生变化时,针对每一接收端设备创建认证密钥集合,所述认证密钥集合中包含相应的认证密钥组中所有被标记为活跃状态和抑制状态的认证密钥;选取单元902,在所有认证密钥集合中,依次选取出现次数最多的认证密钥并加入到初始为空的预设公共认证密钥集合中,且在每次选取操作结束后将包含被加入到所述预设公共认证密钥集合中的认证密钥的认证密钥集合清空;生成单元903,当所有的认证密钥集合都为空时,分别根据所述公共认证密钥集合中的各个认证密钥和待发送报文中的预设内容计算相应的哈希值,并分别生成包含相应的哈希值和所述待发送报文的认证报文;发送单元904,分别向所述组播组发送各个认证报文,以由所述组播组中的每个接收端设备根据接收到的各个认证报文中包含的哈希值,对所述待发送报文进行认证。可选的,所述选取单元902具体用于:当存在多个出现次数相同且为最多的认证密钥时,选取数值最小或数值最大的加入到所述公共认证密钥集合中。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1