基于区块链具有隐私保护的物联网访问控制方法转让专利

申请号 : CN202010461829.7

文献号 : CN111629057B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李先贤杨君豪石贞奎李杰付雪梅

申请人 : 广西师范大学

摘要 :

本发明公开一种基于区块链具有隐私保护的物联网访问控制方法,采用零知识证明算法对交易进行加密,生成证明,这样即可以保护交易的隐私,又能让共识节点进行验证达成共识。然后利用可信执行环境,确保智能合约和相关数据的安全。同时,结合角色访问控制模型,对访问请求者进行分类,赋予不同访问请求者不同的权限,来实现细粒度的访问控制。本发明能够保护用户的数据隐私和访问记录隐私,确保不会因为区块链数据的透明性而泄露用户的隐私。

权利要求 :

1.基于区块链具有隐私保护的物联网访问控制方法,其特征是,包括步骤如下:步骤1、资源所有者创建授权合约,该授权合约用于赋予访问请求者角色和对应的权限,并生成授权合约交易;

步骤2、资源所有者利用零知识证明对授权合约交易进行加密,生成加密授权合约交易和授权合约证明,并将加密授权合约交易和授权合约证明上传到区块链;

步骤3、区块链的共识节点接收到加密授权合约交易和授权合约证明后,对授权合约证明进行验证:

如果验证通过,则该共识节点将加密授权合约交易载入可信环境进行上链存储,并广播该加密授权合约交易的ID和存储地址;

如果验证不通过,则该共识节点广播交易失败消息;

步骤4、资源所有者创建认证合约,该认证合约用于对访问请求者进行资格认证,并生成认证合约交易;

步骤5、资源所有者利用零知识证明对认证合约交易进行加密,生成加密认证合约交易和认证合约证明,并将加密认证合约交易和认证合约证明上传到区块链;

步骤6、区块链的共识节点接收到加密认证合约交易和认证合约证明后,对认证合约证明进行验证:

如果验证通过,则该共识节点将加密认证合约交易载入可信环境进行上链存储,并广播该加密认证合约交易的ID和存储地址;

如果验证不通过,则该共识节点广播交易失败消息;

步骤7、访问请求者向资源所有者发送角色授权请求;

步骤8、资源所有者在收到角色授权请求后,生成角色授权交易去调用授权合约,并利用零知识证明对角色授权交易进行加密,生成加密角色授权交易和角色授权证明,并将加密角色授权交易和角色授权证明上传区块链;

步骤9、区块链的共识节点在收到加密角色授权交易和角色授权证明后,对角色授权证明进行验证:

如果验证通过,则分为两种情况:①对于内部访问请求者:该共识节点将加密角色授权交易载入可信执行环境中的授权合约,授权合约直接将访问请求者的地址和角色信息保存到授权合约中,完成访问请求者的角色授权,并广播授权结果;

②对于外部访问请求者:该共识节点将加密角色授权交易载入可信执行环境中的授权合约,授权合约对加密角色授权交易进行是否满足授予角色条件的判定:若满足,则将访问请求者的地址和角色信息保存到授权合约中,完成访问请求者的角色授权,并广播授权结果;否则,广播交易失败消息;

如果验证不通过,则该共识节点广播交易失败消息;

步骤10、完成访问请求者的角色授权后,访问请求者生成访问请求交易去调用认证合约,并利用零知识证明对访问请求交易进行加密,生成加密访问请求交易和访问请求证明,并将加密访问请求交易和访问请求证明上传到区块链;

步骤11、区块链的共识节点接收到加密访问请求交易和访问请求证明后,对访问请求证明进行验证:

如果验证通过,则该共识节点将加密访问请求交易载入可信执行环境中的认证合约,认证合约对加密访问请求交易进行是否满足认证访问条件的判定,若满足,则将访问请求者的地址和访问操作发送给网关,并广播认证结果;否则,广播交易失败消息;

如果验证不通过,则该共识节点广播交易失败消息;

步骤12、网关收到访问请求者的地址和访问操作后,将访问请求者的地址和访问操作发送给对应的物联网设备;物联网设备响应访问操作,并根据访问请求者的地址返回访问结果给访问请求者。

2.根据权利要求1所述基于区块链具有隐私保护的物联网访问控制方法,其特征是,步骤9中,满足授予角色条件由资源所有者根据自身情况进行定义。

3.根据权利要求1所述基于区块链具有隐私保护的物联网访问控制方法,其特征是,步骤11中,满足认证访问条件的判定即判断是否同时满足如下条件:(1)查询授权合约内的地址和角色信息,看是否与访问请求交易中对应的访问请求者的ID、地址和角色相匹配;

(2)向网关查询是否存在访问请求交易中想要访问的物联网设备;

(3)将查询到的角色信息与访问操作进行匹配,判断该角色是否满足对应物联网设备和对应操作的访问权限。

说明书 :

基于区块链具有隐私保护的物联网访问控制方法

技术领域

[0001] 本发明涉及物联网技术领域,具体涉及一种基于区块链具有隐私保护的物联网访问控制方法。

背景技术

[0002] 随着物联网的发展,物联网在不同的市场占有越来越重要的影响力。物联网的安全和隐私问题一直是物联网发展面临的一项挑战。对于物联网设备的动态性以及CPU、内
存、电力限制等问题,传统的集中式访问控制系统已经无法满足物联网访问控制需求。
[0003] 随着区块链技术的发展,为物联网的访问控制提供了一种新的解决方案。目前有很多利用区块链技术的去中心化和不可篡改的特点,所提出的解决物联网安全和隐私问题
的方案,能够实现物联网去中心化和可信的访问控制。然而,在现有基于区块链技术的访问
控制方案中,由于区块链的交易数据和信息是公开透明的,因此当用户请求访问时,每次的
访问记录在区块链上都是公开透明的,这不仅严重侵犯的用户的隐私,而且会面临隐私泄
露问题。为此,需要引入更细粒度的访问控制策略。

发明内容

[0004] 本发明所要解决的是现有基于区块链技术的访问控制方法存在隐私泄露的问题,提供一种基于区块链具有隐私保护的物联网访问控制方法。
[0005] 为解决上述问题,本发明是通过以下技术方案实现的:
[0006] 基于区块链具有隐私保护的物联网访问控制方法,包括步骤如下:
[0007] 步骤1、资源所有者创建授权合约,并生成授权合约交易;
[0008] 步骤2、资源所有者利用零知识证明对授权合约交易进行加密,生成加密授权合约交易和授权合约证明,并将加密授权合约交易和授权合约证明上传到区块链;
[0009] 步骤3、区块链的共识节点接收到加密授权合约交易和授权合约证明后,对授权合约证明进行验证:
[0010] 如果验证通过,则该共识节点将加密授权合约交易载入可信环境进行上链存储,并广播该加密授权合约交易的ID和存储地址;
[0011] 如果验证不通过,则该共识节点广播交易失败消息;
[0012] 步骤4、资源所有者创建认证合约,并生成认证合约交易;
[0013] 步骤5、资源所有者利用零知识证明对认证合约交易进行加密,生成加密认证合约交易和认证合约证明,并将加密认证合约交易和认证合约证明上传到区块链;
[0014] 步骤6、区块链的共识节点接收到加密认证合约交易和认证合约证明后,对认证合约证明进行验证:
[0015] 如果验证通过,则该共识节点将加密认证合约交易载入可信环境进行上链存储,并广播该加密认证合约交易的ID和存储地址;
[0016] 如果验证不通过,则该共识节点广播交易失败消息;
[0017] 步骤7、访问请求者向资源所有者发送角色授权请求;
[0018] 步骤8、资源所有者在收到角色授权请求后,生成角色授权交易去调用授权合约,并利用零知识证明对角色授权交易进行加密,生成加密角色授权交易和角色授权证明,并
将加密角色授权交易和角色授权证明上传区块链;
[0019] 步骤9、区块链的共识节点在收到加密角色授权交易和角色授权证明后,对角色授权证明进行验证:
[0020] 如果验证通过,则分为两种情况:
[0021] ①对于内部访问请求者:该共识节点将加密角色授权交易载入可信执行环境中的授权合约,授权合约直接将访问请求者的地址和角色信息保存到授权合约中,完成访问请
求者的角色授权,并广播授权结果;
[0022] ②对于外部访问请求者:该共识节点将加密角色授权交易载入可信执行环境中的授权合约,授权合约对加密角色授权交易进行是否满足授予角色条件的判定:若满足,则将
访问请求者的地址和角色信息保存到授权合约中,完成访问请求者的角色授权,并广播授
权结果;否则,广播交易失败消息;
[0023] 如果验证不通过,则该共识节点广播交易失败消息;
[0024] 步骤10、完成访问请求者的角色授权后,访问请求者生成访问请求交易去调用认证合约,并利用零知识证明对访问请求交易进行加密,生成加密访问请求交易和访问请求
证明,并将加密访问请求交易和访问请求证明上传到区块链;
[0025] 步骤11、区块链的共识节点接收到加密访问请求交易和访问请求证明后,对访问请求证明进行验证:
[0026] 如果验证通过,则该共识节点将加密访问请求交易载入可信执行环境中的认证合约,认证合约对加密访问请求交易进行是否满足认证访问条件的判定,若满足,则将访问请
求者的地址和访问操作发送给网关,并广播认证结果;否则,广播交易失败消息;
[0027] 如果验证不通过,则该共识节点广播交易失败消息;
[0028] 步骤12、网关收到访问请求者的地址和访问操作后,将访问请求者的地址和访问操作发送给对应的物联网设备;物联网设备响应访问操作,并根据访问请求者的地址返回
访问结果给访问请求者。
[0029] 上述步骤9中,满足授予角色条件由资源所有者根据自身情况进行定义。
[0030] 上述步骤11中,满足认证访问条件的判定即判断否同时满足如下条件:
[0031] (1)查询授权合约内的地址和角色信息,看是否与访问请求交易中对应的访问请求者的ID、地址和角色相匹配;
[0032] (2)向网关查询是否存在访问请求交易中想要访问的物联网设备;
[0033] (3)将查询到的角色信息与访问操作进行匹配,判断该角色是否满足对应物联网设备和对应操作的访问权限。
[0034] 与现有技术相比,本发明提出一种利用零知识证明保护隐私的角色访问控制方法。采用零知识证明算法对交易进行加密,生成证明π,这样即可以保护交易的隐私,又能让
共识节点进行验证达成共识。然后利用可信执行环境,确保智能合约(授权合约和认证合
约)和相关数据的安全。同时,结合角色访问控制模型,对访问请求者进行分类,赋予不同访
问请求者不同的权限,来实现细粒度的访问控制。本发明能够保护用户的数据隐私和访问
记录隐私,确保不会因为区块链数据的透明性而泄露用户的隐私。

附图说明

[0035] 图1为基于区块链具有隐私保护的物联网访问控制方法的框架示意图;
[0036] 图2为基于区块链具有隐私保护的物联网访问控制方法的流程图;

具体实施方式

[0037] 为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,并参照附图,对本发明进一步详细说明。
[0038] 参见图1和2,基于区块链具有隐私保护的物联网访问控制方法,其具体包括如下步骤:
[0039] 步骤1:资源所有者创建授权合约(Authorization Contract),并通过线下编译器编写该授权合约,实现授权合约的授予角色、添加角色、删除角色等功能。
[0040] 资源所有者是物联网设备的拥有者。
[0041] 授权合约用于赋予访问请求者角色和对应的权限。针对内部成员,资源所有者可以通过交易直接添加、删除角色信息。针对外部成员,访问请求者可以通过发送交易给授权
合约请求相应的角色,由共识节点将交易载入授权合约,授权合约进行判断是否满足授予
对应角色的条件。
[0042] 授权合约的格式为:
[0043] function Grantrole(address userAddress,string userRole){}//授予外部访问者角色
[0044] function Addrole(address userAddress,string userRole,string userNotes){}//添加内部访问者角色
[0045] function Removerole(address userAddress,string userRole){}//资源所有者删除角色。
[0046] 步骤2:资源所有者将授权合约进行编译生成字节码,生成授权合约交易。
[0047] 授权合约交易的格式为:
[0048]
[0049]
[0050] 步骤3:资源所有者利用零知识证明对授权合约交易进行加密,生成加密授权合约交易和授权合约证明,并将加密授权合约交易和授权合约证明上传到区块链。
[0051] 步骤3.1:设置过程:
[0052] 随机选取参数α,β,γ,δ,χ←F*,并计算σ,τ,其中:
[0053] τ=(α,β,γ,δ,χ)
[0054]
[0055] 步骤3.2:证明过程:
[0056] 随机选取参数r和s,并计算π,其中:
[0057] π=Πσ=(A,B,C):
[0058]
[0059]
[0060]
[0061] 步骤3.3:加密授权合约交易C和授权合约证明π上传到区块链。
[0062] 步骤4:区块链的共识节点接收到加密授权合约交易和授权合约证明后,对授权合约证明进行验证:如果验证通过,则该共识节点将加密授权合约交易载入可信环境进行上
链存储,并广播该加密授权合约交易的ID(即编号)和存储地址;如果验证不通过,则该共识
节点广播交易失败消息。
[0063] 对授权合约证明进行验证,即判断下式是否成立:
[0064]
[0065] 如果上式成立,表明验证通过;如果上式不成立,表明验证不通过。
[0066] 可信执行环境:简称TEE,它是CPU上的一块区域。这块区域的作用是给数据和代码的执行提供一个更安全的空间,并保证它们的机密性和完整性。常见的可信执行环境有
Intel SGX,ARM TrustZone。
[0067] 步骤5:资源所有者创建认证合约(Authentication Contract),通过线下编译器编写该认证合约,实现认证合约的查找角色、查找设备、权限检查等功能。
[0068] 认证合约用于对访问请求者进行资格认证。当访问请求者向认证合约发送访问请求交易时,首先由共识节点对访问请求交易证明进行验证,验证通过后,将包含访问请求者
账户、角色、访问目标ID、操作的交易返回给认证合约。然后认证合约调用授权合约进行查
询,判断访问请求者是否拥有该角色,判断访问请求者是否具有对应的操作权限。共识节点
会实现可信执行环境,用于对交易和合约进行解析和计算,确保交易和合约的隐私不会泄
露。一些常见的可信执行环境包括Intel SGX、ARM Trustzone。
[0069] 认证合约的格式为:
[0070] function Findrole(address userAddress,string userRole){}//查找访问请求者的地址和角色
[0071] function Finddevice(string deviceID){}//查找被访问设备的ID
[0072] function Judge(string userRole,string action){}//对访问操作和角色权限进行判断。
[0073] 步骤6:资源所有者将认证合约进行编译生成字节码,生成认证合约交易。
[0074] 认证合约交易的格式为:
[0075]
[0076] 步骤7:资源所有者利用零知识证明对认证合约交易进行加密,生成加密认证合约交易和认证合约证明,并将加密认证合约交易和认证合约证明上传到区块链。
[0077] 利用零知识证明对认证合约交易进行加密的过程与利用零知识证明对授权合约交易进行加密的过程相同。
[0078] 步骤8:区块链的共识节点接收到加密认证合约交易和认证合约证明后,对认证合约证明进行验证:如果验证通过,则该共识节点将加密认证合约交易载入可信环境进行上
链存储,同时广播该加密认证合约交易的ID(即编号)和存储地址;如果验证不通过,则该共
识节点广播交易失败消息。
[0079] 对认证合约证明进行验证的方法与对授权合约证明进行验证的方法相同。
[0080] 步骤9:访问请求者向资源所有者发送角色授权请求。
[0081] 访问请求者是对物联网设备进行访问的人员,分为内部访问者和外部访问者。内部访问者是指由资源所有者赋予可以访问和管理物联网设备权限的内部人员,如物联网公
司的员工或者智能家居里的家人。外部访问者是指没有权限访问物联网设备,但是需要或
想要访问物联网设备的外部人员,如政府部门的监管人员或者合作伙伴。
[0082] 步骤10:资源所有者在收到访问请求者发送的角色授权请求后,生成角色授权交易去调用授权合约,并利用零知识证明对角色授权交易进行加密,生成加密角色授权交易
和角色授权证明,并将加密角色授权交易和角色授权证明上传区块链。
[0083] 步骤11:区块链的共识节点在收到加密角色授权交易和角色授权证明后,对角色授权证明进行验证:
[0084] 如果验证通过,则分为两种情况:
[0085] ①对于内部访问请求者:该共识节点将加密的角色授权交易载入可信执行环境中的授权合约,授权合约直接将访问请求者的地址和角色信息保存到授权合约中,完成访问
请求者的角色授权,并广播授权结果。
[0086] ②对于外部访问请求者:该共识节点将加密的角色授权交易载入可信执行环境中的授权合约,授权合约对加密角色授权交易进行是否满足授予角色条件的判定,其中角色
授予条件由资源所有者根据自身情况来定义,可以是费用,也可以是权威机构的数字签名。
若满足,则将访问请求者的地址和角色信息保存到授权合约中,完成访问请求者的角色授
权,并广播授权结果;
[0087] 否则,广播交易失败消息;
[0088] 如果验证不通过,则该共识节点广播交易失败消息。
[0089] 步骤12:完成访问请求者的角色授权后,访问请求者生成访问请求交易去调用认证合约,并利用零知识证明对访问请求交易进行加密,生成加密访问请求交易和访问请求
证明,并将加密访问请求交易和访问请求证明上传到区块链。
[0090] 步骤13:区块链的共识节点接收到加密访问请求交易和访问请求证明后,对访问请求证明进行验证:
[0091] 如果验证通过,则该共识节点将加密访问请求交易载入可信执行环境中的认证合约,认证合约对加密访问请求交易进行是否满足认证访问条件的判定,即是否同时满足如
下条件:(1)查询授权合约内的地址和角色信息,看是否与访问请求交易中对应的访问请求
者的ID、地址和角色相匹配;(2)向网关查询是否存在访问请求交易中想要访问的物联网设
备;(3)将查询到的角色信息与访问操作进行匹配,判断该角色是否满足对应物联网设备和
对应操作的访问权限;
[0092] 若满足,则将访问请求者的地址和访问操作发送给网关,并广播认证结果;
[0093] 否则,广播交易失败消息;
[0094] 如果验证不通过,则该共识节点广播交易失败消息。
[0095] 步骤14:网关收到访问请求者的地址和访问操作后,将访问请求者的地址和访问操作发送给对应的物联网设备;物联网设备响应访问操作,并根据访问请求者的地址返回
访问结果给访问请求者。
[0096] 需要说明的是,尽管以上本发明所述的实施例是说明性的,但这并非是对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本发明原理的情况下,凡是
本领域技术人员在本发明的启示下获得的其它实施方式,均视为在本发明的保护之内。