基于区块链的数据存证方法及装置、电子设备与流程

文档序号:18218531发布日期:2019-07-19 22:49阅读:187来源:国知局
基于区块链的数据存证方法及装置、电子设备与流程

本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种基于区块链的数据存证方法及装置、电子设备。



背景技术:

区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。



技术实现要素:

本说明书提出一种基于区块链的数据存证方法,应用于与终端设备对接的可插拔设备;其中,所述可插拔设备搭载了安全运算环境;所述安全运算环境中存储了与所述可插拔设备对应的私钥;所述方法包括:

获取所述终端设备采集到的目标数据的数据摘要;

在所述安全运算环境中基于与所述可插拔设备对应的私钥对所述数据摘要进行签名;

将签名后的所述数据摘要发布至所述区块链,以由区块链中的节点设备基于所述私钥对应的公钥对所述数据摘要的签名进行验证,并在所述签名验证通过后,将所述数据摘要在区块链中进行数据存证。

可选的,获取所述终端设备采集到的目标数据的数据摘要,包括:

接收所述终端设备发送的由所述终端设备采集到的目标数据的数据摘要;或者,接收所述终端设备发送的由所述终端设备采集到的目标数据,并在本地计算所述目标数据进的数据摘要。

可选的,在所述安全运算环境中基于与所述可插拔设备对应的私钥对所述数据摘要进行签名,包括:

获取所述可插拔设备的使用用户输入的身份信息;

基于获取到的所述身份信息针对所述使用用户进行身份认证;

如果针对所述使用用户的身份认证通过,在所述安全运算环境中基于与所述可插拔设备对应的私钥对所述数据摘要进行签名。

可选的,所述安全运算环境中存储了密钥生成算法;

所述方法还包括:

获取所述可插拔设备的使用用户在首次使用所述可插拔设备时输入的身份信息;

基于获取到的所述身份信息针对所述使用用户进行身份认证;

如果针对所述使用用户的身份认证通过,在所述安全运算环境中调用所述密钥生成算法生成所述私钥以及公钥;以及,

将生成的所述私钥与所述使用用户的身份信息进行绑定,并将绑定关系在所述安全运算环境进行存储。

可选的,在所述安全运算环境中基于与所述可插拔设备对应的私钥对所述数据摘要进行签名,包括:

获取所述可插拔设备的使用用户输入的身份信息;

确定所述安全运算环境中是否存储了与所述身份信息绑定的私钥;

如果是,在所述安全运算环境中基于与所述身份信息绑定的私钥对所述数据摘要进行签名。

可选的,将签名后的所述数据摘要发布至所述区块链,包括:

将签名后的所述数据摘要发布至所述区块链;或者,将签名后的所述数据摘要发送至所述终端设备,以由所述终端设备将所述数据摘要发布至所述区块链。

可选的,所述终端设备包括执法记录仪或者行车记录仪;所述目标数据包括视频数据、音频数据、图像数据中的一种或者多种的组合。

可选的,所述可插拔设备搭载了usb接口;所述可插拔设备通过所述usb接口与所述终端设备实现硬件对接。

可选的,所述可插拔设备搭载了se安全计算芯片;所述安全运算环境为基于所述se安全计算芯片搭建的安全运算环境。

可选的,所述可插拔设备搭载了led指示灯;所述方法还包括:

控制所述led指示灯向用户提示所述可插拔设备的工作状态;其中,所述工作状态包括正在所述安全运算环境中执行运算的工作状态;以及,在所述安全运算环境中完成运算的工作状态。

本说明书还提出一种基于区块链的数据存证装置,应用于与终端设备对接的可插拔设备;其中,所述可插拔设备搭载了安全运算环境;所述安全运算环境中存储了与所述可插拔设备对应的私钥;所述装置包括:

获取模块,获取所述终端设备采集到的目标数据的数据摘要;

签名模块,在所述安全运算环境中基于与所述可插拔设备对应的私钥对所述数据摘要进行签名;

发布模块,将签名后的所述数据摘要发布至所述区块链,以由区块链中的节点设备基于所述私钥对应的公钥对所述数据摘要的签名进行验证,并在所述签名验证通过后,将所述数据摘要在区块链中进行数据存证。

可选的,所述获取模块:

接收所述终端设备发送的由所述终端设备采集到的目标数据的数据摘要;或者,接收所述终端设备发送的由所述终端设备采集到的目标数据,并在本地计算所述目标数据进的数据摘要。

可选的,所述签名模块:

获取所述可插拔设备的使用用户输入的身份信息;

基于获取到的所述身份信息针对所述使用用户进行身份认证;

如果针对所述使用用户的身份认证通过,在所述安全运算环境中基于与所述可插拔设备对应的私钥对所述数据摘要进行签名。

可选的,所述安全运算环境中存储了密钥生成算法;

所述装置还包括:

认证模块,获取所述可插拔设备的使用用户在首次使用所述可插拔设备时输入的身份信息;基于获取到的所述身份信息针对所述使用用户进行身份认证;

生成模块,如果针对所述使用用户的身份认证通过,在所述安全运算环境中调用所述密钥生成算法生成所述私钥以及公钥;以及,将生成的所述私钥与所述使用用户的身份信息进行绑定,并将绑定关系在所述安全运算环境进行存储。

可选的,所述签名模块:

获取所述可插拔设备的使用用户输入的身份信息;

确定所述安全运算环境中是否存储了与所述身份信息绑定的私钥;

如果是,在所述安全运算环境中基于与所述身份信息绑定的私钥对所述数据摘要进行签名。

可选的,所述发布模块:

将签名后的所述数据摘要发布至所述区块链;或者,将签名后的所述数据摘要发送至所述终端设备,以由所述终端设备将所述数据摘要发布至所述区块链。

可选的,所述终端设备包括执法记录仪或者行车记录仪;所述目标数据包括视频数据、音频数据、图像数据中的一种或者多种的组合。

可选的,所述可插拔设备搭载了usb接口;所述可插拔设备通过所述usb接口与所述终端设备实现硬件对接。

可选的,所述可插拔设备搭载了se安全计算芯片;所述安全运算环境为基于所述se安全计算芯片搭建的安全运算环境。

可选的,所述可插拔设备搭载了led指示灯;所述装置还包括:

控制模块,控制所述led指示灯向用户提示所述可插拔设备的工作状态;其中,所述工作状态包括正在所述安全运算环境中执行运算的工作状态;以及,在所述安全运算环境中完成运算的工作状态。

本说明书还提出一种可插拔设备,包括:

处理器;

用于存储机器可执行指令的存储器;

其中,通过读取并执行所述存储器存储的与基于区块链的基于区块链的数据存证的控制逻辑对应的机器可执行指令,所述处理器被促使:

获取终端设备采集到的目标数据的数据摘要;其中,所述可插拔设备与所述终端设备对接;所述可插拔设备搭载了安全运算环境;所述安全运算环境中存储了与所述可插拔设备对应的私钥;

在所述安全运算环境中基于与所述可插拔设备对应的私钥对所述数据摘要进行签名;

将签名后的所述数据摘要发布至所述区块链,以由区块链中的节点设备基于所述私钥对应的公钥对所述数据摘要的签名进行验证,并在所述签名验证通过后,将所述数据摘要在区块链中进行数据存证。

在以上技术方案中,一方面,由于可插拔设备搭载了安全运算环境,并且在该安全运算环境中存储了与可插拔设备对应的私钥;因此通过将可插拔设备与终端设备进行硬件对接,就可以便捷的为终端设备提供安全的运算环境;使得可插拔设备可以作为通用的安全硬件,与不同的终端设备进行硬件对接,为不同的终端设备提供安全的运算环境;而且,当终端设备需要将采集到的数据在区块链上进行存证时,可以在可插拔设备上搭载的安全运算环境中,利用存储的私钥对终端设备采集到的数据进行签名,并将签名后的数据发布至区块链进行数据存证,从而可以避免在区块链上存证的数据在传播过程中被非法篡改,保障在区块链上存证数据时的数据安全;

另一方面,通过对区块链上进行数据存证的流程进行改进,终端设备可以不再需要将采集到的数据的原始内容在区块链上存证,而是将采集到的数据的原始内容的数据摘要在区块链上存证,使得终端设备可以作为物理世界和链上世界的枢纽,更加便捷的将采集到的数据在区块链上进行存证;而且,对于获得终端设备采集到的数据的第三方而言,由于通过将获得的数据的数据摘要,与在区块链上存证的该数据的数据摘要进行匹配,就可以便捷的对获得的数据进行合法性验证;因此,使得终端设备可以将采集到的数据作为证据提交给第三方,可以显著的提升终端设备采集到的数据的可用性。

附图说明

图1是一示例性实施例提供的一种基于区块链的数据存证方法的流程图;

图2是一示例性实施例提供的一种可插拔设备的硬件结构图;

图3是一示例性实施例提供的一种可插拔设备与终端设备对接的示意图;

图4是一示例性实施例提供的另一种可插拔设备与终端设备对接的示意图;

图5是一示例性实施例提供的一种电子设备的结构示意图;

图6是一示例性实施例提供的一种基于区块链的数据存证装置的框图。

具体实施方式

由于在区块链存储的数据具有不可篡改的特性,因此将数据存储在区块链上来做数据存证,是业界目前的主流趋势。

然而,在实际应用中,对于一些流数据;比如,执法记录仪或者行车记录仪采集到的视频流、音频流等数据;由于其自身所需占用的存储空间较大,则通常无法直接存储到区块链上进行存证。

但在一些场景下,这类流数据却又存在着强烈的存证需求;比如,在司法存证的场景,对于执法记录仪或者行车记录仪采集到的视频流,可能会作为证据提交给司法部门。

由于缺乏数据认证手段,这类流数据作为证据的合法性,通常会存在广泛质疑。因此,对于这类流数据,最好的处理方式还是存储在区块链上进行数据局存证;同时,还需要能够更加便捷的验证这些存证的数据作为司法证据的合法性。

基于以上需求,本说明书提出一种利用可插拔设备为终端设备搭建安全运算环境,来便捷的将终端设备采集到的数据在区块链上进行存证的技术方案。

在实现时,可以预先在可插拔设备上搭建安全运算环境,在安全运算环境中存储与可插拔设备对应的私钥,并通过将可插拔设备与终端设备进行硬件对接,将搭建完成的安全运算环境提供给终端设备;

例如,可以在可插拔设备上搭载se(secureelement,安全元件)安全计算芯片,为可插拔设备搭建安全预算环境,在安全运算环境中存储与可插拔设备对应的私钥。同时,可以在终端设备上预留诸如usb等通用接口,使得可插拔设备可以通过这些通用接口接入终端设备,与终端设备实现硬件对接,将搭建完成的安全运算环境提供给终端设备。

进一步的,终端设备在采集到需要在区块链上存证的数据之后,可插拔设备可以获取终端设备所采集到的目标数据的数据摘要;

例如,终端设备可以计算采集到的目标数据的数据摘要,再将计算出的数据摘要发送给可插拔设备;或者,终端设备可以将采集到的目标数据直接发送给可插拔设备,由可插拔设备在本地进行摘要计算,得到该目标数据的数据摘要。

可插拔设备在获取终端设备所采集到的目标数据的数据摘要之后,可以在可插拔设备搭载的安全运算环境中,基于存储的私钥,对该目标数据的数据摘要进行签名处理,然后将签名后的数据摘要发布至区块链。

例如,可以由可插拔设备直接将签名后的数据摘要发布至区块链;或者,可插拔设备也可以将签名后的数据摘要发送至终端设备,由终端设备将签名后的数据摘要发布至区块链。

区块链中的节点设备在收到发布的签名后的数据摘要之后,可以获取与该可插拔设备的私钥对应的公钥,然后基于该公钥对该数据摘要的签名进行验证;如果签名验证通过,可以将该数据摘要存储到区块链中进行数据存证。

在以上技术方案中,一方面,由于可插拔设备搭载了安全运算环境,并且在该安全运算环境中存储了与可插拔设备对应的私钥;因此通过将可插拔设备与终端设备进行硬件对接,就可以便捷的为终端设备提供安全的运算环境;使得可插拔设备可以作为通用的安全硬件,与不同的终端设备进行硬件对接,为不同的终端设备提供安全的运算环境;而且,当终端设备需要将采集到的数据在区块链上进行存证时,可以在可插拔设备上搭载的安全运算环境中,利用存储的私钥对终端设备采集到的数据进行签名,并将签名后的数据发布至区块链进行数据存证,从而可以避免在区块链上存证的数据在传播过程中被非法篡改,保障在区块链上存证数据时的数据安全;

另一方面,通过对区块链上进行数据存证的流程进行改进,终端设备可以不再需要将采集到的数据的原始内容在区块链上存证,而是将采集到的数据的原始内容的数据摘要在区块链上存证,使得终端设备可以作为物理世界和链上世界的枢纽,更加便捷的将采集到的数据在区块链上进行存证;而且,对于获得终端设备采集到的数据的第三方而言,由于通过将获得的数据的数据摘要,与在区块链上存证的该数据的数据摘要进行匹配,就可以便捷的对获得的数据进行合法性验证;因此,使得终端设备可以将采集到的数据作为证据提交给第三方,可以显著的提升终端设备采集到的数据的可用性。

下面通过具体实施例并结合具体的应用场景对本说明书进行描述。

请参考图1,图1是本说明书一实施例提供的一种基于区块链的数据存证方法,应用于与终端设备对接的可插拔设备;其中,该可插拔设备搭载了安全运算环境;该安全运算环境中存储了与该可插拔设备对应的私钥;所述方法执行以下步骤:

步骤102,获取所述终端设备采集到的目标数据的数据摘要;

步骤104,在所述安全运算环境中基于与所述可插拔设备对应的私钥对所述数据摘要进行签名;

步骤106,将签名后的所述数据摘要发布至所述区块链,以由区块链中的节点设备基于所述私钥对应的公钥对所述数据摘要的签名进行验证,并在所述签名验证通过后,将所述数据摘要在区块链中进行数据存证。

在本说明书所描述的区块链,具体可以包括私有链、共有链以及联盟链等,在本说明书中不进行特别限定。

例如,在一个场景中,上述区块链具体可以是由第三方支付平台的服务器、境内银行服务器、境外银行服务器、以及若干用户节点设备作为成员设备组成的一个联盟链。该联盟链的运营方可以依托于该联盟链,来在线部署诸如基于联盟链的跨境转账、资产转移等在线业务。

上述终端设备,可以包括能够作为节点设备加入区块链,并将采集到的数据在区块链上进行存证的任意形式的终端设备;

例如,在实际应用中,上述终端设备具体可以包括执法记录仪或者行车记录仪等。执法记录仪或者行车记录仪可以作为节点加入区块链,并将采集到的诸如视频数据、音频数据等流数据,在区块链上进行存证。

其中,将数据在区块链上进行存证,是指将数据作为证据在区块链中进行持久化存储。

上述目标数据,包括由终端设备采集到的,需要在区块链的分布式数据库中完成数据存证的任意类型的数据;

例如,上述目标数据具体可以是诸如执法记录仪或者行车记录仪等终端设备采集到的视频数据、音频数据、图像数据等流数据。

在本说明书中,可以为终端设备搭建安全运算环境,并利用搭建的安全运算环境,来存储和维护用于对终端设备需要在区块链上存证的数据进行签名的私钥。

在实现时,可以预先在可插拔设备上搭建安全运算环境,在该安全运算环境中存储与可插拔设备对应的私钥,并通过将可插拔设备与终端设备进行对接的方式,将在可插拔设备上搭建完成的安全运算环境,提供给终端设备。

通过这种方式,可以不再需要对终端设备的硬件环境进行改造,在终端设备的硬件环境中引入新的硬件来为终端设备搭建安全运算环境,而只需要通过将可插拔设备与终端设备进行、对接,就可以便捷的为终端设备提供安全的运算环境,使得可插拔设备可以作为通用的硬件与不同的终端设备进行硬件对接,为不同的终端设备提供安全的运算环境。

其中,终端设备与可插拔设备之间进行对接的具体方式,在本说明书中不进行特别限定,本领域技术人员在将本说明书的技术方案付诸实现时,可以进行灵活的选择;

在示出的一种实现方式中,可插拔设备具体可以通过终端设备上提供的硬件接口,与终端设备实现硬件对接。

当然,在实际应用中,除了以上示出的可插拔设备通过终端设备提供的硬件接口,与终端设备实现硬件对接以外,在实际应用中,也可以通过软件接口实现对接;

例如,在一种实现方式中,也可以在终端设备上提供蓝牙接口,而可插拔设备可以通过终端设备上的蓝牙接口,与终端设备建立蓝牙连接,进行无线数据通信实现对接。

其中,在终端设备的硬件环境中搭建安全运算环境的具体方式,在本说明书中也不进行特别限定。

在示出的一种实施方式中,可以采用基于se(secureelement,安全元件)的解决方案,为可插拔设备搭建安全运算环境。

在这种解决方案下,可以在可插拔设备的硬件环境中引入se安全计算芯片,利用se安全计算芯片存储和维护可插拔设备的私钥,来搭建安全运算环境。

请参见图2,图2为本说明书示出的一种可插拔设备的硬件结构图。

如图2所示,上述可插拔设备具体可以包括壳体,设置在壳体内部的pcb电路板,安装在pcb电路板上的usb接口、se安全计算芯片、以及led指示灯灯。

其中,上述se安全计算芯片与usb接口电连接,用于面向可插拔设备提供安全运算环境,存储和维护与可插拔设备对应的私钥。

上述usb接口,与上述se安全计算芯片电连接,用于与终端设备进行硬件对接;

例如,请参见图3和图4,以终端设备为便携式录音设备为例,可以在便携式录音设备上提供usb插口,在可插拔设备上提供usb接口,用户可以通过将可插拔设备上的usb接口,插入该便携式录音设备的usb插口中,与该便携式录音设备实现硬件对接。

其中,需要说明的是,本说明书中描述的usb接口,是指usb设备中作为usbslave的一端;而本说明书中描述的usb插口,是指usb设备中作为usbhost的一端。

上述led指示灯,与上述se安全计算芯片电连接,用于向用户提示可插拔设备当前的工作状态;

例如,在实现时,可以利用se安全计算芯片自身的处理能力,在se安全计算芯片中植入一些用于控制led指示灯来提示可插拔设备的工作状态的控制逻辑,通过se安全计算芯片来执行这些控制逻辑,来向用户提示可插拔设备的工作状态。

其中,在本说明书中,可插拔设备的工作状态,具体可以包括正在上述安全运算环境中执行运算的工作状态;以及,在上述安全运算环境中完成运算的工作状态。

例如,在上述安全运算环境中,基于该安全运算环境存储的私钥,对终端设备采集到的目标数据进行签名处理的过程中,可以称之为上述可插拔设备正在上述安全运算环境中执行运算的工作状态;而在上述安全运算环境中,基于该安全预算环境存储的私钥对终端设备采集到的目标数据签名处理完成后,可以称之为上述可插拔设备在上述安全运算环境中完成运算的工作状态。

需要说明的是,通过led指示灯向用户提示可插拔设备的工作状态的具体控制逻辑,本领域技术人员在将本说明书的技术方案付诸实现时,可以基于实际的需求进行定义,在本说明书中不进行特别限定;

例如,在示出的一种实现方式中,上述控制逻辑具体可以是,可插拔设备在se安全计算芯片提供的安全运算环境中执行运算的过程中,可以控制该led指示灯处于常亮的状态,来表示可插拔设备处于“正在运算中”这一工作状态;而当可插拔设备在se安全计算芯片提供的安全运算环境中完成运算后,可以控制该led指示灯处于熄灭的状态,来表示可插拔设备处于“运算结束”这一工作状态。

在示出的另一种实现方式中,上述控制逻辑具体也可以是,可插拔设备在se安全计算芯片提供的安全运算环境中执行运算的过程中,可以控制该led指示灯保持熄灭,来表示可插拔设备处于“运算中”这一工作状态;而当可插拔设备在se安全计算芯片提供的安全运算环境中完成运算后,可以控制该led指示灯按照预设的频率进行多次闪烁,来表示可插拔设备处于“运算结束”这一工作状态。

当然,在本说明书,除了通过在可插拔设备的硬件环境中,引入se安全计算芯片的方式,来为可插拔设备搭建安全运算环境以外,在实际应用中,显然也可以通过其它的方式,为可插拔设备搭载安全运算环境;

例如,在示出的一种实施方式中,可以采用基于tee(trustedexecutionenvironment,可信执行环境)的解决方案,为终端设备搭建安全运算环境。在这种解决方案下,可以对可插拔设备的硬件环境中已有的硬件(比如已有的主处理芯片)的软件环境进行改造(不需要引入额外的安全计算芯片),在该软件环境中来搭建可信执行环境,利用该可信执行环境存储和维护可插拔设备的私钥,来搭建安全运算环境。

又如,在示出的另一种实施方式,可以采用基于se+tee的解决方案,为终端设备搭建安全运算环境。在这种解决方案下,可以利用se安全计算芯片来存储和维护可插拔设备的私钥,利用tee来面向可插拔设备提供安全的运算环境。

在本说明书中,上述可插拔设备可以作为节点设备加入到区块链(也称之为设备上链),并将与该可插拔设备对应的私钥,在为该可插拔设备搭建的安全运算环境中进行存储和维护。

其中,与可插拔设备对应的私钥,具体可以是由可插拔设备持有的私钥,也可以是可插拔设备的使用用户所持有的私钥。

也即,本说明书中描述的“与可插拔设备对应的私钥”,具体可以是可插拔设备的设备生产商在设备生产阶段,为该可插拔设备生成的,并由该可插拔设备持有的私钥;也可以是由可插拔设备在用户使用该可插拔设备时,由可插拔设备自主的为该用户生成的,并由该用户个人持有的私钥。

在示出的一种实施方式中,可插拔设备持有的私钥以及公钥,可以由设备生产商在设备生产阶段为可插拔设备生成,并由设备生产商预先将该私钥写入该可插拔设备的安全运算环境中进行存储和维护。

在这种情况下,可插拔设备持有的私钥以及公钥,则与可插拔设备的使用用户的身份并不关联。对于该可插拔设备的不同的使用用户而言,可以共用由设备生产商默认写入该可插拔设备的安全运算环境中的同一个私钥。

在示出的一种实施方式中,可插拔设备持有的私钥以及公钥,也可以由可插拔设备自主的为该可插拔设备的使用用户生成,并由可插拔设备将该私钥写入该可插拔设备的安全运算环境。

在这种情况下,可插拔设备自主生成的私钥以及公钥,可以与可插拔设备的使用用户的身份相关联,可插拔设备可以基于不同的使用用户的身份信息,为不同的使用用户分别生成一对私钥和公钥,并将生成的私钥与各使用用户的身份信息分别进行绑定,然后将绑定关系在安全运算环境中进行存储和维护。

例如,在实现时,可插拔设备的生产商可以预先将密钥生成算法写入该可插拔设备的安全运算环境。当可插拔设备的使用用户在使用可插拔设备时,可插拔设备可以提示使用用户输入身份信息进行身份认证;其中,使用用户输入的身份信息的数据类型,以及可插拔设备所采用的身份认证方式,在本说明书中均不进行特别的限定;例如,可以采用诸如输入密码或者口令的传统认证方式,也可以采用诸如基于指纹或者人脸等生理特征的认证方式。

当可插拔设备获取到使用用户输入的身份信息后,可以确定安全运算环境中是否存储了与该身份信息绑定的私钥;如果安全运算环境中并未存储与该身份信息绑定的私钥,表明该使用用户为首次使用该可插拔设备的新用户,此时终端设备可以基于获取到的该身份信息对该使用用户进行身份认证;如果针对该使用用户身份认证通过,则可插拔设备可以在上述安全运算环境中调用上述密钥生成算法生成一对私钥以及公钥,并将生成的私钥与该使用用户的身份信息进行绑定,然后将绑定关系在上述安全运算环境中进行存储和维护。在本说明书中,用户可以使用终端设备进行数据采集,并在该可插拔设备上的安全运算环境中,基于该可插拔设备的私钥对采集到的数据进行签名后,发布至区块链上进行数据存证。

其中,在本说明书中,终端设备在将采集到的目标数据在区块链上进行存证时,可以仅需要将采集到的数据在本地存储,将采集到的数据的数据摘要在区块链上进行存证即可,不再需要将采集到的数据的原始内容在区块链上进行存证。

需要说明的是,在实际应用中,如果终端设备采集到的目标数据为诸如视频数据、音频数据等流数据,这类流数据在区块链上进行存证时,终端设备也可以按照预设的时间周期,对流数据进行分片存证的方式;

例如,以视频数据为例,终端设备可以将每n分钟的视频数据作为一个分片,计算该分片的数据摘要,然后将该分片的数据摘要在区块链中进行存证,并严格保证在区块链上存证的各分片的数据摘要在时间上的顺序,以便于进行回溯。

在本说明书中,终端设备在将采集到的目标数据在区块链上进行存证时,可插拔设备可以获取终端设备采集到的目标数据的数据摘要,并在安全运算环境中,基于可插拔设备持有的私钥对该目标数据的数据摘要进行签名处理。

其中,终端设备采集到的目标数据的数据摘要,具体可以由终端设备在其本地进行计算,也可以由可插拔设备在其本地进行计算。

在示出的一种实施方式中,终端设备在将采集到的目标数据在区块链上进行存证时,可以在本地计算该目标数据的数据摘要;比如,该数据摘要具体可以是基于特定的哈希算法计算该目标数据的hash值;然后,终端设备可以将计算出的该目标数据的数据摘要,发送给对接的可插拔设备;而可插拔设备可以接收终端设备发送的目标数据的数据摘要,并将接收到的目标数据的数据摘要,在安全运算环境中,基于可插拔设备持有的私钥对该目标数据的数据摘要进行签名处理。

在示出的一种实施方式中,终端设备在将采集到的目标数据在区块链上进行存证时,也可以将采集到的目标数据的原始内容发送给可插拔设备;而可插拔设备可以接收终端设备发送的目标数据,并在本地计算接收到的目标数据的数据摘要,然后在安全运算环境中,基于可插拔设备持有的私钥对计算出的目标数据的数据摘要进行签名处理。

其中,在一种场景下,如果可插拔设备的安全运算环境中存储和维护的私钥,为设备生产商在设备生产阶段为可插拔设备生成的,由可插拔设备设备持有的私钥;在这种情况下,可以引入对可插拔设备的使用用户的身份认证机制,提示使用用户输入身份信息进行身份认证;当可插拔设备获取到使用用户输入的身份信息后,可以基于获取到的身份信息对该使用用户进行身份认证;如果针对该使用用户的身份认证通过,可插拔设备可以在安全运算环境中,基于该安全运算环境中存储和维护的由该可插拔设备持有的私钥,对该数据摘要进行签名处理。在另一种场景下,如果可插拔设备的安全运算环境中存储和维护的私钥,为终端设备自主为使用用户生成的,由使用用户持有的私钥;此时,安全运算环境中预先存储和维护了使用用户的身份信息与私钥的绑定关系。

在这种情况下,当可插拔设备获取到该使用用户输入的身份信息后,可以查询安全运算环境中维护的绑定关系,确定安全运算环境中是否存储了与该身份信息绑定的私钥;如果安全运算环境中存储了该身份信息绑定的私钥,可插拔设备可以在安全运算环境中,基于查询到的该私钥,对该数据摘要进行签名处理。

当然,如果安全运算环境中并未存储与该身份信息绑定的私钥,表明该使用用户为首次使用该可插拔设备的新用户,此时可插拔设备可以基于获取到的该身份信息对该使用用户进行身份认证,并在身份认证通过后,调用安全运算环境中存储的密钥生成算法,为该使用用户生成私钥和公钥,并使用生成的私钥,对该数据摘要进行签名处理;以及,将生成的私钥与该使用用户的身份信息进行绑定,然后将绑定关系在安全运算环境中进行存储和维护。

在本说明书中,当可插拔设备在安全运算环境中,基于安全运算环境中存储的私钥,对终端设备采集到的目标数据的数据摘要进行签名处理完成之后,可以将签名后的数据摘要,在区块链中进行发布;

例如,可以基于签名后的数据摘要构建一笔区块链交易(transaction),将该交易向其它各节点设备进行广播扩散。

其中,签名后的数据摘要,可以由可插拔设备直接在区块链中进行发布,也可以由可插拔设备将签名后的数据摘要发送至终端设备,再由终端设备在区块链中进行发布。

而区块链中的节点设备在收到发布的该签名后的数据摘要后,可以获取与安全运算环境中存储的私钥对应的公钥,然后基于获取到的公钥对该数据摘要的签名进行验证;如果该数据摘要的签名验证通过,该节点设备可以在区块链中发起对该数据摘要的共识处理,并在该数据摘要共识处理通过后,将该数据摘要打包进区块在区块链中进行存储,以完成针对该数据摘要的数据存证。

其中,需要说明的是,本说明书中所描述的区块链所采用的共识机制,在本说明书中不进行特别限定,在实际应用中,区块链的运营方可以基于实际的需求来灵活的选择。

在示出的另一种实施方式中,终端设备在将采集到的目标数据时,在区块链上进行存证时,还可以将该目标数据的描述数据与该目标数据的数据摘要,一并在区块链上进行存证。

这种情况下,在可插拔设备的安全运算环境中,基于安全运算环境中存储的私钥,对该目标数据的数据摘要进行签名处理时,可以将该数据摘要和该目标数据的描述信息进行整体签名;即将数据摘要和该目标数据的描述信息进行打包后作为一个整体进行签名;然后,将签名后的数据摘要和上述目标数据的描述数据,发布至区块链进行数据存证。

例如,可以基于签名后的数据摘要和上述目标数据的描述数据构建一笔区块链交易,将该交易向其它各节点设备进行广播扩散。

或者,在另一种情况下,在可插拔设备的安全运算环境中,基于安全运算环境中存储的私钥,对该目标数据的数据摘要进行签名处理时,也可以仅针对该数据摘要进行签名;然后,将上述目标数据的描述数据,和将签名后的数据摘要,发布至区块链进行数据存证。

例如,可以基于上述目标数据的描述数据,和签名后的数据摘要来构建一笔区块链交易,将该交易向其它各节点设备进行广播扩散。

其中,上述目标数据的描述信息所包含的具体内容,在本说明书中不进行特别限定,在实际应用中,可以涵盖与上述目标数据相关的任意内容;

在示出的一种实施方式中,由于数据的采集时刻、采集地点和数据相关的对象,通常为数据作为证据文件的极其重要的属性;因此,在本说明书中,上述目标数据的描述信息,具体可以包括上述目标数据的采集时刻、采集地点、以及上述目标数据相关的对象中的一个或者多个的组合。

其中,在示出的一种实施方式中,目标数据的采集时刻,具体可以是终端设备在采集到目标数据时,与时间认证中心进行交互,从时间认证中心获取到的经过认证的权威时刻(时间戳)。目标数据的采集地点,可以是终端设备采集到目标数据时,实时调用终端设备搭载的定位模块(比如gps模块)获取到的精确采集地点。而与上述目标数据相关的对象,可以是终端设备在采集到目标数据后,由该终端设备的合法使用者手动输入的相关对象。

例如,以执法记录仪采集到的与车祸事件的取证视频数据为例,该视频数据的描述信息,具体可以包括采集到该视频数据的时刻从时间认证中心获取到的经过认证的权威时刻、采集到该视频数据的时刻执法记录仪实时调用定位模块获取到的精确采集地点、以及由执法者输入的与该视频数据相关的车辆信息、驾驶者信息等。

在以上技术方案中,一方面,由于可插拔设备搭载了安全运算环境,并且在该安全运算环境中存储了与可插拔设备对应的私钥;因此通过将可插拔设备与终端设备进行硬件对接,就可以便捷的为终端设备提供安全的运算环境;使得可插拔设备可以作为通用的安全硬件,与不同的终端设备进行硬件对接,为不同的终端设备提供安全的运算环境;

而且,当终端设备需要将采集到的数据在区块链上进行存证时,可以在可插拔设备上搭载的安全运算环境中,利用存储的私钥对终端设备采集到的数据进行签名,并将签名后的数据发布至区块链进行数据存证,从而可以避免在区块链上存证的数据在传播过程中被非法篡改,保障在区块链上存证数据时的数据安全;

例如,一台可插拔设备可以预先完成设备上链,取得作为在区块链上的身份的公私钥对,并将私钥在安全运算环境中进行维护和存储。当用户需要将一台并未上链的设备采集到的数据在区块链上存证时,用户可以通过将可插拔设备上的usb接口,插入该终端设备的usb插口中,与该终端设备实现硬件对接,将可插拔设备的安全运算环境提供给终端设备,来快捷的将该终端设备改造成一台已经上链的设备,来完成在区块链上的数据存证。进一步的,当该终端设备在完成数据存证之后,用户需要就将其它的终端设备采集到的数据在区块链上存证时,可以执行相同的操作,与上述可插拔设备进行硬件对接,来快捷的将该终端设备也改造成一台已经上链的设备。

另一方面,通过对区块链上进行数据存证的流程进行改进,终端设备可以不再需要将采集到的数据的原始内容在区块链上存证,而是将采集到的数据的原始内容的数据摘要在区块链上存证,使得终端设备可以作为物理世界和链上世界的枢纽,更加便捷的将采集到的数据在区块链上进行存证;而且,对于获得终端设备采集到的数据的第三方而言,由于通过将获得的数据的数据摘要,与在区块链上存证的该数据的数据摘要进行匹配,就可以便捷的对获得的数据进行合法性验证;因此,使得终端设备可以将采集到的数据作为证据提交给第三方,可以显著的提升终端设备采集到的数据的可用性。

例如,对于执法记录仪或者行车记录仪等终端设备,只需要将采集到的视频数据、音频数据等流数据的原始内容在本地存储,并将这些流数据的原始内容的数据摘要在区块链上存证即可,不再需要将将这些流数据的原始内容在区块链上进行存证;

而且,用户在将执法记录仪或者行车记录仪采集到的流数据作为证据提交给第三方机构(比如司法机构或者保险公司)时,第三方机构只需要重新计算获得的数据的数据摘要,将该数据的数据摘要与在区块链上存证的该数据的数据摘要进行匹配,就可以便捷的对获得的数据进行合法性验证,从而通过这种方式,可以显著提升执法记录仪或者行车记录仪采集到的数据作为合法证据文件的高可用性。

与上述方法实施例相对应,本说明书还提供了一种基于区块链的数据存证装置的实施例。本说明书的基于区块链的数据存证装置的实施例可以应用在电子设备上。其中,所述电子设备可以是与终端设备对接的可插拔设备;所述电子设备搭载了安全运算环境,所述安全运算环境中存储了与所述电子设备对应的私钥,装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本说明书的基于区块链的数据存证装置所在电子设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该电子设备的实际功能,还可以包括其他硬件,对此不再赘述。

图6是本说明书一示例性实施例示出的一种基于区块链的数据存证装置的框图。

请参考图6,所述基于区块链的数据存证装置60可以应用在前述图5所示的电子设备中,包括有:获取模块601、签名模块602和发布模块603。

获取模块601,获取所述终端设备采集到的目标数据的数据摘要;

签名模块602,在所述安全运算环境中基于与所述可插拔设备对应的私钥对所述数据摘要进行签名;

发布模块603,将签名后的所述数据摘要发布至所述区块链,以由区块链中的节点设备基于所述私钥对应的公钥对所述数据摘要的签名进行验证,并在所述签名验证通过后,将所述数据摘要在区块链中进行数据存证。

在本实施例中,所述获取模块601:

接收所述终端设备发送的由所述终端设备采集到的目标数据的数据摘要;或者,接收所述终端设备发送的由所述终端设备采集到的目标数据,并在本地计算所述目标数据进的数据摘要。

在本实施例中,所述签名模块602:

获取所述可插拔设备的使用用户输入的身份信息;

基于获取到的所述身份信息针对所述使用用户进行身份认证;

如果针对所述使用用户的身份认证通过,在所述安全运算环境中基于与所述可插拔设备对应的私钥对所述数据摘要进行签名。

在本实施例中,所述安全运算环境中存储了密钥生成算法;

所述装置60还包括:

认证模块604(图5中未示出),获取所述可插拔设备的使用用户在首次使用所述可插拔设备时输入的身份信息;基于获取到的所述身份信息针对所述使用用户进行身份认证;

生成模块605(图5中未示出),如果针对所述使用用户的身份认证通过,在所述安全运算环境中调用所述密钥生成算法生成所述私钥以及公钥;以及,将生成的所述私钥与所述使用用户的身份信息进行绑定,并将绑定关系在所述安全运算环境进行存储。

在本实施例中,所述签名模块602:

获取所述可插拔设备的使用用户输入的身份信息;

确定所述安全运算环境中是否存储了与所述身份信息绑定的私钥;

如果是,在所述安全运算环境中基于与所述身份信息绑定的私钥对所述数据摘要进行签名。

在本实施例中,所述发布模块603:

将签名后的所述数据摘要发布至所述区块链;或者,将签名后的所述数据摘要发送至所述终端设备,以由所述终端设备将所述数据摘要发布至所述区块链。

在本实施例中,所述终端设备包括执法记录仪或者行车记录仪;所述目标数据包括视频数据、音频数据、图像数据中的一种或者多种的组合。

在本实施例中,所述可插拔设备搭载了usb接口;所述可插拔设备通过所述usb接口与所述终端设备实现硬件对接。

在本实施例中,所述可插拔设备搭载了se安全计算芯片;所述安全运算环境为基于所述se安全计算芯片搭建的安全运算环境。

在本实施例中,所述可插拔设备搭载了led指示灯;所述装置60还包括:

控制模块606(图5中未示出),控制所述led指示灯向用户提示所述可插拔设备的工作状态;其中,所述工作状态包括正在所述安全运算环境中执行运算的工作状态;以及,在所述安全运算环境中完成运算的工作状态。

上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

上述实施例阐明的系统、装置、模块或模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

与上述方法实施例相对应,本说明书还提供了一种可插拔设备的实施例。该可插拔设备包括:处理器以及用于存储机器可执行指令的存储器;其中,处理器和存储器通常通过内部总线相互连接。在其他可能的实现方式中,所述设备还可能包括外部接口,以能够与其他设备或者部件进行通信。

在本实施例中,通过读取并执行所述存储器存储的与基于区块链的数据存证的控制逻辑对应的机器可执行指令,所述处理器被促使:

获取终端设备采集到的目标数据的数据摘要;其中,所述可插拔设备与所述终端设备对接;所述可插拔设备搭载了安全运算环境;所述安全运算环境中存储了与所述可插拔设备对应的私钥;

在所述安全运算环境中基于与所述可插拔设备对应的私钥对所述数据摘要进行签名;

将签名后的所述数据摘要发布至所述区块链,以由区块链中的节点设备基于所述私钥对应的公钥对所述数据摘要的签名进行验证,并在所述签名验证通过后,将所述数据摘要在区块链中进行数据存证。

在本实施例中,通过读取并执行所述存储器存储的与基于区块链的数据存证的控制逻辑对应的机器可执行指令,所述处理器被促使:

接收所述终端设备发送的由所述终端设备采集到的目标数据的数据摘要;或者,接收所述终端设备发送的由所述终端设备采集到的目标数据,并在本地计算所述目标数据进的数据摘要。

在本实施例中,通过读取并执行所述存储器存储的与基于区块链的数据存证的控制逻辑对应的机器可执行指令,所述处理器被促使:

获取所述可插拔设备的使用用户输入的身份信息;

基于获取到的所述身份信息针对所述使用用户进行身份认证;

如果针对所述使用用户的身份认证通过,在所述安全运算环境中基于与所述可插拔设备对应的私钥对所述数据摘要进行签名。

在本实施例中,所述安全运算环境中存储了密钥生成算法;

通过读取并执行所述存储器存储的与基于区块链的数据存证的控制逻辑对应的机器可执行指令,所述处理器被促使:

获取所述可插拔设备的使用用户在首次使用所述可插拔设备时输入的身份信息;

基于获取到的所述身份信息针对所述使用用户进行身份认证;

如果针对所述使用用户的身份认证通过,在所述安全运算环境中调用所述密钥生成算法生成所述私钥以及公钥;以及,

将生成的所述私钥与所述使用用户的身份信息进行绑定,并将绑定关系在所述安全运算环境进行存储。

在本实施例中,通过读取并执行所述存储器存储的与基于区块链的数据存证的控制逻辑对应的机器可执行指令,所述处理器被促使:

获取所述可插拔设备的使用用户输入的身份信息;

确定所述安全运算环境中是否存储了与所述身份信息绑定的私钥;

如果是,在所述安全运算环境中基于与所述身份信息绑定的私钥对所述数据摘要进行签名。

在本实施例中,通过读取并执行所述存储器存储的与基于区块链的数据存证的控制逻辑对应的机器可执行指令,所述处理器被促使:

将签名后的所述数据摘要发布至所述区块链;或者,将签名后的所述数据摘要发送至所述终端设备,以由所述终端设备将所述数据摘要发布至所述区块链。

在本实施例中,所述可插拔设备搭载了led指示灯;

通过读取并执行所述存储器存储的与基于区块链的数据存证的控制逻辑对应的机器可执行指令,所述处理器被促使:

控制所述led指示灯向用户提示所述可插拔设备的工作状态;其中,所述工作状态包括正在所述安全运算环境中执行运算的工作状态;以及,在所述安全运算环境中完成运算的工作状态。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。

应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。

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

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