CN103312668B - 一种基于链路管理协议安全联盟的消息传送方法及装置 - Google Patents
一种基于链路管理协议安全联盟的消息传送方法及装置 Download PDFInfo
- Publication number
- CN103312668B CN103312668B CN201210061999.1A CN201210061999A CN103312668B CN 103312668 B CN103312668 B CN 103312668B CN 201210061999 A CN201210061999 A CN 201210061999A CN 103312668 B CN103312668 B CN 103312668B
- Authority
- CN
- China
- Prior art keywords
- lmp
- message
- security association
- certification object
- certification
- 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.)
- Expired - Fee Related
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于链路管理协议LMP安全联盟SA的消息传送方法及装置,用于解决IPSec不适合LMP的问题。方案为:配置LMP安全联盟,新增用于对LMP消息进行认证的LMP认证对象;在发送LMP消息时,基于本地的LMP安全联盟生成LMP认证对象,并在LMP消息中携带所生成的LMP认证对象;在接收到LMP消息时,从接收的LMP消息中提取LMP认证对象,根据所提取的LMP认证对象获取对应的本地LMP安全联盟,并基于本地LMP安全联盟及所提取的LMP认证对象,对所接收的LMP消息进行认证。通过本发明能够保证LMP消息的完整性和机密性,具有抗重放攻击能力。
Description
技术领域
本发明涉及通信网络中的路由安全技术,尤其涉及一种基于链路管理协议(LinkManagementProtocol,LMP)安全联盟的消息传送方法及装置。
背景技术
LMP使用IP安全协议IPSec作为安全机制,该安全机制具体描述如下:
1、使用IPSec协议的LMP实现必须能支持手动密钥模式。手动密钥模式提供了一种简单的方法来建立IPsec的功能。但是手动密钥模式不能有效地支持重放攻击的保护和自动重置密钥。
2、IPsec封装安全负载(IPsecESP)支持通道模式下的认证。
3、其实现必须支持已认证的密钥交换协议。
4、其实现必须使用IPsec解释域DOI[RFC2407]。
5、对于IKE协议(InternetKeyExchange,因特网密钥交换协议),在快速模式下的安全联盟(SecurityAlliance,SA)代表了节点同意保护的通信量(包含地址空间、协议和端口信息)。
6、必须支持IKE积极模式。
IPSecSA定义在【RFC4301】中,具体所包含的参数如下:
安全参数目录(SecurityParameterIndex,SPI)——32比特值,由接收端的SA选择,用来唯一标识SA。安全联盟数据库SAD登录到一个外部的SA时,SPI用来构建包的认证头(AuthenticationHeader,AH)或者封装安全载荷(EncapsulatingSecurityPayload,ESP)头部。SAD登录到内部的SA,SPI用来描述到合适的SA的路径。
序列号计数器(SequenceNumberCounter)——一个64比特计数器,用来生成AH或ESP头部的序列号。64比特序列号是默认的,但是32位的序列号也是可行的。
序列计数器溢出(SequenceCounterOverflow)——一个标志位,表明序列计数器的溢出是否产生审核事件以及防止其他包在SA上传输,或者是否允许翻转。审核记录应当包含SPI的值,当前时间,本地地址,远端地址和相关SAD入口的选择者。
抗重放窗口(Anti-ReplayWindow)——一个64比特计数器和一个位图(或等价物),用来确定一个内部AH或者ESP包是否是重放的。
AH认证算法,密钥(AHAuthenticationalgorithm,key)等——这些只有AH要求。
ESP加密算法,密钥,模式,初始向量(ESPEncryptionalgorithm,key,mode,IV)等——如果一个结合方式的算法被使用,这个部分将不适用。
ESP完整性算法,密钥(ESPintegrityalgorithm,keys)等——如果完整性服务为选择,这个部分将不适用。如果一个结合方式的算法被使用,这个部分将不适用。
ESP结合方式算法,密钥(ESPcombinedmodealgorithms,key(s))等——这些数据在结合模式(加密和完整性)算法下使用。如果结合方式算法没有使用,该部分将不适用。
SA的寿命(LifetimeofthisSA)——一个时间间隔,当其结束后,一个SA必须被新的SA(以及新的SPI)代替或者被终止。它可以以时间或者字节计算,或者同时使用。一个适应的执行必须支持者两种形式的寿命,也必须支持两者同时使用。
IPSec协议模式(IPSecprotocolmode)——隧道或者传输。表明AH或ESP的哪种模式应用在该SA传输中。
状态片段检查标志(Statefulfragmentcheckingflag)——表明状态片段检查是否应用在该SA中。
旁路DF比特(BypassDFbit(T/F))——可用在隧道模式SA中,当内部和外部头都为IPv4时。差分服务代码点(DifferentiatedServicesCodePoint,DSCP)值指明了该SA的包允许的DSCP值。如果没有指定值,无指定DSCP过滤将被应用。如果一个或多个值被指定,将为外部包在一系列与传输选择器匹配的选择器的SA中选择一个。注意这些值不被到达SA的内部传输内容检验。
旁路DSCP(T/F)或者到未受保护的DSCP值(数组)的地图如果需要限制DSCP旁路值——应用在SA隧道模式。
路径MTU(PathMTU)——任意观察到的路径最大传输单元(MaxiumTransportationUnit,MTU)和老化aging变量。
隧道头IP源和目的地址(TunnelheaderIPsourceanddestinationaddress)——两个地址都必须是IPv4或者IPv6地址。版本表明了使用的IP头的类型。只在IPSec协议模式为隧道模式时使用。
现有技术中,LMP协议使用IPSec协议(AH和ESP)来确保LMP消息的完整性和机密性,然而同时也带来一些其他问题。
首先,在某些环境下,比如Mobilead-hoc或者组播模式下,由于IKE密钥管理协议只支持一对一通信的密钥自动分配,对于组播和广播的应用,SA需要复杂的手动配置,IPSec将难以配置和维护,也就难以保证数据的完整性和机密性。
第二,虽然AH协议和ESP协议都具有抗重放攻击的服务,但是在使用手动配置SA时,AH和ESP将不具有抗重放的能力。这是因为唯一标识SA的安全索引参数(SecurityParameterIndex,SPI)的分配、参数的拟定都是人工进行的,SA将永不过期,一旦建立,它们就会一直存在直到再次以人工方式删除。而抗重放的序列号是一个单向递增的计数值,而且不支持序列号翻转(由最大值翻转为0),在同一SA中这一计数值将可能溢出。在手动配置情况下,接收到IPSec数据包后抗重放窗口将被完全忽略。由于路由协议大多使用手动配置SA,因此这些协议也就不能使用IPSec提供的抗重放保护,这使得这些协议很容易遭受重放攻击。
第三,IPSec与密钥表(keytable)不兼容问题之一。IETF目前正在推动keytable草案,并希望keytable能够直接用于保护路由协议安全。而IPSec的SA定义与keytable不兼容,这给将来从keytable到IPSecSA的转换带来了困难。而要在手动配置keytable的情况下,实现从keytable到IPSecSA的转换,就必须依赖于密钥管理协议IKE版本2(IKEv2),这会导致安全配置复杂。
第四,IPSec与keytable不兼容问题之二。由于ikev2自身定义的密钥管理机制并不依赖于keytable。这使得,要让IPSec和keytable兼容,必须对ikev2协议做大量的修改,因此这种做法对现有ikev2协议影响很大。
第五,ikev2的密钥更新时机选择不能很好的解决重放攻击问题。ikev2对IPSecSA的密钥更新管理是根据IPSecSA的生存时间来进行管理的。而IPSec重放攻击机制依赖于序列号(sequencenumber)。这存在一个问题:sequencenumber溢出或重复时,IPSecSA可能并没有过期,故不会进行密钥更新过程。此时sequencenumber可能溢出,也可能重复出现,给攻击者以重放攻击的可能。
通常情况下,路由协议需要用IPSec保护数据的完整性,而很少使用IPSec来保护数据的机密性,因此有很多路由协议在使用IPSec时都将ESP设为NULL。这样做带来的问题是,路由包转发后,通过简单的数据包检测无法分辨出该数据包是否利用ESP进行加密,导致一些想要控制数据包优先级的设备遇到麻烦。IPSec安全维护和扩展工作组发表了两种解决方法(WESP[RFC5840]和启发方法[RFC5879])使得中间安全设备能区别加密和非加密的ESP数据包。虽然在接收节点的数据包优先级问题可以采取某些特殊手段,但这一议题还需要进一步完善。
基于上述分析可知,要动态的管理链路管理协议LMP的IP安全协议安全联盟(IPSecSA),则必须使用因特网密钥交换协议版本2(IKEv2)。然而,由于LMP使用了组播,因此IKEv2并不能真正用来管理IPSecSA,这使得IPSec不适合用作LMP的安全机制。
发明内容
有鉴于此,为解决IPSec不适合作为LMP的问题,本发明的主要目的之一在于提出一种基于链路管理协议LMP安全联盟SA的消息传送方法及装置,用于替代IPSec作为LMP的安全机制。
为达到上述目的,本发明的技术方案是这样实现的:
一种基于链路管理协议LMP安全联盟的消息传送方法,该方法包括:
配置LMP安全联盟;
对LMP消息中的LMP对象进行扩展,新增用于对LMP消息进行认证的LMP认证对象;
在发送LMP消息时,基于本地的LMP安全联盟生成LMP认证对象,并在LMP消息中携带所生成的LMP认证对象;
在接收到LMP消息时,从接收的LMP消息中提取LMP认证对象,根据所提取的LMP认证对象获取对应的本地LMP安全联盟,并基于本地LMP安全联盟及所提取的LMP认证对象,对所接收的LMP消息进行认证。
进一步地,所述LMP安全联盟包括:
密钥标识KeyID,用于唯一的标识一个LMP安全联盟;
密钥Key,用于对数据进行加密;
密钥算法algorithm,用于使用密钥Key对LMP消息进行加密,生成LMP认证对象中的认证数据信元的内容;
序列号Sequencenumber,用于提供抗重放保护服务。
进一步地,所述新增用于对LMP消息进行认证的LMP认证对象的方法为:
扩展LMP对象的对象内容部分,在LMP对象的对象内容中填充如下信元:
密钥标识KeyID,用于唯一的标识一个LMP安全联盟;
序列号Sequencenumber,用于抵抗重放攻击;
认证数据AuthenticationData,用于存储LMP消息的完整性检查值或消息认证码。
进一步地,在发送LMP消息时,基于本地LMP安全联盟生成LMP认证对象的步骤具体为;
生成一个新的LMP认证对象,将LMP安全联盟中的密钥标识复制到所述LMP认证对象中的密钥标识信元中;将LMP安全联盟中的序列号复制到所述LMP认证对象中的序列号信元中;
将LMP安全联盟中密钥标识和序列号及原始LMP消息内容作为LMP安全联盟中的密钥算法的参数,生成认证数据,并将计算所得的认证数据复制到LMP认证对象中的认证数据信元中。
进一步地,在提供抗重放攻击服务的情况下,所述生成LMP认证对象的步骤中,在生成新LMP认证对象之前还包括:
判断是否建立了用于产生LMP安全联盟中的序列号的计数器,若未建立,则建立该计数器,若已建立,则判断前一次发送LMP消息所使用的序列号是否为最大值,若为最大值,则进行序列号翻转,若还未达到最大值,则进行序列号递增。
进一步地,所述根据所提取的LMP认证对象获取对应的本地LMP安全联盟,基于本地LMP安全联盟及所提取的LMP认证对象,对所接收的LMP消息进行认证的步骤具体为:
根据所提取的LMP认证对象的密钥标识信元查找本地对应的LMP安全联盟,当找到对应的本地LMP安全联盟时,将所提取的LMP认证对象中的密钥标识、序列号及所接收到的原始LMP消息内容作为本地对应的LMP安全联盟的密钥算法的参数,生成第二认证数据,判断第二认证数据与所提取的LMP认证对象中的认证数据是否一致,若一致,则对所接收的LMP消息的认证通过,否则失败。
进一步地,在提供抗重放攻击服务的情况下,在进行认证数据的认证之前,还包括:
接收方使用抗重放窗口对所提取的LMP认证对象中的序列号进行序列号检查,判断当前接收的LMP消息是否是重复消息,若是重复消息则丢弃该消息,否则再进行认证数据的认证;当LMP消息认证通过时,使用LMP消息中的LMP认证对象的序列号更新抗重放窗口的计数器。
基于本发明实施例,本发明还提供一种基于链路管理协议LMP安全联盟的消息传送装置,该装置包括:
配置模块,用于配置LMP安全联盟;
发送模块,用于在发送LMP消息时,基于本地的LMP安全联盟生成LMP认证对象,并在LMP消息中携带所生成的LMP认证对象;
接收模块,用于在接收到LMP消息时,从接收的LMP消息中提取LMP认证对象,根据所提取的LMP认证对象获取对应的本地LMP安全联盟,并基于本地LMP安全联盟及所提取的LMP认证对象,对所接收的LMP消息进行认征。
进一步地,所述LMP安全联盟包括的参数有:密钥标识KeyID、密钥Key、密钥算法algorithm、序列号Sequencenumber;所述LMP认证对象的对象内容部分包含的信元有:密钥标识KeyID、序列号Sequencenumber、认证数据AuthenticationData。
进一步地,所述发送模块包括:
序列号生成模块,用于判断是否已建立用于产生LMP安全联盟中的序列号的计数器,若未建立,则建立该计数器,若已建立,则判断前一次发送LMP消息所使用的序列号是否为最大值,若为最大值,则进行序列号翻转,若还未达到最大值,则进行序列号递增;
对象生成模块,用于生成一个新的LMP认证对象;将LMP安全联盟中的密钥标识复制到所述LMP认证对象中的密钥标识信元中;将LMP安全联盟中的序列号复制到所述LMP认证对象中的序列号信元中;
认证数据生成模块,用于将LMP安全联盟中密钥标识和序列号及原始LMP消息内容作为LMP安全联盟中的密钥算法的参数,生成认证数据,并将计算所得的认证数据复制到LMP认证对象中的认证数据信元中;
发送子模块,用于发送携带LMP认证对象的LMP消息。
进一步地,所述接收模块包括:
接收子模块,用于接收LMP消息,并从LMP消息中提取LMP认证对象;
抗重放检测模块,用于使用抗重放窗口对所提取的LMP认证对象中的序列号进行序列号检查,判断当前接收的LMP消息是否是重复消息,若是重复消息则丢弃该消息,否则再进行认证数据的认证;当LMP消息认证通过时,使用LMP消息中的LMP认证对象的序列号更新抗重放窗口的计数器;
认证数据检测模块,用于将所提取的LMP认证对象中的密钥标识、序列号及所接收到的原始LMP消息内容作为本地对应的LMP安全联盟的密钥算法的参数,生成第二认证数据,判断第二认证数据与所提取的LMP认证对象中的认证数据是否一致,若一致,则对所接收的LMP消息的认证通过,否则失败。
本发明能够保证LMP消息的完整性和机密性,具有抗重放攻击能力,解决了与密钥表的兼容问题。
附图说明
图1为本发明实施例提供的携带LMP认证对象的LMP消息交互流程;
图2为本发明实施例提供的携带LMP认证对象的LMP消息输出处理;
图3为本发明实施例提供的携带LMP认证对象的LMP消息输入处理;
图4为本发明实施例提供的基于链路管理协议安全联盟的消息传送装置的功能模块结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下举实施例并参照附图,对本发明进一步详细说明。
本发明实施例提供的一种基于链路管理协议安全联盟的消息传送方法的步骤流程如下:
步骤101、配置LMP安全联盟;
所述LMP安全联盟包含如下一些参数:
(1)密钥标识KeyID,用于唯一的标识一个安全联盟;
(2)密钥Key,用于对数据进行加密;
(3)密钥算法algorithm,用于使用密钥Key对LMP消息进行加密,生成LMP认证对象中的认证数据信元的内容;
(4)序列号Sequencenumber,用于提供抗重放保护服务。
在消息交互的双方都需要配置LMP安全联盟,要实现基于LMP安全联盟的LMP消息验证,则要求发送方和接收方都配置有相同的LMP安全联盟。
若实际应用中不需要提供给抗重放保护服务,则安全联盟中可不包含所述序列号参数,相应地,在LMP认证对象中也可不包含序列号信元。
步骤102、对LMP消息中的LMP对象进行扩展,新增用于对LMP消息进行认证的LMP认证对象AuthenticationObject;
在LMP中,LMP消息由一个协议头和一系列的对象组成。LMP对象可以是可协商的或不可协商的(由对象头部的N比特标志)。可协商对象可用来让设备同意某些确定的值。不可协商对象用来表示不需要或是不允许协商的确定的值。所有的值按照网络字节顺序定义。LMP对象格式如表1所示:
表1LMP对象格式
N信元为1比特的标志,用于表示这个对象是可协商的(N=1)还是不可协商的(N=0)。
C-Type信元用于指示对象的类型,7比特长度,对象的类型具有唯一性。
Class信元用于指示对象类的类名,8比特长度,每个对象都有一个类名。
Length信元用于指示对象的字节长度,16比特长度,所指示的对象字节长度包括N、C-Type、Class、和Length域。
为了达到完整性保护和抗重放攻击的效果,本发明对LMP对象进行扩展,新增LMP认证对象。参考表1的LMP对象格式,LMP认证对象在对象内容(objectcontents)里加入了认证对象所需的密钥标识(KeyID)、序列号(SequenceNumber)、认证数据(AuthenticationData)、填充(Padding)等信元,LMP认证对象的结构如表2所示。
表2LMP认证对象
其中,LMP认证对象内容中所包含的信元的含义说明如下:
密钥标识KeyID,用于唯一标识一个LMP安全联盟,32bit长度。
序列号SequenceNumber,用于抵抗重放攻击,32bit长度,非减序列号。
通过改变序列号可以提供抗重播保护。序列号初始值为一伪随机数。当LMP消息通过认证后,接收路由器必须更新接收侧抗重放窗口的序列号。序列号有翻转程序(即当路由器发送的序列号达到最大值时,下一个序列号为0)。为了防止出现序列号重复的情况,本发明结合密钥更新机制,周期性更新密钥,每次更新密钥即重建一次安全联盟。抗重放服务可以取消,当不需要抗重放服务时,LMP认证对象中的序列号必须设置为预设值,例如设置为0,用于指示对端不用进行抗重放检测,并在接收时忽略该值。
认证数据AuthenticationData,用于为一个不固定长度的信元,其中包括完整性检查值(ICV)或者消息认证码(MessageAuthenticationCode,MAC)。通用认证头没有定义身份验证器,但有两个强制实施身份验证器:HMAC-SHA-96和HMAC-MD5-96,输出结果为96个位。同时,这一选项没有定义使用公共密钥身份验证算法(比如RSA和DDS)。
在此介绍在散列消息认证码(HMAC)模式下的NISTSHS系列算法,目前有效的加密认证算法包括:HMAC-SHA-1;HMAC-SHA-256;HMAC-SHA-384;HMAC-SHA-512。在本发明机制下必须至少支持HMAC-SHA-256,应该支持HMAC-SHA-1,另外HMAC-SHA-384和HMAC-SHA-512可作为备选支持选项。
填充(Padding),该信元为可选信元,用于保证IPV6的8字节对齐,在IPV6中这一项必须使用。如果使用HMAC-SHA-1作为认证算法则认证数据是20字节,加上1字节的下一个头,2字节的预留,4字节的序列号和4字节的KeyID,总共是32字节,已经是8字节对齐,不需要填充。如果使用HMAC-SHA-256作为认证算法则总共数据是44字节,需要填充4个字节。
步骤103、在发送LMP消息时,基于LMP安全联盟生成LMP认证对象,并在LMP消息中携带所生成的LMP认证对象;在接收到LMP消息时,从接收的LMP消息中提取LMP认证对象,根据所提取的LMP认证对象获取对应的本地LMP安全联盟,基于本地LMP安全联盟及所提取的LMP认证对象,对所接收的LMP消息进行认证。
图1为本发明实施例提供的LMP消息的交互流程。LMP消息包含:原始IP头和LMP载荷两个部分。本发明是在LMP载荷中加入了本发明新增的LMP认证对象,LMP认证对象中含有密钥标识KeyID、序列号SequenceNumber、认证数据AuthenticationData等信元。
工作流程如下:
步骤101、基于预配置的LMP安全联盟,路由器A生成LMP认证对象ObjA;
步骤102:路由器A发送携带认证对象ObjA的LMP消息给路由器B;
步骤103、路由器B收到路由器A发送的携带认证对象ObjA的LMP消息后,依据ObjA对LMP消息进行认证,如果认证通过,则执行步骤104;否则丢弃该消息,结束流程;
步骤104:基于预配置的LMP安全联盟,路由器B生成一个新的LMP认证对象ObjB;
步骤105:路由器B返回携带认证对象ObjB的LMP消息给路由器A;
步骤106:路由器A收到路由器B发送的携带认证对象ObjB的LMP消息后,依据ObjB对LMP消息进行认证,如果认证通过,则接收路由器B的LMP消息,否则丢弃。
所述LMP消息以Hello消息为例,消息结构如下:
<HelloMessage>::=<CommonHeader>[<authenticationobject>]
<HELLO>
其中CommonHeader为通用头部,authenticationobject为认证对象,Hello消息的分类号为22。
图2为本发明实施例提供的发送方发送LMP消息的步骤流程,该流程给出了整合LMP认证对象之后的LMP消息输出处理过程,其中包含了LMP消息的完整性验证和抗重播检查步骤,具体步骤如下:
步骤201、在发送LMP消息之前,发送方查找该LMP消息所使用的LMP安全联盟,如果查到LMP安全联盟,则执行步骤202;否则忽略本实施例的流程,执行步骤211,即不对该LMP消息进行LMP认证对象的处理,直接发送该LMP消息或通过其它技术手段来保证LMP消息的安全性。
本发明一优选实施例中,LMP消息所使用的安全联盟只跟通信双方的地址有关,通过手动进行配置。LMP协议栈在发送消息时,会根据消息接收方的地址在自己的数据库中找到所需的安全联盟。
步骤202、判断是否已经建立用于产生LMP安全联盟中的序列号sequencenumber的计数器,若已经建立,则执行步骤204,若还未建立,则执行步骤203;
步骤203、建立序列号计数器,通过该计数器生成一个新的序列号;
在新建序列号计数器时,其初始值可以设置为一个随机值;
步骤204、判断前一次发送LMP消息所使用的序列号是否为最大值,若是则执行步骤205,否则执行步骤206;
步骤205、将前一次序列号翻转为1,然后执行步骤207;
步骤206、在前一次序列号的基础上加1;
本发明发送方创建一个输出端的LMP安全联盟时,将序列号发送计数器初始化为一32位的伪随机数,之后每发送一个包计数器都增1,达到最大值后翻转为1。这样保证每个序列号都独一无二,从而抵御重放攻击。
若不需要提供抗重放服务,则直接将序列号置为0即可,接收方在检测到序列号为0时,不进行抗重放的检测。
步骤207、生成一个新的LMP认证对象,将LMP安全联盟中的KeyID拷贝到LMP认证对象中的KeyID信元中。
步骤208、将最新生成的LMP安全联盟的序列号sequencenumber的当前值拷贝到LMP认证对象中的序列号sequencenumber信元中。
步骤209、基于LMP安全联盟中的密钥算法algorithm,以当前密钥标识KeyID对应的密钥key、当前的序列号sequencenumber及原始LMP消息内容作为参数,计算针对LMP消息的认证数据,并将计算的认证数据填写到LMP认证对象的认证数据AuthenticationData信元中;所述原始LMP消息内容是指不包含LMP认证对象的发送方真实想要发送的初始LMP消息内容。
若新生成的LMP认证对象位数不够或为保证IPV6的8字节对齐,则还需要对LMP认证对象中的填充Padding信元进行填充处理。
优选地,所述LMP安全联盟中的密钥算法algorithm为单向加密函数;
步骤210、将生成的LMP认证对象整合到LMP消息当中;
步骤211、向接收方发送LMP消息;
通过上述步骤可以理解,发送方通过LMP消息携带的LMP认证对象中的密钥标识信元来指示接收方自己所使用的是哪个安全联盟,通过认证数据信元来验证LMP消息的内容是否被篡改,通过序列号信元来实现抗重放攻击。
图3为本发明实施例提供的整合LMP认证对象之后的LMP消息输入处理流程,在接收方接收LMP消息之前,需要依照发送方的LMP安全联盟进行接收方的LMP安全联盟的配置,也可通过其它技术手段将发送方的LMP安全联盟同步到本端。接收方接收LMP消息的具体步骤如下:
步骤301、接收方接收到LMP消息后,提取LMP消息中的LMP认证对象;
步骤302、接收方根据LMP消息中LMP认证对象的KeyID在本地查找对应的LMP安全联盟,如果找到对应的LMP安全联盟,则执行步骤303,否则执行步骤308或终止当前处理流程;
由于导致未找到本地对应的LMP安全联盟的情况有两种,一种是本地没有配置对应的LMP安全联盟,还有一种是LMP认证对象被篡改过,导致无法识别LMP安全联盟,因此,接收方应当基于预设的策略决策是继续处理还是终止对当前接收的LMP消息的处理。
步骤303、接收方使用抗重放窗口对接收到的LMP消息中的LMP认证对象中的序列号进行序列号检查,判断当前接收的LMP消息是否是重复消息,若是重复消息,则执行步骤309,否则执行步骤305;
所述抗重放窗口用于限定在当前时间能够接收到的LMP消息中LMP认证对象中的序列号的取值范围,当LMP消息中LMP认证对象中的序列号在抗重放窗口之外时,表明该LMP消息为重复发送的LMP消息。
该实施例中,抗重放窗口为32比特接收计数器及位图,该抗重放窗口的序列号计数器初始化为0,当正确接收到第一个LMP消息后,计数器的值设为第一个LMP消息中LMP认证对象的序列号,之后每正确接收一个包增加1。为了加速抛弃重复包,在接收到的LMP消息与LMP安全联盟匹配之后紧接着进行序列号检查。通过接收方的滑动窗口协议,重复的LMP消息被丢弃。如果接收到的LMP消息落在窗口中并且不是重复LMP消息,或者LMP消息在窗口的右边,接收方就进行认证数据ICV计算。如果ICV验证失败,接收方必须丢弃这个LMP消息。接收方的抗重放窗口只有在ICV验证成功的时候才更新。
步骤305、接收方依据LMP认证对象中的KeyID指示的本地安全联盟及LMP认证对象中的序列号,计算认证数据,并进行认证数据的认证;
认证数据ICV计算公式如下:
Authenticationdata=algorithm(key,序列号,原始LMP消息内容);
其中key为安全联盟中的密钥,algorithm为安全联盟中定义的密钥算法;
该步骤中,接收方通过KeyID获得对应的密钥key,从接收到的LMP认证对象中取得序列号,从LMP消息中获取除LMP认证对象之外的消息内容后,将上述内容作为密钥算法函数的参数,使用与发送端相同的方法计算出第二认证数据,然后将LMP认证对象中的认证数据信元中的认证数据作为第一认证数据,进行第一认证数据与第二认证数据的比较,判断二者是否一致,若一致,则验证成功,若不一致,说明LMP消息的内容被篡改过,验证失败。
步骤306、对LMP消息进行认证,若认证通过,则执行步骤307,否则执行步骤309;
步骤307、更新抗重放窗口计数器的值为当前LMP消息中LMP认证对象中的序列号值;
步骤308、根据RFC4204定义的标准处理其它的LMP对象;
步骤309、丢弃当前处理的LMP消息,对当前LMP消息的处理流程结束。
基于前述方法实施例,本发明还提供一种基于链路管理协议LMP安全联盟的消息传送装置,其结构如图4所示,该装置400包括:
配置模块410,用于配置LMP安全联盟;所述LMP安全联盟包括的参数有:密钥标识KeyID、密钥Key、密钥算法algorithm、序列号Sequencenumber;
发送模块420,用于在发送LMP消息时,基于本地的LMP安全联盟生成LMP认证对象,并在LMP消息中携带所生成的LMP认证对象;所述LMP认证对象的对象内容部分包含的信元有:密钥标识KeyID、序列号Sequencenumber、认证数据AuthenticationData。
接收模块430,用于在接收到LMP消息时,从接收的LMP消息中提取LMP认证对象,根据所提取的LMP认证对象获取对应的本地LMP安全联盟,并基于本地LMP安全联盟及所提取的LMP认证对象,对所接收的LMP消息进行认征。
优选地,所述发送模块420包括:
序列号生成模块421,用于判断是否已建立用于产生LMP安全联盟中的序列号的计数器,若未建立,则建立该计数器,若已建立,则判断前一次发送LMP消息所使用的序列号是否为最大值,若为最大值,则进行序列号翻转,若还未达到最大值,则进行序列号递增;
对象生成模块422,用于生成一个新的LMP认证对象;将LMP安全联盟中的密钥标识复制到所述LMP认证对象中的密钥标识信元中;将LMP安全联盟中的序列号复制到所述LMP认证对象中的序列号信元中;
认证数据生成模块423,用于将LMP安全联盟中密钥标识和序列号及原始LMP消息内容作为LMP安全联盟中的密钥算法的参数,生成认证数据,并将计算所得的认证数据复制到LMP认证对象中的认证数据信元中;
发送子模块424,用于发送携带LMP认证对象的LMP消息。
优选地,所述接收模块430包括:
接收子模块431,用于接收LMP消息,并从LMP消息中提取LMP认证对象;
抗重放检测模块432,用于使用抗重放窗口对所提取的LMP认证对象中的序列号进行序列号检查,判断当前接收的LMP消息是否是重复消息,若是重复消息则丢弃该消息,否则再进行认证数据的认证;当LMP消息认证通过时,使用LMP消息中的LMP认证对象的序列号更新抗重放窗口的计数器;
认证数据检测模块433,用于将所提取的LMP认证对象中的密钥标识、序列号及所接收到的原始LMP消息内容作为本地对应的LMP安全联盟的密钥算法的参数,生成第二认证数据,判断第二认证数据与所提取的LMP认证对象中的认证数据是否一致,若一致,则对所接收的LMP消息的认证通过,否则失败。
基于前述方法实施例,本发明还可提供一种基于链路管理协议LMP安全联盟的消息发送装置,该装置包括前述装置实施例中的配置模块410及发送模块420,对应模块的功能可从前述方法实施例和装置实施例中直接导出,此处不再赘述。
基于前述方法实施例,本发明还可提供一种基于链路管理协议LMP安全联盟的消息接收装置,该装置包括前述装置实施例中的配置模块410及发送模块430,对应模块的功能可从前述方法实施例和装置实施例中直接导出,此处不再赘述。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (8)
1.一种基于链路管理协议LMP安全联盟的消息传送方法,其特征在于,该方法包括:
配置LMP安全联盟;
对LMP消息中的LMP对象进行扩展,新增用于对LMP消息进行认证的LMP认证对象,其中,所述新增用于对LMP消息进行认证的LMP认证对象的方法为:
扩展LMP对象的对象内容部分,在LMP对象的对象内容中填充如下信元:
密钥标识KeyID,用于唯一的标识一个LMP安全联盟;
序列号Sequencenumber,用于抵抗重放攻击;
认证数据AuthenticationData,用于存储LMP消息的完整性检查值或消息认证码;
在发送LMP消息时,基于本地的LMP安全联盟生成LMP认证对象,并在LMP消息中携带所生成的LMP认证对象,其中,所述在发送LMP消息时,基于本地LMP安全联盟生成LMP认证对象的步骤具体为:
生成一个新的LMP认证对象,将LMP安全联盟中的密钥标识复制到所述LMP认证对象中的密钥标识信元中;将LMP安全联盟中的序列号复制到所述LMP认证对象中的序列号信元中;
将LMP安全联盟中密钥标识和序列号及原始LMP消息内容作为LMP安全联盟中的密钥算法的参数,生成认证数据,并将计算所得的认证数据复制到LMP认证对象中的认证数据信元中;
在接收到LMP消息时,从接收的LMP消息中提取LMP认证对象,根据所提取的LMP认证对象获取对应的本地LMP安全联盟,并基于本地LMP安全联盟及所提取的LMP认证对象,对所接收的LMP消息进行认证,其中,所述根据所提取的LMP认证对象获取对应的本地LMP安全联盟,基于本地LMP安全联盟及所提取的LMP认证对象,对所接收的LMP消息进行认证的步骤具体为:
根据所提取的LMP认证对象的密钥标识信元查找本地对应的LMP安全联盟,当找到对应的本地LMP安全联盟时,将所提取的LMP认证对象中的密钥标识、序列号及所接收到的原始LMP消息内容作为本地对应的LMP安全联盟的密钥算法的参数,生成第二认证数据,判断第二认证数据与所提取的LMP认证对象中的认证数据是否一致,若一致,则对所接收的LMP消息的认证通过,否则失败。
2.根据权利要求1所述的方法,其特征在于,所述LMP安全联盟包括:
密钥标识KeyID,用于唯一的标识一个LMP安全联盟;
密钥Key,用于对数据进行加密;
密钥算法algorithm,用于使用密钥Key对LMP消息进行加密,生成LMP认证对象中的认证数据信元的内容;
序列号Sequencenumber,用于提供抗重放保护服务。
3.根据权利要求1所述的方法,其特征在于,在提供抗重放攻击服务的情况下,所述生成LMP认证对象的步骤中,在生成新LMP认证对象之前还包括:
判断是否建立了用于产生LMP安全联盟中的序列号的计数器,若未建立,则建立该计数器,若已建立,则判断前一次发送LMP消息所使用的序列号是否为最大值,若为最大值,则进行序列号翻转,若还未达到最大值,则进行序列号递增。
4.根据权利要求1所述的方法,其特征在于,在提供抗重放攻击服务的情况下,在进行认证数据的认证之前,还包括:
接收方使用抗重放窗口对所提取的LMP认证对象中的序列号进行序列号检查,判断当前接收的LMP消息是否是重复消息,若是重复消息则丢弃该消息,否则再进行认证数据的认证;当LMP消息认证通过时,使用LMP消息中的LMP认证对象的序列号更新抗重放窗口的计数器。
5.一种基于链路管理协议LMP安全联盟的消息传送装置,其特征在于,该装置包括:
配置模块,用于配置LMP安全联盟;
发送模块,用于在发送LMP消息时,基于本地的LMP安全联盟生成LMP认证对象,并在LMP消息中携带所生成的LMP认证对象,其中,所述LMP认证对象的对象内容部分包含的信元有:密钥标识KeyID、序列号Sequencenumber、认证数据AuthenticationData;
所述发送模块包括:对象生成模块,用于生成一个新的LMP认证对象;将LMP安全联盟中的密钥标识复制到所述LMP认证对象中的密钥标识信元中;将LMP安全联盟中的序列号复制到所述LMP认证对象中的序列号信元中;认证数据生成模块,用于将LMP安全联盟中密钥标识和序列号及原始LMP消息内容作为LMP安全联盟中的密钥算法的参数,生成认证数据,并将计算所得的认证数据复制到LMP认证对象中的认证数据信元中;
接收模块,用于在接收到LMP消息时,从接收的LMP消息中提取LMP认证对象,根据所提取的LMP认证对象获取对应的本地LMP安全联盟,并基于本地LMP安全联盟及所提取的LMP认证对象,对所接收的LMP消息进行认证;
所述接收模块包括:认证数据检测模块,用于将所提取的LMP认证对象中的密钥标识、序列号及所接收到的原始LMP消息内容作为本地对应的LMP安全联盟的密钥算法的参数,生成第二认证数据,判断第二认证数据与所提取的LMP认证对象中的认证数据是否一致,若一致,则对所接收的LMP消息的认证通过,否则失败。
6.根据权利要求5所述的装置,其特征在于,
所述LMP安全联盟包括的参数有:密钥标识KeyID、密钥Key、密钥算法algorithm、序列号Sequencenumber。
7.根据权利要求6所述的装置,其特征在于,所述发送模块还包括:
序列号生成模块,用于判断是否已建立用于产生LMP安全联盟中的序列号的计数器,若未建立,则建立该计数器,若已建立,则判断前一次发送LMP消息所使用的序列号是否为最大值,若为最大值,则进行序列号翻转,若还未达到最大值,则进行序列号递增;
发送子模块,用于发送携带LMP认证对象的LMP消息。
8.根据权利要求7所述的装置,其特征在于,所述接收模块还包括:
接收子模块,用于接收LMP消息,并从LMP消息中提取LMP认证对象;
抗重放检测模块,用于使用抗重放窗口对所提取的LMP认证对象中的序列号进行序列号检查,判断当前接收的LMP消息是否是重复消息,若是重复消息则丢弃该消息,否则再进行认证数据的认证;当LMP消息认证通过时,使用LMP消息中的LMP认证对象的序列号更新抗重放窗口的计数器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210061999.1A CN103312668B (zh) | 2012-03-09 | 2012-03-09 | 一种基于链路管理协议安全联盟的消息传送方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210061999.1A CN103312668B (zh) | 2012-03-09 | 2012-03-09 | 一种基于链路管理协议安全联盟的消息传送方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103312668A CN103312668A (zh) | 2013-09-18 |
CN103312668B true CN103312668B (zh) | 2016-06-15 |
Family
ID=49137454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210061999.1A Expired - Fee Related CN103312668B (zh) | 2012-03-09 | 2012-03-09 | 一种基于链路管理协议安全联盟的消息传送方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103312668B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103812661B (zh) * | 2014-03-10 | 2017-02-08 | 中国电子科技集团公司第三十四研究所 | 一种在lmp中采用认证安全实现邻居发现的方法 |
CN108141364B (zh) * | 2015-10-16 | 2021-09-17 | 诺基亚技术有限公司 | 用于消息认证的方法和装置 |
WO2017070973A1 (zh) * | 2015-10-31 | 2017-05-04 | 华为技术有限公司 | 因特网协议安全性隧道建立方法,用户设备及基站 |
DE102016219926A1 (de) | 2016-10-13 | 2018-04-19 | Siemens Aktiengesellschaft | Verfahren, Sender und Empfänger zum Authentisieren und zum Integritätsschutz von Nachrichteninhalten |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1913526A (zh) * | 2006-08-25 | 2007-02-14 | 华为技术有限公司 | 一种波分传输系统链路自动发现的方法和装置 |
CN101582781A (zh) * | 2008-05-14 | 2009-11-18 | 上海贝尔阿尔卡特股份有限公司 | 组播组加入的控制方法和装置及该控制的辅助方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101394677B (zh) * | 2007-09-19 | 2012-10-03 | 烽火通信科技股份有限公司 | 在自动交换光网络的节点中验证链路属性的方法和装置 |
-
2012
- 2012-03-09 CN CN201210061999.1A patent/CN103312668B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1913526A (zh) * | 2006-08-25 | 2007-02-14 | 华为技术有限公司 | 一种波分传输系统链路自动发现的方法和装置 |
CN101582781A (zh) * | 2008-05-14 | 2009-11-18 | 上海贝尔阿尔卡特股份有限公司 | 组播组加入的控制方法和装置及该控制的辅助方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103312668A (zh) | 2013-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3557840B1 (en) | Security implementation method, device and system | |
Dragomir et al. | A survey on secure communication protocols for IoT systems | |
US8560848B2 (en) | Galois/counter mode encryption in a wireless network | |
CN102347870B (zh) | 一种流量安全检测方法、设备和系统 | |
US7471943B2 (en) | Method for processing a security setup control message in mobile communication system | |
US8379638B2 (en) | Security encapsulation of ethernet frames | |
FI105739B (fi) | Verkkoon kytkettävä laite ja menetelmä sen asennusta ja konfigurointia varten | |
KR100651715B1 (ko) | 차세대 인터넷에서 자동으로 주소를 생성하고 수락하는방법 및 이를 위한 데이터 구조 | |
WO2016114842A1 (en) | End-to-end service layer authentication | |
CN103312668B (zh) | 一种基于链路管理协议安全联盟的消息传送方法及装置 | |
CN103716196A (zh) | 一种网络设备及探测方法 | |
US20040268123A1 (en) | Security for protocol traversal | |
WO2022001324A1 (zh) | 通信方法、装置及系统 | |
Moreira et al. | Security mechanisms to protect IEEE 1588 synchronization: State of the art and trends | |
WO2020135011A1 (zh) | 传输方法、装置、报文发送端和接收端 | |
CN103227742B (zh) | 一种IPSec隧道快速处理报文的方法 | |
US9137216B2 (en) | Session layer data security | |
CN103368731B (zh) | 基于哈希树的无线传感器网络安全数据发现和传播方法 | |
CN112714507B (zh) | 一种无线自组网间数据安全传输的方法 | |
CN101232519A (zh) | 基于IPSec协议的无线IP网络可变区域通信方法 | |
Skorpil et al. | Internet of things security overview and practical demonstration | |
CN101115055A (zh) | 通信网络中报告隧道数据包中各级错误的装置及方法 | |
CN100512278C (zh) | 一种把ipsec嵌入到ip协议栈的方法 | |
EP3131269B1 (en) | Method and device for conducting ah authentication on ipsec packet which has gone through nat traversal | |
WO2013109417A2 (en) | Notarized ike-client identity and info via ike configuration payload support |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160615 Termination date: 20210309 |
|
CF01 | Termination of patent right due to non-payment of annual fee |