基于区块链的物联网终端数据上链方法及系统与流程

文档序号:24236011发布日期:2021-03-12 13:08阅读:58来源:国知局
基于区块链的物联网终端数据上链方法及系统与流程

本发明涉及物联网与区块链交叉领域,尤其涉及一种基于区块链的物联网终端数据上链方法及系统。



背景技术:

区块链是一种分布式记账技术。由于区块链具有去中心化,不可篡改,无需第三方信任担保的优点而得到广泛重视。物联网随着互联网等信息化技术的提高也进入高速发展时代。

区块链与物联网皆是未来技术的发展方向,如何将区块链技术与物联网结合,进而提升人们的生产生活质量,成为当前的主要研究方向。

在当前的物联网终端数据上链系统中,采用直接在物联网终端中存储公私钥,由传感器采集的数据通过终端设备中的私钥签名后直接上链,而这种公私钥的存储方式存在着一旦终端设备被攻破,私钥即刻泄漏的弊端。



技术实现要素:

为了解决上述现有技术中物联网终端数据上链存在私钥泄露风险的缺陷,本发明提出了一种基于区块链的物联网终端数据上链方法及系统。

本发明的目的之一采用以下技术方案:

一种基于区块链的物联网终端数据上链方法,包括以下步骤:

s1、获取物联网原始数据并进行处理,将处理后的数据传送至云端平台保存;

s2、对处理后的数据进行哈希计算,获得哈希值,并将哈希值封装成交易包;

s3、在可信执行环境中使用私钥对交易包进行签名,私钥采用不可读取的方式存储在可信执行环境中;

s4、将签名后的交易包与公钥结合后发送至区块链集群。

优选的,在步骤s4之后还包括步骤s5:对云端数据进行哈希计算,获得云端数据哈希值;通过云端数据哈希值与区块链集群中存储的哈希值的对比结果,判断云端数据是否为伪造数据;所述判断方法为:如果某云端数据哈希值与区块链集群中存储的某一哈希值一致,则判断该云端数据为真实数据;如果某云端数据哈希值与区块链集群中存储的任一哈希值均不一致,则判断该云端数据为伪造数据。

优选的,可信执行环境由sim卡提供。

优选的,在步骤s1之前还包括步骤s0:在sim卡提供的可信执行环境中根据初始化指令生成公钥和私钥,并将公钥与sim卡的imsi值的对应关系保存到区块链集群,私钥采用不可读取的方式存储在可信执行环境中;

在步骤s5之后还包括步骤s6:根据云端数据哈希值在区块链集群中的搜索结果,获取云端数据哈希值对应的公钥,并结合公钥与imsi值的对应关系,获取该云端数据对应的sim卡。

优选的,区块链集群中设有用于存储公钥与imsi值的对应关系的对应列表,对应列表中罗列有与所述区块链集群通信的sim卡的imsi值;步骤s0具体为:在sim卡提供的可信执行环境中根据初始化指令生成公钥和私钥,在对应列表中查询该sim卡对应的imsi值,并将所述公钥写入对应列表中该imsi值对应的位置。

本发明的目的之二采用以下技术方案:

一种基于区块链的物联网终端数据上链系统,包括第三模块;第三模块用于使用私钥为第二模块发送的交易包进行签名,并将签名后的交易包返回第二模块;

其中,第二模块用于接收第一模块发送的哈希值,并将哈希值封装成交易包;第二模块还用于将签名后的交易包与公钥结合后发送给区块链集群;第一模块用于获取物联网原始数据并进行哈希计算,生成哈希值。

优选的,私钥采用不可读取的方式存储在第三模块中,第三模块在可信执行环境中运行。

优选的,可信执行环境由sim卡提供,第三模块还用于根据初始化指令生成公钥与私钥;第二模块还用于向第三模块发送初始化指令,并获取第三模块返回的公钥和sim卡的imsi值;第二模块用于将公钥和imsi值的对应关系发送到区块链进行保存。

优选的,还包括第四模块;第二模块还用于将哈希值以及对应公钥关联后存储到区块链集群;

第四模块还用于获取待验证云端数据,第四模块获取通过第一模块相同的哈希计算方式对待验证云端数据进行计算,获得的云端数据哈希值;第四模块用于将云端数据哈希值与区块链集群中存储的哈希值进行对比,并根据对比结果判断待验证云端数据是否为伪造数据。

优选的,第四模块还用于获取通过验证的云端数据哈希值对应的公钥,并结合公钥和imsi值的对应关系对所述云端数据进行溯源。

本发明的优点在于:

(1)本发明中,将交易包签名与交易包的封装和发送进行分离,将私钥采用不可读取的方式存储在可信执行环境中,避免了私钥被读取泄露的可能。

(2)本发明中,将sim卡的唯一标识imsi与链上保存的公钥绑定,故而使得云端存储的数据都可以根据链上哈希值溯源至原始物联网设备的sim卡。

(3)本发明中,云端数据在使用时,可通过比对云端数据生成的哈希值与区块链中存储的哈希值,从而确认数据是否为原始数据,防止数据不会在存储或网络传输过程中被篡改。

附图说明

图1为实施例1提出的一种基于区块链的物联网终端数据上链方法流程图;

图2为实施例2提出的一种基于区块链的物联网终端数据上链方法流程图;

图3为实施例3提出的一种基于区块链的物联网终端数据上链方法流程图;

图4为实施例4提出的一种基于区块链的物联网终端数据上链系统模块图。

具体实施方式

本发明中的部分名词定义如下:

区块链集群:由多个区块链节点构成的集群。

物联网原始数据:由物联网设备直接采集上传的数据;物联网设备可以是摄像头、传感器、智能家居设备等。

实施例1

本实施例提出的一种基于区块链的物联网终端数据上链方法,包括以下步骤。

s1、获取物联网原始数据并进行处理,将处理后的数据传送至云端平台保存。

s2、对处理后的数据进行哈希计算,获得哈希值,并将哈希值封装成交易包。

s3、在可信执行环境中使用私钥对交易包进行签名,私钥采用不可读取的方式存储在可信执行环境中。

s4、将签名后的交易包与公钥结合后发送至区块链集群。本步骤具体为,将签名后的交易包与公钥打包后发送到区块链集群保存,即将签名后的交易包与公钥按区块链的api(applicationprogramminginterface,应用程序接口)规定格式封装成交易请求。

具体的,本步骤中,采用现有的方法,将打包后的交易包与公钥发送到区块链集群中的某一个区块链节点上。

本实施方式中,将交易包签名与交易包的封装和发送进行分离,将私钥采用不可读取的方式存储在可信执行环境中,避免了私钥被读取泄露的可能。

实施例2

本实施例提出的一种基于区块链的物联网终端数据上链方法,包括以下步骤。

s1、获取物联网原始数据并进行处理,将处理后的数据传送至云端平台保存。

s2、对处理后的数据进行哈希计算,获得哈希值,并将哈希值封装成交易包。

s3、在可信执行环境中使用私钥对交易包进行签名,私钥采用不可读取的方式存储在可信执行环境中。

s4、将签名后的交易包与公钥结合后发送至区块链集群。

s5、对云端数据进行哈希计算,获得云端数据哈希值;通过云端数据哈希值与区块链集群中存储的哈希值的对比结果,判断云端数据是否为伪造数据。

本步骤s5中的云端数据为存储在云端平台的数据,可能是步骤s1中处理后传输到云端平台进行保存的数据,该数据记作真实数据;所述云端数据也可能是真实数据被篡改后生成的伪造数据。

本步骤s5实现了对云端数据是否真实的验证。具体的,本步骤s5中,如果区块链集群中存在与云端数据哈希值一致的哈希值,则表示该云端数据为真实数据,即步骤s1中上传到云端平台的数据;如果区块链集群中不存在与云端数据哈希值一致的哈希值,则表示该云端数据为伪造数据。

具体实施时,可信执行环境可由sim卡提供。

实施例3

本实施例提出的一种基于区块链的物联网终端数据上链方法,包括以下步骤。

s0、在sim提供的可信执行环境中根据初始化指令生成公钥和私钥,并将公钥与sim卡的imsi值的对应关系保存到区块链集群,私钥采用不可读取的方式存储在可信执行环境中。

