TWI749622B - 韌體更新系統及方法 - Google Patents

韌體更新系統及方法 Download PDF

Info

Publication number
TWI749622B
TWI749622B TW109122839A TW109122839A TWI749622B TW I749622 B TWI749622 B TW I749622B TW 109122839 A TW109122839 A TW 109122839A TW 109122839 A TW109122839 A TW 109122839A TW I749622 B TWI749622 B TW I749622B
Authority
TW
Taiwan
Prior art keywords
firmware
electronic device
update
updated
storage area
Prior art date
Application number
TW109122839A
Other languages
English (en)
Other versions
TW202201217A (zh
Inventor
何東宇
古夢瑤
孫健
Original Assignee
瑞昱半導體股份有限公司
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 瑞昱半導體股份有限公司 filed Critical 瑞昱半導體股份有限公司
Application granted granted Critical
Publication of TWI749622B publication Critical patent/TWI749622B/zh
Publication of TW202201217A publication Critical patent/TW202201217A/zh

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)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Stored Programmes (AREA)

Abstract

本發明公開一種韌體更新系統及方法。韌體更新方法包括主機將待更新的韌體進行數位簽章,電子設備依據更新請求對主機的更新工具進行身份校驗,校驗通過的更新工具才有更新許可權。更新工具使用加密演算法對包含數位簽章的待更新韌體加密,加密完成後由主機通過更新工具向電子設備發送。電子設備接著利用原始韌體中的解密演算法對接收到的韌體解密,得到含有數位簽章的待更新韌體,並寫入電子設備指定的待更新韌體儲存區。電子設備接著校驗待更新韌體中的數位簽章,校驗通過完成韌體更新,校驗失敗則擦除電子設備中已寫入的韌體資料。

Description

韌體更新系統及方法
本發明涉及一種韌體更新系統及方法,特別是涉及一種可安全線上更新韌體的韌體更新系統及方法。
韌體是儲存在電子設備中的“驅動程式”,電子設備通過執行韌體進行運作。為了延長電子設備的使用壽命,並提升電子設備對不同軟體、硬體環境的相容性,廠商需要不斷地更新韌體。韌體更新是指使用者通過特定的工具對電子設備中的內嵌韌體進行升級,修補以前版本的漏洞,同時完善電子設備功能,以提高電子設備性能。
在現有韌體更新方式中,對韌體更新時的保護存在缺陷,安全性較低,韌體易被盜用、惡意修改,損害韌體廠商和使用者的利益。同時,韌體更新時,由於並未分區進行,導致當前正在使用的韌體於更新時遭到覆寫。並且,如果韌體更新時意外終止,將導致更新失敗,使得電子設備將無法正常使用。
因此,改良韌體更新機制,來提升韌體更新的安全性,來克服上述的缺陷,已成為該項事業所欲解決的重要課題之一。
本發明所要解決的技術問題在於,針對現有技術的不足提供一種能夠安全線上進行更新的韌體更新系統及方法。
為了解決上述的技術問題,本發明所採用的其中一技術方案是提供一種韌體更新方法,適用於包括一主機及一電子設備的韌體更新系統,該主機經配置以通訊連接該電子設備,且儲存有一待更新韌體,所述韌體更新方法包括下列步驟:配置該主機執行一韌體產生工具,以將該待更新韌體進行數位簽章,從而產生包括一數位簽章的該待更新韌體;配置該主機執行一更新工具,以向該電子設備傳送一更新命令;響應於接收到該更新命令,配置該電子設備對該更新工具進行一權限驗證程序,包括:配置該電子設備及該更新工具產生多組隨機數並進行交換;配置該更新工具以一非對稱加密算法對該些組隨機數進行簽章,以產生一驗證簽章並傳送給該電子設備;及配置該電子設備以該非對稱加密算法對該驗證簽章進行校驗,若校驗成功,則向該更新工具傳送一校驗成功訊號,反之則向該更新工具傳送一校驗失敗訊號;響應於接收到該校驗成功訊號,配置該更新工具以一對稱加密算法對包括該數位簽章的該待更新韌體進行加密,以產生一加密韌體,並傳送給該電子設備;配置該電子設備執行一原始韌體,並以一解密算法對該加密韌體進行解密,以取得包括該數位簽章的該待更新韌體;配置該電子設備判斷一第一韌體儲存區及一第二韌體儲存區中,何者為一待更新韌體儲存區;配置該更新工具將包括該數位簽章的該待更新韌體寫入該待更新韌體儲存區;響應於包括該數位簽章的該待更新韌體完成寫入該待更新韌體儲存區,配置該電子設備執行該原始韌體,並以一簽章校驗演算法對該數位簽章進行校驗,若校驗成功,則更新完成。
為了解決上述的技術問題,本發明所採用的另外一技術方案是提供一種韌體更新系統,其包括電子設備及主機。電子設備包括第一處理單元及第一記憶模組。第一記憶模組包括韌體執行區、第一韌體儲存區及第二韌體儲存區。韌體執行區,儲存有原始韌體。第一韌體儲存區及第二韌體儲存區的至少其中之一儲存有該原始韌體。主機經配置以通訊連接該電子設備,其包括第二處理單元及第二記憶模組。第二記憶模組儲存有更新工具、待更新韌體及韌體產生工具。其中,該主機經配置以執行該韌體產生工具,以將該待更新韌體進行數位簽章,從而產生包括一數位簽章的該待更新韌體。其中,該主機經配置以執行該更新工具,以向該電子設備傳送一更新命令。其中,響應於接收到該更新命令,該電子設備經配置以對該更新工具進行一權限驗證程序,包括:配置該電子設備及該更新工具產生多組隨機數並進行交換;配置該更新工具以一非對稱加密算法對該些組隨機數進行簽章,以產生一驗證簽章並傳送給該電子設備;及配置該電子設備以該非對稱加密算法對該驗證簽章進行校驗,若校驗成功,則向該更新工具傳送一校驗成功訊號,反之則向該更新工具傳送一校驗失敗訊號。其中,響應於接收到該校驗成功訊號,該主機經配置以執行該更新工具以一對稱加密算法對包括該數位簽章的該待更新韌體進行加密,以產生一加密韌體,並傳送給該電子設備。其中,該電子設備經配置以執行一原始韌體,並以一解密算法對該加密韌體進行解密,以取得包括該數位簽章的該待更新韌體。其中,該電子設備經配置以判斷一第一韌體儲存區及一第二韌體儲存區中,何者為一待更新韌體儲存區。其中,該主機經配置以執行該更新工具將包括該數位簽章的該待更新韌體寫入該待更新韌體儲存區。其中,響應於包括該數位簽章的該待更新韌體完成寫入該待更新韌體儲存區,該電子設備經配置以執行該原始韌體,並以一簽章校驗演算法對該數位簽章進行校驗,若校驗成功,則更新完成。
本發明的其中一有益效果在於,本發明所提供的韌體更新系統及方法,可防止電子設備被非法更新工具寫入惡意韌體。此外,使用者使用授權的工具進行韌體更新時,由於不同電子設備的廠商提供的更新工具內部封裝的私有金鑰不同,更新工具無法通用,進一步提高了更新工具的安全性和可靠性。再者,於更新過程中,由於對原始韌體進行了簽章校驗,可以檢查韌體中是否有被添加、刪除、篡改的資料,保證待更新韌體的完整性與正確性。
另一方面,本發明所提供的韌體更新系統及方法通過對第一韌體儲存區及第二韌體儲存區交替更新,當韌體更新過程中因斷電等意外情況導致更新終止後,使電子設備仍可正常運行。當第一韌體儲存區及第二韌體儲存區中有一個分區更新出錯時,電子設備可自動運行另一分區中的韌體,以返回執行更新前的韌體版本,保障電子設備的正常運作。
為使能更進一步瞭解本發明的特徵及技術內容,請參閱以下有關本發明的詳細說明與圖式,然而所提供的圖式僅用於提供參考與說明,並非用來對本發明加以限制。
以下是通過特定的具體實施例來說明本發明所公開有關“韌體更新系統及方法”的實施方式,本領域技術人員可由本說明書所公開的內容瞭解本發明的優點與效果。本發明可通過其他不同的具體實施例加以施行或應用,本說明書中的各項細節也可基於不同觀點與應用,在不背離本發明的構思下進行各種修改與變更。另外,本發明的附圖僅為簡單示意說明,並非依實際尺寸的描繪,事先聲明。以下的實施方式將進一步詳細說明本發明的相關技術內容,但所公開的內容並非用以限制本發明的保護範圍。另外,本文中所使用的術語“或”,應視實際情況可能包括相關聯的列出項目中的任一個或者多個的組合。
請參閱圖1、2,圖1為本發明實施例的韌體升級系統的方塊圖,圖2為本發明實施例的第一記憶模組的配置示意圖。
參閱圖1及圖2所示,本發明第一實施例提供一種韌體更新系統1,其包括電子設備10及主機12。
電子設備10包括第一處理單元100及第一記憶模組102。第一處理單元100可例如為中央處理器(Central Processing Unit,CPU)或基板管理控制器(Baseboard Manageament 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可例如為中央處理器(Central Processing Unit,CPU)或基板管理控制器(Baseboard Manageament Controller,BMC),第二記憶模組122可例如為電子抹除式可複寫唯讀記憶體(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、可程式化唯讀記憶體(Programmable read-only Memory,PROM)、快閃記憶體(Flash Memory)等。第二記憶模組122儲存有更新工具UT、待更新韌體UF及韌體產生工具FGT。
請進一步參閱圖3,其為本發明實施例的韌體升級方法的流程圖。如圖所示,本發明提供一種韌體更新方法,適用於上述包括主機12及電子設備10的韌體更新系統1。詳細而言,本發明的韌體更新方法實質上係為一種安全的線上更新電子設備韌體的方式,且主要體現在對電子設備10的原始韌體A更新時的保護機制,以及在韌體更新失敗時提供的恢復機制。如圖所示,韌體更新方法包括下列步驟:
步驟S100:配置主機12執行韌體產生工具FGT,以將待更新韌體UF進行數位簽章,從而產生包括數位簽章的待更新韌體UF。舉例而言,待更新韌體UF可例如由主機12執行更新工具UT時,從電子設備10所屬的廠商端所取得的具有最新版本的韌體。在此步驟中,主機12可經配置以執行數位簽章演算法,例如,­­­橢圓曲線數位簽章算法(Elliptic Curve Digital Signature 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:錯誤訊息
圖1為本發明實施例的韌體升級系統的方塊圖。
圖2為本發明實施例的第一記憶模組的配置示意圖。
圖3為本發明實施例的韌體升級方法的流程圖。
圖4為本發明實施例的權限驗證程序的流程圖。
圖5為本發明特定實施例的權限驗證程序的流程圖。
圖6為本發明實施例的用於判斷待更新韌體儲存區的步驟流程圖。
代表圖為流程圖,故無符號簡單說明。

Claims (10)

  1. 一種韌體更新方法,適用於包括一主機及一電子設備的韌體更新系統,該主機經配置以通訊連接該電子設備,且儲存有一待更新韌體,所述韌體更新方法包括下列步驟: 配置該主機執行一韌體產生工具,以將該待更新韌體進行數位簽章,從而產生包括一數位簽章的該待更新韌體; 配置該主機執行一更新工具,以向該電子設備傳送一更新命令; 響應於接收到該更新命令,配置該電子設備對該更新工具進行一權限驗證程序,包括: 配置該電子設備及該更新工具產生多組隨機數並進行交換; 配置該更新工具以一非對稱加密算法對該些組隨機數進行簽章,以產生一驗證簽章並傳送給該電子設備;及 配置該電子設備以該非對稱加密算法對該驗證簽章進行校驗,若校驗成功,則向該更新工具傳送一校驗成功訊號,反之則向該更新工具傳送一校驗失敗訊號; 響應於接收到該校驗成功訊號,配置該更新工具以一對稱加密算法對包括該數位簽章的該待更新韌體進行加密,以產生一加密韌體,並傳送給該電子設備; 配置該電子設備執行一原始韌體,並以一解密算法對該加密韌體進行解密,以取得包括該數位簽章的該待更新韌體; 配置該電子設備判斷一第一韌體儲存區及一第二韌體儲存區中,何者為一待更新韌體儲存區; 配置該更新工具將包括該數位簽章的該待更新韌體寫入該待更新韌體儲存區; 響應於包括該數位簽章的該待更新韌體完成寫入該待更新韌體儲存區,配置該電子設備執行該原始韌體,並以一簽章校驗演算法對該數位簽章進行校驗,若校驗成功,則更新完成。
  2. 如請求項1所述的韌體更新方法,其中配置該主機執行該韌體產生工具,以將該待更新韌體進行數位簽章,從而產生包括該數位簽章的該待更新韌體的步驟更包括: 配置該主機執行­­­橢圓曲線數位簽章算法(Elliptic Curve Digital Signature Algorithm, ECDSA),並依據一第一私鑰對該待更新韌體進行數位簽章。
  3. 如請求項2所述的韌體更新方法,其中配置該電子設備執行該原始韌體,並以該簽章校驗演算法對該數位簽章進行校驗的步驟更包括: 配置該電子設備執行ECDSA,並依據一第一公鑰對該數位簽章進行校驗, 其中該第一公鑰係與該第一私鑰具有一配對關係。
  4. 如請求項1所述的韌體更新方法,其中配置該電子設備及該更新工具產生該些組隨機數並進行交換,以及配置該更新工具以該非對稱加密算法對該些組隨機數進行簽章,以產生該驗證簽章並傳送給該電子設備的步驟更包括: 配置該電子設備產生一第一組隨機數,並傳送給該主機; 響應於接收到該第一組隨機數,配置該主機產生一第二組隨機數,並傳送給該電子設備; 響應於街收到該第二組隨機數,配置該電子設備產生一第三組隨機數,並傳送給該主機;以及 配置該主機將該第一組隨機數、該第二組隨機數及該第三組隨機數作為一驗證訊息,並執行ECDSA,依據一第二私鑰對該驗證訊息進行數位簽章,以產生該驗證簽章。
  5. 如請求項4所述的韌體更新方法,其中配置該電子設備以該非對稱加密算法對該驗證簽章進行校驗的步驟更包括: 配置該電子設備執行ECDSA,並依據一第二公鑰對該驗證簽章進行校驗, 其中該第二公鑰與該第二私鑰具有一配對關係。
  6. 如請求項1所述的韌體更新方法,其中配置該更新工具以該對稱加密算法對包括該數位簽章的該待更新韌體進行加密,以產生該加密韌體的步驟更包括: 配置該更新工具以該對稱加密算法依據一第一秘鑰對包括該數位簽章的該待更新韌體進行加密。
  7. 如請求項6所述的韌體更新方法,其中配置該電子設備執行該原始韌體,並以該解密算法對該加密韌體進行解密,以取得包括該數位簽章的該待更新韌體的步驟更包括: 配置該電子設備以該解密算法依據一第二秘鑰對該加密韌體進行解密,以取得包括該數位簽章的該待更新韌體, 其中該第一秘鑰與該第二秘鑰相同。
  8. 如請求項1所述的韌體更新方法,其中配置該電子設備判斷該第一韌體儲存區及該第二韌體儲存區中,何者為該待更新韌體儲存區的步驟更包括: 檢查該第一韌體儲存區中的一第一存在旗標及該第二韌體儲存區中的一第二存在旗標是否標示為更新過, 其中,若該第一存在旗標及該第二存在旗標均未標示為更新過,則判斷該第一韌體儲存區為該待更新韌體儲存區; 其中,若該第一存在旗標及該第二存在旗標的其中之一標示為更新過,則判斷未標示為更新過的該區為該待更新韌體儲存區。
  9. 如請求項8所述的韌體更新方法,其中若該第一存在旗標及該第二存在旗標均標示為更新過,則進一步將該第一韌體儲存區中的一第一韌體更新次數及該第二韌體儲存區中的一第二韌體更新次數進行比較,並判斷較少的該區為該待更新韌體儲存區。
  10. 一種韌體更新系統,其包括: 一電子設備,其包括: 一第一處理單元;及 一第一記憶模組,包括: 一韌體執行區,儲存有一初始程序; 一第一韌體儲存區及一第二韌體儲存區,至少其中之一儲存有一原始韌體;以及 一主機,經配置以通訊連接該電子設備,其包括: 一第二處理單元; 一第二記憶模組,儲存有一更新工具、一待更新韌體及一韌體產生工具, 其中該主機經配置以執行該韌體產生工具,以將該待更新韌體進行數位簽章,從而產生包括一數位簽章的該待更新韌體; 其中該主機經配置以執行該更新工具,以向該電子設備傳送一更新命令; 其中,響應於接收到該更新命令,該電子設備經配置以對該更新工具進行一權限驗證程序,包括: 配置該電子設備及該更新工具產生多組隨機數並進行交換; 配置該更新工具以一非對稱加密算法對該些組隨機數進行簽章,以產生一驗證簽章並傳送給該電子設備;及 配置該電子設備以該非對稱加密算法對該驗證簽章進行校驗,若校驗成功,則向該更新工具傳送一校驗成功訊號,反之則向該更新工具傳送一校驗失敗訊號; 其中,響應於接收到該校驗成功訊號,該主機經配置以執行該更新工具以一對稱加密算法對包括該數位簽章的該待更新韌體進行加密,以產生一加密韌體,並傳送給該電子設備; 其中該電子設備經配置以執行一原始韌體,並以一解密算法對該加密韌體進行解密,以取得包括該數位簽章的該待更新韌體; 其中該電子設備經配置以判斷一第一韌體儲存區及一第二韌體儲存區中,何者為一待更新韌體儲存區; 其中該主機經配置以執行該更新工具將包括該數位簽章的該待更新韌體寫入該待更新韌體儲存區; 其中,響應於包括該數位簽章的該待更新韌體完成寫入該待更新韌體儲存區,該電子設備經配置以執行該原始韌體,並以一簽章校驗演算法對該數位簽章進行校驗,若校驗成功,則更新完成。
TW109122839A 2020-06-17 2020-07-07 韌體更新系統及方法 TWI749622B (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
TWI749622B true TWI749622B (zh) 2021-12-11
TW202201217A TW202201217A (zh) 2022-01-01

Family

ID=78943170

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109122839A TWI749622B (zh) 2020-06-17 2020-07-07 韌體更新系統及方法

Country Status (3)

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

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 广州万协通信息技术有限公司 一种多端验证的安全芯片固件更新方法及装置
CN115314556B (zh) * 2022-07-04 2024-03-08 和芯星通科技(北京)有限公司 Gnss定位系统
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

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201131475A (en) * 2009-12-18 2011-09-16 Hewlett Packard Development Co Methods and devices for updating firmware of a component using a firmware update application
TW201335847A (zh) * 2012-02-24 2013-09-01 Wistron Corp 伺服器部署系統及資料更新的方法
TW201520954A (zh) * 2013-11-27 2015-06-01 Ind Tech Res Inst 先進讀表基礎建設中之韌體更新系統及其方法
TW201717000A (zh) * 2015-11-05 2017-05-16 廣達電腦股份有限公司 用於確保管理控制器韌體安全之方法及計算機裝置
TWI676933B (zh) * 2018-07-05 2019-11-11 慧榮科技股份有限公司 韌體更新方法
TWI685786B (zh) * 2018-10-25 2020-02-21 神雲科技股份有限公司 用於現場可程式邏輯閘陣列的韌體更新方法
TW202009688A (zh) * 2018-08-28 2020-03-01 緯創資通股份有限公司 韌體更新方法及電腦系統
TW202014879A (zh) * 2018-10-05 2020-04-16 東碩資訊股份有限公司 韌體組件安全更新的方法以及用以實施的攜行電腦站

Family Cites Families (10)

* 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
KR102139546B1 (ko) * 2014-03-11 2020-07-30 삼성전자주식회사 펌웨어 검증 기능을 갖는 모바일 시스템 그리고 그것의 펌웨어 업데이트 방법
CN103986583B (zh) * 2014-05-29 2019-11-29 上海斐讯数据通信技术有限公司 一种动态加密方法及其加密通信系统
JP6675271B2 (ja) * 2015-09-14 2020-04-01 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America ゲートウェイ装置、車載ネットワークシステム及びファームウェア更新方法
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
CN105812570B (zh) * 2016-04-21 2019-05-03 深圳市旭子科技有限公司 终端固件更新方法及装置
CN110532735B (zh) * 2018-05-23 2023-04-18 霍尼韦尔环境自控产品(天津)有限公司 固件升级方法
CN110795126A (zh) * 2019-10-25 2020-02-14 苏州浪潮智能科技有限公司 一种固件安全升级系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201131475A (en) * 2009-12-18 2011-09-16 Hewlett Packard Development Co Methods and devices for updating firmware of a component using a firmware update application
TW201335847A (zh) * 2012-02-24 2013-09-01 Wistron Corp 伺服器部署系統及資料更新的方法
TW201520954A (zh) * 2013-11-27 2015-06-01 Ind Tech Res Inst 先進讀表基礎建設中之韌體更新系統及其方法
TW201717000A (zh) * 2015-11-05 2017-05-16 廣達電腦股份有限公司 用於確保管理控制器韌體安全之方法及計算機裝置
TWI676933B (zh) * 2018-07-05 2019-11-11 慧榮科技股份有限公司 韌體更新方法
TW202009688A (zh) * 2018-08-28 2020-03-01 緯創資通股份有限公司 韌體更新方法及電腦系統
TW202014879A (zh) * 2018-10-05 2020-04-16 東碩資訊股份有限公司 韌體組件安全更新的方法以及用以實施的攜行電腦站
TWI685786B (zh) * 2018-10-25 2020-02-21 神雲科技股份有限公司 用於現場可程式邏輯閘陣列的韌體更新方法

Also Published As

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

Similar Documents

Publication Publication Date Title
TWI749622B (zh) 韌體更新系統及方法
US20240146545A1 (en) Unified programming environment for programmable devices
KR102254256B1 (ko) 보안형 메모리 칩의 롤백 방지 버전 업그레이드
TWI744373B (zh) 使用安全演算法嵌入基礎性的信任根
KR20170095163A (ko) 하드웨어 디바이스 및 그 인증 방법
CN111264044B (zh) 芯片、生成私钥的方法和可信证明的方法
KR20200085724A (ko) 호스트 시스템과 데이터 처리 가속기 사이의 보안 통신을 제공하기 위한 방법 및 시스템
US10282549B2 (en) Modifying service operating system of baseboard management controller
CN109445705B (zh) 固件认证方法及固态硬盘
CN105283921A (zh) 非易失性存储器的操作
US20210176065A1 (en) Storage system and data protection method for storage system
US20230273977A1 (en) Managing ownership of an electronic device
KR20210134053A (ko) 오버-디-에어 업데이트 유효성 확인 방법
WO2023212178A1 (en) Sram physically unclonable function (puf) memory for generating keys based on device owner
US20230010319A1 (en) Deriving independent symmetric encryption keys based upon a type of secure boot using a security processor
CN115391844A (zh) 安全密钥存储装置
CN113132108B (zh) 一种数字证书的吊销、校验方法及装置
JP2024507531A (ja) デジタルデバイスのためのトラステッドコンピューティング
US20230351056A1 (en) Sram physically unclonable function (puf) memory for generating keys based on device owner
US20240152620A1 (en) Owner revocation emulation container
US20230015334A1 (en) Deriving dependent symmetric encryption keys based upon a type of secure boot using a security processor
TWI726406B (zh) 認證方法
JP2022107288A (ja) 自動車用電子制御装置
WO2024097428A1 (en) Owner revocation emulation container
JP2024501395A (ja) 車両の安全始動方法、安全始動装置、電子制御ユニット及び記憶媒体