TWI467485B - Verification of the basic input and output system update method, the computer can read the recording media and computer program products - Google Patents
Verification of the basic input and output system update method, the computer can read the recording media and computer program products Download PDFInfo
- Publication number
- TWI467485B TWI467485B TW100119729A TW100119729A TWI467485B TW I467485 B TWI467485 B TW I467485B TW 100119729 A TW100119729 A TW 100119729A TW 100119729 A TW100119729 A TW 100119729A TW I467485 B TWI467485 B TW I467485B
- Authority
- TW
- Taiwan
- Prior art keywords
- file
- basic input
- program
- firmware
- output system
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 39
- 238000012795 verification Methods 0.000 title claims description 18
- 238000004590 computer program Methods 0.000 title claims description 11
- 238000004422 calculation algorithm Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Description
本發明有關於一種驗證基本輸入輸出系統之更新的方法、電腦可讀取之記錄媒體及電腦程式產品,特別有關於一種在通用可延伸式韌體介面之環境下驗證基本輸入輸出系統之更新的方法、電腦可讀取之記錄媒體及電腦程式產品。
電腦具有一般熟知之基本輸入輸出系統(即BIOS,Basic Input Output System),其儲存在唯讀記憶體中,例如Flash ROM(快閃唯讀記憶體)。由於傳統的基本輸入輸出系統(Legacy BIOS)發展已到達極限,英特爾公司(Intel Corporation)已發展出一種可延伸式韌體介面(即EFI,Extensible Firmware Interface)規格,可免除傳統的基本輸入輸出系統的先天限制。
此種可延伸式韌體介面容許使用標準的程式語言工具加入新元件,具有更佳的擴充性,並且其係以C語言編寫,程式容易維護、閱讀。目前,可延伸式韌體介面可支援舊有的系統,在傳統的基本輸入輸出系統上執行,並適當接管一些控制。
然而,英特爾公司所發展的可延伸式韌體介面僅能使用於特定的CPU,有鑑於此,由英特爾公司與多家製造CPU的公司共同發展出一通用可延伸式韌體介面(UEFI,Universal
Extensible Firmware Interface)之規格,以適用於各種不同公司所製造的CPU。
圖1為習知在UEFI環境下進行韌體更新之示意圖。在圖1中,使用者欲更新UEFI環境之BIOS韌體,藉由作業系統10之應用程式從儲存媒體(如硬碟、隨身碟、光碟或非揮發性記憶體等)12讀取要被更新BIOS韌體之檔案資料,並儲存於記憶體14中。
此時,作業系統10呼叫並進入UEFI環境之BIOS 16。BIOS 16從記憶體14中讀取要被更新BIOS韌體之檔案資料。在BIOS 16執行更新韌體驅動程式時,BIOS 16將所讀取之要被更新BIOS韌體之檔案資料寫入Flash ROM 18中。在電腦重新開機時,即由新BIOS韌體開啟。
習知的方法可以完成BIOS韌體的更新,但遇到駭客想趁更新過程時竄改BIOS韌體是容易達成的。因為在更新過程中,並未驗證韌體更新程式或預備更新之BIOS韌體是否遭到變更,如果遭到駭客變更,這可能成為駭客的BIOS的韌體更新應用程式,並將Flash ROM 18內的BIOS韌體輕易竄改。
為了預防上述問題,提出利用「checksum(總和檢查)」方法來驗證韌體更新應用程式及要被更新BIOS韌體。所謂「checksum」是將要被更新BIOS韌體之資料全部相加,而把其總和放入一個變數中,在將要被更新BIOS韌體傳輸至
電腦時亦將該總和傳送至電腦。當電腦接收到要被更新BIOS韌體與該總和時,電腦以利用checksum方法再次將要被更新BIOS韌體之資料相加以產生驗證用總和,然後判斷所接收之總和與驗證用總和是否相同,以驗證要被更新BIOS韌體使否被竄改。但是使用checksum方法來作為驗證之用,對於駭客而言仍然容易破解而輕易地竄改該要被更新BIOS韌體。
本發明提供一種驗證基本輸入輸出系統之更新的方法、電腦可讀取之記錄媒體及電腦程式產品,其藉由一演算法所產生之一驗證結果,來驗證UEFI BIOS更新韌體程式(UEFI BIOS Flash Utility)與新BIOS韌體在更新前都未遭到竄改,利用此演算法之驗證方式不易被駭客破解,以防止不合法及非完整之BIOS韌體被寫入Flash ROM中。
本發明提供一種驗證基本輸入輸出系統之更新的方法,在一電腦中實施該方法,在一通用可延伸式韌體介面之環境下執行一執行檔,該方法包含下列步驟:由一作業系統從一儲存媒體讀取該執行檔,並儲存於一記憶體中,該執行檔係為該通用可延伸式韌體介面之檔案格式,該執行檔包含一韌體更新程式及嵌入於該韌體更新程式之至少一檔案、一數位憑證及一簽章,該至少一檔案係供該執行程式參考使用;
由該作業系統呼叫並進入該通用可延伸式韌體介面之一基本輸入輸出系統;以一公鑰及一演算法依據該數位憑證計算該執行檔之該韌體更新程式與該至少一檔案,以產生一驗證用簽章;驗證該執行檔之該簽章與該驗證用簽章為相同時,解除一唯讀記憶體寫入鎖;以及執行該執行檔中之該韌體更新程式,以將該至少一檔案之資料寫入一唯讀記憶體中。
根據本發明之方法,進一步包含下列步驟:由一輸入介面輸入該執行檔之名稱;以及從該記憶體中讀取該執行檔。
根據本發明之方法,進一步包含下列步驟:由該輸入介面輸入該韌體更新程式之名稱、該至少一檔案之名稱及該數位憑證之名稱;從該儲存媒體中讀取該韌體更新程式、該韌體更新程式所參考使用之該至少一檔案與該數位憑證,並暫存於一暫存區中;將該至少一檔案嵌入於該韌體更新程式下;以一私鑰及該演算法依據該數位憑證計算該韌體更新程式與所嵌入之該至少一檔案來產生該簽章;將該數位憑證及該簽章嵌入於該韌體更新程式下以成為該執行檔,並暫存於該暫存區;以及
將該暫存區中之該執行檔儲存到該儲存媒體中。
根據本發明之方法,其中,該輸入介面係一鍵盤、一滑鼠及一觸控面板之其中一者。
根據本發明之方法,其中,該儲存媒體係一硬碟、一隨身碟、一光碟及一非揮發性記憶體之其中一者。
根據本發明之方法,其中,該暫存區係一記憶體。
本發明提供一種內儲一程式之電腦可讀取之記錄媒體,當一電腦由該記錄媒體載入該程式並執行後,可完成上述驗證基本輸入輸出系統之更新的方法。
本發明提供一種內儲一程式之電腦程式產品,當一電腦由電腦程式產品載入該程式並執行後,可完成驗證基本輸入輸出系統之更新的方法。
參考以下附圖以說明本發明之驗證基本輸入輸出系統之更新之方法的較佳實施例。
圖2為本發明之執行程式附掛檔案成為執行檔之示意圖,圖3為本發明之執行程式附掛檔案成為執行檔之流程圖。在圖2及3中,由一電腦執行一簽章程式,以一演算法依據一數位憑證實施UEFI更新韌體程式(即執行程式)、更新韌體功能設定及新BIOS韌體等檔案之計算,以產生一簽章,並將更新韌體功能設定、新BIOS韌體、數位憑證及簽章嵌入於UEFI更新韌體程式。其中,在UEFI環境下執行
UEFI更新韌體程式,而作為UEFI更新韌體程式所參考使用之更新韌體功能設定及新BIOS韌體等檔案可以不是UEFI的檔案格式。本實施例以附掛兩個檔案為例,但並非侷限用以本發明,在其他的實施例可以僅是附掛一個檔案或兩個以上檔案。
使用者可在作業系統之環境藉由電腦之一輸入介面(如鍵盤、滑鼠或觸控面板等)輸入UEFI更新韌體程式、更新韌體功能設定、新BIOS韌體及數位憑證等檔案之名稱(步驟S20)。
電腦從一儲存媒體(如硬碟、隨身碟及光碟等)中讀取UEFI更新韌體程式、更新韌體功能設定、新BIOS韌體及數位憑證等檔案,並暫存於暫存區(如記憶體)中(步驟S22)。
電腦將更新韌體功能設定及新BIOS韌體等檔案嵌入於UEFI更新韌體程式下(步驟S24)。
電腦利用所熟知之RSA加密演算法及公鑰(Public Key)加密標準,除了對UEFI更新韌體程式、更新韌體功能設定及新BIOS韌體等檔案進行加密之外,並且依據所熟知之X.509數位憑證計算UEFI更新韌體程式、更新韌體功能設定及新BIOS韌體等檔案以產生對應於該等檔案之簽章(步驟S26)。
接著,電腦將更數位憑證及簽章嵌入於UEFI更新韌體程式下(包含已嵌入之新韌體功能設定及新BIOS韌體等檔案)
以產生新的一執行檔,並將該執行檔暫存於該暫存區(步驟S28)。其中,該執行檔為UEFI之檔案格式。
電腦將暫存區中之執行檔儲存到儲存媒體中(步驟S30)。在實施上述各步驟以完成檔案嵌入於執行程式下而成為執行檔之方法。
圖4為本發明在UEFI環境下進行韌體更新之示意圖,圖5為本發明在UEFI環境下進行韌體更新之流程圖。圖4之元件與圖1之元件相同者係以相同元件符號表示。
使用者可在作業系統10之環境藉由電腦之輸入介面(未圖示)輸入執行檔之名稱(步驟S40)。電腦之作業系統10從儲存媒體12讀取執行檔,並將執行檔儲存於記憶體14中(步驟S42)。其中,執行檔包含UEFI更新韌體程式與嵌入於UEFI更新韌體程式之更新韌體功能設定、新BIOS韌體、數位憑證及簽章。
當要對BIOS 16之韌體進行更新時,由作業系統10呼叫並進入UEFI環境之BIOS 16(步驟S44)。在UEFI環境下,由BIOS 16從記憶體14中讀取執行檔(亦即讀取執行檔所包含之UEFI更新韌體程式、更新韌體功能設定、新BIOS韌體、數位憑證及簽章)(步驟S46)。
BIOS 16利用所熟知之RSA加密演算法及私鑰(Private Key)解密標準,除了對UEFI更新韌體程式、更新韌體功能設定及新BIOS韌體等檔案進行解密之外,並且依據所熟知
之X.509數位憑證計算UEFI更新韌體程式、更新韌體功能設定及新BIOS韌體等以產生對應於該等檔案之驗證用簽章(步驟S48)。
BIOS 16驗證執行檔中之簽章與驗證用簽章是否相同(步驟S50)。若驗證執行檔中之簽章與驗證用簽章不相同,表示欲寫入至Flash ROM 18之更新韌體功能設定及新BIOS韌體等係不合法或非完整,則電腦發出警示訊息告知操作者,以終止此次之BIOS韌體的更新(步驟S52)。
若驗證執行檔中之簽章與驗證用簽章相同,則BIOS 16解除一Flash ROM寫入鎖(步驟S54),使得BIOS韌體更新之資料可寫入Flash ROM 18中。
BIOS 16執行該執行檔中之UEFI更新韌體程式,UEFI更新韌體程式在執行時會將更新韌體功能設定與新BIOS韌體等之資料寫入Flash ROM 18中(步驟S56)。
在上述各步驟中,在BIOS 16執行BIOS韌體之更新前,在UEFI環境下必須符合安全驗證的考量,藉由熟知之RSA加密演算法、公鑰加密標準及私鑰解密標準,來對傳輸至電腦前與後之UEFI更新韌體程式、更新韌體功能設定與新BIOS韌體依據X.509數位憑證來產生之簽章進行驗證,以確保欲更新BIOS韌體之資料未被駭客竄改變更。
本發明之上述驗證基本輸入輸出系統之更新之方法可以一程式型態來撰寫完成,並可將該程式儲存於一電腦可讀取
之記錄媒體,當電腦從該電腦可讀取之記錄媒體載入該程式並執行後,便可完成如上述說明及圖式中所示之方法步驟。
同樣地,本發明之上述驗證基本輸入輸出系統之更新之方法可以一電腦程式產品來完成,當電腦例如從網路下載該電腦程式產品並執行後,便可完成如上述說明及圖式中所示之方法步驟。
本發明之優點係提供一種驗證基本輸入輸出系統之更新的方法、電腦可讀取之記錄媒體及電腦程式產品,其藉由RSA加密演算法、公鑰加密標準及私鑰解密標依據X.509數位憑證所產生之簽章,來驗證UEFI BIOS更新韌體程式與新BIOS韌體在更新前都未遭到竄改,利用此種驗證方式不易被駭客破解,以防止不合法及非完整之BIOS韌體被寫入Flash ROM中。
雖然本發明已參照較佳具體例及舉例性附圖敘述如上,惟其應不被視為係限制性者。熟悉本技藝者對其形態及具體例之內容做各種修改、省略及變化,均不離開本發明之申請專利範圍之所主張範圍。
10‧‧‧作業系統
12‧‧‧儲存媒體
14‧‧‧記憶體
16‧‧‧BIOS
18‧‧‧Flash ROM
圖1為習知在UEFI環境下進行韌體更新之示意圖;圖2為本發明之執行程式附掛檔案成為執行檔之示意圖;圖3為本發明之執行程式附掛檔案成為執行檔之流程圖;圖4為本發明在UEFI環境下進行韌體更新之示意圖;以
及圖5為本發明在UEFI環境下進行韌體更新之流程圖。
Claims (8)
- 一種驗證基本輸入輸出系統之更新的方法,在一電腦中實施該方法,在一通用可延伸式韌體介面之環境下執行一執行檔,該方法包含下列步驟:由一作業系統從一儲存媒體讀取該執行檔,並儲存於一記憶體中,該執行檔係為該通用可延伸式韌體介面之檔案格式,該執行檔包含一基本輸入輸出系統韌體更新程式及嵌入於該基本輸入輸出系統韌體更新程式之至少一檔案、一數位憑證及一簽章,該至少一檔案係供該執行程式參考使用;由該作業系統呼叫並進入該通用可延伸式韌體介面之一基本輸入輸出系統;以一公鑰及一演算法依據該數位憑證計算該執行檔之該基本輸入輸出系統韌體更新程式與該至少一檔案,以產生一驗證用簽章;驗證該執行檔之該簽章與該驗證用簽章為相同時,解除一唯讀記憶體寫入鎖;以及執行該執行檔中之該基本輸入輸出系統韌體更新程式,以將該至少一檔案之資料寫入一唯讀記憶體中。
- 如申請專利範圍第1項之方法,進一步包含下列步驟:由一輸入介面輸入該執行檔之名稱;以及從該記憶體中讀取該執行檔。
- 如申請專利範圍第2項之方法,進一步包含下列步驟:由該輸入介面輸入該基本輸入輸出系統韌體更新程式之名稱、該至少一檔案之名稱及該數位憑證之名稱;從該儲存媒體中讀取該基本輸入輸出系統韌體更新程式、該基本輸入輸出系統韌體更新程式所參考使用之該至少一檔案與該數位憑證,並暫存於一暫存區中;將該至少一檔案嵌入於該基本輸入輸出系統韌體更新程式下;以一私鑰及該演算法依據該數位憑證計算該基本輸入輸出系統韌體更新程式與所嵌入之該至少一檔案來產生該簽章;將該數位憑證及該簽章嵌入於該基本輸入輸出系統韌體更新程式下以成為該執行檔,並暫存於該暫存區;以及將該暫存區中之該執行檔儲存到該儲存媒體中。
- 如申請專利範圍第2或3項之方法,其中,該輸入介面係一鍵盤、一滑鼠及一觸控面板之其中一者。
- 如申請專利範圍第1或3項之方法,其中,該儲存媒體係一硬碟、一隨身碟、一光碟及一非揮發性記憶體之其中一者。
- 如申請專利範圍第3項之方法,其中,該暫存區係一記憶體。
- 一種內儲一程式之電腦可讀取之記錄媒體,當一電腦由該記錄媒體載入該程式並執行後,可完成如申請專利範圍第1至6項中任一項之方法。
- 一種內儲一程式之電腦程式產品,當一電腦由電腦程式產品載入該程式並執行後,可完成如申請專利範圍第1至6項中任一項之方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW100119729A TWI467485B (zh) | 2011-06-07 | 2011-06-07 | Verification of the basic input and output system update method, the computer can read the recording media and computer program products |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW100119729A TWI467485B (zh) | 2011-06-07 | 2011-06-07 | Verification of the basic input and output system update method, the computer can read the recording media and computer program products |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201250592A TW201250592A (en) | 2012-12-16 |
| TWI467485B true TWI467485B (zh) | 2015-01-01 |
Family
ID=48139301
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW100119729A TWI467485B (zh) | 2011-06-07 | 2011-06-07 | Verification of the basic input and output system update method, the computer can read the recording media and computer program products |
Country Status (1)
| Country | Link |
|---|---|
| TW (1) | TWI467485B (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI715926B (zh) * | 2018-02-08 | 2021-01-11 | 美商美光科技公司 | 在一儲存備份記憶體封裝中之韌體更新 |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW201619866A (zh) | 2014-11-20 | 2016-06-01 | 萬國商業機器公司 | 客製化資訊設備的方法 |
| TWI617946B (zh) * | 2015-05-25 | 2018-03-11 | Insyde Software Corp | Device and method for safely starting embedded controller |
| US9875113B2 (en) | 2015-12-09 | 2018-01-23 | Quanta Computer Inc. | System and method for managing BIOS setting configurations |
| JP2021157487A (ja) * | 2020-03-27 | 2021-10-07 | 株式会社コンテック | 外部記憶装置及び情報処理システム |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200411451A (en) * | 2002-12-18 | 2004-07-01 | Inventec Corp | File management method and system thereof |
| TW200711432A (en) * | 2005-06-30 | 2007-03-16 | Advanced Micro Devices Inc | Anti-hack protection to restrict installation of operating systems and other software |
| US20070204114A1 (en) * | 2001-09-27 | 2007-08-30 | International Business Machines Corporation | Configurable Hardware Scheduler Calendar Search Algorithm |
| TW201109969A (en) * | 2009-08-11 | 2011-03-16 | Silver Spring Networks Inc | Method and system for securely updating field upgradeable units |
-
2011
- 2011-06-07 TW TW100119729A patent/TWI467485B/zh active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070204114A1 (en) * | 2001-09-27 | 2007-08-30 | International Business Machines Corporation | Configurable Hardware Scheduler Calendar Search Algorithm |
| TW200411451A (en) * | 2002-12-18 | 2004-07-01 | Inventec Corp | File management method and system thereof |
| TW200711432A (en) * | 2005-06-30 | 2007-03-16 | Advanced Micro Devices Inc | Anti-hack protection to restrict installation of operating systems and other software |
| TW201109969A (en) * | 2009-08-11 | 2011-03-16 | Silver Spring Networks Inc | Method and system for securely updating field upgradeable units |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI715926B (zh) * | 2018-02-08 | 2021-01-11 | 美商美光科技公司 | 在一儲存備份記憶體封裝中之韌體更新 |
Also Published As
| Publication number | Publication date |
|---|---|
| TW201250592A (en) | 2012-12-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5265662B2 (ja) | トラステッドコンポーネント更新システム及びトラステッドコンポーネント更新方法 | |
| TWI376634B (en) | Computing system, method, computer-readable medium and patch data structure product for augmenting software | |
| CN102693379B (zh) | 保护操作系统配置值 | |
| JP4837985B2 (ja) | 信頼できる処理モジュールを有するコンピュータを安全にブートするためのシステムおよび方法 | |
| US8375437B2 (en) | Hardware supported virtualized cryptographic service | |
| CN101273363B (zh) | 快闪大容量存储装置及其操作方法 | |
| JP6595822B2 (ja) | 情報処理装置及びその制御方法 | |
| JP5510550B2 (ja) | ハードウェアトラストアンカー | |
| KR101190479B1 (ko) | 티켓 인증 보안 설치 및 부트 | |
| CN103765429B (zh) | 数字签名机构相关的平台秘密 | |
| JP5191043B2 (ja) | プログラムの不正起動防止システム及び方法 | |
| US20050021968A1 (en) | Method for performing a trusted firmware/bios update | |
| CN101199159A (zh) | 安全引导 | |
| JP2006216048A (ja) | ファームウェアの必要なメモリ容量を減らすと共に、ファームウェアに安全なアップデート及びストレージ領域を提供するシステム及び方法 | |
| TWI467485B (zh) | Verification of the basic input and output system update method, the computer can read the recording media and computer program products | |
| US11397815B2 (en) | Secure data protection | |
| JP2009187247A (ja) | イメージファイル配布システム及びイメージファイル配布方法 | |
| JPWO2010021269A1 (ja) | 記憶装置、情報処理装置およびプログラム | |
| JP5465738B2 (ja) | システム・ファームウェアの更新方法およびコンピュータ | |
| JP4655613B2 (ja) | プログラム実行装置及びプログラム実行方法 | |
| JP2012216222A (ja) | 情報処理装置、およびプログラム | |
| CN112513849B (zh) | 信息处理装置、验证方法和记录介质 | |
| JP2011164858A (ja) | ライセンス設定システムおよびライセンス設定方法 | |
| JP2007233970A (ja) | セキュリティ管理システム | |
| TW201351946A (zh) | 應用於非對稱式加解密token之管理方法 |