CN114584383A - 一种基于区块链的物联网设备匿名身份认证方法 - Google Patents
一种基于区块链的物联网设备匿名身份认证方法 Download PDFInfo
- Publication number
- CN114584383A CN114584383A CN202210233544.7A CN202210233544A CN114584383A CN 114584383 A CN114584383 A CN 114584383A CN 202210233544 A CN202210233544 A CN 202210233544A CN 114584383 A CN114584383 A CN 114584383A
- Authority
- CN
- China
- Prior art keywords
- equipment
- information
- internet
- authentication
- contract
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000004891 communication Methods 0.000 claims abstract description 4
- 230000007246 mechanism Effects 0.000 claims description 11
- 230000000977 initiatory effect Effects 0.000 claims description 8
- 230000008569 process Effects 0.000 abstract description 5
- 230000005540 biological transmission Effects 0.000 abstract description 4
- 230000006870 function Effects 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- PCHJSUWPFVWCPO-UHFFFAOYSA-N gold Chemical compound [Au] PCHJSUWPFVWCPO-UHFFFAOYSA-N 0.000 description 1
- 239000010931 gold Substances 0.000 description 1
- 229910052737 gold Inorganic materials 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
- H04L63/0421—Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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 using cryptographic hash functions
- H04L9/3242—Cryptographic 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 using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于区块链的物联网设备匿名身份认证方法,包括以下步骤:构造基于物联网设备身份的智能合约;区块链构建与智能合约编译部署;设备信息注册、加密、上链;设备端与平台端的匿名认证通信。本发明使用区块链作为物联网平台底层架构,解决了物联网平台信息存储安全问题;使用非对称加密算法唯一的标识可信任的物联网设备,解决了设备的身份安全问题并保证了认证过程中的匿名性;使用默克尔树存储设备关键信息参数,消耗较少的时间与空间完成对设备所有信息的认证,减少设备认证与信息传输的资源消耗的同时保证了设备信息在存储与传输时的不可篡改性。
Description
技术领域
本发明属于计算机领域,尤其涉及一种基于区块链的物联网设备匿名身份认证的方法。
背景技术
物联网是通过射频识别、红外感应器、全球定位***、激光扫描器等信息传感设备,按约定的协议,把任何物品与互联网相连接,进行信息交换和通信,以实现对物品的智能化识别、定位、跟踪、监控和管理的一种网络。随着对物联网不断的深入研究,现如今物联网技术已经被应用于制造业、能源、家具、医疗等领域。但在物联网发展的这段时期也产生了很多不可避免的安全问题。在设备安全方面,缺乏设备与设备之间相互信任的机制,所有的设备都需要和物联网平台的数据进行核对,一旦数据库崩塌,会对整个物联网造成很大的破坏。在个人隐私方面,中心化的管理架构无法自证清白,个人隐私数据被泄露的事件时有发生。在扩展能力方面,目前的物联网数据流都汇总到单一的中心控制***,未来物联网设备将呈几何级数增长,中心化服务成本难以负担,物联网网络与业务平台需要有新型的***扩展方案。在网间协作方面,目前,很多物联网都是运营商、企业内部的自组织网络。涉及到跨多个运营商、多个对等主体之间的协作时,建立信用的成本很高。
阐述了基于 P2P网络技术、加密技术、时间戳技术、区块链技术等2009年1月9日出现序号为1的区块,并与序号为0的创世区块相连接形成了链,标志着区块链的诞生。
各个区块之间通过随机散列(也称哈希算法)实现链接,后一个区块包含前一个区块的哈希值,随着信息交流的扩大,一个区块与一个区块相继接续,形成的结果就叫区块链。从本质上来说,区块链就是一个分布式的账本和数据库,具有去中心化、不可篡改、集体维护、公开透明等特点,是数学、密码学、互联网和计算机科学等一系列科学技术集合而成的产物。区块链的这几个特性可以用于解决物联网当前的安全问题。
发明内容
发明目的:为克服现有技术中存在的不足,本发明提供了一种基于区块链的物联网设备匿名身份认证的方法。该方法可以有效解决设备与平台之间的信任与安全问题和物联网平台中心化架构的成本问题,为后续的物联网相关信息安全研究及工程应用提供新的思路。
技术方案:为了解决上述问题,本发明提出一种基于区块链的物联网设备匿名身份认证方法,包括以下步骤:
步骤1、构造基于物联网设备身份的智能合约,包括交易者Dealer合约,设备Device合约,设备签名认证ECRecovery方法,默克尔证明Merkle Proof方法;
步骤2、区块链构建与智能合约编译部署:使用区块链构建私有区块链,选取工作量证明机制ProofOfWork作为共识机制,创建私有链网络并保存至本地;智能合约编译完成后部署至私有链,通过对合约发起交易即可注册设备;
步骤3、设备信息注册、加密、上链:设备首先被分配一对公私钥对,其次使用数个设备信息参数构成默克尔树,并将默克尔根存储至合约中;然后申请者向合约发起注册交易,交易完成后将公私钥对、设备注册所用信息和标识符信息返回给申请人;
步骤4、设备端与平台端的匿名认证通信:设备端在本地通过设备信息文件构造认证信息payload,将payload发送给平台端;平台端通过调用链上智能合约完成认证。
进一步的,步骤1所述构造基于物联网设备身份的智能合约,具体为:
步骤1.1、定义交易者Dealer合约,存储对设备发起注册交易的区块链账户地址Address;
步骤1.2、定义设备Device合约,存储设备认证信息,包括设备拥有者Owner,设备标识符Identity,设备信息默克尔根DeviceMerkleRoot;
步骤1.3、定义设备签名认证ECRecovery方法,该方法根据消息msg的哈希值Hash(msg)与签名Sig恢复公钥;
步骤1.4、定义默克尔证明Merkle Proof方法,该方法根据叶节点信息info 的哈希值Hash(info)与默克尔证明参数Proof(Hash1,Hash2…)计算得出默克尔根,其中Hash1,Hash2…指的是设备端需要提供的认证参数。
进一步的,步骤3所述设备信息注册、加密、上链,包括以下步骤:
步骤3.1、使用椭圆曲线加密算法获取公私钥对(PubKdevice,PvtKdecice),其中PubKdevice为公钥,PvtKdecice为私钥;
步骤3.2、使用散列算法计算PubKdevice的哈希值,计算出公钥对应地址,使用该地址作为该设备的唯一设备标识符Identity;
步骤3.3、使用设备信息参数构造默克尔树并返回设备信息;
步骤3.4、对该合约地址发起注册交易;
步骤3.5、交易写入区块链;
步骤3.6、交易完成后返回给交易人设备信息文件,包含设备拥有者Owner,设备标识符Identity,公私钥对(PubKdevice,PvtKdecice),所有注册使用信息InfoData;
步骤3.7、链上合约存储设备拥有者Owner,设备标识符Identity,设备信息默克尔根DeviceMerkleRoot;
步骤3.8、设备端保存该设备信息文件。
进一步的,步骤3.3所述使用设备信息参数构造默克尔树,具体为:设备信息参数包括设备名称、出厂时间、序列号、生产商关键信息参数,将设备信息参数逐个计算哈希值,作为叶节点信息的哈希值;进一步将这些叶节点信息的哈希值两两拼接,继续计算哈希值;重复上述步骤直至计算出唯一的设备信息默克尔根DeviceMerkleRoot。
进一步的,步骤4所述设备端在本地通过设备信息文件构造认证信息payload,将payload发送给平台端,包括以下步骤:
步骤4.1.1、选取设备构造默克尔树的任意叶节点信息info作为消息msg;
步骤4.1.2、对该消息msg的哈希值Hash(msg)使用椭圆曲线签名算法获取签名Sig;
步骤4.1.3、计算所有注册使用信息InfoData的哈希值,构造默克尔树;
步骤4.1.4、使用所选取叶节点信息构造默克尔证明参数Proof(Hash1,Hash2…);
步骤4.1.5、构造认证信息payload,包含消息msg、签名Sig、默克尔证明参数Proof(Hash1,Hash2…),发送至平台端。
进一步的,步骤4.1.2所述使用椭圆曲线签名算法获取签名Sig,具体为:使用椭圆曲线加密算法获取公私钥对,选择任意消息的哈希值Hash(msg),使用私钥对该哈希值作签名,得到一对256位二进制签名结果{r,s}即签名Sig。
进一步的,所述使用椭圆曲线加密算法获取公私钥对,方法为:选取随机256 位二进制数作为私钥PvtKdecice,选取任意一条椭圆曲线y2=x3+ax+b且满足 4a3+27b2≠0的点集,a、b为常数,选取曲线上的一个基点G,计算公钥PubKdevice=PvtKdecice×G。
进一步的,步骤4所述平台端通过调用链上智能合约完成认证,包括以下步骤:
步骤4.2.1、连接区块链网络,获取部署完成的智能合约实例;
步骤4.2.2、调用智能合约函数ECRecovery,使用payload中的Hash(msg)与签名Sig恢复公钥PubKdevice,使用散列算法计算PubKdevice的哈希值,得出该公钥对应地址,将该地址与链上数据设备标识符Identity做对比,完成对该签名和传递数据的认证;
步骤4.2.3、调用智能合约函数Merkle Proof方法,使用payload中的消息 msg与默克尔证明参数Proof(Hash1,Hash2…)计算默克尔根MerkleRoot';将 MerkleRoot'与设备信息默克尔根DeviceMerkleRoot作比较,完成对设备信息的认证。
进一步的,所述Merkle Proof方法为:将一个叶节点信息的哈希值Hash(info) 与Proof(Hash1,Hash2…)中的第一个参数Hash1拼接并出计算哈希值Hash1',再将该哈希值Hash1'与第二个参数Hash2拼接并计出算哈希值Hash2',直至得出最终的默克尔根MerkleRoot'。
有益效果:与现有技术相比,本发明具有以下优点:
第一,本发明使用去中心化的物联网平台架构,数据存储使用区块链作为载体,平台端只需充当区块链全节点即可进行设备管理与认证,并且对单个节点区块链数据的篡改或区块节点丢失并不会被区块链上其他节点所共识,使得本发明的方法实现了物联网设备数据的不可篡改性,保证了设备信息存储的安全性;
第二,本发明使用非对称加密算法标识设备身份,区块链存储设备公钥通过哈希运算之后的散列值;设备端只需使用私钥对消息进行签名,即可在不暴露自身信息的情况下完成设备认证,保证了认证过程中设备的匿名性,防止了认证过程中设备信息的泄露问题;
第三,本发明使用默克尔树存储设备关键身份信息,若设备使用n个自身设备参数,则区块链上只需O(1)的空间保存上述所有信息,需要O(log2 n)的时间计算根哈希值。设备端构造默克尔证明时需要O(log2 n)的时间构造证明,需要 O(log2 n)的空间在网络中传输数据。平台端接收端只需计算log2 n次即可对设备的n个信息参数完成认证,对设备的任意一处篡改都将导致最终的根哈希值不同,保证了认证过程中设备的不可篡改性,防止其他恶意节点通过设备接入对物联网平台的入侵。
附图说明
图1为本发明简化流程图;
图2为本发明实施用户端、设备端和平台端具体流程图;
图3为构造默克尔树示意图;
图4为默克尔证明Merkle Proof示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明实施方案作进一步详细描述。
本发明的一种基于区块链的物联网设备匿名身份认证方法,流程如图1所示,包括以下步骤:
步骤1,构造基于物联网设备身份的智能合约:定义交易者Dealer合约,定义设备Device合约,定义设备签名认证ECRecovery方法,定义默克尔证明Merkle Proof方法;
步骤2,区块链构建与智能合约编译部署:使用支持智能合约的区块链,例如Ethereum,Stratis,HyperLedger Fabric及其他所有支持智能合约的区块链。区块链共识机制可以选择工作量证明ProofOfWork,权益证明ProofOfStake等其它任意共识机制;
步骤3,设备信息注册、加密、上链:设备首先被分配一对公私钥对,其次使用数个设备信息参数构成默克尔树,并将默克尔根存储至合约中。完成上述步骤后申请者向合约发起注册交易,交易完成后将设备所有者、公私钥对、设备注册所用信息,标识符信息返回给申请人;
步骤4,设备端与平台端的匿名认证通信:设备端在本地通过设备信息文件构造认证信息payload,将该payload发送给平台端。平台端通过调用链上智能合约认证函数完成认证。
实施例使用Ethereum作为区块链架构。区块链共识机制选用工作量证明POW。使用solidity语言编写编译智能合约。使用椭圆曲线secp256k1,即 y2=x3+7作为椭圆曲线加密算法(Elliptic Curve Cryptography,ECC)所使用曲线。使用散列函数keccak256作为单向散列函数使用。选取设备注册的第一个叶节点信息info1作为Merkle Proof的叶节点。
具体介绍如下:
步骤1、编写基于物联网设备身份的智能合约:
智能合约需要定义设备的存储与匿名认证方式。使用任意支持编写与编译的合约语言并拥有其运行时的区块链环境,包括Ethereum所使用的Solidity语言, Stratis所使用的C#语言,HyperLedger Fabric所使用的Golang或Node.js语言及其他所有支持编写与编译的合约语言并拥有其运行时的区块链环境。
(1)定义设备Device合约,包括设备拥有者Owner,设备标识符Identity,设备信息默克尔根DeviceMerkleRoot。其中为了方便存储,在合约内部使用数组管理设备,设备所在数组下标定义为设备id(DeviceId),并且在设备注册完成后作为设备配置信息返回给注册人。使用椭圆曲线签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)的secp256k1椭圆曲线获取公私钥对(PubKdevice, PvtKdecice),其中PubKdevice为公钥,PvtKdecice为私钥;并使用散列算法keccak256 计算PubKdevice的哈希值,转化为十六进制字符串,取十六进制字符串的后40位作为该设备的唯一标识符Identity。
(2)定义设备交易者Dealer合约。交易者即为与区块链合约交易者,使用的是区块链公私钥对(PubKeth,PvtKeth),同样使用keccak256计算出公钥所对应地址,存储至设备的属性Owner中。
(3)定义签名认证函数ECRecovery方法。函数参数为消息的哈希值 Hash(msg)和签名Sig,通过参数恢复出设备公钥PubKdevice,通过对比存储至链上的设备标识符完成对该签名的认证。
需要注意的是只有使用ECC算法生成的公私钥对才能恢复公钥,其他数字签名算法只能使用私钥对消息的哈希值Hash(msg)进行签名,并使用公钥验证签名,无法恢复公钥。
(4)定义默克尔证明Merkle Proof方法。函数参数为叶节点信息info的哈希值Hash(info)与默克尔证明参数Proof(Hash1,Hash2…),计算得出默克尔根,其中Hash1,Hash2…指的是设备端需要提供的认证参数。
步骤2、区块链构建与智能合约编译部署:
使用区块链构建私有区块链,选取工作量证明机制ProofOfWork作为共识机制,创建私有链网络并保存至本地。智能合约编译完成后部署至该私有链,通过对该合约发起交易即可注册设备。
步骤3、设备信息注册、加密、上链:
如图2的用户端流程所示,设备首先被分配一对公私钥对,其次使用数个设备信息参数构成默克尔树,并将默克尔根存储至合约中。完成上述步骤后申请者向合约发起注册交易,交易完成后将上述信息(设备所有者、公私钥对、设备注册所用信息,标识符信息)返回给申请人,具体如下:
步骤3.1、使用椭圆曲线加密算法获取公私钥对(PubKdevice,PvtKdecice),方法为:选取随机256位二进制数作为私钥PvtKdecice,选取任意一条椭圆曲线y2=x3+ax+b且满足4a3+27b2≠0的点集,a、b为常数,选取该曲线上的一个基点 G,计算公钥PubKdevice=PvtKdecice×G。本实施例使用椭圆加密算法中的 secp256k1算法获取公私钥对(PubKdevice,PvtKdecice);
步骤3.2、使用散列算法keccak256计算PubKdevice的哈希值,转化为十六进制字符串,取十六进制字符串的后40位作为该设备的唯一标识符Identity;
步骤3.3、使用设备信息参数构成默克尔树并返回设备信息; MerkleRoot=MRT(info1,info2,info3…),其中MerkleRoot为默克尔根,MRT 为计算函数,info1,info2,info3…为设备的信息。如图3所示,先计算n叶节点信息的info的哈希值,再将这n个哈希值成对组合计算,生成n/2个次一层节点。重复上述步骤直至得到最后的MerkelRoot,将该值作为设备信息默克尔根 DeviceMerkleRoot存储在合约中;
步骤3.4、对该合约地址发起交易;
步骤3.5、通过POW机制将该交易记录至链上;
步骤3.6、交易完成后返回给交易人设备信息文件,包括设备拥有者Owner,设备标识符Identity,公私钥对(PubKdevice,PvtKdecice),所有注册使用信息InfoData;
步骤3.7、链上合约存储设备拥有者Owner,设备标识符Identity,设备信息默克尔根DeviceMerkleRoot;
步骤3.8、设备端保存该设备信息文件,文件信息使用json格式保存。
步骤4、匿名认证过程:
步骤4.1、如图2所示的设备端流程所示、设备端构造认证信息payload;
步骤4.1.1、选取设备构造默克尔树的任意叶节点信息info作为消息msg;
步骤4.1.2、对该消息msg的哈希值Hash(msg)使用椭圆曲线签名算法{r, s}=Ecsign(Hash(msg),PvtKdevice),其中Hash(msg)表示对该msg作哈希运算, Ecsign函数表示使用该哈希值与设备私钥PvtKdevice作运算,得到一对256位二进制签名结果{r,s};
步骤4.1.3、将签名结果{r,s}转化为适合数据传输的远程过程调用(RemoteProcedure Call,RPC)形式的rpc签名:Sigrpc=ToRpcSig(r,s),其中ToRpcSig 表示将二进制签名结果{r,s}转化成适合数据传输的二进制比特流序列;
步骤4.1.4、计算所有注册使用信息infoData的哈希值,并构造默克尔树;
步骤4.1.5、使用该树与第一个叶节点info1构造默克尔证明。如图4所示,虚线框代表不需要提供的参数,实体线框代表需要提供的参数。本图例中选取 Hash2,Hash6,Hash8等作为默克尔证明的参数进行传递,即Proof(Hash2,Hash6, Hash8),其中Hash2,Hash6,Hash8指的是默克尔树中需要参与默克尔证明的节点值。
步骤4.1.6、构造认证信息payload,包含设备序号deviceId,消息msg,rpc 签名sigrpc,默克尔证明参数Proof(Hash2,Hash6,Hash8),发送至平台端。
步骤4.2、如图2的平台端流程所示,平台端调用链上合约方法完成认证:
步骤4.2.1、连接区块链网络,获取部署完成的智能合约实例;
步骤4.2.2、将payload参数传入合约函数isValidSignature(deviceId,msg,sigrpc)。使用哈希值Hash(msg)和rpc签名Sigrpc恢复出设备公钥PubKdevice,使用keccak256计算出该公钥所对应地址,将该地址与链上数据设备标识符Identity 作对比,完成对该签名和传递数据的认证;
步骤4.2.3、将payload参数传入合约函数isVaildMerkleRoot(deviceId, Proof(Hash2,Hash6,Hash8),msg),验证默克尔证明。如图4所示,当通过签名认证后表示该叶节点信息的哈希值Hash(info1)合法,可用于默克尔证明。虚线框代表的是使用设备端提供的默克尔证明参数得到的哈希值,将叶节点信息的哈希值Hash1与Hash2拼接计算得到哈希值Hash5',将该哈希值Hash5'与Hash6 拼接计算得到哈希值Hash7',最终将该哈希值Hash7'与Hash8计算得出根哈希MerkelRoot'。然后将该值与设备注册时所构造的DeviceMerkleRoot值作比较,即可对设备信息作完整认证。
注意:使用散列函数计算哈希值,使用符合SHA-3标准的单向散列函数算法,如keccak等。应当注意的是,整个认证流程需只使用一种单向散列函数算法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (9)
1.一种基于区块链的物联网设备匿名身份认证方法,其特征在于,包括以下步骤:
步骤1、构造基于物联网设备身份的智能合约,包括交易者Dealer合约,设备Device合约,设备签名认证ECRecovery方法,默克尔证明Merkle Proof方法;
步骤2、区块链构建与智能合约编译部署:使用区块链构建私有区块链,选取工作量证明机制ProofOfWork作为共识机制,创建私有链网络并保存至本地;智能合约编译完成后部署至私有链,通过对合约发起交易即可注册设备;
步骤3、设备信息注册、加密、上链:设备首先被分配一对公私钥对,其次使用数个设备信息参数构成默克尔树,并将默克尔根存储至合约中;然后申请者向合约发起注册交易,交易完成后将公私钥对、设备注册所用信息和标识符信息返回给申请人;
步骤4、设备端与平台端的匿名认证通信:设备端在本地通过设备信息文件构造认证信息payload,将payload发送给平台端;平台端通过调用链上智能合约完成认证。
2.如权利要求1所述的一种基于区块链的物联网设备匿名身份认证方法,其特征在于,步骤1所述构造基于物联网设备身份的智能合约,具体为:
步骤1.1、定义交易者Dealer合约,存储对设备发起注册交易的区块链账户地址Address;
步骤1.2、定义设备Device合约,存储设备认证信息,包括设备拥有者Owner,设备标识符Identity,设备信息默克尔根DeviceMerkleRoot;
步骤1.3、定义设备签名认证ECRecovery方法,该方法根据消息msg的哈希值Hash(msg)与签名Sig恢复公钥;
步骤1.4、定义默克尔证明Merkle Proof方法,该方法根据叶节点信息info的哈希值Hash(info)与默克尔证明参数Proof(Hash1,Hash2…)计算得出默克尔根,其中Hash1,Hash2…指的是设备端需要提供的认证参数。
3.如权利要求1所述的一种基于区块链的物联网设备匿名身份认证方法,其特征在于,步骤3所述设备信息注册、加密、上链,包括以下步骤:
步骤3.1、使用椭圆曲线加密算法获取公私钥对(PubKdevice,PvtKdecice),其中PubKdevice为公钥,PvtKdecice为私钥;
步骤3.2、使用散列算法计算PubKdevice的哈希值,计算出公钥对应地址,使用该地址作为该设备的唯一设备标识符Identity;
步骤3.3、使用设备信息参数构造默克尔树并返回设备信息;
步骤3.4、对该合约地址发起注册交易;
步骤3.5、交易写入区块链;
步骤3.6、交易完成后返回给交易人设备信息文件,包含设备拥有者Owner,设备标识符Identity,公私钥对(PubKdevice,PvtKdecice),所有注册使用信息InfoData;
步骤3.7、链上合约存储设备拥有者Owner,设备标识符Identity,设备信息默克尔根DeviceMerkleRoot;
步骤3.8、设备端保存该设备信息文件。
4.如权利要求3所述的一种基于区块链的物联网设备匿名身份认证方法,其特征在于,步骤3.3所述使用设备信息参数构造默克尔树,具体为:设备信息参数包括设备名称、出厂时间、序列号、生产商关键信息参数,将设备信息参数逐个计算哈希值,作为叶节点信息的哈希值;进一步将这些叶节点信息的哈希值两两拼接,继续计算哈希值;重复上述步骤直至计算出唯一的设备信息默克尔根DeviceMerkleRoot。
5.如权利要求1所述的一种基于区块链的物联网设备匿名身份认证方法,其特征在于,步骤4所述设备端在本地通过设备信息文件构造认证信息payload,将payload发送给平台端,包括以下步骤:
步骤4.1.1、选取设备构造默克尔树的任意叶节点信息info作为消息msg;
步骤4.1.2、对该消息msg的哈希值Hash(msg)使用椭圆曲线签名算法获取签名Sig;
步骤4.1.3、计算所有注册使用信息InfoData的哈希值,构造默克尔树;
步骤4.1.4、使用所选取叶节点信息构造默克尔证明参数Proof(Hash1,Hash2…);
步骤4.1.5、构造认证信息payload,包含消息msg、签名Sig、默克尔证明参数Proof(Hash1,Hash2…),发送至平台端。
6.如权利要求5所述的一种基于区块链的物联网设备匿名身份认证方法,其特征在于,步骤4.1.2所述使用椭圆曲线签名算法获取签名Sig,具体为:使用椭圆曲线加密算法获取公私钥对,选择任意消息的哈希值Hash(msg),使用私钥对该哈希值作签名,得到一对256位二进制签名结果{r,s}即签名Sig。
7.如权利要求3或6所述的一种基于区块链的物联网设备匿名身份认证方法,其特征在于,所述使用椭圆曲线加密算法获取公私钥对,方法为:选取随机256位二进制数作为私钥PvtKdecice,选取任意一条椭圆曲线y2=x3+ax+b且满足4a3+27b2≠0的点集,a、b为常数,选取曲线上的一个基点G,计算公钥PubKdevice=PvtKdecice×G。
8.如权利要求1所述的一种基于区块链的物联网设备匿名身份认证方法,其特征在于,步骤4所述平台端通过调用链上智能合约完成认证,包括以下步骤:
步骤4.2.1、连接区块链网络,获取部署完成的智能合约实例;
步骤4.2.2、调用智能合约函数ECRecovery,使用payload中的Hash(msg)与签名Sig恢复公钥PubKdevice,使用散列算法计算PubKdevice的哈希值,得出该公钥对应地址,将该地址与链上数据设备标识符Identity做对比,完成对该签名和传递数据的认证;
步骤4.2.3、调用智能合约函数Merkle Proof方法,使用payload中的消息msg与默克尔证明参数Proof(Hash1,Hash2…)计算默克尔根MerkleRoot';将MerkleRoot'与设备信息默克尔根DeviceMerkleRoot作比较,完成对设备信息的认证。
9.如权利要求2或8所述的一种基于区块链的物联网设备匿名身份认证方法,其特征在于,所述Merkle Proof方法为:将一个叶节点信息的哈希值Hash(info)与Proof(Hash1,Hash2…)中的第一个参数Hash1拼接并出计算哈希值Hash1',再将该哈希值Hash1'与第二个参数Hash2拼接并计出算哈希值Hash2',直至得出最终的默克尔根MerkleRoot'。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210233544.7A CN114584383B (zh) | 2022-03-10 | 2022-03-10 | 一种基于区块链的物联网设备匿名身份认证方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210233544.7A CN114584383B (zh) | 2022-03-10 | 2022-03-10 | 一种基于区块链的物联网设备匿名身份认证方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114584383A true CN114584383A (zh) | 2022-06-03 |
CN114584383B CN114584383B (zh) | 2024-02-27 |
Family
ID=81778347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210233544.7A Active CN114584383B (zh) | 2022-03-10 | 2022-03-10 | 一种基于区块链的物联网设备匿名身份认证方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114584383B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116502275A (zh) * | 2023-06-27 | 2023-07-28 | 中国电信股份有限公司 | 去中心化身份认证方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108833081A (zh) * | 2018-06-22 | 2018-11-16 | 中国人民解放军国防科技大学 | 一种基于区块链的设备组网认证方法 |
CN111147228A (zh) * | 2019-12-28 | 2020-05-12 | 西安电子科技大学 | 基于以太坊IoT实体轻量级认证方法、***、智能终端 |
WO2021120253A1 (zh) * | 2019-12-16 | 2021-06-24 | 郑杰骞 | 链式结构数据存储、验证、实现方法、***、装置及介质 |
CN113301022A (zh) * | 2021-04-27 | 2021-08-24 | 西安理工大学 | 基于区块链和雾计算的物联网设备身份安全认证方法 |
-
2022
- 2022-03-10 CN CN202210233544.7A patent/CN114584383B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108833081A (zh) * | 2018-06-22 | 2018-11-16 | 中国人民解放军国防科技大学 | 一种基于区块链的设备组网认证方法 |
WO2021120253A1 (zh) * | 2019-12-16 | 2021-06-24 | 郑杰骞 | 链式结构数据存储、验证、实现方法、***、装置及介质 |
CN111147228A (zh) * | 2019-12-28 | 2020-05-12 | 西安电子科技大学 | 基于以太坊IoT实体轻量级认证方法、***、智能终端 |
CN113301022A (zh) * | 2021-04-27 | 2021-08-24 | 西安理工大学 | 基于区块链和雾计算的物联网设备身份安全认证方法 |
Non-Patent Citations (1)
Title |
---|
谭琛;陈美娟;AMUAH EBENEZER ACKAH;: "基于区块链的分布式物联网设备身份认证机制研究", 物联网学报, no. 02, 18 May 2020 (2020-05-18), pages 71 - 78 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116502275A (zh) * | 2023-06-27 | 2023-07-28 | 中国电信股份有限公司 | 去中心化身份认证方法、装置、设备及介质 |
CN116502275B (zh) * | 2023-06-27 | 2023-10-03 | 中国电信股份有限公司 | 去中心化身份认证方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114584383B (zh) | 2024-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kim et al. | A study on improvement of blockchain application to overcome vulnerability of IoT multiplatform security | |
Alfa et al. | Blockchain technology in IoT systems: current trends, methodology, problems, applications, and future directions | |
CN112085504B (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
Jia et al. | A Blockchain-Assisted Privacy-Aware Authentication scheme for internet of medical things | |
Abed et al. | A review on blockchain and IoT integration from energy, security and hardware perspectives | |
CN112804354B (zh) | 跨链进行数据传输的方法、装置、计算机设备和存储介质 | |
CN110601815B (zh) | 一种区块链数据处理方法以及设备 | |
CN111931215B (zh) | 数据管理方法和装置及存储介质 | |
CN111327426B (zh) | 数据共享方法及相关装置、设备及*** | |
Kaneriya et al. | A comparative survey on blockchain based self sovereign identity system | |
CN114584383B (zh) | 一种基于区块链的物联网设备匿名身份认证方法 | |
Sharma et al. | A Detail dominant approach for IoT and blockchain with their research challenges | |
Gopi et al. | Implementation of IoT Security System by Incorporating Block Chain Technology | |
Mufiidah et al. | The benefits, challenges, and future of blockchain and the internet of things | |
Mishra et al. | VaccineChain: A checkpoint assisted scalable blockchain based secure vaccine supply chain with selective revocation | |
Wang et al. | A novel blockchain identity authentication scheme implemented in fog computing | |
CN117910990A (zh) | 一种基于区块链架构的产业人才招聘***和方法 | |
Abushmmala et al. | Blockchain-Based Secure Smart Health IoT solution Using RBAC Architecture | |
CN112988852B (zh) | 基于区块链的数据管理方法、设备以及介质 | |
Kumar Arora et al. | Blockchain‐inspired lightweight trust‐based system in vehicular networks | |
Chen | Trustworthy Internet Based on Generalized Blockchain | |
Bai et al. | Decentralized Identity Management: Prerequisiteof Web3 Identity Model | |
CN115412250B (zh) | 一种sm9密钥生成中心认证方法、装置、设备及介质 | |
CN116155619B (zh) | 数据处理方法、数据请求端、数据拥有端及数据处理装置 | |
Lohar et al. | A proposed approach for Digital Identity management using Self Sovereign Identity. |
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 |