一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于区块链的设备跨域认证管理方法及装置

2022-04-27 03:53:59 来源:中国专利 TAG:


1.本技术涉及信息安全技术领域,特别涉及一种基于区块链的设备跨域认证管理方法、装置、电子设备及存储介质。


背景技术:

2.在物联网和很多领域,设备数量众多,并且不同的企业和组织之间存在设备和资源的共享。在此场景下,需要进行设备的跨域认证管理。
3.在设备交换、共享、管理的过程中,有很多问题需要解决,例如访问控制、身份认证设备追踪等。另外,大多数设备包含了许多企业或用户的敏感和隐私数据,一旦数据丢失,将会对相关企业造成巨大的经济损失,导致非常恶劣的后果。因此,安全的设备管理方案非常必要,以此来防止非授权用户访问、使用这些关键的设备。另外,考虑到在一些物联网场景下,设备的海量特性,设备管理方案必须具有可扩展性和高吞吐量。高吞吐量意味着系统每秒钟能够处理大量的跨域设备进出请求,可扩展性意味着系统处理请求的能力能够随着网络中参与节点数量的增多而增强。
4.现有设备跨域认证管理方案能够被分为两大类。第一类是基于对称密码学和密钥管理协议,例如kerberos协议。然而,这种管理方式效率较低,因为此种协议通常要求参与者进行多轮消息计算和传输,通信复杂度较高。第二类是在认证中心(certificate authority, ca)的参与下,利用数字证书实现设备的身份认证。然而,现有方案大多依靠可信的第三方来实现,这样容易发生单点故障,系统可用性较差。
5.区块链技术能够在身份认证过程中被使用,来克服现有方案的缺点,提供更加安全、可靠、高效地的设备跨域认证管理解决方案。区块链可以被视为公开、不可篡改的分布式数据库,由网络中终端参与节点通过某种既定的共识规则来共同维护。区块链的去中心化、防篡改、透明等特性使其能够被视为可信的平台,可以在其上面构建认证协议。另外,在区块链上能够部署智能合约实现自动执行的程序逻辑。将区块链和智能合约技术运用到设备跨域管理领域,能够打破之前方案的众多安全性、吞吐量限制,构建更高效、更安全的系统。


技术实现要素:

6.本技术提供一种基于区块链的设备跨域认证管理方法、装置、电子设备及存储介质,以解决跨设备认证时需要可信第三方实现,容易发生三点故障,可用性较差的问题。
7.本技术第一方面实施例提供一种基于区块链的设备跨域认证管理方法,包括以下步骤: s1,根据投票机制将多个机构管理部门加入机构联盟委员会s2,更新所述多个机构管理部门中的默克尔树树根值,并存储至智能合约;s3,在第二机构管理部门向第一机构管理部门发送设备出借请求时,生成所述第一机构管理部门的设备默克尔树证明,根据设备默克尔树证明以及所述智能合约中的默克尔树树根值确定满足设备借出条件时,利用双方的门控器进行设备交接的同时双方签署交易并将所述交易上传至区块链,更新本地状态;
s4,在所述第二机构管理部门向所述第一机构管理部门归还借出设备时,生成所述第二机构管理部门的设备默克尔树证明,利用双方的门控器进行设备交接的同时双方签署交易并将所述交易上传至区块链,更新本地状态。
8.可选地,在本技术的一个实施例中,所述根据投票机制将多个机构管理部门加入机构联盟委员会,包括:将待加入所述机构联盟委员会的机构管理部门中的每个成员在本地生成双线性对公共参数,所述每个成员随机选取自身私钥计算对应的自身公钥及公钥证明,并发送给认证中心,利用所述认证中心的计算比对,验证公钥的合法性后,将合法的公钥添加到公钥列表,在所述公钥列表中的合法公钥数量达到第一预设数量后,广播所述公钥列表至所述机构联盟委员会中的每个成员;通过待加入所述机构联盟委员会的机构管理部门向所述机构联盟委员会发送加入请求,所述机构联盟委员会同意加入时,调用智能合约对所述机构管理部进行投票;统计预设时间内的投票数,在所述投票数大于预设投票数时,将所述机构管理部门加入所述机构联盟委员会。
9.可选地,在本技术的一个实施例中,更新所述多个机构管理部门中的默克尔树树根值,包括:获取机构内每个设备的设备数据并记录到本地数据库中,所述设备数据包括设备身份信息、状态信息、地点信息和时间信息;对所述每个设备的设备数据进行整合,并计算其哈希值,以每个设备数据作为默克尔树叶节点,构建默克尔树,并且计算默克尔树树根哈希值;调用所述智能合约,将所述默克尔树树根哈希值上传至所述智能合约。
10.可选地,在本技术的一个实施例中,所述s3包括:通过所述第二机构管理部门的每个成员对设备数据签名,利用聚合签名的签名份额产生算法,生成每个成员的签名份额,每个成员将签名消息发送至所述第二机构管理部门的领导者,通过领导者验证每个签名份额的合法性,将合法的签名份额添加到公钥列表中,在公钥列表中有效签名份额数量达到第二预设数量时,领导者通过聚合签名算法计算总签名、总公钥等信息,并且构建请求消息,将其发送至所述第一机构管理部门,所述第一机构管理部门验证搜书请求消息中公钥和签名的合法性,在验证通过后,查询所述借出设备的当前状态,在所述借出设备允许借出时,向所述第二机构管理部门返回确认消息;生成所述第一机构管理部门中所述借出设备的默克尔树证明,并在本地数据库中更改所述借出设备的状态,将默克尔树证明、设备数据写入所述借出设备的射频识别标签中;在设备交接时,通过所述第一机构管理部门对应的第一门控器扫描所述借出设备的射频识别标签获得设备数据和默克尔树证明,并根据扫描到的数据计算得到默克尔树树根哈希值,同时所述第一门控器在智能合约查询所述第一机构管理部门对应机构的默克尔树树根值,在两值相等时,将所述借出设备交给所述第二机构管理部门对应的第二门控器进行验证;在所述第二门控器验证通过后,双方签署交易并将所述交易上传至区块链,并在本地数据库中更新所述借出设备的状态,同时重新计算所述第一机构管理部门和所述第二机构管理部门的默克尔树树根哈希值,并存储至智能合约。
11.可选地,在本技术的一个实施例中,所述s4包括:通过所述第二机构管理部门计算得到设备数据哈希值,以及其默克尔树证明,存储到设备的射频识别标签中;通过所述第二门控制器扫描射频识别标签后计算默克尔树树根值,在默克尔树树根值于智能合约中的树根值相等时,将所述借出设备移交至所述第一门控器;通过第一门控器扫描射频识别标签计算默克尔树树根值,在默克尔树树根值与智能合约中的树根值相等时,双方签署交易并将所述交易上传至区块链,并在本地数据库中更新所述借出设备的状态,同时重新计算所
述第一机构管理部门和所述第二机构管理部门的默克尔树树根哈希值,并存储至智能合约。
12.可选地,在本技术的一个实施例中,所述智能合约包括多种函数以进行所述机构联盟委员会投票、默克尔树树根值更新及查询合约和所述借出设备交接。
13.本技术第二方面实施例提供一种基于区块链的设备跨域认证管理装置,包括:加入模块,用于根据投票机制将多个机构管理部门加入机构联盟委员会;更新模块,用于更新所述多个机构管理部门中的默克尔树树根值,并存储至智能合约;借出模块,用于在第二机构管理部门向第一机构管理部门发送设备出借请求时,生成所述第一机构管理部门的设备默克尔树证明,根据设备默克尔树证明以及所述智能合约中的默克尔树树根值确定满足设备借出条件时,利用双方的门控器进行设备交接的同时双方签署交易并将所述交易上传至区块链,更新本地状态;归还模块,用于在所述第二机构管理部门向所述第一机构管理部门归还借出设备时,生成所述第二机构管理部门的设备默克尔树证明,利用双方的门控器进行设备交接的同时双方签署交易并将所述交易上传至区块链,更新本地状态。
14.可选地,在本技术的一个实施例中,所述智能合约包括多种函数以进行所述机构联盟委员会投票、默克尔树树根值更新及查询合约和所述借出设备交接。
15.本技术第三方面实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以执行如上述实施例所述的基于区块链的设备跨域认证管理方法。
16.本技术第四方面实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以执行如上述实施例所述的基于区块链的设备跨域认证管理方法。
17.本技术实施例的基于区块链的设备跨域认证管理方法、装置、电子设备及存储介质,设计区块链和智能合约技术,其有益效果为:
18.1)设备跨域管理具有实用性。不同组织机构可以采用不同的管理系统对其自身设备和数据进行管理,只需要定期在公开的区块链上,利用智能合约更新其所有设备数据的默克尔树树根哈希值。设备交接时,只需要简单的验证步骤便能实现。
19.2)设备跨域管理具有隐私保护特性。各机构将设备数据构成默克尔树,只将树根哈希值上传到智能合约公开,而设备和用户的隐私数据均不公开。在设备交接过程,只有交接双方能够获取设备数据,实现了数据的隐私保护。
20.3)设备跨域管理具有安全性。设备管理各个步骤和智能合约的设计考虑到了攻击者可能发起的恶意行为,通过安全措施,能够有效防范分布式拒绝服务攻击、女巫攻击、伪造攻击等。
21.4)设备跨域管理具有可扩展性。一方面,oac能够允许多个机构加入作为成员,成员加入和退出只需要通过oac的投票。另一方面,对于每一个机构管理部门oad,计算和产生默克尔树树根的过程具有可扩展性,能够允许百万、千万级别设备数据的管理。经计算验证,100万设备构成的默克尔树,计算默克尔树树根的时间只需要2.65秒。因此该方案能够实现海量设备的有效安全跨域管理。
22.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
23.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
24.图1为根据本技术实施例提供的一种基于区块链的设备跨域认证管理方法的流程图;
25.图2为根据本技术实施例提供的基于区块链的设备跨域认证管理方法流程框图;
26.图3为根据本技术实施例提供的设备跨域认证管理系统示意图;
27.图4为根据本技术实施例提供的设备借出流程图;
28.图5为根据本技术实施例提供的设备归还流程图;
29.图6为根据本技术实施例的基于区块链的设备跨域认证管理装置的示例图;
30.图7为申请实施例提供的电子设备的结构示意图。
具体实施方式
31.下面详细描述本技术的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
32.本技术的基于区块链的设备跨域认证管理方法,具有保护设备隐私数据、安全、吞吐量高、可扩展性强的特点。主要目的如下:第一,通过区块链和智能合约实现设备信息共享和设备跨域认证。通过建立机构联盟委员会,委员会成员能够通过监督和管理设备状态。设备信息通过默克尔树的形式存储在每个机构数据库中,默克尔树树根哈希值与所有设备信息相关,被管理机构存储在智能合约上。设备跨域认证过程通过对比链上默克尔树树根值和链下计算的树根值来完成。第二,能够防止各种威胁和攻击。基于区块链的设备跨域认证管理方法能够有效抵抗分布式拒绝服务攻击、女巫攻击、假冒攻击等,能够很好地保证系统的安全性。第三,能够保护用户、设备的隐私数据不被泄露。设备数据以密文形式存储在其相应机构的数据库中,而在公开的区块链上,只是存储所有设备信息计算得到的默克尔树树根值,在设备的认证和跨域使用过程中,不会泄露设备隐私数据。
33.本技术的实施例中,一共包含六种实体:
34.1)机构管理部门(organization administration department,oad):机构管理部门负责更新存储在智能合约上的默克尔树树根哈希值。与此同时,机构管理部门负责管理物联网设备。机构管理部门通常包含n个成员,成员使用聚合签名来实现认证。在机构内,需要满足条件n≥2f 1,f代表恶意节点的数量。
35.2)机构联盟委员会(organization alliance committee,oac):机构联盟委员会由多个机构管理部门oad构成。委员会成员负责智能合约的部署和管理。另外,机构联盟委员会通过投票共同决定某个机构管理部门oad是否能够加入委员会oac。
36.3)设备(device,d):每个设备被赋予唯一的身份标识符id,每个设备被其所属的机构管理部门oad管理。每个设备上都贴有射频识别(radio frequency identification,rfid) 标签,rfid中存储了设备信息,如设备身份信息和默克尔证明。
37.4)门控器(gate controller,gc):门控器负责机构设备身份认证,控制设备进出。门控器通过扫描设备上的rfid获得设备的信息和相应的默克尔树证明,通过这些信息计算
得到默克尔树树根哈希值。与此同时,门控器连接到区块链网络,通过查询得到智能合约中存储的默克尔树树根哈希值。然后,门控器通过对比两个哈希值是否相同,决定设备认证是否成功,进而决定是否进行后续设备操作。
38.(5)区块链网络(blockchain network):采用支持智能合约的区块链网络,区块链能够确保实现公开、可追溯和不可篡改特性。
39.(6)智能合约(smart contract):智能合约负责管理和存储每个委员会成员机构的设备信息。智能合约包含五个具体功能:增加成员,删除成员,默克尔树树根值更新,默克尔树树根值查询,设备交接。
40.图1为根据本技术实施例提供的一种基于区块链的设备跨域认证管理方法的流程图。
41.如图1所示,该基于区块链的设备跨域认证管理方法包括以下步骤:
42.在步骤s1中,根据投票机制将多个机构管理部门加入机构联盟委员会。
43.在本技术的实施例中,根据投票机制将多个机构管理部门加入机构联盟委员会,包括:
44.将待加入机构联盟委员会的机构管理部门中的每个成员在本地生成双线性对公共参数,每个成员随机选取自身私钥计算对应的自身公钥及公钥证明,并发送给认证中心,利用认证中心的计算比对,验证公钥的合法性后,将合法的公钥添加到公钥列表,在公钥列表中的合法公钥数量达到第一预设数量后,广播公钥列表至机构联盟委员会中的每个成员;通过待加入机构联盟委员会的机构管理部门向机构联盟委员会发送加入请求,机构联盟委员会同意加入时,调用智能合约对机构管理部进行投票;统计预设时间内的投票数,在投票数大于预设投票数时,将机构管理部门加入机构联盟委员会。
45.本步骤为机构管理部门oad加入机构联盟委员会oac,包括三步:机构管理部门 oada初始化、机构联盟委员会oac成员投票、机构管理部门oada加入oac,具体为:
46.步骤1:机构管理部门oada初始化:oada的每个成员需要在本地生成双线性对公共参数。然后每个成员pi将根据要求随机选取自己的私钥ski,计算对应的公钥pki。由于采用具有鲁棒性的聚合签名,此步骤要求成员计算生成自身的公钥证明πi,用来防止公钥伪造攻击,确保每个成员生成公钥的合法性。成员将自身公钥和证明发送给认证中心ca,认证中心通过计算比对,验证公钥的合法性,将合法的公钥添加到公钥列表pk_oada中。当公钥列表中的合法公钥数量达到一定要求时,ca将公钥列表广播,oac收到该合法公钥列表,每个成员对其保存。
47.步骤2:机构联盟委员会oac成员投票:机构管理部门oada向oac发送加入请求,收到请求的oac成员如果同意oada,则调用智能合约对其进行投票。
48.步骤3:机构管理部门oada加入oac:智能合约将会统计oada获得的投票数,如果在时间限制内,oada获得了足够多的票数,则oada成功加入到oac。
49.在步骤s2中,更新多个机构管理部门中的默克尔树树根值,并存储至智能合约。
50.在本技术的实施例中,更新多个机构管理部门中的默克尔树树根值,包括:获取机构内每个设备的设备数据并记录到本地数据库中,设备数据包括设备身份信息、状态信息、地点信息和时间信息;对每个设备的设备数据进行整合,并计算其哈希值,以每个设备数据作为默克尔树叶节点,构建默克尔树,并且计算默克尔树树根哈希值;调用智能合约,将默
克尔树树根哈希值上传至智能合约。
51.本步骤为机构管理部门oad更新默克尔树树根值,包括三步:oada获取每个设备数据、oada计算默克尔树树根哈希值、oada上传树根哈希值至智能合约。具体为:
52.步骤4:oada获取每个设备数据:oada在本地获取机构内每个设备的数据并记录到本地数据库中,设备数据应当包括设备身份信息、状态信息、地点信息和时间信息。
53.步骤5:oada计算默克尔树树根哈希值:oada将每个设备的信息整合,并计算其哈希值,以每个设备数据作为默克尔树叶节点,构建默克尔树,并且计算默克尔树树根哈希值mra。
54.步骤6:oada上传树根哈希值至智能合约:oada调用智能合约,将计算得到的默克尔树树根哈希值mra上传至智能合约。
55.在步骤s3中,在第二机构管理部门向第一机构管理部门发送设备出借请求时,生成第一机构管理部门的设备默克尔树证明,根据设备默克尔树证明以及智能合约中的默克尔树树根值确定满足设备借出条件时,利用双方的门控器进行设备交接的同时双方签署交易并将交易上传至区块链,更新本地状态。
56.在本技术的实施例中,s3包括:通过第二机构管理部门的每个成员对设备数据签名,利用聚合签名的签名份额产生算法,生成每个成员的签名份额,每个成员将签名消息发送至第二机构管理部门的领导者,通过领导者验证每个签名份额的合法性,将合法的签名份额添加到公钥列表中,在公钥列表中有效签名份额数量达到第二预设数量时,领导者通过聚合签名算法计算总签名、总公钥等信息,并且构建请求消息,将其发送至第一机构管理部门,第一机构管理部门验证搜书请求消息中公钥和签名的合法性,在验证通过后,查询借出设备的当前状态,在借出设备允许借出时,向第二机构管理部门返回确认消息;生成第一机构管理部门中借出设备的默克尔树证明,并在本地数据库中更改借出设备的状态,将默克尔树证明、设备数据写入借出设备的射频识别标签中;在设备交接时,通过第一机构管理部门对应的第一门控器扫描借出设备的射频识别标签获得设备数据和默克尔树证明,并根据扫描到的数据计算得到默克尔树树根哈希值,同时第一门控器在智能合约查询第一机构管理部门对应机构的默克尔树树根值,在两值相等时,将借出设备交给第二机构管理部门对应的第二门控器进行验证;在第二门控器验证通过后,双方签署交易并将交易上传至区块链,并在本地数据库中更新借出设备的状态,同时重新计算第一机构管理部门和第二机构管理部门的默克尔树树根哈希值,并存储至智能合约。
57.本步骤为机构管理部门oadb向oada借设备da,其中,第一机构管理部门为oada,第二机构管理部门为oadb,出借设备为da,本步骤一共包括四步:oadb向oada发送请求、oada生成设备默克尔树证明、双方门控器认证、交接设备、双方签署交易上传至区块链并更新本地状态。具体为:
58.步骤7:oadb向oada发送请求:oadb向oada借设备da,首先oadb的每个成员需要对设备数据签名,利用聚合签名的签名份额产生算法,生成每个成员的签名份额。然后每个成员将签名消息发送至oadb的领导者。领导者首先验证每个签名份额的合法性,将合法的签名份额添加到公钥列表中。当公钥列表中有效签名份额数量达到一定要求时,领导者通过聚合签名算法计算总签名、总公钥等信息,并且构建请求消息,将其发送至oada。
59.oada收到消息后,验证其公钥和签名的合法性,如果验证通过,则查询设备da的当
前状态,如果可以被借出,则向oadb返回确认消息。
60.步骤8:oada生成设备默克尔树证明:oada生成设备da的默克尔树证明,并且在本地数据库中更改设备的状态,将默克尔树证明、设备数据写入到设备的rfid标签中。
61.步骤9:双方门控器认证、交接设备:设备交接时,设备需要依次通过门控器gca、gcb的验证。gca通过扫描设备的rfid标签获得设备数据和默克尔树证明,并通过这些数据计算得到默克尔树树根哈希值mr
′a。与此同时,gca在智能合约查询当前机构a的默克尔树树根值mra,如果两值相等,则验证通过,设备交给门控器gcb。gcb进行同样的验证。
62.步骤10:双方签署交易上传至区块链并更新本地状态:gcb验证通过后,向区块链发送多签名交易,gca同样需要签署该交易。该交易用来证明设备da通过了双方门控器的验证,且设备已经到达gcb处,标志设备交接完成。oada需要在本地数据库中更新设备的状态为已借出,oadb将设备da标记为d
a-b
,在数据库中增加设备d
a-b
的数据,双方都需要重新计算默克尔树树根哈希值,并且将其上传到智能合约上记录。
63.在步骤s4中,在第二机构管理部门向第一机构管理部门归还借出设备时,生成第二机构管理部门的设备默克尔树证明,利用双方的门控器进行设备交接的同时双方签署交易并将交易上传至区块链,更新本地状态。
64.在本技术的一个实施例中,s4包括:通过第二机构管理部门计算得到设备数据哈希值,以及其默克尔树证明,存储到设备的射频识别标签中;通过第二门控制器扫描射频识别标签后计算默克尔树树根值,在默克尔树树根值于智能合约中的树根值相等时,将借出设备移交至第一门控器;通过第一门控器扫描射频识别标签计算默克尔树树根值,在默克尔树树根值与智能合约中的树根值相等时,双方签署交易并将交易上传至区块链,并在本地数据库中更新借出设备的状态,同时重新计算第一机构管理部门和第二机构管理部门的默克尔树树根哈希值,并存储至智能合约。
65.本步骤为机构管理部门oadb将设备da归还至oada,包括三步:oadb生成设备默克尔树证明、双方门控器认证、交接设备、双方签署交易上传至区块链并更新本地状态。具体为:
66.步骤11:oadb生成设备默克尔树证明:oadb通过计算得到设备数据哈希值,以及其默克尔树证明,将(d
a-b
,mproof
a-b
)存储到设备的rfid标签中。
67.步骤12:双方门控器认证、交接设备:oadb将设备归还至oada,设备需要依次通过门控器gcb、gca的验证。gcb通过扫描rfid获得(d
a-b
,mproof
a-b
),通过计算得到默克尔树树根值mr
′b,通过查询智能合约得到树根值mrb,如果二值相等,则验证通过,设备被移交至gca处。gca扫描rfid获得(da,mproofa),通过计算得到默克尔树树根值mr
′a,通过查询智能合约得到树根值mra,如果二值相等,则验证通过。
68.步骤13:双方签署交易上传至区块链并更新本地状态:gca验证通过后,签署多签名交易并发送至区块链网络。同样,gcb需签署该交易,证明设备通过了二者的验证,且完成了设备交接。oadb在本地数据库中删除设备d
a-b
的数据,oada在本地数据库中更新设备状态,双方都需要重新计算默克尔树树根哈希值,并且将其上传到智能合约上记录。
69.进一步地,在本技术的实施例中,智能合约包括多种函数以进行机构联盟委员会投票、默克尔树树根值更新及查询合约和借出设备交接。
70.具体地,本技术实施例的智能合约用于oac增加成员、成员投票、删除成员合约、默克尔树树根值更新和查询合约、设备交接合约。具体地,
71.oac增加成员、成员投票、删除成员合约:oac增加成员采用addmember()函数实现。该函数只允许当前oac成员调用,对新增成员进行投票。新成员获得的票数超过了阈值,且在时间限制内,则认为本轮投票成功,新成员成功加入oac。
72.成员投票采用vote()函数实现,统计新成员的投票数量。
73.删除成员采用delmember()函数实现,oac中想要退出的成员也需要发起请求,所有成员对该请求投票,投票通过后,成员退出成功。
74.默克尔树树根值更新和查询合约:默克尔树树根值更新通过updatemr()函数实现。只有oac的成员能够调用该函数,并且只能更新其对应的默克尔树树根值。
75.默克尔树树根值查询通过lookupmr()函数实现,该函数可以由任意参与方调用,对某个机构管理部门上传的树根值进行查询。
76.设备交接合约:设备交接通过handover()函数实现。同样,该函数只能由oac成员调用,用来记录设备交接过程中产生的数据,如设备发送方、设备接收方、交接时间、交接地点等信息。
77.通过上述内容,本技术的每个机构包含了机构管理部门oad、门控器gc、设备d。多个机构管理部门oad共同构成机构联盟委员会oac。当新成员想要加入委员会,需要通过机构联盟委员会成员的投票。每个机构的设备由其相应的机构管理部门oad管理,所有的设备信息以默克尔树的形式存放在机构本地数据库中。每隔一段时间,oad计算其设备构成的默克尔树树根哈希值,并将其上传到智能合约上。对于某个需要被借出的设备d,其对应的机构管理部门oad计算得到其对应的默克尔树证明,将其写入到设备d的rfid 标签上。该机构的门控器gc通过扫描设备rfid得到默克尔树证明,进而计算得到默克尔树树根哈希值,然后将其与智能合约上的树根哈希值对比,如果二值相等,则认为认证通过,将设备d放行。对于接收结构,验证过程类似。归还设备的过程亦与此相对应。
78.下面通过附图和具体实施例对本技术的基于区块链的设备跨域认证管理方法进行详细阐述。
79.如图2和图3所示,本技术包含以下5个阶段,采用3种抗碰撞单向哈希函数:
80.hash0:{0,1}
*

{0,1}
*

[0081][0082][0083]
1、机构管理部门oad加入机构联盟委员会oac阶段
[0084]
步骤1:机构管理部门oada初始化:
[0085]
(1)oada包括na个成员。对于某个成员pi,其建立双线性对如下:
[0086][0087]
(2)成员pi计算其私钥,公钥和公钥证明如下:
[0088][0089]
(3)成员pi将其公钥和证明(pki,πi)发送给认证中心ca,ca通过以下公式验证公钥的合法性:
[0090]
e(πi,g2)=e(hash1(pki),pki)
[0091]
(4)如果验证通过,ca将oada的公钥列表设置为:
[0092]
pk_oada:=pk_oada∪{pki}
[0093]
(5)当满足条件|pk_oada|=na时,ca将公钥列表pk_oada广播,然后机构oada的领导者la将公钥列表pk_oada发送至联盟委员会oac。
[0094]
步骤2:机构联盟委员会oac成员投票
[0095]
oac的每个成员验证公钥列表pk_oada的合法性。oac中同意oada加入联盟委员会的成员向智能合约发送交易,调用智能合约的函数addmember()。智能合约将会进行自动计票。
[0096]
步骤3:机构管理部门oada加入oac
[0097]
如果机构oada在规定的时间内得到了足够的票数,oada将会被加入到机构联盟委员会oac中,投票结果将会被记录到智能合约上,其信息将会被记录到联盟consortium中。
[0098]
2、机构管理部门oad更新默克尔树树根值阶段
[0099]
步骤4:oada获取每个设备数据
[0100]
a机构管理部门oada获取其部门内每个设备的数据。对于某个设备da,其数据如下:
[0101]
da:=(ida,statusa,placea,timea)
[0102]
其中,ida表示的是设备da的身份信息。statusa表示的是设备状态信息,其值可以为c, r,b,f。其中c表示“可以被借出”,r表示“准备好被借出”,b表示“已经被借出”,f 表示“从其他机构借来”。placea表示设备存放的地点。timea表示的是设备数据更新的时间。
[0103]
步骤5:oada计算默克尔树树根哈希值
[0104]
1)oada通过以下公式计算得到每个设备d的哈希值:
[0105]
ha:=hash0(ida||statusa||placea||timea)
[0106]
2)oada将其存储到默克尔树数据结构中,通过自底向上的方式计算得到默克尔树树根哈希值mra,然后附上当前的时间戳。
[0107]
步骤6:oada上传树根哈希值至智能合约
[0108]
oada调用智能合约中的updatemr()函数,将最近更新的默克尔树树根哈希值mra上传到智能合约。oada每隔一段固定时间更新默克尔树树根哈希值。
[0109]
3、机构管理部门oadb向oada借设备da阶段
[0110]
如图4所示,步骤7:oadb向oada发送请求
[0111]
1)机构oadb想要向oada借设备da,oadb的成员pi对设备da的身份信息签名如下:
[0112][0113]
2)成员pi将签名和消息(si,hash(ida))发送至机构oadb的领导者lb。lb将签名列表设置为空集:sig_oadb:=φ。对于每一个收到的签名份额si,如果下列条件满足:
[0114]
(pki∈pk_oadb)∧(e(si,g2)=e(hash2(hash0(ida)),pki))
[0115]
则领导者lb设置签名列表为:
[0116]
sig_oadb:=sig_oadb∪{(si,pki)}
[0117]
3)如果条件|sig_oadb|=f 1满足,则领导者lb计算总签名、总公钥和签名指示向量如下:
[0118][0119][0120][0121]
对于每个i=1到nb,如果条件(-,pki)∈sig_oadb满足,则设置bi为1。领导者lb将借设备请求消息mb设置为:
[0122]
mb:=(ida,pk_oadb,σb,apkb,e,hash0(ida))
[0123]
lb将消息mb发送至oada。
[0124]
4)oada收到请求后,验证以下条件是否成立:
[0125][0126]
如果成立,那么oada进一步验证以下条件是否成立:
[0127]
e(σb,g2)=e(hash2(hash0(ida)),apkb)
[0128]
如果成立,那么oada验证是否满足:oada.da.status=c。
[0129]
如果满足,则oada向oadb发送回复消息,表示设备da可用。
[0130]
步骤8:oada生成设备默克尔树证明
[0131]
1)oada在其本地数据库中更新设备状态,设置:oada.da.status=r,读取设备数据da,并且计算得到da的默克尔树证明mproofa。
[0132]
(2)oada将设备数据和其默克尔树证明(da,mproofa)写入到设备da的rfid标签中。
[0133]
步骤9:双方门控器认证、交接设备
[0134]
(1)当oadb想带走设备da,门控器gca首先需要对设备da进行验证。首先,门控器 gca从设备da的rfid标签通过扫描得到设备数据和其默克尔树证明(da,mproofa)。
[0135]
(2)gca通过(da,mproofa)计算得到默克尔树树根哈希值mr
′a。
[0136]
(3)gca调用智能合约的函数lookupmr()查询oada上传的最新的默克尔树树根哈希值mra。
[0137]
(4)如果mr
′a=mra,则认为验证通过;否则,验证不通过,设备不允许被借出。
[0138]
(5)gca验证通过后,设备da被送至gcb处。门控器gcb进行gca之前相同的验证,如果mr
′a=mra,且收到的设备数据da中包含的设备身份信息ida与消息mb中的身份信息相同,则验证通过;否则,验证不通过,gcb拒绝接收设备da。
[0139]
步骤10:双方签署交易上传至区块链并更新本地状态
[0140]
(1)gcb验证通过后,向区块链网络发送多签名交易,证明设备da通过了门控器gcb的验证。交易包含了交接的时间和参与双方等信息。
[0141]
(2)gca同样需要签署gcb发送至区块链的交易,以证明da通过了gca的验证,且gcb已经接收了设备da。
[0142]
(3)oada在其数据库中更新本地状态,设置da.status:=b,da.place:=b。与此同时,oadb得到了想要借的设备da,并将其标记为d
a-b
。oadb计算得到其数据d
a-b
如下:
[0143]da-b
:=ida||f||b||time
a-b
[0144]
4、机构管理部门oadb将设备da归还至oada阶段
[0145]
如图5所示,步骤11:oadb生成设备默克尔树证明
[0146]
(1)oadb通过计算得到哈希值hash0(d
a-b
),并且计算得到d
a-b
的默克尔树证明mproof
a-b

