CN112162770B - 基于区块链实现完整性验证的固件版本升级方法及装置 - Google Patents
基于区块链实现完整性验证的固件版本升级方法及装置 Download PDFInfo
- Publication number
- CN112162770B CN112162770B CN202011126833.4A CN202011126833A CN112162770B CN 112162770 B CN112162770 B CN 112162770B CN 202011126833 A CN202011126833 A CN 202011126833A CN 112162770 B CN112162770 B CN 112162770B
- Authority
- CN
- China
- Prior art keywords
- firmware
- version
- upgrade
- server
- equipment
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000012795 verification Methods 0.000 title claims description 20
- 230000002452 interceptive effect Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了一种固件版本升级方法及装置,该方法包括如下步骤:接收到目标设备的升级指令,从智能合约中获取升级版本固件路径;根据升级版本固件路径,获取升级版本固件,应用升级版本固件进行更新;若检测到目标设备无法兼容新版本固件,则根据兼容版本固件路径,获取兼容版本固件。运用本申请,在响应到升级指令后,一方面,通过智能合约获取到可靠的固件下载路径及固件哈希值,防止目标设备连接到非法冒充服务器;另一方面,固件服务器校验目标设备的签名,防止非法设备获取固件。因此,该发明从服务器及设备两端保证了固件升级的安全性。
Description
技术领域
本发明涉及固件安全升级领域,尤其是物联网设备固件版本安全升级方法及装置。
背景技术
随着物联网的大规模发展,物联网设备的安全事故也频频发生,许多物联网设备由于固件未及时安全更新,或者缺乏相应的安全更新机制导致物联网终端设备存在的软件漏洞风险极高,黑客利用这些漏洞就可以获取设备拥有者的隐私或机密数据,以及操纵或控制设备。
现有对固件安全更新的技术中,一种是手动固件更新方式,通常,手动更新涉及将新固件下载到硬盘或闪存驱动器等存储设备,然后将其与设备连接。手动固件更新最明显的缺点是必须自己检索和更新设备。另一种是基于云平台的OTA固件升级方式,固件更新通过无线连接进行传输,并直接发送到设备。对于云平台OTA升级,缺乏安全透明的固件完整性校验机制,有时候甚至会产生不兼容的情况,产生安全隐患。
发明内容
本发明所要解决的技术问题是:提供一种固件版本升级方法及装置,可以实现固件的完整性验证、自动更新及版本回退,保证固件升级的安全性。
为了解决上述技术问题,本发明采用的技术方案为:一种固件版本升级方法,所述方法包括如下步骤:接收到目标设备的升级指令,从智能合约中获取升级版本固件路径;根据所述升级版本固件路径,获取所述升级版本固件,应用所述升级版本固件进行更新;若检测到所述目标设备无法兼容所述新版本固件,则根据所述兼容版本固件路径,获取所述兼容版本固件。
进一步地,所述接收到目标设备的升级指令之前,包括如下步骤:
获取设备的ID值、设备的更新公钥及升级版本固件哈希值;
将所述设备的ID值与所述设备的更新公钥进行关联,生成第一关联信息;
将所述设备的ID值与所述升级版本固件的哈希值进行关联,生成第二关联信息;
将所述第一关联信息与所述第二关联信息存储到至少一个固件服务器。
进一步地,在所述接收到目标设备的升级指令之前,还包括如下步骤:
获取固件服务器的URL;
将所述升级版本固件哈希值与所述固件服务器的URL进行关联;
将所述固件服务器的URL及升级版本固件哈希值写入到智能合约,并将固件上传到固件服务器。
进一步地,根据所述升级版本固件路径,应用所述升级版本固件进行更新的步骤中,包括:
获得升级指令后,调用所述智能合约,获得升级版本固件的哈希值及固件服务器的URL;
依据设备ID号、固件哈希值、当前时间戳,生成签名信息,并向固件服务器发送下载固件请求;
固件服务器依据设备ID号获取设备公钥,对签名进行校验,若签名校验成功,则固件服务器将固件传输给目标设备,目标设备更新固件;若签名校验失败,则不进行传输。
其中,所述固件服务器依据设备ID号获取设备公钥,对签名进行校验,若签名校验成功,将所述固件传输给目标设备,具体包括:
获取智能合约所对应的交互程序,并将所述交互程序写入目标设备;
从所述智能合约中,获取所述升级版本固件路径,确定升级版本固件服务器;
当固件服务器接收到固件下载请求时,按照所述目标设备的ID值,通过所述第一关联信息,提取设备的更新公钥;
应用所述设备的更新公钥,检验所述设备的下载固件请求中的签名;
若所述设备的更新公钥验证所述设备的签名通过,从所述固件服务器,下载所述升级版本固件程序。
进一步地,将所述固件传输给目标设备的步骤之后,包括如下步骤:
从所述智能合约中,根据所述目标设备的ID值,应用所述第二关联信息,获取所述目标设备的目标固件哈希值;
根据从固件服务器获取到的固件,所述目标设备进行计算,以获得固件哈希值;
若所述目标设备的目标固件哈希值与所述兼容固件哈希值相匹配,则将所述新版本程序安装到所述目标设备。
具体的,若签名校验失败,上述方法还包括:
根据所述兼容版本固件路径,应用所述智能合约,选定兼容版本固件服务器的URL;
应用所述兼容版本固件服务器的URL,向固件服务器发送下载请求,以及签名信息;
若所述固件服务器校验签名信息通过,则下载并安装所述兼容版本固件。
其中,所述方法基于区块链,所述智能合约通过接口连接于所述区块链;
所述方法还包括:应用所述区块链,记录交易要素;
其中,所述交易要素包括固件服务器的URL及目标固件的哈希值。
可选地,所述智能合约包括Upgrade智能合约,和RollBack智能合约;
在所述获得更新版本指令的步骤之后,包括,调用所述Upgrade智能合约,获得升级版本固件的哈希值及固件服务器的URL;
在检测到所述目标设备无法兼容所述升级版本固件程序的步骤之后,应用所述RollBack智能合约,选定兼容版本固件哈希值及固件服务器URL。
本申请第二方面提供了一种固件版本升级装置,包括:
准备模块,用于接收到目标设备的升级指令,获取升级版本固件路径及兼容版本固件路径;
升级模块,用于根据所述升级版本固件路径,获取升级版本固件程序,应用所述固件程序进行更新;
退回模块,用于若检测到所述目标设备无法兼容所述新版本程序,则根据所述兼容版本固件路径,安装所述兼容版本固件程序。
本发明的有益效果在于:在响应到升级指令后,一方面,通过智能合约获取到可靠的固件下载路径及固件哈希值,防止目标设备连接到非法冒充服务器;另一方面,固件服务器校验目标设备的签名,防止非法设备获取固件。因此,该发明从服务器及设备两端保证了固件升级的安全性。
附图说明
下面结合附图详述本发明的具体结构
图1为本发明某一实施例的固件版本升级方法的整体流程图;
图2为本发明某一实施例的固件版本升级方法的应用新版本固件程序进行更新的流程图;
图3为本发明某一实施例的更新固件之前的流程示意图;
图4为本发明某一实施例的更新固件的流程示意图;
图5为本发明某一实施例的更新固件的固件版本升级结构图。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。
请参阅图1,固件版本升级方法的第一实施例中的整体流程图;本申请提供了一种固件版本升级方法,该方法包括如下步骤:
步骤S100、接收到目标设备的升级指令,获取升级版本固件路径或兼容版本固件路径;
步骤S200、根据更新版本固件路径,获取固件,应用新版本固件程序进行更新;
步骤S300、若检测到目标设备无法兼容新版本程序,则根据兼容版本固件路径,安装兼容版本固件程序。
在响应到升级指令后,先是从智能合约中安全地获取固件下载路径及用于校验的固件哈希值;用获取的固件版本路径,获取新版本的固件程序,以实现固件的自动升级;而在升级失败后,运用兼容固件版本路径,获取兼容版本的固件程序,可以在自动升级失败后,将兼容版本程序安装到目标设备上,以此保证固件升级的安全性。
进一步地,步骤S100中,接收到目标设备的升级指令之前,上述方法包括如下步骤:
步骤S011、获取设备的ID值、设备的更新公钥及升级版本固件哈希值;
步骤S012、将设备的ID值与设备的更新公钥进行关联,生成第一关联信息;
具体的实施例中,运用(设备ID,设备公钥)的形式,存入服务器数据库中。
步骤S013、将设备的ID值与升级版本固件哈希值进行关联,生成第二关联信息;
采用与步骤S012相近的步骤。提取固件hash值,应用Map的方式,以(设备ID,固件hash值)的形式,与设备的ID值进行关联,并存入服务器数据库中。
步骤S014、将第一关联信息与第二关联信息存储到至少一个固件服务器。
需要了解的是,固件是一类程序,一般存储于设备中的电可擦除只读存储器或FLASH芯片中,因此设备中的固件是可以进行更新的,一个设备的ID值,可以与多个固件的哈希值是相关的。
其中,设备的ID值是预先设定好的,用来代表唯一的设备;而设备的更新公钥,是专门用来对固件进行更新的公钥,用来在为请求下载固件时进行签名验证,确认请求方是合法的目标设备;哈希值是固件文件的数字指纹,用来验证获取的固件未被纂改。
在一个实施例中,同一设备的ID值与多个固件相关联,并且,按照固件的种类,将固件存储于不同固件服务器中。由此,可以降低单点故障的可能性。
在另一个实施例中,多个设备具有相同的待升级固件,因此,同一个待升级固件可以与同一个固件服务器关联,可以节约成本;也可以与多个固件服务器关联,可以降低单点故障的可能性。
进一步地实施例中,步骤S100、在接收到目标设备的升级指令之前,上述方法还包括如下步骤:
步骤S021、获取固件服务器的URL;
步骤S022、将所述升级版本固件哈希值与固件服务器的URL进行关联;
步骤S023、将固件服务器的URL及升级版本固件哈希值写入到智能合约,并将固件上传到固件服务器。
本实施例中,将固件哈希值与固件服务器的URL进行关联,有助于针对固件进行校验,防止纂改,制定安全的升级策略。而将固件服务器的URL写入到智能合约,有助于统筹大量固件服务器的URL,可以准确而快捷地为目标设备的固件进行升级,更好地避免单点故障的问题,同时保证固件下载地址的安全可靠。
请参阅图2,图2为本发明在固件版本升级方法的第二实施例应用新版本固件程序进行更新的流程图。步骤S200之后,还包括根据版本固件路径,应用新版本固件程序进行更新的步骤,具体包括:
步骤S210、获得更新版本指令后,调用智能合约,获得兼容固件的哈希值及新版本固件服务器的URL。
在一个实施例中,在步骤S210中,应用Upgrade智能合约,获取固件的哈希值与固件服务器的URL。由此,可以确定升级版本固件所关联的固件服务器,从而为固件的下载和验证提供最基础的支持。其中,目标设备通过基于http协议的JSON-RPC接口远程访问区块链全节点上的智能合约API。
在另一个实施例中,利用一个智能合约,内含Upgrade方法,及RollBack方法,通过Upgrade方法进行版本更新;通过RollBack方法退回兼容版本。均使用RPC方式连接全节点调用智能合约不同方法获得不同URL,然后根据URL进行固件请求,下载,更新。
需要了解的是,区块链全节点的地址和智能合约API,已经提前写入商家制造的的目标设备中,该设备联网启动后能默认自动访问Upgrade智能合约API。
步骤S220、依据设备ID号、固件哈希值、当前时间戳,生成签名信息,发送给固件服务器进行签名检验;
需要了解的是,固件可能被用户、商家或者其他人进行二次开发,而这些经过他人二次开发的固件,可能无法兼容本申请中的技术方案。为了保证固件升级的安全性,需要对该固件请求进行签名检验。
步骤S230、若通过固件服务器依据设备ID号获取设备公钥,对签名进行校验,若签名校验成功,将所述固件传输给目标设备;若签名校验失败,则不进行传输,以保证安全性。
本实施例中,若成功检验签名信息,可以发起对固件服务器的连接请求,从而在保证安全性的前提下,对固件程序进行更新。
需要了解的是,智能合约是基于区块链技术的发展出现的,本实施例中,只是将固件哈希值、设备的ID值、设备私钥对数据的签名进行公开,由此,有助于保证信息的充分公开,保证交易的安全性,还有助于隐藏固件的主体信息,保护设备数据隐私,目标设备使用者的隐私,防止商家从设备中窃取User数据,避免用户数据泄露,保护用户隐私的安全性。
具体的,请参阅图3,图3为本发明某一实施例的更新固件之前的流程示意图;在步骤S230中,所述固件服务器依据设备ID号获取设备公钥,对签名进行校验,若签名校验成功,将所述固件传输给目标设备,具体包括:
步骤S231、获取智能合约所对应的交互程序,并将所述交互程序写入目标设备;
步骤S232、应用新版本固件路径,确定新版本固件服务器;
需要了解的是,在应用智能合约之后,每个固件可能存储于多个不同的固件服务器中。因此,在一实施例中,选择通过固件的哈希值与新版本固件路径的关联,确定新版本固件服务器;在另一实施例中,直接应用新版本固件路径,确定新版本固件服务器。
步骤S233、按照目标设备的ID值,通过第一关联信息,提取设备的更新公钥;
需要了解的是,目标设备的ID值与设备的更新公钥均存储于固件服务器之中,而目标设备的ID值还存储于目标设备。目标设备的ID值,相对于固件而言,是唯一的,并且出厂后不会改变,因此使用目标设备的ID值,更方便商家与用户对目标设备进行维护;而目标设备的公钥,是用来对目标设备的私钥进行配对的,因此无需存储于目标设备这里。
步骤S234、应用设备的更新公钥,检验设备的签名信息;
步骤S235、若设备的更新公钥与设备的更新私钥相匹配,校验设备签名信息成功,从新版本固件服务器,下载新版本固件程序。
需要了解的是,设备的更新私钥仅存储于设备之中,设备的更新公钥与设备的更新私钥相匹配,则可确定目标设备与固件服务器正确连接。因此,可以成功下载新版本固件程序。
进一步地,请参阅图4,图4为本发明某一实施例的更新固件的流程示意图;在步骤S230中,将所述固件传输给目标设备的步骤之后,具体包括:
步骤S236、从所述智能合约中,根据所述目标设备的ID值,应用所述第二关联信息,获取所述目标设备的固件哈希值;
本实施例中,目标设备的目标固件哈希值是从Upgrade智能合约中获得的,这样可以防止固件被纂改。
步骤S237、根据从固件服务器获取到的固件,所述目标设备进行计算,以获得固件哈希值;
步骤S238、若目标设备的目标固件哈希值与计算所得的固件哈希值相匹配,则将新版本固件程序安装到目标设备。
本实施例中,主要判断目标固件是否为原有的固件。若目标固件未经改动,则目标固件哈希值与计算所得的固件哈希值是一致的,若二者不一致,则可能存在安全性问题,因此,不会更新固件。
在一具体的实施例中,若新版本固件程序安装失败,则启动步骤S300。而在步骤S300中,还包括:
步骤S310、根据所述兼容版本固件路径,应用所述智能合约,选定兼容版本固件服务器的URL;
步骤S320、应用兼容版本固件服务器的URL,向固件服务器发送下载请求,以及签名信息;
步骤S330、若所述固件服务器校验签名信息通过,则下载并安装兼容版本固件程序。
需要了解的是,当新版本固件程序安装失败之后,需要使用兼容版本URL,从相应固件服务器,下载并安装兼容版本固件程序,以此避免新版本程序所带来的影响,保证固件升级中的安全性。
在一个实施例中,利用一个智能合约,内含Upgrade方法,及RollBack方法,通过Upgrade方法进行更新;通过RollBack方法退回兼容版本。均使用RPC方式连接全节点调用智能合约不同方法获得不同URL,然后根据URL进行固件请求,下载,更新。
在另一个实施例中,上述的智能合约包括Upgrade智能合约和RollBack智能合约。在使用Upgrade智能合约更新失败后,通过基于http协议的JSON-RPC接口远程访问区块链全节点上的智能合约API。
步骤S331、应用RollBack智能合约,选定兼容版本固件服务器URL。
具体的,在升级失败后,基于http的RPC远程调用RollBack智能合约API的机制,再次通过基于http协议的JSON-RPC接口连接全节点及RollBack智能合约API。由此,可以让目标设备访问RollBack智能合约,从而获得回退固件版本的URL,设备自动发起http请求访问固件服务器,并下载相应的固件和验证,使得固件版本回退成功。
在一可选的实施例中,上述方法基于区块链,智能合约通过接口连接于区块链;
方法还包括步骤S400、应用区块链,记录交易要素;
其中,交易要素包括签名信息、及所述智能合约中固件服务器的URL。
本实施例中,形成了基于区块链的可回退固件更新;而且,固件不必存取在区块链中,只需要将固件的摘要或者其元数据保存在区块链上;以固件服务器上的固件摘要中的固件哈希值,与设备调用智能合约返回的固件hash进行对比,实现了固件的不可篡改性。
而且,区块链智能合约平台保护设备用户隐私,因为本申请只是将固件的hash值,及设备的ID值、固件服务器URL地址进行上链,不涉及到用户数据,保护了用户的安全性。
请参阅图5,图5为本发明某一实施例的更新固件的固件版本升级结构图。本申请第二方面提供一种固件版本升级装置,包括:
准备模块100,用于接收到目标设备的升级指令,从智能合约中获取升级版本固件路径;
升级模块200,用于根据所述升级版本固件路径,获取所述升级版本固件;
退回模块300,用于若检测到所述目标设备无法兼容所述升级版本固件,则根据所述最新兼容版本固件路径,获取所述最新兼容版本固件。
需要了解的是,上述模块仅为粗略划分的模块,模块内部的各个功能,是可以依靠多种单元的组合所形成的。从本质上来看,上述装置是作为上述方法的虚拟执行主体,用于承载上述方法。
本发明还提供了一种存储介质,包括固件程序,固件程序被分析器加载并执行时,实现上述的方法中的步骤。
所述分析器可以是中央分析单元,还可以是其他通用分析器、数字信号分析器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用分析器可以是微分析器或者该分析器也可以是任何常规的分析器等。
综上所述,本发明之前存在物联网平台升级,区块链的嵌入式OTA固件保护,本发明可以用在设备固件保存,区块链可以溯源不同固件的版本,可以用来固件安全升级,而多服务器对固件的保存免除了下载固件出现404的错误,以及地址失效情况。
本申请可以应用于物联网领域,解决物联网设备众多,小型设备内存有限的问题。
而区块链智能合约上聚合URL链接巧妙的使得固件hash,固件服务器URL地址聚合在了一起,使得物联网设备可以安全准确的获得固件地址,对固件版本进行升级。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种基于区块链实现完整性验证的固件版本升级方法,其特征在于,所述方法包括如下步骤:
获取设备的ID值、设备的更新公钥及升级版本固件的哈希值;
将所述设备的ID值与所述设备的更新公钥进行关联,生成第一关联信息;
将所述设备的ID值与所述升级版本固件的哈希值进行关联,生成第二关联信息;
将所述第一关联信息与所述第二关联信息存储到至少一个固件服务器;
接收到目标设备的升级指令,从智能合约中获取升级版本固件路径;
根据所述升级版本固件路径,获取所述升级版本固件;
若检测到所述目标设备无法兼容所述升级版本固件,则根据最新兼容版本固件路径,获取最新兼容版本固件。
2.如权利要求1所述的固件版本升级方法,其特征在于,在所述接收到目标设备的升级指令之前,还包括如下步骤:
获取固件服务器的URL;
将固件的哈希值与所述固件服务器的URL进行关联;
将所述固件服务器的URL及固件的哈希值写入到智能合约,并将固件上传到固件服务器。
3.如权利要求2所述的固件版本升级方法,其特征在于,所述方法还包括,根据所述版本固件路径,应用所述版本固件进行更新,具体包括:
获得更新版本指令后,调用所述智能合约,获得固件的哈希值及固件服务器的URL;
依据设备ID号、固件的哈希值、当前时间戳,生成签名信息,并向固件服务器发送下载固件请求;
固件服务器依据设备ID号获取设备公钥,对签名进行校验,若签名校验成功,将所述固件传输给目标设备;若签名校验失败,则不进行传输。
4.如权利要求3所述的固件版本升级方法,其特征在于,所述固件服务器依据设备ID号获取设备公钥,对签名进行校验,若签名校验成功,将所述固件传输给目标设备,具体包括:
获取智能合约所对应的交互程序,并将所述交互程序写入目标设备;
从所述智能合约中,获取新版本固件路径,确定新版本固件服务器;
当固件服务器接收到固件下载请求时,按照所述目标设备的ID值,通过所述第一关联信息,提取设备的更新公钥;
应用所述设备的更新公钥,检验所述设备的下载固件请求中的签名;
若所述设备的更新公钥验证所述设备的签名通过,从所述新版本固件服务器,下载新版本固件程序。
5.如权利要求4所述的固件版本升级方法,其特征在于,所述将所述固件传输给目标设备的步骤之后,包括如下步骤:
从所述智能合约中,根据所述目标设备的ID值,应用所述第二关联信息,获取所述目标设备的固件哈希值;
根据从固件服务器获取到的固件,所述目标设备进行计算,以获得固件哈希值;
若目标设备的目标固件哈希值与计算所得的固件哈希值相匹配,则将新版本固件安装到目标设备。
6.如权利要求4所述的固件版本升级方法,其特征在于,若签名校验失败,所述方法还包括:
根据兼容版本固件路径,应用所述智能合约,选定兼容版本固件服务器的URL;
应用兼容版本固件服务器的URL,向固件服务器发送下载请求,以及签名信息;
若所述固件服务器校验签名信息通过,则下载并安装兼容版本固件。
7.如权利要求3~6任意一项所述的固件版本升级方法,其特征在于,所述方法基于区块链,所述智能合约通过接口连接于所述区块链;
所述方法还包括:应用所述区块链,记录交易要素;
其中,所述交易要素包括固件服务器的URL及目标固件的哈希值。
8.如权利要求6所述的固件版本升级方法,其特征在于,所述智能合约包括Upgrade智能合约和RollBack智能合约:
在所述获得更新版本指令的步骤之后,包括,调用所述Upgrade智能合约,获得新固件的哈希值及新版本固件服务器的URL;
在检测到所述目标设备无法兼容所述新版本固件程序之后,应用所述RollBack智能合约,选定兼容版本固件服务器的URL。
9.一种基于区块链实现完整性验证的固件版本升级装置,其特征在于,包括:
准备模块,用于获取设备的ID值、设备的更新公钥及升级版本固件的哈希值;将所述设备的ID值与所述设备的更新公钥进行关联,生成第一关联信息;将所述设备的ID值与所述升级版本固件的哈希值进行关联,生成第二关联信息;将所述第一关联信息与所述第二关联信息存储到至少一个固件服务器;接收到目标设备的升级指令,从智能合约中获取升级版本固件路径;
升级模块,用于根据所述升级版本固件路径,获取所述升级版本固件;
退回模块,用于若检测到所述目标设备无法兼容所述升级版本固件,则根据最新兼容版本固件路径,获取最新兼容版本固件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011126833.4A CN112162770B (zh) | 2020-10-20 | 2020-10-20 | 基于区块链实现完整性验证的固件版本升级方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011126833.4A CN112162770B (zh) | 2020-10-20 | 2020-10-20 | 基于区块链实现完整性验证的固件版本升级方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112162770A CN112162770A (zh) | 2021-01-01 |
CN112162770B true CN112162770B (zh) | 2023-11-10 |
Family
ID=73867663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011126833.4A Active CN112162770B (zh) | 2020-10-20 | 2020-10-20 | 基于区块链实现完整性验证的固件版本升级方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112162770B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022109039A (ja) * | 2021-01-14 | 2022-07-27 | トヨタ自動車株式会社 | センタ、更新管理方法及び更新管理プログラム |
CN114095538B (zh) * | 2021-11-18 | 2023-03-07 | 四川启睿克科技有限公司 | 一种基于区块链技术的物联网设备ota升级的双向认证方法 |
CN114780129A (zh) * | 2022-05-25 | 2022-07-22 | 歌尔股份有限公司 | 差分升级的修复方法、装置、电子设备及可读存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107077557A (zh) * | 2016-12-29 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 软件应用程序发布和验证的方法及装置 |
CN107239288A (zh) * | 2014-06-27 | 2017-10-10 | 青岛海信移动通信技术股份有限公司 | 一种移动终端的版本升级方法及装置 |
CN108270874A (zh) * | 2018-02-05 | 2018-07-10 | 武汉斗鱼网络科技有限公司 | 应用程序的更新方法及装置 |
CN109889589A (zh) * | 2019-02-18 | 2019-06-14 | 闪联信息技术工程中心有限公司 | 一种基于区块链实现嵌入式硬件ota升级系统及方法 |
CN110018840A (zh) * | 2019-04-11 | 2019-07-16 | 深圳市网心科技有限公司 | 一种智能合约升级方法、装置、区块链节点设备及介质 |
CN110535938A (zh) * | 2019-08-29 | 2019-12-03 | 腾讯科技(深圳)有限公司 | 一种基于智能合约的数据处理方法、设备及存储介质 |
CN110851152A (zh) * | 2018-08-20 | 2020-02-28 | 联想企业解决方案(新加坡)有限公司 | 使用区块链执行固件更新的方法 |
CN111160879A (zh) * | 2018-11-07 | 2020-05-15 | 新明华区块链技术(深圳)有限公司 | 一种硬件钱包及其安全性提升方法和装置 |
CN111461722A (zh) * | 2020-04-17 | 2020-07-28 | 支付宝(杭州)信息技术有限公司 | 一种智能合约的部署方法、装置及设备 |
CN111597264A (zh) * | 2020-05-15 | 2020-08-28 | 中国联合网络通信集团有限公司 | 一种区块链记账方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI705374B (zh) * | 2017-01-23 | 2020-09-21 | 威鋒電子股份有限公司 | 電子裝置及其操作方法 |
US10721072B2 (en) * | 2017-09-29 | 2020-07-21 | Xilinx, Inc. | Network interface device and method |
-
2020
- 2020-10-20 CN CN202011126833.4A patent/CN112162770B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107239288A (zh) * | 2014-06-27 | 2017-10-10 | 青岛海信移动通信技术股份有限公司 | 一种移动终端的版本升级方法及装置 |
CN107077557A (zh) * | 2016-12-29 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 软件应用程序发布和验证的方法及装置 |
CN108270874A (zh) * | 2018-02-05 | 2018-07-10 | 武汉斗鱼网络科技有限公司 | 应用程序的更新方法及装置 |
CN110851152A (zh) * | 2018-08-20 | 2020-02-28 | 联想企业解决方案(新加坡)有限公司 | 使用区块链执行固件更新的方法 |
CN111160879A (zh) * | 2018-11-07 | 2020-05-15 | 新明华区块链技术(深圳)有限公司 | 一种硬件钱包及其安全性提升方法和装置 |
CN109889589A (zh) * | 2019-02-18 | 2019-06-14 | 闪联信息技术工程中心有限公司 | 一种基于区块链实现嵌入式硬件ota升级系统及方法 |
CN110018840A (zh) * | 2019-04-11 | 2019-07-16 | 深圳市网心科技有限公司 | 一种智能合约升级方法、装置、区块链节点设备及介质 |
CN110535938A (zh) * | 2019-08-29 | 2019-12-03 | 腾讯科技(深圳)有限公司 | 一种基于智能合约的数据处理方法、设备及存储介质 |
CN111461722A (zh) * | 2020-04-17 | 2020-07-28 | 支付宝(杭州)信息技术有限公司 | 一种智能合约的部署方法、装置及设备 |
CN111597264A (zh) * | 2020-05-15 | 2020-08-28 | 中国联合网络通信集团有限公司 | 一种区块链记账方法及装置 |
Non-Patent Citations (3)
Title |
---|
An Over-the-Blockchain Firmware Update Framework for IoT Devices;Alexander Yohan 等;《2018 IEEE Conference on Dependable and Secure Computing》;1-8 * |
基于LBlock 算法的密码SoC 安全存储总线设计;赵建 等;《计算机工程》;第45卷(第10期);130-133 * |
基于区块链技术的物联网安全技术分析;李佳庆;《无线互联科技》(第11期);158-159 * |
Also Published As
Publication number | Publication date |
---|---|
CN112162770A (zh) | 2021-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112162770B (zh) | 基于区块链实现完整性验证的固件版本升级方法及装置 | |
TWI359597B (en) | Method,computer system ,and computer-readable medi | |
US9038154B2 (en) | Token Registration | |
KR101150041B1 (ko) | 델타 압축 패칭을 이용하여 파일을 업데이트하기 위한시스템 및 방법 | |
KR101130367B1 (ko) | 소프트웨어 분산 서비스를 위한 시스템 및 방법 | |
US6718549B1 (en) | Methods for managing the distribution of client bits to client computers | |
KR101098621B1 (ko) | 네트워킹된 환경에서 설치 컴포넌트들을 업데이트하는시스템 및 방법 | |
CN107239288B (zh) | 一种移动终端的版本升级方法及装置 | |
WO2017166446A1 (zh) | 漏洞修复方法和装置 | |
CN108351923B (zh) | 与统一可扩展固件接口系统可执行的脚本有关的阈值 | |
MXPA06001253A (es) | Publicacion de la condicion y actualizacion de componentes del firmware. | |
KR20150040325A (ko) | 애플리케이션 보안 검증을 위한 클라우드 지원형 방법 및 서비스 | |
CN108092775B (zh) | 一种校验方法及装置、电子设备 | |
JP2009503648A (ja) | 信頼される環境をサポートするコンピュータ可読コンポーネントの自動更新 | |
CN110879713B (zh) | 一种android端强加密插件热更新管理方法 | |
TW201944234A (zh) | 硬體的可縮放之生命週期維護技術 | |
US10726133B1 (en) | Securely loading UEFI images at runtime | |
US20140143770A1 (en) | Differential Flash Archive Installation | |
US9367302B2 (en) | Generating client qualification to execute package update manager | |
US20060075401A1 (en) | Patch installation control | |
US9003400B2 (en) | Tracking computing systems utilizing software repositories | |
CN114329358A (zh) | 应用签名方法、系统、交易终端及服务平台 | |
CN112788084B (zh) | 应用程序安装包下载方法、推送方法、装置和计算机设备 | |
KR20090017307A (ko) | 펌웨어를 자동으로 업데이트하는 임베디드 장치 및시스템과 그에 따른 방법 | |
US20180157795A1 (en) | Multilevel object file storage |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |