CN114329596A - 一种物联网设备的固件更新方法、装置及系统 - Google Patents
一种物联网设备的固件更新方法、装置及系统 Download PDFInfo
- Publication number
- CN114329596A CN114329596A CN202111646699.5A CN202111646699A CN114329596A CN 114329596 A CN114329596 A CN 114329596A CN 202111646699 A CN202111646699 A CN 202111646699A CN 114329596 A CN114329596 A CN 114329596A
- Authority
- CN
- China
- Prior art keywords
- firmware
- key
- internet
- blockchain network
- ciphertext
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000005192 partition Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 9
- 238000013500 data storage Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000003999 initiator Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Abstract
本说明书实施例提供了一种物联网设备的固件更新方法、装置及系统。该固件更新系统包括物联网设备、服务器和区块链网络。服务器获取待进行更新的包含隐私数据的固件之后,利用加密秘钥将该固件加密成加密固件,通过提交交易,在区块链网络中存储该加密固件,保护固件数据隐私。接着,服务器通过提交交易,在区块链网络中存储密文秘钥;其中,密文秘钥是利用物联网设备的公钥,对加密秘钥对应的解密秘钥进行加密而得到的。物联网设备从区块链网络中获取加密固件和密文秘钥,并利用与公钥对应的私钥以及密文秘钥,从加密固件中解密出原始的固件,基于该固件对自身的固件进行更新。
Description
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种物联网设备的固件更新方法、装置及系统。
背景技术
随着技术的发展,物联网的应用越来越广泛。物联网(Internet of Things)是通过信息传感设备,将任何物体与互联网连接起来,物体通过信息传播媒介进行信息交换,能够实现智能化识别、定位、跟踪、监管等功能。物联网设备是指设置有芯片、传感器等部件的物体,能够通过芯片部件与互联网进行数据传输。固件是一种写入硬件设备的软件,能够对应用和各项系统功能实施控制,是物联网设备正常工作的软件支持。对物联网设备的固件进行更新升级,能够使得物联网设备更稳定、更高效地运行。
因此,希望能有改进的方案,可以提高固件的安全性以及不可篡改性,使得物联网设备能够更安全、顺利地更新固件。
发明内容
本说明书一个或多个实施例描述了一种物联网设备的固件更新方法、装置及系统,以提高固件的安全性以及不可篡改性,使得物联网设备能够更安全、顺利地更新固件。具体的技术方案如下。
第一方面,实施例提供了一种物联网设备的固件更新方法,应用于固件更新系统,所述固件更新系统包括物联网设备、服务器和区块链网络;
所述服务器,获取用于对所述物联网设备的固件进行更新的第一固件,利用第一加密秘钥将所述第一固件加密成加密固件,通过提交第一交易,在所述区块链网络中存储所述加密固件;
所述服务器,通过提交第二交易,在所述区块链网络中存储密文秘钥;其中,所述密文秘钥是利用所述物联网设备的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的;
所述物联网设备,从所述区块链网络中获取所述加密固件,从所述区块链网络中获取所述密文秘钥;利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件,基于所述第一固件对自身的固件进行更新。
在一种实施方式中,所述服务器,利用第一加密秘钥将所述第一固件加密成加密固件,通过提交第一交易,在所述区块链网络中存储所述加密固件的步骤,包括:
将所述第一固件拆分成n个固件分块;
利用所述第一加密秘钥分别对所述n个固件分块进行加密,得到n个加密固件;
通过提交多个第一交易,在所述区块链网络的若干个区块中分别存储所述n个加密固件。
在一种实施方式中,该方法还包括:
所述服务器,在存储所述n个加密固件之后,获取包含所述n个加密固件的若干个区块的区块信息,并将所述区块信息发送至对应的所述物联网设备;
所述物联网设备,接收所述服务器发送的区块信息。
在一种实施方式中,所述区块信息包括区块标识和所述若干个区块之间的顺序信息,所述顺序信息用于表征所述若干个区块中的n个固件分块的组合顺序;
所述物联网设备,从所述区块链网络中获取所述加密固件的步骤,包括:
利用所述区块标识,从所述区块链网络中获取包含所述n个加密固件的若干个区块,并从所述若干个区块中获取所述n个加密固件;
所述物联网设备,利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件的步骤,包括:
利用与所述第一公钥对应的私钥从所述密文秘钥中解密出所述第一解密秘钥;
利用所述第一解密秘钥从所述n个加密固件中解密出n个固件分块;
基于所述顺序信息将所述n个固件分块组合成所述第一固件。
在一种实施方式中,所述第二交易用于调用智能合约,所述智能合约的运行逻辑包括存储逻辑和查找逻辑,所述存储逻辑用于存储所述密文秘钥;所述查找逻辑包括:从存储的密文秘钥中查找与输入的物联网设备的第一标识对应的密文秘钥;
所述物联网设备,从所述区块链网络中获取所述密文秘钥的步骤,包括:
向所述区块链网络提交调用所述智能合约的第三交易,其中包括所述第一标识作为入参;
所述区块链网络,基于所述第三交易执行所述智能合约中的查找逻辑,以从存储的密文秘钥中查找与所述第一标识对应的密文秘钥。
在一种实施方式中,所述第二交易的入参包括所述第一公钥;
所述区块链网络,基于所述第二交易执行所述智能合约中的存储逻辑,以在可信执行环境中利用所述第一公钥将所述第一解密秘钥加密成密文秘钥,并存储所述密文秘钥。
在一种实施方式中,该方法还包括:
物联网设备,在对自身的固件进行更新之后,删除所述第一固件和所述第一解密秘钥。
第二方面,实施例提供了一种物联网设备的固件更新方法,应用于区块链网络,包括:
接收服务器提交的第一交易,通过执行所述第一交易,在所述区块链网络中存储加密固件;其中,所述加密固件是利用第一加密秘钥对第一固件加密得到,所述第一固件用于对物联网设备的固件进行更新;
接收所述服务器提交的第二交易,通过执行所述第二交易,在所述区块链网络中存储密文秘钥;其中,所述密文秘钥是利用所述物联网设备的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的;
在接收到所述物联网设备发送的获取请求时,将所述加密固件和所述密文秘钥发送至所述物联网设备,以使得所述物联网设备利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件,并利用所述第一固件对所述物联网设备的固件进行更新。
第三方面,实施例提供了一种物联网设备的固件更新方法,应用于服务器,包括:
获取用于对物联网设备的固件进行更新的第一固件;
利用第一加密秘钥将所述第一固件加密成加密固件,向区块链网络提交第一交易,以在所述区块链网络中存储所述加密固件;
获取密文秘钥,向所述区块链网络提交第二交易,以在所述区块链网络中存储所述密文秘钥;其中,所述密文秘钥是利用所述物联网设备的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的,以使得所述物联网设备从所述区块链中获取所述加密固件和所述密文秘钥,利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件,并利用所述第一固件对所述物联网设备的固件进行更新。
第四方面,实施例提供了一种物联网设备的固件更新方法,应用于物联网设备,包括:
向区块链网络发送获取请求,以从所述区块链网络中获取加密固件和密文秘钥;其中,所述加密固件和密文秘钥是服务器分别通过第一交易和第二交易存储在所述区块链网络中的,所述加密固件是利用第一加密秘钥对第一固件加密得到,所述第一固件用于对所述物联网设备的固件进行更新,所述密文秘钥是利用所述物联网设备的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的;
利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件;
基于所述第一固件对自身的固件进行更新。
第五方面,实施例提供了一种物联网设备的固件更新装置,部署在区块链网络中,包括:
第一接收模块,配置为,接收服务器提交的第一交易,通过执行所述第一交易,在所述区块链网络中存储加密固件;其中,所述加密固件是利用第一加密秘钥对第一固件加密得到,所述第一固件用于对物联网设备的固件进行更新;
第二接收模块,配置为,接收所述服务器提交的第二交易,通过执行所述第二交易,在所述区块链网络中存储密文秘钥;其中,所述密文秘钥是利用所述物联网设备的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的;
发送模块,配置为,在接收到所述物联网设备发送的获取请求时,将所述加密固件和所述密文秘钥发送至所述物联网设备,以使得所述物联网设备利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件,并利用所述第一固件对所述物联网设备的固件进行更新。
第六方面,实施例提供了一种物联网设备的固件更新装置,部署在服务器中,包括:
第一获取模块,配置为,获取用于对物联网设备的固件进行更新的第一固件;
第一提交模块,配置为,利用第一加密秘钥将所述第一固件加密成加密固件,向区块链网络提交第一交易,以在所述区块链网络中存储所述加密固件;
第二提交模块,配置为,获取密文秘钥,向所述区块链网络提交第二交易,以在所述区块链网络中存储所述密文秘钥;其中,所述密文秘钥是利用所述物联网设备的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的,以使得所述物联网设备从所述区块链中获取所述加密固件和所述密文秘钥,利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件,并利用所述第一固件对所述物联网设备的固件进行更新。
第七方面,实施例提供了一种物联网设备的固件更新装置,部署在物联网设备中,包括:
第二获取模块,配置为,向区块链网络发送获取请求,以从所述区块链网络中获取加密固件和密文秘钥;其中,所述加密固件和密文秘钥是服务器分别通过第一交易和第二交易存储在所述区块链网络中的,所述加密固件是利用第一加密秘钥对第一固件加密得到,所述第一固件用于对所述物联网设备的固件进行更新,所述密文秘钥是利用所述物联网设备的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的;
解密模块,配置为,利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件;
更新模块,配置为,基于所述第一固件对自身的固件进行更新。
第八方面,实施例提供了一种物联网设备的固件更新系统,包括物联网设备、服务器和区块链网络;
所述服务器,用于获取用于对所述物联网设备的固件进行更新的第一固件,利用第一加密秘钥将所述第一固件加密成加密固件,向所述区块链网络提交第一交易;
所述区块链网络,用于执行所述第一交易,以在所述区块链网络中存储所述加密固件;
所述服务器,用于通过提交第二交易,在所述区块链网络中存储密文秘钥;其中,所述密文秘钥是利用所述物联网设备的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的;
所述区块链网络,用于执行所述第二交易,以在所述区块链网络中存储密文秘钥;
所述物联网设备,用于从所述区块链网络中获取所述加密固件,从所述区块链网络中获取所述密文秘钥;利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件,基于所述第一固件对自身的固件进行更新。
第九方面,实施例提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面至第四方面中任一项所述的方法。
第十方面,实施例提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面至第四方面中任一项所述的方法。
本说明书实施例提供的方法及装置中,将固件经过加密后存储在区块链网络中,将其解密秘钥通过物联网设备的公钥加密后也存储在区块链中。当物联网设备需要下载固件进行更新时,可以从区块链网络中获取加密固件和密文秘钥,通过自身的私钥和密文秘钥,对加密固件进行解密,从而得到用于进行固件更新的固件。将固件和解密秘钥存储在区块链网络中,保证了固件和解密秘钥的安全性和不可篡改性,并且只有可信的物联网设备能够解密出固件并进行固件更新,因此本说明书实施例提高了固件的安全性以及不可篡改性,能够促使物联网设备更安全、顺利地更新固件。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2为实施例提供的一种物联网设备的固件更新方法的流程示意图;
图3为实施例提供的一种利用分块的固件更新方法流程示意图;
图4为实施例提供的一种物联网设备的固件更新装置的示意性框图;
图5为实施例提供的一种物联网设备的固件更新装置的示意性框图;
图6为实施例提供的一种物联网设备的固件更新装置的示意性框图;
图7为实施例提供的一种物联网设备的固件更新系统的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。其中,服务器拥有待更新的固件,并且拥有对固件加密时使用的加密秘钥K1和对应的解密秘钥K2。①服务器使用加密秘钥K1将固件加密成加密固件,并使用物联网设备的公钥pub-K将解密秘钥K2加密成密文秘钥,服务器通过向区块链提交交易,将加密固件和密文秘钥存储在区块链网络中。②物联网设备,从区块链网络中获取加密固件和密文秘钥。③物联网设备利用自身的私钥pri-K和密文秘钥,对加密固件进行解密,得到待更新的固件,并对自身固件进行更新。图1仅仅示出了一个物联网设备,在实际应用中,可以存在多个物联网设备。
物联网设备可以设置在任意物体中,其包含芯片部件和传感器,通过传感器获取物体的状态数据或者环境数据,通过芯片部件可以将这些数据通过互联网进行传输。从软硬件角度,物联网设备可以划分为两部分,硬件和固件。通过固件,操作系统便能按照标准的设备驱动实现硬件特定的运行动作。固件是承担着操作系统中基础性、底层性工作的软件,决定着硬件设备的功能和性能,同时也包含着与设置有物联网设备的物体相关的隐私数据。
服务器是发行固件的中心设备。当服务器拥有了最新版的固件时,物联网设备可以通过远程连接的方式,从该服务器中下载固件的镜像文件,并利用下载的镜像文件更新自身的固件。但是,服务器容易遭受分布式拒绝服务(Distributed Denial of Service,DDoS)攻击,可能导致固件的镜像文件被泄露、被破坏或者篡改,从而造成大量物联网设备出现安全问题,或者不能及时更新固件,从而给用户或企业造成潜在损失。
为了提高固件的安全性、隐私性以及不可篡改性,使得物联网设备能够更安全、顺利地更新固件,本说明书实施例提供了一种物联网设备的固件更新方法。其中,在步骤S210中,服务器在获取用于对物联网设备的固件进行更新的第一固件之后,利用第一加密秘钥将第一固件加密成加密固件,接着,在步骤S220中服务器向区块链网络提交第一交易,以在区块链网络中存储加密固件。在步骤S230中,区块链网络执行第一交易,在区块链网络中存储加密固件。在步骤S240中,服务器向区块链网络提交第二交易,以在区块链网络中存储密文秘钥;其中,该密文秘钥是利用物联网设备的第一公钥,对第一加密秘钥对应的第一解密秘钥进行加密而得到的。在步骤S250中,区块链网络执行第二交易,在区块链网络中存储密文秘钥。在步骤S260中,物联网设备从区块链网络中获取加密固件,从区块链网络中获取密文秘钥。在步骤S270中,物联网设备利用与第一公钥对应的私钥以及密文秘钥,从加密固件中解密出第一固件,基于第一固件对自身的固件进行更新。
在本说明书实施例中,服务器将加密固件和加密后的解密秘钥存储在区块链网络中,保证了固件和解密秘钥的安全性、隐私性和不可篡改性。物联网设备可以从区块链网络中获取加密固件和加密后的解密秘钥,只有可信的物联网设备能够通过解密得到待更新的固件,并对自身的固件进行更新,从而能够保证固件的安全性,使得固件更新的过程更安全、更顺利。
本说明书实施例将固件更新与区块链进行结合,利用了区块链中的上链数据不可篡改的特性实现对固件的保护。这里,有必要对区块链网络进行一些说明。本说明书的实施例中,区块链可以是联盟链,也可以是公有链。如本领域技术人员所知,区块链网络是一种分布式存储、记录的体系,其中包括多个节点设备。参见图1所示的区块链网络,各个节点设备之间可以互相发送交易和签名,其中交易Tx是区块链中的基本处理单位,存储在区块链网络上的各种数据,以及通过区块链网络进行的数据处理,一般以交易为载体进行。节点设备在一段时间内会接收到多个交易Tx,通过广播、共识、验证等过程,可以将这些交易Tx打包形成区块,记录在区块链上,完成区块上链。共识机制包括工作量证明(POW)、权益证明(Proof of Stake,PoS)和拜占庭容错共识(Byzantine Fault Tolerance,BFT)等。在一种实施方式中,在联盟链中可以使用BFT作为共识机制。在目前主流的区块链网络中,一个区块可以存储上百条交易,在区块上链之后,每个节点设备都按照该区块中的顺序执行交易Tx。在区块链技术领域中,执行上述过程的节点设备可以称为全节点或记账节点,它是可以基于交易Tx生成新的区块并将区块上链的计算设备。图1中的圆圈代表节点,其中显示的节点设备数量以及节点设备之间的连接关系仅仅是一种举例,在实际应用中,区块链网络的节点设备可以更多或者更少。
下面结合图2对本实施例进行具体说明。这里说明一下,本说明书实施例中的第一固件、第一加密秘钥、第一解密秘钥、第一交易、第一公钥等词语中的“第一”,以及文中的“第二”等序号,仅仅是为了区分和描述方便,而不具有任何限定意义。
图2为实施例提供的一种物联网设备的固件更新方法的流程示意图。该方法涉及物联网设备、服务器和区块链网络。在一种实施方式中,可以将这三者看成是一个系统,即固件更新系统,通过该固件更新系统中各方之间的相互配合,实现物联网设备的固件更新。其中,区块链网络中的任意节点设备和服务器,均可以通过任何具有计算、处理能力的装置、设备、平台、设备集群等来实现。本实施例中涉及的物联网设备,可以是任意物体中设置的物联网设备。该物联网设备可以包含芯片部件和传感器。芯片部件可以是窄带物联网(Narrow Band Internet of Things,NB-IoT)模组或者采用包含微控制单元(Microcontroller Unit,MCU)的芯片部件。
为了使得描述更加清楚,下面会从不同设备的角度进行说明,并以A、B、C分别作为服务器、区块链网络和物联网设备的标识。该实施例的方法包括以下步骤S210~S270。
步骤S210,服务器A获取用于对物联网设备C的固件进行更新的第一固件,利用第一加密秘钥(例如可以采用K1标识)将第一固件加密成加密固件。该加密固件是利用第一加密秘钥K1对第一固件加密得到,第一固件用于对物联网设备C的固件进行更新。
服务器A可以是用于开发新版固件的服务方的设备,也可以是用于发布新版固件的服务方的设备。第一固件是新版固件,用于对物联网设备C的已安装固件进行更新、升级。物联网设备C是已经注册的合法设备,服务器A拥有物联网设备C的第一公钥pub-K。物联网设备C可以是一个,也可以是多个。也就是说,第一固件可以用于对某个物联网设备的固件进行更新,也可以用于对批量的物联网设备的固件进行更新。为了使得描述更简洁、清楚,在不进行特别说明的情况下,本实施例会以一个物联网设备C为例进行说明。
服务器A获取的第一固件,可以是第一固件的镜像文件,其中包含安装、升级所需要的所有文件。第一固件的发布需要进行保密,为了防止无关者或恶意者获取第一固件,可以利用第一加密秘钥K1对其进行加密。
在利用第一加密秘钥K1对第一固件进行加密时,可以采用对称加密算法,例如高级加密标准(Advanced Encryption Standard,AES);也可以采用非对称加密算法,例如数字签名算法(Digital Signature Algorithm,DSA)。与第一加密秘钥K1对应的解密秘钥是第一解密秘钥K2。当采用对称加密算法时,第一加密秘钥K1与第一解密秘钥K2相同。当采用非对称加密算法时,第一加密秘钥K1与第一解密秘钥K2不同。
步骤S220,服务器A向区块链网络B提交第一交易Tx1,以在区块链网络B中存储该加密固件。
步骤S230,区块链网络B接收服务器A提交的第一交易Tx1,通过执行第一交易Tx1,在区块链网络B中存储加密固件。
服务器A可以通过自身安装的客户端与区块链网络建立连接。客户端可以基于软件开发工具包(Software Development Kit,SDK)与区块链网络中的任意一个节点设备建立连接。服务器A也可以直接与区块链网络中的节点设备连接。当服务器A与节点设备建立连接之后,可以向区块链网络提交交易,实现交易所对应的功能。
服务器A生成第一交易Tx1的方式可以包含很多种,例如可以直接生成携带加密固件的第一交易Tx1。具体的,交易内容可以包括发起方from字段,接收方to字段以及数据data字段。在生成第一交易Tx1时,可以将其from字段设置为服务器的地址,to字段可以但不限于设置为某个默认地址,在data字段中设置加密固件。
在另一种实施方式中,服务器A可以生成用于调用数据存储合约的第一交易Tx1,第一交易Tx1中的入参包括加密固件。具体的,可以将第一交易Tx1的from字段设置为服务器的地址,to字段设置为数据存储合约的合约地址,在data字段中设置入参的数据。其中,数据存储合约是一种智能合约,其可以是预先部署在区块链网络B中的智能合约。数据存储合约中的运行逻辑,包括将入参记录下来。该数据存储合约可以通过任意一个账户生成的、用于创建该数据存储合约的交易,而部署在区块链网络B中。
服务器A在向区块链网络B提交第一交易Tx1的同时,还可以提交服务方的数字签名。该数字签名用于对第一交易Tx1的源于进行证明。该数字签名,可以利用服务方的私钥对加密固件的摘要进行加密而得到。
区块链网络B中的节点设备在接收到第一交易Tx1时,对第一交易Tx1的数字签名进行验证。节点设备可以获取服务器的公钥,利用该公钥对数字签名进行解密,将解密得到的摘要与利用第一交易Tx1中的加密固件直接计算的摘要,进行比对验证。当验证通过后,将第一交易Tx1广播至区块链网络中的所有节点设备,以使得多个节点设备均接收到该第一交易Tx1。多个节点设备通过共识机制将第一交易Tx1添加到区块链中,完成上链。多个节点设备按照上链的区块中交易的顺序执行交易,包括执行第一交易Tx1。将第一交易Tx1存储在区块链网络的区块中,即实现了将加密固件存储在区块链网络中。
服务器A在向区块链网络B中存储加密固件之后,还可以从区块链网络B的节点设备中获取包含该加密固件的区块的区块信息,并将该区块信息发送至物联网设备C。其中,区块信息可以包括区块hash值和/或区块高度,还可以包括携带该加密固件的交易的交易hash值。
步骤S240,服务器A向区块链网络B提交第二交易Tx2,以在区块链网络B中存储密文秘钥。其中,该密文秘钥是利用物联网设备C的第一公钥pub-K,对第一解密秘钥K2进行加密而得到的。密文秘钥是包含加密固件的解密秘钥的数据。
步骤S250,区块链网络B接收服务器A提交的第二交易Tx2,通过执行第二交易Tx2,在区块链网络B中存储密文秘钥。
服务器A在生成第二交易Tx2时可以包含多种实施方式。例如,可以直接生成携带密文秘钥的第二交易Tx2。具体的,在生成第二交易Tx2时,可以将其from字段设置为服务器的地址,to字段可以但不限于设置为某个默认地址,将密文秘钥设置在第二交易Tx2的data字段中。
在一种实施方式中,服务器A可以生成用于调用数据存储合约的第二交易Tx2,第二交易Tx2的入参包含密文秘钥。具体的,可以将第二交易Tx2的from字段设置为服务器的地址,to字段设置为数据存储合约的合约地址,在data字段中设置入参的数据。
服务器A在向区块链网络B提交第二交易Tx2的同时,可以提交服务方的数字签名。区块链网络B中的节点设备在接收到第二交易Tx2时,对第二交易Tx2的数字签名进行验证。当验证通过后,将第二交易Tx2广播至区块链网络中的所有节点设备,以使得多个节点设备均接收到该第二交易Tx2。多个节点设备通过共识机制将第二交易Tx2添加到区块链中,完成上链。
在一种实施方式中,加密固件和密文秘钥也可以通过同一个交易存储在区块链网络中,也就是第一交易Tx1与第二交易Tx2是同一个交易,采用同一个交易实现。
为了提高加密固件和密文秘钥的安全性,可以分别通过不同的交易将加密固件和密文秘钥存储在区块链网络B中。也就是,第一交易Tx1与第二交易Tx2不是同一个交易。
当采用将密文秘钥携带在第二交易Tx1中的方式,将密文秘钥存储在区块链网络B中时,服务器A还可以从区块链网络B的节点设备中获取包含该密文秘钥的区块的区块信息,并将该区块信息发送至物联网设备C。其中,区块信息可以包括区块hash值和/或区块高度,还可以包括携带该加密固件的交易的交易hash值。
下面再来对密文秘钥进行说明。当物联网设备C的数量不止一个时,密文秘钥的数量也不止一个。每一个物联网设备C存在其对应的公钥和私钥,采用一个物联网设备的公钥对第一解密秘钥K2进行加密,可以得到一个密文秘钥。因此,一个物联网设备对应一个密文秘钥,从而可以得到物联网设备的标识与密文秘钥的对应关系。针对任意一个物联网设备C,利用其第一公钥pub-K对第一解密秘钥K2进行加密时,可以采用非对称加密算法进行加密。
当密文秘钥的数量较多时,为了方便物联网设备后续查询自身的密文秘钥,第二交易Tx2可以用于调用智能合约,该智能合约的运行逻辑包括存储逻辑和查找逻辑,存储逻辑用于存储密文秘钥,查找逻辑包括:从存储的密文秘钥中查找与输入的物联网设备标识对应的密文秘钥。也就是,采用智能合约的存储逻辑存储多个密文秘钥之后,还可以利用该智能合约的查找逻辑,查找某个物联网设备的密文秘钥。
当密文秘钥的确定方式不同时,第二交易Tx2的入参也会不同。例如,服务器A直接利用物联网设备C的第一公钥pub-K,对第一解密秘钥K2进行加密,得到该物联网设备C的密文秘钥。在这种方式中,服务器A在生成第二交易Tx2时,其入参可以直接包括该密文秘钥。
一般来说,利用物联网设备C的公钥对第一解密秘钥K2进行加密的过程非常关键,保密性要求比较高。因此,为了提高安全性,密文秘钥的加密过程可以在区块链网络的可信执行环境(Trusted Execution Environment,TEE)中执行。
区块链网络中应用了TEE技术的节点设备,其隔离能力能够防止其他应用程序窥探和篡改节点设备的应用程序和数据,从而保证计算的安全性。TEE可以通过可信的计算围圈(Enclave),且可以采用软件保护扩展(Software Guard Extension,SGX)或信任域(Trust Zone)等技术来实现。
在这种实施方式种,第二交易Tx2的入参可以包括物联网设备C的第一公钥pub-K。第二交易Tx2用于调用的智能合约的存储逻辑,包括在TEE中利用入参中的公钥将第一解密秘钥K2加密成密文秘钥,并存储得到的密文秘钥。第一解密秘钥K2可以通过加密的方式添加在第二交易Tx2的入参中,也就是,第二交易Tx2的入参可以包括第一公钥pub-K和第一解密秘钥K2;也可以预先设置在TEE中。
区块链网络B,基于第二交易Tx2执行智能合约中的存储逻辑,以在TEE中利用第一公钥pub-K将第一解密秘钥K2加密成密文秘钥,并存储该密文秘钥。
智能合约的上述存储逻辑,可以是通过任意一个交易配置在区块链网络中的,也可以不通过交易而直接配置在区块链网络的节点设备中。
当采用智能合约的方式,将密文秘钥存储在区块链网络B中时,服务器A可以将该智能合约的合约地址发送至物联网设备C。当该智能合约包含多个运行逻辑时,例如包括存储逻辑和查找逻辑时,服务器A还可以将智能合约的查找逻辑发送至物联网设备C。
步骤S260,物联网设备C从区块链网络B中获取加密固件,从区块链网络B中获取密文秘钥。
物联网设备C可以通过自身安装的客户端与区块链网络建立连接。该客户端可以基于软件开发工具包SDK与区块链网络中的任意一个节点设备建立连接。在与节点设备建立连接之后,物联网设备C可以从区块链网络B中读取已经上链的区块,从而获取其中的信息。
例如,物联网设备C可以向区块链网络B发送获取请求,该获取请求可以用于获取加密固件,和/或用于获取密文秘钥。区块链网络B针对该获取请求,从上链的区块中获取对应的包含加密固件的区块,和/或,从上链的区块中获取对应的包含密文秘钥的区块。
物联网设备C可以从服务器A中获取包含加密固件的区块的区块信息,利用该区块信息,从区块链网络B中获取加密固件。例如,可以利用区块信息中的区块hash值和/或区块高度,确定用于存储加密固件的区块;接着,利用区块信息中的交易hash值,从该区块中确定用于存储加密固件的交易,从该交易中解析出加密固件。
当采用将密文秘钥携带在第二交易Tx1中的方式,将密文秘钥存储在区块链网络B中时,物联网设备C可以从服务器A中获取包含密文秘钥的区块的区块信息,利用该区块信息,从区块链网络B中获取密文秘钥。例如,可以利用该区块信息中的区块hash值和/或区块高度,确定用于存储密文秘钥的区块;接着,利用区块信息中的交易hash值,从该区块中确定用于存储密文秘钥的交易,从该交易中解析出密文秘钥。
当采用智能合约的方式,将密文秘钥存储在区块链网络B中时,物联网设备C可以从服务器A中获取该智能合约的合约地址,利用该合约地址,通过提交交易的方式查找密文秘钥。当该智能合约包含多个运行逻辑时,例如包括存储逻辑和查找逻辑时,物联网设备C还可以从服务器A中获取该查找逻辑,该查找逻辑采用对应的函数表示。
例如,物联网设备C可以向区块链网络B提交调用智能合约的第三交易Tx3,第三交易Tx3中包括物联网设备C的第一标识作为入参,也可以包括查找逻辑作为入参。这里是以任意一个物联网设备C为例进行说明。其中,第一标识,可以是该物联网设备C的公钥,也可以是该物联网设备的设备标识。
具体的,可以将第三交易Tx3的from字段设置为服务器的地址,to字段设置为该智能合约的合约地址,在data字段中设置第一标识、查找逻辑等入参的数据。
区块链网络C,基于第三交易Tx3执行智能合约中的查找逻辑,以从存储的密文秘钥中查找与第一标识对应的密文秘钥。第一标识对应的密文秘钥可以作为查找逻辑的返回值,区块链网络C中的节点设备可以读取该返回值,并将该返回值发送至物联网设备C。物联网设备C接收节点设备发送的该返回值。
步骤S270,物联网设备C利用与第一公钥pub-K对应的私钥pri-K以及密文秘钥,从加密固件中解密出第一固件,基于第一固件对自身的固件进行更新。
物联网设备C可以利用自身的私钥pri-K和对应的解密算法,从密文秘钥中解密出第一解密秘钥K2,利用第一解密秘钥K2和对应的解密算法从加密固件中解密出第一固件。物联网设备C基于第一固件对自身的固件进行更新时,可以是将第一固件替换自身的固件,可以替换自身的全部固件或部分固件。
在对自身的固件进行更新之后,物联网设备C删除第一固件和第一解密秘钥K2。这样能够防止第一固件和第一解密秘钥K2泄露,也能节省内存空间。
在本说明书的另一实施例中,当待更新的固件数据量比较大时,无法通过一个交易存储在区块链网络中。这时,可以对固件进行分块,并通过多个交易存储在区块链网络中。参见图3,图3为实施例提供的一种利用分块的固件更新方法流程示意图。该实施例是在图2所示实施例的基础上得到的另一实施例,以下描述中仅就图3实施例与图2实施例的不同之处进行说明,相同之处可以参见图2所示实施例。
在步骤S210中,服务器A在确定加密固件时,可以将第一固件拆分成n个固件分块,利用第一加密秘钥K1分别对n个固件分块进行加密,得到n个加密固件。
其中,服务器A在对第一固件进行拆分时,可以根据交易所能携带的数据量进行拆分,也可以根据预设的拆分规则进行拆分,例如默认将第一固件拆分成预设数据量大小的多个分块。n为整数。
在步骤S220中,服务器A通过向区块链网络B提交多个第一交易Tx1,在区块链网络B的若干个区块中分别存储n个加密固件,采用多交易存储的方式存储n个加密固件。
例如,可以采用n个第一交易Tx1,分别携带n个加密固件,使得服务器A向区块链网络B提交n个第一交易Tx1。当然,也可以采用少于n个的第一交易Tx1,分别携带n个加密固件的方式进行存储。
服务器A向区块链网络B提交的多个第一交易Tx1,在区块链网络B中上链之后,可能会分布在若干个区块中,若干个区块可以理解为一个或多个。具体的区块数量,会由当时的上链情况决定。
在存储n个加密固件之后,服务器A可以获取包含n个加密固件的若干个区块的区块信息,并将该区块信息发送至对应的物联网设备C。物联网设备C接收服务器A发送的区块信息。也就是说,在本实施例中,服务器A还可以向物联网设备C发送多个区块的顺序信息,该顺序信息可以理解为n个固件分块的索引,该索引可以用于对多个固件分块进行组合。
其中,区块信息包括区块标识和上述若干个区块之间的顺序信息,该顺序信息用于表征上述若干个区块中的n个固件分块的组合顺序。例如,在已经上链的区块3、区块1和区块4中分别包含了交易a、交易b和交易c,这三个交易中分别携带了加密后的固件分块1、固件分块2和固件分块3。已知固件的组合顺序是固件分块1—固件分块2—固件分块3,则已经上链的三个区块的顺序信息可以表示为:区块3、区块1和区块4。
在步骤S260中,物联网设备C从区块链网络中获取加密固件时,可以利用区块标识,从区块链网络B中获取包含n个加密固件的若干个区块,并从这若干个区块中获取n个加密固件。
在从这若干个区块中获取n个加密固件时,可以利用区块信息中包含的多个交易hash值,从若干个区块中获取对应的多个交易,并从这多个交易中解析出n个加密固件。其中,区块信息中还可以包含的多个交易hash值。具体的,例如可以从交易的data字段中解析加密固件。
在步骤S270中,物联网设备C从加密固件中解密出第一固件时,可以利用私钥pri-K从密文秘钥中解密出第一解密秘钥K2,利用第一解密秘钥K2从n个加密固件中解密出n个固件分块,基于顺序信息将n个固件分块组合成第一固件。在解密时,采用与加密算法对应的解密算法进行。
在一种实施方式中,第一加密秘钥K1可以包含多个子秘钥。服务器A可以利用多个子秘钥分别对n个固件进行加密,得到n个加密固件;并利用物联网设备的第一公钥pub-K分别对多个子秘钥进行加密,得到多个密文秘钥。
物联网设备C可以从区块链网络中获取多个密文秘钥,并利用私钥pri-K分别对多个密文秘钥进行解密,得到第一解密秘钥K2包含的多个子秘钥,利用这多个子秘钥分别从n个加密固件中解密出n个固件分块。
在本实施例中,待更新的固件被分块加密,并存放到区块链网络中,能够实现将大数据量的固件存储在区块链网络中,物联网设备可以分块式下载加密固件。分块式存储的方式能提高固件的安全性,避免固件被篡改,分块式下载的方式也能够避免中心化服务器被攻击的问题。
当有新注册的物联网设备出现时,服务器A可以获取该新注册的物联网设备的公钥,并生成用于调用智能合约的存储逻辑的交易,其中入参是该新注册的物联网设备的公钥。区块链网络基于该交易执行智能合约的存储逻辑,在TEE中利用入参中的该公钥将第一解密秘钥K2加密成对应的密文秘钥,并存储该密文秘钥。
该新注册的物联网设备在获取其对应的密文秘钥时,可以向区块链网络提交调用智能合约的查询逻辑的交易,其入参包括该新注册的物联网设备的标识。区块链网络基于该交易执行智能合约的查询逻辑,以从存储的密文秘钥中查找与输入的新注册的物联网设备标识对应的密文秘钥。
可见,本实施例能够支持物联网设备的扩容,使得新注册的物联网设备也能够便利地利用区块链网络进行固件更新。
上述内容对本说明书的特定实施例进行了描述,其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行,并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要按照示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的,或者可能是有利的。
图4为实施例提供的一种物联网设备的固件更新装置的示意性框图。该装置400部署在区块链网络中,该装置实施例与图2所示方法实施例中区块链网络执行的方法相对应。该装置400包括:
第一接收模块410,配置为,接收服务器提交的第一交易,通过执行所述第一交易,在所述区块链网络中存储加密固件;其中,所述加密固件是利用第一加密秘钥对第一固件加密得到,所述第一固件用于对物联网设备的固件进行更新;
第二接收模块420,配置为,接收所述服务器提交的第二交易,通过执行所述第二交易,在所述区块链网络中存储密文秘钥;其中,所述密文秘钥是利用所述物联网设备的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的;
发送模块430,配置为,在接收到所述物联网设备发送的获取请求时,将所述加密固件和所述密文秘钥发送至所述物联网设备,以使得所述物联网设备利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件,并利用所述第一固件对所述物联网设备的固件进行更新。
图5为实施例提供的一种物联网设备的固件更新装置的示意性框图。该装置500部署在服务器中,该装置实施例与图2所示方法实施例中服务器执行的方法相对应。该装置500包括:
第一获取模块510,配置为,获取用于对物联网设备的固件进行更新的第一固件;
第一提交模块520,配置为,利用第一加密秘钥将所述第一固件加密成加密固件,向区块链网络提交第一交易,以在所述区块链网络中存储所述加密固件;
第二提交模块530,配置为,获取密文秘钥,向所述区块链网络提交第二交易,以在所述区块链网络中存储所述密文秘钥;其中,所述密文秘钥是利用所述物联网设备的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的,以使得所述物联网设备从所述区块链中获取所述加密固件和所述密文秘钥,利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件,并利用所述第一固件对所述物联网设备的固件进行更新。
在一种实施方式中,所述第一提交模块520具体配置为:
将所述第一固件拆分成n个固件分块;
利用所述第一加密秘钥分别对所述n个固件分块进行加密,得到n个加密固件;
向区块链网络提交多个第一交易,以在所述区块链网络的若干个区块中分别存储所述n个加密固件。
在一种实施方式中,该装置500还包括:
信息发送模块,配置为,在存储所述n个加密固件之后,获取包含所述n个加密固件的若干个区块的区块信息,并将所述区块信息发送至对应的所述物联网设备,以使所述物联网设备利用所述区块信息从所述区块链网络中获取所述n个加密固件。
在一种实施方式中,所述第二交易用于调用智能合约,所述智能合约的运行逻辑包括存储逻辑和查找逻辑,所述存储逻辑用于存储所述密文秘钥,所述查找逻辑包括:从存储的密文秘钥中查找与输入的物联网设备的第一标识对应的密文秘钥。
在一种实施方式中,所述第二交易的入参包括所述第一公钥;
所述区块链网络,基于所述第二交易执行所述智能合约中的存储逻辑,以在可信执行环境中利用所述第一公钥将所述第一解密秘钥加密成密文秘钥,并存储所述密文秘钥。
图6为实施例提供的一种物联网设备的固件更新装置的示意性框图。该装置600部署在物联网设备中,该装置实施例与图2所示方法实施例中物联网设备执行的方法相对应。该装置600包括:
第二获取模块610,配置为,向区块链网络发送获取请求,以从所述区块链网络中获取加密固件和密文秘钥;其中,所述加密固件和密文秘钥是服务器分别通过第一交易和第二交易存储在所述区块链网络中的,所述加密固件是利用第一加密秘钥对第一固件加密得到,所述第一固件用于对所述物联网设备的固件进行更新,所述密文秘钥是利用所述物联网设备的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的;
解密模块620,配置为,利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件;
更新模块630,配置为,基于所述第一固件对自身的固件进行更新。
在一种实施方式中,该装置600还包括:
信息接收模块(图中未示出),配置为,接收所述服务器发送的区块信息,所述区块信息是包含n个加密固件的若干个区块的信息,所述n个加密固件是对所述第一固件拆分成的n个固件分块加密得到。
在一种实施方式中,所述区块信息包括区块标识和所述若干个区块之间的顺序信息,所述顺序信息用于表征所述若干个区块中的n个固件分块的组合顺序;
所述第二获取模块610,从所述区块链网络中获取加密固件时,包括:
向所述区块链网络发送包含所述区块标识的获取请求,以从所述区块链网络中获取包含所述n个加密固件的若干个区块,并从所述若干个区块中获取所述n个加密固件;
所述解密模块620具体配置为:
利用与所述第一公钥对应的私钥从所述密文秘钥中解密出所述第一解密秘钥;
利用所述第一解密秘钥从所述n个加密固件中解密出n个固件分块;
基于所述顺序信息将所述n个固件分块组合成所述第一固件。
在一种实施方式中,所述第二交易用于调用智能合约,所述智能合约的运行逻辑包括存储逻辑和查找逻辑,所述存储逻辑用于存储所述密文秘钥;所述查找逻辑包括:从存储的密文秘钥中查找与输入的物联网设备的第一标识对应的密文秘钥;
第二获取模块610,从所述区块链网络中获取所述密文秘钥时,包括:
向所述区块链网络提交调用所述智能合约的第三交易,其中包括所述第一标识作为入参,以使得所述区块链网络基于所述第三交易执行所述智能合约中的查找逻辑,以从存储的密文秘钥中查找与所述第一标识对应的密文秘钥。
在一种实施方式中,装置600还包括:
删除模块(图中未示出),配置为,在对自身的固件进行更新之后,删除所述第一固件和所述第一解密秘钥。
上述各个装置实施例与方法实施例相对应,具体说明可以参见方法实施例部分的描述,此处不再赘述。装置实施例是基于对应的方法实施例得到,与对应的方法实施例具有同样的技术效果,具体说明可参见对应的方法实施例。
图7为实施例提供的一种物联网设备的固件更新系统的示意性框图。该固件更新系统包括服务器710、区块链网络720和物联网设备730。该系统实施例与图2所示方法实施例相对应。
其中,服务器710,用于获取用于对所述物联网设备730的固件进行更新的第一固件,利用第一加密秘钥将所述第一固件加密成加密固件,向所述区块链网络720提交第一交易;
所述区块链网络720,用于执行所述第一交易,以在所述区块链网络720中存储所述加密固件;
所述服务器710,用于通过提交第二交易,在所述区块链网络720中存储密文秘钥;其中,所述密文秘钥是利用所述物联网设备730的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的;
所述区块链网络720,用于执行所述第二交易,以在所述区块链网络720中存储密文秘钥;
所述物联网设备730,用于从所述区块链网络720中获取所述加密固件,从所述区块链网络720中获取所述密文秘钥;利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件,基于所述第一固件对自身的固件进行更新。
上述系统实施例与方法实施例相对应,具体说明可以参见方法实施例部分的描述,此处不再赘述。系统实施例是基于对应的方法实施例得到,与对应的方法实施例具有同样的技术效果,具体说明可参见对应的方法实施例。
本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行图1至图3任一项所述的方法。
本说明书实施例还提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现图1至图3任一项所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于存储介质和计算设备实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明实施例的目的、技术方案和有益效果进行了进一步的详细说明。所应理解的是,以上所述仅为本发明实施例的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (16)
1.一种物联网设备的固件更新方法,应用于固件更新系统,所述固件更新系统包括物联网设备、服务器和区块链网络;
所述服务器,获取用于对所述物联网设备的固件进行更新的第一固件,利用第一加密秘钥将所述第一固件加密成加密固件,通过提交第一交易,在所述区块链网络中存储所述加密固件;
所述服务器,通过提交第二交易,在所述区块链网络中存储密文秘钥;其中,所述密文秘钥是利用所述物联网设备的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的;
所述物联网设备,从所述区块链网络中获取所述加密固件,从所述区块链网络中获取所述密文秘钥;利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件,基于所述第一固件对自身的固件进行更新。
2.根据权利要求1所述的方法,所述服务器,利用第一加密秘钥将所述第一固件加密成加密固件,通过提交第一交易,在所述区块链网络中存储所述加密固件的步骤,包括:
将所述第一固件拆分成n个固件分块;
利用所述第一加密秘钥分别对所述n个固件分块进行加密,得到n个加密固件;
通过提交多个第一交易,在所述区块链网络的若干个区块中分别存储所述n个加密固件。
3.根据权利要求2所述的方法,其中还包括:
所述服务器,在存储所述n个加密固件之后,获取包含所述n个加密固件的若干个区块的区块信息,并将所述区块信息发送至对应的所述物联网设备;
所述物联网设备,接收所述服务器发送的区块信息。
4.根据权利要求3所述的方法,所述区块信息包括区块标识和所述若干个区块之间的顺序信息,所述顺序信息用于表征所述若干个区块中的n个固件分块的组合顺序;
所述物联网设备,从所述区块链网络中获取所述加密固件的步骤,包括:
利用所述区块标识,从所述区块链网络中获取包含所述n个加密固件的若干个区块,并从所述若干个区块中获取所述n个加密固件;
所述物联网设备,利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件的步骤,包括:
利用与所述第一公钥对应的私钥从所述密文秘钥中解密出所述第一解密秘钥;
利用所述第一解密秘钥从所述n个加密固件中解密出n个固件分块;
基于所述顺序信息将所述n个固件分块组合成所述第一固件。
5.根据权利要求1所述的方法,所述第二交易用于调用智能合约,所述智能合约的运行逻辑包括存储逻辑和查找逻辑,所述存储逻辑用于存储所述密文秘钥;所述查找逻辑包括:从存储的密文秘钥中查找与输入的物联网设备的第一标识对应的密文秘钥;
所述物联网设备,从所述区块链网络中获取所述密文秘钥的步骤,包括:
向所述区块链网络提交调用所述智能合约的第三交易,其中包括所述第一标识作为入参;
所述区块链网络,基于所述第三交易执行所述智能合约中的查找逻辑,以从存储的密文秘钥中查找与所述第一标识对应的密文秘钥。
6.根据权利要求5所述的方法,所述第二交易的入参包括所述第一公钥;
所述区块链网络,基于所述第二交易执行所述智能合约中的存储逻辑,以在可信执行环境中利用所述第一公钥将所述第一解密秘钥加密成密文秘钥,并存储所述密文秘钥。
7.根据权利要求1所述的方法,其中还包括:
所述物联网设备,在对自身的固件进行更新之后,删除所述第一固件和所述第一解密秘钥。
8.一种物联网设备的固件更新方法,应用于区块链网络,包括:
接收服务器提交的第一交易,通过执行所述第一交易,在所述区块链网络中存储加密固件;其中,所述加密固件是利用第一加密秘钥对第一固件加密得到,所述第一固件用于对物联网设备的固件进行更新;
接收所述服务器提交的第二交易,通过执行所述第二交易,在所述区块链网络中存储密文秘钥;其中,所述密文秘钥是利用所述物联网设备的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的;
在接收到所述物联网设备发送的获取请求时,将所述加密固件和所述密文秘钥发送至所述物联网设备,以使得所述物联网设备利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件,并利用所述第一固件对所述物联网设备的固件进行更新。
9.一种物联网设备的固件更新方法,应用于服务器,包括:
获取用于对物联网设备的固件进行更新的第一固件;
利用第一加密秘钥将所述第一固件加密成加密固件,向区块链网络提交第一交易,以在所述区块链网络中存储所述加密固件;
获取密文秘钥,向所述区块链网络提交第二交易,以在所述区块链网络中存储所述密文秘钥;其中,所述密文秘钥是利用所述物联网设备的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的,以使得所述物联网设备从所述区块链中获取所述加密固件和所述密文秘钥,利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件,并利用所述第一固件对所述物联网设备的固件进行更新。
10.一种物联网设备的固件更新方法,应用于物联网设备,包括:
向区块链网络发送获取请求,以从所述区块链网络中获取加密固件和密文秘钥;其中,所述加密固件和密文秘钥是服务器分别通过第一交易和第二交易存储在所述区块链网络中的,所述加密固件是利用第一加密秘钥对第一固件加密得到,所述第一固件用于对所述物联网设备的固件进行更新,所述密文秘钥是利用所述物联网设备的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的;
利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件;
基于所述第一固件对自身的固件进行更新。
11.一种物联网设备的固件更新装置,部署在区块链网络中,包括:
第一接收模块,配置为,接收服务器提交的第一交易,通过执行所述第一交易,在所述区块链网络中存储加密固件;其中,所述加密固件是利用第一加密秘钥对第一固件加密得到,所述第一固件用于对物联网设备的固件进行更新;
第二接收模块,配置为,接收所述服务器提交的第二交易,通过执行所述第二交易,在所述区块链网络中存储密文秘钥;其中,所述密文秘钥是利用所述物联网设备的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的;
发送模块,配置为,在接收到所述物联网设备发送的获取请求时,将所述加密固件和所述密文秘钥发送至所述物联网设备,以使得所述物联网设备利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件,并利用所述第一固件对所述物联网设备的固件进行更新。
12.一种物联网设备的固件更新装置,部署在服务器中,包括:
第一获取模块,配置为,获取用于对物联网设备的固件进行更新的第一固件;
第一提交模块,配置为,利用第一加密秘钥将所述第一固件加密成加密固件,向区块链网络提交第一交易,以在所述区块链网络中存储所述加密固件;
第二提交模块,配置为,获取密文秘钥,向所述区块链网络提交第二交易,以在所述区块链网络中存储所述密文秘钥;其中,所述密文秘钥是利用所述物联网设备的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的,以使得所述物联网设备从所述区块链中获取所述加密固件和所述密文秘钥,利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件,并利用所述第一固件对所述物联网设备的固件进行更新。
13.一种物联网设备的固件更新装置,部署在物联网设备中,包括:
第二获取模块,配置为,向区块链网络发送获取请求,以从所述区块链网络中获取加密固件和密文秘钥;其中,所述加密固件和密文秘钥是服务器分别通过第一交易和第二交易存储在所述区块链网络中的,所述加密固件是利用第一加密秘钥对第一固件加密得到,所述第一固件用于对所述物联网设备的固件进行更新,所述密文秘钥是利用所述物联网设备的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的;
解密模块,配置为,利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件;
更新模块,配置为,基于所述第一固件对自身的固件进行更新。
14.一种物联网设备的固件更新系统,包括物联网设备、服务器和区块链网络;
所述服务器,用于获取用于对所述物联网设备的固件进行更新的第一固件,利用第一加密秘钥将所述第一固件加密成加密固件,向所述区块链网络提交第一交易;
所述区块链网络,用于执行所述第一交易,以在所述区块链网络中存储所述加密固件;
所述服务器,用于通过提交第二交易,在所述区块链网络中存储密文秘钥;其中,所述密文秘钥是利用所述物联网设备的第一公钥,对所述第一加密秘钥对应的第一解密秘钥进行加密而得到的;
所述区块链网络,用于执行所述第二交易,以在所述区块链网络中存储密文秘钥;
所述物联网设备,用于从所述区块链网络中获取所述加密固件,从所述区块链网络中获取所述密文秘钥;利用与所述第一公钥对应的私钥以及所述密文秘钥,从所述加密固件中解密出所述第一固件,基于所述第一固件对自身的固件进行更新。
15.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-10中任一项所述的方法。
16.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111646699.5A CN114329596A (zh) | 2021-12-29 | 2021-12-29 | 一种物联网设备的固件更新方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111646699.5A CN114329596A (zh) | 2021-12-29 | 2021-12-29 | 一种物联网设备的固件更新方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114329596A true CN114329596A (zh) | 2022-04-12 |
Family
ID=81016740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111646699.5A Pending CN114329596A (zh) | 2021-12-29 | 2021-12-29 | 一种物联网设备的固件更新方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114329596A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116800507A (zh) * | 2023-06-30 | 2023-09-22 | 深圳市联瑞电子有限公司 | 一种智能网卡的识别方法和系统 |
-
2021
- 2021-12-29 CN CN202111646699.5A patent/CN114329596A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116800507A (zh) * | 2023-06-30 | 2023-09-22 | 深圳市联瑞电子有限公司 | 一种智能网卡的识别方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108632284B (zh) | 基于区块链的用户数据授权方法、介质、装置和计算设备 | |
US20200364368A1 (en) | Method and system of preserving privacy for usage of lightweight blockchain clients | |
KR102151907B1 (ko) | 신뢰 실행 환경 하에서의 블록체인 데이터의 처리 및 저장 | |
Hoang et al. | Hardware-supported ORAM in effect: Practical oblivious search and update on very large dataset | |
CN107506659B (zh) | 一种基于sgx的通用数据库的数据保护系统及方法 | |
CN111047450A (zh) | 链上数据的链下隐私计算方法及装置 | |
CN110915164A (zh) | 基于可信执行环境中执行的智能合约操作处理区块链数据 | |
CN111737366B (zh) | 区块链的隐私数据处理方法、装置、设备以及存储介质 | |
CN112329041A (zh) | 部署合约的方法及装置 | |
CN112926051B (zh) | 多方安全计算方法和装置 | |
US8635465B1 (en) | Counter-based encryption of stored data blocks | |
CN111164948A (zh) | 使用区块链网络管理网络安全漏洞 | |
KR101311059B1 (ko) | 취소 정보 관리 | |
US10887085B2 (en) | System and method for controlling usage of cryptographic keys | |
CN114157415A (zh) | 数据处理方法、计算节点、系统、计算机设备和存储介质 | |
Santhisri et al. | Comparative study on various security algorithms in cloud computing | |
CA3086236A1 (en) | Encrypted storage of data | |
CN114020705A (zh) | 一种文件处理方法、装置和存储介质 | |
CN114329596A (zh) | 一种物联网设备的固件更新方法、装置及系统 | |
CN116155491B (zh) | 安全芯片的对称密钥同步方法及安全芯片装置 | |
CN116050537A (zh) | 联邦学习方法、装置、可读存储介质及电子设备 | |
KR20190139742A (ko) | 블록체인에서 정보 조회 시간의 기록을 위한 분산 원장 장치 | |
US11722295B2 (en) | Methods, apparatus, and articles of manufacture to securely audit communications | |
JP2009055428A (ja) | 情報処理装置、サーバ装置、情報処理プログラム及び方法 | |
KR102282788B1 (ko) | 트랜잭션에 포함된 평문 데이터의 변경을 지원하는 블록체인 시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |