CN111382419A - 一种嵌入式设备固件离线校验方法及系统 - Google Patents

一种嵌入式设备固件离线校验方法及系统 Download PDF

Info

Publication number
CN111382419A
CN111382419A CN202010153579.0A CN202010153579A CN111382419A CN 111382419 A CN111382419 A CN 111382419A CN 202010153579 A CN202010153579 A CN 202010153579A CN 111382419 A CN111382419 A CN 111382419A
Authority
CN
China
Prior art keywords
firmware
abstract
public key
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.)
Pending
Application number
CN202010153579.0A
Other languages
English (en)
Inventor
张瑜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Tuya Information Technology Co Ltd
Original Assignee
Hangzhou Tuya Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Tuya Information Technology Co Ltd filed Critical Hangzhou Tuya Information Technology Co Ltd
Priority to CN202010153579.0A priority Critical patent/CN111382419A/zh
Publication of CN111382419A publication Critical patent/CN111382419A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Abstract

本申请公开了一种嵌入式设备固件离线校验方法,包括:固件制作工具制作固件,并生成固件摘要;所述固件制作工具发送所述摘要至服务器;所述服务器生成公钥及私钥;所述服务器对所述固件摘要进行签名;所述服务器发送所述签名及所述公钥;所述固件制作工具写入所述固件、所述签名及所述公钥至设备;所述固件制作工具发送所述固件摘要至所述设备;所述设备通过所述公钥、所述公钥及数字签名算法生成待比对固件摘要;当所述待比对固件摘要与所述固件摘要一致时,启动所述设备。与现有技术相比,本申请具有如下有益效果:在不具有安全功能的设备上实现固件的认证启动在施工环节需要在局域网环境下进行,需要解决对固件进行离线认证。

Description

