本发明属于物联网技术领域,涉及一种基于fabric区块链的物联网数据存储和设备访问控制方法。
背景技术:
传统的访问控制中心化,应用在物联网时,随着物联网设备急剧增长,可能会导致单点故障,可能会造成隐私泄漏等问题,给物联网系统带来了新的安全风险和挑战,数据安全问题变得越来越重要。访问控制是保证安全数据的重要技术之一,传统的访问控制技术,例如基于身份的访问控制(ibac),自主访问控制(dac)等不适合在iot系统中实施访问控制,因为由于大量未知身份,几乎不可能为iot系统中的每个人创建访问控制列表(acl)。另一种常见的技术,强制访问控制(mac)通常由中央管理员实施,存在单点故障的问题。由于物联网设备由于其位置或功能而可能属于不同的组织机构,不同组织设备数据之间的共享和协作存在很大的问题。结合隐私泄漏,单点故障等问题考虑,集中式的访问控制不适合应用在物联网上。
区块链是一种去中心化的分布式技术,是一种以密码学算法为基础的点对点分布式账本技术,是一种互联网上的共享数据库技术。区块链从技术上解决了基于信任的中心化模型带来的安全问题,它基于密码学算法保证价值的安全转移,基于哈希链及时间戳机制保证数据的可追溯、不可篡改特性,基于共识算法保证节点间区块数据的一致性。fabric区块链的权限管理和链码组件保证了物联网数据的访问策略和物联网存储数据真实性。
技术实现要素:
有鉴于此,本发明的目的在于提供一种基于联盟区块链的物联网数据存储和设备访问控制方法,是一种可以应用在物联网系统的分布式访问控制方法,对在同一个联盟中不同组织的设备间进行了访问控制的管理,并能够保证大量物联网数据的存储和保障查询到的原始物联网数据的真实性。
为达到上述目的,本发明提供如下技术方案:
一种基于fabric区块链的物联网数据存储和设备访问控制方法,包括以下步骤:
s1:选取多个区块链节点搭建fabric联盟区块链网络;
s2:不同组织的物联网设备进行无线传感网络组网;
s3:引入管理中心代表组织内物联网设备与fabric联盟区块链网络进行交互;
s4:利用fabric联盟区块链的多通道特性,将多个不同组织间商定的业务逻辑编成的链码部署在peer节点,并在不同的通道上进行实例化;
s5:管理中心按照既定规则对存储的物联网数据进行分组哈希计算,将哈希值存储在merkle树非叶节点中,如此递归,直到最后得出唯一的根哈希值上传至fabric联盟区块链中进行保存;最终写入fabric联盟区块链中的只是merkle树的根节点中的根哈希值,成为后续查询验证原始数据真实性的唯一凭证。
进一步,步骤s1中搭建的是hyperledgerfabric区块链网络,区块链节点为主机或服务器。
进一步,所述管理中心负责单个或多个组织的物联网数据的收集存储;不同组织的认证中心ca节点根据组织管理员通过区块链节点注册的iot设备创建身份,以供组织管理员进行身份管理,注册成功后,组织管理员收到iot设备的地址,在制定物联网设备访问控制策略中,该地址标识不同组织的iot设备。
进一步,所述fabric联盟区块链中拥有多个不同组织,不同组织之间拥有不同的访问控制策略,引用多通道机制,不同通道实例化不同的链码。
进一步,不同组织间iot设备访问控制通过管理中心向fabric区块链请求设备的访问控制策略,包括:org1.s1设备向org2.s2设备资源发出访问请求,s1发出coap消息给管理中心;管理中心将s1的请求访问s2的coap消息转换成rpc消息,发送到与之相连的区块链节点;区块链节点通过区块链网络查询链码,返回org2.s2设备的访问控制策略给s2的管理中心;该管理中心将s2设备的访问控制策略发送给s2,s2设备根据访问控制策略予以对s1设备的访问请求进行拒绝或允许操作。
进一步,步骤s5中,管理中心将所存储的原始数据按照既定规则分组哈希计算的根哈希值通过调用sdk向fabric区块链网络发起交易提案,经过节点的认证,共识排序,提交等最终存储在区块链上,从而达到数据永久保存且不可篡改;管理中心提供原始数据api接口供查询使用。
进一步,通过管理中心查询到的所需原始数据根哈希值与区块链存储的根哈希值对比验证物联网数据的真实性,包括以下步骤:
步骤一:通过调用管理中心api,查询到所需某一时间段的原始数据和该阶段的根哈希值;
步骤二:将查询到的根哈希值与区块链中存储的根哈希值进行对比验证,从而提供数据的真实性的客观认证的判断;
步骤三:若根哈希值一致,原始数据真实可信,否则,数据被篡改,舍弃。
本发明的有益效果在于:
第一,解决了物联网中不同组织间的资源受限设备的访问控制;
第二,提出了一种新的去中心化的基于fabric区块链的物联网设备访问控制方法和验证物联网数据真实性的方法;
第三,本发明避免了大量物联网原始数据存储在区块链上,只将原始数据的根哈希值存储在区块链,避免了区块链因大量冗余数据造成响应迟缓;
第四,引入了管理中心代替不同组织的物联网设备和区块链网络进行交互。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
附图说明
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作优选的详细描述,其中:
图1为本发明中物联网数据存储和设备访问控制模型;
图2为本发明中区块链中物联网数据存储方式示意图;
图3为本发明中不同组织iot设备之间访问流程图;
图4为本发明中验证物联网数据真实性流程图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本发明的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描述中,需要理解的是,若有术语“上”、“下”、“左”、“右”、“前”、“后”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本发明的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
本发明的一种基于fabric区块链的物联网数据存储和设备访问控制方法,包括:
利用主机或服务器作为区块链节点,搭建hyperledgerfabric区块链网络,启动运行byfn示例网络;
根据联盟需要添加新的组织到byfn示例网络,生成msp文件与组织定义文件;
不同组织的认证中心ca会根据组织管理员通过区块链节点注册的iot设备创建身份,以供组织管理员进行身份管理,注册成功后,组织管理员会收到iot设备的地址,在物联网设备访问控制中,该地址标识不同组织的iot设备;
如图1所示是本发明基于fabric区块链的物联网设备访问控制模型示意图,该模型使用区块链技术存储和分发访问控制策略,图中所示无线传感网络和管理中心不属于区块链网络的一部分。
联盟组织间共同商议关于不同组织的iot设备访问控制权限的一致业务逻辑;
利用golang编写链码,处理不同组织的iot设备访问控制策略及允许的操作,根据组织加入的通道不同,可以开发多个链码;
将链码多次部署安装在所有的背书节点上,并在不同的通道上进行实例化;
不同组织间iot设备访问控制通过管理中心向fabric区块链请求设备的访问控制策略,如org1.s1设备向org2.s2设备资源发出访问请求,s1发出coap消息给管理中心;
管理中心将s1的请求访问s2的coap消息转换成rpc消息,发送到与之相连的区块链节点;
区块链节点通过区块链网络查询链码,返回org2.s2设备的访问控制策略给s2的管理中心;
该管理中心将s2设备的访问控制策略发送给s2,s2设备根据访问控制策略予以对s1设备的访问请求进行拒绝或允许操作,如图2所示。
本发明的验证所查询到的物联网数据真实性方法,包括:
将组织物联网数据上传至组织管理中心,进行存储管理;
管理中心设置数据哈希规则,每隔固定的时间段,管理中心将采集到的数据进行分组哈希计算,并将生成的新哈希值插入到merkle树中,如此递归,直到最后得出唯一的根哈希值并进行保存,如图3所示;
管理中心将所得根哈希值通过调用sdk向fabric区块链网络发起交易提案,经过节点的认证,共识排序,提交等最终存储在区块链上,从而达到数据永久保存且不可篡改;
管理中心提供原始数据api接口供查询使用
通过查询到的根哈希值与区块链存储的根哈希值对比验证物联网数据的真实性,主要通过以下步骤,如图4所示:
步骤一:通过调用管理中心api,查询到所需某一时间段的原始数据和该阶段的根哈希值;
步骤二:将查询到的根哈希值与区块链中存储的根哈希值进行对比验证,从而提供数据的真实性的客观认证的判断;
步骤三:若一致,原始数据真实可信,否则,数据被篡改,舍弃。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
1.一种基于fabric区块链的物联网数据存储和设备访问控制方法,其特征在于:包括以下步骤:
s1:选取多个区块链节点搭建fabric联盟区块链网络;
s2:不同组织的物联网设备进行无线传感网络组网;
s3:引入管理中心分别代表不同组织物联网设备与fabric联盟区块链网络进行交互;
s4:利用fabric联盟区块链的多通道特性,将多个不同组织间商定的业务逻辑编成的链码部署在peer节点,并在不同的通道上进行实例化;
s5:管理中心按照既定规则对存储的物联网数据进行分组哈希计算,将哈希值存储在merkle树非叶节点中,如此递归,直到最后得出唯一的根哈希值上传至fabric联盟区块链中进行保存;最终写入fabric联盟区块链中的只是merkle树的根节点中的根哈希值,成为后续查询验证原始数据真实性的唯一凭证。
2.根据权利要求1所述的基于fabric区块链的物联网数据存储和设备访问控制方法,其特征在于:步骤s1中搭建的是hyperledgerfabric区块链网络,区块链节点为主机或服务器。
3.根据权利要求1所述的基于fabric区块链的物联网数据存储和设备访问控制方法,其特征在于:所述管理中心负责所属单个组织的物联网数据的收集存储;不同组织的认证中心ca节点根据组织管理员通过区块链节点注册的iot设备创建身份,以供组织管理员进行身份管理,注册成功后,组织管理员收到iot设备的地址,在制定物联网设备访问控制策略中,该地址标识不同组织的iot设备。
4.根据权利要求1所述的基于fabric区块链的物联网数据存储和设备访问控制方法,其特征在于:所述fabric联盟区块链中拥有多个不同组织,不同组织之间拥有不同的访问控制策略,引用fabric联盟链多通道机制,不同通道实例化不同的链码。
5.根据权利要求1所述的基于fabric区块链的物联网数据存储和设备访问控制方法,其特征在于:不同组织间iot设备访问控制通过管理中心向fabric区块链请求设备的访问控制策略,包括:org1.s1设备向org2.s2设备资源发出访问请求,s1发出coap消息给管理中心;管理中心将s1的请求访问s2的coap消息转换成rpc消息,发送到与之相连的区块链节点;区块链节点通过区块链网络查询相应的访问控制策略链码,返回org2.s2设备的访问控制策略给s2的管理中心;该管理中心将s2设备的访问控制策略发送给s2,s2设备根据访问控制策略予以对s1设备的访问请求进行拒绝或允许操作。
6.根据权利要求1所述的基于fabric区块链的物联网数据存储和设备访问控制方法,其特征在于:步骤s5中,管理中心将所得根哈希值通过调用sdk向fabric区块链网络发起交易提案,经过节点的认证,共识排序,提交,最终存储在区块链分布式账本上,从而达到数据永久保存且不可篡改;管理中心提供原始数据api接口供查询使用。
7.根据权利要求1所述的基于fabric区块链的物联网数据存储和设备访问控制方法,其特征在于:通过查询到的原始数据根哈希值与区块链存储的根哈希值对比验证物联网数据的真实性,包括以下步骤:
步骤一:通过调用管理中心api,查询到想要查询的某一时间段的数据和该阶段的根哈希值;
步骤二:将查询到的根哈希值与区块链中存储的根哈希值进行对比验证,从而提供数据的真实性的客观认证的判断;
步骤三:若一致,原始数据真实可信,否则,数据被篡改,舍弃。
技术总结