发明内容
为了解决现有技术中的上述问题,本发明提供一种基于区块链的数据传输方法和系统,通过基于智能洗衣设备的唯一标识信息生成一个对称密钥和一对公私钥对,对称密钥给待传输的数据加密,并且,对称密钥和公私钥对存储在区块链服务器节点中,并且智能洗衣设备相关的数据也都保存在区块链服务器中,利用区块链签名机制进行智能洗衣设备身份认证,保证了设备的有效性,通过对称加密保证待传输数据的机密性,利用区块链的共识机制、不可篡改特性保证了待传输数据的真实性和安全性。
本发明实施例的第一方面提供一种基于区块链的数据传输方法,包括:
设备认证平台获取智能洗衣设备的标识信息,根据所述标识信息生成对称密钥和公私钥对,并将所述对称密钥和公私钥对存储于区块链服务器节点,所述标识信息与所述智能洗衣设备为一一对应的关系;
智能洗衣设备利用所述对称密钥对待传输数据进行加密处理,利用所述公私钥对对所述加密后的数据进行数字签名,得到签名后的数据,将所述签名后的数据发送至所述区块链服务器节点;
所述区块链服务器节点对所述签名后的数据进行验签,并在验证成功时解密所述加密后的数据,解析所述解密后的数据,将解析得到的数据进行上链。
可选的,所述智能洗衣设备利用所述对称密钥对待传输数据进行加密处理之前,所述方法还包括:
智能洗衣设备接收业务云平台发送的设备指令,并对所述设备指令进行处理,得到待传输数据。
可选的,所述智能洗衣设备的安全芯片中存储有软件开发工具包SDK;所述智能洗衣设备利用所述对称密钥对待传输数据进行加密处理之前,所述方法还包括:
利用所述SDK根据所述公私钥对生成区块链交易信息,所述区块链交易信息包括所述公私钥对;
将所述区块链交易信息和所述对称密钥存储至所述安全芯片中。
可选的,所述利用所述公私钥对对所述加密后的数据进行数字签名,包括:
通过所述公私钥对中的公钥对所述加密后的数据进行数据签名,得到签名后的数据。
可选的,所述区块链服务器节点对所述签名后的数据进行验签,包括:
所述区块链服务器节点在链上获取所述智能洗衣设备对应的公私钥对,并通过所述公私钥对中的私钥对所述签名后的数据进行验签。
可选的,所述解析所述解密后的数据,包括:
获取所述智能洗衣设备对应的设备协议;
根据所述设备协议对所述解密后的数据进行解析。
可选的,所述将所述签名后的数据发送至所述区块链服务器节点,包括:
调用所述安全芯片中的SDK中的接口,通过所述接口将所述签名后的数据发送至所述区块链服务器节点。
本发明实施例的第一方面提供一种基于区块链的数据传输系统,包括:设备认证平台,区块链服务器节点以及智能洗衣设备;
所述设备认证平台用于:获取智能洗衣设备的标识信息,根据所述标识信息生成对称密钥和公私钥对,并将所述对称密钥和公私钥对存储于区块链服务器节点,所述标识信息与所述智能洗衣设备为一一对应的关系;
所述智能洗衣设备用于:利用所述对称密钥对待传输数据进行加密处理,利用所述公私钥对对所述加密后的数据进行数字签名,得到签名后的数据,将所述签名后的数据发送至所述区块链服务器节点;
所述区块链服务器节点用于:对所述签名后的数据进行验签,并在验证成功时解密所述加密后的数据,解析所述解密后的数据,将解析得到的数据进行上链。
本发明实施例的第三方面提供一种计算机设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行本发明实施例第一方面所述的基于区块链的数据传输方法。
本发明实施例的第四方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现本发明实施例第一方面所述的基于区块链的数据传输方法。
本领域技术人员能够理解的是,本发明实施例提供一种基于区块链的数据传输方法和系统,通过设备认证平台获取智能洗衣设备的标识信息,根据所述标识信息生成对称密钥和公私钥对,将所述对称密钥和公私钥对存储于区块链服务器节点,标识信息与所述智能洗衣设备为一一对应的关系;智能洗衣设备利用所述对称密钥对待传输数据进行加密处理,利用所述公私钥对对所述加密后的数据进行数字签名,得到签名后的数据,将所述签名后的数据发送至所述区块链服务器节点;所述区块链服务器节点对所述签名后的数据进行验签,并在验证成功时解密所述加密后的数据,解析所述解密后的数据,将解析得到的数据进行上链。由于每台智能洗衣设备对应唯一的标识信息,因此产生的每台洗衣设备的对称密钥和公私钥对都各不相同,大大增加了其破解难度,利用对称密钥对待传输的数据进行加密保证了用户隐私不被泄露,使用对称钥对利用区块链的签名机制进行智能洗衣设备数字身份的验证,保证了设备的有效性,并且智能洗衣设备的相关数据都加密后上链存储在区块链服务器节点中,使得数据透明且不可篡改,从而大大增加了数据传输的可靠性。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
随着物联网技术的发展,越来越多的物联网设备连接到互联网中。许多物联网驱动的共享设备也发展非常迅速,比如共享单车、共享充电宝、共享智能洗衣设备等。
相关技术中,洗护物联云平台为每一个运营商家分配共享智能洗衣设备接口,共享智能洗衣设备通过接口洗护物联云平台上进行认证,然后用户需要使用共享智能洗衣设备时,由相应的共享智能洗衣设备向洗护物联云平台发送用户身份信息,以使洗护物联云平台控制用户的访问权限。
但是,智能洗衣设备与洗护物联云平台之间的数据传输均是直接进行的,或者进行一些简单加密之后再传输,如此很容易导致传输的数据被拦截并破解传输协议,从而导致数据传输的安全可靠性大大降低。并且,传统的智能洗衣设备的相关数据(比如设备的使用记录,用户使用智能洗衣设备时填写的个人身份信息)都是存储于普通的关系型数据库中,然而普通的关系型数据库中的数据信息很容易被黑客窃取和篡改,从而威胁存储数据的真实性和安全性。
针对此缺陷,本申请的主要技术方案包括:基于区块链分布式数据存储、共识机制以及不可篡改的特性,提供一种基于区块链的数据传输方法。基于智能洗衣设备唯一硬件序列号生成一个对称密钥以及一对公私钥对,对称密钥用于对待传输的数据进行加密或解密,公私钥对用于智能洗衣设备身份认证。且对称密钥和公私钥对存在于区块链的服务器节点上,对于智能洗衣设备而言,这两种密钥存放在安全芯片中,黑客几乎难以破解,并且每台智能洗衣设备用于加密的对称密钥各不相同,破解难度更是大大提高。另外,由于智能洗衣设备相关数据都保存在区块链服务器节点上,由于区块链节点共识的特性,保证了数据传输的安全性和真实性。
下面结合上述附图阐述本发明的基于区块链的数据传输方法和系统的优选技术方案。
图1是本发明一示例性实施例示出的基于区块链的数据传输方法的应用场景图。
如图1所示,本实施例提供的应用场景的基本架构主要包括:智能洗衣设备认证平台101,至少一台智能洗衣设备102,区块链服务器103,客户端设备104;其中,智能洗衣设备均在智能洗衣设备认证平台上进行注册认证,以使智能洗衣设备认证平台获取设备的管理权;用户通过客户端设备(比如手机)向智能洗衣设备发送申请使用请求,并在请求通过时使用该智能洗衣设备;其中,智能洗衣设备认证平台、智能洗衣设备以及用户通过客户端设备发送的相关信息均发送至区块链服务器中进行上链,以存储在区块链中。
图2是本发明一示例性实施例示出的基于区块链的数据传输方法的流程示意图。
如图2所示,本实施例提供的方法可以包括以下步骤。
S201,设备认证平台获取智能洗衣设备的标识信息,根据所述标识信息生成对称密钥和公私钥对,并将所述对称密钥和公私钥对存储于区块链服务器节点,所述标识信息与所述智能洗衣设备为一一对应的关系。
其中,标识信息可以但不限于包括智能洗衣设备的唯一硬件序列号(device id)以及洗衣物联SIM卡的卡号(Integrate circuit card identity,ICCID),每台智能洗衣设备均对应唯一的硬件序列号和ICCID。
具体的,智能洗衣认证平台为每个商家提供智能洗衣设备绑定接口,通过绑定每台洗衣设备的硬件序列号和ICCID获得设备的管理权,并根据每台设备的硬件序列号和ICCID为每台智能洗衣设备生成对称密钥和公私钥对,且每台智能洗衣设备的对称密钥和公私钥对都是唯一的,不同智能洗衣设备的对称密钥和公私钥对各不相同。其中的对称密钥用于对传输数据进行加密或解密,公私钥对用于进行智能洗衣设备身份认证。然后将生成的每台智能洗衣设备的对称密钥和公私钥对存储到区块链服务器节点中。
本步骤中,为每台智能洗衣设备生成各不相同的对称密钥和公私钥对,并且对称密钥和公私钥对均存储在区块链服务器节点中,大大提高了破解难度。
S202,智能洗衣设备利用所述对称密钥对待传输数据进行加密处理,利用所述公私钥对对所述加密后的数据进行数字签名,得到签名后的数据,将所述签名后的数据发送至所述区块链服务器节点。
其中,待传输数据包括设备使用记录、用户使用智能洗衣设备是填写的身份信息等。
具体的,每台智能洗衣设备的对称密钥和公私钥对预先烧录进每台设备模组额外的安全芯片中;然后由智能洗衣设备中的安全芯片对待传输数据进行加密,得到加密数据,然后再根据公私钥对中的公钥对加密数据进行数字签名,将签名后的数据上链存储至区块链服务器节点中。
本步骤中,将每台智能洗衣设备的对称密钥和公私钥对存储在安全芯片中,进一步提高了破解难度,并且将待传输数据加密、签名后进行传输,保证了数据传输过程中的可靠性和机密性,将加密、签名的数据存储在区块链中,基于区块链的共识机制和不可篡改特性保证了数据的安全性和真实性。
S203,所述区块链服务器节点对所述签名后的数据进行验签,并在验证成功时解密所述加密后的数据,解析所述解密后的数据,将解析得到的数据进行上链。
具体的,区块链服务器节点在链上获取该智能洗衣设备对应的公私钥对,并通过所述公私钥对中的私钥对所述签名后的数据进行验签,若验证失败,则说明该数据是伪造的;若验证成功,则在链上获取该智能洗衣设备的对称密钥,采用对称密钥对加密后的数据进行解密,然后对解密后的数据进行解析,得到解析后的数据,将解析后的数据上链。
本实施例中,由于每台智能洗衣设备对应唯一的标识信息,因此产生的每台洗衣设备的对称密钥和公私钥对都各不相同,大大增加了其破解难度,利用对称密钥对待传输的数据进行加密保证了用户隐私不被泄露,使用对称钥对利用区块链的签名机制进行智能洗衣设备数字身份的验证,保证了设备的有效性,并且智能洗衣设备的相关数据都加密后上链存储在区块链服务器节点中,使得数据透明且不可篡改,从而大大增加了数据传输的可靠性。
为了更清楚的理解本申请,下面在图2所示实施例的基础上,对智能洗衣设备传输数据的过程进一步详细描述。
首先,设备认证平台获取智能洗衣设备的标识信息,根据所述标识信息生成对称密钥和公私钥对,并将所述对称密钥和公私钥对存储于区块链服务器节点,所述标识信息与所述智能洗衣设备为一一对应的关系。
其中,标识信息可以但不限于包括智能洗衣设备的唯一硬件序列号(device id)以及洗衣物联SIM卡的卡号(Integrate circuit card identity,ICCID),每台智能洗衣设备均对应唯一的硬件序列号和ICCID。
具体的,智能洗衣认证平台为每个商家提供智能洗衣设备绑定接口,通过绑定每台洗衣设备的硬件序列号和ICCID获得设备的管理权。智能洗衣设备在向智能洗衣认证平台绑定注册时,获取并存储每台设备的硬件序列号和ICCID,根据每台设备的为每台智能洗衣设备生成对称密钥和公私钥对,且每台智能洗衣设备的对称密钥和公私钥对都是唯一的,不同智能洗衣设备的对称密钥和公私钥对各不相同。其中的对称密钥用于对传输数据进行加密或解密,公私钥对用于进行智能洗衣设备身份认证。然后将生成的每台智能洗衣设备的对称密钥和公私钥对存储到区块链服务器节点中。
进一步的,所述智能洗衣设备的安全芯片中存储有软件开发工具包SDK;利用所述SDK根据所述公私钥对生成区块链交易信息,所述区块链交易信息包括所述公私钥对;将所述区块链交易信息和所述对称密钥存储至所述安全芯片中。
具体的,区块链服务器节点上部署有hyperchain hvm智能合约,为每台智能洗衣设备提供适配的操作智能合约的SDK,其运行在每台智能洗衣设备的安全芯片中,利用SDK根据每台智能洗衣设备的公私钥对生成一个Account字符串,该字符串包含公私钥对以及交易信息,Account字符串是发起区块链交易的主体,然后将Account字符串和对称密钥烧录进每台设备模组额外的安全芯片中。
进一步的,所述方法还包括:智能洗衣设备接收业务云平台发送的设备指令,并对所述设备指令进行处理,得到待传输数据。
具体的,SDK区别于智能洗衣设备本身的嵌入式程序,该SDK为嵌入式程序提供有限的接口,供其进行设备状态上报,或者使用记录上报。嵌入式程序用于接收业务云平台下发的设备指令,并对接收到的设备指令进行处理,得到待传输数据,该待传输数据可能包括设备的使用记录数据、用户使用该设备时填写的身份信息或者设备的状态信息等。
进一步的,智能洗衣设备利用所述对称密钥对待传输数据进行加密处理,利用所述公私钥对对所述加密后的数据进行数字签名,得到签名后的数据,将所述签名后的数据发送至所述区块链服务器节点。
具体的,该智能洗衣设备的安全芯片中操作hvm智能合约的SDK将待传输数据通过该设备的对称密钥进行加密,得到加密数据;然后通过公私钥对中的公钥对加密数据进行数字签名;调用安全芯片中的SDK提供的接口进行数据上链操作,即将签名后的数据通过SDK提供的接口发送至区块链服务器节点。
进一步的,区块链服务器节点对签名后的数据进行验签,并在验证成功时解密所述加密后的数据,解析所述解密后的数据,将解析得到的数据进行上链。
具体的,所述区块链服务器节点在链上获取所述智能洗衣设备对应的公私钥对,并通过所述公私钥对中的私钥对所述签名后的数据进行验签。若验证失败,则说明该数据是伪造的;若验证成功,则在链上获取该智能洗衣设备的对称密钥,采用对称密钥对加密后的数据进行解密;然后获取该智能洗衣设备的设备协议,通过该设备协议对解密后的数据进行解析,得到解析后的数据,最终将解析后的数据上链。
进一步的,用户通过客户端应用程序APP注册的所有信息均利用对称密钥进行加密后发送至区块链服务器节点进行存储。
本实施例中,利用区块链的数字签名机制进行智能洗衣设备身份认证,实现了设备数字身份的严格验证,保证了智能洗衣设备的有效性;进一步的,利用对称加密算法对用户信息进行脱敏处理,保证了数据传输过程中不被拦截导致信息泄露;并且,智能洗衣设备的相关数据全部加密后上链存储在区块链中,基于区块链分布式数据存储、共识机制以及不可篡改的特性,实现了数据公开透明且不可篡改,保证了数据的真实性和可靠性
图3是本发明一示例性实施例示出的基于区块链的数据传输系统的结构示意图。
如图3所示,本实施例提供的系统包括:智能洗衣设备认证平台301,区块链服务器节点302,智能洗衣设备303;所述智能洗衣设备认证平台用于:获取智能洗衣设备的标识信息,根据所述标识信息生成对称密钥和公私钥对,并将所述对称密钥和公私钥对存储于区块链服务器节点,所述标识信息与所述智能洗衣设备为一一对应的关系;所述智能洗衣设备用于:利用所述对称密钥对待传输数据进行加密处理,利用所述公私钥对对所述加密后的数据进行数字签名,得到签名后的数据,将所述签名后的数据发送至所述区块链服务器节点;所述区块链服务器节点用于:对所述签名后的数据进行验签,并在验证成功时解密所述加密后的数据,解析所述解密后的数据,将解析得到的数据进行上链。
其中,智能洗衣设备的数量为至少一个。
进一步的,参见图3,本实施例提供的系统还包括:业务云平台304,用于给智能洗衣设备调用接口,并向智能洗衣设备发送设备指令;所述智能洗衣设备还用于:接收业务云平台发送的设备指令,并对所述设备指令进行处理,得到待传输数据。
进一步的,所述智能洗衣设备的安全芯片中存储有软件开发工具包SDK;所述智能洗衣设备认证平台还用于:利用所述SDK根据所述公私钥对生成区块链交易信息,所述区块链交易信息包括所述公私钥对;将所述区块链交易信息和所述对称密钥存储至所述安全芯片中。
进一步的,所述智能洗衣设备具体用于:通过所述公私钥对中的公钥对所述加密后的数据进行数据签名,得到签名后的数据。
进一步的,所述区块链服务器节点具体用于:所述区块链服务器节点在链上获取所述智能洗衣设备对应的公私钥对,并通过所述公私钥对中的私钥对所述签名后的数据进行验签。
进一步的,所述区块链服务器节点具体用于:获取所述智能洗衣设备对应的设备协议;根据所述设备协议对所述解密后的数据进行解析。
进一步的,所述智能洗衣设备具体用于:调用所述安全芯片中的SDK中的接口,通过所述接口将所述签名后的数据发送至所述区块链服务器节点。
本实施例中各个模块的详细功能描述请参考有关该方法的实施例中的描述,此处不做详细阐述说明。
图4为本发明实施例提供的计算机设备的硬件结构示意图。如图4所示,本实施例提供的计算机设备40包括:至少一个处理器401和存储器402。其中,处理器401、存储器402通过总线403连接。
在具体实现过程中,至少一个处理器401执行所述存储器402存储的计算机执行指令,使得至少一个处理器401执行上述方法实施例中的基于区块链的数据传输方法。
处理器401的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述的图4所示的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本申请的另一实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现上述方法实施例中的基于区块链的数据传输方法。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。