0 引 言
随着电力物联网的蓬勃发展,设备运行的环境越来越复杂,物联网终端设备越来越多,而终端设备通常是资源受限的嵌入式设备,安全投资不足,在充满不确定性的物联网环境中很容易遭受攻击
[1,2]。2014年,西班牙三大主要供电服务商超过30%的智能电表被检测发现存在严重的安全漏洞,攻击者可以利用该漏洞进行电费欺诈,甚至直接关闭电路系统
[3]。2016年,乌克兰电力公司因恶意软件入侵造成了长达数小时的大规模停电,受灾人口达到140万,造成这一事件的原因是恶意软件利用了保护继电器固件程序中的一个已知漏洞,禁用了这些设备的自动防护功能
[4]。由此可见,物联网设备受到攻击时,其可信状态发生了改变。为了实现对设备状态的持续监视,保障物联网设备的安全性,需要采取措施持续性地对各物联网设备可信状态进行认证,以在设备不可信时及时发现并采取措施,减少损失。
针对以上问题,学者们提出采用远程验证(remote attestation,RA)
[5.6]机制确保终端设备的可信性。目前远程验证根据设备能力和设备安全保障方面的不同要求,可以分为基于软件的验证和基于可信根的验证。基于软件的远程验证
[7~9]通常对攻击者行为进行强假设以提供设备安全保证,并且对设备几乎没有硬件要求。这种验证仅适用于缺乏硬件安全功能的传统设备,以及证明者在物理上靠近验证者的情况。基于可信根的远程验证
[10~12]依赖于可信平台模块(trusted platform module,TPM)
[13],在设备启动过程中,度量自身的完整性并被记录到TPM的平台配置寄存器(PCR)中,发送到远程验证方进行验证。
鉴于物联网系统的规模和复杂性,传统的远程验证方案只能单独对各设备进行验证,扩展性较差,所以学者们提出了集体远程证明 (collective remote attestation,CRA)
[14,15]协议,允许验证者从整个设备网络中获得网络的整体状态和设备的个体状态,以提高远程验证的可扩展性。SEDA
[16]是一种用于集体证明的可扩展协议,它允许验证者在设备集群生成树上有效地执行认证;SANA
[17]解决了SEDA的一些局限性,它依赖于乐观聚合签名(OAS)的加密方法,允许没有安全硬件的设备聚合网络认证报告。DARPA
[18]要求每个设备通过记录心跳信息来定期监视其他设备,以发现攻击者对设备的物理攻击,从而减少设备网络中的物理攻击。现有集体远程证明协议方案没有针对电力物联网设备和架构特点进行适配,而且在实际情况中,设备启动后可能会进行固件版本的更新,有可能会遭受攻击,这时设备的可信状态发生变化,需要提供对设备的持续多次度量,以确认设备的当前可信状态。
为了适用于电力物联网云边端协同的架构
[19,20]和支持持续性的批量认证,本文提出了一种适用于电力物联网设备的持续高效批量可信认证机制,所做的贡献如下:
1) 使用一棵非平衡哈希树存储设备度量信息,相较于传统默克尔哈希树,减少了树构建和节点加入的时间和空间消耗,同时减少了节点验证时传输验证所需信息量,提高了验证效率。当树达到存储上限时,采用最近最少使用的方法对树中已有节点进行替换,借助一个哈希表和具有多个支链的双向链表快速找到待替换的树节点。
2) 提出了一种基于多版本的设备持续度量认证机制,将设备各个历史版本的度量信息同时保存在非平衡哈希树中,使得设备在进行版本更新后,验证方仍能正确对其可信状态进行验证,同时树中存储的设备多版本度量信息便于对同一设备的历史可信状态变化进行评估。
3) 采用一种高效的稀疏哈希树多值认证
[21,22]方法实现设备的批量认证。当待验证设备有多个时,相较于单值验证,提高了验证所需信息生成效率,减少了传输验证所需信息量,同时提高了设备验证效率。
1 系统模型和安全威胁
1.1 系统模型
本文提出的电力物联网设备持续高效批量可信认证机制的系统模型涉及终端设备
、边缘代理
和云端平台
三类实体。三类实体的证书
由证书权威机构进行颁发。终端设备与边缘代理均采用一种轻量的可信度量架构
[23,24]进行自身可信度量并向边缘代理和云端平台报告度量状态,边缘代理使用一棵非平衡哈希树
、一条多链
和一个哈希表
存储终端设备的度量状态信息,云端平台对边缘代理进行身份和可信状态认证,对终端设备的可信状态进行验证。实体间的交互过程可以分为两部分:持续性认证和批量认证。该机制系统模型如
图1所示。
1) 持续性认证过程。① 终端设备可信度量。终端设备由设备标识和不可更改的可信根代码生成复合设备标识,然后根据生成设备密钥,用作与边缘代理通信时的签名密钥,再根据应用固件的实际度量值和生成认证密钥,用于描述设备当前的可信状态。② 终端设备度量值报告。边缘代理向终端设备发送一个随机数作为挑战信息,终端设备对认证密钥的公钥和签名,将证书、公钥和签名报告给边缘代理。③ 边缘代理度量值存储。边缘代理对签名进行验证以确认设备身份,验证通过则将的哈希值存储在非平衡哈希树中。实际情况中,一个边缘代理会管理多个终端设备的度量信息,上述过程会进行多次,以存储记录设备的多个版本度量信息,实现对设备持续性的认证。
2) 批量认证过程。① 边缘代理可信度量。云端平台作为验证者向边缘代理发起认证请求,发送待验证的设备集合S和一个随机数作为挑战信息,边缘代理首先由轻量级可信度量架构进行自身可信度量,生成,过程与终端设备可信度量类似。② 边缘代理证明信息报告。边缘代理根据待验证集合S,从非平衡哈希树中生成其对应的验证所需证明信息(是验证路径上所需树节点的哈希值集合),对、、和待验证设备的版本信息签名并报告给云端平台。③ 云端平台批量认证。云端平台先对签名进行验证,验证通过后对边缘代理的可信状态进行验证,然后根据和设备基准度量值对所有终端设备的可信状态进行批量认证。
1.2 安全威胁
根据攻击者具有的能力和攻击策略,可以将攻击者的行为分为两种类型
[25,26]。
1) 对终端设备与边缘代理、边缘代理与云端平台间的通信过程进行攻击。攻击者具有对通信信道的完全控制权,可以对实体间通信信息进行窃听、修改和重放等操作;
2) 攻击物联网设备。攻击者可以利用漏洞入侵物联网设备,读取其未受保护的内存区域,操控软件状态,但无法伪造边缘代理和终端设备的设备证书。对物联网设备的攻击可以分为对终端设备和边缘代理的攻击。攻击者入侵终端设备,可能修改固件层的代码;攻击者入侵边缘代理,可能修改其非平衡哈希树、多链和哈希表结构,
安全假设:假设1,非平衡哈希树采用的哈希函数是抗碰撞的;假设2,云端平台作为验证方是安全的;假设3,终端设备和边缘代理具有的设备标识和可信根代码不会被攻击者篡改。
2 结构与操作
本文将边缘代理用于设备度量信息存储的结构中,非平衡哈希树用于存储设备的认证密钥信息,多链结构用于树达到存储上限时寻找待替换节点,哈希表用于根据设备检索其对应的多链节点。
2.1 设备认证密钥非平衡哈希树
传统默克尔哈希树是一棵满二叉树,在树的构建和节点添加过程中,当处理的当前层节点数目为奇数时,通常会将该层节点中的其中一个复制一份凑成偶数,这样会导致树中存在大量重复的中间节点,在树的构建和节点加入时会有额外的时间和空间消耗。同时在生成多值路径的过程中,由于添加的额外节点增大了默克尔哈希树右侧叶子节点到根节点的路径长度,使得这部分叶子节点的认证路径较长,生成的多值路径空间较大,影响云端平台的认证效率。所以本文采用了非平衡哈希树,弥补默克尔哈希树的不足。
非平衡哈希树是一棵二叉树,其节点表示为Ni,j,i为节点所在层号,j为节点在该层的序号,层号从叶子节点层到根从0开始编号,每层的节点从左到右从0开始编号。树中叶子节点N0,j ()存储一个设备的度量认证密钥的哈希值及设备和固件版本号,即,其中。而中间节点Ni,j (i>0)的值是其左右子节点哈希值链接后的哈希变换,即。
非平衡哈希树每次添加设备度量信息时,会增加一个叶子节点和一个中间节点。由此种方式构建的树,除叶子节点外的任意节点的左子树都是一棵满二叉树,而右子树也是一棵非平衡哈希树。
节点添加过程append操作和树的变化如
图2所示,图中实线圆圈节点为树节点,虚线方框内是叶子节点存储的对应认证密钥信息。
2.1.1 树未达到存储上限时加入
Append(
算法1)完成非平衡树未达存储上限时认证密钥加入到非平衡树的操作,过程如下:首先生成两个节点,分别是中间节点
以及叶子节点
。根据待加入的设备度量值信息
,计算出相应叶子节点
的值
。然后从根节点开始,判断以每层最右边节点为根节点的树是否为满树,找到第一个为满树的节点
,将节点
作为该节点和节点
的父节点,更新节点
到非平衡树根节点路径上各节点的哈希值。Append具体过程如
算法1。
2.1.2 树达到存储上限时加入
边缘代理的存储能力通常有限,需要给该树结构定义一个存储阈值,以表示该非平衡树可以存储的最大认证密钥数目,并用记录当前树中已存储的度量值数目。当时,树已达到存储上限,需要通过策略寻找并更新树中已有的某个叶子节点,本文采用的策略将在2.2节中介绍。
假设已通过2.2节策略找到了树中待替换的节点对应的多链节点
。然后执行update(
算法2)完成树已满时认证密钥加入到非平衡树的操作。
首先由节点得到树中待替换的节点,将和更新到该节点,然后更新到根节点路径上所有节点值。
2.1.3 多路径生成
非平衡哈希树与默克尔哈希树一样可以提供多值路径
以证明树中特定节点存在于节点集合中,本节先以一个例子说明
的生成过程,然后将过程归纳为
算法3。以云端平台验证设备
为例,假设此时非平衡哈希树如
图3所示(图中阴影是待验证的设备对应树中结点)。
的生成过程从树的叶子节点层一直迭代到根节点,具体步骤如下。
1) 0层
设备对应的第0层的节点编号分别为0、1、2、6,分别为这些编号添加一个相邻编号生成编号对,且编号对第一个元素为偶数,第二个元素为奇数,得到的编号对为[0,1]、[0,1]、[2,3]、[6,7],将这些编号对去重得到[0,1]、[2,3]、[6,7],该编号对中除去0、1、2、6编号后剩余的节点编号为3、7,由于第0层中没有7号节点,所以将去除无效节点7后的编号对应的节点添加到中,此时,将各编号对的左端点除以2得到第1层对应的节点编号0、1、3。
2) 1层
第1层对应的节点编号为0、1、3。为这些节点生成编号对并去重得到[0,1]、[2,3],将该编号对中除去0、1、3编号后的剩余节点编号2对应的节点添加到中,此时,将各编号对的左端点除以2得到第2层对应的节点编号0、1。
3) 2层
第2层对应的节点编号为0、1。为这些节点生成编号对并去重得到[0,1],此时该编号对中除去0和1后已无节点,迭代结束。最终生成的。
2.2 历史版本设备多链与哈希表
当树达到存储上限时,为了快速找出树中待替换的节点,本文采用了一种最近最少使用的方法,即最不经常更新版本度量信息的设备就是最不活跃的,被认为是较为稳定的,替换时就替换该设备对应的最旧版本度量信息,同时需要注意,应该为每个
的设备至少保留一个最新版本的度量值,以支持对该设备的验证。要实现该方案,本文采用了一个多链和一个哈希表。多链和哈希表结构如
图4所示。
多链由一条主链和主链上节点延伸的支链组成,主链是一条双向链表,主链节点,其中,为设备,为设备在非平衡树中最旧版本的节点信息,为以该节点为头节点的支链长度。支链,其中存储的是与主链节点同属一个设备的后续度量值在非平衡树中的节点信息。为了便于根据设备检索多链节点,本文为主链节点建立了一个哈希表,哈希表中节点键为设备,值为该设备在多链结构中对应的主链节点信息。
在进行设备度量信息加入非平衡哈希树操作时,多链和哈希表执行
算法4将添加的叶子节点信息同步更新到多链和哈希表结构,当树达到存储上限后,多链和哈希表执行
算法5找到并删除树中待替换的节点对应的多链节点。
2.2.1 加入和更新
(
算法4)完成非平衡哈希树增加节点时多链和哈希表的更新操作。首先根据设备
查找哈希表中是否有该
设备的节点,分为两种情况操作:
① 未找到。生成多链节点,将其插入到多链的首部,字段置为1,更新哈希表;
② 找到。根据查到的结果找到其所在多链中的节点,生成一个代表的多链节点并链在该节点下支链的尾部,再将支链头节点字段加1,并将整条支链移动到多链首部。
假设当前哈希表和多链结构如
图5(a)所示,当有新度量值
加入时,首先查询哈希表,由于哈希表中没有设备
为4的设备的度量值版本,所以生成一个多链节点
,将其添加到多链首部,同时生成一个哈希表节点,其键为4,值为对应的多链节点
信息,如
图5(b)所示。
2.2.2 查找并删除
当非平衡哈希树中的叶子节点达到阈值时,执行
(
算法5)找到树中待替换的节点。
由于树已满,需要找到树中待换出的节点。首先从多链主链的链尾向链首进行遍历,找到第一个子链数目大于2的节点,该节点即为需替换的节点,将其从链表中移除,其子链取代它的位置。若子链数目均不大于2,则查找子链节点数为2的节点作替换,若所有子链中节点数目均为1,则该边缘代理负荷较重,相应待添加的设备应转移到另外的负荷较小的边缘代理管理。
以度量值
加入时为例,假定树的存储能力为8,此时树已满。首先执行
算法4,根据设备id查找哈希表中id为4的设备,找到其所在多链中的节点,将该节点的
字段加1,生成一个代表
的多链节点并链在该节点支链的尾部,将该支链移动到多链首部。然后执行
算法5从链尾向链首进行遍历,找到第一个子链数目大于2的节点
,该节点即为需替换的节点,将其从链表中移除,其支链中下一个节点
取代它的位置,更新后的结构如
图5(c)所示。
3 设备持续批量认证机制
借助第2节的非平衡哈希树、多链和哈希表结构可实现终端设备的持续性和批量认证。本节对设备的持续性和批量认证机制分别进行说明。
3.1 基于多版本的设备持续性认证
终端设备启动时进行自身可信度量,根据自身底层标识和核心层代码度量值计算得到复合设备标识符,然后生成用于与边缘代理之间通信的设备密钥
,再根据应用固件的度量值和复合设备标识符生成认证密钥
并报告给边缘代理。边缘代理向终端设备发送随机数
,设备用
私钥对挑战消息
和
公钥进行签名得到
并发送回边缘代理。边缘代理对签名进行验证,验证通过则执行
算法6,将
公钥以哈希值形式保存在非平衡哈希树中。
边缘代理的存储资源是有限度的,通常一个边缘代理只负责管理适量的终端设备,但是要对这些设备进行持续性度量,设备固件更新时,其度量值认证密钥也会更新,这将导致非平衡树中的节点数目不断增多,当树中已有度量值数目
时,执行
算法1和
算法4正常添加即可。而当树中已有度量值数目
时,非平衡哈希树已满,需要先执行
算法5找到非平衡哈希树中待替换的节点,然后执行
算法2,对树中已有节点进行替换以控制占用空间大小。
3.2 批量认证
各个边缘代理管理的终端设备众多,单独认证各设备效率低下,所以本文采取稀疏哈希树多值认证的方法对终端设备进行批量认证,减少了传输多路径信息的数据量。
批量认证的过程在1.1节进行了简要描述,其关键过程可以分为两个部分:① 边缘代理证明信息
生成;② 云端认证平台认证。当云端认证平台需要对设备
进行认证时,先将随机数
和需认证设备集合
发送给边缘代理,边缘代理执行
算法7生成待认证设备认证所需的证明信息
,用其私钥
对
和待验证设备版本信息签名后发送给云端认证平台,云端平台先对签名进行验证,然后执行
算法8对设备度量值进行验证,得到验证结果。
3.2.1 边缘代理证明信息的生成
边缘代理执行
生成待验证设备的证明信息
。
包含一个位图
和一个哈希表
,
是待验证设备所有版本对应的非平衡哈希树中叶子节点序号,哈希表是由
算法3生成的多值路径信息,哈希表的键是一个二元组,包含节点在非平衡哈希树中的层号和在该层的序号,值是该节点对应的哈希值。
根据待验证设备对应的非平衡树中节点编号,将
的相应位置为1,然后根据
(
算法3)填充
。
3.2.2 云端认证平台批量认证
假设云端认证平台已从边缘代理获取到认证设备
所需的证明信息
,然后根据边缘代理发送过来的待验证设备版本获取相应设备标准度量值
和复合设备标识符
,重构出设备的
密钥
。对设备对应的叶子节点,由重构的
公钥重构叶子节点的值
。从第0层开始向高层迭代,通过已计算出的叶子节点值与
中的节点信息,不断计算出下一层节点值,运算过程一直持续到计算出根节点,通过比较得到的根节点值和边缘代理传过来的
中根节点是否一致,判断认证路径上的节点是否是可信、未被篡改的。认证过程如
算法8所示。
4 安全性分析与性能分析
4.1 安全性分析
4.1.1 防止攻击者对传输消息的窃听、修改和重放
实体间的通信主要发生在终端设备与边缘代理间、边缘代理与云端平台间。当攻击者对实体间传输的消息进行窃听后,由于传输的消息是设备的认证公钥、,证明信息和签名信息是无需保密的内容,所以不会造成影响。当攻击者进一步对窃听到的消息进行修改后,由于消息用发送方的私钥进行了签名,接收方会首先用发送方的公钥对签名进行验证,而发送方的公钥证书是安全的,所以攻击者的修改行为总是会被发现。当攻击者进行重放攻击时,由于每次通信都采用了一个随机数,该随机数也一同被签名,有效防止了攻击者的重放攻击。
4.1.2 防止攻击者对终端设备和边缘代理的攻击
攻击者攻击终端设备并修改其固件层代码时,由于终端设备采用了一种轻量的可信度量架构进行自身可信度量,修改其固件层代码C1会导致度量时生成的,其公钥部分会存储在边缘代理的非平衡哈希树中。当云端平台进行认证时,根据设备固件层代码的基准值重构出,显然,认证失败,云端平台可以就此发现设备可信状态的变化并采取防护措施。
攻击者攻击边缘代理并修改其非平衡哈希树、多链和哈希表结构。当云端平台发起认证请求后,边缘代理会为其伪造的树节点生成一个证明信息并传回,然而云端平台会用设备的基准度量值重构,并计算叶子节点值。攻击者有两种情况可达成攻击目的,①使,此时有,而,所以需要找到哈希函数的碰撞;②,此时需要伪造使验证时计算出的根节点值保持不变。由于非平衡哈希树中间节点是其左右子节点值链接后的哈希变换,此种情况也必须找到哈希函数的碰撞。
综上所述,在1.2节的安全假设前提下,该电力物联网设备的持续高效批量可信认证机制是安全的。
4.2 性能分析
本节对多值认证的性能进行分析。假设非平衡哈希树中叶子节点数目为,待验证设备数目为i。对于单值认证而言,每个设备版本都需要单独进行一次证明信息生成,每次生成的时间复杂度与非平衡哈希树的高度有关,为O(logn),总生成时间复杂度为O(ilogn)。每个的大小相等,它包含节点哈希值数目与待验证设备数目,和非平衡哈希树的高度有关。假设单个节点哈希值大小为b,则占用存储空间大小为iblogn。验证时,对每个设备版本都要单独进行验证,每次单独验证时间复杂度为O(logn),单值验证总验证时间复杂度为O(ilogn)。
对于多值认证而言,所有待验证设备只需生成一个
,其生成和验证过程只需进行一次,时间复杂度和
占用空间大小均与待验证设备的数目及其在非平衡哈希树中的分布有关。① 当
i=1时,生成和验证时间复杂度为
O(log
n),与待验证设备数为1的单值认证相同,
占用存储空间大小为
blog
n。② 当
i=
n/2时,生成和验证时间复杂度和
占用存储空间大小与待验证节点在树中的分布有关,当所有的待验证叶节点都集中在非平衡哈希树根节点的左子树时,消耗的时间和空间最少,生成和验证时间复杂度为
O(
n),占用空间为2
b;当所有的待验证叶子节点在叶子节点层的节点序号都为偶数时,消耗的时间和空间最多,生成和验证时间复杂度为
O(3
n/2),占用空间为
bn/2。③ 当
i=
n时,生成和验证时间复杂度为
O(2
n),此时需要的
只包含根节点的哈希值,占用空间大小为
b。多值认证和单值认证的性能比较如
表1所示。
对于生成和验证的时间复杂度,情况①时,多值认证与单值认证相同。情况②时,取时间复杂度最高的情况,多值认证为O(3n/2),而此时单值认证为O(n/2logn),当时,多值认证就优于单值认证,而实际使用中,会远大于8。情况③时,当时,多值认证会优于单值认证,实际使用中,会远大于4。
对于占用空间大小,情况①时,多值认证和单值认证占用空间相同;情况②时,取多值认证空间复杂度最高的情况,为bn/2,此时单值认证空间大小为bn/2logn,当非平衡哈希树叶子节点数大于2时,多值认证更优;情况③时,单值认证的占用空间大小为nblogn,显然多值认证更优。
综上所述,多值认证相较于单值认证而言,充分利用了各待验证设备的度量信息,极大限度地减少了所需的中间节点哈希值数目和
生成及验证时间。下面以一个例子说明,当树中有设备
时,要认证设备版本
,
应该含有的节点经哈希变换后为[
N0,3,
N1,0,
N2,1,
N3,0];要认证设备版本
,
应该含有的节点经哈希变换后为[
N0,2,
N1,0,
N2,1,
N3,0],单值认证两个设备时,
共需要存储8个节点的哈希值,而当批量认证两个设备时,
为[
N1,0,
N2,1,
N3,0],只需存储3个值即可,如
图6所示(叶子节点的阴影是上文例子中要验证的设备对应树中的节点,中间节点的阴影是验证叶子节点所需要的中间节点)。
5 实验分析
5.1 实验系统
为了方便说明,我们将系统涉及的三类实体终端设备、边缘代理和云端认证平台抽象为三个服务器,使用C++语言实现了各实体间的交互。
实验系统使用openssl生成CA的证书,然后用CA分别为三个实体生成自己的证书,这些证书保存在本地。三个实体间通过TCP建立连接并传输信息,通过SSL协议相互验证各自的证书以确定通信对方的身份,随后实体间交互的信息均在该信道内传输。
实验使用C++代码模拟了终端设备和边缘代理的轻量级可信认证的过程,使用随机数分别模拟设备的度量值和设备标识,当请求获取度量值时,生成多个不同的设备度量信息,签名并发送给。当请求批量认证时,生成与自身的,签名并发送给。考虑到云端平台与边缘代理网络环境的复杂性,信息传输时间差异较大,为了简便,实验中的批量认证效率仅考虑边缘代理生成过程和云端平台验证过程,忽略在网络中传输所耗时间。
实验在边缘代理定义了非平衡哈希树及其节点的结构,该非平衡哈希树被用来存储设备的度量信息,同时该树会以xml的格式持久化存储到边缘代理的磁盘中。该非平衡哈希树实现了第2节中介绍的几种功能。
5.2 认证效率分析
本节通过实验比较了电力物联网持续批量认证机制在使用多值认证和单值认证时的效率。实验运行的物理机为Windows10 专业版64位操作系统,处理器为Intel(R)Core(TM)i5-7200U CPU@2.50 GHz,系统内存8 GB,虚拟机为VMware Workstation 15 Pro下的Ubuntu18.04,系统内存2 GB。考虑到边缘代理的资源限制,实验将单个边缘代理管理的终端设备数目设置为2
12个,将非平衡树中叶子节点数目
固定为2
14个,分别选取待验证节点集合
S数目为{1,2,4,8,16,32,48,64,80,96,112,128}。本文分别比较了多值认证和单值认证在进行
生成和验证时消耗的时间,以及
的大小,
大小用其包含的节点哈希数目来表示。实验对每组待验证集合测试了100次取平均值,得出的数据如
图7所示。从
图7中可以看出,多值认证在
生成和验证时明显优于单值认证,且随着待验证节点数目的增加,多值认证的优势越来越明显,符合第4.2节中的分析。同时
包含的验证所需节点哈希数目也明显优于单值认证。
综上所述,采用多值认证性能获得很大的提升。另外,我们也注意到,当待验证节点数目不断增大时,多值认证尽管优于单值认证,但其所耗时间的增长幅度也较大。所以实际应用中,应当控制非平衡哈希树中的叶子节点数目,不让一个边缘代理负载过多终端设备,以保证云端平台在可接受的验证时间内进行批量认证。
6 结 语
本文针对电力物联网设备特点,提出了一种设备持续高效批量可信认证机制。该机制使用一棵非平衡哈希树存储设备各个历史度量信息,当树达到存储上限时,借助一个特殊的多链和哈希表快速找到待替换的树节点。度量信息认证时,采用一种更高效的稀疏哈希树多值认证的方法实现,提高了多路径信息的生成效率。本文模拟了该机制并进行了实验比较分析,实验表明,本方案采用的稀疏哈希树多值认证方法可以使性能得到很大的提升。
国家电网有限公司总部科技项目(5700-202013190A-0-0-00)