一种应用于动态自组网的混合加密方法与流程

文档序号:18074311发布日期:2019-07-03 04:06阅读:248来源:国知局
一种应用于动态自组网的混合加密方法与流程

本发明涉及物联网系统中的信息安全技术领域,特别是涉及一种应用于动态自组网的混合加密方法。



背景技术:

物联网系统按照功能和网络结构的特点可以分为三类,包括:无线传感网络(wsn),移动自组网(manet),以及无线网格网络(wmn)。其中移动自组网特别适用于节点资源相对于传感器节点较丰富,节点移动性更强的特性,易于变换的网络拓扑结构场景。

针对自组网系统的特点,需要设计针对自组网定制的安全加密策略。该安全加密策略需要设计包含一个灵活鲁棒的密钥管理机制,从而可以应对由于网络拓扑结构带来的用户认证、密钥管理方面的问题。另一方面,由于自组网系统的节点运算能力和网络空口资源受限,需要设计一种相对简单的加解密机制,同时空口的资源消耗尽可能更小。

现有的加密方法包括对称加密算法和非对称加密算法。

虽然采用对称加解密算法可以在保持加解密密级的基础上实现低复杂度的运算。然而,对称加密系统的密钥的配送、用户的身份认证却是一个比较困难的问题。特别是针对自组网系统可能的频繁变化的拓扑结构情况,往往需要频繁的进行用户的认证和密钥管理。由于对称加密系统的对称密钥的私密性导致了需要采用其他安全通道或者辅助手段才能实现密钥的安全输送,这对于自组网系统不论从空口资源的有效利用,以及系统复杂度的要求都是无法承受的。

基于数字证书的非对称加密机制存在运算复杂的问题。不论是基于rsa还是椭圆双曲函数(ecc)的方式,基于非对称的加解密方案运算量都较大。同时,由于公钥认证机制中ca节点负责的任务非常集中,因而针对ca节点的各类攻击可能会出现导致整个网络瘫痪的风险。与此同时,其针对拓扑结构动态可变的网络应对的灵活性也不强。

为进一步降低基于公钥认证体系的实现复杂度,目前研究者提出了几种可能的实现方式:

zhoul和haaszj提出一个局部分布式ca,假设是一个跨域的单ca,将证书复制到多个充当服务器的节点上,这本质上还是一个单ca结构,只适用于小规模的manet网络,且缺乏对整个协议的详细描述,多个服务器间的维护和控制也没有说明。luoh,kongj,zerfosp等人发展了zhoul和haaszj的思想,构建了一个全局分布式ca,将ca私钥份额分给网络中所有节点,增强分布式服务的可用性,但所有节点都拥有ca私钥的份额,增加ca私钥暴露的风险及系统的复杂性,降低了整个系统的安全性。

为了增强节点的抗攻击能力,消除系统的单失效点,随着无线设备的容量,计算能力的相对增强,原来认为由于资源限制而不适用于无线环境的门限方案得到广泛研究。kimj和bahks.提出一个分布式的信任机制,只有当超过门限值的认证服务器一起合作才能颁发证书。yangk,jiaxh,zhangb等人提出一种基于(t,n)门限机制认证方案,允许节点动态变化重组共享认证服务器私钥。chaizc,caozf,lurx提出一种有效的抵御口令猜测攻击的门限口令认证方案。以上的认证方案虽然都采用了(t,n)门限方案,使得ca具有一定的容侵性,但这些方案都是基于传统的公钥证书机制ca,这种ca体系任务繁重,承担对证书的管理,维护,撤销,更新,在计算资源相对丰富的有线网络中也容易成为系统的瓶颈,再加上门限方案的计算复杂性,各个认证服务器间需要更多的协同工作,无疑系统负载及复杂性进一步增加,这使得在manet中,利用门限机制来共享密钥很难取得理想效果。



技术实现要素:

本发明所要解决的技术问题是提供一种应用于动态自组网的混合加密方法,具有低复杂度,灵活拓扑结构变化的特点。

本发明解决其技术问题所采用的技术方案是:提供一种应用于动态自组网的混合加密方法,包括以下步骤:

(1)当所有终端节点开机后,中心节点执行组网身份认证;

(2)完成身份认证后,所述终端节点进行数据的上报、接收中心节点发送的命令、以及实现终端节点之间的点对点传输;在数据传输的过程中,采用基于时变动态密钥的对称加密方法。

所述步骤(1)中终端节点向中心节点上报用户标识信息以及相应的公钥信息,所述中心节点判断用户合法情况,当用户合法时,则进行组网用户身份注册,并向终端节点下发通信密钥以及用户数字证书。

所述步骤(1)中的终端节点在出厂时均安装有初始中心节点的数字证书;所有的终端节点在开机后,均自行计算非对称密钥的公钥和私钥组合,同时中心节点保存了所有终端节点的身份信息的hash值;终端节点执行接入操作,发送随机数据包要求中心节点使用私钥进行加密;中心节点计算数据包hash,得到数据指纹,将该指纹用中心节点私钥加密的密文发送给终端节点;终端节点使用中心节点的公钥进行解密,并与本地hash得到的数据指纹进行比对,如果两者相符,说明对方确是中心节点本身;终端节点发送携带个人信息的数据包与其根据计算得出的终极安全确认码,终极安全确认码由终端根据hash(randomnumber+salt)规则生成,终端只需保存randomnumber,而salt应采用由保密人自行记忆的方式,而最终确认码则是128bit的16进制一维数组,采用此方式能做到终极安全验证码的安全保存,除非保密人泄露否则很难窃取,所述数据包明文基于中心节点的公钥进行加密传输,数字签名是基于数据包的指纹使用终端节点私钥进行加密;中心节点基于私钥进行数据包的解密,解密完成以后将得到终端节点身份信息、终端公钥信息以及数字签名;中心节点使用终端公钥信息解密数字签名,得到数据指纹,所述数据指纹使用hash函数得到相应的摘要,两者之间进行数据比对以验证明文数据的完整性;中心节点比较接收的终端节点身份信息的hash值同本地的终端节点保存的身份hash值是否符合,如果相符则保存终端节点的身份信息和其终极安全确认码并生成数字证书,并调用hash函数生成指纹数字证书的指纹算法;所述数字证书包括:终端节点名称id、终端节点的公钥,数字证书对应的数字指纹,以及针对该指纹采用指纹加密方法设计的加密系统进行加密,最终把这些打包后形成终端节点的数字证书;根据终端节点的上报信息生成相应的插件,将该插件同数字证书合并后,使用终端节点的公钥进行加密,下发给终端节点。

所述步骤(2)中的基于时变动态密钥的对称加密方法具体为:接收端和发送端均保存对称加密的初始化用户插件;当发送端发送消息的时候,发送端首先根据当前的系统时间戳随机计算出相应的动态更新信息;基于该更新信息发送端采用基于系统时间和当前密钥的交织hash算法来实现新密钥的生成;发送端基于新密钥进行加密,并发送数据包;接收端根据接收信号的系统时间戳计算出相应的动态更新密钥;接收端根据更新密钥进行解密,完成数据包的解析。

所述发送端在每次数据包的发送前,都叠加相应随机数,当通信遭到恶意复制攻击的时候,接收端将收到同样随机数的消息,此时说明存在恶意重复发送破坏通信,此时接收端会向发送端反馈停止发送指示,发送端接收到指示以后会停止后续数据的发送过程,并向接收端进行反馈。

所述安全系统平滑切换具体为:当前中心节点向网络广播中心节点切换消息,该消息中还包含了候选中心节点发送切换请求消息包含的相关信息;网络中存在的候选中心节点收到该消息以后,根据当前的负载情况自行判断是否申请成为中心节点,期望成为中心节点的用户将向当前中心节点发送切换请求消息;当前中心节点首先根据收到的候选中心节点的请求消息中的信息,针对申请的用户通过基于数字签名的认证方式进行身份认证;其次,中心节点进行申请候选节点的当前能力评估,并确定是否满足节点切换条件;中心节点与选定节点进行终极安全确认码的确认;中心节点将对所有申请的候选节点发送选定节点的id,各候选节点根据id判断申请被接受还是被拒绝;被选定的候选节点将向当前的中心节点发送其数字证书,并使用其私钥对该数字证书进行签名;当前中心节点验证数字签名,确认是目标节点发送的完整数字证书,再验证该数字证书的正确性;当前中心节点广播该候选节点的数字证书,并广播确认消息,其他终端节点向新中心节点发送其安全确认码,确认整个中心节点切换流程结束。

当网络拓扑结构发生变化时,需要重新选择认证节点从而能使安全系统平滑切换,当前中心节点会通过广播的方式同候选中心节点进行握手以及双向认证;基于完整身份认证以及终极安全确认码确认后,中心节点将通过消息的形式传递当前网络的用户信息,并通过广播的形式下发广播,从而实现中心节点的切换;整个过程采用基于公钥的双向认证和用户签名。

