数据上链方法、数据存储方法及装置与流程

文档序号:21270800发布日期:2020-06-26 22:55阅读:456来源:国知局
数据上链方法、数据存储方法及装置与流程

本说明书一个或多个实施例涉及数据处理技术领域,尤其涉及一种数据上链方法、数据存储方法及装置。



背景技术:

为了确保接收到的数据是可信的、未被篡改的,接收方设备需要对接收到的数据进行验证,以确保接收到的数据确实来自发送方设备,且该数据在传输过程中未被篡改。

基于非对称加密的数字签名技术被用于满足上述的数据验证需求。设备会产生一对非对称密钥,其中公钥对外公开,私钥由设备维护。而在上述场景下,发送方设备可以使用自身维护的私钥对所需传输的数据进行签名,而接收方设备可以使用该发送方设备公开的公钥来验证签名,如果验签成功则表明接收到的数据确实来自发送方设备,且该数据在传输过程中未被篡改。



技术实现要素:

有鉴于此,本说明书一个或多个实施例提供一种数据上链方法、数据存储方法及装置。

为实现上述目的,本说明书一个或多个实施例提供技术方案如下:

根据本说明书一个或多个实施例的第一方面,提出了一种数据上链方法,应用于物联网设备,所述物联网设备包含安全芯片,所述安全芯片包含私钥生成电路和签名电路;

所述数据上链方法,包括:

向所述安全芯片输入目标数据,以触发所述私钥生成电路获取所述物联网设备的硬件特征数据、根据所述硬件特征数据向所述签名电路输出所述物联网设备的身份私钥,以及触发所述签名电路根据所述身份私钥和所述目标数据输出针对所述目标数据的数字签名;

将所述数字签名和所述目标数据发送至区块链节点,以使所述区块链节点根据预先获取的所述物联网设备的身份公钥对所述数字签名进行验证,并在验证通过的情况下将所述目标数据存储至区块链。

根据本说明书一个或多个实施例的第二方面,提出了一种数据上链方法,应用于区块链节点,所述数据上链方法包括:

在接收到物联网设备发送的数字签名和目标数据的情况下,确定所述物联网设备的身份公钥;其中,所述物联网设备中的安全芯片包含私钥生成电路和签名电路,所述数字签名为所述签名电路根据身份私钥对所述目标数据进行签名后的输出结果,所述身份私钥由所述私钥生成电路根据所述物联网设备的硬件特征数据而生成;

根据所述身份公钥对所述数字签名进行验证;

在所述数字签名验证通过的情况下,将所述目标数据存储至区块链。

根据本说明书一个或多个实施例的第三方面,提出了一种数据存储方法,应用于第一设备,所述第一设备包含安全芯片,所述安全芯片包含私钥生成电路和签名电路;

所述数据存储方法,包括:

向所述安全芯片输入目标数据,以触发所述私钥生成电路获取所述第一设备的硬件特征数据、根据所述硬件特征数据向所述签名电路输出所述第一设备的身份私钥,以及触发所述签名电路根据所述身份私钥和所述目标数据输出针对所述目标数据的数字签名;

将所述数字签名和所述目标数据发送至第二设备,以使所述第二设备根据预先获取的所述第一设备的身份公钥对所述数字签名进行验证,并在验证通过的情况下存储所述目标数据。

根据本说明书一个或多个实施例的第四方面,提出了一种数据存储方法,应用于第二设备,所述数据存储方法包括:

在接收到第一设备发送的数字签名和目标数据的情况下,确定所述第一设备的身份公钥;其中,所述第一设备中的安全芯片包含私钥生成电路和签名电路,所述数字签名为所述签名电路根据身份私钥对所述目标数据进行签名后的输出结果,所述身份私钥由所述私钥生成电路根据所述第一设备的硬件特征数据而生成;

根据所述身份公钥对所述数字签名进行验证;

在所述数字签名验证通过的情况下,存储所述目标数据。

根据本说明书一个或多个实施例的第五方面,提出了一种数据上链装置,应用于物联网设备,所述物联网设备包含安全芯片,所述安全芯片包含私钥生成电路和签名电路;

所述数据上链装置,包括:

触发模块,用于向所述安全芯片输入目标数据,以触发所述私钥生成电路获取所述物联网设备的硬件特征数据、根据所述硬件特征数据向所述签名电路输出所述物联网设备的身份私钥,以及触发所述签名电路根据所述身份私钥和所述目标数据输出针对所述目标数据的数字签名;

发送模块,用于将所述数字签名和所述目标数据发送至区块链节点,以使所述区块链节点根据预先获取的所述物联网设备的身份公钥对所述数字签名进行验证,并在验证通过的情况下将所述目标数据存储至区块链。

根据本说明书一个或多个实施例的第六方面,提出了一种数据上链装置,应用于区块链节点,所述数据上链装置包括:

确定模块,用于在接收到物联网设备发送的数字签名和目标数据的情况下,确定所述物联网设备的身份公钥;其中,所述物联网设备中的安全芯片包含私钥生成电路和签名电路,所述数字签名为所述签名电路根据身份私钥对所述目标数据进行签名后的输出结果,所述身份私钥由所述私钥生成电路根据所述物联网设备的硬件特征数据而生成;

验证模块,用于根据所述身份公钥对所述数字签名进行验证;

存储模块,用于在所述数字签名验证通过的情况下,将所述目标数据存储至区块链。

根据本说明书一个或多个实施例的第七方面,提出了一种数据存储装置,应用于第一设备,所述第一设备包含安全芯片,所述安全芯片包含私钥生成电路和签名电路;

所述数据存储装置,包括:

触发模块,用于向所述安全芯片输入目标数据,以触发所述私钥生成电路获取所述第一设备的硬件特征数据、根据所述硬件特征数据向所述签名电路输出所述第一设备的身份私钥,以及触发所述签名电路根据所述身份私钥和所述目标数据输出针对所述目标数据的数字签名;

发送模块,用于将所述数字签名和所述目标数据发送至第二设备,以使所述第二设备根据预先获取的所述第一设备的身份公钥对所述数字签名进行验证,并在验证通过的情况下存储所述目标数据。

根据本说明书一个或多个实施例的第八方面,提出了一种数据存储装置,应用于第二设备,所述数据存储装置包括:

确定模块,用于在接收到第一设备发送的数字签名和目标数据的情况下,确定所述第一设备的身份公钥;其中,所述第一设备中的安全芯片包含私钥生成电路和签名电路,所述数字签名为所述签名电路根据身份私钥对所述目标数据进行签名后的输出结果,所述身份私钥由所述私钥生成电路根据所述第一设备的硬件特征数据而生成;

验证模块,用于根据所述身份公钥对所述数字签名进行验证;

存储模块,用于在所述数字签名验证通过的情况下,存储所述目标数据。

根据本说明书一个或多个实施例的第九方面,提出了一种电子设备,包括:

处理器;

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

其中,所述处理器通过运行所述可执行指令以实现上述任一方面所述的方法。

根据本说明书一个或多个实施例的第十方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述任一方面所述方法的步骤。

附图说明

图1是本说明书一示例性实施例提供的一种数据存储方法的流程图。

图2a是本说明书一示例性实施例提供的数据存储方法使用的一种安全芯片的模块示意图。

图2b是本说明书一示例性实施例提供的数据存储方法使用的另一种安全芯片的模块示意图。

图3是本说明书一示例性实施例提供的另一种数据存储方法的流程图。

图4是本说明书一示例性实施例提供的另一种数据存储方法的流程图。

图5是本说明书一示例性实施例提供的一种数据上链方法的流程图。

图6是本说明书一示例性实施例提供的一种设备的结构示意图。

图7是本说明书一示例性实施例提供的一种数据上链装置的模块示意图。

图8是本说明书一示例性实施例提供的另一种数据上链装置的模块示意图。

图9是本说明书一示例性实施例提供的一种设备的结构示意图。

图10是本说明书一示例性实施例提供的一种数据存储装置的模块示意图。

图11是本说明书一示例性实施例提供的另一种数据存储装置的模块示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。

需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。

图1是本说明书一示例性实施例示出的一种数据存储方法的流程图,方法应用于第一设备,第一设备包含安全芯片,第一设备基于安全芯片和设备本身的硬件特征数据生成私钥,私钥无需保存,随用随生成,从而可以有效避免攻击设备窃取第一设备中的私钥、克隆第一设备,进而保证数据的安全性。

在介绍数据存储方法之前,先对数据存储方法使用的安全芯片进行介绍和说明。

图2a是本说明书一示例性实施例示出的数据存储方法使用的一种安全芯片的模块示意图,安全芯片包含私钥生成电路21、签名电路22和公钥生成电路23,私钥生成电路21的输入端作为安全芯片的一个输入端,用于输入硬件特征数据,私钥生成电路21的输出端与签名电路22的一个输入端连接。签名电路22的另一个输入端作为安全芯片的另一个输入端,用于输入目标数据,签名电路22的输出端作为安全芯片的一个输出端。私钥生成电路21的输出端还与公钥生成电路23的输入端连接,公钥生成电路23的输出端作为安全芯片的另一个输出端。在生成公钥的过程中,私钥生成电路21可将输入的硬件特征数据转换为私钥并输出给公钥生成电路23,公钥生成电路23将该私钥转换为公钥并输出。在进行数字签名的过程中,私钥生成电路21可将输入的硬件特征数据转换为私钥并输出给签名电路22,签名电路22使用该私钥对输入的目标数据进行签名,得到数字签名并输出。

图2a示出的私钥生成电路21、签名电路22和公钥生成电路23集成于一块芯片上,私钥生成电路21的输出端直接与签名电路22和公钥生成电路23连接,私钥生成电路21生成的私钥不进行存储,也不向安全芯片外输出,且具有下电即丢的特点,因此,安全芯片生成的私钥无法被窃取。

图2b是本说明书一示例性实施例示出的数据存储方法使用的另一种安全芯片的模块示意图,安全芯片包含私钥生成电路21、签名与公钥生成电路24,私钥生成电路21的输出端与签名与公钥生成电路24的输入端连接,本实施例中,签名与公钥生成电路24实现数字签名以及公钥生成功能。在有目标数据输入的情况下,签名与公钥生成电路24根据私钥生成电路21输出的私钥对目标数据进行签名,得到数字签名并输出;在无目标数据输入的情况下,签名与公钥生成电路24将私钥生成电路21输出的私钥转换为公钥并输出。

与图2a类似的,图2b示出的私钥生成电路21、签名与公钥生成电路24集成于一块芯片上,私钥生成电路21的输出端直接和签名与公钥生成电路24连接,私钥生成电路21生成的私钥不进行存储,也不向安全芯片外输出,且具有下电即丢的特点,因此,安全芯片生成的私钥无法被窃取。

接下来以图2a示出的安全芯片为例,对本说明书实施例的数据存储方法进行详细说明。

参见图1,数据存储方法包括以下步骤:

步骤102、向安全芯片输入目标数据,以触发安全芯片的私钥生成电路获取物联网设备的硬件特征数据、根据硬件特征数据向签名电路输出第一设备的身份私钥,以及触发签名电路根据身份私钥和目标数据输出针对目标数据的数字签名。

其中,硬件特征数据可以是第一设备在制造过程中,因随机工艺偏差导致的差异数据,该数据具有唯一性和不可克隆性。

在一个实施例中,第一设备包含主控芯片,硬件特征数据可以是主控芯片的硬件特征数据。不同的主控芯片在制造、封装过程中因工艺偏差会产生深亚微米级的随机差异,该种随机差异采样后可以得到唯一的、不可克隆的硬件特征数据。

主控芯片的硬件特征数据一般会包含多个特征参数,例如,芯片间的器件尺寸、电特性产生差异、初始化时内存随机分布值、掉电模式下电流、接收灵敏度和数据传输速率等。其中,一些特征参数是比较稳定的,参数数值不会发生变化;另一些特征参数是不稳定的,参数数值会发生变化。本实施例中,从稳定的特征参数中选择全部或者部分特征参数作为用于生成秘钥的特征参数。私钥生成电路可以但不限于采用puf(物理不可克隆函数)电路实现。

在一个实施例中,主控芯片的集成电路与安全芯片的集成电路(包括私钥生成电路、签名电路和公钥生成电路)可以集成在一块芯片上,私钥生成电路的输入端与硬件特征参数相关的主控芯片的集成电路的节点连接,以在私钥生成电路被触发时获取该些节点的数据(硬件特征数据),并将其转换为私钥。

在另一个实施例中,主控芯片与安全芯片可以是独立的芯片,安全芯片的私钥生成电路的输入端可以与主控芯片的某个可以输出硬件特征数据的引脚连接,以在私钥生成电路被触发时获取硬件特征数据,并将其转换为私钥。

由于第一设备的硬件特征数据是不可预知的、独一无二的、无法克隆的,本实施例中,基于第一设备的硬件特征数据生成私钥,安全性较高。

进一步地,本实施例中采用安全芯片生成私钥,以及对目标数据进行签名。在第一设备需要将数据存储于第二设备的情况下,安全芯片才触发私钥生成电路获取硬件特征数据,私钥生成电路根据获取的硬件特征数据输出私钥至签名电路。由于私钥生成电路和签名电路均采用数字逻辑电路(或模拟电路)实现,在生成私钥以及数字签名的过程中,私钥无需进行存储,且具有下电即丢、无法读出的特点,攻击设备无法从安全芯片中窃取私钥,也就无法克隆第一设备,可以进一步保证数据存储的安全性。

步骤104、将数字签名和目标数据发送至第二设备,以使第二设备根据预先获取的第一设备的身份公钥对数字签名进行验证,并在验证通过的情况下存储目标数据。

其中,目标数据为第一设备向第二设备发送的,需要在第二设备上进行存储的数据,可以但不限于是第一设备产生的业务数据。

需要说明的是,为了使第一设备具备将数据存储至第二设备的资格,执行步骤102之前,需要完成第一设备在第二设备上的身份注册。在身份注册的过程中,第一设备向安全芯片下发身份注册指令,安全芯片在接收到身份注册指令的情况下,触发私钥生成电路获取第一设备的硬件特征数据,并根据硬件特征数据向公钥生成电路输出第一设备的身份私钥,以及触发公钥生成电路根据私钥输出第一设备的身份公钥。第一设备发送携带身份公钥的注册请求给第二设备,若第二设备确认第一设备具有数据存储的权限,则存储第一设备的身份公钥,以完成第一设备的身份注册。第二设备存储的身份公钥用于后续进行数字签名验证。

可以理解地,私钥每次生成后不作存储,随用随生成,但由于私钥是由稳定的硬件特征数据生成的,事实上每次生成的私钥是相同的。因此,第二设备可以采用身份注册时获取的身份公钥对数字签名进行验证。

在另一个实施例中,公钥生成电路可以但不限于采用具有椭圆曲线加密算法功能的异步电路实现。

在多个第一设备可以将数据存储在一个第二设备的场景中,第一设备发送的注册请求还可包含第一设备的设备标识,以使第二设备关联存储设备标识和身份公钥,以便于进行数字验证时,第二设备能够根据设备标识快速确定对应的身份公钥。具体的,在数据存储过程中,第一设备可将设备标识与数字签名、目标数据关联发送至第二设备,使第二设备根据设备标识确定第一设备的身份公钥,以针对数字签名进行验证。

上述任一实施例中,由于私钥基于设备的硬件特征数据生成,且随用随生成,私钥不进行存储,因此攻击设备无法窃取设备的私钥,从而可以有效防范设备可能遭到的复制攻击,避免数据被篡改,保证业务或者所提供的数据或服务的安全性。

图3是本说明书一示例性实施例示出的另一种数据存储方法的流程图,应用于第二设备,参见图3,数据存储方法包括以下步骤:

步骤302、在接收到第一设备发送的数字签名和目标数据的情况下,确定第一设备的身份公钥。

其中,数字签名的实现过程参见步骤102所示,此处不再赘述。第一设备在进行身份注册时,第二设备会存储第一设备的身份公钥,步骤302中,第二设备确定第一设备的身份公钥,也即第二设备确定所属于第一设备的身份公钥。

步骤304、根据身份公钥对数字签名进行验证,并在验证通过的情况下存储目标数据。

下面简单介绍对数字签名进行验证的过程:

第二设备使用第一设备的身份公钥对数字签名进行解密,得到待验证的数字摘要;对目标数据进行哈希运算,生成标准数字摘要;比较待验证的数字摘要和标准数字摘要,若两者相同,则数字签名验证通过,确定第一设备为合法设备且目标数据未被篡改,第二设备存储第一设备发送的目标数据;若待验证的数字摘要和标准数字摘要不相同,则验证不通过,说明第一设备为非法设备,或者目标数据被篡改,则第二设备不存储第一设备发送的目标数据。

需要说明的是,为了使第一设备具备将数据存储至第二设备的资格,需要完成第一设备在第二设备上的注册。第一设备发送注册请求给第二设备,注册请求包含第一设备的身份公钥,第二设备在判断第一设备具有数据存储权限的情况下,存储第一设备的身份公钥,以完成第一设备的身份注册。第一设备一般在安全环境中进行身份注册。

在多个第一设备可以将数据存储在一个第二设备的场景中,第二设备还可以记录第一设备的设备标识,并关联存储设备标识和身份公钥,以便于在数字验证时,第二设备能够根据设备标识快速确定第一设备的身份公钥。

其中,第二设备可以将第一设备的身份公钥存储在本地,也可以将身份公钥存储于第三设备上。若身份公钥存储于本地,在进行数字签名验证时,则可根据第一设备发送数字签名和目标数据时携带的设备标识,在本地查找并获取第一设备的身份公钥;若公钥存储于第三设备,在进行数字签名验证时,则可根据第一设备发送数字签名和目标数据时携带的设备标识,从第三设备中查找并获取第一设备的身份公钥。

上述任一实施例中,由于身份私钥基于设备的硬件特征数据生成,且随用随生成,身份私钥不进行存储,因此攻击设备无法窃取设备的身份私钥,从而不仅能够抵抗窃听、篡改、重放等传统攻击,而且可以有效防范设备可能遭到的复制攻击。

图4是本说明书一示例性实施例示出的另一种数据存储方法的流程图,本实施例通过第一设备与第二设备之间的交互,示出了第一设备在第二设备上完成身份注册以及数据存储的过程,参见图4,方法包括以下步骤:

步骤402、在接收到注册请求的情况下,第一设备的安全芯片基于硬件特征数据生成身份公钥。

其中,注册请求可以但不限于是第一设备的主控芯片生成并发送给安全芯片的。若第一设备需要身份注册、,第一设备的主控芯片可以发送身份注册指令给安全芯片,以触发安全芯片的私钥生成电路获取第一设备的硬件特征数据作为输入,并输出第一设备的身份私钥给公钥生成电路,以及触发公钥生成电路根据输入的身份私钥输出第一设备的身份公钥。

步骤404、第一设备发送携带身份公钥的注册请求给第二设备。

在另一个实施例中,为了让第二设备识别身份公钥是哪个设备发送的,第一设备发送的注册请求还可以包含第一设备的设备标识。设备标识可以但不限于采用可以唯一标识设备的设备序列号。

步骤406、第二设备存储第一设备的身份公钥。

步骤406中,第二设备存储身份公钥之前,还可对第一设备的权限进行验证,若第二设备确认第一设备有数据存储的权限,则执行406存储第一设备的身份公钥,完成第一设备的身份注册;若第二设备确认某个设备不具有数据存储的权限,对于该设备发送的身份公钥,第二设备不会进行存储。

在另一个实施例中,若第一设备发送的注册请求包含设备标识,第二设备则关联存储设备标识和身份公钥。以便于第二设备存储多个设备的身份公钥的情况下,可以根据设备标识快速查找确定每个设备的身份公钥。

其中,第二设备可以将身份公钥存储在本地,也可以将身份公钥存储于第三设备上。若身份公钥存储于本地,在进行数字签名验证时,则根据第一设备发送数字签名和目标数据时携带的设备标识,在本地查找并获取第一设备的身份公钥;若公钥存储于第三设备,在进行数字签名验证时,则根据第一设备发送数字签名和目标数据时携带的设备标识,从第三设备查找并获取第一设备的身份公钥。

步骤402~步骤406为第一设备在第二设备上完成身份注册的过程,完成身份注册之后,第一设备可以根据实际需求将目标数据存储在第二设备上,数据存储的具体实现过程,参见下述步骤408和步骤414。

步骤408、第一设备的安全芯片基于硬件特征数据生成身份私钥,并使用身份私钥对目标数据进行签名。

步骤408中,在第一设备需要将目标数据存储至第二设备的情况下,第一设备的主控芯片将目标数据发送给安全芯片,以触发安全芯片的私钥生成电路获取第一设备的硬件特征数据作为输入,并输出私钥给签名电路,使签名电路使用私钥对目标数据进行签名,并输出数字签名。

步骤410、第一设备将目标数据和数字签名发送给第二设备。

为了便于第二设备确定第一设备的身份公钥,第一设备可将设备标识与数字签名、目标数据关联发送至第二设备,以使第二设备根据设备标识确定第一设备的身份公钥。

步骤412、第二设备使用第一设备的身份公钥对数字签名进行验证。

数字签名的验证可以但不限于采用以下方式:

第二设备使用第一设备的身份公钥对数字签名进行解密,得到待验证的数字摘要;对目标数据进行哈希运算,生成标准数字摘要;比较待验证数字摘要和标准数字摘要,若两者相同,则验证通过,确定第一设备为合法设备,执行步骤414以存储第一设备发送的目标数据;若两者不相同,则验证不通过,说明第一设备为非法设备或者目标数据被篡改,则不存储第一设备发送的目标数据。

步骤414、在数字签名验证通过的情况下,第二设备存储目标数据。

本实施例中,可以有效防范设备可能遭到的复制攻击,避免数据被篡改,保证第二设备基于目标数据的处理业务的安全性,以及保证第二设备所提供的数据或服务的安全性。

图5是本说明书一示例性实施例示出的一种数据上链方法的流程图,本实施例中,以物联网设备作为第一设备,区块链节点作为第二设备,通过物联网设备与区块链节点之间的交互,示出了物联网设备在区块链节点上完成身份注册以及数据上链的过程。物联网设备包含主控芯片和图2a或图2b示出的安全芯片。

参见图5,数据上链方法包括以下步骤:

步骤502、在接收到注册请求的情况下,物联网设备的安全芯片获取物联网设备的硬件特征数据,并输出物联网设备的身份公钥。

其中,注册请求可以但不限于是物联网设备的主控芯片生成并发送给安全芯片的。若物联网设备需要身份注册,物联网设备的主控芯片可以发送身份注册指令给安全芯片,以触发安全芯片的私钥生成电路获取物联网设备的硬件特征数据作为输入,并输出身份私钥给公钥生成电路,以及触发公钥生成电路根据输入的身份私钥输出物联网设备的身份公钥。

步骤504、物联网设备发送携带身份公钥的注册请求给区块链节点。

在另一个实施例中,为了让区块链节点识别身份公钥是哪个设备发送的,物联网设备发送的注册请求还可以包含物联网设备的设备标识。设备标识可以但不限于采用可以唯一标识物联网设备的设备序列号。

步骤506、区块链节点存储物联网设备的身份公钥。

步骤506中,区块链节点存储身份公钥之前,还可对物联网设备的权限进行验证,若区块链节点确认物联网设备有数据存储的权限,则执行506存储物联网设备的身份公钥,完成物联网设备的身份注册;若区块链节点确认某个设备不具有数据存储的权限,对于该设备发送的身份公钥,区块链节点不会进行存储。

在另一个实施例中,若物联网设备发送的注册请求包含设备标识,区块链节点则关联存储设备标识和身份公钥。以便于区块链节点存储多个设备的身份公钥的情况下,可以根据设备标识快速查找确定每个设备的身份公钥。

其中,区块链节点可以将身份公钥存储在本地,也可以将身份公钥存储于第三设备上。若身份公钥存储于本地,在进行数字签名验证时,则根据物联网设备发送数字签名和目标数据时携带的设备标识,在本地查找并获取物联网设备的身份公钥;若公钥存储于第三设备,在进行数字签名验证时,则根据物联网设备发送数字签名和目标数据时携带的设备标识,从第三设备查找并获取物联网设备的身份公钥。

步骤502~步骤506为物联网设备在区块链节点上完成身份注册的过程,完成身份注册之后,物联网设备可以根据实际需求将目标数据进行上链,数据上链的具体实现过程,参见下述步骤508和步骤514。

步骤508、在接收到目标数据的情况下,物联网设备的安全芯片获取硬件特征数据生成身份私钥,并使用身份私钥对目标数据进行签名,然后输出数字签名。

步骤508中,在物联网设备需要将目标数据存储至区块链上的情况下,物联网设备的主控芯片将目标数据发送给安全芯片,以触发安全芯片的私钥生成电路获取物联网设备的硬件特征数据作为输入,并输出私钥给签名电路,使签名电路使用私钥对目标数据进行签名,并输出数字签名。

步骤510、物联网设备将目标数据和数字签名发送给区块链节点。

为了便于区块链节点确定物联网设备的身份公钥,物联网设备可将设备标识与数字签名、目标数据关联发送至区块链节点,以使区块链节点根据设备标识确定第一设备的身份公钥。

步骤512、区块链节点使用物联网设备的身份公钥对数字签名进行验证。

下面简单介绍对数字签名进行验证的过程:

区块链节点使用第一设备的身份公钥对数字签名进行解密,得到待验证的数字摘要;对目标数据进行哈希运算,生成标准数字摘要;比较待验证的数字摘要和标准数字摘要,若两者相同,则数字签名验证通过,确定第一设备为合法设备且目标数据未被篡改,第二设备存储第一设备发送的目标数据;若待验证的数字摘要和标准数字摘要不相同,则验证不通过,说明第一设备为非法设备,或者目标数据被篡改,则第二设备不存储第一设备发送的目标数据。

步骤514、在数字签名验证通过的情况下,区块链节点将目标数据存储至区块链。

在一个实施例中,目标数据是物联网设备产生的业务数据,在数字签名验证通过的情况下,区块链节点需先创建包含目标数据的区块链交易,然后将区块链交易存储至区块链。

在另一个实施例中,目标数据是包含业务数据的区块链交易,在数字签名验证通过的情况下,区块链节点直接将该区块链交易存储至区块链上。

其中,区块链交易存在狭义的交易以及广义的交易之分。狭义的交易是指向区块链发布的一笔价值转移;例如,在传统的比特币区块链网络中,交易可以是用户在区块链中发起的一笔转账。而广义的交易是指向区块链发布的一笔具有业务意图的业务数据;例如,运营方可以基于实际的业务需求搭建一个联盟链,依托于联盟链部署一些与价值转移无关的其它类型的在线业务(比如,租房业务、车辆调度业务、保险理赔业务、信用服务、医疗服务等),而在这类联盟链中,交易可以是用户在联盟链中发布的一笔具有业务意图的业务消息或者业务请求。

本实施例中,可以有效防范物联网设备可能遭到的复制攻击,保证区块链上数据的安全性。

图6是一示例性实施例提供的一种设备的示意结构图。请参考图6,在硬件层面,该设备包括处理器602、内部总线604、网络接口606、内存608以及非易失性存储器610,当然还可能包括其他业务所需要的硬件。处理器602从非易失性存储器610中读取对应的计算机程序到内存608中然后运行,在逻辑层面上形成数据上链装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

请参考图7,在软件实施方式中,应用于物联网设备的数据上链装置可以包括:

触发模块71,用于向所述安全芯片输入目标数据,以触发所述私钥生成电路获取所述物联网设备的硬件特征数据、根据所述硬件特征数据向所述签名电路输出所述物联网设备的身份私钥,以及触发所述签名电路根据所述身份私钥和所述目标数据输出针对所述目标数据的数字签名;

发送模块72,用于将所述数字签名和所述目标数据发送至区块链节点,以使所述区块链节点根据预先获取的所述物联网设备的身份公钥对所述数字签名进行验证,并在验证通过的情况下将所述目标数据存储至区块链。

可选地,触发模块71,还用于在接收到身份注册指令的情况下,触发所述私钥生成电路获取所述物联网设备的硬件特征数据、根据所述硬件特征数据向所述公钥生成电路输出所述物联网设备的身份私钥,以及触发所述公钥生成电路根据所述身份私钥输出所述物联网设备的身份公钥;

发送模块72,还用于发送注册请求至所述区块链节点,所述注册请求包含所述物联网设备的身份公钥,使所述区块链节点存储所述身份公钥以完成所述物联网设备的身份注册。

可选地,所述注册请求还包含所述物联网设备的设备标识,以使所述区块链节点关联存储所述设备标识和所述身份公钥;

发送模块72,还用于将所述设备标识与所述数字签名、所述目标数据关联发送至所述区块链节点,使所述区块链节点根据所述设备标识确定所述物联网设备的身份公钥,以针对所述数字签名进行验证。

可选地,所述目标数据为所述物联网设备产生的业务数据或包含业务数据的区块链交易。

可选地,所述物联网设备还包含主控芯片,所述硬件特征数据为所述主控芯片的特征数据。

请参考图8,在软件实施方式中,应用于区块链节点的数据上链装置,包括:

确定模块81,用于在接收到物联网设备发送的数字签名和目标数据的情况下,确定所述物联网设备的身份公钥;其中,所述物联网设备中的安全芯片包含私钥生成电路和签名电路,所述数字签名为所述签名电路根据身份私钥对所述目标数据进行签名后的输出结果,所述身份私钥由所述私钥生成电路根据所述物联网设备的硬件特征数据而生成;

验证模块82,用于根据所述身份公钥对所述数字签名进行验证;

存储模块83,用于在所述数字签名验证通过的情况下,将所述目标数据存储至区块链。

可选地,所述存储模块83用于:

在所述目标数据为所述物联网设备产生的业务数据的情况下,创建包含所述目标数据的区块链交易,并将所述区块链交易存储至区块链;

在所述目标数据为包含所述业务数据的区块链交易的情况下,直接将所述目标数据存储至区块链。

图9是一示例性实施例提供的一种设备的示意结构图。请参考图9,在硬件层面,该设备包括处理器902、内部总线904、网络接口906、内存908以及非易失性存储器910,当然还可能包括其他业务所需要的硬件。处理器902从非易失性存储器910中读取对应的计算机程序到内存908中然后运行,在逻辑层面上形成数据存储装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

请参考图10,在软件实施方式中,应用于第一设备的数据存储装置可以包括:

触发模块1001,用于向所述安全芯片输入目标数据,以触发所述私钥生成电路获取所述第一设备的硬件特征数据、根据所述硬件特征数据向所述签名电路输出所述第一设备的身份私钥,以及触发所述签名电路根据所述身份私钥和所述目标数据输出针对所述目标数据的数字签名;

发送模块1002,用于将所述数字签名和所述目标数据发送至第二设备,以使所述第二设备根据预先获取的所述第一设备的身份公钥对所述数字签名进行验证,并在验证通过的情况下存储所述目标数据。

可选地,触发模块,还用于在接收到身份注册指令的情况下,触发所述私钥生成电路获取所述第一设备的硬件特征数据、根据所述硬件特征数据向所述公钥生成电路输出所述第一设备的身份私钥,以及触发所述公钥生成电路根据所述身份私钥输出所述第一设备的身份公钥;

发送模块,还用于发送注册请求至所述第二设备,所述注册请求包含所述第一设备的身份公钥,使所述第二设备存储所述身份公钥以完成所述第一设备的身份注册。

可选地,所述注册请求还包含所述第一设备的设备标识,以使所述第二设备关联存储所述设备标识和所述身份公钥;

发送模块1002,还用于将所述设备标识与所述数字签名、所述目标数据关联发送至所述第二设备,使所述第二设备根据所述设备标识确定所述第一设备的身份公钥,以针对所述数字签名进行验证。

可选地,所述第一设备还包含主控芯片,所述硬件特征数据为所述主控芯片的特征数据。

参见图11,在软件实施方式中,应用于第二设备的数据存储装置可以包括:

确定模块1101,用于在接收到第一设备发送的数字签名和目标数据的情况下,确定所述第一设备的身份公钥;其中,所述第一设备中的安全芯片包含私钥生成电路和签名电路,所述数字签名为所述签名电路根据身份私钥对所述目标数据进行签名后的输出结果,所述身份私钥由所述私钥生成电路根据所述第一设备的硬件特征数据而生成;

验证模块1102,用于根据所述身份公钥对所述数字签名进行验证;

存储模块1103,用于在所述数字签名验证通过的情况下,存储所述目标数据。

可选地,所述存储模块1103用于:

在所述目标数据为所述物联网设备产生的业务数据的情况下,创建包含所述目标数据的区块链交易,并将所述区块链交易存储至区块链;

在所述目标数据为包含所述业务数据的区块链交易的情况下,直接将所述目标数据存储至区块链。

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

在一个典型的配置中,计算机包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储,其上存储有计算机程序(信息),所述程序被处理器执行时实现上述任一实施例所提供的方法步骤。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

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

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