CN113805908A - 固件更新系统和方法 - Google Patents

固件更新系统和方法 Download PDF

Info

Publication number
CN113805908A
CN113805908A CN202010551629.0A CN202010551629A CN113805908A CN 113805908 A CN113805908 A CN 113805908A CN 202010551629 A CN202010551629 A CN 202010551629A CN 113805908 A CN113805908 A CN 113805908A
Authority
CN
China
Prior art keywords
firmware
updated
configuring
verification
electronic device
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
CN202010551629.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.)
Realtek Semiconductor Corp
Original Assignee
Realtek Semiconductor Corp
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 Realtek Semiconductor Corp filed Critical Realtek Semiconductor Corp
Priority to CN202010551629.0A priority Critical patent/CN113805908A/zh
Priority to TW109122839A priority patent/TWI749622B/zh
Priority to US17/231,119 priority patent/US11803366B2/en
Publication of CN113805908A publication Critical patent/CN113805908A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public 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
    • H04L9/3073Public 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 involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • H04L9/3252Cryptographic 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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical 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)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开一种固件更新系统和方法。固件更新方法包括主机将待更新的固件进行数字签名,电子设备依据更新请求对主机的更新工具进行身份校验,校验通过的更新工具才有更新许可权。更新工具使用加密算法对包含数字签名的待更新固件加密,加密完成后由主机通过更新工具向电子设备发送。电子设备接着利用原始固件中的解密算法对接收到的固件解密,得到含有数字签名的待更新固件,并写入电子设备指定的待更新固件储存区。电子设备接着校验待更新固件中的数字签名,校验通过完成固件更新,校验失败则擦除电子设备中已写入的固件数据。

Description

固件更新系统和方法
技术领域
本发明涉及一种固件更新系统和方法,特别是涉及一种可安全线上更新固件的固件更新系统和方法。
背景技术
固件是储存在电子设备中的“驱动程序”,电子设备通过执行固件进行运作。为了延长电子设备的使用寿命,并提升电子设备对不同软件、硬件环境的相容性,厂商需要不断地更新固件。固件更新是指使用者通过特定的工具对电子设备中的内嵌固件进行升级,修补以前版本的漏洞,同时完善电子设备功能,以提高电子设备性能。
在现有固件更新方式中,对固件更新时的保护存在缺陷,安全性较低,固件易被盗用、恶意修改,损害固件厂商和使用者的利益。同时,固件更新时,由于并未分区进行,导致当前正在使用的固件在更新时遭到覆盖。并且,如果固件更新时意外终止,将导致更新失败,使得电子设备将无法正常使用。
因此,改良固件更新机制,来提升固件更新的安全性,来克服上述的缺陷,已成为该项事业所欲解决的重要课题之一。
发明内容
本发明所要解决的技术问题在于,针对现有技术的不足提供一种能够安全线上进行更新的固件更新系统和方法。
为了解决上述的技术问题,本发明所采用的其中一个技术方案是提供一种固件更新方法,适用于包括主机和电子设备的固件更新系统,该主机经配置以通信连接该电子设备,且储存有待更新固件,所述固件更新方法包括下列步骤:配置该主机执行固件产生工具,以将该待更新固件进行数字签名,从而产生包括数字签名的该待更新固件;配置该主机执行更新工具,以向该电子设备传送更新命令;响应于接收到该更新命令,配置该电子设备对该更新工具进行权限验证程序,包括:配置该电子设备和该更新工具产生多组随机数并进行交换;配置该更新工具以非对称加密算法对这些组随机数进行签名,以产生验证签名并传送给该电子设备;以及配置该电子设备以该非对称加密算法对该验证签名进行校验,若校验成功,则向该更新工具传送校验成功信号,反之则向该更新工具传送校验失败信号;响应于接收到该校验成功信号,配置该更新工具以对称加密算法对包括该数字签名的该待更新固件进行加密,以产生加密固件,并传送给该电子设备;配置该电子设备执行原始固件,并以解密算法对该加密固件进行解密,以取得包括该数字签名的该待更新固件;配置该电子设备判断第一固件储存区和第二固件储存区中,哪一个是待更新固件储存区;配置该更新工具将包括该数字签名的该待更新固件写入该待更新固件储存区;响应于包括该数字签名的该待更新固件完成写入该待更新固件储存区,配置该电子设备执行该原始固件,并以签名校验算法对该数字签名进行校验,若校验成功,则更新完成。
为了解决上述的技术问题,本发明所采用的另外一个技术方案是提供一种固件更新系统,其包括电子设备和主机。电子设备包括第一处理单元和第一存储模块。第一存储模块包括固件执行区、第一固件储存区和第二固件储存区。固件执行区,储存有原始固件。第一固件储存区和第二固件储存区的至少其中之一储存有该原始固件。主机经配置以通信连接该电子设备,其包括第二处理单元和第二存储模块。第二存储模块储存有更新工具、待更新固件和固件产生工具。其中,该主机经配置以执行该固件产生工具,以将该待更新固件进行数字签名,从而产生包括数字签名的该待更新固件。其中,该主机经配置以执行该更新工具,以向该电子设备传送更新命令。其中,响应于接收到该更新命令,该电子设备经配置以对该更新工具进行权限验证程序,包括:配置该电子设备和该更新工具产生多组随机数并进行交换;配置该更新工具以非对称加密算法对这些组随机数进行签名,以产生验证签名并传送给该电子设备;以及配置该电子设备以该非对称加密算法对该验证签名进行校验,若校验成功,则向该更新工具传送校验成功信号,反之则向该更新工具传送校验失败信号。其中,响应于接收到该校验成功信号,该主机经配置以执行该更新工具以对称加密算法对包括该数字签名的该待更新固件进行加密,以产生加密固件,并传送给该电子设备。其中,该电子设备经配置以执行原始固件,并以解密算法对该加密固件进行解密,以取得包括该数字签名的该待更新固件。其中,该电子设备经配置以判断第一固件储存区和第二固件储存区中,哪一个是待更新固件储存区。其中,该主机经配置以执行该更新工具将包括该数字签名的该待更新固件写入该待更新固件储存区。其中,响应于包括该数字签名的该待更新固件完成写入该待更新固件储存区,该电子设备经配置以执行该原始固件,并以签名校验算法对该数字签名进行校验,若校验成功,则更新完成。
本发明的其中一个有益效果在于,本发明所提供的固件更新系统和方法,可防止电子设备被非法更新工具写入恶意固件。此外,使用者使用授权的工具进行固件更新时,由于不同电子设备的厂商提供的更新工具内部封装的私有密钥不同,更新工具无法通用,进一步提高了更新工具的安全性和可靠性。再者,在更新过程中,由于对原始固件进行了签名校验,可以检查固件中是否有被添加、删除、篡改的数据,保证待更新固件的完整性与正确性。
另一方面,本发明所提供的固件更新系统和方法通过对第一固件储存区和第二固件储存区交替更新,当固件更新过程中因断电等意外情况导致更新终止后,使电子设备仍可正常运行。当第一固件储存区和第二固件储存区中有一个分区更新出错时,电子设备可自动运行另一分区中的固件,以返回执行更新前的固件版本,保障电子设备的正常运作。
为使能更进一步了解本发明的特征和技术内容,请参照以下有关本发明的详细说明与附图,然而所提供的附图仅用于提供参考与说明,并非用来对本发明加以限制。
附图说明
图1为本发明实施例的固件升级系统的方块图。
图2为本发明实施例的第一存储模块的配置示意图。
图3为本发明实施例的固件升级方法的流程图。
图4为本发明实施例的权限验证程序的流程图。
图5为本发明特定实施例的权限验证程序的流程图。
图6为本发明实施例的用于判断待更新固件储存区的步骤流程图。
具体实施方式
以下是通过特定的具体实施例来说明本发明所公开有关“固件更新系统和方法”的实施方式,本领域技术人员可由本说明书所公开的内容了解本发明的优点与效果。本发明可通过其他不同的具体实施例加以实施或应用,本说明书中的各项细节也可基于不同观点与应用,在不背离本发明的构思下进行各种修改与变更。另外,本发明的附图仅为简单示意说明,并非依实际尺寸绘制,事先声明。以下的实施方式将进一步详细说明本发明的相关技术内容,但所公开的内容并非用以限制本发明的保护范围。另外,本文中所使用的术语“或”,应视实际情况可能包括相关联的列出项目中的任一个或者多个的组合。
请参照图1和图2,图1为本发明实施例的固件升级系统的方块图,图2为本发明实施例的第一存储模块的配置示意图。
参照图1和图2所示,本发明第一实施例提供一种固件更新系统1,其包括电子设备10和主机12。
电子设备10包括第一处理单元100和第一存储模块102。第一处理单元100可例如为中央处理器(Central Processing Unit,CPU)或基板管理控制器(BaseboardManageament Controller,BMC),第一存储模块102可例如为电可擦除可编程只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、可编程只读存储器(Programmable read-only Memory,PROM)、快闪存储器(Flash Memory)等,第一存储模块102主要用于储存固件,其包括固件执行区Boot、第一固件储存区mem1和第二固件储存区mem2。
固件执行区Boot,储存有初始程序A0,且第一固件储存区mem1和第二固件储存区mem2的至少其中之一储存有原始固件A,例如,第一固件B1或第二固件C1为原始固件A。固件执行区Boot可执行初始程序A0,以在电子设备10开机时,从第一固件储存区mem1或第二固件储存区mem2载入原始固件A。
另一方面,主机12经配置以通信连接电子设备10,主机12包括第二处理单元120和第二存储模块122。类似的,第二处理单元120可例如为中央处理器或基板管理控制器,第二存储模块122可例如为电可擦除可编程只读存储器、可编程只读存储器、快闪存储器等。第二存储模块122储存有更新工具UT、待更新固件UF和固件产生工具FGT。
请进一步参照图3,其为本发明实施例的固件升级方法的流程图。如图所示,本发明提供一种固件更新方法,适用于上述包括主机12和电子设备10的固件更新系统1。详细而言,本发明的固件更新方法实质上是一种安全的线上更新电子设备固件的方式,且主要体现在对电子设备10的原始固件A更新时的保护机制,以及在固件更新失败时提供的恢复机制。如图所示,固件更新方法包括下列步骤:
步骤S100:配置主机12执行固件产生工具FGT,以将待更新固件UF进行数字签名,从而产生包括数字签名的待更新固件UF。举例而言,待更新固件UF可例如由主机12执行更新工具UT时,从电子设备10所属的厂商端所取得的具有最新版本的固件。在此步骤中,主机12可经配置以执行数字签名算法,例如,椭圆曲线数字签名算法(Elliptic Curve DigitalSignature Algorithm,ECDSA),并依据第一私钥PK1对待更新固件UF进行数字签名。
详细而言,在本实施例中,步骤S100是基于待更新固件UF进行数字签名,且用于进行数字签名的私有密钥(亦即上述的第一私钥PK1)封装在固件产生工具FGT内,而用于校验上述数字签名的公开密钥则储存在电子设备10内部。
步骤S101:配置主机12执行更新工具UT,以向电子设备10传送更新命令S1。
步骤S102:响应于接收到更新命令S1,配置电子设备10对更新工具UT进行权限验证程序。详细而言,在电子设备10接收到更新工具UT发送的更新命令S1后,首先确认使用者的更新工具UT的权限,本发明针对不同使用者可提供不同的更新工具,本发明不限于此。
可进一步参考图4,其为本发明实施例的权限验证程序的流程图。如图所示,权限验证程序包括:
步骤S1021:配置电子设备10和更新工具UT产生多组随机数并进行交换。
步骤S1022:配置更新工具UT以非对称加密算法对这些组随机数进行签名,以产生验证签名S2并传送给电子设备。
其中,可进一步参考图5,其为本发明特定实施例的权限验证程序的流程图。在特定实施例中,步骤S1021至步骤S1022还包括下列步骤:
步骤S300:配置电子设备10产生第一组随机数,并传送给主机12。
步骤S301:响应于接收到第一组随机数,配置主机12产生第二组随机数,并传送给电子设备。
步骤S302:响应于接收到第二组随机数,配置电子设备10产生第三组随机数,并传送给主机12。
步骤S303:配置主机12将第一组随机数、第二组随机数和第三组随机数作为验证信息,并执行ECDSA,依据第二私钥PK2对验证信息进行数字签名,以产生验证签名S2。在特定实施例中,可由固件厂商为使用者提供嵌入私有密钥(即第二私钥PK2)的更新工具UT。
步骤S1023:配置电子设备10以非对称加密算法对验证签名S2进行校验。步骤S1023中,非对称加密算法也可例如为ECDSA,因此,步骤S1023可进一步包括配置电子设备10执行ECDSA,并依据第二公钥K2对该验证签名进行校验。其中,第二公钥K2是内建于电子设备10中,且第二公钥K2与第二私钥PK2具有配对关系。
若校验成功,则进入步骤S1024:向更新工具UT传送校验成功信号S3,反之,则进入步骤S1025:向更新工具UT传送校验失败信号S4。
在以上步骤中,若任意一个步骤失败,则直接返回,不允许更新工具UT更新固件。
响应于接收到校验成功信号S3,固件更新方法进一步执行步骤S103:配置更新工具UT以对称加密算法对包括数字签名的待更新固件UF进行加密,以产生加密固件S5,并传送给电子设备10。
更新工具UT校验通过后,更新工具UT可进一步利用内嵌的密钥对包含数字签名的原始固件加密,供使用者下载使用。固件加密可以在一定程度上防止数据在传输过程中被恶意篡改、盗用。因此,步骤S103可进一步包括配置更新工具UT以对称加密算法依据第一密钥SK1对包括数字签名的待更新固件UF进行加密。
接着,执行步骤S104:配置电子设备10执行原始固件A,并以解密算法对加密固件S5进行解密,以取得包括数字签名的待更新固件UF。此步骤是对应于步骤S103,因此,可进一步包括配置电子设备10以该解密算法依据第二密钥SK2对该加密固件进行解密,以取得包括数字签名的待更新固件UT,其中,由于更新工具UT是以对称加密算法依据第一密钥SK1对包括数字签名的待更新固件UF进行加密,而对称加密算法只有一种非公开的密钥,分别存储在电子设备10内部和更新工具UT中。换言之,可通过确保密钥的安全性,进一步使固件的安全性受到保障。在特定实施例中,密钥可由固件厂商保管,使其不致外泄,但本发明不限于此。因此,在本实施例中,第一密钥SK1与第二密钥SK2相同。
步骤S105:配置电子设备10判断第一固件储存区mem1和第二固件储存区mem2中,哪一个是待更新固件储存区。详细而言,电子设备10的非易失性存储空间可划分为第一固件储存区mem1和第二固件储存区mem2两个分区,并据此判断需要更新固件的存储器分区。电子设备10用于储存固件的每个存储器分区结构如图2所示,第一固件储存区mem1可进一步储存有第一存在标志B2和第一更新次数B3,而第二固件储存区mem2可进一步储存有第二存在标志C2和第二更新次数C3。
因此,可参照图6,其为本发明实施例的用于判断待更新固件储存区的步骤流程图。步骤S105可进一步包括以下步骤:
步骤S400:检查第一固件储存区mem1中的第一存在标志B2和第二固件储存区mem2中的第二存在标志C2是否标示为更新过,
若第一存在标志B2和第二存在标志C2均未标示为更新过,则进入步骤S401:判断第一固件储存区mem1为待更新固件储存区。
若第一存在标志B2和第二存在标志C2的其中之一标示为更新过,则进入步骤S402:判断未标示为更新过的该区为待更新固件储存区。
若第一存在标志B1和第二存在标志B2均标示为更新过,则进入步骤S403:将第一固件储存区mem1中的第一固件更新次数B3与第二固件储存区中的第二固件更新次数C3进行比较,并进入步骤S404:判断较少的该区为待更新固件储存区。
进一步举例而言,每次固件更新完成后,都会更新当前存储器分区的存在标志和更新次数。通过检查两个存储器分区的固件更新次数和存在标志,决定本次固件更新写入的存储器地址空间。当第一固件储存区mem1和第二固件储存区mem2两个分区的固件存在标志均未置起(例如,值均为0)时,将固件更新至第一固件储存区mem1,当两个分区中有且仅有一个分区的存在标志没有置起时,将固件更新到该分区,当第一固件储存区mem1和第二固件储存区mem2的存在标志同时置起(例如,其值为1)时,比较两个分区的固件更新次数。若第一固件储存区mem1的固件更新次数大于第二固件储存区mem2时,表示当前第一固件储存区mem1的固件版本更新时间比第二固件储存区mem2晚,需要更新第二固件储存区mem2的固件,否则更新第一固件储存区mem1。
因此,当更新过程意外终止或更新出错时,电子设备10可自动运行另一分区中的固件,回退到更新前的固件版本,保障电子设备10的正常运行。
判断出待更新固件储存区后,进入步骤S106:配置更新工具UT将包括数字签名的待更新固件UF写入待更新固件储存区。
步骤S107:响应于包括数字签名的待更新固件UF完成写入待更新固件储存区,配置电子设备10执行原始固件A,并以签名校验算法对数字签名进行校验。其中,签名校验算法也可例如为ECDSA,因此,步骤S107可进一步包括配置电子设备10执行ECDSA,并依据第一公钥K1对该数字签名进行校验,其中,第一公钥K1是内建于电子设备10中,在特定实施例中,可在电子设备10出厂时将此公开密钥嵌入电子设备10内部,出厂后无法修改。而第一公钥K1与第一私钥PK1具有配对关系。
若校验成功,则进入步骤S108,更新成功,可配置电子设备10返回更新成功信息S6,同时将该区的存在标志置起(例如,将其值由0改为1),且将对应的更新次数加1,并且,本次固件更新成功后,再次更新时就可依据存在标志指示的信息,将待更新的固件写入另一个分区来交替更新。若校验失败,则进入步骤S109,代表更新失败。
若更新失败,则进行步骤S110:抹除已写入待更新固件储存区的待更新固件UF,并传送错误信息S7至更新工具UT。
在本发明的上述实施例中,不限制上述步骤中涉及到的所有加密算法、解密算法以及数字签名算法,加密算法、解密算法以及数字签名算法可以是现有技术中任意可实现的算法。对接收到的加密固件进行解密和签名校验时,解密算法与加密算法对应,签名校验算法与签名算法对应。类似的,对更新工具进行权限验证程序时,其对应的加密算法与解密算法也是相对应的。
实施例的有益效果
本发明的其中一个有益效果在于,本发明所提供的固件更新系统和方法,可防止电子设备被非法更新工具写入恶意固件。此外,使用者使用授权的工具进行固件更新时,由于不同电子设备的厂商提供的更新工具内部封装的私有密钥不同,更新工具无法通用,进一步提高了更新工具的安全性和可靠性。再者,在更新过程中,由于对原始固件进行了签名校验,可以检查固件中是否有被添加、删除、篡改的数据,保证待更新固件的完整性与正确性。
另一方面,本发明所提供的固件更新系统和方法通过对第一固件储存区和第二固件储存区交替更新,当固件更新过程中因断电等意外情况导致更新终止后,设备仍可正常运行。当第一固件储存区和第二固件储存区中有一个分区更新出错时,电子设备可自动运行另一分区中的固件,以返回执行更新前的固件版本,保障电子设备的正常运作。
以上所公开的内容仅为本发明的优选可行实施例,并非因此局限本发明的权利要求范围,所以凡是运用本发明说明书以及附图内容所做的等同技术改变,均包含在本发明的权利要求范围内。
附图标记说明
固件更新系统:1
电子设备:10
第一处理单元:100
第一存储模块:102
固件执行区:Boot
第一固件储存区:mem1
第二固件储存区:mem2
初始程序:A0
原始固件:A
第一固件:B1
第一存在标志:B2
第一更新次数:B3
第二固件:C1
第二存在标志:C2
第二更新次数:C3
主机:12
第二处理单元:120
第二存储模块:122
更新工具:UT
待更新固件:UF
固件产生工具:FGT
更新命令:S1
验证签名:S2
第一私钥:PK1
第二私钥:PK2
第一公钥:K1
第二公钥:K2
校验成功信号:S3
校验失败信号:S4
加密固件:S5
第一密钥:SK1
第二密钥:SK2
更新成功信息:S6
错误信息:S7

