CN111984962A - 固件安全验证方法及装置 - Google Patents
固件安全验证方法及装置 Download PDFInfo
- Publication number
- CN111984962A CN111984962A CN202010934468.3A CN202010934468A CN111984962A CN 111984962 A CN111984962 A CN 111984962A CN 202010934468 A CN202010934468 A CN 202010934468A CN 111984962 A CN111984962 A CN 111984962A
- Authority
- CN
- China
- Prior art keywords
- digital signature
- firmware
- public key
- processor
- firmware data
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 57
- 238000000034 method Methods 0.000 title claims abstract description 44
- 230000006870 function Effects 0.000 claims description 9
- 238000004519 manufacturing process Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000005481 NMR spectroscopy Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 241000282326 Felis catus Species 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 229920001296 polysiloxane Polymers 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3226—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/26—Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本申请关于一种固件安全验证方法及装置,包括处理器以及用于存储处理器可执行指令的只读存储器,所述处理器执行所述指令时实现以下步骤:获取固件数据和数字签名;利用预先存储的公钥对所述数字签名进行验证;在确定所述数字签名通过验证的情况下,运行所述固件数据。利用本申请各个实施例提供的固件安全验证方法及装置,可以在固件运行前获取到固件数据的安全性。
Description
技术领域
本申请涉及数据存储技术领域,尤其涉及固件安全验证方法及装置。
背景技术
固件(Firmware)是指设备内部保存的驱动程序,通过固件,设备的操作系统才能按照标准的设备驱动实现特定机器的运行动作,比如光驱、固态硬盘等都有内部固件。在早期,一般情况下是没有必要对固件进行升级操作的,因此,早期的固件芯片一般都采用ROM设计,固件代码在生产过程中即被固化,任何手段都无法修改,即使在固件内发现严重的Bug,也是由专业人员带着写好程序的新固件芯片从原来设备上替换旧固件芯片。随着技术的不断发展,修改固件以适应不断更新的硬件环境成了用户的迫切需求,所以,可重复写入的可编程可擦除只读存储器EPROM(Erasable Programmable ROM),EEPROM和Flash等能够芯片的重复刷写,让固件得以修改和升级。
固件在设备中的重要性涉及到固件的安全性问题,如果固件被恶意修改或者恶意替换,必将给用户数据带来极大的威胁。相关技术中,设备在接收到新的固件之后,可以对对该固件进行CRC校验,并将计算得到的校验结果和接收到的CRC校验结果进行比对。如果比对不通过,则拒绝运行该固件。但是,以上校验方式只能解决固件传输过程中数据缺损丢失等问题,如果恶意第三方同时修改了固件和CRC校验结果,则设备可能无法识别出新输入的固件已经被恶意篡改的事实。
因此,相关技术中亟需一种能够验证设备中固件安全性的方式。
发明内容
本申请实施例的目的在于提供一种固件安全验证装置,可以保证运行的固件数据具有安全性。
本申请实施例提供的固件安全验证装置是这样实现的:
一种固件安全验证装置,包括处理器以及用于存储处理器可执行指令的只读存储器,所述处理器执行所述指令时实现以下步骤:
获取固件数据和数字签名;
利用预先存储的公钥对所述数字签名进行验证;
在确定所述数字签名通过验证的情况下,运行所述固件数据。
可选的,在本申请的一个实施例中,所述装置还包括一次性可编程存储器,所述一次性可编程存储器用于存储所述公钥。
可选的,在本申请的一个实施例中,所述一次性可编程存储器中还用于存储处理器可执行指令,所述处理器执行所述指令时实现:
在监测到所述处理器接收供电或者接收到新的固件数据的情况下,开始执行所述只读存储器中所存储的指令。
可选的,在本申请的一个实施例中,所述处理器在实现步骤获取固件数据和公钥数字签名时包括:
从可编程只读存储器中读取固件数据和数字签名,所述可编程只读存储器与所述处理器电性连接。
可选的,在本申请的一个实施例中,所述处理器在实现步骤利用预先存储的公钥对所述公钥数字签名进行验证时包括:
获取验证所述数字签名所使用的公钥;
在确定验证所述数字签名所使用的公钥与预先存储的公钥相匹配的情况下,根据所述固件数据和所述公钥确定待验证的数字签名;
在确定所述待验证的数字签名与所述数字签名相匹配的情况下,确定所述数字签名通过验证。
可选的,在本申请的一个实施例中,所述处理器在实现步骤利用预先存储的公钥对所述数字签名进行验证时包括:
确定生成所述数字签名所使用到的加密算法;
对所述加密算法进行自检;
在确定自检得到的结果正确的情况下,利用预先存储的公钥对所述数字签名进行验证。
可选的,在本申请的一个实施例中,所述处理器在实现步骤获取固件数据和数字签名之前,还实现以下步骤:
关闭所述处理器上具有调试功能的物理接口。
可选的,在本申请的一个实施例中,所述固件数据包括新固件的数据或者原始固件的升级数据。
一种固件安全验证方法,所述方法包括:
获取固件数据和数字签名;
利用预先存储的公钥对所述数字签名进行验证;
在确定所述数字签名通过验证的情况下,运行所述固件数据。
可选的,在本申请的一个实施例中,所述获取固件数据和公钥数字签名,包括:
从可编程只读存储器中读取固件数据和数字签名。
可选的,在本申请的一个实施例中,所述利用预先存储的公钥对所述公钥数字签名进行验证,包括:
获取验证所述数字签名所使用的公钥;
在验证所述数字签名所使用的公钥与预先存储的公钥相匹配的情况下,根据所述固件数据和所述公钥确定待验证的数字签名;
在确定所述待验证的数字签名与所述数字签名相匹配的情况下,确定所述数字签名通过验证。
一种固件数据加密方法,用于生成所述的固件数据,所述方法包括:
利用非对称加密算法对固件数据、公钥和私钥加密生成数字签名;
发送所述固件数据、所述公钥和所述数字签名。
可选的,在本申请的一个实施例中,所述利用非对称加密算法对固件数据、公钥和私钥加密生成数字签名,包括:
对固件数据进行加密生成加密固件数据;
对用户标识、椭圆曲线参数、公钥加密生成第一中间值;
对所述加密固件数据和所述第一中间值加密生成第二中间值;
对所述第二中间值、私钥加密生成数字签名。
一种固件数据加密装置,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现所述固件数据加密方法。
一种非临时性计算机只读存储介质,当所述存储介质中的指令由处理器执行时,使得处理器能够执行所述固件安全验证方法或者所述固件数据加密方法。
一种电子设备,包括所述的固件安全验证装置。
本申请提供的固件安全验证方法及装置,可以对利用非对称加密算法加密的固件数据进行安全验证,在确定固件数据通过安全验证的情况下,运行所述固件数据。采用非对称加密算法对所述固件数据进行加密可以保证固件数据在传输或者存储过程中不被第三方恶意修改,第三方只有在获取固件数据生成方的私钥的情况下,才可以对所述固件数据修改,但是获取到私钥难度较大。因此,在运行固件数据之前对固件数据进行安全验证,可以进一步保证固件数据的安全性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是根据一示例性实施例示出的一种固件安全验证装置的模块结构示意图。
图2是根据一示例性实施例示出的处理器执行指令所实现的步骤。
图3是根据一示例性实施例示出的处理器执行指令所实现的步骤。
图4是根据一示例性实施例示出的固件数据加密方法的方法流程图。
图5是根据一示例性实施例示出的非对称加密过程中数据之间的生成关系图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
图1示出了本申请提供的固件安全验证装置的一种实施例的结构示意图。如图1所示,固件安全验证装置100可以包括处理器101以及用于存储处理器101可执行指令的只读存储器103,如图2所示,所述处理器101执行所述指令时实现以下步骤:
S201:获取固件数据和数字签名;
S203:利用预先存储的公钥对所述数字签名进行验证;
S205:在确定所述数字签名通过验证的情况下,运行所述固件数据。
本申请实施例中,所述固件安全验证装置100可以安装于任何具有固件的电子设备中,所述电子设备例如可以包括手机、音箱、智能穿戴设备、数码相机、mp3、mp4、路由器、电子书、交换机、宽带猫、PSP、PS3、NDS、XBOX、U盘、数码卫星接收器等数码产品,也可以包括计算机主板、打印机的BIOS、显卡的BIOS、鼠标、显示器、光驱、硬盘、键盘、GPS终端、精密的电子仪器(比如核磁共振仪)等等。
所述处理器101可以包括电子设备中具有执行指令功能的控制器,所述处理器101可以按任何适当的方式实现,例如,可以采用微处理器、中央处理器(CPU)、存储器控制器中的控制逻辑部分等实现,包括但不限于以下型号的芯片:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320。在所述处理器101内部,可以通过逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器等硬件电路执行所述可执行指令。
在本申请实施例中,如图1所示,用于存储所述处理器101可执行指令的计算机存储介质可以包括只读存储器103,例如MASK ROM。只读存储器103中的数据在芯片生产的过程中即已写入,数据一旦写入后就固定下来,即使切断电源,数据也不会丢失。在本申请实施例中,所述只读存储器103中的可执行指令是所述处理器101开始接收供电后运行的第一套指令。
所述处理器101在执行所述指令时,首先可以获取固件数据和数字签名。如图1所示,所述处理器101可以与可编程只读存储器电性连接,所述可编程只读存储器可以包括电子设备的外存,如硬盘、软盘、光盘、U盘等等。通过网络将固件数据从设备运营方传输到电子设备上,所述固件数据可以被下载至电子设备的可编程只读存储器区域。
本申请实施例中,所述固件数据可以原始数据,也可以是加密后的数据,在此不做限制。所述数字签名也可以成为公钥数字签名,是利用非对称加密算法和数字摘要算法生成的字符串,可以作为对信息发送者发送所述固件数据真实性的有效证明。在非对称加密算法中,需要公开密钥(简称公钥)和私有密钥(简称私钥)。公钥与私钥是一对密钥,如果用公钥对数据进行加密,只有用对应的私钥才能解密。非对称加密算法实现数据传输的基本过程是:甲方生成一对密钥并将公钥公开,若甲方需要向乙方发送固件数据,甲方可以使用自己的私钥对固件数据进行签名后再发送给乙方,乙方再用甲方的公钥对甲方发送回来的数字签名进行验签。本申请实施例中,甲方可以包括设备运营方,即开发或者维护固件数据的一方,对应的乙方可以包括用户的设备。在一些示例性的场景中,某款智能手表的设备运营方最近开发出新的功能,使得智能手表能够自动提醒用户事件,用户的智能手表在接收到升级后的固件数据即可以完成固件升级,获取以上功能。基于此,智能手表的设备运营方可以利用私钥对升级的固件数据进行加密生成数字签名发送至各个智能手表终端。当然,在其他实施例中,所述固件数据还可以包括新的固件数据,以在设备中驱动产生新的功能,并且,同一个电子设备中可以包括一个或者多个固件数据,本申请在此不做限制。需要说明的是,所述非对称加密算法可以包括DH算法、RSA算法、DSA算法、椭圆曲线算法(EC)、SM2算法及以上各种算法的变形算法等,本申请在此不做限制。
本申请实施例中,固件安全验证装置100在接收到固件数据和数字签名之后,可以利用预先存储的公钥对所述数字签名进行验证。为了保证所述公钥在固件安全验证装置100中的安全性,如图1所示,可以将公钥设置于固件安全验证装置100中的OTP存储器105中,OTP存储器105也称为一次性可编程存储器,是只能写一次的静态寄存器,其硬件电路保证了写于OTP存储器105中的数据不会被更改,也不会丢失。将所述公钥存储于所述OTP存储器105中,可以防止设备中的公钥被恶意第三方更改,保证其安全性。另外,所述OTP存储器105可以在芯片制造出来之后具有一次可编程的机会,因此,在芯片制造过程中不确定向其中写入的内容或者所述固件安全验证装置100作为通用装置可用于多种不同类型的设备(不同的设备生产方可以设置不同的公钥)中的情况下,可以在芯片制造完成之后灵活地向其中写入数据。在本申请的一个实施例中,写入所述OTP存储器105中的公钥可以包括加密后的公钥,如原始公钥的哈希值等。当然,在其他实施例中,在芯片制造之前即已确定所述公钥的情况下,也可以将所述公钥在芯片生产过程中固化于ROM中,这样,同样也可以防止公钥被恶意第三方修改。
在实际的应用场景中,恶意第三方也可能阻止处理器101执行所述只读存储器103中存储的可执行指令。基于此,可以设置开启所述处理器101开始执行所述可执行指令的开关,并将所述开关设置于所述OTP存储器105中。基于此,所述OTP存储器105中还用于存储处理器101可执行指令,所述处理器101执行所述指令时实现:
在监测到所述处理器101接收供电或者接收到新的固件数据的情况下,开始执行所述只读存储器103中所存储的指令。
如上所述,所述固件数据可以存储于可编程只读存储器中,由于可编程只读存储器的可编程特性,恶意第三方可以向其中写入数据,也可以擦除数据,如替换U盘中的固件数据等,因此,可以设置处理器101每次接收供电,即上电的情况下,开始执行所述只读存储器103中所存储的指令。当然,在接收到新的固件数据(包括新的升级固件数据)的情况下,也需要执行所述只读存储器103中所存储的可执行指令。将所述处理器101开始执行所述可执行指令的开关设置于所述OTP存储器105中,一旦将上述指令写入其中,既可以实现所述处理器101执行所述只读存储器103中可执行指令的流程不会被关闭。当然,所述开关还可以被固化于ROM中,本申请在此不做限制。
在实际的应用场景中,处理器上往往设置有具有调试功能的物理接口,这些物理接口往往可以从外界接收数据,对处理器的功能进行测试,因此,这些物理接口有可能成为恶意第三方干扰所述处理器101执行所述只读存储器103中可执行指令的入口。基于此,在步骤S201之前,所述处理器101还可以关闭所述处理器上具有调试功能的物理接口。这样,可以防止恶意第三方通过CPU JTAG、SPI ROM、uart等方式绕过或者影响安全验证过程。
在本申请实施例中,如图3所示,所述处理器101在实现步骤利用预先存储的公钥对所述公钥数字签名进行验证时可以包括:
S301:获取验证所述数字签名所使用的公钥;
S303:在确定验证所述数字签名所使用的公钥与预先存储的公钥相匹配的情况下,根据所述固件数据和所述公钥确定待验证的数字签名;
S305:在确定所述待验证的数字签名与所述数字签名相匹配的情况下,确定所述数字签名通过验证。
本申请实施例中,固件数据发送方不仅可以发送所述固件数据以及所述数字签名,还可以发送验证所述数字签名所使用的公钥。在存储的公钥是加密公钥的情况下,需要利用同样的加密算法对所述验证所述数字签名所使用的公钥进行加密。然后,可以将固件数据发送方发送的公钥与预先存储的公钥进行比对,在确定两者相匹配的情况下,可以根据所述固件数据确定待验证的数字签名。当然,如果两个公钥不匹配,则处理器101可以拒绝运行固件数据。在一个实施例中,所述待验证的数字签名可以利用所述固件数据中数字签名相同的方式生成。当然,不同的非对称加密算法生成数字签名的方式不相同,在此不做限制。在确定所述待验证的数字签名与所述固件数据中的数字签名相匹配的情况下,可以确定所述数字签名通过验证。
在本申请的一个实施例中,在对所述数字签名验证之前,可以对所使用到的加密算法进行自检。具体地,首先,可以确定安全验证所使用到的加密算法,如哈希算法SM3密码杂凑算法、非对称加密算法SM2等等。然后,对这些加密算法进行自检,自检的过程即确定处理器101执行加密算法代码后所获取的结果与预期的相同。在确定自检得到的结果正确的情况下,再对所述数字签名进行验证。通过对加密算法进行自检,可以保证在安全验证过程中加密算法的正确性。
本申请提供的固件安全验证装置,可以对所述固件数据对应的数字签名进行安全验证,在确定所述数字签名通过安全验证的情况下,运行所述固件数据。只有在所述数字签名通过验证的情况下,才可以确定所述固件数据在传输或者存储过程中没有被第三方恶意修改,第三方只有在获取固件数据生成方的私钥的情况下,才可以对所述固件数据修改,但是获取到私钥难度较大。因此,在运行固件数据之前对固件数据进行验签操作,可以进一步保证固件数据的安全性。
对应于上述固件安全验证装置,本申请另一方面还提供一种固件安全验证方法,所述方法包括:
获取固件数据和数字签名;
利用预先存储的公钥对所述数字签名进行验证;
在确定所述数字签名通过验证的情况下,运行所述固件数据。
可选的,在本申请的一个实施例中,所述获取固件数据和公钥数字签名,包括:
从可编程只读存储器中读取固件数据和数字签名。
可选的,在本申请的一个实施例中,所述利用预先存储的公钥对所述公钥数字签名进行验证,包括:
获取验证所述数字签名所使用的公钥;
在验证所述数字签名所使用的公钥与预先存储的公钥相匹配的情况下,根据所述固件数据和所述公钥确定待验证的数字签名;
在确定所述待验证的数字签名与所述数字签名相匹配的情况下,确定所述数字签名通过验证。
关于上述固件安全验证方法的具体实施方式,可以参考上述实施例,在此不再赘述。
本申请另一方面还提供一种固件数据加密方法,用于生成上述任一实施例所述的固件数据,如图4所示,所述方法可以包括:
S401:利用非对称加密算法对固件数据、公钥和私钥加密生成数字签名;
S403:发送所述固件数据、所述公钥和所述数字签名。
在本申请的一个实施例中,对于椭圆曲线算法或者SM2加密算法举例说明,所述利用非对称加密算法对固件数据、公钥和私钥加密生成数字签名,包括:
对固件数据进行加密生成加密固件数据;
对用户标识、椭圆曲线参数、公钥加密生成第一中间值;
对所述加密固件数据和所述第一中间值加密生成第二中间值;
对所述第二中间值、私钥加密生成数字签名。
图5展示了本实施例各个数据之间的生成关系,在此不再赘述。
对应于上述固件数据加密方法,本申请还提供一种固件数据加密装置,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时可以实现上述任一实施例的固件数据加密算法。
本申请另一方面还提供一种非临时性计算机只读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任一实施例所述的固件安全验证方法或者所述固件数据加密方法。
所述计算机只读存储介质可以包括用于存储信息的物理装置,通常是将信息数字化后再以利用电、磁或者光学等方式的媒体加以存储。本实施例所述的计算机只读存储介质在生产的过程中即已写入数据,且数据一旦写入后就固定下来,即使切断电源,数据也不会丢失。所述计算机只读存储介质可以包括ROM等,当然也可以包括利用磁能或者光学方式以只读形式存储信息的装置,本申请在此不做限制。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。
本申请另一方面还提供一种电子设备,所述电子设备包括上述任一实施例所述的固件安全验证装置。所述电子设备可以包括任何具有固件的设备,例如可以包括手机、音箱、智能穿戴设备、数码相机、mp3、mp4、路由器、电子书、交换机、宽带猫、PSP、PS3、NDS、XBOX、U盘、数码卫星接收器等数码产品,也可以包括计算机主板、打印机的BIOS、显卡的BIOS、鼠标、显示器、光驱、硬盘、键盘、GPS终端、精密的电子仪器(比如核磁共振仪)等等。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (16)
1.一种固件安全验证装置,其特征在于,包括处理器以及用于存储处理器可执行指令的只读存储器,所述处理器执行所述指令时实现以下步骤:
获取固件数据和数字签名;
利用预先存储的公钥对所述数字签名进行验证;
在确定所述数字签名通过验证的情况下,运行所述固件数据。
2.根据权利要求1所述的固件安全验证装置,其特征在于,所述装置还包括一次性可编程存储器,所述一次性可编程存储器用于存储所述公钥。
3.根据权利要求2所述的固件安全验证装置,其特征在于,所述一次性可编程存储器中还用于存储处理器可执行指令,所述处理器执行所述指令时实现:
在监测到所述处理器接收供电或者接收到新的固件数据的情况下,开始执行所述只读存储器中所存储的指令。
4.根据权利要求1所述的固件安全验证装置,其特征在于,所述处理器在实现步骤获取固件数据和公钥数字签名时包括:
从可编程只读存储器中读取固件数据和数字签名,所述可编程只读存储器与所述处理器电性连接。
5.根据权利要求1所述的固件安全验证装置,其特征在于,所述处理器在实现步骤利用预先存储的公钥对所述公钥数字签名进行验证时包括:
获取验证所述数字签名所使用的公钥;
在确定验证所述数字签名所使用的公钥与预先存储的公钥相匹配的情况下,根据所述固件数据和所述公钥确定待验证的数字签名;
在确定所述待验证的数字签名与所述数字签名相匹配的情况下,确定所述数字签名通过验证。
6.根据权利要求1所述的固件安全验证装置,其特征在于,所述处理器在实现步骤利用预先存储的公钥对所述数字签名进行验证时包括:
确定生成所述数字签名所使用到的加密算法;
对所述加密算法进行自检;
在确定自检得到的结果正确的情况下,利用预先存储的公钥对所述数字签名进行验证。
7.根据权利要求1所述的固件安全验证装置,其特征在于,所述处理器在实现步骤获取固件数据和数字签名之前,还实现以下步骤:
关闭所述处理器上具有调试功能的物理接口。
8.根据权利要求1所述的固件安全验证装置,其特征在于,所述固件数据包括新固件的数据或者原始固件的升级数据。
9.一种固件安全验证方法,其特征在于,所述方法包括:
获取固件数据和数字签名;
利用预先存储的公钥对所述数字签名进行验证;
在确定所述数字签名通过验证的情况下,运行所述固件数据。
10.根据权利要求9所述的固件安全验证方法,其特征在于,所述获取固件数据和公钥数字签名,包括:
从可编程只读存储器中读取固件数据和数字签名。
11.根据权利要求9所述的固件安全验证方法,其特征在于,所述利用预先存储的公钥对所述公钥数字签名进行验证,包括:
获取验证所述数字签名所使用的公钥;
在验证所述数字签名所使用的公钥与预先存储的公钥相匹配的情况下,根据所述固件数据和所述公钥确定待验证的数字签名;
在确定所述待验证的数字签名与所述数字签名相匹配的情况下,确定所述数字签名通过验证。
12.一种固件数据加密方法,其特征在于,用于生成权利要求1-8任一项所述的固件数据,所述方法包括:
利用非对称加密算法对固件数据、公钥和私钥加密生成数字签名;
发送所述固件数据、所述公钥和所述数字签名。
13.根据权利要求12所述的数据加密方法,其特征在于,所述利用非对称加密算法对固件数据、公钥和私钥加密生成数字签名,包括:
对固件数据进行加密生成加密固件数据;
对用户标识、椭圆曲线参数、公钥加密生成第一中间值;
对所述加密固件数据和所述第一中间值加密生成第二中间值;
对所述第二中间值、私钥加密生成数字签名。
14.一种固件数据加密装置,其特征在于,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现权利要求12或13的方法。
15.一种非临时性计算机只读存储介质,当所述存储介质中的指令由处理器执行时,使得处理器能够执行权利要求9-13任一项所述的方法。
16.一种电子设备,其特征在于,包括权利要求1-8任一项所述的固件安全验证装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010934468.3A CN111984962A (zh) | 2020-09-08 | 2020-09-08 | 固件安全验证方法及装置 |
US17/125,017 US11829479B2 (en) | 2020-09-08 | 2020-12-17 | Firmware security verification method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010934468.3A CN111984962A (zh) | 2020-09-08 | 2020-09-08 | 固件安全验证方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111984962A true CN111984962A (zh) | 2020-11-24 |
Family
ID=73447734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010934468.3A Pending CN111984962A (zh) | 2020-09-08 | 2020-09-08 | 固件安全验证方法及装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11829479B2 (zh) |
CN (1) | CN111984962A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612486A (zh) * | 2020-12-28 | 2021-04-06 | 湖北芯擎科技有限公司 | 存储器烧录方法、装置和待烧录芯片 |
CN112699345A (zh) * | 2020-12-30 | 2021-04-23 | 合肥市芯海电子科技有限公司 | 固件安全运行的方法及系统、设备及存储介质 |
CN113127041A (zh) * | 2021-05-07 | 2021-07-16 | 长江存储科技有限责任公司 | 存储器系统及其固件更新方法、设备及可读存储介质 |
CN113609476A (zh) * | 2021-07-28 | 2021-11-05 | 南京慧尔视智能科技有限公司 | 一种雷达固件远程升级方法和升级系统 |
CN114201224A (zh) * | 2021-12-13 | 2022-03-18 | 北京奕斯伟计算技术有限公司 | 处理器启动方法、异构处理器系统及处理器启动装置 |
CN115242492A (zh) * | 2022-07-19 | 2022-10-25 | 中国电信股份有限公司 | 固件硬编码的加密方法、装置、电子设备及存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11669619B2 (en) * | 2021-07-27 | 2023-06-06 | Dell Products L.P. | System and method of utilizing multiple information handling system firmware on an information handling system |
TWI824602B (zh) * | 2022-07-05 | 2023-12-01 | 大陸商星宸科技股份有限公司 | 電子裝置及其控制方法 |
CN116248282B (zh) * | 2022-12-02 | 2024-05-17 | 北京深盾科技股份有限公司 | 固件下载方法、电子设备、控制装置及计算机可读存储介质 |
CN115766043B (zh) * | 2023-01-06 | 2023-04-14 | 北京象帝先计算技术有限公司 | 一种片外固件的验签方法、装置、芯片及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107135074A (zh) * | 2016-02-29 | 2017-09-05 | 中兴通讯股份有限公司 | 一种高级安全方法和装置 |
CN110795126A (zh) * | 2019-10-25 | 2020-02-14 | 苏州浪潮智能科技有限公司 | 一种固件安全升级系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8347111B2 (en) * | 2009-01-06 | 2013-01-01 | Hewlett-Packard Development Company, L.P. | Data processing apparatus |
WO2012122994A1 (en) * | 2011-03-11 | 2012-09-20 | Kreft Heinz | Off-line transfer of electronic tokens between peer-devices |
US9853974B2 (en) * | 2014-01-27 | 2017-12-26 | Cryptography Research, Inc. | Implementing access control by system-on-chip |
US10819688B2 (en) * | 2018-03-24 | 2020-10-27 | Tala Secure, Inc. | System and method for generating and managing a key package |
-
2020
- 2020-09-08 CN CN202010934468.3A patent/CN111984962A/zh active Pending
- 2020-12-17 US US17/125,017 patent/US11829479B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107135074A (zh) * | 2016-02-29 | 2017-09-05 | 中兴通讯股份有限公司 | 一种高级安全方法和装置 |
CN110795126A (zh) * | 2019-10-25 | 2020-02-14 | 苏州浪潮智能科技有限公司 | 一种固件安全升级系统 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112612486A (zh) * | 2020-12-28 | 2021-04-06 | 湖北芯擎科技有限公司 | 存储器烧录方法、装置和待烧录芯片 |
CN112699345A (zh) * | 2020-12-30 | 2021-04-23 | 合肥市芯海电子科技有限公司 | 固件安全运行的方法及系统、设备及存储介质 |
CN113127041A (zh) * | 2021-05-07 | 2021-07-16 | 长江存储科技有限责任公司 | 存储器系统及其固件更新方法、设备及可读存储介质 |
CN113609476A (zh) * | 2021-07-28 | 2021-11-05 | 南京慧尔视智能科技有限公司 | 一种雷达固件远程升级方法和升级系统 |
CN114201224A (zh) * | 2021-12-13 | 2022-03-18 | 北京奕斯伟计算技术有限公司 | 处理器启动方法、异构处理器系统及处理器启动装置 |
CN114201224B (zh) * | 2021-12-13 | 2024-04-12 | 北京奕斯伟计算技术股份有限公司 | 处理器启动方法、异构处理器系统及处理器启动装置 |
CN115242492A (zh) * | 2022-07-19 | 2022-10-25 | 中国电信股份有限公司 | 固件硬编码的加密方法、装置、电子设备及存储介质 |
CN115242492B (zh) * | 2022-07-19 | 2024-01-30 | 中国电信股份有限公司 | 固件硬编码的加密方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20220075873A1 (en) | 2022-03-10 |
US11829479B2 (en) | 2023-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111984962A (zh) | 固件安全验证方法及装置 | |
JP5457362B2 (ja) | 情報処理装置、情報処理方法、情報処理プログラム及び集積回路 | |
CN101300583B (zh) | 用于可信赖移动电话的简单可伸缩和可配置安全启动 | |
KR100746012B1 (ko) | 코드 이미지를 안전하게 갱신하고 부팅하는 방법 및 장치 | |
KR100792287B1 (ko) | 자체 생성한 암호화키를 이용한 보안방법 및 이를 적용한보안장치 | |
CN102063591B (zh) | 基于可信平台的平台配置寄存器参考值的更新方法 | |
RU2601862C2 (ru) | Способ, аппарат и устройство обработки шифрования и дешифрования | |
US20080082828A1 (en) | Circuit arrangement and method for starting up a circuit arrangement | |
EP2434683A1 (en) | Electronic device, key generation program, recording medium, and key generation method | |
CN107092816B (zh) | 一种Android应用程序加固方法 | |
KR20040007685A (ko) | 전자 장치 보안 방법, 보안 시스템 및 전자 장치 | |
CN110326266B (zh) | 一种数据处理的方法及装置 | |
EP2051181A1 (en) | Information terminal, security device, data protection method, and data protection program | |
CN108595198B (zh) | 一种安全的固件更新方法 | |
CN107832589B (zh) | 软件版权保护方法及其系统 | |
CN103189877A (zh) | 软件认证 | |
CN108229144B (zh) | 一种应用程序的验证方法、终端设备及存储介质 | |
KR102013983B1 (ko) | 애플리케이션 무결성 인증 방법 및 인증 서버 | |
CN111382397B (zh) | 升级软件包配置方法、软件升级方法、设备及存储装置 | |
CN111160879A (zh) | 一种硬件钱包及其安全性提升方法和装置 | |
CN105893837A (zh) | 应用程序安装方法、安全加密芯片及终端 | |
CN110874467A (zh) | 信息处理方法、装置、系统以及处理器、存储介质 | |
CN109299944B (zh) | 一种交易过程中的数据加密方法、系统及终端 | |
US20200233676A1 (en) | Bios management device, bios management system, bios management method, and bios management program-stored recording medium | |
CN103370718A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 601-606, No. 40, Lane 565, Shengxia Road, Pudong New Area Free Trade Zone, Shanghai, October 2012 (nominal 6th floor, actual 5th floor) Applicant after: Yingren Technology Co.,Ltd. Address before: 2 / F, No.1, Lane 500, shengxia Road, Pudong New Area pilot Free Trade Zone, Shanghai 201210 Applicant before: Yingren Technology (Shanghai) Co.,Ltd. |