[0147]
(2)oadb将mproof
a-b
存储到设备d
a-b
的rfid标签中,该标签仍然包括之前的默克尔树证明mproofa。
[0148]
步骤12:双方门控器认证、交接设备
[0149]
(1)当oadb想要归还设备d
a-b
时,门控器gcb首先需要验证设备d
a-b
。首先,门控器gcb通过扫描设备d
a-b
上面的rfid标签得到其数据和默克尔树证明(d
a-b
,mproof
a-b
)。然后,门控器gcb通过得到的(d
a-b
,mproof
a-b
)计算默克尔树树根哈希值mr
′b。与此同时,门控器gcb通过调用智能合约的lookupmr()函数查询由机构管理部门oadb上传的最新的默克尔树树根哈希值mrb。如果两个树根值相等,则通过门控器gcb的验证;否则,验证不通过,门控器gcb向管理部门oadb发送拒绝消息。
[0150]
(2)设备d
a-b
通过门控器gcb的认证,被运送至门控器gca。同样,该设备归还时需要通过门控器gca的验证。门控器gca通过扫描rfid标签得到设备数据和默克尔树信息 (da,mproofa),计算得到默克尔树树根哈希值mr
′a,调用智能合约lookupmr()函数获得树根值mra。如果以下条件满足,则认为验证通过;否则,验证不通过,门控器gca向管理部门oada发送拒绝消息。
[0151]
(mr
′a=mra)∧(ida|ida∈da=id
a-b
|id
a-b
∈d
a-b
)
[0152]
步骤13:双方签署交易上传至区块链并更新本地状态
[0153]
(1)设备通过门控器gca的验证后,门控器gca向区块链网络签署多签名交易,交易证明设备d
a-b
(da)已经成功通过了gca的验证。
[0154]
(2)门控器gcb同样签署gca发起的交易,证明设备d
a-b
通过了gcb的验证,并且门控器gca已经收到了设备d
a-b