Claims (10)

1.一种固件更新方法,适用于包括主机和电子设备的固件更新系统,所述主机经配置以通信连接所述电子设备,且储存有待更新固件,所述固件更新方法包括下列步骤:
配置所述主机执行固件产生工具,以将所述待更新固件进行数字签名,从而产生包括数字签名的所述待更新固件;
配置所述主机执行更新工具,以向所述电子设备传送更新命令;
响应于接收到所述更新命令,配置所述电子设备对所述更新工具进行权限验证程序,包括:
配置所述电子设备和所述更新工具产生多组随机数并进行交换;
配置所述更新工具以非对称加密算法对这些组随机数进行签名,以产生验证签名并传送给所述电子设备;以及
配置所述电子设备以所述非对称加密算法对所述验证签名进行校验,若校验成功,则向所述更新工具传送校验成功信号,反之则向所述更新工具传送校验失败信号;
响应于接收到所述校验成功信号,配置所述更新工具以对称加密算法对包括所述数字签名的所述待更新固件进行加密,以产生加密固件,并传送给所述电子设备;
配置所述电子设备执行原始固件,并以解密算法对所述加密固件进行解密,以取得包括所述数字签名的所述待更新固件;
配置所述电子设备判断第一固件储存区和第二固件储存区中,哪一个是待更新固件储存区;
配置所述更新工具将包括所述数字签名的所述待更新固件写入所述待更新固件储存区;
响应于包括所述数字签名的所述待更新固件完成写入所述待更新固件储存区,配置所述电子设备执行所述原始固件,并以签名校验算法对所述数字签名进行校验,若校验成功,则更新完成。
2.如权利要求1所述的固件更新方法,其中配置所述主机执行所述固件产生工具,以将所述待更新固件进行数字签名,从而产生包括所述数字签名的所述待更新固件的步骤还包括:
配置所述主机执行椭圆曲线数字签名算法,并依据第一私钥对所述待更新固件进行数字签名。
3.如权利要求2所述的固件更新方法,其中配置所述电子设备执行所述原始固件,并以所述签名校验算法对所述数字签名进行校验的步骤还包括:
配置所述电子设备执行椭圆曲线数字签名算法,并依据第一公钥对所述数字签名进行校验,
其中所述第一公钥是与所述第一私钥具有配对关系。
4.如权利要求1所述的固件更新方法,其中配置所述电子设备和所述更新工具产生这些组随机数并进行交换,以及配置所述更新工具以所述非对称加密算法对这些组随机数进行签名,以产生所述验证签名并传送给所述电子设备的步骤还包括:
配置所述电子设备产生第一组随机数,并传送给所述主机;
响应于接收到所述第一组随机数,配置所述主机产生第二组随机数,并传送给所述电子设备;
响应于接收到所述第二组随机数,配置所述电子设备产生第三组随机数,并传送给所述主机;以及
配置所述主机将所述第一组随机数、所述第二组随机数以及所述第三组随机数作为验证信息,并执行椭圆曲线数字签名算法,依据第二私钥对所述验证信息进行数字签名,以产生所述验证签名。
5.如权利要求4所述的固件更新方法,其中配置所述电子设备以所述非对称加密算法对所述验证签名进行校验的步骤还包括:
配置所述电子设备执行椭圆曲线数字签名算法,并依据第二公钥对所述验证签名进行校验,
其中所述第二公钥与所述第二私钥具有配对关系。
6.如权利要求1所述的固件更新方法,其中配置所述更新工具以所述对称加密算法对包括所述数字签名的所述待更新固件进行加密,以产生所述加密固件的步骤还包括:
配置所述更新工具以所述对称加密算法依据第一密钥对包括所述数字签名的所述待更新固件进行加密。
7.如权利要求6所述的固件更新方法,其中配置所述电子设备执行所述原始固件,并以所述解密算法对所述加密固件进行解密,以取得包括所述数字签名的所述待更新固件的步骤还包括:
配置所述电子设备以所述解密算法依据第二密钥对所述加密固件进行解密,以取得包括所述数字签名的所述待更新固件,
其中所述第一密钥与所述第二密钥相同。
8.如权利要求1所述的固件更新方法,其中配置所述电子设备判断所述第一固件储存区和所述第二固件储存区中,哪一个是所述待更新固件储存区的步骤还包括:
检查所述第一固件储存区中的第一存在标志以及所述第二固件储存区中的第二存在标志是否标示为更新过,
其中,若所述第一存在标志和所述第二存在标志均未标示为更新过,则判断所述第一固件储存区为所述待更新固件储存区;
其中,若所述第一存在标志和所述第二存在标志的其中之一标示为更新过,则判断未标示为更新过的所述区为所述待更新固件储存区。
9.如权利要求8所述的固件更新方法,其中若所述第一存在标志和所述第二存在标志均标示为更新过,则进一步将所述第一固件储存区中的第一固件更新次数与所述第二固件储存区中的第二固件更新次数进行比较,并判断较少的所述区为所述待更新固件储存区。
10.一种固件更新系统,其包括:
电子设备,其包括:
第一处理单元;以及
第一存储模块,包括:
固件执行区,储存有初始程序;
第一固件储存区和第二固件储存区,至少其中之一储存有原始固件;以及
主机,经配置以通信连接所述电子设备,其包括:
第二处理单元;第二存储模块,储存有更新工具、待更新固件以及固件产生工具,其中所述主机经配置以执行所述固件产生工具,以将所述待更新固件进行数字签名,从而产生包括数字签名的所述待更新固件;
其中所述主机经配置以执行所述更新工具,以向所述电子设备传送更新命令;
其中,响应于接收到所述更新命令,所述电子设备经配置以对所述更新工具进行权限验证程序,包括:
配置所述电子设备和所述更新工具产生多组随机数并进行交换;
配置所述更新工具以非对称加密算法对这些组随机数进行签名,以产生验证签名并传送给所述电子设备;以及
配置所述电子设备以所述非对称加密算法对所述验证签名进行校验,若校验成功,则向所述更新工具传送校验成功信号,反之则向所述更新工具传送校验失败信号;
其中,响应于接收到所述校验成功信号,所述主机经配置以执行所述更新工具以对称加密算法对包括所述数字签名的所述待更新固件进行加密,以产生加密固件,并传送给所述电子设备;
其中所述电子设备经配置以执行原始固件,并以解密算法对所述加密固件进行解密,以取得包括所述数字签名的所述待更新固件;
其中所述电子设备经配置以判断第一固件储存区和第二固件储存区中,哪一个是待更新固件储存区;
其中所述主机经配置以执行所述更新工具将包括所述数字签名的所述待更新固件写入所述待更新固件储存区;
其中,响应于包括所述数字签名的所述待更新固件完成写入所述待更新固件储存区,所述电子设备经配置以执行所述原始固件,并以签名校验算法对所述数字签名进行校验,若校验成功,则更新完成。
CN202010551629.0A 2020-06-17 2020-06-17 固件更新系统和方法 Pending CN113805908A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010551629.0A CN113805908A (zh) 2020-06-17 2020-06-17 固件更新系统和方法
TW109122839A TWI749622B (zh) 2020-06-17 2020-07-07 韌體更新系統及方法
US17/231,119 US11803366B2 (en) 2020-06-17 2021-04-15 Firmware updating system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010551629.0A CN113805908A (zh) 2020-06-17 2020-06-17 固件更新系统和方法

Publications (1)

Publication Number Publication Date
CN113805908A true CN113805908A (zh) 2021-12-17

Family

ID=78943170

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010551629.0A Pending CN113805908A (zh) 2020-06-17 2020-06-17 固件更新系统和方法

Country Status (3)

Country Link
US (1) US11803366B2 (zh)
CN (1) CN113805908A (zh)
TW (1) TWI749622B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115314556A (zh) * 2022-07-04 2022-11-08 和芯星通科技(北京)有限公司 Gnss定位系统

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7362583B2 (ja) * 2020-09-23 2023-10-17 株式会社東芝 情報処理装置
US20230125556A1 (en) * 2021-10-25 2023-04-27 Whitestar Communications, Inc. Secure autonomic recovery from unusable data structure via a trusted device in a secure peer-to-peer data network
US20230259628A1 (en) * 2022-02-11 2023-08-17 Quanta Computer Inc. Methods for securely updating software
CN114662087B (zh) * 2022-05-20 2022-09-02 广州万协通信息技术有限公司 一种多端验证的安全芯片固件更新方法及装置
CN114995860B (zh) * 2022-08-01 2022-11-11 摩尔线程智能科技(北京)有限责任公司 图形处理器固件升级的方法和图形处理器
WO2024040509A1 (en) * 2022-08-25 2024-02-29 Intel Corporation Implementation of device seamless update with pre-authorization policy in trusted execution environment
CN117972712B (zh) * 2023-12-29 2024-07-02 北京辰光融信技术有限公司 固件更新方法、装置、计算机设备和计算机存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103986583A (zh) * 2014-05-29 2014-08-13 上海斐讯数据通信技术有限公司 一种动态加密方法及其加密通信系统
US20150261521A1 (en) * 2014-03-11 2015-09-17 Hyuksang CHOI Mobile system including firmware verification function and firmware update method thereof
CN105812570A (zh) * 2016-04-21 2016-07-27 深圳市旭子科技有限公司 终端固件更新方法及装置
CN110532735A (zh) * 2018-05-23 2019-12-03 霍尼韦尔环境自控产品(天津)有限公司 固件升级方法
CN110795126A (zh) * 2019-10-25 2020-02-14 苏州浪潮智能科技有限公司 一种固件安全升级系统

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060005046A1 (en) * 2004-06-30 2006-01-05 Seagate Technology Llc Secure firmware update procedure for programmable security devices
US10454674B1 (en) * 2009-11-16 2019-10-22 Arm Limited System, method, and device of authenticated encryption of messages
CN102667716A (zh) * 2009-12-18 2012-09-12 惠普发展公司,有限责任合伙企业 使用固件更新应用程序更新部件的固件的方法及装置
TWI462017B (zh) * 2012-02-24 2014-11-21 Wistron Corp 伺服器部署系統及資料更新的方法
TWI497438B (zh) * 2013-11-27 2015-08-21 Ind Tech Res Inst 先進讀表基礎建設中之韌體更新系統及其方法
JP6675271B2 (ja) * 2015-09-14 2020-04-01 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America ゲートウェイ装置、車載ネットワークシステム及びファームウェア更新方法
US9935945B2 (en) * 2015-11-05 2018-04-03 Quanta Computer Inc. Trusted management controller firmware
US10958435B2 (en) * 2015-12-21 2021-03-23 Electro Industries/ Gauge Tech Providing security in an intelligent electronic device
US10481900B2 (en) * 2016-04-11 2019-11-19 Endress+Hauser Conducta Gmbh+Co. Kg Method for updating a firmware component and device of measurement and control technology
TWI676933B (zh) * 2018-07-05 2019-11-11 慧榮科技股份有限公司 韌體更新方法
TWI710952B (zh) * 2018-08-28 2020-11-21 緯創資通股份有限公司 韌體更新方法及電腦系統
TW202014879A (zh) * 2018-10-05 2020-04-16 東碩資訊股份有限公司 韌體組件安全更新的方法以及用以實施的攜行電腦站
TWI685786B (zh) * 2018-10-25 2020-02-21 神雲科技股份有限公司 用於現場可程式邏輯閘陣列的韌體更新方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150261521A1 (en) * 2014-03-11 2015-09-17 Hyuksang CHOI Mobile system including firmware verification function and firmware update method thereof
CN103986583A (zh) * 2014-05-29 2014-08-13 上海斐讯数据通信技术有限公司 一种动态加密方法及其加密通信系统
CN105812570A (zh) * 2016-04-21 2016-07-27 深圳市旭子科技有限公司 终端固件更新方法及装置
CN110532735A (zh) * 2018-05-23 2019-12-03 霍尼韦尔环境自控产品(天津)有限公司 固件升级方法
CN110795126A (zh) * 2019-10-25 2020-02-14 苏州浪潮智能科技有限公司 一种固件安全升级系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115314556A (zh) * 2022-07-04 2022-11-08 和芯星通科技(北京)有限公司 Gnss定位系统
CN115314556B (zh) * 2022-07-04 2024-03-08 和芯星通科技(北京)有限公司 Gnss定位系统

Also Published As

Publication number Publication date
US11803366B2 (en) 2023-10-31
TW202201217A (zh) 2022-01-01
TWI749622B (zh) 2021-12-11
US20210397441A1 (en) 2021-12-23

Similar Documents

Publication Publication Date Title
CN113805908A (zh) 固件更新系统和方法
US20240146545A1 (en) Unified programming environment for programmable devices
EP3995980B1 (en) Device programming with system generation
EP1594030B1 (en) Program update method and server
CN102063591B (zh) 基于可信平台的平台配置寄存器参考值的更新方法
KR20200064968A (ko) 보안형 메모리 칩의 롤백 방지 버전 업그레이드
EP3284000B1 (en) Secure software authentication and verification
KR20090109589A (ko) 프로세서 내에서의 보호된 리소스들로의 억세스에 대한 안전한 보호 방법
US20070277038A1 (en) Method for authentication of software within a product
CN111264044A (zh) 芯片、生成私钥的方法和可信证明的方法
US11270003B2 (en) Semiconductor device including secure patchable ROM and patch method thereof
CN109814934B (zh) 数据处理方法、装置、可读介质和系统
US20230273977A1 (en) Managing ownership of an electronic device
CN111147259B (zh) 鉴权方法和设备
EP3989480A1 (en) Virtual subscriber identification module and virtual smart card
CN112417422A (zh) 安全芯片升级方法及计算机可读存储介质
US10949527B2 (en) Semiconductor device, authentication system, and authentication method
JP2024507531A (ja) デジタルデバイスのためのトラステッドコンピューティング
US20230114775A1 (en) Portable Chip Device and Method for Executing a Software Module Update in a Portable Chip Device
CN117708897A (zh) 用于保护嵌入式设备固件数据的方法以及嵌入式设备
CN117708896A (zh) 用于保护嵌入式设备固件数据的方法以及嵌入式设备
CN115643060A (zh) 一种固件文件的执行方法和装置
JP2024011421A (ja) メモリ異常判定方法、及び共通鍵書き込みシステム
JP2022107288A (ja) 自動車用電子制御装置
CN115935335A (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