一种面向边缘计算节点的零信任身份认证方法

文档序号:28816379发布日期:2022-02-09 06:14阅读:461来源:国知局
一种面向边缘计算节点的零信任身份认证方法

1.本发明属于计算机领域,涉及一种面向边缘计算节点的零信任身份认证方法。


背景技术:

2.工业云服务器对工业现场的海量数据进行收集、存储和分析,并为工业应用提供计算密集型服务,但由于工业网络实时计算需求的不断增加,工业云云服务器无法满足实时计算的服务需求,因此在工业网络中引入了边缘计算。工业边缘服务器在云服务器和终端设备之间,对数据进行初步分析、存储和计算等,解决了云服务器网络带宽负担大、计算响应延迟改的问题。
3.但是,引入边缘计算后,工业网络在边缘侧更易遭受攻击。如果恶意的或被俘获的边缘节点接入工业网络,可能导致工业生产巨大的损失。因此,在满足工业网络中边缘侧计算能力和实时响应要求的同时,确保边缘节点的安全接入是一个边缘计算安全必须要解决的问题。
4.安全接入即是要解决设备身份认证问题。设备交互之前需验证设备的身份,且期望不泄露设备隐私身份信息。在基于边缘计算的大规模、异构的工业网络中,传统的公钥基础设施(pki,public key infrastructure)通过权威机构ca(certificate authority)为每个边缘节点分配数字证书,但这种集中式实体ca容易引发单点故障问题,在工业网络中基于pki的身份认证难以实现。目前,边缘计算环境中基于密码学的身份认证机制研究较多,一定程度上解决了边缘计算中的身份认证问题,但基于密码学的身份认证方法大多伴随着较大的通信和计算开销。
5.目前,传统的身份认证技术大多采用一次认证授权,攻击者通过俘获边缘节点,冒用边缘节点的合法身份入侵网络,而零信任的核心思想是认为工业网络中的一切实体是不可信的,需要对网络中的实体的状态进行持续的监测,安全策略随实体的状态动态调整。目前,结合零信任的身份认证机制已有一些相关的研究,这些研究主要是基于信任评估机制或零知识证明机制,这些研究为可信身份认证提供了安全保障,但都依赖于集中式实体进行信任评估或作为零知识证明的集中式实体,容易引发单点故障问题。
6.针对工业边缘计算的环境下分布式、可信的身份认证需求,本方案提出一种面向边缘计算节点的零信任身份认证方法,在方案中利用边缘层的工业边缘服务器提供分布式、高效、低成本的身份认证服务;工业边缘服务器对边缘节点进行行为分析,判别边缘节点是否存在行为异常,根据边缘节点的行为风险等级采用不同的身份认证方式,提高身份认证的安全性。解决了传统身份认证方案集中式实体带来的单点故障问题和身份认证效率较低的问题。


技术实现要素:

7.有鉴于此,本发明的目的在于提供一种面向边缘计算节点的零信任身份认证方法。
8.为达到上述目的,本发明提供如下技术方案:
9.本发明提出的基于联盟链的身份认证架构。架构共分为3层,工业云平台层、边缘层和现场设备层。工业云平台层包含工业云服务器;边缘层是工业边缘计算系统的边缘侧,包含了由工业边缘服务器组成的联盟链网络,边缘节点包括工业边缘服务器、工业边缘网关和工业控制器等;现场设备层包含工业现场设备。
10.1.工业云服务器(ics,industrial cloud server):为边缘节点和工业现场设备提供资源密集型服务。工业云服务器同时加入所有的群组,从群组内的工业边缘服务器获取身份认证信息,对身份数据进行存储。
11.2.工业边缘服务器(ies,industrial edge server):为工业边缘网关、边缘控制器和工业现场设备提供计算、存储等服务。在边缘层的联盟链网络中担任共识节点(sealer),共识节点在边缘层的联盟链网络中分为主节点(leader)和副本节点(replica)。
12.a)群组(group):邻近的工业边缘服务器组成一个群组。一个工业边缘服务器可以同时加入多个群组。
13.b)主节点(leader):负责将交易打包成区块和区块的共识。每轮共识过程中每个群组中拥有一个leader。
14.c)副本节点(replica):负责区块的共识,每个群组中有多个副本节点。
15.d)共识节点(sealer):主节点(leader)和副本节点(replica)统称为共识节点。
16.e)机构(agency):按照工业边缘服务器提供的不同服务类型,可将工业边缘服务器划分为多个机构,也可以所有节点属于同一机构。
17.f)分布式存储系统:在工业边缘服务器间搭建的分布式存储系统,用于链下存储节点的详细身份信息。工业边缘服务器拥有分布式存储系统读取权限。
18.3.工业边缘网关(ieg,industrial edge gateway):负责工业通信协议和以太网的协议转换等。
19.4.边缘控制器(ec,edge controller):负责i/o控制等。
20.5.工业现场设备(ifd,industrial field device):工业现场设备通过边缘网关接入边缘层。
21.一种面向边缘计算节点的零信任身份认证方法,该方法包括以下步骤:
22.s1:系统初始化;
23.s2:身份注册;
24.s3:行为分析;
25.s4:身份认证;
26.s5:身份更新。
27.进一步,所述s1具体为:
28.s11:工业边缘服务器初始化;
29.工业边缘服务器在边缘层的联盟链网络中担任共识节点,iesi为边缘层的某个工业边缘服务器,iesi初始化首先安装联盟链客户端,然后iesi获得联盟链节点地址bcaddri以及联盟链证书bccrti;iesi采用非对称加密算法,获得唯一的会话密钥对,iesi私钥为ieskeyi,iesi公钥为iespki;iesi被配置所属机构agencyi,根据其所配置的机构,iesi被配置加入的一个群组groupid;iesi配置完成后作为共识节点加入边缘层的联盟链网络,加入
后在共识节点列表sealerlist中添加该节点的bcaddri;iesi完成初始化后即加入了边缘层的联盟链网络,无需进行身份注册操作;
30.s12:群组初始化
31.联盟链采用pbft共识算法,故障节点或恶意节点称为拜占庭节点,pbft算法的共识模型为3f+1,即超过2/3的节点的执行结果一致才能完成共识,系统最多容忍f个拜占庭节点;根据容忍拜占庭节点数f设置工业边缘服务器加入联盟链网络的数量;
32.群组g是一个groupid为g的群组,其初始化过程如下:
33.s121:在g中选择一个iesi,并将该iesi所在的agencyi作为发起群组初始化的机构,群组内的所有机构集合为{agency1,agency2,...,agencyi,...};
34.s122:所选发起群组初始化的节点iesi收集群组内所有节点的联盟链节点地址、联盟链证书、机构、群组和对等网络p2p连接信息;p2p连接信息包括ip地址、p2p端口号和远程过程调用rpc接口信息rpcinfo;
35.s123:iesi将群组中所有联盟链节点信息收集完成后,iesi根据groupid创建群组,并将所有节点的信息打包成群组g的起始区块;起始区块创建后不可修改,群组建成后,已有联盟链节点信息变更和新的联盟链节点的加入都将不再修改起始区块;
36.s124:iesi将群组g的初始区块分发至群组g中所有的联盟链节点,包括群组g下所有的机构集合{agency1,agency2,...,agencyi,...}的联盟链节点;群组中所有机构在拥有了群组g内所有节点的p2p连接信息,各机构通过p2p连接信息生成节点部署程序,各机构调用节点部署程序启动各机构中的联盟链节点;
37.s13:边缘控制器和工业边缘网关初始化
38.在初始化阶段,由于边缘控制器ec和工业边缘网关ieg资源受限,无法安装联盟链客户端,边缘控制器和工业边缘网关初始化在初始化阶段获得节点标识nodeid;边缘控制器和工业边缘网关使用与ies相同的非对称加密算法获得唯一的会话密钥对,边缘节点私钥nodekey和边缘节点公钥nodepk;边缘控制器和工业边缘网关需要配置其rpc接口信息rpcinfo和所属机构agency。
39.进一步,所述s2具体为:
40.边缘控制器和工业边缘网关加入边缘网络前必须完成身份注册;边缘控制器和工业边缘网关将身份注册请求发送至目标群组内的工业边缘服务器,工业边缘服务器作为共识节点调用身份注册智能合约将身份注册交易放入交易池,主节点从交易池中取出交易打包成区块并发起共识,最终落成包含身份注册交易的区块;预编译的身份注册的智能合约regsc由部署在工业边缘服务器的控制台进行部署;部署完成后,工业边缘服务器会获得身份注册智能合约地址regscaddr;
41.边缘控制器和工业边缘网关身份注册具体步骤如下:
42.s21:边缘控制器或工业边缘网关nodea在进行身份注册时需要其节点标识nodeida、设备类型devtypea,设备型号devmodela、所属机构agencya,nodea远程调用接口rpc信息rpcinfoa作为身份注册信息;
43.s22:nodea的身份注册信息表示为sr,sr=(nodeida||devtypea||devmodela||agencya||rpcinfoa),其中||为连接符;signature(
·
)为数字签名函数,tr为身份注册消息时间戳,对sr和tr生成身份注册消息签名sigr=signature(sr||tr),nodea向iesi发送身份
注册消息mr={sr||tr||exfield||sigr},其中exfield为边缘节点的其他扩展信息,包括接入工业边缘网关的工业现场设备集合{ifd1,ifd2,ifd3,...};
44.s23:iesi接收到身份注册消息后,首先验证消息格式,如果身份注册消息格式错误则丢弃该消息,否则继续验证时间戳tr,如果消息超时则丢弃该消息,否则验证身份注册消息签名verifysig(sigr),其中verifysig(
·
)为验证数字签名函数,如果验证失败则丢弃该消息;iesi通过智能合约将边缘控制器和工业边缘网关关键身份信息存储在链上,隐私身份信息存储在链下,并将链上与链下的身份信息关联,链上数据保证关键身份信息不可篡改,隐私身份信息存储在链下,防止隐私身份信息泄露;
45.s24:链下身份信息存储;iesi会将在分布式存储系统中以merkel树结构存储对nodea的注册身份信息进行存储,存储的信息包括nodeida、devtypea、devmodela、agencya和rpcinfoa,其存储地址为storeaddra,merkel树中叶子节点存储边缘控制器或工业边缘网关的身份信息数据,非叶子节点则存储其子节点的hash值,身份信息merkel树根节点为mr;
46.s25:iesi调用身份注册智能合约regsc(regscaddr,mr)发起nodea身份注册交易
47.s251:边缘控制器的包含txnum交易编号、交易时间戳t
tx
、身份信息有效期t
valid
、身份注册信息的hash值digesta=hash(sr)和storeaddra,其中hash(
·
)为hash函数;
48.s252:工业边缘网关包含txnum交易编号、交易时间戳t
tx
、身份信息有效期t
valid
、身份注册信息的hash值digesta=hash(sr)、storeaddra和接入该工业边缘网关的工业现场设备集合{ifd1,ifd2,ifd3,...};
49.s26:身份信息交易的落成;iesi将放入群组的交易池中;主节点从交易池中取出身份注册交易发起共识,联盟链网络对身份注册交易完成共识后,系统将在账本中落成一个新的区块block,在区块block中记录身份注册交易iesi将区块信息返回给nodea;
50.s27:nodea注册完成后,在本地记录自身身份信息区块block及该区块的哈希值blockhash,并按照分布式存储系统中的merkel树结构存储自身的身份信息;并在本地记录在边缘层的联盟链网络中身份注册交易时间t
tx
,身份信息的有效期t
valid

51.进一步,所述s3具体为:
52.s31:特征值提取;
53.群组内的所有工业边缘服务器收集边缘节点的行为特征数据,特征数据的收集周期为t;对边缘节点身份认证前,工业边缘服务器收集的边缘节点行为特征数据包括:
54.feature1:边缘节点在t内的身份认证失败次数num
af

55.feature2:边缘节点在t内的其他边缘节点对其进行身份认证成功率rate
amf

56.feature3:边缘节点在t内的对其他边缘节点身份认证成功率rate
auf

57.feature4:边缘节点在t内的重新接入边缘层的次数num
ac

58.feature5:边缘节点在t内发起身份信息更新交易次数num
update

59.feature6:边缘节点在t内的访问工业边缘服务器资源次数num
sr

60.feature7:边缘节点在t内发送的身份信息报文数量num
msgi

61.feature8:边缘节点在t内发送的业务报文数量num
msgb

62.特征数据的收集具体方法如下:
63.s311:feature1、feature2和feature3:边缘节点的身份认证失败次数feature1包括一个边缘节点对其他边缘节点身份认证失败次数num
auf
、其他节点对其进行身份认证失败的次数num
amf
,二者的和为num
af
;还包括总的认证次数num
aus
。边缘节点完成身份认证后,工业边缘服务器根据身份认证结果对该边缘节点的特征值进行更新;
64.feature2其他节点对边缘节点进行身份认证成功率
65.feature3对其他边缘节点身份认证成功率
66.s312:feature4:边缘节点在t内的重新接入边缘层的次数num
ac
,当边缘节点反复接入边缘层的联盟链网络时,可能会带来安全风险;在t内每当边缘节点重新接入边缘层的联盟链网络,工业边缘服务器将特征值num
ac
+1;
67.s313:feature5:边缘节点在t内发起身份信息更新交易次数num
update
,在t内每当边缘节点发起一次身份信息更新交易,leader将特征值num
update
+1;
68.s314:feature6:边缘节点在t内的访问工业边缘服务资源次数num
sr
,在t内每当边缘节点访问工业边缘服务器的资源和请求计算服务,工业边缘服务器在本地记录信息num
sr

69.s315:feature7:边缘节点发送的身份信息报文数量num
msgi
,工业边缘服务器在本地记录与边缘节点间发送的身份信息相关的报文数量,包括身份认证、身份更新过程中的相关报文;
70.s316:feature8:边缘节点发送的业务报文数量num
msgb
,工业边缘服务器在本地记录与边缘节点间发送的业务相关的报文数量,包括传感数据上传、请求计算服务和访问工业服务器资源过程中的报文;
71.s32:行为分析算法
72.行为分析算法采用分类器模型,对采集到的边缘节点特征值进行分类,分类器将边缘节点的行为划分为3类,即低风险、中风险和高风险;在边缘节点身份认证和身份更新过程中,根据边缘节点的风险等级,工业边缘服务器将会采取不同的措施;
73.算法初始化阶段,设群组内有y个工业边缘服务器节点,主节点将行为分析模型分发至群组内的工业边缘服务器j∈{1,2,...,y-1},主节点随机生成模型参数主节点配置固定参数m,表示主节点每轮收集的梯度数量;fl为模型的损失函数,t轮的模型参数为θ
t
,梯度g
t
是损失函数fl在θ
t
的变化率;
74.行为分析的训练更新过程如下:
75.s321:主节点将在t轮的模型参数θ
t
发送至群组内的工业边缘服务器j;
76.s322:工业边缘服务器j在周期t采集的行为数据进行标准化处理,将特征向量中的每个特征缩放至区间[0,1],生成行为数据集为
[0077]
s323:工业边缘服务器j通过计算得到的局部梯度为然后边缘服务器j将局部梯度发送至主节点;
[0078]
s324:主节点将收集的数据生成梯度集合g,若梯度集合g中梯度数量小于m,则继续等待其他边缘服务器的梯度值,若g中梯度数量大于等于m,主节点通过梯度过滤器rd对g进行处理,过滤异常的梯度数据,减少拜占庭节点对于行为分析模型训练的影响;梯度过滤器rd具体步骤如下:
[0079]
s3241:计算集合g中梯度的欧氏范数,||
·
||表示梯度的欧式范数,其定义为
[0080]
s3242:找到g中第f大的欧氏范数的梯度x,其中f表示群组可容忍拜占庭节点数;
[0081]
s3243:丢弃欧式范数前f大的梯度;检查g中的每个梯度,如果则丢弃梯度否则将梯度添加到g

中,g

;返回过滤后的梯度集合g


[0082]
s325:主节点聚合梯度数据,根据过滤后的数据得到g
t

∑g′
∈g
′g′
;主节点使用sgd方法更新参数θ
t
;θ
t+1
=θ
t-ηg
t
,其中η为算法训练的步长。
[0083]
进一步,所述s4具体为:
[0084]
预编译的身份认证的智能合约authensc由部署在工业边缘服务器的控制台进行部署;部署完成后,工业边缘服务器会获得身份认证智能合约地址authenscaddr;身份认证智能合约通过blockhash读取账本上指定区块的交易数据,群组内的工业边缘服务器都有权限调用身份认证智能合约;
[0085]
边缘节点之间相互认证:
[0086]
边缘节点nodea和nodeb,当nodea需要对nodeb进行身份认证时,需要通过以下步骤完成认证:
[0087]
s41:nodeb首先计算其自身身份信息hash值digest
′b=hash(sr),然后,nodeb计算其节点标识nodeidb和其所属机构agencyb的稀疏默克尔多值证明(sparse merkle multiproofs)proofb,proofb的计算需要nodeb的身份信息merkel树的非叶子节点以及nodeb的身份注册信息,nodeb的证明nodeb生成认证消息签名sig
au
=signature(proofb||t
au
),t
au
为身份认证消息时间戳,发送身份认证消息m
au
={proofb||t
au
||sig
au
},blockhashb为nodeb的身份信息区块哈希;
[0088]
s42:nodea接收到nodeb的身份认证消息m
au
后,首先验证认证消息格式,若身份认证消息格式错误则丢弃该消息,否则对m
au
的时间戳t
au
进行验证,若消息超时则丢弃该消息,否则验证m
au
的消息签名verifysig(sig
au
),若验证失败则丢弃该认证消息,若验证成功nodea向群组内的iesi发起验证请求mv={proofb||tv||sigv},nodea的验证请求消息签名sigv=signature(proofb||tv);
[0089]
s43:当群组内的iesi收到验证请求mv时,验证请求消息格式,若验证请求消息格式错误则丢弃该消息,否则继续验证时间戳tv,若消息超时则丢弃该消息,否则验证mv的消息签名verifysig(sigv),若验证失败,则丢弃该消息;
[0090]
s44:调用身份认证智能合约authensc(authenscaddr,blockhashb);authensc读取nodeb在账本上的身份信息交易txb,iesi会获得nodeb在账本上的身份信息交易txb,信息包括nodeb的t
tx
、t
valid
、digestb和storeaddrb;
[0091]
s45:调用行为分析模型,对边缘节点nodeb进行行为分析,根据边缘节点行为分析
算法,nodeb会分为高风险、中风险和低风险3个风险等级;根据nodeb的风险等级具体的处理方式如下:
[0092]
s451:若nodeb为高风险边缘节点,则返回验证失败;
[0093]
s452:若nodeb为低风险边缘节点,iesi通过t
tx
和t
valid
计算身份信息是否在有效期内,若身份信息不在有效期内,则认证失败;若身份信息在有效期内,iesi对比mv中的digest
′b与身份注册交易信息digestb进行对比,若二者不一致,则认证失败;若二者一致,则认证成功;
[0094]
s453:若nodeb为中风险边缘节点,首先iesi通过t
tx
和t
valid
计算身份信息是否在有效期内,若身份信息不在有效期内,则认证失败;若身份信息在有效期内,iesi对比mv中的digest
′b与身份注册交易信息digestb进行对比,若二者不一致,则认证失败;若二者一致,则根据nodeb的身份注册交易信息中的storeaddrb,读取nodeb的身份信息merkel树根值mrb,并根据mv中的proofb计算证明结果mr
′b,mr
′b计算公式如式4-1所示,式中+表示合并两个字符串;对比mrb与mr
′b,若二者一致,则认证成功;若二者不一致,则认证失败;
[0095][0096]
s46:iesi返回验证响应消息返回验证响应消息为iesi的验证结果,为验证响应消息签名;
[0097]
s47:nodea将收到的验证响应后,验证时间戳t
vr
,若消息超时则丢弃该消息,否则验证响应消息签名verifysig(sig
vr
),若验证消息签名失败则丢弃该验证响应,若验证成功则将加入验证响应消息列表;若nodea的验证响应消息列表中接收到f+1个验证成功的result时,nodeb认证成功;若nodea的验证响应消息列表中接收到f+1个验证失败的result时,nodeb认证失败。
[0098]
进一步,所述s5具体为:
[0099]
当边缘控制器、工业边缘网关满足以下任一条件时,边缘控制器和工业边缘网关对自身的身份信息进行更新;
[0100]
1)当边缘控制器或工业边缘网关包含自身身份信息的交易将要过期时,包括身份注册交易、身份更新交易;
[0101]
2)当边缘控制器或工业边缘网关远程调用接口信息rpcinfo重新配置;
[0102]
3)当边缘控制器或工业边缘网关由于遭受网络攻击和电源耗尽原因需要重新接入边缘层的联盟链网络时;
[0103]
预编译的身份更新的智能合约updatesc由部署在工业边缘服务器的控制台进行部署;部署完成后,工业边缘服务器获得身份更新智能合约地址updatescaddr;调用身份更新智能合约将新的身份信息交易发起共识,将交易记录在账本中,并在分布式系统中删除原身份信息,存储新的身份信息;身份更新智能合约仅限工业边缘服务器调用;
[0104]
边缘节点完成以下步骤进行身份信息更新;
[0105]
s51:边缘节点nodea,nodea原身份证明proofa,原身份注册交易所在区块hash值
blockhasha,原身份信息hash值digesta,其新的身份信息为sr′
=(nodeid

||devtype

||devmodel

||agency

||rpcinfo

||exfield

);nodea向iesi发送身份更新消息m
up
={proofa||s
′r||t
up
||sig
up
},其中t
up
为身份更新消息时间戳,sig
up
=signature(sr′
||t
up
)为身份更新消息签名;
[0106]
s52:iesi收到nodea的身份更新消息m
up
后,iesi验证消息格式,若验证失败则丢弃该消息,否则验证m
up
的消息签名verifysig(sig
up
),若验证失败则丢弃该消息,否则iesi调用身份分析算法,若nodea为高风险节点,则身份更新失败;
[0107]
s53:调用身份认证智能合约authensc(authenscaddr,blockhasha)对nodea的身份进行认证,若认证失败,iesi则丢弃该消息;若认证成功,iesi则调用身份更新智能合约updatesc(updatescaddr,s
′r);
[0108]
s54:通过身份更新智能合约updatesc,iesi在分布式存储系统中以merkel树结构存储nodea新的身份信息,存储地址为stroeaddr
′a,删除stroeaddra的原身份信息;
[0109]
s55:iesi生成nodea的身份信息更新交易tx
up
={txnum||t
tx
||t

valid
||digest
new
||storeaddr
′a||exfield

},其中digest
new
=hash(s
′r),iesi将tx
up
放入群组的交易池,主节点取出交易并发起共识,在群组内完成共识后,群组内的工业边缘服务器在账本中落成一个新的区块block
new
,block
new
中包含tx
up

[0110]
s56:nodea从iesi获取新的区块block
new
信息;nodea更新blockhasha为block
new
的hash值blockhash
′a;更新本地身份信息merkel树;更新身份信息交易时间更新身份信息有效期
[0111]
本发明的有益效果在于:本发明提出了一种面向工业边缘节点的身份认证架构,包括现场设备层、边缘层及工业云平台层;同时,工业边缘服务器对边缘计算节点的行为特征进行采集,利用采集的行为特征数据和行为分析算法判别边缘计算节点的风险等级,在身份认证的过程中根据边缘计算节点的风险等级采取不同的身份认证方法,提出一种结合行为分析算法的身份认证方法解决了集中式实体带来的单点故障问题和身份认证效率较低的问题。
[0112]
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
[0113]
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
[0114]
图1为基于联盟链的身份认证架构图;
[0115]
图2为边缘节点身份注册流程图;
[0116]
图3为ec和ieg身份信息存储结构;
[0117]
图4为边缘节点之间相互认证流程;
[0118]
图5为边缘节点身份信息更新。
具体实施方式
[0119]
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0120]
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0121]
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
[0122]
本发明提出的基于联盟链的身份认证架构如图1所示。架构共分为3层,工业云平台层、边缘层和现场设备层。工业云平台层包含工业云服务器;边缘层是工业边缘计算系统的边缘侧,包含了由工业边缘服务器组成的联盟链网络,边缘节点包括工业边缘服务器、工业边缘网关和工业控制器等;现场设备层包含工业现场设备。
[0123]
1.工业云服务器(ics,industrial cloud server):为边缘节点和工业现场设备提供资源密集型服务。工业云服务器同时加入所有的群组,从群组内的工业边缘服务器获取身份认证信息,对身份数据进行存储。
[0124]
2.工业边缘服务器(ies,industrial edge server):为工业边缘网关、边缘控制器和工业现场设备提供计算、存储等服务。在边缘层的联盟链网络中担任共识节点(sealer),共识节点在边缘层的联盟链网络中分为主节点(leader)和副本节点(replica)。
[0125]
a)群组(group):邻近的工业边缘服务器组成一个群组。一个工业边缘服务器可以同时加入多个群组。
[0126]
b)主节点(leader):负责将交易打包成区块和区块的共识。每轮共识过程中每个群组中拥有一个leader。
[0127]
c)副本节点(replica):负责区块的共识,每个群组中有多个副本节点。
[0128]
d)共识节点(sealer):主节点(leader)和副本节点(replica)统称为共识节点。
[0129]
e)机构(agency):按照工业边缘服务器提供的不同服务类型,可将工业边缘服务器划分为多个机构,也可以所有节点属于同一机构。
[0130]
f)分布式存储系统:在工业边缘服务器间搭建的分布式存储系统,用于链下存储节点的详细身份信息。工业边缘服务器拥有分布式存储系统读取权限。
[0131]
3.工业边缘网关(ieg,industrial edge gateway):负责工业通信协议和以太网的协议转换等。
[0132]
4.边缘控制器(ec,edge controller):负责i/o控制等。
[0133]
5.工业现场设备(ifd,industrial field device):工业现场设备通过边缘网关接入边缘层。
[0134]
身份认证方案分为系统初始化注册、行为分析算法、认证、更新。具体过程如下:
[0135]
一、系统初始化
[0136]
1.工业边缘服务器初始化
[0137]
工业边缘服务器在边缘层的联盟链网络中担任共识节点(sealer),iesi为边缘层的某个工业边缘服务器,iesi初始化首先需要安装联盟链客户端,安装完成联盟链客户端后,iesi将获得联盟链节点地址bcaddri,以及联盟链证书bccrti。iesi采用一种非对称加密算法,如ecc(elliptic curve cryptography)算法,获得唯一的会话密钥对,iesi私钥为ieskeyi,iesi公钥为iespki。然后,iesi被配置了所属机构agencyi,根据其所配置的机构,最后iesi将被配置加入的一个群组groupid。iesi配置完成后作为共识节点(sealer)加入边缘层的联盟链网络,加入后在共识节点列表sealerlist中添加该节点的bcaddri。iesi完成初始化后就加入了边缘层的联盟链网络,无需进行身份注册操作。
[0138]
2.群组初始化
[0139]
联盟链通常采用pbft(practical byzantine fault tolerance)共识算法,故障节点或恶意节点称为拜占庭节点,pbft算法的共识模型为3f+1,即超过2/3的节点的执行结果一致才能完成共识,系统最多可容忍f个拜占庭节点。因此通常根据容忍拜占庭节点数f设置工业边缘服务器加入联盟链网络的数量。
[0140]
群组g是一个groupid为g的群组,其初始化过程如下:
[0141]
(1)在g中选择一个iesi,并将该iesi所在的agencyi作为发起群组初始化的机构,群组内的所有机构集合为{agency1,agency2,...,agencyi,...}。
[0142]
(2)所选发起群组初始化的节点iesi收集群组内所有节点的联盟链节点地址、联盟链证书、机构、群组和对等网络p2p(peer to peer)连接信息。p2p连接信息包括ip地址、p2p端口号和远程过程调用rpc(remote procedure call)接口信息rpcinfo。具体收集的节点信息如表1所示。
[0143]
表1iesi收集的联盟链节点信息
[0144][0145]
(3)iesi将群组中所有联盟链节点信息收集完成后,iesi根据groupid创建群组,并将所有节点的信息打包成群组g的起始区块。起始区块创建后不可修改,群组建成后,已有
联盟链节点信息变更和新的联盟链节点的加入都将不再修改起始区块。
[0146]
(4)iesi将群组g的初始区块分发至群组g中所有的联盟链节点,包括群组g下所有的机构集合{agency1,agency2,...,agencyi,...}的联盟链节点。群组中所有机构在拥有了群组g内所有节点的p2p连接信息,各机构通过p2p连接信息生成节点部署程序,各机构调用节点部署程序启动各机构中的联盟链节点。
[0147]
3.边缘控制器和工业边缘网关初始化
[0148]
在初始化阶段,由于边缘控制器(ec)和工业边缘网关(ieg)资源受限,无法安装联盟链客户端,边缘控制器和工业边缘网关初始化在初始化阶段获得节点标识nodeid。边缘控制器和工业边缘网关使用与ies相同的非对称加密算法获得唯一的会话密钥对,边缘节点私钥nodekey和边缘节点公钥nodepk。边缘控制器和工业边缘网关需要配置其rpc接口信息rpcinfo和所属机构agency。
[0149]
二、身份注册
[0150]
边缘控制器和工业边缘网关等加入边缘网络前必须完成身份注册。边缘控制器和工业边缘网关将身份注册请求发送至目标群组内的工业边缘服务器,工业边缘服务器作为共识节点调用身份注册智能合约将身份注册交易放入交易池,主节点从交易池中取出交易打包成区块并发起共识,最终落成包含身份注册交易的区块。预编译的身份注册的智能合约regsc由部署在工业边缘服务器的控制台进行部署;部署完成后,工业边缘服务器会获得身份注册智能合约地址regscaddr。
[0151]
边缘控制器和工业边缘网关身份注册步骤如下。
[0152]
1)边缘控制器或工业边缘网关nodea在进行身份注册时需要其节点标识nodeida、设备类型devtypea,设备型号devmodela、所属机构agencya,nodea远程调用接口rpc信息rpcinfoa作为身份注册信息。
[0153]
2)上述nodea的身份注册信息表示为s
r sr=(nodeida||devtypea||devmodela||agencya||rpcinfoa),其中||为连接符。signature(
·
)为数字签名函数,tr为身份注册消息时间戳,对sr和tr生成身份注册消息签名sigr=signature(sr||tr),nodea向iesi发送身份注册消息mr={sr||tr||exfield||sigr},其中exfield为边缘节点的其他扩展信息,如接入工业边缘网关的工业现场设备集合{ifd1,ifd2,ifd3,...},如图2所示。
[0154]
3)iesi接收到身份注册消息后,首先验证消息格式,如果身份注册消息格式错误则丢弃该消息,否则继续验证时间戳tr,如果消息超时则丢弃该消息,否则验证身份注册消息签名verifysig(sigr),其中verifysig(
·
)为验证数字签名函数,如果验证失败则丢弃该消息。iesi通过智能合约将边缘控制器和工业边缘网关关键身份信息存储在链上,隐私身份信息存储在链下,并将链上与链下的身份信息关联,链上数据保证关键身份信息不可篡改,隐私身份信息存储在链下,防止隐私身份信息泄露。
[0155]
4)链下身份信息存储。iesi会将在分布式存储系统中以merkel树结构存储对nodea的注册身份信息进行存储,存储的信息包括nodeida、devtypea、devmodela、agencya和rpcinfoa,其存储地址为storeaddra,具体结构如图3所示,merkel树中叶子节点存储边缘控制器或工业边缘网关的身份信息数据,非叶子节点则存储其子节点的hash值,身份信息merkel树根节点为mr。
[0156]
5)iesi调用身份注册智能合约regsc(regscaddr,mr)发起nodea身份注册交易
交易内容如表2所示。其中
“‑”
表示为空。
[0157]
表2身份注册交易结构
[0158][0159]
i.边缘控制器的包含txnum交易编号、交易时间戳t
tx
、身份信息有效期t
valid
、身份注册信息的hash值digesta=hash(sr)和storeaddra,其中hash(
·
)为hash函数。
[0160]
ii.工业边缘网关包含txnum交易编号、交易时间戳t
tx
、身份信息有效期t
valid
、身份注册信息的hash值digesta=hash(sr)、storeaddra和接入该工业边缘网关的工业现场设备集合{ifd1,ifd2,ifd3,...}。
[0161]
6)身份信息交易的落成。iesi将放入群组的交易池中。主节点从交易池中取出身份注册交易发起共识,联盟链网络对身份注册交易完成共识后,系统将在账本中落成一个新的区块block,在区块block中记录身份注册交易iesi将区块信息返回给nodea。
[0162]
7)nodea注册完成后,在本地记录自身身份信息区块block及该区块的哈希值blockhash,并按照分布式存储系统中的merkel树结构存储自身的身份信息。并在本地记录在边缘层的联盟链网络中身份注册交易时间t
tx
,身份信息的有效期t
valid

[0163]
三、行为分析算法
[0164]
1.特征值提取
[0165]
群组内的所有工业边缘服务器收集边缘节点的行为特征数据,特征数据的收集周期为t。对边缘节点身份认证前,工业边缘服务器收集的边缘节点行为特征数据包括:
[0166]
feature1:边缘节点在t内的身份认证失败次数num
af

[0167]
feature2:边缘节点在t内的其他边缘节点对其进行身份认证成功率rate
amf

[0168]
feature3:边缘节点在t内的对其他边缘节点身份认证成功率rate
auf

[0169]
feature4:边缘节点在t内的重新接入边缘层的次数num
ac

[0170]
feature5:边缘节点在t内发起身份信息更新交易次数num
update

[0171]
feature6:边缘节点在t内的访问工业边缘服务器资源次数num
sr

[0172]
feature7:边缘节点在t内发送的身份信息报文数量num
msgi

[0173]
feature8边缘节点在t内发送的业务报文数量num
msgb

[0174]
上述特征的收集具体方法如下:
[0175]
1)feature1、feature2和feature3
[0176]
边缘节点的身份认证失败次数feature1包括一个边缘节点对其他边缘节点身份认证失败次数num
auf
、其他节点对其进行身份认证失败的次数num
amf
,二者的和为num
af
;还包括总的认证次数num
aus

[0177]
feature2其他节点对边缘节点进行身份认证成功率
[0178]
feature3对其他边缘节点身份认证成功率
[0179]
2)feature4
[0180]
边缘节点在t内的重新接入边缘层的次数num
ac
,当边缘节点反复接入边缘层的联盟链网络时,可能会带来安全风险。在t内每当边缘节点重新接入边缘层的联盟链网络,工业边缘服务器将特征值num
ac
+1。边缘节点完成身份认证后,工业边缘服务器根据身份认证结果对该边缘节点的特征值进行更新。
[0181]
3)feature5
[0182]
边缘节点在t内发起身份信息更新交易次数num
update
,在t内每当边缘节点发起一次身份信息更新交易,leader将特征值num
update
+1。
[0183]
4)feature6
[0184]
边缘节点在t内的访问工业边缘服务资源次数num
sr
,在t内每当边缘节点访问工业边缘服务器的资源、请求计算服务等,工业边缘服务器在本地记录信息num
sr

[0185]
5)feature7
[0186]
边缘节点发送的身份信息报文数量num
msgi
,工业边缘服务器在本地记录与边缘节点间发送的身份信息相关的报文数量,主要包括身份认证、身份更新过程中的相关报文。
[0187]
6)feature8
[0188]
边缘节点发送的业务报文数量num
msgb
,工业边缘服务器在本地记录与边缘节点间发送的业务相关的报文数量,主要包括但不限于传感数据上传、请求计算服务、访问工业服务器资源等过程中的报文。
[0189]
2.行为分析算法
[0190]
行为分析算法主要采用分类器模型,对采集到的边缘节点特征值进行分类,分类器可将边缘节点的行为划分为3类,低风险,中风险和高风险。在边缘节点身份认证和身份更新过程中,根据边缘节点的风险等级,工业边缘服务器将会采取不同的措施。
[0191]
算法初始化阶段,设群组内有y个工业边缘服务器节点,主节点将行为分析模型分发至群组内的工业边缘服务器j∈{1,2,...,y-1},主节点随机生成模型参数主节点配置固定参数m,表示主节点每轮收集的梯度数量。fl为模型的损失函数,t轮的模型参数为θ
t
,梯度g
t
是损失函数fl在θ
t
的变化率。
[0192]
行为分析的训练更新过程如下:
[0193]
1.主节点将在t轮的模型参数θ
t
发送至群组内的工业边缘服务器j。
[0194]
2.工业边缘服务器j在周期t采集的行为数据进行标准化处理,将特征向量中的每个特征缩放至区间[0,1],生成行为数据集为
[0195]
3.工业边缘服务器j通过计算得到的局部梯度为然后边缘服务器j将局部梯度发送至主节点。
[0196]
4.主节点将收集的数据生成梯度集合g,若梯度集合g中梯度数量小于m,则继续等待其他边缘服务器的梯度值,若g中梯度数量大于等于m,主节点通过梯度过滤器rd对g进行
处理,过滤异常的梯度数据,减少拜占庭节点对于行为分析模型训练的影响。梯度过滤器rd具体步骤如下:
[0197]
(1)计算集合g中梯度的欧氏范数,||
·
||表示梯度的欧式范数,其定义为
[0198]
(2)找到g中第f大的欧氏范数的梯度x,其中f表示群组可容忍拜占庭节点数。
[0199]
(3)丢弃欧式范数前f大的梯度。检查g中的每个梯度,如果则丢弃梯度否则将梯度添加到g

中,g

。返回过滤后的梯度集合g


[0200]
5.主节点聚合梯度数据,根据过滤后的数据得到g
t

∑g′
∈g
′g′
。主节点使用sgd方法更新参数θ
t
。θ
t+1
=θ
t-ηg
t
,其中η为算法训练的步长。
[0201]
四、身份认证
[0202]
预编译的身份认证的智能合约authensc由部署在工业边缘服务器的控制台进行部署;部署完成后,工业边缘服务器会获得身份认证智能合约地址authenscaddr。身份认证智能合约通过blockhash读取账本上指定区块的交易数据,群组内的工业边缘服务器都有权限调用身份认证智能合约。
[0203]
1.边缘节点之间相互认证
[0204]
边缘节点nodea和nodeb,当nodea需要对nodeb进行身份认证时,需要通过以下步骤完成认证,认证的流程如图4所示。
[0205]
1)nodeb首先计算其自身身份信息hash值digest
′b=hash(sr),然后,nodeb计算其节点标识nodeidb和其所属机构agencyb的稀疏默克尔多值证明(sparse merkle multiproofs)proofb,proofb的计算需要nodeb的身份信息merkel树的非叶子节点以及nodeb的身份注册信息,nodeb的证明nodeb生成认证消息签名sig
au
=signature(proofb||t
au
),t
au
为身份认证消息时间戳,发送身份认证消息m
au
={proofb||t
au
||sig
au
},blockhashb为nodeb的身份信息区块哈希。
[0206]
2)nodea接收到nodeb的身份认证消息m
au
后,首先验证认证消息格式,若身份认证消息格式错误则丢弃该消息,否则对m
au
的时间戳t
au
进行验证,若消息超时则丢弃该消息,否则验证m
au
的消息签名verifysig(sig
au
),若验证失败则丢弃该认证消息,若验证成功nodea向群组内的iesi发起验证请求mv={proofb||tv||sigv},nodea的验证请求消息签名sigv=signature(proofb||tv)。
[0207]
3)当群组内的iesi收到验证请求mv时,验证请求消息格式,若验证请求消息格式错误则丢弃该消息,否则继续验证时间戳tv,若消息超时则丢弃该消息,否则验证mv的消息签名verifysig(sigv),若验证失败,则丢弃该消息。
[0208]
4)调用身份认证智能合约authensc(authenscaddr,blockhashb)。authensc读取nodeb在账本上的身份信息交易txb,iesi会获得nodeb在账本上的身份信息交易txb,信息包括nodeb的t
tx
、t
valid
、digestb和storeaddrb。
[0209]
5)调用行为分析模型,对边缘节点nodeb进行行为分析,根据边缘节点行为分析算法,nodeb会分为高风险、中风险和低风险3个风险等级。根据nodeb的风险等级具体的处理方式如下:
[0210]
i.若nodeb为高风险边缘节点,则返回验证失败。
[0211]
ii若nodeb为低风险边缘节点,iesi通过t
tx
和t
valid
计算身份信息是否在有效期内,若身份信息不在有效期内,则认证失败。若身份信息在有效期内,iesi对比mv中的digest
′b与身份注册交易信息digestb进行对比,若二者不一致,则认证失败;若二者一致,则认证成功。
[0212]
iii.若nodeb为中风险边缘节点,首先iesi通过t
tx
和t
valid
计算身份信息是否在有效期内,若身份信息不在有效期内,则认证失败。若身份信息在有效期内,iesi对比mv中的digest
′b与身份注册交易信息digestb进行对比,若二者不一致,则认证失败;若二者一致,则根据nodeb的身份注册交易信息中的storeaddrb,读取nodeb的身份信息merkel树根值mrb,并根据mv中的proofb计算证明结果mr
′b,mr
′b计算公式如式(1)所示,式中+表示合并两个字符串。对比mrb与mr
′b,若二者一致,则认证成功;若二者不一致,则认证失败。
[0213][0214]
6)iesi返回验证响应消息返回验证响应消息为iesi的验证结果,为验证响应消息签名。
[0215]
7)nodea将收到的验证响应后,验证时间戳t
vr
,若消息超时则丢弃该消息,否则验证响应消息签名verifysig(sig
vr
),若验证消息签名失败则丢弃该验证响应,若验证成功则将result
iesi
加入验证响应消息列表。具体如表3所示,若nodea的验证响应消息列表中接收到f+1个验证成功的result时,nodeb认证成功;若nodea的验证响应消息列表中接收到f+1个验证失败的result时,nodeb认证失败。
[0216]
表3验证响应消息列表
[0217][0218][0219]
五、身份更新
[0220]
1.边缘控制器、工业边缘网关身份更新
[0221]
当边缘控制器、工业边缘网关满足以下任一条件时,边缘控制器和工业边缘网关需要对自身的身份信息进行更新。
[0222]
i.当边缘控制器或工业边缘网关包含自身身份信息的交易将要过期时,如身份注册交易、身份更新交易。
[0223]
ii当边缘控制器或工业边缘网关远程调用接口信息rpcinfo重新配置。
[0224]
iii.当边缘控制器或工业边缘网关由于遭受网络攻击、电源耗尽等原因需要重新接入边缘层的联盟链网络时。
[0225]
预编译的身份更新的智能合约updatesc由部署在工业边缘服务器的控制台进行部署;部署完成后,工业边缘服务器会获得身份更新智能合约地址updatescaddr。调用身份更新智能合约将新的身份信息交易发起共识,将交易记录在账本中,并在分布式系统中删除原身份信息,存储新的身份信息。身份更新智能合约仅限工业边缘服务器调用。
[0226]
边缘节点完成以下步骤进行身份信息更新。身份信息更新具体流程如图5所示。
[0227]
1)边缘节点nodea,nodea原身份证明proofa,原身份注册交易所在区块hash值blockhasha,原身份信息hash值digesta,其新的身份信息为sr′
=(nodeid

||devtype

||devmodel

||agency

||rpcinfo

||exfield

)。nodea向iesi发送身份更新消息m
up
={proofa||s
′r||t
up
||sig
up
},其中t
up
为身份更新消息时间戳,sig
up
=signature(sr′
||t
up
)为身份更新消息签名。
[0228]
2)iesi收到nodea的身份更新消息m
up
后,iesi验证消息格式,若验证失败则丢弃该消息,否则验证m
up
的消息签名verifysig(sig
up
),若验证失败则丢弃该消息,否则iesi调用身份分析算法,若nodea为高风险节点,则身份更新失败。
[0229]
3)调用身份认证智能合约authensc(authenscaddr,blockhasha)对nodea的身份进行认证,若认证失败,iesi则丢弃该消息;若认证成功,iesi则调用身份更新智能合约updatesc(updatescaddr,s
′r)。
[0230]
4)通过身份更新智能合约updatesc,iesi在分布式存储系统中以merkel树结构存储nodea新的身份信息,存储地址为stroeaddr
′a,删除stroeaddra的原身份信息。
[0231]
5)iesi生成nodea的身份信息更新交易tx
up
={txnum||t
tx
||t

valid
||digest
new
||storeaddr
′a||exfield

},其中digest
new
=hash(s
′r),iesi将tx
up
放入群组的交易池,主节点取出交易并发起共识,在群组内完成共识后,群组内的工业边缘服务器在账本中落成一个新的区块block
new
,block
new
中包含tx
up

