CN108833081B - 一种基于区块链的设备组网认证方法 - Google Patents

一种基于区块链的设备组网认证方法 Download PDF

Info

Publication number
CN108833081B
CN108833081B CN201810654157.4A CN201810654157A CN108833081B CN 108833081 B CN108833081 B CN 108833081B CN 201810654157 A CN201810654157 A CN 201810654157A CN 108833081 B CN108833081 B CN 108833081B
Authority
CN
China
Prior art keywords
token
module
endorsement
networking
transaction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810654157.4A
Other languages
English (en)
Other versions
CN108833081A (zh
Inventor
邓文平
王宝生
黄金
李东星
彭伟
盖方宇
郦苏丹
陈红艳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201810654157.4A priority Critical patent/CN108833081B/zh
Publication of CN108833081A publication Critical patent/CN108833081A/zh
Application granted granted Critical
Publication of CN108833081B publication Critical patent/CN108833081B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公布了一种基于区块链的设备组网认证方法,目的是解决目前组网认证方法存在的单点失效问题。技术方案是部署包括客户端、提交节点和共识节点的区块链网络。利用区块链的不可篡改性,设备在接入网络之前先在区块链上进行注册,当设备A需要接入网络时,设备向已经接入网络的设备B发送组网请求,设备B通过对比组网请求中的设备A的信息和区块链中存储的设备A的信息设备A的身份是否合法,智能合约颁发给设备A一个token,token中的时间戳保证设备A在一定时间内有效,token过期后,设备A需再次经过身份认证后才能再次接入网络。本发明可避免传统的组网认证方法存在的单点失效问题,保证了设备身份的合法性,提高了网络的安全性。

Description

一种基于区块链的设备组网认证方法
技术领域
本发明涉及计算机网络技术领域,特别涉及一种基于区块链的设备组网认证方法。
背景技术
区块链最初是由一位化名为中本聪的人为比特币(一种数字货币)而设计出的一种特殊的分布式记账技术。比特币以及由其衍生出来的区块链技术都引入了签名系统、共识机制、时间戳等技术,各模块之间的相互协作完美地解决了去中心化带来的安全隐患。因此,区块链并不是一项全新的互联网技术,而是多项已有技术,如非对称密钥签名、共识机制、时间戳、哈希算法、P2P通信等的巧妙整合。区块链技术基于去中心化的对等网络,把密码学原理、时序数据和共识机制相结合,来保障分布式数据库中各节点的连贯和持续,使信息能即时验证、可追溯、但难以篡改和无法屏蔽,从而创造了一套隐私、高效、安全的共享价值体系。
从数据角度来看,区块链是由包含交易信息的区块按照生成区块的时间有序链接起来的数据结构,它能够使参与者对全网交易记录的事件顺序和当前状态建立共识。如图3所示,区块链网络的每个区块的区块头包含它的前一区块哈希值,这样把每个区块链接到各自前一区块的哈希值序列就创建了一条一直可以追溯到第一个区块(创世块)的链条。某条区块链上的用户节点(也可称属于某条区块链的用户节点)是指将该条区块链上所有区块同步到本地服务器的用户终端,一条区块链上有多个用户节点,所有用户节点都具备广播功能、验证功能、分配资金池中的资金、资金转移功能。
比特币区块链的每个区块由区块头和存储内容组成。区块头包含6个数据域,分别为:区块ID(identity,身份标识号)、前一区块哈希值、时间戳、Merkle根哈希值、目标值、随机数。区块ID是对每一个区块的编号,用于验证区块和交易完成后查看交易信息;前一区块哈希值是指与当前区块相连的上一个区块的Merkle根哈希值,创世块的前一区块哈希值为0;时间戳记录了当前区块生成的时间;Merkle根哈希值是将交易信息里面的各条交易信息通过Merkle Proof方法(Nakamoto S.Bitcoin:A peer-to-peer electronic cash system[J].2008,即《比特币:一种点对点的电子现金系统》第4页第22-31行)合并而成;目标值规定了用户争夺当前区块记账权难度系数;随机数是当前区块工作量证明的参数,用户节点通过不断调整随机数的值来得到满足要求的哈希值(哈希运算是一个把任意长度的数据映射成固定长度数据的运算,比特币中使用到的是SHA-256哈希算法,来源于美国国家标准与技术研究院发布的《安全散列标准》),并获得相应的奖励。区块中的存储内容分别为:区块大小、交易计数、交易信息。区块大小记录了当前区块的大小;交易计数记录了当前区块中记录的交易数量;交易信息记录了当前区块保存的所有交易细节。
在比特币的基础上,以太坊项目(Vitalik Buterin,Ethereum:A Next-Generation Smart Contract and Decentralized Application Platform,2013,即《以太坊:下一代智能合约和去中心化应用平台》)进一步扩展了区块链的能力,从交易延伸为智能合约。与比特币系统相比,以太坊做出了多方面的改进,比如减少了平均出块时间、压缩了区块大小、货币不限量、加入了叔伯块激励、Merkle哈希树由一颗增加为了三棵。以太坊最主要的特点是增加了智能合约和账户系统。智能合约是用程序代码编写的可自动运行的业务逻辑,用于接收、处理、存储和发送信息。账户是比特币中没有涉及的,由于比特币的匿名性,系统中无需加入账户的设计。以太坊通过借助账户来确定价值归属,所有以太坊区块链上的状态转换都是账户之间价值和信息的转移。账户分为外部账户和合约账户,外部账户由用户通过私钥控制,合约账户则是由智能合约来控制。作为一个平台运行智能合约的去中心化平台,平台上的应用按程序设定运行,不存在停机、审查、欺诈、第三方人为干预的可能。以太坊提供了一条公开的区块链,并制定了面向智能合约的一套编程语言,智能合约开发者可以在其上使用官方提供的工具来开发支持以太坊区块链的应用。
超级账本即Hyperledger是一个透明、公开、去中心化的分布式账本项目,由Linux基金会牵头,联合包括IBM和思科在内的30家初始企业创立。超级账本首次提出和实现完备的权限管理、创新的一致性算法和可插拔、可扩展的框架。如果说以比特币为代表的货币型区块链技术为1.0,以以太坊为代表的智能合约区块链技术为2.0,那么实现了完备的权限控制和安全保障的超级账本项目毫无疑问代表着区块链3.0时代的到来。
Hyperledger Fabric(Androulaki,Elli,et al."Hyperledger Fabric:ADistributed Operating System for Permissioned Blockchains."(2018).即2018年1月IBM发表在欧洲计算机系统专业协会会议(EuroSys)上的论文《Hyperledger Fabric:一种用于允许区块链的分布式操作系统》)是Hyperledger中的一个区块链项目。与其他区块链技术类似,Hyperledger Fabric是一个包含一个账本,使用智能合约并且是一个通过所有参与者管理交易的系统。Hyperledger Fabric与其他区块链系统最大的不同体现在私有和许可,通过成员管理实现了完备的权限控制和安全保障。
Hyperledger Fabric的账本包含两个组件:世界状态和区块链。在HyperledgerFabric网络中的每一个参与者都拥有一个账本的副本。世界状态组件描述了账本在特定时间点的状态,它是账本的数据库。区块链组件记录了产生世界状态当前值的所有交易,它是世界状态的更新历史。
当一个区块链外部的一个应用程序需要访问账本时,就会调用智能合约。大多数情况下,智能合约会查询账本的数据库组件——世界状态,但不会查询交易记录。
Hyperledger Fabric提供了多个可拔插选项。账本数据可被存储为多种格式,共识机制可被接入或者断开,同时支持多种不同的成员管理模式。
Hyperledger Fabric提供了建立通道的功能,这允许参与者为交易新建一个单独的账本。当网络中的一些参与者是竞争对手时,这个功能变得尤为重要。因为这些参与者并不希望所有的交易信息——比如提供给部分客户的特定价格信息——都对网络中所有参与者公开。只有在同一个通道中的参与者,才会拥有该通道中的账本,而其他不在此通道中的参与者则看不到这个账本。
在区块链网络中,不同的参与者写入的交易必须按照产生顺序依次被写入账本中。要实现这一目标,必须正确的建立交易顺序并且必须包含拒绝错误(或者恶意)插入账本中的无效交易的方法,这就是区块链中的共识算法。HyperledgerFabric通过实用拜占庭算法(PBFT,Practical Byzantine Fault Tolerance)为节点间提供一种机制来相互通信,即使部分节点被恶意攻击,也可以保证每个副本保持一致。另外,在比特币中,通过一种称为挖矿的行为进行排序。在挖矿过程中,竞争的计算机竞相解决一个密码难题,这个谜题定义了所有后续的区块构建顺序。Hyperledger Fabric被设计为允许网络构建者依据业务需求来选择采用的共识机制。好比考虑隐私性,就会有一连串的需求,从高度结构化的网络或是更加点对点的网络。
区块链技术中的共识机制在去中心化的思想上解决了节点间互相信任的问题,保证了区块链如何在分布式场景下达成一致性。当前具有代表性的共识算法有工作量证明(PoW,Proof of Work)、股权证明(PoS,Proof of Stake)、实用拜占庭容错算法(PBFT,Practical Byzantine Fault Tolerance)。以比特币为代表的货币型区块链大都采用工作量证明共识算法,主要用于争夺区块的记账权。区块链上的用户节点基于算力来争夺记账权,从而获得比特币收益,这一操作被称为挖矿。一个区块的哈希值(即将该区块中的交易记录通过哈希加密运算所得的结果,交易记录由一串数字表示)由N个前导零构成,零的个数取决于网络的难度值。要得到合理的哈希值需要经过大量尝试计算,计算时间取决于机器的哈希运算速度。基于工作量证明的区块链网络实现了完全去中心化,网络中的节点可以做到自由进出,破坏系统花费的成本巨大。但是,工作量证明共识算法对节点的性能和网络环境要求高,并且造成了很大的资源浪费。以比特股、量子链等为代表的智能合约型区块链采用权益证明共识算法,该算法提出,区块链上的记录和证明应该由那些在链上具有经济利益的人来维护和保障。通过要求证明人提供一定数量的数字货币所有权而非进行难度极高的工作量证明,权益证明算法从根本上摆脱了工作量证明算法的能源浪费问题。实用拜占庭容错算法是在拜占庭将军问题场景下产生的一种基于消息传递的共识算法。异步网络环境下实用拜占庭容错算法所能允许的最大容错数为(n-1)/3(n为总节点数)。超级账本目前采用实用拜占庭容错算法,该算法需经过预准备、准备、执行三个阶段达成一致性,而这三阶段任何一阶段出错都会导致整个共识过程失败。
区块链技术的出现为设备组网认证提供了安全可靠的解决方案。区块链作为一种分布式存储技术,能够有效避免对中心节点的依赖,各节点通过共识机制达到存储数据的一致性,即便有部分节点遭受攻击,其他节点存储的数据也可以支撑整个系统继续运行。
区块链技术的核心是所有当前参与的节点共同维护交易与数据库,它使交易是基于密码学而不基于对第三方机构的信任。区块链体系结构的核心优势包括:
(1)分布式去中心化,任何节点都可以创建交易,不需要通过第三方结构,在经过一段时间的确认之后,就可以合理地确认该交易是否为有效,区块链可有效地防止双重支付问题的发生。
(2)不可篡改和加密安全性,该系统采取单向哈希算法,同时新产生的区块严格按照时间线性顺序推进,对于试图重写或者修改交易记录而言,它的成本是非常高的。
(3)无须信任系统,通过算法的自我约束,任何恶意欺骗系统的行为都会遭到其他节点的排斥。
传统的认证系统大多是基于中心化CA(Certificate Authority,证书授权机构)来下发公钥私钥或数字证书,参与人需要对于中央机构足够信任,但是随着参与网络人数的增加,系统安全性也越难越保障。高度中心化的CA会产生以下单点失效问题:
(1)在通信过程中产生任何问题,当CA无法做出相应的解决对策时,通信双方将会无法解决这个问题,导致最后问题的不了了之;
(2)一旦CA遭受攻击,整个认证系统将会受到很大的损害,严重者导致整个系统瘫痪;
(3)若攻击者在通信过程中对信息进行篡改,通信双方无法获知信息被篡改。
基于区块链的设备组网认证具有以下优势,可以弥补传统认证系统的缺陷。
(1)打破传统的高度中心化,让越来越多的交易方参与中心的工作,变成去中心化或者多中心化;
(2)相互监督验证来保障信息的不可篡改,若篡改了也能马上知晓,同时篡改者篡改的成本较高,需要篡改超过一半的系统节点数据才能真正篡改数据;
(3)不依赖中心支撑和信用背书,不需要第三方信任机构颁发数字证书,每笔交易都经过多个背书节点进行背书,防止证书的篡改。
通过查阅资料发现,目前没有公开文献涉及将区块链用于设备组网认证的方法。
发明内容
本发明要解决的技术问题是传统的基于CA组网认证方法存在的单点失效问题。
本发明的技术方案是:
第一步,基于Hyperledger Fabric部署包括客户端、提交节点和共识节点的区块链网络。客户端初始化提交节点中的智能合约的时候会指定背书策略,背书策略指定了提交节点的一个子集用于执行背书功能,执行背书功能的提交节点又称为背书节点。客户端与背书节点、共识节点相连,客户端向背书节点发起交易提案,接收并验证背书节点返回的背书结果,并将交易提案和通过验证的背书结果发送给共识节点。共识节点与客户端、提交节点相连,共识节点根据客户端发送的交易提案和通过验证的背书结果生成区块,将区块发送给提交节点。每个提交节点都维护有一条相同的区块链,存储在账本中,提交节点接收共识节点生成的区块,对区块做出验证后将其加入到区块链中,并根据仿真交易结果更新帐本中的世界状态。交易提案是一个请求,内容包括请求类型和因子;交易提案包括注册交易提案、设备组网交易提案、token更新交易提案3种,因子有设备注册因子、组网因子、token更新因子3种;
客户端部署在将要进行组网认证的设备上,客户端安装有软件开发包、保密存储单元、ID(identity,身份标识号)生成模块、秘钥生成模块、配置信息读取模块和哈希值计算模块。ID生成模块生成设备ID,并将设备ID发送至保密存储单元。秘钥生成模块生成公钥和私钥,将公钥和私钥发送至保密存储单元。配置信息读取模块从系统配置文件中读取设备配置信息,将设备配置信息发送至哈希值计算模块。哈希值计算模块接收配置信息读取模块发送的设备配置信息,计算设备配置信息哈希值,将设备配置信息哈希值发送至保密存储单元。保密存储单元接收并存储设备ID、公钥、私钥和设备配置信息哈希值,供软件开发包读取。软件开发包对智能合约进行初始化,指定背书策略;读取保密存储单元存储的设备ID、公钥、设备配置信息哈希值,生成交易提案并根据背书策略将交易提案发送给各背书节点,并接收各背书节点发来的仿真交易结果和背书签名,验证仿真交易结果是否一致且背书签名是否符合背书策略,若仿真交易结果一致且背书签名符合背书策略,则将交易提案和仿真交易结果以消息形式广播给所有共识节点。背书签名是背书策略的一种表现形式,背书策略是软件开发包指定交易提案必须由背书节点进行签名的策略,如可指定提交节点中的一个子集,只要这个子集中的2/3的节点(这些节点就是背书节点)对交易提案(交易提案有3种,分别为注册交易提案、设备组网交易提案、token更新交易提案)进行签名,则此交易提案通过背书策略,交易提案可信。
提交节点中安装有账本、背书模块、提交模块和智能合约。所有的提交节点都维护一个相同的账本,账本中包括区块链和世界状态。区块链的结构与背景技术所述的图3的结构的区别在于:Hyperledger Fabric不需要进行争夺记账权,因此区块中删减了随机数和目标值这两个数据域,只包含区块ID,时间戳,前一区块哈希值,Merkle根哈希值,区块大小、交易计数、交易信息,区块ID,时间戳,前一区块哈希值,Merkle根哈希值,区块大小、交易计数的内容与图3一样,交易信息记录交易提案。世界状态是一个键值数据库,世界状态的数据存储格式由用户根据业务逻辑自行定义,世界状态中存储区块链网络中每一个设备的状态信息,状态信息指设备ID、公钥以及token(即令牌)。世界状态随着区块链中交易的执行进行更新。背书模块接收客户端发来的交易提案,进行仿真交易,将仿真交易结果发送给发起交易提案的客户端。提交模块接收共识节点生成的区块,对区块做出验证后将区块加入区块链中。智能合约是管理区块链网络中的客户端、提交节点和共识节点间相互作用或交易的软件,客户端通过调用智能合约可以设置和查询账本。智能合约接收客户端发送的交易提案,读取账本中的世界状态,根据世界状态仿真执行交易,并将仿真交易结果发送给背书模块。智能合约中包括注册模块、查询模块、身份认证模块、token生成模块、token查询模块和token更新模块。token是用于身份认证的令牌,带有时间戳,在一定时间内有效。token的存在代表了设备已进行过组网认证,token中时间戳的有效性保证了设备组网认证未过期。注册模块接收注册交易提案,按注册交易提案对设备身份信息进行注册,将查询请求发送给查询模块,将注册交易提案结果发送给背书模块;查询模块从注册模块、身份认证模块、token查询模块接收查询请求,查询世界状态的信息,将世界状态的信息发送给注册模块、身份认证模块、token查询模块;身份认证模块与查询模块、token生成模块、token查询模块、token更新模块相连,对设备进行身份认证;token生成模块从身份认证模块接收组网请求,生成token,将token发送给背书模块;token更新模块从身份认证模块接收token更新请求负责更新token,将更新后的token发送给背书模块。
共识节点上安装有共识服务模块。共识服务模块接收客户端发送的交易提案和仿真交易结果,对一段时间内的交易提案按时间顺序进行排序,并将这些交易提案打包成区块广播至所有提交节点的提交模块。且共识节点根据共识算法生成账本,把账本广播给所有的提交节点。
第二步,客户端的软件开发包初始化提交节点中的智能合约,指定背书策略。
2.1软件开发包指定背书策略。
2.2客户端使用软件开发包的init(初始化)命令远程启动背书节点上的智能合约,完成智能合约初始化,初始化智能合约之后,就可以直接使用区块链了。
第三步,设备在区块链网络上进行信息注册,方法是:
3.1客户端向背书节点发送注册交易提案,方法是:
3.1.1客户端的ID生成模块为设备生成ID,并将设备ID发送至保密存储单元。
3.1.2客户端的配置信息读取模块从系统配置文件中读取设备配置信息,并将设备配置信息发送至哈希值计算模块。
3.1.3客户端的哈希值计算模块通过md5算法(参见互联网标准RFC 1321,RFC(Request For Comments)-意即“请求评议”,包含了关于Internet的几乎所有重要的文字资料。)计算设备配置信息哈希值,并将设备配置信息哈希值发送至保密存储单元。
3.1.4客户端的密钥生成模块生成公钥和私钥,将公钥发送至保密存储单元和哈希值计算模块,将私钥发送至保密存储单元。生成公钥和私钥的方法是:
3.1.4.1密钥生成模块使用密码学安全伪随机数生成器(Miklos Santha,UmeshV.Vazirani(1984-10-24)."Generating quasi-random sequences from slightly-random sources".Proceedings of the 25th IEEE Symposium on Foundations ofComputer Science.University of California.pp.434–440.即加利福尼亚大学的MiklosSantha,Umesh V.Vazirani 1984年10月24日在第二十五届IEEE计算机科学基础研讨会论文集上发表的论文《从轻量级随机源生成准随机序列》,第434-440页)产生随机数作为私钥。
3.1.4.2密钥生成模块使用椭圆曲线算法(参见高效密码组2000年9月20日发布的标准:《椭圆曲线密码,版本1》)根据私钥计算出公钥。
3.1.5客户端的软件开发包读取保密存储单元中的设备ID、设备公钥以及设备配置信息哈希值,将这3个值组成设备注册因子。
3.1.6客户端的软件开发包根据设备注册因子和用户指定的请求类型生成注册交易提案,注册交易提案是一个请求智能合约进行设备信息注册的请求,由请求类型和设备注册因子组成,请求类型标明是注册请求。
3.1.7客户端的软件开发包向背书策略指定的所有背书节点发送注册交易提案。
3.2背书策略指定的所有背书节点的智能合约并行仿真执行注册交易提案并与客户端交互,方法是:
3.2.1智能合约中的注册模块从客户端接收注册交易提案。
3.2.2注册模块向查询模块发送查询账本的查询请求。
3.2.3查询模块查询帐本,获取当前的世界状态,并将当前的世界状态发送给注册模块。
3.2.4注册模块根据当前的世界状态仿真执行注册交易提案,生成包含执行返回值、读操作集合和写操作集合的仿真交易结果,并将仿真交易结果发送至背书模块。所述读操作集合指从世界状态中读取设备ID对应信息的操作的集合,所述写操作集合包括将设备ID、公钥、配置信息哈希值写入账本中世界状态的操作的集合。
3.2.5背书模块为仿真交易结果进行背书签名。
3.2.6背书模块将仿真交易结果、背书签名作为注册交易提案结果返回给客户端。
3.3客户端验证注册交易提案结果并与共识节点交互,方法是:
3.3.1客户端的软件开发包检验注册交易提案结果中的背书签名,确定仿真交易结果是否来自背书策略指定的背书节点集合,若符合背书策略,转步骤3.3.2,否则显示错误信息,转第七步。
3.3.2客户端的软件开发包对比各背书节点生成的仿真交易结果,若仿真交易结果一致,转步骤3.3.3,否则返回错误信息,转第七步。
3.3.3客户端的软件开发包将注册交易提案和仿真交易结果广播给区块链网络中所有的共识节点。
3.4共识节点生成区块并与提交节点交互,方法是:
3.4.1共识节点的共识服务模块对于接收到的注册交易提案按照时间顺序进行记录。
3.4.2共识节点的共识服务模块将注册交易提案按照区块的数据结构生成一个区块(见2018年IBM发表在欧洲计算机系统专业协会会议(EuroSys)上的论文《一种用于许可链的分布式操作系统》第10页第15-26行))。其中区块ID是新生成区块的编号,区块ID在区块生成时由系统分配,从1开始依次累加;前一区块哈希值是指与新生成区块相连的上一个区块的Merkle根哈希值,创世块的前一区块哈希值为0;时间戳记录新生成区块生成的系统时间;Merkle根哈希值是将交易信息中的交易提案通过Merkle Proof方法合并而成;区块大小记录新生成区块的大小(即占用的内存空间);交易计数记录新生成区块中记录的交易提案数量;交易信息记录共识节点收到的注册交易提案。
3.4.3共识节点的共识服务模块检验仿真交易结果中的读操作集合、写操作集合是否正确(检验方法见2018年IBM发表在欧洲计算机系统专业协会会议(EuroSys)上的《一种用于许可链的分布式操作系统》第8页第9-38行),若正确,转步骤3.4.4,否则,返回错误结果,转第七步。
3.4.4共识节点的共识服务模块将新生成的区块和通过检验的仿真交易结果广播给区块链网络中所有的提交节点。
3.5提交节点更新账本,方法是:
3.5.1提交节点的提交模块将新区块加入区块链中。
3.5.2提交节点的提交模块根据仿真交易结果中的写操作集合更新世界状态,方法是:若世界状态中不存在该设备ID对应的存储记录,则创建一条该设备ID对应的存储记录,若世界状态中已存在该设备ID对应的存储记录,则用仿真交易结果中的设备ID、公钥、配置信息哈希值替换该存储记录。
3.5.3提交模块向客户端的软件开发包发送注册交易提案以及仿真交易结果已被加入账本的通知。
第四步,客户端通过请求智能合约生成设备组网token,方法是:
4.1客户端的软件开发包向背书节点发送设备组网交易提案,方法是:
4.1.1软件开发包用私钥对设备配置信息哈希值进行加密。
4.1.2软件开发包根据设备ID、私钥加密的设备配置信息哈希值生成组网因子,组网因子即设备ID和私钥加密的设备配置信息哈希值组成的二元组。
4.1.3软件开发包根据请求类型和组网因子生成设备组网交易提案。(见2018年IBM发表在欧洲计算机系统专业协会会议(EuroSys)上的《一种用于许可链的分布式操作系统》第6页第28-79行)设备组网交易提案是请求智能合约进行设备组网的请求,其中包括组网请求(请求类型)和组网因子,请求类型标明是组网请求。
4.1.4软件开发包向背书策略指定的所有背书节点发送设备组网交易提案。
4.2背书策略指定的所有背书节点并行生成设备组网token,方法是:
4.2.1智能合约的身份认证模块接收软件开发包发送的设备组网交易提案。
4.2.2查询模块查询设备组网交易提案中的设备ID对应的设备注册信息是否存在于世界状态中,若存在,转步骤4.2.3,若不存在,返回错误信息,转第七步。
4.2.3背书节点的身份认证模块对设备进行身份认证,方法是:
4.2.3.1身份认证模块用公钥对设备组网交易提案中的私钥加密的设备配置信息哈希值进行解密。
4.2.3.2身份认证模块将解密出来的设备配置信息哈希值与查询模块读取到的世界状态中的配置信息哈希值进行对比,若两者匹配说明身份认证通过,将设备组网交易提案发送给token生成模块,转步骤4.2.4,不匹配说明身份认证未通过,返回错误信息,转第七步。
4.2.4智能合约的token生成模块生成设备组网token,方法是:
4.2.4.1 token生成模块从身份认证模块接收设备组网交易提案。
4.2.4.2 token生成模块采用JWT(JSON Web Tokens,即JSON网页令牌)标准的token生成方法,参见JSON网页令牌的使用标准RFC 7519)生成设备组网token。
4.2.5 token生成模块将设备组网token发送给背书模块,背书模块将背书签名和设备组网token作为设备组网交易提案结果发送给客户端的软件开发包。
4.3客户端检验设备组网交易提案结果并与共识节点交互,方法是:
4.3.1客户端的软件开发包验证背书签名,确定设备组网交易提案结果是否来自背书策略指定的背书节点集合,若符合背书策略,转步骤4.3.2,否则显示错误信息,转第七步。
4.3.2客户端的软件开发包对比各背书节点生成的设备组网交易提案结果,若设备组网交易提案结果一致,转步骤4.3.3,否则返回错误信息,转第七步。
4.3.3客户端的软件开发包将设备组网交易提案和设备组网交易提案结果广播给区块链网络中所有的共识节点。
4.4共识节点生成区块并与提交节点交互,方法是:
4.4.1共识节点的共识服务模块对接收到的设备组网交易提案按照时间顺序进行记录。
4.4.3共识节点的共识服务模块将设备组网交易提案按照区块的数据格式生成一个区块(见2018年IBM发表在欧洲计算机系统专业协会会议(EuroSys)2018上的论文《一种用于许可链的分布式操作系统》第10页第15-26行),区块中的交易信息记录设备组网交易提案。
4.4.2共识服务模块检查组网交易提案结果中设备组网token是否符合token的格式要求,若符合要求,转步骤4.4.4,若不符合要求,则返回错误结果,转第七步。
4.4.4共识服务模块将新生成的区块和通过验证的设备组网token广播给区块链网络中所有的提交节点。
4.5所有提交节点并行更新账本,方法是:
4.5.1提交模块将新区块加入区块链中。
4.5.2提交模块将设备组网token存入世界状态。
4.5.3提交模块向客户端的软件开发包发送设备组网交易提案以及设备组网交易提案结果已被加入账本的通知。
第五步,世界状态中具有设备组网token的设备间进行组网通信,方法是:
5.1已完成组网认证的设备A(即有设备组网token的设备)向已经接入网络的设备B发送通信请求,通信请求包含设备A的ID、设备A的组网token和设备B的ID。
5.2设备B验证设备A的设备组网token是否有效,方法是:
5.2.1设备B的客户端的软件开发包向任意一个背书节点发送设备A的设备组网token的查询请求。
5.2.2背书节点的智能合约从设备B接收设备A的设备组网token的查询请求,对设备B的身份进行验证,若背书节点的世界状态中存在设备B的注册信息和组网token,并且组网token的时间戳在有效期内,转步骤5.2.3,否则返回错误信息,转第七步。
5.2.3智能合约向设备B的客户端返回设备A的组网token。
5.2.4设备B的客户端的软件开发包验证设备A的组网token,若设备A发送的通信请求中的设备组网token和世界状态中存储的设备组网token一致,并且设备A的组网token在有效期内,转步骤5.3,若设备A组网token过期,返回错误信息,转第六步。
5.3设备B响应设备A的通信请求,设备A开始与设备B通信。通信结束后转第七步。
第六步,组网token过期的设备更新过期设备组网token,方法是:
6.1若组网token过期的设备需要再次接入网络,则组网token过期的设备通过客户端的软件开发包向所有背书节点发送token更新交易提案,token更新交易提案是一个请求智能合约更新设备组网token的请求,其中包括token更新请求(请求类型)和token更新因子,请求类型标明是token更新请求,token更新因子包括设备更新token所需要的信息,包括设备ID和过期的设备组网token。
6.2背书节点的智能合约执行token更新交易提案并与客户端交互,方法是:
6.2.1查询模块查询该设备ID在世界状态中的信息,若世界状态中存在该设备的注册信息和设备组网token,转步骤6.2.2,否则返回错误信息,转第七步。
6.2.2智能合约对比token更新交易提案中的设备组网token和世界状态中的设备组网token,若这两个token一致,转步骤6.2.3,否则返回错误信息,转第七步。
6.2.3智能合约中的token生成模块为该设备生成新的设备组网token,并将新的设备组网token发送给背书模块。
6.2.4智能合约中的背书模块为新的设备组网token进行签名,并将设备组网token和背书签名作为token更新交易提案结果发送给客户端的软件开发包。
6.3客户端验证token更新交易提案结果并与共识节点交互,方法是:
6.3.1客户端的软件开发包验证token更新交易提案中的背书签名,确定token更新交易提案结果是否来自背书策略指定的背书节点集合,若符合背书策略,转步骤6.3.2,否则显示错误信息,转第七步。
6.3.2客户端对比各背书节点生成的设备组网token,若设备组网token一致,转步骤6.3.3,否则返回错误信息,转第七步。
6.3.3客户端将token更新交易提案和新的设备组网token广播给区块链网络中所有的共识节点。
6.4共识节点生成区块并与提交节点交互,方法是:
6.4.1共识节点的共识服务模块对接收到的token更新交易提案按照时间顺序进行记录。
6.4.2共识节点的共识服务模块将组网交易提案按照区块的数据格式生成区块(见2018年IBM发表在欧洲计算机系统专业协会会议(EuroSys)上的论文《一种用于许可链的分布式操作系统》第10页第15-26行)),区块中的交易信息记录token更新交易提案。
6.4.3共识节点的共识服务模块检查token更新交易提案结果中的设备组网token是否符合token的格式要求(参见JSON网页令牌的使用标准RFC 7519),若符合要求,转步骤6.4.4,若不符合要求,则返回错误结果,转第七步。
6.4.4共识节点的共识服务模块将新生成的区块和通过验证的设备组网token广播给区块链网络中所有的提交节点。
6.5区块链网络中所有的提交节点并行更新账本,方法是:
6.5.1提交节点的提交模块将新区块加入区块链中。
6.5.2提交节点的提交模块将设备组网token存入世界状态。
6.5.3提交模块向客户端的软件开发包发送token更新交易提案以及token更新交易提案结果已被加入账本的通知。
第七步,结束。
采用本发明可以达到以下技术效果:利用区块链具有的不可篡改性,设备在接入网络之前首先在区块链上进行信息注册,将设备ID、公钥、配置信息哈希值保存在世界状态中,将私钥存储在设备本地的保密存储单元。当设备A需要接入网络时,设备向已经接入网络的设备B发送组网请求,设备B通过对比组网请求中的设备A的信息和区块链中存储的设备A的信息,设备B确认设备A的身份合法之后,智能合约颁发给设备A一个token(通信令牌),token代表了设备A具有接入网络的权限,保证了设备A身份的合法性,token中的时间戳机制保证了设备A在系统赋予的一定时间内有效,当token过期之后,设备A如需再次接入网络,则需要再次经过身份认证,并且更新token。
传统的组网认证方法高度依赖于中心化的CA,一旦CA被攻破,所有的网络设备的私钥都会被窃取,整个网络的安全防御将形同虚设。本发明将设备公钥存储于区块链账本中,保障了公钥的不可篡改性,每个设备的私钥存储在本地,即使有少量设备被攻破,也不会影响整个网络的运行。因此本发明有效避免了传统的基于CA的身份认证可能存在的单点失效问题,保证了网络中的设备身份的合法性,提高了网络的安全性。
附图说明
图1是本发明第一步构建的区块链网络结构图。
图2是区块链网络的软件结构示意图。
图3是背景技术中比特币的区块链结构图。
图4是本发明总体流程图。
具体实施方式
图1是本发明第一步构建的区块链网络结构图。如图1所示,区块链网络包含多个客户端、多个提交节点和多个共识节点,提交节点间相互连接,共识节点间相互连接。其中,无箭头的线表示节点间通过网络连接,有箭头的线表示信息的输入输出。客户端与背书节点、共识节点相连,客户端向背书节点发起交易提案,接收并验证背书节点返回的背书结果,并将交易提案和通过验证的背书结果发送给共识节点。共识节点与客户端、提交节点相连,共识节点根据客户端发送的交易提案和通过验证的背书结果生成区块,将区块发送给提交节点。每个提交节点都维护有一条相同的区块链,存储在账本中,提交节点接收共识节点生成的区块,对区块做出验证后将其加入到区块链中,并根据仿真交易结果更新帐本中的世界状态。
图2是区块链网络的软件结构示意图。如图2所示,客户端部署在将要进行组网认证的设备上,客户端安装有软件开发包、保密存储单元、ID生成模块、秘钥生成模块、配置信息读取模块和哈希值计算模块。ID生成模块生成设备ID,并将设备ID发送至保密存储单元。秘钥生成模块生成公钥和私钥,将公钥和私钥发送至保密存储单元。配置信息读取模块从系统配置文件中读取设备配置信息,将设备配置信息发送至哈希值计算模块。哈希值计算模块接收配置信息读取模块发送的设备配置信息,计算设备配置信息哈希值,将设备配置信息哈希值发送至保密存储单元。保密存储单元接收并存储设备ID、公钥、私钥和设备配置信息哈希值,供软件开发包读取。软件开发包对智能合约进行初始化,指定背书策略;读取保密存储单元存储的设备ID、公钥、设备配置信息哈希值,生成交易提案并根据背书策略将交易提案发送给各背书节点,并接收各背书节点发来的仿真交易结果和背书签名,验证仿真交易结果是否一致且背书签名是否符合背书策略,若仿真交易结果一致且背书签名符合背书策略,则将交易提案和仿真交易结果以消息形式广播给所有共识节点。
提交节点中安装有账本、背书模块、提交模块和智能合约。所有的提交节点都维护一个相同的账本,账本中包括区块链和世界状态。区块链的结构与图3的结构的区别在于:区块中删减了随机数和目标值这两个数据域,只包含区块ID,时间戳,前一区块哈希值,Merkle根哈希值,区块大小、交易计数、交易信息,区块ID,时间戳,前一区块哈希值,Merkle根哈希值,区块大小、交易计数的内容与图3一样,交易信息记录交易提案。世界状态是一个键值数据库,世界状态的数据存储格式由用户根据业务逻辑自行定义,世界状态中存储区块链网络中每一个设备的状态信息,状态信息指设备ID、公钥以及token(即令牌)。世界状态随着区块链中交易的执行进行更新。背书模块接收客户端发来的交易提案,进行仿真交易,将仿真交易结果发送给发起交易提案的客户端。提交模块接收共识节点生成的区块,对区块做出验证后将区块加入区块链中。智能合约是管理区块链网络中的客户端、提交节点和共识节点间相互作用或交易的软件,客户端通过调用智能合约可以设置和查询账本。智能合约接收客户端发送的交易提案,读取账本中的世界状态,根据世界状态仿真执行交易,并将仿真交易结果发送给背书模块。智能合约中包括注册模块、查询模块、身份认证模块、token生成模块、token查询模块和token更新模块。token是用于身份认证的令牌,带有时间戳,在一定时间内有效。token的存在代表了设备已进行过组网认证,token中时间戳的有效性保证了设备组网认证未过期。注册模块接收注册交易提案,按注册交易提案对设备身份信息进行注册,将查询请求发送给查询模块,将注册交易提案结果发送给背书模块;查询模块从注册模块、身份认证模块、token查询模块接收查询请求,查询世界状态的信息,将世界状态的信息发送给注册模块、身份认证模块、token查询模块;身份认证模块与查询模块、token生成模块、token查询模块、token更新模块相连,对设备进行身份认证;token生成模块从身份认证模块接收组网请求,生成token,将token发送给背书模块;token更新模块从身份认证模块接收token更新请求负责更新token,将更新后的token发送给背书模块。
共识节点上安装有共识服务模块。共识服务模块接收客户端发送的交易提案和仿真交易结果,对一段时间内的交易提案按时间顺序进行排序,并将这些交易提案打包成区块广播至所有提交节点的提交模块。且共识节点根据共识算法生成账本,把账本广播给所有的提交节点。
图4是本发明总体流程图。本发明包括以下步骤:
第一步,基于Hyperledger Fabric部署如图1和图2所示的区块链网络。
第二步,客户端的软件开发包初始化提交节点中的智能合约,指定背书策略。
2.1软件开发包指定背书策略。
2.2客户端使用软件开发包的init(初始化)命令远程启动背书节点上的智能合约,完成智能合约初始化。
第三步,设备在区块链网络上进行信息注册,方法是:
3.1客户端向背书节点发送注册交易提案,方法是:
3.1.1客户端的ID生成模块为设备生成ID,并将设备ID发送至保密存储单元。
3.1.2客户端的配置信息读取模块从系统配置文件中读取设备配置信息,并将设备配置信息发送至哈希值计算模块。
3.1.3客户端的哈希值计算模块通过md5算法计算设备配置信息哈希值,并将设备配置信息哈希值发送至保密存储单元。
3.1.4客户端的密钥生成模块生成公钥和私钥,将公钥发送至保密存储单元和哈希值计算模块,将私钥发送至保密存储单元。生成公钥和私钥的方法是:
3.1.4.1密钥生成模块使用密码学安全伪随机数生成器产生随机数作为私钥。
3.1.4.2密钥生成模块使用椭圆曲线算法根据私钥计算出公钥。
3.1.5客户端的软件开发包读取保密存储单元中的设备ID、设备公钥以及设备配置信息哈希值,将这3个值组成设备注册因子。
3.1.6客户端的软件开发包根据设备注册因子和用户指定的请求类型生成注册交易提案,注册交易提案是一个请求智能合约进行设备信息注册的请求,由请求类型和设备注册因子组成,请求类型标明是注册请求。
3.1.7客户端的软件开发包向背书策略指定的所有背书节点发送注册交易提案。
3.2背书策略指定的所有背书节点的智能合约并行仿真执行注册交易提案并与客户端交互,方法是:
3.2.1智能合约中的注册模块从客户端接收注册交易提案。
3.2.2注册模块向查询模块发送查询账本的查询请求。
3.2.3查询模块查询帐本,获取当前的世界状态,并将当前的世界状态发送给注册模块。
3.2.4注册模块根据当前的世界状态仿真执行注册交易提案,生成包含执行返回值、读操作集合和写操作集合的仿真交易结果,并将仿真交易结果发送至背书模块。所述读操作集合指从世界状态中读取设备ID对应信息的操作的集合,所述写操作集合包括将设备ID、公钥、配置信息哈希值写入账本中世界状态的操作的集合。
3.2.5背书模块为仿真交易结果进行背书签名。
3.2.6背书模块将仿真交易结果、背书签名作为注册交易提案结果返回给客户端。
3.3客户端验证注册交易提案结果并与共识节点交互,方法是:
3.3.1客户端的软件开发包检验注册交易提案结果中的背书签名,确定仿真交易结果是否来自背书策略指定的背书节点集合,若符合背书策略,转步骤3.3.2,否则显示错误信息,转第七步。
3.3.2客户端的软件开发包对比各背书节点生成的仿真交易结果,若仿真交易结果一致,转步骤3.3.3,否则返回错误信息,转第七步。
3.3.3客户端的软件开发包将注册交易提案和仿真交易结果广播给区块链网络中所有的共识节点。
3.4共识节点生成区块并与提交节点交互,方法是:
3.4.1共识节点的共识服务模块对于接收到的注册交易提案按照时间顺序进行记录。
3.4.2共识节点的共识服务模块将注册交易提案按照区块的数据结构生成一个区块;交易信息记录共识节点收到的注册交易提案。
3.4.3共识节点的共识服务模块检验仿真交易结果中的读操作集合、写操作集合是否正确,若正确,转步骤3.4.4,否则,返回错误结果,转第七步。
3.4.4共识节点的共识服务模块将新生成的区块和通过检验的仿真交易结果广播给区块链网络中所有的提交节点。
3.5提交节点更新账本,方法是:
3.5.1提交节点的提交模块将新区块加入区块链中。
3.5.2提交节点的提交模块根据仿真交易结果中的写操作集合更新世界状态,方法是:若世界状态中不存在该设备ID对应的存储记录,则创建一条该设备ID对应的存储记录,若世界状态中已存在该设备ID对应的存储记录,则用仿真交易结果中的设备ID、公钥、配置信息哈希值替换该存储记录。
3.5.3提交模块向客户端的软件开发包发送注册交易提案以及仿真交易结果已被加入账本的通知。
第四步,客户端通过请求智能合约生成设备组网token,方法是:
4.1客户端的软件开发包向背书节点发送设备组网交易提案,方法是:
4.1.1软件开发包用私钥对设备配置信息哈希值进行加密。
4.1.2软件开发包根据设备ID、私钥加密的设备配置信息哈希值生成组网因子,组网因子即设备ID和私钥加密的设备配置信息哈希值组成的二元组。
4.1.3软件开发包根据请求类型和组网因子生成设备组网交易提案。设备组网交易提案是请求智能合约进行设备组网的请求,其中包括组网请求(请求类型)和组网因子,请求类型标明是组网请求。
4.1.4软件开发包向背书策略指定的所有背书节点发送设备组网交易提案。
4.2背书策略指定的所有背书节点并行生成设备组网token,方法是:
4.2.1智能合约的身份认证模块接收软件开发包发送的设备组网交易提案。
4.2.2查询模块查询设备组网交易提案中的设备ID对应的设备注册信息是否存在于世界状态中,若存在,转步骤4.2.3,若不存在,返回错误信息,转第七步。
4.2.3背书节点的身份认证模块对设备进行身份认证,方法是:
4.2.3.1身份认证模块用公钥对设备组网交易提案中的私钥加密的设备配置信息哈希值进行解密。
4.2.3.2身份认证模块将解密出来的设备配置信息哈希值与查询模块读取到的世界状态中的配置信息哈希值进行对比,若两者匹配说明身份认证通过,将设备组网交易提案发送给token生成模块,转步骤4.2.4,不匹配说明身份认证未通过,返回错误信息,转第七步。
4.2.4智能合约的token生成模块生成设备组网token,方法是:
4.2.4.1 token生成模块从身份认证模块接收设备组网交易提案。
4.2.4.2 token生成模块采用标准RFC 7519中的token生成方法,生成设备组网token。
4.2.5 token生成模块将设备组网token发送给背书模块,背书模块将背书签名和设备组网token作为设备组网交易提案结果发送给客户端的软件开发包。
4.3客户端检验设备组网交易提案结果并与共识节点交互,方法是:
4.3.1客户端的软件开发包验证背书签名,确定设备组网交易提案结果是否来自背书策略指定的背书节点集合,若符合背书策略,转步骤4.3.2,否则显示错误信息,转第七步。
4.3.2客户端的软件开发包对比各背书节点生成的设备组网交易提案结果,若设备组网交易提案结果一致,转步骤4.3.3,否则返回错误信息,转第七步。
4.3.3客户端的软件开发包将设备组网交易提案和设备组网交易提案结果广播给区块链网络中所有的共识节点。
4.4共识节点生成区块并与提交节点交互,方法是:
4.4.1共识节点的共识服务模块对接收到的设备组网交易提案按照时间顺序进行记录。
4.4.3共识节点的共识服务模块将设备组网交易提案按照区块的数据格式生成一个区块,区块中的交易信息记录设备组网交易提案。
4.4.2共识服务模块检查组网交易提案结果中设备组网token是否符合token的格式要求,若符合要求,转步骤4.4.4,若不符合要求,则返回错误结果,转第七步。
4.4.4共识服务模块将新生成的区块和通过验证的设备组网token广播给区块链网络中所有的提交节点。
4.5所有提交节点并行更新账本,方法是:
4.5.1提交模块将新区块加入区块链中。
4.5.2提交模块将设备组网token存入世界状态。
4.5.3提交模块向客户端的软件开发包发送设备组网交易提案以及设备组网交易提案结果已被加入账本的通知。
第五步,世界状态中具有设备组网token的设备间进行组网通信,方法是:
5.1已完成组网认证的设备A(即有设备组网token的设备)向已经接入网络的设备B发送通信请求,通信请求包含设备A的ID、设备A的组网token和设备B的ID。
5.2设备B验证设备A的设备组网token是否有效,方法是:
5.2.1设备B的客户端的软件开发包向任意一个背书节点发送设备A的设备组网token的查询请求。
5.2.2背书节点的智能合约从设备B接收设备A的设备组网token的查询请求,对设备B的身份进行验证,若背书节点的世界状态中存在设备B的注册信息和组网token,并且组网token的时间戳在有效期内,转步骤5.2.3,否则返回错误信息,转第七步。
5.2.3智能合约向设备B的客户端返回设备A的组网token。
5.2.4设备B的客户端的软件开发包验证设备A的组网token,若设备A发送的通信请求中的设备组网token和世界状态中存储的设备组网token一致,并且设备A的组网token在有效期内,转步骤5.3,若设备A组网token过期,返回错误信息,转第六步。
5.3设备B响应设备A的通信请求,设备A开始与设备B通信。通信结束后转第七步。
第六步,组网token过期的设备更新过期设备组网token,方法是:
6.1若组网token过期的设备需要再次接入网络,则组网token过期的设备通过客户端的软件开发包向所有背书节点发送token更新交易提案,token更新交易提案是一个请求智能合约更新设备组网token的请求,其中包括token更新请求(请求类型)和token更新因子,请求类型标明是token更新请求,token更新因子包括设备更新token所需要的信息,包括设备ID和过期的设备组网token。
6.2背书节点的智能合约执行token更新交易提案并与客户端交互,方法是:
6.2.1查询模块查询该设备ID在世界状态中的信息,若世界状态中存在该设备的注册信息和设备组网token,转步骤6.2.2,否则返回错误信息,转第七步。
6.2.2智能合约对比token更新交易提案中的设备组网token和世界状态中的设备组网token,若这两个token一致,转步骤6.2.3,否则返回错误信息,转第七步。
6.2.3智能合约中的token生成模块为该设备生成新的设备组网token,并将新的设备组网token发送给背书模块。
6.2.4智能合约中的背书模块为新的设备组网token进行签名,并将设备组网token和背书签名作为token更新交易提案结果发送给客户端的软件开发包。
6.3客户端验证token更新交易提案结果并与共识节点交互,方法是:
6.3.1客户端的软件开发包验证token更新交易提案中的背书签名,确定token更新交易提案结果是否来自背书策略指定的背书节点集合,若符合背书策略,转步骤6.3.2,否则显示错误信息,转第七步。
6.3.2客户端对比各背书节点生成的设备组网token,若设备组网token一致,转步骤6.3.3,否则返回错误信息,转第七步。
6.3.3客户端将token更新交易提案和新的设备组网token广播给区块链网络中所有的共识节点。
6.4共识节点生成区块并与提交节点交互,方法是:
6.4.1共识节点的共识服务模块对接收到的token更新交易提案按照时间顺序进行记录。
6.4.2共识节点的共识服务模块将组网交易提案按照区块的数据格式生成区块,区块中的交易信息记录token更新交易提案。
6.4.3共识节点的共识服务模块检查token更新交易提案结果中的设备组网token是否符合token的格式要求(参见JSON网页令牌的使用标准RFC 7519),若符合要求,转步骤6.4.4,若不符合要求,则返回错误结果,转第七步。
6.4.4共识节点的共识服务模块将新生成的区块和通过验证的设备组网token广播给区块链网络中所有的提交节点。
6.5区块链网络中所有的提交节点并行更新账本,方法是:
6.5.1提交节点的提交模块将新区块加入区块链中。
6.5.2提交节点的提交模块将设备组网token存入世界状态。
6.5.3提交模块向客户端的软件开发包发送token更新交易提案以及token更新交易提案结果已被加入账本的通知。
第七步,结束。

