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)将查询到的角色信息与访问操作进行匹配,判断该角色是否满足对应物联网设备和对应操作的访问权限。