一种嵌入式设备固件离线校验方法及系统
技术领域
本申请涉及物联网领域,具体而言,涉及一种嵌入式设备固件离线校验方法。
背景技术
随着物联网环境的发展,越来越多的嵌入式设备开始用于智能家居行业,由于在嵌入式行业比较看重开发成本,大多数的设备使用的是普通的外挂flash,随之而来的导致的就是容易出现固件的注入导致出现设备被攻破。
目前比较常见的作法是使用比较高级的处理器自身所附带的安全功能来实现固件的安全启动,但此方案在比较老的芯片平台并不能良好的实现。
发明内容
本申请的主要目的在于提供一种嵌入式设备固件离线校验方法,包括:
固件制作工具制作固件,并生成固件摘要;
所述固件制作工具发送所述摘要至服务器;
所述服务器生成公钥及私钥;
所述服务器对所述固件摘要进行签名;
所述服务器发送所述签名及所述公钥;
所述固件制作工具写入所述固件、所述签名及所述公钥至设备;
所述固件制作工具发送所述固件摘要至所述设备;
所述设备通过所述公钥、所述公钥及数字签名算法生成待比对固件摘要;
当所述待比对固件摘要与所述固件摘要一致时,启动所述设备。
可选地,所述数字签名算法为ECDSA算法。
可选地,所述固件制作工具生成所述固件摘要为:所述固件制作工具通过哈希算法生成所述固件摘要。
可选地,所述固件制作工具发送所述固件摘要至所述设备为:所述固件制作工具通过哈希算法发送所述固件摘要至所述设备
可选地,嵌入式设备固件离线校验方法还包括:
对比所述待比对固件摘要与所述固件摘要。
可选地,嵌入式设备固件离线校验方法还包括:
所述设备读取所述签名;及
所述设备读取所述公钥。
根据本申请的另一个方面,还提供了一种嵌入式设备固件离线校验系统,包括:
固件制作模块,用于固件制作工具制作固件,并生成固件摘要;
发送模块,用于所述固件制作工具发送所述摘要至服务器;
第一生成模块,用于所述服务器生成公钥及私钥;
签名模块,用于所述服务器对所述固件摘要进行签名;
第一发送模块,用于所述服务器发送所述签名及所述公钥;
写入模块,用于所述固件制作工具写入所述固件、所述签名及所述公钥至设备;
第二发送模块,用于所述固件制作工具发送所述固件摘要至所述设备;
第二生成模块,用于所述设备通过所述公钥、所述公钥及数字签名算法生成待比对固件摘要;
当所述待比对固件摘要与所述固件摘要一致时,启动所述设备。
本申请还公开了一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法。
本申请还公开了一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现上述任一项所述的方法。
本申请还公开了一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述任一项所述的方法。
与现有技术相比,本申请具有如下有益效果:
在不具有安全功能的设备上实现固件的认证启动
在施工环节需要在局域网环境下进行,需要解决对固件进行离线认证。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和有益效果变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请一个实施例的嵌入式设备固件离线校验方法的流程示意图;
图2是根据本申请一个实施例的嵌入式设备固件离线校验方法的流程示意图;
图3是根据本申请一个实施例的嵌入式设备固件离线校验方法的流程示意图;
图4是根据本申请一个实施例的嵌入式设备固件离线校验方法的流程示意图;
图5是根据本申请一个实施例的计算机设备的示意图;以及
图6是根据本申请一个实施例的计算机可读存储介质的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参照图1-图4,本申请一实施例提供了一种嵌入式设备固件离线校验方法,包括:
S1:固件制作工具制作固件,并生成固件摘要;
S2:所述固件制作工具发送所述摘要至服务器;
S3:所述服务器生成公钥及私钥;
S4:所述服务器对所述固件摘要进行签名;
S5:所述服务器发送所述签名及所述公钥;
S6:所述固件制作工具写入所述固件、所述签名及所述公钥至设备;
S7:所述固件制作工具发送所述固件摘要至所述设备;
S8:所述设备通过所述公钥、所述公钥及数字签名算法生成待比对固件摘要;
S9:当所述待比对固件摘要与所述固件摘要一致时,启动所述设备。
本申请一实施例中,所述数字签名算法为ECDSA算法。
本申请一实施例中,所述固件制作工具生成所述固件摘要为:所述固件制作工具通过哈希算法生成所述固件摘要。
本申请一实施例中,所述固件制作工具发送所述固件摘要至所述设备为:所述固件制作工具通过哈希算法发送所述固件摘要至所述设备
本申请一实施例中,嵌入式设备固件离线校验方法还包括:
对比所述待比对固件摘要与所述固件摘要。
本申请一实施例中,嵌入式设备固件离线校验方法还包括:
所述设备读取所述签名;及
所述设备读取所述公钥。
椭圆曲线密码学(Elliptic curve cryptography),简称ECC,是一种建立公开密钥加密的算法,也就是非对称加密,ECDH与ECDSA是基于ECC的算法。ECC是建立在基于椭圆曲线的离散对数问题上的密码体制,给定椭圆曲线上的一个点G,并选取一个整数k,求解K=kG很容易(注意根据kG求解出来的K也是椭圆曲线上的一个点);反过来,在椭圆曲线上给定两个点K和G,若使K=kG,求整数k是一个难题。ECC就是建立在此数学难题之上,这一数学难题称为椭圆曲线离散对数问题。其中椭圆曲线上的点K则为公钥,整数k则为私钥(实际上是一个大整数)。
ECDSA(Digital Signature Algorithm,椭圆曲线签名与校验,数字签名算法)它是另一种公开密钥算法,它不能用作加密,只用作数字签名。DSA使用公开密钥,为接受者验证数据的完整性和数据发送者的身份。它也可用于由第三方去确定签名和所签数据的真实性。
基于数字签名算法,首先由云端生成一对公钥G和私钥S并且保存,每次制作一个固件时,先通过hash算法获取整个固件的摘要Z,然后使用签名工具将摘要Z传输至云端服务器,云端服务器对此摘要Z进行签名,然后服务器返回签名Q和公钥G,并且通过工具写入到嵌入式设备中。
在设备启动阶段,设备首先通过哈希算法获取设备内固件的消息摘要Z,然后读取设备之前在特定位置写入的公钥G与签名Q,通过ECDSA算法生成待比对固件信息摘要Z’,然后通过比对Z与Z’是否相同来判断是否需要正常启动设备。
此方式可以在校验的过程离线使用,不需要与云端交互即可完成校验,实现固件的认证启动。
与现有技术相比,本申请具有如下有益效果:
在不具有安全功能的设备上实现固件的认证启动
在施工环节需要在局域网环境下进行,需要解决对固件进行离线认证。
个根据本申请的另一个方面,本申请的一实施例还提供了一种嵌入式设备固件离线校验系统,包括:
固件制作模块,用于固件制作工具制作固件,并生成固件摘要;
发送模块,用于所述固件制作工具发送所述摘要至服务器;
第一生成模块,用于所述服务器生成公钥及私钥;
签名模块,用于所述服务器对所述固件摘要进行签名;
第一发送模块,用于所述服务器发送所述签名及所述公钥;
写入模块,用于所述固件制作工具写入所述固件、所述签名及所述公钥至设备;
第二发送模块,用于所述固件制作工具发送所述固件摘要至所述设备;
第二生成模块,用于所述设备通过所述公钥、所述公钥及数字签名算法生成待比对固件摘要;
当所述待比对固件摘要与所述固件摘要一致时,启动所述设备。
请参照图5,本申请还提供了一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法。
请参照图6,一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现上述任一项所述的方法。
一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述任一项所述的方法。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种嵌入式设备固件离线校验方法,其特征在于,包括:
固件制作工具制作固件,并生成固件摘要;
所述固件制作工具发送所述摘要至服务器;
所述服务器生成公钥及私钥;
所述服务器对所述固件摘要进行签名;
所述服务器发送所述签名及所述公钥;
所述固件制作工具写入所述固件、所述签名及所述公钥至设备;
所述固件制作工具发送所述固件摘要至所述设备;
所述设备通过所述公钥、所述公钥及数字签名算法生成待比对固件摘要;
当所述待比对固件摘要与所述固件摘要一致时,启动所述设备。
2.根据权利要求1所述的嵌入式设备固件离线校验方法,其特征在于,所述数字签名算法为ECDSA算法。
3.根据权利要求2所述的嵌入式设备固件离线校验方法,其特征在于,所述固件制作工具生成所述固件摘要为:所述固件制作工具通过哈希算法生成所述固件摘要。
4.根据权利要求3所述的嵌入式设备固件离线校验方法,其特征在于,所述固件制作工具发送所述固件摘要至所述设备为:所述固件制作工具通过哈希算法发送所述固件摘要至所述设备。
5.根据权利要求4所述的嵌入式设备固件离线校验方法,其特征在于,嵌入式设备固件离线校验方法还包括:
对比所述待比对固件摘要与所述固件摘要。
6.根据权利要求5所述的嵌入式设备固件离线校验方法,其特征在于,嵌入式设备固件离线校验方法还包括:
所述设备读取所述签名;及
所述设备读取所述公钥。
7.一种嵌入式设备固件离线校验系统,其特征在于,包括:
固件制作模块,用于固件制作工具制作固件,并生成固件摘要;
发送模块,用于所述固件制作工具发送所述摘要至服务器;
第一生成模块,用于所述服务器生成公钥及私钥;
签名模块,用于所述服务器对所述固件摘要进行签名;
第一发送模块,用于所述服务器发送所述签名及所述公钥;
写入模块,用于所述固件制作工具写入所述固件、所述签名及所述公钥至设备;
第二发送模块,用于所述固件制作工具发送所述固件摘要至所述设备;
第二生成模块,用于所述设备通过所述公钥、所述公钥及数字签名算法生成待比对固件摘要;
当所述待比对固件摘要与所述固件摘要一致时,启动所述设备。
8.一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-6中任一项所述的方法。
9.一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,其特征在于,所述计算机程序在由处理器执行时实现如权利要求1-6中任一项所述的方法。
10.一种计算机程序产品,包括计算机可读代码,其特征在于,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行权利要求1-6中任一项所述的方法。
CN202010153579.0A 2020-03-06 2020-03-06 一种嵌入式设备固件离线校验方法及系统 Pending CN111382419A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010153579.0A CN111382419A (zh) 2020-03-06 2020-03-06 一种嵌入式设备固件离线校验方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010153579.0A CN111382419A (zh) 2020-03-06 2020-03-06 一种嵌入式设备固件离线校验方法及系统

Publications (1)

Publication Number Publication Date
CN111382419A true CN111382419A (zh) 2020-07-07

Family

ID=71217255

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010153579.0A Pending CN111382419A (zh) 2020-03-06 2020-03-06 一种嵌入式设备固件离线校验方法及系统

Country Status (1)

Country Link
CN (1) CN111382419A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103117857A (zh) * 2013-01-16 2013-05-22 深圳市怡化电脑有限公司 基于硬件加密算法的atm机信息安全检测方法及系统
CN104408370A (zh) * 2014-12-25 2015-03-11 珠海全志科技股份有限公司 安卓系统安全性验证方法及其验证装置
CN107678763A (zh) * 2017-09-28 2018-02-09 杭州海兴电力科技股份有限公司 基于数字签名技术的电能表升级方法和系统
CN109446011A (zh) * 2018-11-01 2019-03-08 郑州云海信息技术有限公司 一种硬盘的固件安全测试方法、装置及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103117857A (zh) * 2013-01-16 2013-05-22 深圳市怡化电脑有限公司 基于硬件加密算法的atm机信息安全检测方法及系统
CN104408370A (zh) * 2014-12-25 2015-03-11 珠海全志科技股份有限公司 安卓系统安全性验证方法及其验证装置
CN107678763A (zh) * 2017-09-28 2018-02-09 杭州海兴电力科技股份有限公司 基于数字签名技术的电能表升级方法和系统
CN109446011A (zh) * 2018-11-01 2019-03-08 郑州云海信息技术有限公司 一种硬盘的固件安全测试方法、装置及存储介质

Similar Documents

Publication Publication Date Title
CN111066285B (zh) 基于sm2签名恢复公钥的方法
US20230231711A1 (en) Blockchain-implemented method and system
CN108964924B (zh) 数字证书校验方法、装置、计算机设备和存储介质
US10790976B1 (en) System and method of blockchain wallet recovery
CN103268460B (zh) 一种云存储数据完整性验证方法
US10326753B2 (en) Authentication via revocable signatures
US8930660B2 (en) Shared information distributing device, holding device, certificate authority device, and system
CN110264200B (zh) 区块链数据处理方法及装置
WO2020038137A1 (zh) 二维码生成方法、数据处理方法、装置及服务器
CN110362357A (zh) 一种应用程序的配置文件管理方法及装置
EP3496331A1 (en) Two-party signature device and method
CN110597836B (zh) 基于区块链网络的信息查询请求响应方法及装置
CN111786812A (zh) 节点管理方法、装置、计算机设备和存储介质
CN111815321A (zh) 交易提案的处理方法、装置、系统、存储介质和电子装置
CN111835526A (zh) 一种生成匿名凭证的方法及系统
CN104012036A (zh) 组合式数字证书
CN110990484A (zh) 基于区块链的信息存储方法、系统、计算机设备及存储介质
CN111161075B (zh) 区块链交易数据证明监管方法、系统及相关设备
CN112380584A (zh) 区块链数据更新方法、装置、电子设备和存储介质
CN111046411B (zh) 电网数据安全存储方法及系统
CN109978543B (zh) 一种合同签署的方法、装置、电子设备及存储介质
CN110690969A (zh) 一种多方协同完成双向ssl/tls认证的方法和系统
CN107026729B (zh) 用于传输软件的方法和装置
CN111737766A (zh) 一种在区块链中判断数字证书签名数据合法性的方法
CN111382419A (zh) 一种嵌入式设备固件离线校验方法及系统

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200707

RJ01 Rejection of invention patent application after publication