Claims (4)

1.一种基于区块链的设备组网认证方法,其特征在于包括以下步骤:
第一步,基于HyperledgerFabric部署区块链网络,区块链网络包含多个客户端、多个提交节点和多个共识节点,提交节点间相互连接,共识节点间相互连接;客户端初始化提交节点中的智能合约的时候会指定背书策略,背书策略指定了提交节点的一个子集用于执行背书功能,执行背书功能的提交节点又称为背书节点;客户端与背书节点、共识节点相连,客户端向背书节点发起交易提案,接收并验证背书节点返回的背书结果,并将交易提案和通过验证的背书结果发送给共识节点;共识节点与客户端、提交节点相连,共识节点根据客户端发送的交易提案和通过验证的背书结果生成区块,将区块发送给提交节点;每个提交节点都维护有一条相同的区块链,存储在账本中,提交节点接收共识节点生成的区块,对区块做出验证后将其加入到区块链中,并根据仿真交易结果更新帐本中的世界状态;交易提案是一个请求,内容包括请求类型和因子;交易提案包括注册交易提案、设备组网交易提案、token更新交易提案3种,因子有设备注册因子、组网因子、token更新因子3种;
客户端部署在将要进行组网认证的设备上,客户端安装有软件开发包、保密存储单元、ID即身份标识号生成模块、秘钥生成模块、配置信息读取模块和哈希值计算模块;ID生成模块生成设备ID,并将设备ID发送至保密存储单元;秘钥生成模块生成公钥和私钥,将公钥和私钥发送至保密存储单元;配置信息读取模块从系统配置文件中读取设备配置信息,将设备配置信息发送至哈希值计算模块;哈希值计算模块接收配置信息读取模块发送的设备配置信息,计算设备配置信息哈希值,将设备配置信息哈希值发送至保密存储单元;保密存储单元接收并存储设备ID、公钥、私钥和设备配置信息哈希值,供软件开发包读取;软件开发包对智能合约进行初始化,指定背书策略;读取保密存储单元存储的设备ID、公钥、设备配置信息哈希值,生成交易提案并根据背书策略将交易提案发送给各背书节点,并接收各背书节点发来的仿真交易结果和背书签名,验证仿真交易结果是否一致且背书签名是否符合背书策略,若仿真交易结果一致且背书签名符合背书策略,则将交易提案和仿真交易结果以消息形式广播给所有共识节点;背书签名是背书策略的一种表现形式,背书策略是软件开发包指定交易提案必须由背书节点进行签名的策略,通过背书签名表示交易提案通过背书策略,交易提案可信;
提交节点中安装有账本、背书模块、提交模块和智能合约;所有的提交节点都维护一个相同的账本,账本中包括区块链和世界状态;区块链包含区块ID,时间戳,前一区块哈希值,Merkle根哈希值,区块大小、交易计数、交易信息,交易信息记录交易提案;世界状态是一个键值数据库,世界状态的数据存储格式由用户根据业务逻辑自行定义,世界状态中存储区块链网络中每一个设备的状态信息,状态信息指设备ID、公钥以及token即令牌;世界状态随着区块链中交易的执行进行更新;背书模块接收客户端发来的交易提案,进行仿真交易,将仿真交易结果发送给发起交易提案的客户端;提交模块接收共识节点生成的区块,对区块做出验证后将区块加入区块链中;智能合约是管理区块链网络中的客户端、提交节点和共识节点间相互作用或交易的软件,客户端通过调用智能合约设置和查询账本;智能合约接收客户端发送的交易提案,读取账本中的世界状态,根据世界状态仿真执行交易,并将仿真交易结果发送给背书模块;智能合约包括注册模块、查询模块、身份认证模块、token生成模块、token查询模块和token更新模块;token是用于身份认证的令牌,带有时间戳,在一定时间内有效;注册模块接收注册交易提案,按注册交易提案对设备身份信息进行注册,将查询请求发送给查询模块,将注册交易提案结果发送给背书模块;查询模块从注册模块、身份认证模块、token查询模块接收查询请求,查询世界状态的信息,将世界状态的信息发送给注册模块、身份认证模块、token查询模块;身份认证模块与查询模块、token生成模块、token查询模块、token更新模块相连,对设备进行身份认证;token生成模块从身份认证模块接收组网请求,生成token,将token发送给背书模块;token更新模块从身份认证模块接收token更新请求负责更新token,将更新后的token发送给背书模块;
共识节点上安装有共识服务模块,共识服务模块接收客户端发送的交易提案和仿真交易结果,对一段时间内的交易提案按时间顺序进行排序,并将这些交易提案打包成区块广播至所有提交节点的提交模块,且共识节点根据共识算法生成账本,把账本广播给所有的提交节点;
第二步,客户端的软件开发包初始化提交节点中的智能合约,指定背书策略,方法是:
2.1软件开发包指定背书策略;
2.2客户端使用软件开发包的初始化命令即init命令远程启动背书节点上的智能合约,完成智能合约初始化;
第三步,设备在区块链网络上进行信息注册,方法是:
3.1客户端向背书节点发送注册交易提案,方法是:
3.1.1客户端的ID生成模块为设备生成ID,并将设备ID发送至保密存储单元;
3.1.2客户端的配置信息读取模块从系统配置文件中读取设备配置信息,并将设备配置信息发送至哈希值计算模块;
3.1.3客户端的哈希值计算模块计算设备配置信息哈希值,并将设备配置信息哈希值发送至保密存储单元;
3.1.4客户端的密钥生成模块生成公钥和私钥,将公钥发送至保密存储单元和哈希值计算模块,将私钥发送至保密存储单元;
3.1.5客户端的软件开发包读取保密存储单元中的设备ID、设备公钥以及设备配置信息哈希值,将这3个值组成设备注册因子;
3.1.6客户端的软件开发包根据设备注册因子和用户指定的请求类型生成注册交易提案,注册交易提案是一个请求智能合约进行设备信息注册的请求,由请求类型和设备注册因子组成,请求类型标明是注册请求;
3.1.7客户端的软件开发包向背书策略指定的所有背书节点发送注册交易提案;
3.2背书策略指定的所有背书节点的智能合约并行仿真执行注册交易提案并与客户端交互,方法是:
3.2.1智能合约中的注册模块从客户端接收注册交易提案;
3.2.2注册模块向查询模块发送查询账本的查询请求;
3.2.3查询模块查询帐本,获取当前的世界状态,并将当前的世界状态发送给注册模块;
3.2.4注册模块根据当前的世界状态仿真执行注册交易提案,生成包含执行返回值、读操作集合和写操作集合的仿真交易结果,并将仿真交易结果发送至背书模块;所述读操作集合指从世界状态中读取设备ID对应信息的操作的集合,所述写操作集合包括将设备ID、公钥、配置信息哈希值写入账本中世界状态的操作的集合;
3.2.5背书模块为仿真交易结果进行背书签名;
3.2.6背书模块将仿真交易结果、背书签名作为注册交易提案结果返回给客户端;
3.3客户端验证注册交易提案结果并与共识节点交互,方法是:
3.3.1客户端的软件开发包检验注册交易提案结果中的背书签名,确定仿真交易结果是否来自背书策略指定的背书节点集合,若符合背书策略,转步骤3.3.2,否则显示错误信息,转第七步;
3.3.2客户端的软件开发包对比各背书节点生成的仿真交易结果,若仿真交易结果一致,转步骤3.3.3,否则返回错误信息,转第七步;
3.3.3客户端的软件开发包将注册交易提案和仿真交易结果广播给区块链网络中所有的共识节点;
3.4共识节点生成区块并与提交节点交互,方法是:
3.4.1共识节点的共识服务模块对于接收到的注册交易提案按照时间顺序进行记录;
3.4.2共识节点的共识服务模块将注册交易提案按照区块的数据结构生成一个区块:其中区块ID是区块的编号;前一区块哈希值是指与新生成区块相连的上一个区块的Merkle根哈希值;时间戳记录新生成区块生成的系统时间;Merkle根哈希值是将交易信息中的交易提案通过Merkle Proof方法合并而成;区块大小记录新生成区块的大小;交易信息记录共识节点收到的注册交易提案;
3.4.3共识节点的共识服务模块检验仿真交易结果中的读操作集合、写操作集合是否正确,若正确,转步骤3.4.4,否则,返回错误结果,转第七步;
3.4.4共识节点的共识服务模块将新生成的区块和通过检验的仿真交易结果广播给区块链网络中所有的提交节点;
3.5提交节点更新账本,方法是:
3.5.1提交节点的提交模块将新区块加入区块链中;
3.5.2提交节点的提交模块根据仿真交易结果中的写操作集合更新世界状态,方法是:若世界状态中不存在该设备ID对应的存储记录,则创建一条该设备ID对应的存储记录,若世界状态中已存在该设备ID对应的存储记录,则用仿真交易结果中的设备ID、公钥、配置信息哈希值替换该存储记录;
3.5.3提交模块向客户端的软件开发包发送注册交易提案以及仿真交易结果已被加入账本的通知;
第四步,客户端通过请求智能合约生成设备组网token,方法是:
4.1客户端的软件开发包向背书节点发送设备组网交易提案,方法是:
4.1.1软件开发包用私钥对设备配置信息哈希值进行加密;
4.1.2软件开发包根据设备ID、私钥加密的设备配置信息哈希值生成组网因子,组网因子即设备ID和私钥加密的设备配置信息哈希值组成的二元组;
4.1.3软件开发包根据请求类型和组网因子生成设备组网交易提案,设备组网交易提案是请求智能合约进行设备组网的请求,包括请求类型和组网因子,请求类型标明是组网请求;
4.1.4软件开发包向背书策略指定的所有背书节点发送设备组网交易提案;
4.2背书策略指定的所有背书节点并行生成设备组网token,方法是:
4.2.1智能合约的身份认证模块接收软件开发包发送的设备组网交易提案;
4.2.2查询模块查询设备组网交易提案中的设备ID对应的设备注册信息是否存在于世界状态中,若存在,转步骤4.2.3,若不存在,返回错误信息,转第七步;
4.2.3背书节点的身份认证模块对设备进行身份认证,方法是:
4.2.3.1身份认证模块用公钥对设备组网交易提案中的私钥加密的设备配置信息哈希值进行解密;
4.2.3.2身份认证模块将解密出来的设备配置信息哈希值与查询模块读取到的世界状态中的配置信息哈希值进行对比,若两者匹配说明身份认证通过,将设备组网交易提案发送给token生成模块,转步骤4.2.4;若不匹配说明身份认证未通过,返回错误信息,转第七步;
4.2.4智能合约的token生成模块生成设备组网token,方法是:
4.2.4.1token生成模块从身份认证模块接收设备组网交易提案;
4.2.4.2token生成模块采用JSON网页令牌标准RFC 7519中的token生成方法生成设备组网token;
4.2.5token生成模块将设备组网token发送给背书模块,背书模块将背书签名和设备组网token作为设备组网交易提案结果发送给客户端的软件开发包;
4.3客户端检验设备组网交易提案结果并与共识节点交互,方法是:
4.3.1客户端的软件开发包验证背书签名,确定设备组网交易提案结果是否来自背书策略指定的背书节点集合,若符合背书策略,转步骤4.3.2,否则显示错误信息,转第七步;
4.3.2客户端的软件开发包对比各背书节点生成的设备组网交易提案结果,若设备组网交易提案结果一致,转步骤4.3.3,否则返回错误信息,转第七步;
4.3.3客户端的软件开发包将设备组网交易提案和设备组网交易提案结果广播给区块链网络中所有的共识节点;
4.4共识节点生成区块并与提交节点交互,方法是:
4.4.1共识节点的共识服务模块对接收到的设备组网交易提案按照时间顺序进行记录;
4.4.3共识节点的共识服务模块将设备组网交易提案按照区块的数据格式生成一个区块,区块中的交易信息记录设备组网交易提案;
4.4.2共识服务模块检查组网交易提案结果中设备组网token是否符合token的格式要求,若符合要求,转步骤4.4.4,若不符合要求,则返回错误结果,转第七步;
4.4.4共识服务模块将新生成的区块和通过验证的设备组网token广播给区块链网络中所有的提交节点;
4.5所有提交节点并行更新账本并向客户端的软件开发包发送设备组网交易提案以及设备组网交易提案结果已被加入账本的通知,方法是:
4.5.1提交模块将新区块加入区块链中;
4.5.2提交模块将设备组网token存入世界状态;
4.5.3提交模块向客户端的软件开发包发送设备组网交易提案以及设备组网交易提案结果已被加入账本的通知;
第五步,世界状态中具有设备组网token的设备间进行组网通信,方法是:
5.1已有设备组网token的设备A向已经接入网络的设备B发送通信请求,通信请求包含设备A的ID、设备A的组网token和设备B的ID;
5.2设备B验证设备A的设备组网token是否有效,方法是:
5.2.1设备B的客户端的软件开发包向任意一个背书节点发送设备A的设备组网token的查询请求;
5.2.2背书节点的智能合约从设备B接收设备A的设备组网token的查询请求,对设备B的身份进行验证,若背书节点的世界状态中存在设备B的注册信息和组网token,并且组网token的时间戳在有效期内,转步骤5.2.3,否则返回错误信息,转第七步;
5.2.3智能合约向设备B的客户端返回设备A的组网token;
5.2.4设备B的客户端的软件开发包验证设备A的组网token,若设备A发送的通信请求中的设备组网token和世界状态中存储的设备组网token一致,并且设备A的组网token在有效期内,转步骤5.3,若设备A组网token过期,返回错误信息,转第六步;
5.3设备B响应设备A的通信请求,设备A开始与设备B通信,通信结束后转第七步;
第六步,组网token过期的设备更新过期设备组网token,方法是:
6.1若组网token过期的设备需要再次接入网络,则组网token过期的设备通过客户端的软件开发包向所有背书节点发送token更新交易提案,token更新交易提案是一个请求智能合约更新设备组网token的请求,包括请求类型和token更新因子,请求类型标明是token更新请求,token更新因子包括设备更新token所需要的信息,包括设备ID和过期的设备组网token;
6.2背书节点的智能合约执行token更新交易提案并与客户端交互,方法是:6.2.1查询模块查询该设备ID在世界状态中的信息,若世界状态中存在该设备的注册信息和设备组网token,转步骤6.2.2,否则返回错误信息,转第七步;
6.2.2智能合约对比token更新交易提案中的设备组网token和世界状态中的设备组网token,若这两个token一致,转步骤6.2.3,否则返回错误信息,转第七步;
6.2.3智能合约中的token生成模块为该设备生成新的设备组网token,并将新的设备组网token发送给背书模块;
6.2.4智能合约中的背书模块为新的设备组网token进行签名,并将设备组网token和背书签名作为token更新交易提案结果发送给客户端的软件开发包;
6.3客户端验证token更新交易提案结果并与共识节点交互,方法是:
6.3.1客户端的软件开发包验证token更新交易提案中的背书签名,确定token更新交易提案结果是否来自背书策略指定的背书节点集合,若符合背书策略,转步骤6.3.2,否则显示错误信息,转第七步;
6.3.2客户端对比各背书节点生成的设备组网token,若设备组网token一致,转步骤6.3.3,否则返回错误信息,转第七步;
6.3.3客户端将token更新交易提案和新的设备组网token广播给区块链网络中所有的共识节点;
6.4共识节点生成区块并与提交节点交互,方法是:
6.4.1共识节点的共识服务模块对接收到的token更新交易提案按照时间顺序进行记录;
6.4.2共识节点的共识服务模块将组网交易提案按照区块的数据格式生成区块,区块中的交易信息记录token更新交易提案;
6.4.3共识节点的共识服务模块检查token更新交易提案结果中的设备组网token是否符合token的格式要求,若符合要求,转步骤6.4.4,若不符合要求,则返回错误结果,转第七步;
6.4.4共识节点的共识服务模块将新生成的区块和通过验证的设备组网token广播给区块链网络中所有的提交节点;
6.5区块链网络中所有的提交节点并行更新账本并向客户端的软件开发包发送token更新交易提案以及token更新交易提案结果已被加入账本的通知,方法是:
6.5.1提交节点的提交模块将新区块加入区块链中;
6.5.2提交节点的提交模块将设备组网token存入世界状态;
6.5.3提交模块向客户端的软件开发包发送token更新交易提案以及token更新交易提案结果已被加入账本的通知;
第七步,结束。
2.如权利要求1所述的一种基于区块链的设备组网认证方法,其特征在于所述Hyperledger Fabric是一个包含一个账本,使用智能合约并且是一个通过所有参与者管理交易的系统,Hyperledger Fabric的账本包含两个组件:世界状态和区块链。
3.如权利要求1所述的一种基于区块链的设备组网认证方法,其特征在于第3.1.3步所述哈希值计算模块计算设备配置信息哈希值的方法是互联网标准RFC1321中的md5算法。
4.如权利要求1所述的一种基于区块链的设备组网认证方法,其特征在于第3.1.4步所述客户端的密钥生成模块生成公钥和私钥的方法是:
3.1.4.1密钥生成模块使用密码学安全伪随机数生成器产生随机数作为私钥;
3.1.4.2密钥生成模块使用椭圆曲线算法根据私钥计算出公钥。
CN201810654157.4A 2018-06-22 2018-06-22 一种基于区块链的设备组网认证方法 Active CN108833081B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810654157.4A CN108833081B (zh) 2018-06-22 2018-06-22 一种基于区块链的设备组网认证方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810654157.4A CN108833081B (zh) 2018-06-22 2018-06-22 一种基于区块链的设备组网认证方法