具体的,区块链集群中设有用于存储公钥与imsi值的对应关系的对应列表,对应列表中罗列有与所述区块链集群通信的sim卡的imsi值。本步骤s0具体为:在sim卡提供的可信执行环境中根据初始化指令生成公钥和私钥,在对应列表中查询该sim卡对应的imsi值,并将所述公钥写入对应列表中该imsi值对应的位置。

s1、获取物联网原始数据并进行处理,将处理后的数据传送至云端平台保存。

s2、对处理后的数据进行哈希计算,获得哈希值,并将哈希值封装成交易包。

s3、在可信执行环境中使用私钥对交易包进行签名。

s4、将签名后的交易包与公钥结合后发送至区块链集群。

s5、对云端数据进行哈希计算,获得云端数据哈希值;通过云端数据哈希值与区块链集群中存储的哈希值的对比结果,判断云端数据是否为伪造数据。

s6、根据云端数据哈希值在区块链集群中的搜索结果,获取云端数据哈希值对应的公钥,并结合公钥与imsi值的对应关系,获取该云端数据对应的sim卡。本步骤中,只有对云端数据的真实数据,才能追溯到对应的sim卡。

具体的,本实施例中通过步骤s0和步骤s6的结合,为云端数据的溯源提供了路径。

本实施例中,当需要对云端数据进行溯源时,首先通过步骤s5验证云端数据是否为真实数据,是,则进一步在区块链集群中获取云端数据对应的哈希值和公钥,再从对应列表中获取该公钥对应的imsi值,从而追溯到上传该云端数据的客户端。

实施例4

本实施例提供了一种基于区块链的物联网终端数据上链系统,至少包括第二模块或者第三模块,还可包括第一模块。

具体的,本实施例中,第一模块用于获取物联网原始数据并进行哈希计算,生成哈希值。

第二模块用于接收第一模块发送的哈希值,并将哈希值封装成交易包。第二模块还用于将交易包发送给第三模块进行私钥签名,并将第三模块返回的签名后的交易包与公钥结合后发送给区块链集群。

第三模块中存储有私钥,并用于使用私钥为第二模块发送的交易包进行签名,将签名后的交易包返回第二模块。

本实施例中,通过第二模块接收第一模块发送的哈希值,并通过第二模块将签名后的交易包发送给区块链集群。如此,将用于给交易包签名的第三模块与通信环境隔离,从而保证私钥的安全,防止私钥泄露。

具体的,本实施例中,第二模块还用于向第三模块发送初始化指令,第三模块用于根据初始化指令生成公钥与私钥,第三模块将公钥返回第二模块。

本实施例中,第三模块可在sim卡中运行,使得私钥不可读取的存储在sim卡中。sim卡为第三模块提供了可信执行环境,进一步保证了私钥的安全。

本实施例中,第三模块向第二模块返回公钥和sim卡的imsi值。第二模块用于将公钥和imsi值的对应关系发送到区块链进行保存。

实施例5

相对于实施例4,本实施例中的基于区块链的物联网终端数据上链系统,还包括第四模块。

本实施例中,第二模块还用于将哈希值以及对应公钥关联后存储到区块链集群。

第四模块还用于获取待验证云端数据,第四模块获取通过第一模块相同的哈希计算方式对待验证云端数据进行计算,获得的云端数据哈希值。具体实施时,可在第四模块中设置与第一模块相同的哈希计算规则,以便通过第四模块对待验证云端数据进行哈希计算;也可由第四模块将待验证云端数据发送给第一模块进行哈希计算后,第四模块获取第一模块反馈的哈希值作为云端数据哈希值。

第四模块用于将云端数据哈希值与区块链集群中存储的哈希值进行对比,并根据对比结果判断待验证云端数据是否为伪造数据。即,如果区块链集群中存在与云端数据哈希值一致的哈希值,则判断该待验证云端数据为真实数据;反之,则判断该待验证云端数据为伪造数据。

第四模块还用于获取通过验证的云端数据哈希值对应的公钥,并结合公钥和imsi值的对应关系对所述云端数据进行溯源。即获取云端数据哈希值对应的公钥关联的imsi值所指向的sim卡作为该云端数据的提供终端。

以上仅为本发明创造的较佳实施例而已,并不用以限制本发明创造,凡在本发明创造的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明创造的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1