[0155]
(3)机构管理部门oadb删除设备d
a-b
的信息,并更新其本地数据库和默克尔树树根哈希值。机构管理部门oada更新其本地状态,将设备da的状态设置为:da.place:= a,da.status:=c,计算得到新的默克尔树树根,并且将其上传到智能合约上。
[0156]
5、智能合约设计阶段
[0157]
智能合约设计包含了5个不同的函数,每个参数的名称和含义表1所示。
[0158]
表1智能合约公共参数
[0159]
[0160][0161]
步骤14:oac增加成员、成员投票、删除成员合约
[0162]
(1)addmember()函数。该函数使用vote()函数作为子函数。addmember()函数只能由机构联盟委员会oac的成员调用。同意新成员加入的成员向智能合约发起交易,调用 addmember()函数,以新成员的地址作为函数输入。addmember()函数将会自动计数,统计目前投票的总数。另外,该函数设置了每一轮投票的阈值和时间限制。阈值表示的是超过1/2的成员投票,则判定本轮投票通过。时间限制指的是每一轮投票的时间不能超过100 个区块的产生时间。在每一轮中,oac的某个成员只能对一个新成员投票。为了防止恶意节点发起ddos攻击,函数addmember()要求两轮连续的投票对象不能为同一个新成员。
[0163]
当新成员加入成功后,其地址将会被自动写入导consortium列表中。
[0164]
[0165][0166]
(2)vote()函数。该函数用来统计某个成员的投票数量。当合法的投票人对其投票时,投票数量增加一个。
[0167][0168]
(3)delmember()函数。该函数只能被oac成员调用,用来对离开oac的成员进行投票。操作方法与addmember()函数类似。当某个成员离开oac后,其数据将会被删除。
[0169][0170][0171]
步骤15:默克尔树树根值更新和查询合约
[0172]
(1)updatemr()函数。该函数只能被oac成员调用,用来在智能合约上上传其默克尔树树根哈希值。成员输入机构的地址和其新的默克尔树树根哈希值。每个oac成员只能更新其对应的树根值。如果某个成员想要尝试更新其他成员的树根值,该函数将会自动中止,并且返回相应错误信息。
[0173][0174][0175]
(2)lookupmr()函数。该函数的目的是查询智能合约上存储的默克尔树树根哈希值。
[0176]
步骤16:设备交接合约
[0177]
handover()函数。该函数只能被oac成员调用,用来记录设备交接信息。设备接收方在验证通过后,调用该函数,将其地址、设备发送方地址和交易信息的哈希值作为输入。
[0178][0179]
根据本技术实施例提出的基于区块链的设备跨域认证管理方法,通过区块链和智能合约实现设备信息共享和设备跨域认证。通过建立机构联盟委员会,委员会成员能够通过监督和管理设备状态。设备信息通过默克尔树的形式存储在每个机构数据库中,默克尔树树根哈希值与所有设备信息相关,被管理机构存储在智能合约上。设备跨域认证过程通过对比链上默克尔树树根值和链下计算的树根值来完成。由此,能够防止各种威胁和攻击,保护用户、设备的隐私数据不被泄露。
[0180]
其次参照附图描述根据本技术实施例提出的基于区块链的设备跨域认证管理装置。
[0181]
图6为根据本技术实施例的基于区块链的设备跨域认证管理装置的示例图。
[0182]
如图6所示,该基于区块链的设备跨域认证管理装置10包括:加入模块100、更新模块200、借出模块300和归还模块400。
[0183]
其中,加入模块100,用于根据投票机制将多个机构管理部门加入机构联盟委员会。更新模块200,用于更新多个机构管理部门中的默克尔树树根值,并存储至智能合约。借出模块300,用于在第二机构管理部门向第一机构管理部门发送设备出借请求时,生成第一机构管理部门的设备默克尔树证明,根据设备默克尔树证明以及智能合约中的默克尔树树根值确定满足设备借出条件时,利用双方的门控器进行设备交接的同时双方签署交易并将交易上传至区块链,更新本地状态。归还模块400,用于在第二机构管理部门向第一机构管理部门归还借出设备时,生成第二机构管理部门的设备默克尔树证明,利用双方的门控器进行设备交接的同时双方签署交易并将交易上传至区块链,更新本地状态。
[0184]
可选地,在本技术的一个实施例中,智能合约包括多种函数以进行机构联盟委员会投票、默克尔树树根值更新及查询合约和借出设备交接。
[0185]
需要说明的是,前述对基于区块链的设备跨域认证管理方法实施例的解释说明也适用于该实施例的基于区块链的设备跨域认证管理装置,此处不再赘述。
[0186]
根据本技术实施例提出的基于区块链的设备跨域认证管理装置,通过区块链和智能合约实现设备信息共享和设备跨域认证。通过建立机构联盟委员会,委员会成员能够通过监督和管理设备状态。设备信息通过默克尔树的形式存储在每个机构数据库中,默克尔树树根哈希值与所有设备信息相关,被管理机构存储在智能合约上。设备跨域认证过程通过对比链上默克尔树树根值和链下计算的树根值来完成。由此,能够防止各种威胁和攻击,保护用户、设备的隐私数据不被泄露。
[0187]
图7为本技术实施例提供的电子设备的结构示意图。该电子设备可以包括:
[0188]
存储器701、处理器702及存储在存储器701上并可在处理器702上运行的计算机程序。
[0189]
处理器702执行程序时实现上述实施例中提供的基于区块链的设备跨域认证管理方法。
[0190]
进一步地,电子设备还包括:
[0191]
通信接口703,用于存储器701和处理器702之间的通信。
[0192]
存储器701,用于存放可在处理器702上运行的计算机程序。
[0193]
存储器701可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。
[0194]
如果存储器701、处理器702和通信接口703独立实现,则通信接口703、存储器701 和处理器702可以通过总线相互连接并完成相互间的通信。总线可以是工业标准体系结构 (industry standard architecture,简称为isa)总线、外部设备互连(peripheral component,简称为pci)总线或扩展工业标准体系结构(extended industry standard architecture,简称为elsa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0195]
可选的,在具体实现上,如果存储器701、处理器702及通信接口703,集成在一块芯片上实现,则存储器701、处理器702及通信接口703可以通过内部接口完成相互间的通信。
[0196]
处理器702可能是一个中央处理器(central processing unit,简称为cpu),或者是特定集成电路(application specific integrated circuit,简称为asic),或者是被配置成实施本技术实施例的一个或多个集成电路。
[0197]
本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如上的基于区块链的设备跨域认证管理方法。
[0198]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或n个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0199]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“n个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0200]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更n个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
[0201]
应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,n个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0202]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献