当终端节点的网络情况发生变化时,终端节点转移到异常处理状态;具体分为两种情况:第一种情况为当终端节点由于重新开机或者网络通信中断掉线时,将执行由终端节点发起的重新入网接入,重新执行初始接入过程;第二种情况为当终端节点由于敌方攻击导致无法进行正常通信时,终端节点将主动发起本用户身份无效流程,并销毁本地相关密钥和身份信息。

所述第一种情况由终端节点发起的重新入网接入,重新执行初始接入过程具体为:终端节点使用中心节点公钥加密发送一串随机序列,指示中心节点使用私钥进行加密;中心节点针对该随机序列首先进行hash计算其数字指纹,再使用中心节点私钥对该数字指纹进行加密后发送;终端节点使用中心节点公钥对序列进行解密,并比对本地的数字指纹,验证接收信号是否由中心节点发送过来;当中心节点的身份验证完毕以后,终端节点会发送一个复合数据包,该数据包包括终端节点的数字证书,针对该数字证书数据包的数字指纹,并对该数字指纹使用终端节点的私钥进行加密形成数字签名,终端节点将数字证书和数字签名合并后,使用中心节点的公钥进行加密,再发送给中心节点;中心节点使用中心节点私钥对接收信号进行解密,得到终端节点数字证书和数字签名,再使用本地的数字证书专用指纹解密算法,对数字证书的指纹进行解密,再将该解密后的数字指纹同数字证书的hash散列进行比较,从而验证数字证书的完整性;当数字证书完整性验证完成后,中心节点将首先判断数字证书中的终端身份信息是否为本部成员,当判断该终端为本部成员时,使用该数字证书中的公钥对数字签名进行解密;将解密完成后的数字指纹,同数字证书的hash散列进行比对,从而验证是否匹配,当两者匹配的时候,验证该用户身份有效;中心节点完成用户注册过程,下发该终端节点的插件,并通知终端节点后续使用动态对称密码进行通信,注册完成;终端节点收到该信息后,保存插件,完成注册过程,后续使用动态对称密码同中心节点进行通信。

所述第二种情况时终端节点将主动发起本用户身份无效流程具体为:终端节点发送本节点加解密系统无效请求消息,该请求消息中还携带有数字证书;中心节点删除终端身份信息和用户插件;终端节点同时还删除本地终端用户信息、终端数字证书、终端公/私钥、用户插件以及中心节点公钥。

有益效果

由于采用了上述的技术方案,本发明与现有技术相比,具有以下的优点和积极效果:本发明结合了对称和非对称加密的特点,即结合了非对称加密系统的身份认证和密钥分配的优势,同时亦可以获得采用对称加解密系统的运算复杂度的优势。同时,采用动态对称密钥自更新的算法,设计了动态对称密钥的更新方案。本发明设计了一套中心认证节点的切换方式,还设计了应答流程来实现中心节点的动态自更新,其更新过程有较高的安全保护级别,同时对一般用户节点透明,减少了空口信令开销和复杂度。

附图说明

图1是本发明的总体流程示意图;

图2是本发明中用户信息的双向注册流程图;

图3是本发明中动态密钥对称加解密算法的流程图;

图4是本发明中断网后终端节点重新入网注册流程图;

图5是本发明中终端节点出现敌方窃取的风险的时的处理流程图;

图6是本发明中中心节点动态切换流程图。

具体实施方式

下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

本发明的实施方式涉及一种应用于动态自组网的混合加密方法,如图1所示,包括以下步骤:

1、当所有用户开机以后,将执行组网身份认证的过程。根据自组网协议,每个终端节点将进行网络接入和注册。此时中心节点根据终端节点上报的接入信息进行注册过程,产生各个终端节点的数字证书。该过程简述为终端节点上报用户标识信息,以及相应的公钥信息,中心节点进行判断,当用户合法情况下,则从而进行组网用户身份注册,并下发通信密钥以及用户数字证书。此过程采用非对称加密的方式进行密钥的配送,将对称密钥通过安全链路进行下发。

2、当用户注册完成以后,即可进行数据的上报和接收中心节点发送的命令,除此以外,根据自组网的通信协议,还可能进行终端之间点对点的传输。所有这些传输均基于前一步获取的对称初始密钥,进行对称加解密收发操作。为了增加这一关键过程的安全性,本实施方式中采用了创新的基于时变动态密钥的对称加密方案。本实施方式的动态时变的会话密钥采用的是基于传输内容和当前密钥的交织的hash函数的方案,可以保证前向的不可追溯性,同时保证了尽可能的实现了密钥生成的随机性。

当由于网络拓扑结构发生变化时,例如网络拆分或者合并,此时需要重新选择认证节点从而能使安全系统平滑切换。本实施方式中,当前中心节点会通过广播的方式同候选中心节点进行握手以及双向认证。基于完整身份认证后,中心节点将通过消息的形式传递当前网络的用户信息。并通过广播的形式下发广播,从而实现中心节点的切换。而且采用终极密钥确认的方式,防止了终端被攻击者挟持而中心节点毫无察觉,被挟持终端通过竞选成为新中心节点控制整个网络的最糟糕情景。并且整个过程采用基于公钥的双向认证和用户签名,保证了通信的可靠安全性,另一方面,通过基于上一层中心节点数字签名的机制,保证了更替的数字证书的可靠性。同时,该过程对其他用户节点是透明的,不会对网络整体负载产生影响。

当终端网络情况发生变化,终端转移到异常处理状态。该状态针对两种不同的情况选择不同的处理分支。

第一种情况:当终端由于重新开机、或者网络通信中断掉线时,将执行由终端发起的重新入网接入,重新执行初始接入过程;

第二种情况:当终端由于敌方攻击导致无法进行正常通信时,在可能的情况下将主动发起本用户身份无效流程,并销毁本地相关密钥和身份信息,从而防止敌方伪装窃取网络信息。

图2给出了针对自组网系统设计的用户信息的双向注册流程。

设备出厂情况下,所有用户设备安装初始中心节点的数字证书;

所有用户在开机后均自行计算非对称密钥的公钥和私钥组合,同时中心节点(以及高优先级的候选中心节点)保存了所有终端节点的身份信息;

终端用户执行接入操作。发送随机数据包要求中心节点使用私密进行加密;

中心节点计算数据包hash,得到数据指纹,将该指纹用中心节点私钥加密的密文发送给终端;

终端节点使用中心节点的公钥进行解密,并与本地hash得到的数据指纹进行比对,如果两者相符,说明对方确是中心节点本身;

终端节点发送携带个人信息的数据包(包括终端身份信息,最终安全确认码,终端节点的公钥,以及数字签名),这些数据包明文基于中心节点的公钥进行加密传输。数字签名是基于数据包的指纹使用终端节点私钥进行加密。

中心节点基于私钥进行数据包的解密。解密完成以后将得到四个包,包括用户身份信息,终级安全确认码,终端公钥信息,以及数字指纹。

使用终端公钥信息解密数字签名,得到数据指纹。同时,数据指纹使用hash函数得到相应的摘要,两者之间进行数据比对以验证明文数据的完整性。

比较接收的用户信息的hash值同本地用户信息保存的hash值是否符合,如果相符则保存用户信息以及最终安全确认码并生成数字证书,并调用hash函数生成指纹数字证书的指纹算法。终端的数字证书包括:终端节点名称id,终端节点的公钥,数字证书对应的数字指纹,以及针对该指纹采用自主设计的指纹加密方法设计的加密系统进行加密。最终把这些打包后形成终端节点的数字证书。

根据用户的上报信息生成相应的用户插件,将该插件同数字证书消息合并后,使用终端的公钥进行加密,下发给终端。

用户注册过程完成。

当网络拓扑结构发生改变的情况下,中心节点会通知终端完成进行重新注册过程。终端重新注册时,将基于数字证书而非终端用户信息再执行如上的过程实现。

图3给出了动态密钥对称加解密算法的流程。

完成用户注册以后,即开始数据传输的对称加解密流程。在该流程下:

中心节点和终端均保存对称加密的初始化用户插件;

当中心节点下发广播消息的时候,中心节点首先根据当前的系统时间戳(通信的帧号定时)随机计算出相应的动态更新信息;

基于该更新信息中心节点采用基于系统时间和当前密钥的交织hash算法来以实现新密钥的生成;

中心节点基于该算法和密钥进行加密,并下发数据包;

终端节点根据接收信号的系统时间戳(通信帧号定时)按照同样的方式计算出相应的动态更新密钥;

终端节点根据该解密密钥进行解密,完成数据包的解析。

由于这里采用的动态对称加密的方式,动态信息的生成机制,以及算法同密钥的双重动态变化机制都保证了算法有非常高的安全等级,因此可以采用低冗余的hash算法生成数字签名,降低冗余度。

在每次数据包的发送前,都叠加相应随机数,当通信遭到恶意复制攻击的时候,接收端将受到同样随机数的消息,此时说明存在恶意重复发送破话通信,此时接收端会向发送端反馈停止发送指示,发送端接收到指示以后会停止后续数据的发送过程,并向接收端进行反馈。

同时,终端向中心节点上报信息的加解密方案,终端同终端之间的点对点的加解密方案,也采用同样的方式进行。其中终端同终端之间的点对点的加解密方案,也采用中心节点配置的对称公钥进行,其动态更新方案依然基于收发节点实际发送数据包的系统时间(通信帧号定时)来实现。

当终端节点出现异常情况,如断网重连或者出现敌方攻击导致存在被窃取的风险的时候,终端节点将启动异常处理流程。

1)针对断网的情况

如因故重新启动,或回到覆盖范围内的情况,则终端将需要重新执行入网注册过程,完成用户的信息识别。终端节点将使用数字证书完成用户注册过程。该过程是基于用户数字证书的注册过程,同初始组网的网络基于用户信息的注册过程不同,与由于拓扑结构变化引起的网络注册过程一致,如图4所示。

完成对中心节点的身份验证。由于终端节点保存了中心节点的数字证书,因此使用中心节点公钥加密发送一串随机序列,指示中心节点使用私钥进行加密;

中心节点针对该随机序列首先进行hash计算其数字指纹,再使用中心节点私钥对该指纹数据进行加密后发送;

终端使用中心节点公钥对序列进行解密,并比对本地的数字指纹,从而验证接收信号是否是由中心节点发送过来;

当中心节点的身份验证完毕以后,开始验证终端节点的身份。此时终端节点会发送一个复合数据包,该数据包包括终端节点的数字证书,针对该数字证书数据包的数字指纹,并对该指纹使用终端节点的私钥进行加密形成数字签名。终端节点将该数字证书和数字签名合并后,使用中心节点的公钥进行加密,再发送给中心节点。

中心节点首先使用中心节点私钥对接收信号进行解密,得到终端节点数字证书和数字签名。中心节点再使用本地的数字证书专用指纹解密算法,对数字证书的指纹进行解密,再将该解密后的指纹同数字证书的hash散列进行比较,从而验证数字证书的完整性;

当数字证书完整性验证完成后,中心节点将首先判断数字证书中的终端id是否为本部成员(指完整集合而非当前组网用户列表)。当判断该终端为本部成员时,使用该数字证书中的公钥对数字签名进行解密;

将解密完成后的数字指纹,同数字证书的hash散列进行比对,从而验证是否匹配。当两者匹配的时候,可以验证该用户身份有效。

中心节点完成用户注册过程,下发该终端的插件,并通知终端后续使用动态对称密码进行通信,注册完成;

终端收到该信息后,保存插件,完成注册过程。后续使用动态对称密码同基站进行通信。

2)针对存在敌方窃取风险

终端节点开关,快速终端加解密系统失效。

当终端节点出现敌方窃取的风险的时候,可以使用该异常处理流程快速实现加解密系统失效。如图5所示,主要包括:

终端发送本节点加解密系统无效请求消息;该消息中终端还将携带数字证书。

中心节点基于在用户列表中删除终端id,删除用户插件;

终端删除本地终端用户信息,终端数字证书,终端公/私钥,用户插件,以及中心节点公钥等敏感信息。

当网络的拓扑结构发送变化,或者其他原因导致中心节点需要切换时,会触发如下的中心节点动态切换流程。该流程的主要过程如图6所示。

当前中心节点向网络广播中心节点切换消息。该消息中还包含了候选中心节点发送切换请求消息包含的相关信息。

网络中存在的候选中心节点(事先定义)收到该消息以后,根据当前的负载情况自行判断是否申请成为中心节点。期望成为中心节点的用户将向当前中心节点发送切换请求消息。

当前中心节点根据收到的候选用户请求消息中的信息。首先进行的是针对申请用户的身份认证。通过基于数字签名的认证方式,中心节点可以对上报节点身份有效性进行确认。其次,中心节点进行申请候选节点的当前能力评估,并确定是否满足节点切换条件。当收到多个节点的请求消息时,将对所有申请节点进行能力排序,选择其中确定为目标候选节点并与其进行最终安全确认码的确认。

中心节点将对所有申请的候选节点发送选定节点的用户id。各候选节点根据用户id判断申请被接受还是被拒绝。

被选定的候选节点将向当前的中心节点发送其数字证书,并使用其私钥对该数字证书进行签名。

当前中心节点验证数字签名,确认是目标节点发送的完整数字证书,再验证该数字证书的正确性。

当前中心节点广播该候选节点的数字证书,并广播确认消息,其他终端向新中心节点发送其安全确认码确认整个中心节点切换流程结束。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1