[0232]
6)nodea从iesi获取新的区块block
new
信息。nodea更新blockhasha为block
new
的hash值blockhash
′a;更新本地身份信息merkel树;更新身份信息交易时间更新身份信息有效期
[0233]
实施例:
[0234]
一、系统初始化
[0235]
群组1内有工业边缘服务器器节点ies1、ies2、ies3和ies4。群组1内的机构集合为{agency1,agency2}。ies1所在的机构agency1作为群组初始化发起机构收集群组内所有节点的信息,如表4所示。
[0236]
表4 ies1收集的联盟链节点信息
[0237][0238]
ies1将上表中的信息打包成群组1的起始区块。ies1将起始区块发送至群组1下属机构{agency1,agency2}的联盟链节点,即ies2、ies3和ies4。
[0239]
(一)边缘控制器和工业边缘网关身份注册
[0240]
身份注册智能合约regsc通过ies1的控制进行部署,完成部署后获得身份注册智能合约地址regscaddr=9f7a148d62f4b0041a27c617fd752db74db31b7a498 438c99c5479d0b4d09111。有边缘控制器ec1和工业边缘网关ieg1其身份信息如下表所示。ec1和ieg1的身份注册过程如下。
[0241]
表5 ec1和ieg1身份注册信息
[0242]
节点节点标识设备类型设备型号agencyrpcinfoec1d862d3186b486086devtype
ec1
ama-558agency1rpcinfo
ec1
ieg1d4089e7e36fba8d7devtype
ieg1
g12aagency2rpcinfo
ieg1
[0243]
1)表5中ec1和ieg1的身份注册信息表示为和ec1发送身份注册消息至联盟链节点ies1;ieg1发送身份注册消联盟链节点ies1。其中包含接入ieg1的工业现场设备{ifd1,ifd2,ifd3}。
[0244]
2)ies1收到和后验证消息格式、时间戳和注册消息签名。验证通过后ies1访问分布式存储系统,按merkel树结构存入ec1和ieg1的身份注册信息,分布式存储返回ec1和ieg1的身份注册信息存储地址和
[0245]
3)ies1调用智能合约和生成身份注册交易和将和放入交易池中,具体交易内容如下表所示。主节点对交易和发起共识,共识完成后落成包含交易和的区块block2。
[0246]
表6 ec1和ieg1身份注册交易
[0247][0248]
4)ec1和ieg1在本地记录包含身份注册交易的区块block2及其区块hash值blockhash2。并且ec1和ieg1在本地记录在边缘联盟网络中身份注册交易时间和交易有效期
[0249]
二、身份认证
[0250]
如图2-4所示,身份认证智能合约authensc通过ies1的控制台进行部署,部署完成后获得身份认证智能合约地址authenscaddr=24b68a31759c4b4717837362abeb35366b8817e1792595488d9909614381dd0a。
[0251]
1.ec1与ieg1相互认证
[0252]
ec1对ieg1身份认证过程如下。
[0253]
1)ieg1首先计算身份信息hash值然后ieg1构造自身身份信息的稀疏默克尔多值证明ieg1生成身份认证消息签名ieg1向发送ec1发送认证消息发送的
[0254]
2)ec1接收到ieg1的身份认证消息后,ec1对消息的格式、时间戳和消息签名进行验证;验证通过后,向群组内的ies1、ies2发起验证请求ec1发送的其中消息签名
[0255]
3)ies1、ies2发起收到验证请求后,ies1验证的格式、时间戳和消息签名,验证通过后,调用行为分析算法,ec1为中风险节点,调用身份认证智能合约authensc(authenscaddr,blockhash2)。ies1、ies2通过调用合约获取到ieg1的身份交易
[0256]
4)ies1、ies2验证ieg1的身份交易是否在有效期内,ies1、ies2对比中与中的一致性,ies1、ies2通过中的在分布式存储系统中读取ieg1的身份信息merkel树根值并根据计算证明结果ies1、ies2验证对比与一致性。
[0257]
5)ies1返回验证响应消息ies2返回验证响应消息
[0258]
6)ec1接收到ies1、ies2的验证响应消息后,验证的消息格式、时间戳和消息签名。群组1中共4个共识节点,收到ies1、ies2的认证成功结果,因此ec1对ieg1认证成功。
[0259]
2.身份更新
[0260]
如图5所示,身份更新的智能合约updatesc通过ies1的控制台进行部署,部署完成后获得身份认证智能合约地址updatescaddr=8d8115830d5ea65145f202a132c885b5fd4cb5bf66e820254434c52f390bb603。
[0261]
ieg1身份更新过程如下。
[0262]
1)ieg1新的身份信息ieg1向ies1发送身份更新消息发送身份更新消息
[0263]
2)ies1收到ieg1的后,ies1对的格式、时间戳和消息签名进行验证。验证
通过后ies1调用算法行为分析算法,ieg1为中风险边缘节点,调用身份认证合约authensc(authenscaddr,blockhash2)读取ieg1链上身份交易信息和链下身份信息,对ieg1的身份进行验证。验证通过后,ies1调用身份更新智能合约
[0264]
3)通过智能合约,ies1在分布式存储系统中存储ieg1新的身份信息,存储地址为删除的原身份信息。群组1内的工业边缘服务器落成新的区块block3。block3中包含了ieg1身份更新交易
[0265]
4)ieg1从获取ies1新的区块block3。ieg1更新blockhash为block3的区块hash值blockhash3;ieg1更新身份信息merkel树、身份信息交易时间为身份信息有效性为
[0266]
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1