Publications (2)

Publication Number Publication Date
CN108833081A CN108833081A (zh) 2018-11-16
CN108833081B true CN108833081B (zh) 2021-01-05

Family

ID=64137925

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810654157.4A Active CN108833081B (zh) 2018-06-22 2018-06-22 一种基于区块链的设备组网认证方法

Country Status (1)

Country Link
CN (1) CN108833081B (zh)

Families Citing this family (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108833081B (zh) * 2018-06-22 2021-01-05 中国人民解放军国防科技大学 一种基于区块链的设备组网认证方法
CN109150981B (zh) * 2018-07-26 2022-02-25 北京京东尚科信息技术有限公司 区块链网络组网方法、装置、设备及计算机可读存储介质
CN109472600B (zh) * 2018-11-20 2021-01-01 深圳市墨者安全科技有限公司 一种区块链可信验证方法及装置
CN109726531A (zh) * 2018-11-26 2019-05-07 国网江苏省电力有限公司电力科学研究院 一种基于区块链智能合约的营销终端安全管控方法
CN109347877B (zh) * 2018-11-30 2019-10-01 乔杨 区块链结构化存储控制方法
CN109634810A (zh) * 2018-12-10 2019-04-16 广东亿迅科技有限公司 基于Fabric的区块链业务平台和运行方法
CN111311254A (zh) * 2018-12-12 2020-06-19 中移动信息技术有限公司 一种基于区块链的业务处理方法、装置和系统
CN109741800A (zh) * 2018-12-20 2019-05-10 李秦豫 基于区块链技术的医疗数据内外网交互的安全保护方法
CN109697613B (zh) * 2018-12-29 2020-08-25 链博(成都)科技有限公司 用于区块链中网络交易安全认证方法和系统
CN109727032A (zh) * 2018-12-29 2019-05-07 杭州趣链科技有限公司 一种基于身份标识密码的联盟区块链访问控制方法
US11601787B2 (en) 2018-12-31 2023-03-07 T-Mobile Usa, Inc. Using a blockchain to determine trustworthiness of messages between vehicles over a telecommunications network
US11159945B2 (en) 2018-12-31 2021-10-26 T-Mobile Usa, Inc. Protecting a telecommunications network using network components as blockchain nodes
CN109886026A (zh) * 2019-01-11 2019-06-14 平安科技(深圳)有限公司 数据保存查询方法、装置、计算机系统及可读存储介质
CN109948349A (zh) * 2019-01-15 2019-06-28 苏州链读文化传媒有限公司 一种基于区块链技术的学习记录方法和装置
CN109918866A (zh) * 2019-01-15 2019-06-21 苏州链读文化传媒有限公司 一种基于区块链技术的著作权保护方法和装置
CN109729093A (zh) * 2019-01-17 2019-05-07 重庆邮电大学 一种基于区块链的数字版权登记技术
CN109981565B (zh) * 2019-01-29 2021-10-15 广州中国科学院软件应用技术研究所 基于Meta-BFT共识机制的区块链平台及实现方法
CN111490968A (zh) * 2019-01-29 2020-08-04 上海汉澄电子设备有限公司 一种基于区块链技术的联盟多节点网络身份认证方法
CN109829823A (zh) * 2019-01-31 2019-05-31 山东浪潮商用系统有限公司 一种境外旅客购物离境退税业务信息管理平台及方法
CN109801043A (zh) * 2019-02-01 2019-05-24 苏州链读文化传媒有限公司 基于区块链的全生命周期学习记录认证装置及认证方法
CN109919766A (zh) * 2019-02-19 2019-06-21 上海市张江公证处 数据存证以及验证交易用户真实性的方法及终端、服务器
CN109858270A (zh) * 2019-02-22 2019-06-07 江苏金智教育信息股份有限公司 一种去中心化数字身份的构建方法和系统
CN109963279B (zh) * 2019-03-08 2021-07-09 中国科学院上海微系统与信息技术研究所 一种应用于动态自组网的混合加密方法
CN110071966B (zh) * 2019-03-29 2022-01-04 广州中国科学院软件应用技术研究所 基于云平台的区块链组网及数据处理方法
CN110022217B (zh) * 2019-04-04 2021-11-05 深圳大通实业股份有限公司 一种基于区块链的广告传媒业务数据可信存证系统
CN110149316B (zh) * 2019-04-22 2022-05-17 众安信息技术服务有限公司 一种区块链的发布方法及装置
CN110046496B (zh) * 2019-04-25 2023-05-30 深圳市元征科技股份有限公司 一种软件开发方法、系统及区块链节点设备和存储介质
CN110288307B (zh) * 2019-05-13 2022-04-29 西安电子科技大学 基于Fabric区块链的智能合约协同开发系统及数据处理方法
CN110191108B (zh) * 2019-05-17 2022-04-19 杭州宇链科技有限公司 一种基于区块链的权利验证方法
CN111988145B (zh) * 2019-05-24 2023-08-04 阿里巴巴集团控股有限公司 业务认证及副证申请的处理方法、装置、系统及电子设备
CN110222536A (zh) * 2019-05-25 2019-09-10 上海源庐加佳信息科技有限公司 一种基于分布式记账的仓单数据存储方法
CN110287186B (zh) * 2019-05-31 2023-01-03 武汉大学 一种基于主权区块链技术的智能电网数据管理系统及方法
CN110190971B (zh) * 2019-06-27 2022-03-15 浪潮卓数大数据产业发展有限公司 一种基于区块链的jwt令牌认证方法
CN110460567B (zh) * 2019-06-28 2020-11-06 华为技术有限公司 一种身份鉴权方法及装置
CN112311735B (zh) * 2019-07-30 2021-11-19 华为技术有限公司 可信认证方法,网络设备、系统及存储介质
CN110545189A (zh) * 2019-08-29 2019-12-06 北京艾摩瑞策科技有限公司 社区平台用户的区块链私钥的代签方法及其装置
CN110572398B (zh) * 2019-09-10 2021-08-31 腾讯科技(深圳)有限公司 区块链网络的管控方法、装置、设备及存储介质
CN110635990B (zh) * 2019-09-12 2021-04-06 核芯互联科技(青岛)有限公司 一种通信网络节点接收电子文件出具回执的方法及系统
CN110598449B (zh) * 2019-09-19 2024-04-02 腾讯科技(深圳)有限公司 履约保函的数据处理方法、装置、存储介质和计算机设备
CN110599213B (zh) * 2019-09-29 2024-03-29 腾讯科技(深圳)有限公司 一种基于区块链网络的物品管理方法、装置及电子设备
US20210110382A1 (en) * 2019-10-13 2021-04-15 MobileCoin System and method for providing auxiliary curve cold storage
CN110991573B (zh) * 2019-11-04 2023-09-01 京东科技信息技术有限公司 一种产品管理方法、系统、客户端节点以及存储介质
US11349637B2 (en) * 2019-11-04 2022-05-31 International Business Machines Corporation Random node selection for permissioned blockchain
CN110769393B (zh) * 2019-11-07 2021-12-24 公安部交通管理科学研究所 一种车路协同的身份认证系统及方法
CN111131387B (zh) * 2019-11-22 2023-05-16 陕西医链区块链集团有限公司 一种基于区块链技术的医疗数据的处理系统及方法
CN110969207B (zh) * 2019-11-29 2024-05-14 腾讯科技(深圳)有限公司 电子证据处理方法、装置、设备以及存储介质
CN111050133B (zh) * 2019-12-23 2020-10-23 广州公评科技有限公司 一种基于区块链技术的视频数据处理系统
CN111147228B (zh) * 2019-12-28 2022-04-01 西安电子科技大学 基于以太坊IoT实体轻量级认证方法、系统、智能终端
CN111327602B (zh) * 2020-01-21 2021-09-28 腾讯科技(深圳)有限公司 一种设备接入处理方法、设备及存储介质
CN111478878B (zh) * 2020-02-28 2022-10-21 新华三技术有限公司 一种防攻击方法及装置
CN111489156A (zh) * 2020-03-18 2020-08-04 平安国际智慧城市科技股份有限公司 基于区块链的交易方法、电子装置及可读存储介质
US11665159B2 (en) 2020-04-22 2023-05-30 Kyndryl, Inc. Secure resource access by amalgamated identities and distributed ledger
CN111598650A (zh) * 2020-04-28 2020-08-28 深圳壹账通智能科技有限公司 基于区块链网络的资源请求交易方法及相关装置
CN113781021A (zh) * 2020-06-10 2021-12-10 徐蔚 采用码链区块的数字货币模型、方法、系统及装置
CN111934919B (zh) * 2020-07-28 2022-02-08 厦门潭宏信息科技有限公司 一种网络融合及其组网方法、设备及存储介质
CN111917865B (zh) * 2020-07-29 2022-09-20 成都质数斯达克科技有限公司 区块链网络系统、网关以及组网方法
CN111988174B (zh) * 2020-08-19 2022-07-29 浙江八达电子仪表有限公司 基于区块链的厂站侧智能配用电终端管理系统与方法
CN112235340B (zh) * 2020-09-01 2022-11-25 迅鳐成都科技有限公司 一种分布式区块链组网方法、装置、系统及存储介质
CN111835872B (zh) * 2020-09-14 2020-12-01 江苏开博科技有限公司 基于自组网技术实现去中心化的分布式进程守护的方法
CN111833062B (zh) * 2020-09-21 2020-12-01 江苏傲为控股有限公司 数字资产数据包的可信性验证系统
CN112564895B (zh) * 2020-11-26 2022-10-21 中国船舶工业系统工程研究院 基于区块链的无人艇集群可信组网方法、系统及存储介质
CN112637274A (zh) * 2020-12-04 2021-04-09 山西特信环宇信息技术有限公司 锥体区块链终端及其接入方法
CN112688728B (zh) * 2020-12-17 2022-02-08 西安电子科技大学 一种星间认证方法、系统、介质、设备、终端及应用
CN112769894B (zh) * 2020-12-17 2022-05-17 国网浙江省电力有限公司信息通信分公司 一种基于区块链Merkle树验证的设备认证方法
CN112788137A (zh) * 2021-01-06 2021-05-11 平衡机器科技(深圳)有限公司 一种基于raft算法的联盟链共识方法
CN113132378A (zh) * 2021-04-15 2021-07-16 无锡全面互链科技有限公司 一种区块链节点设备及区块链网络系统
CN113438293A (zh) * 2021-06-22 2021-09-24 深圳壹账通智能科技有限公司 基于区块链的服务系统、方法、设备及存储介质
CN115942306A (zh) * 2021-08-23 2023-04-07 中车株洲电力机车研究所有限公司 一种无线设备入网认证方法、系统、存储介质以及设备
CN113535690B (zh) * 2021-09-15 2021-12-21 支付宝(杭州)信息技术有限公司 一种区块链服务网络的组建方法和装置
CN116095090A (zh) * 2021-11-08 2023-05-09 华为技术有限公司 一种通信方法及通信装置
CN114157671B (zh) * 2021-11-26 2024-06-18 支付宝(杭州)信息技术有限公司 将区块链网络承载的信息向多个客户端节点分发的方法
CN114760198B (zh) * 2022-01-17 2023-03-24 清华大学 一种基于区块链网络的共识方法、装置及系统
CN114584383B (zh) * 2022-03-10 2024-02-27 东南大学 一种基于区块链的物联网设备匿名身份认证方法
CN114745135A (zh) * 2022-04-19 2022-07-12 西南石油大学 一种基于V-raft共识算法进行能源交易的区块链系统
CN115001707B (zh) * 2022-05-27 2023-06-27 珠海复旦创新研究院 基于区块链的设备认证方法和相关设备
CN115348263A (zh) * 2022-06-29 2022-11-15 中国工商银行股份有限公司 多层次区块链系统、多层次区块链的混合组网方法及装置
CN115527370B (zh) * 2022-09-30 2023-07-14 广州市智慧城市投资运营有限公司 一种基于隐私计算的出行需求共享与动静态交通协同方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107181765A (zh) * 2017-07-25 2017-09-19 光载无限(北京)科技有限公司 基于区块链技术的网络数字身份认证方法
CN107528856A (zh) * 2017-09-27 2017-12-29 福建实达电脑设备有限公司 基于区块链的物联网雾端设备在云端平台接入认证方法
CN107682331A (zh) * 2017-09-28 2018-02-09 复旦大学 基于区块链的物联网身份认证方法
CN108123936A (zh) * 2017-12-13 2018-06-05 北京科技大学 一种基于区块链技术的访问控制方法及系统
CN108833081A (zh) * 2018-06-22 2018-11-16 中国人民解放军国防科技大学 一种基于区块链的设备组网认证方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB201617913D0 (en) * 2016-10-24 2016-12-07 Trustonic Limited Multi-stakeholder key setup for lot

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107181765A (zh) * 2017-07-25 2017-09-19 光载无限(北京)科技有限公司 基于区块链技术的网络数字身份认证方法
CN107528856A (zh) * 2017-09-27 2017-12-29 福建实达电脑设备有限公司 基于区块链的物联网雾端设备在云端平台接入认证方法
CN107682331A (zh) * 2017-09-28 2018-02-09 复旦大学 基于区块链的物联网身份认证方法
CN108123936A (zh) * 2017-12-13 2018-06-05 北京科技大学 一种基于区块链技术的访问控制方法及系统
CN108833081A (zh) * 2018-06-22 2018-11-16 中国人民解放军国防科技大学 一种基于区块链的设备组网认证方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A Distributed Authentication Protocol Using Identity-Based Encryption and Blockchain for LEO Network;Shuai Li; Meilin Liu;《Security, Privacy, and Anonymity in Computation, Communication, and Storage. 10th International Conference》;20171215;全文 *
A New Transitively Closed Undirected Graph Authentication Scheme for Blockchain-Based Identity Management Systems;Chao Lin;Debiao He;《IEEE Access》;20180517;全文 *
基于区块链技术的高效跨域认证方案;周致成; 李立新; 李作辉;《计算机应用》;20180210;全文 *

Also Published As

Publication number Publication date
CN108833081A (zh) 2018-11-16

Similar Documents

Publication Publication Date Title
CN108833081B (zh) 一种基于区块链的设备组网认证方法
CN109040271B (zh) 一种分布式环境下的网络设备完整性保护方法
US20230070963A1 (en) Blockchain-implemented method for control and distribution of digital content
US20240005304A1 (en) Computer-implemented methods and systems for validating tokens for blockchain-based cryptocurrencies
CN110599213B (zh) 一种基于区块链网络的物品管理方法、装置及电子设备
CN111801910A (zh) 基于证明验证的用于认证链外数据的系统和方法
CN110800254B (zh) 用于生成数字标记的系统和方法
CN111144881A (zh) 对资产转移数据的选择性访问
WO2018153486A1 (en) Method for signing a new block in a decentralized blockchain consensus network
KR20190002688A (ko) 분산형 해시 테이블과 피어투피어 분산 원장을 사용하여 디지털 자산의 무결성을 검증하기 위한 방법 및 시스템
CN111656386B (zh) 管理账本系统中的交易请求
CN115380303A (zh) 基于区块链的可信平台
Wang et al. Decentralized data outsourcing auditing protocol based on blockchain
JP2023530594A (ja) 分散型データベースにおける許可されたイベント処理
CN111630545B (zh) 管理账本系统中的交易请求
CN113302610A (zh) 基于区块链的可信平台
CN117043772A (zh) 区块链数据分离
CN113939821A (zh) 用于在工作量证明区块链网络上进行非并行挖掘的系统和方法
CN111222963A (zh) 基于区块链的招标信息处理方法及装置
CN113302612B (zh) 一种用于跨链和跨网络数据传输的计算机实现方法、系统及装置
TWM586416U (zh) 基於區塊鏈技術實現交易的多中心分散驗證系統
CN113597608A (zh) 基于区块链的可信平台
CN111444416A (zh) 金融业务的推广方法、系统及装置
CN111630549B (zh) 管理账本系统中的交易请求
CN113491090A (zh) 基于区块链的可信平台

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant