基于节点寻路的设备群组安全验证方法
文献发布时间:2024-04-18 19:58:21
技术领域
本发明涉及物联网安全领域,尤其涉及一种基于节点寻路的设备群组安全验证方法。
背景技术
当前,新兴工业趋势的设想是由大量异构嵌入式设备和移动设备组成智能系统,即形成所谓的物联网(IoT)。据预测,未来数十亿台连接设备将实现更多新的服务和体验。其中一些实例包括:1、工业控制系统;2、智能环境中的连接的物联网设备;3、自组织动态网络。这种系统通常被称为设备群。为了确保物联网系统的正确运行,维护其软件完整性并保护其免受攻击至关重要。在设备群中,每个设备可能具有不同的功能和安全需求,因此需要一种灵活且高效的方法来确保整个系统的安全性。
随着物联网的不断发展,设备群的规模和复杂性也将不断增加。因此,需要寻求更加高效、可扩展且安全的设备群证明方法,以适应未来物联网系统的需求,并确保物联网中的设备群能够在复杂环境下可靠运行。随着网络规模的扩大,网络攻击和数据泄露事件也频频发生。黑客可以利用这些物联网设备的漏洞,进行大规模的网络攻击,形成庞大的僵尸网络,威胁到网络安全和社会稳定。为了应对这些安全挑战,各个领域需要采取有效的安全措施,加强对物联网设备的防护和监控。这包括强化设备本身的安全设计和加密机制,定期更新和维护设备的固件和软件,建立安全审计和监控体系,及时发现和应对潜在的安全威胁。
近年来,研究人员想到了群证明的办法,群证明作为一种新兴的安全技术,为应对这些安全威胁提供了有力的解决方案。群证明允许多个设备合作共同生成证明信息,提高了验证的可信度和安全性,并提供更加可靠的验证结果。另外,群证明还能够增强设备之间的信任和合作能力,促进分布式系统中的多设备协作。
然而,传统的群证明方法也存在各种各样的问题:1、传统的群证明方法可能利用广播技术进行设备间通信,这可能导致极大的通信开销,并且信息容易被敌手获得,从而降低系统的安全性。2、传统群证明方法中利用生成树构建的方式,只能返回简单的验证结果,证明整个群的安全性,但不能具体到各个设备的安全状况,这不利于网络管理者对设备的维护和安全管理。3、传统群证明方法中利用生成树构建的方法,无法对掉线设备做出很好的处理。一旦遇到这种情况,该子树下的所有设备累积的安全报告将全部作废,从而影响整个设备群的安全性评估。
发明内容
本发明的目的就在于提供一种解决上述问题,在出现设备掉线情况下,依然可以给验证者提供可信赖的群证明验证报告,且能适应物联网嵌入式设备的动态性的基于节点寻路的设备群组安全验证方法。
为了实现上述目的,本发明采用的技术方案是这样的:一种基于节点寻路的设备群组安全验证方法,包括以下步骤:
(1)节点设备初始化;
对每个节点设备进行初始化操作,包括:为每个节点设备生成初始软件配置摘要c、软件配置摘要证书cert(c)、签名密钥对(SK,PK)、身份证书cert(PK)和邻居设备列表,所述邻居设备列表为空,用于存储该节点设备的邻居设备,所述邻居设备为直接与该节点设备连通的节点设备;
(2)生成设备群组S的通信图;
(21)选取N个节点设备,设定各节点设备与其余节点设备的连接关系;
(22)在相互连接的节点设备间建立通信连接并注册,将相互连接的节点设备加入到对方的邻居设备列表中,N个节点设备的通信连接构成设备群组S的通信图;
对两相互连接的节点设备,所述注册过程为:生成二者间的通信密钥、交换并验证对方软件配置摘要证书;
(3)当验证者需要验证设备群组S的安全性时,生成一通信标识符q,并从设备群组S选取一用于发送q的节点设备,标记为初始设备D
(4)从D
(41)预设一接收时长t
(42)邻居设备在t
(42-1)D
(42-2)主父节点将D
(43)向下一级拓扑:
D
(44)逐级向下拓扑,直至生成叶子节点;
(5)从叶子节点向根节点方向,逐级对设备群组S进行验证,具体为;
(51)为每个子节点确定父节点,所述父节点为该子节点的主父节点或备用父节点之一;
(52)从叶子节点开始,子节点向父节点发送自己签名的安全验证信息,父节点进行安全验证后得到验证结果;
(53)父节点得到其所有子节点的验证结果后生成验证报告,将验证报告和自己的安全验证信息构成信息包,发送给自己的父节点,发送信息包的父节点为下级父节点,接收信息包的父节点为上级父节点;
(54)上级父节点对下级父节点的安全验证信息进行安全验证得到验证结果,并对下级父节点发来的验证报告向上累计,直到信息包经根节点发送给验证者;
(55)验证者对根节点的安全验证信息进行安全验证得到根节点的验证结果,并接收从根节点发来的验证报告。
作为优选,所述节点设备为相同类别设备或异构设备,每个节点设备至少包括只读存储器、内存保护单元和具有写保护功能的时钟。
作为优选,步骤(1)中,对一节点设备:
初始软件配置摘要c,为每个节点设备根据初始软件配置通过哈希函数生成;
软件配置摘要证书cert(c),为网络管理者OP使用其公钥PKo对初始软件配置摘要c进行签名的证书;
签名密钥对(SK,PK)中,SK为节点设备的私钥,PK为节点设备的公钥;
身份证书cert(PK)为网络管理者OP使用其公钥PKo进行签名的证书。
作为优选,所述步骤(22)构成通信图具体为;
(b1)从N个节点设备中任选两节点设备构成设备群组S;
(b2)根据两节点设备的连接关系选择是否连接并执行注册协议;
若二者相连,则在二者间建立通信连接、执行注册协议、并互相加入到对方的邻居设备列表;否则不执行操作;
(b3)从N-2个节点设备中任选一节点设备加入S,根据该节点设备与S内其他节点设备的连接关系,选择是否连接并执行注册协议;
(b4)依次将其余节点设备加入S,N个节点设备的通信连接关系构成设备群组S的通信图。
作为优选,步骤(51)确定父节点具体为;
(a1)预设一接收时长t
(a2)子节点向主父节点发送安全验证信息,若主父节点收到安全验证信息,则返回确认信息,否则不返回;
(a3)子节点在t
(a4)遍历备用父节点,找到一子节点在发送安全验证信息后,能返回确认信息并在t
作为优选,步骤(52)中,子节点向父节点发送自己签名的安全验证信息具体为:
对一子节点D
所述心跳消息hb
所述验证消息u
所述信息类别包括验证请求;
D
其中,SK
作为优选,当一节点设备位置发生改变,或新增节点设备,则断开原通信图的通信连接,并按步骤(2)重新生成设备群组S的通信图。
名词解释:
1、群证明:英文Swarm Attestation。群证明方法允许验证者并行证明多个证明者。与传统的远程证明不同,群证明不仅仅是个体的证明,而是多个个体共同参与并合作完成的证明过程。群证明可以用于多种场景,例如群体身份验证、群体授权、群体决策等。在群证明中,每个群体成员都具有自己的身份和证书,通过合作和协调,群体成员可以共同证明设备的安全性和完整性。
2、验证者:英文Verifier,缩写Ver。主要负责验证和审查来自其他参与者的证明和相关信息,确保群证明的有效性和正确性。验证者的角色可以由不同实体扮演,例如网络中的服务器、区块链节点或其他合法的参与者。验证者通常具有一定的计算和存储资源,以执行验证算法和存储相关的验证信息。
3、网络管理者:英文Network Operator,缩写OP:是一个我们假定的安全实体,群中的所有设备均由它进行初始化和部署,主要负责分发密钥以及分配安全证书。网络管理者处在一个绝对安全的环境中,因此在本方案中,不考虑敌手对他的软件攻击和物理攻击。
4、群:英文Swarm。指由多个参与者组成的集合。这些参与者可以是个体、设备、节点或其他实体,彼此之间可以进行协作和合作。在本方案中,特指各种异构嵌入式设备组成的网络。
5、签名:英文 Signature。指在信息或文件上附加的一种数字标记,用于验证该信息或文件的完整性、真实性和来源。签名是由发送方生成并附加到信息上,接收方可以使用公钥验证签名的有效性。
6、哈希函数:英文Hash function,是一种将输入数据(消息、文件等)转换为固定长度的输出值的算法。哈希函数的输出值通常称为哈希值、摘要或散列值。哈希函数将输入数据映射到一个较短的固定长度的二进制字符串,该字符串在理想情况下是唯一的。本发明在生成初始软件配置摘要c、当前软件配置摘要时都需要用到哈希函数。
7、群节点设备,是网络中的众多普通设备。该系统由许多节点组成的网络构成,每个节点设备都有自己独立且唯一的设备号ID。每个节点设备需要维护一张邻居设备列表,例如,节点设备D
与现有技术相比,本发明的优点在于:
(1)能有效验证群节点设备的完整性状态,并且能够确保节点设备身份的合法性及其所运行软件的正确性,能有效防止敌手设备对节点设备的各种恶意攻击。
(2)本发明在通信图中构建生成树,并改进生成树协议,通过标记父节点、子节点、改进广播方式,与传统的广播方式相比,大大减小了通信开销,与此同时,也有效降低了物联网中对嵌入式设备的计算性能要求。
(3)本发明提出了一种新的设备群证明方法,通过子节点向父节点累计各节点的验证报告的方法,最终将所有节点设备的安全状态汇报给验证者,为设备群的维护提供了更多信息,大大降低了网络管理者的管理负担与维护成本。
(4)本发明还增加了寻路方法,为每个子节点,记录主父节点和备用父节点,并在验证时,在父节点设备掉线的情况,按步骤(51)中的(a1)-(a4)确定新的父节点,本发明能在父节点设备掉线的情况下依然正确的将各设备的安全状况返回给验证者,这与传统的通过构建生成树的群证明方法有着本质的区别,不仅提高了安全报告的可信度和完整性,还丰富验证报告的信息量,使原本只能反映整体安全状况的群证明方法,扩展到了可以具体到各个节点设备安全状况的群证明方法。
附图说明
图1为本发明流程图;
图2为本发明一种设备群组S的通信图;
图3为本发明步骤(5)的流程图。
具体实施方式
下面将结合附图对本发明作进一步说明。
实施例1:参见图1-图3,一种基于节点寻路的设备群组安全验证方法,包括以下步骤:
(1)节点设备初始化;
对每个节点设备进行初始化操作,包括:为每个节点设备生成初始软件配置摘要c、软件配置摘要证书cert(c)、签名密钥对(SK,PK)、身份证书cert(PK)和邻居设备列表,所述邻居设备列表为空,用于存储该节点设备的邻居设备,所述邻居设备为直接与该节点设备连通的节点设备;
(2)生成设备群组S的通信图;
(21)选取N个节点设备,设定各节点设备与其余节点设备的连接关系;
(22)在相互连接的节点设备间建立通信连接并注册,将相互连接的节点设备加入到对方的邻居设备列表中,N个节点设备的通信连接构成设备群组S的通信图;
对两相互连接的节点设备,所述注册过程为:生成二者间的通信密钥、交换并验证对方软件配置摘要证书;
(3)当验证者需要验证设备群组S的安全性时,生成一通信标识符q,并从设备群组S选取一用于发送q的节点设备,标记为初始设备D
(4)从D
(41)预设一接收时长t
(42)邻居设备在t
(42-1)D
(42-2)主父节点将D
(43)向下一级拓扑:
D
(44)逐级向下拓扑,直至生成叶子节点;
(5)从叶子节点向根节点方向,逐级对设备群组S进行验证,具体为;
(51)为每个子节点确定父节点,所述父节点为该子节点的主父节点或备用父节点之一;
(52)从叶子节点开始,子节点向父节点发送自己签名的安全验证信息,父节点进行安全验证后得到验证结果;
(53)父节点得到其所有子节点的验证结果后生成验证报告,将验证报告和自己的安全验证信息构成信息包,发送给自己的父节点,发送信息包的父节点为下级父节点,接收信息包的父节点为上级父节点;
(54)上级父节点对下级父节点的安全验证信息进行安全验证得到验证结果,并对下级父节点发来的验证报告向上累计,直到信息包经根节点发送给验证者;
(55)验证者对根节点的安全验证信息进行安全验证得到根节点的验证结果,并接收从根节点发来的验证报告。
本发明中,所述节点设备为相同类别设备或异构设备,每个节点设备至少包括只读存储器、内存保护单元和具有写保护功能的时钟。
步骤(1)中,对一节点设备:
初始软件配置摘要c,为每个节点设备根据初始软件配置通过哈希函数生成;
软件配置摘要证书cert(c),为网络管理者OP使用其公钥PKo对初始软件配置摘要c进行签名的证书;
签名密钥对(SK,PK)中,SK为节点设备的私钥,PK为节点设备的公钥;
身份证书cert(PK)为网络管理者OP使用其公钥PKo进行签名的证书。
所述步骤(22)构成通信图具体为;
(b1)从N个节点设备中任选两节点设备构成设备群组S;
(b2)根据两节点设备的连接关系选择是否连接并执行注册协议;
若二者相连,则在二者间建立通信连接、执行注册协议、并互相加入到对方的邻居设备列表;否则不执行操作;
(b3)从N-2个节点设备中任选一节点设备加入S,根据该节点设备与S内其他节点设备的连接关系,选择是否连接并执行注册协议;
(b4)依次将其余节点设备加入S,N个节点设备的通信连接关系构成设备群组S的通信图。
步骤(51)确定父节点具体为;
(a1)预设一接收时长t
(a2)子节点向主父节点发送安全验证信息,若主父节点收到安全验证信息,则返回确认信息,否则不返回;
(a3)子节点在t
(a4)遍历备用父节点,找到一子节点在发送安全验证信息后,能返回确认信息并在t
步骤(52)中,子节点向父节点发送自己签名的安全验证信息具体为:
对一子节点D
所述心跳消息hb
所述验证消息u
所述信息类别包括验证请求;
D
其中,SK
另外,需注意的是,当一节点设备位置发生改变,或新增节点设备,则断开原通信图的通信连接,并按步骤(2)重新生成设备群组S的通信图。
关于步骤(1)中节点设备的初始化:本发明每个节点设备都要由网络管理者OP进行初始化,对于节点设备D
关于邻居设备列表:每个节点设备都有一张邻居设备列表,初始状态为空。在步骤(22)中,只有在相互连接的节点设备间建立通信连接并注册后,才加入到对方的邻居设备列表中。加入方法为,假设D
关于步骤(22)的注册:本发明中,设备节点设备初始加入设备群组S或改变其位置时,新加入的节点设备就会与所有新邻居设备执行注册协议。假设设备群组S中已接入节点设备D
D
关于生成树协议:本发明设计的生成树协议中,不对子节点数量设置最大限制,因为在节点设备数量庞大的情况下,限制子节点数量可能导致一些设备无法正确加入到生成树中。
关于步骤(5)中对设备群组S的逐级验证,验证过程中,子节点会将自己的安全验证信息发送给父节点,由于本发明对安全验证信息的设置,父节点接收到子节点的安全验证信息后进行安全性验证,就可以得到该子节点的验证结果。对每个下级父节点而言,当其对应的每个子节点安全验证完成后,会连同自己的安全验证信息发送给上级父节点进行安全验证,在每次发送验证报告前,该节点都会检查上级父节点是否可以通行,上级父节点收到信息后返回下级父节点一个消息,告诉它已收到该验证信息,最后将验证报告累积到根节点。在验证过程中,对不可通行节点,记录在不可通行节点列表中,一起记录在验证报告中。
步骤(51)中确定父节点:在从上到下构建生成树的时候,每个子节点都有自己的主父节点,但在验证者进行验证的时候,节点设备可能因被攻击、掉线等原因无法与子节点进行通信,此时采用步骤(51),从备用父节点中重新选取父节点,从而实现自动寻路。选取时,可以先任选一备用父节点,看是否能在t
综上,本发明方法旨在通过在通信图中构建生成树的方法,收集各节点设备的验证信息,从子节点开始,自下而上的累计验证报告到验证者,以此来确保群设备的安全性。当节点设备返回验证报告的途中,如果遇到父节点设备不可通信的情况,则启动寻路协议,找到备用节点来重新发送验证报告,通过这种方法可以有效的加强群证明方法的扩展性和安全性,并且可以使群设备返回更多有效的验证信息,以此来减小网络管理者的管理负担,同时也提高了整个系统的可靠性和安全性。
实施例2:参见图1-图3,我们给出一种具体的基于节点寻路的设备群组安全验证方法。本实施例中,假设共8个设备节点,分别是D1到D8。
(1)先对D1到D8分别初始化。
(2)生成设备群组S的通信图,包括步骤(21)-(22)。
(21)选取D1到D8共8个节点设备,设定各节点设备与其余节点设备的连接关系;如图2中,我们设定D1直接与D2、D3连接,D2与D1、D3、D4、D5连接,D3与D1、D2连接,D4与D6、D6连接,如图2所示,这种连接方式都是预设的。
(22)在相互连接的节点设备间建立通信连接并注册,将相互连接的节点设备加入到对方的邻居设备列表中。
对D1,需要与D2、D3建立通信连接并注册,并将D2、D3加入到它的邻居设备列表;
对D2,需要与D1、D3、D4、D5建立通信连接并注册,并将D1、D3、D4、D5加入到它的邻居设备列表;依此类推,一直处理到D8,最终8个节点构成的通信网,就构成了设备群组S的通信图。
(3)当验证者需要验证设备群组S的安全性时,生成一通信标识符q,并从设备群组S选取一用于发送q的节点设备,标记为初始设备D
(4)从D1开始,用q在通信图中构建生成树,构建过程中,标记父节点、备用父节点。
(5)从叶子节点向根节点方向,逐级对设备群组S进行验证,我们以一个叶子节点D7为例,图2中,D7为叶子节点,它的主父节点分别为D4,备用父节点为D6、D8,包括(51)-(54)。
(51)对叶子节点D7,确定其父节点,假设叶子节点D7向D4发送安全验证信息,D4能收到且返回确认信息,D4在t
(52)从D7开始,向D4发送自己签名的安全验证信息,D4进行安全验证后得到验证结果;
(53)图2中,D4所有的子节点为D6、D7,得到所有子节点的验证结果后生成验证报告,将验证报告和自己的安全验证信息构成信息包,发送给自己的父节点D2;
(54)D2对D4的安全验证信息进行安全验证得到验证结果,并对D4发来的验证报告向上累计,直到信息包经D1发送给验证者。
(55)验证者收到D1发送的信息包,只需要对D1进行安全验证,并获取累积到D1的验证报告,就可以得到向上累积的所有节点设备的验证结果。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
- 基于规则引擎的验证方法、验证设备、存储介质及装置
- 具有计算功能的节点、安全验证网络和安全验证方法
- 一种基于深度强化学习的自动寻路方法及寻路小车设备