TW201401098A - 固件驗證方法及系統 - Google Patents
固件驗證方法及系統 Download PDFInfo
- Publication number
- TW201401098A TW201401098A TW101121700A TW101121700A TW201401098A TW 201401098 A TW201401098 A TW 201401098A TW 101121700 A TW101121700 A TW 101121700A TW 101121700 A TW101121700 A TW 101121700A TW 201401098 A TW201401098 A TW 201401098A
- Authority
- TW
- Taiwan
- Prior art keywords
- verification
- firmware
- motherboard
- computing device
- code
- Prior art date
Links
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/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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本發明提供一種固件驗證方法及系統,該系統包括: 燒錄模組,用於將編寫的一組驗證碼分別存放在計算裝置的基板管理控制器BMC固件與基本輸入輸出系統BIOS固件中的特定位置,並將BMC固件與BIOS固件分別燒錄在該計算裝置的主機板上的兩塊存儲晶片中;第一驗證模組,用於當主機板上電自檢時,驗證所述兩塊存儲晶片中的BMC固件與BIOS固件中的驗證碼是否一致;第一觸發模組,用於當驗證碼不一致時,觸發主機板自動斷電停機;第二觸發模組,用於當驗證碼一致時,觸發計算裝置開機進入作業系統。
Description
本發明涉及一種固件驗證方法及系統, 尤其是基板管理控制器和BIOS的固件驗證方法及系統。
一般情況下,伺服器只能在進入作業系統後利用殺毒軟體防範電腦病毒,試想今天如果有的系統管理者利用職務之便把非經授權的BMC固件或BIOS固件燒錄於伺服器的主機板上。這樣當主機板上電進入作業系統前就會執行到非經授權的BMC固件或BIOS固件將資訊暴露於高度的風險中,防毒軟體對此往往無法偵測,最終造成系統的損壞,資料被盜取或是毀損。以上所稱固件,英文全稱為Firmware,就是寫入Flash、EROM或EPROM可編程唯讀記憶體中的程式,通俗的理解就是“固化的軟體”,簡稱稱為“固件”,其與普通軟體完全不同,它固化在積體電路內部,負責控制和協調積體電路,通常固件是無法被用戶直接讀出或修改的。
鑒於以上內容,有必要提供一種固件驗證方法及系統,其可在伺服器進入作業系統前對BMC固件或BIOS固件進行驗證。
本發明提供一種固件驗證方法,該方法包括:燒錄步驟,編寫一組驗證碼,將該驗證碼分別存放在該計算裝置的基板管理控制器BMC固件與基本輸入輸出系統BIOS固件中的特定位置,並將BMC固件與BIOS固件分別燒錄在該計算裝置的主機板上的兩塊存儲晶片中;第一驗證步驟,當主機板上電自檢時,驗證所述兩塊存儲晶片中的BMC固件與BIOS固件的驗證碼是否一致;第一觸發步驟,當驗證碼不一致時,觸發主機板自動斷電停機;及第二觸發步驟,當驗證碼一致時,觸發計算裝置開機進入作業系統。
本發明還提供一種基板管理控制器固件與BIOS固件驗證系統,包括:燒錄模組,用於將編寫的一組驗證碼分別存放在該計算裝置的基板管理控制器BMC固件與基本輸入輸出系統BIOS固件中的特定位置,並將BMC固件與BIOS固件分別燒錄在該計算裝置的主機板上的兩塊存儲晶片中;第一驗證模組,用於當主機板上電自檢時,驗證所述兩塊存儲晶片中的BMC固件與BIOS固件中的驗證碼是否一致;第一觸發模組,用於當驗證碼不一致時,觸發主機板自動斷電停機;第二觸發模組,用於當驗證碼一致時,觸發計算裝置開機進入作業系統。
本發明提供了一種固件驗證方法及系統,在伺服器進入作業系統前對BMC固件或BIOS固件進行驗證,使駭客無法讓伺服器系統執行非經授權的BMC固件與BIOS固件。
如圖1所示為本發明固件驗證系統較佳實施例的運行環境圖,本發明固件驗證系統10運行在伺服器1上或其他計算裝置(如桌上電腦),該伺服器1包括記憶體12、處理器14、主機板16、基板管理控制器18、BIOS (Basic Input Output System,基本輸入輸出系統)20、南橋晶片22、第一存儲晶片 24、第二存儲晶片 26、時鐘晶片28,還可以包括報警器30。所述記憶體12、處理器14、基板管理控制器18、BIOS 20、南橋晶片22、第一存儲晶片24、第二存儲晶片26、時鐘晶片28及報警器30通過焊接或擴展插槽連接在主機板16上。
所述記憶體12,可以是伺服器1中的硬碟,用於存儲固件驗證系統10的程式碼等資料。
所述主機板16,安裝在伺服器1的機箱內,是微機最基本的部件之一,一般為矩形電路板,其上安裝有電腦主要電路系統,例如,BIOS晶片、I/O控制晶片、鍵盤和麵板控制開關介面、擴充插槽等元件。
所述基板管理控制器18,英文全稱Baseboard Management Controller(BMC),是支援行業標準IPMI 規範的專用晶片,該規範描述了已經內置到主板上的管理功能,例如:本地和遠端診斷、控制臺支援、配置管理、硬體管理和故障排除。
所述BIOS 20,英文全稱Basic Input Output System,中文名稱為"基本輸入輸出系統",它是一組固化到電腦主板上一個ROM晶片上的程式,該程式包括:電腦輸入輸出的程式,系統開機自檢程式等,其主要功能是為電腦提供最底層的、最直接的硬體設置和控制。
所述南橋晶片(PCH)22,負責I/O匯流排之間的通信。
所述第一存儲晶片24與第二存儲晶片26,為連接在主機板16上的兩塊存儲晶片,用於為驗證碼提供燒錄載體。例如,所述第一存儲晶片24可以是SPI (Serial peripheral Interface,串列外設介面)flash,所述第二存儲晶片26可以是FRU(Field Replace Unit,現場可更換單元)EEPROM。
所述時鐘晶片28,英文全稱是Real-Time Clock, 由電腦主機板上的晶振及相關電路組成,本實施方式中,時鐘晶片28用於定時觸發驗證基板管理控制器和BIOS的驗證碼的一致性。
所述報警器30,安裝於主機板16上,用於當BMC固件與BIOS固件的驗證碼不一致時,發出報警鐘聲報警。
在本實施例中,所述固件驗證系統10可以被分割成一個或多個模組,所述一個或多個模組被存儲在所述伺服器1的記憶體12中並被配置成由一個或多個處理器(本實施例為一個處理器14)執行,以完成本發明。例如,參閱圖2所示,所述固件驗證系統10被分割成燒錄模組100、第一驗證模組102、觸發模組104、第二驗證模組106、停止模組108及驗證碼編寫模組110,本發明所稱的模組是完成一特定功能的程式段,比程式更適合於描述軟體在伺服器1中的執行過程,關於各模組的功能參閱圖3的描述。
如圖3所示,是本發明固件驗證方法的較佳實施例流程圖。
步驟S200,編寫一組驗證碼,將其分別存放在基板管理控制器固件與BIOS固件的特定位置,本實施方式中,可以將基板管理控制器18的版本號作為驗證碼,例如,基板管理控制器18的版本號為“1”,轉化成二進位為“0001”,將“0001”分別存放在基板管理控制器固件與BIOS固件中的開始位置,則基板管理控制器固件與BIOS固件中的前四位為“0001”。
步驟S202,燒錄模組100將基板管理控制器固件與BIOS固件分別燒錄在第一存儲晶片 24和第二存儲晶片 26上。
步驟S204, 當主機板16上電自檢時,第一驗證模組102驗證基板管理控制器固件和BIOS固件中的驗證碼是否一致,若一致,說明驗證成功,否則,說明驗證失敗。所述主機板16上電自檢包括對CPU、基本的640KB記憶體、1MB以上的擴展記憶體、系統ROM BIOS的測試,也包括對CMOS中系統配置進行校驗、初始化視頻控制器、測試視頻記憶體、檢驗視頻信號和同步信號、對CRT介面進行測試、對鍵盤、軟盤機、硬碟及CD-ROM子系統作檢查、對並行口(印表機)和串列口(RS232)進行檢查。
步驟S206,若驗證失敗,觸發模組104觸發主機板16自動斷電停機。
步驟S208,若驗證成功,觸發模組104觸發伺服器1進入作業系統,一般當主機板上電自檢完成後,會轉入BIOS 20的下一步驟:從A驅、C驅或CD-ROM以及網路伺服器上尋找作業系統進行啟動並將控制權交給該作業系統。
步驟S210,時鐘晶片28定時產生觸發驗證固件的訊號,當南橋晶片22收到時鐘晶片28的觸發驗證固件的訊號時,觸發主機板16的系統管理中斷(System Management Interrupt)。
步驟S212,當觸發主機板16的系統管理中斷時,第二驗證模組106重複驗證基板管理控制器固件和BIOS固件中的驗證碼是否一致,若一致,說明驗證成功,返回步驟S210,若不一致,則說明驗證失敗,進入步驟S214。重複驗證在於使伺服器1進入作業系統之後仍可以即時防範駭客讓伺服器1執行非經授權的BMC固件與BIOS固件。
步驟S214,停止模組108停止伺服器1的所有輸入與輸出的動作,以防BMC固件或BIOS固件的資料遭受破壞與非經授權的使用。此處還可以由觸發模組104觸發報警器30報警,來提示驗證碼驗證失敗。
最後應說明的是,以上實施例僅用以說明本發明的技術方案而非限制,儘管參照較佳實施例對本發明進行了詳細說明,本領域的普通技術人員應當理解,可以對本發明的技術方案進行修改或等同替換,而不脫離本發明技術方案的精神和範圍。
1...伺服器
10...固件驗證系統
12...記憶體
14...處理器
16...主機板
18...基板管理控制器BMC
20...基本輸入輸出系統BIOS
22...南橋晶片
24...第一存儲晶片
26...第二存儲晶片
28...時鐘晶片
30...報警器
100...燒錄模組
102...第一驗證模組
104...觸發模組
106...第二驗證模組
108...停止模組
110...驗證碼編寫模組
圖1是本發明固件驗證系統的較佳實施方式的運行環境圖。
圖2是本發明固件驗證系統的較佳實施方式的功能模組圖。
圖3是本發明固件驗證方法的較佳實施方式的流程圖。
10...固件驗證系統
100...燒錄模組
102...第一驗證模組
104...觸發模組
106...第二驗證模組
108...停止模組
110...驗證碼編寫模組
Claims (10)
- 一種固件驗證方法,應用於計算裝置上,其中,該方法包括:
燒錄步驟,編寫一組驗證碼,將該驗證碼分別存放在該計算裝置的基板管理控制器BMC固件與基本輸入輸出系統BIOS固件中的特定位置,並將BMC固件與BIOS固件分別燒錄在該計算裝置的主機板上的兩塊存儲晶片中;
第一驗證步驟,當主機板上電自檢時,驗證所述兩塊存儲晶片中的BMC固件與BIOS固件的驗證碼是否一致;
第一觸發步驟,當驗證碼不一致時,觸發主機板自動斷電停機;及
第二觸發步驟,當驗證碼一致時,觸發計算裝置開機進入作業系統。 - 如申請專利範圍第1項所述之固件驗證方法,其中,該方法還包括:
第二驗證步驟,當計算裝置的南橋晶片接收到主機板的系統管理中斷後,重複驗證所述兩塊存儲晶片中的BMC固件與BIOS固件的驗證碼是否一致,若一致,則驗證碼驗證成功,繼續等待主機板的系統管理中斷並重複驗證,若不一致,則驗證碼驗證失敗,進入停止步驟;
停止步驟,停止該計算裝置所有的輸入與輸出動作。 - 如申請專利範圍第2項所述之固件驗證方法,其中,所述停止步驟還包括:當所述驗證碼驗證失敗時,觸發報警器報警。
- 如申請專利範圍第2項所述之固件驗證方法,其中,所述主機板的系統管理中斷由該計算裝置的主機板上的時鐘晶片定時產生的觸發驗證固件的訊號觸發產生。
- 如申請專利範圍第1項所述之固件驗證方法,其中,所述驗證碼為通過將基板管理控制器的版本號轉換成的一組計算裝置可以識別的編碼。
- 一種固件驗證系統,應用於計算裝置上,其中,該系統包括:
燒錄模組,用於將編寫的一組驗證碼分別存放在該計算裝置的基板管理控制器BMC固件與基本輸入輸出系統BIOS固件中的特定位置,並將BMC固件與BIOS固件分別燒錄在該計算裝置的主機板上的兩塊存儲晶片中;
第一驗證模組,用於當主機板上電自檢時,驗證所述兩塊存儲晶片中的BMC固件與BIOS固件中的驗證碼是否一致;
第一觸發模組,用於當驗證碼不一致時,觸發主機板自動斷電停機;及
第二觸發模組,用於當驗證碼一致時,觸發計算裝置開機進入作業系統。 - 如申請專利範圍第6項所述之固件驗證系統,其中,該系統還包括:
第二驗證模組,用於當計算裝置的南橋晶片接收到主機板系統管理中斷後,重複驗證所述兩塊存儲晶片中的BMC固件與BIOS的固件的驗證碼是否一致,若一致,則驗證碼驗證成功,繼續等待主機板系統管理中斷並重複驗證,若不一致,觸發停止模組;
停止模組,用於當驗證碼驗證失敗時,停止該計算裝置所有的輸入與輸出動作。 - 如申請專利範圍第7項所述之固件驗證系統,其中,所述停止模組還用於:當所述驗證碼驗證失敗時,觸發報警器報警。
- 如申請專利範圍第7項所述之固件驗證系統,其特徵在於,所述主機板系統管理中斷由該計算裝置的時鐘晶片定時產生的觸發驗證固件的訊號觸發產生。
- 如申請專利範圍第6項所述之固件驗證系統,其中,所述驗證碼為通過驗證碼產生器將基板管理控制器的版本號轉換成的一組計算裝置可以識別的編碼。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101121700A TW201401098A (zh) | 2012-06-18 | 2012-06-18 | 固件驗證方法及系統 |
US13/721,080 US8627098B1 (en) | 2012-06-18 | 2012-12-20 | Electronic device and method for verifying firmware of the electronic device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101121700A TW201401098A (zh) | 2012-06-18 | 2012-06-18 | 固件驗證方法及系統 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201401098A true TW201401098A (zh) | 2014-01-01 |
Family
ID=49757069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101121700A TW201401098A (zh) | 2012-06-18 | 2012-06-18 | 固件驗證方法及系統 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8627098B1 (zh) |
TW (1) | TW201401098A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110197070A (zh) * | 2018-02-27 | 2019-09-03 | 其阳科技股份有限公司 | 具开机的可信验证与容错移转的计算机系统及方法 |
CN111246396A (zh) * | 2020-01-06 | 2020-06-05 | 杭州涂鸦信息技术有限公司 | 一种基于udp局域网的整机烧录方法及系统 |
US10685121B2 (en) | 2017-10-17 | 2020-06-16 | Quanta Computer Inc. | Secure environment examination |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014175867A1 (en) * | 2013-04-23 | 2014-10-30 | Hewlett-Packard Development Company, L.P. | Verifying controller code and system boot code |
JP6208492B2 (ja) * | 2013-08-07 | 2017-10-04 | 株式会社ミツトヨ | 情報処理装置、情報処理方法、プログラム、及び情報処理システム |
CN104679622A (zh) * | 2013-11-29 | 2015-06-03 | 英业达科技有限公司 | 基本输入输出系统维护方法 |
CN105991522A (zh) * | 2015-01-30 | 2016-10-05 | 中兴通讯股份有限公司 | 一种实现身份验证的方法、装置和终端 |
US10038705B2 (en) * | 2015-10-12 | 2018-07-31 | Dell Products, L.P. | System and method for performing intrusion detection in an information handling system |
CN108292342B (zh) * | 2016-01-25 | 2022-09-06 | 惠普发展公司,有限责任合伙企业 | 向固件中的侵入的通知 |
US10303883B2 (en) * | 2016-10-25 | 2019-05-28 | Hewlett Packard Enterprise Development Lp | Firmware verification through data ports |
JP2019200660A (ja) * | 2018-05-17 | 2019-11-21 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法、及びプログラム |
US11003780B2 (en) * | 2018-08-03 | 2021-05-11 | Dell Products L.P. | Method and apparatus for validating BIOS firmware using a baseboard management controller |
CN109583212B (zh) * | 2018-11-16 | 2021-11-02 | 郑州云海信息技术有限公司 | 一种基于Intel Whitley平台的固件文件保护方法与系统 |
CN109670349B (zh) * | 2018-12-13 | 2021-10-01 | 英业达科技有限公司 | 可信计算机的硬件架构及计算机的可信启动方法 |
CN111008379B (zh) * | 2019-11-22 | 2023-02-28 | 腾讯科技(深圳)有限公司 | 电子设备的固件安全检测方法及相关设备 |
CN113064813A (zh) * | 2021-03-04 | 2021-07-02 | 山东英信计算机技术有限公司 | 一种板载固件版本检测方法及装置 |
CN114428963B (zh) * | 2022-04-06 | 2022-07-08 | 浪潮(山东)计算机科技有限公司 | 一种服务器启动方法、装置、设备及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100306357A1 (en) * | 2009-05-27 | 2010-12-02 | Aten International Co., Ltd. | Server, computer system, and method for monitoring computer system |
JP5564956B2 (ja) * | 2010-01-15 | 2014-08-06 | 富士通株式会社 | 情報処理装置及び情報処理装置のファームウェア更新方法 |
TWI446161B (zh) * | 2010-12-30 | 2014-07-21 | Ibm | 處理一多處理器資訊處理系統之一故障處理器的裝置及方法 |
US20130007428A1 (en) * | 2011-06-30 | 2013-01-03 | Dell Products L.P. | System and method for customized configuration of information handling systems |
US20130080754A1 (en) * | 2011-09-22 | 2013-03-28 | Cisco Technology, Inc. | Service Profile Based Peripheral Component Interconnect Device Enumeration And Option ROM Loading |
US8874922B2 (en) * | 2012-01-17 | 2014-10-28 | Dell Products L.P. | Systems and methods for multi-layered authentication/verification of trusted platform updates |
-
2012
- 2012-06-18 TW TW101121700A patent/TW201401098A/zh unknown
- 2012-12-20 US US13/721,080 patent/US8627098B1/en not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10685121B2 (en) | 2017-10-17 | 2020-06-16 | Quanta Computer Inc. | Secure environment examination |
CN110197070A (zh) * | 2018-02-27 | 2019-09-03 | 其阳科技股份有限公司 | 具开机的可信验证与容错移转的计算机系统及方法 |
CN111246396A (zh) * | 2020-01-06 | 2020-06-05 | 杭州涂鸦信息技术有限公司 | 一种基于udp局域网的整机烧录方法及系统 |
CN111246396B (zh) * | 2020-01-06 | 2021-11-09 | 杭州涂鸦信息技术有限公司 | 一种基于udp局域网的整机烧录方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20130339713A1 (en) | 2013-12-19 |
US8627098B1 (en) | 2014-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW201401098A (zh) | 固件驗證方法及系統 | |
US11741230B2 (en) | Technologies for secure hardware and software attestation for trusted I/O | |
US10839080B2 (en) | Hardware-enforced firmware security | |
CN107025406B (zh) | 母板、计算机可读存储装置以及固件验证方法 | |
CN107122321B (zh) | 硬件修复方法、硬件修复系统以及计算机可读取存储装置 | |
JP5767751B2 (ja) | Biosを検証する方法、コンピューティングプラットフォーム、およびプログラム | |
US11579893B2 (en) | Systems and methods for separate storage and use of system BIOS components | |
US7412596B2 (en) | Method for preventing system wake up from a sleep state if a boot log returned during the system wake up cannot be authenticated | |
CN107665308B (zh) | 用于构建和保持可信运行环境的tpcm系统以及相应方法 | |
TW202136996A (zh) | 用於網路裝置之最佳啟動路徑之方法和系統 | |
TW201351286A (zh) | 固件更新系統及方法 | |
BR112014014815B1 (pt) | Dispositivo de computação, método e meio de armazenamento para realização de cópia de segurança de firmware | |
CN103514399A (zh) | 固件验证方法及系统 | |
US20120079259A1 (en) | Method to ensure platform silicon configuration integrity | |
TW201818263A (zh) | 資料交換器之伺服器資料埠學習 | |
TW201314574A (zh) | 用於電腦系統之基本輸入輸出系統程式更新方法及更新裝置 | |
CN106919845B (zh) | 系统安全信任链构建装置和构建方法 | |
JP2013050839A (ja) | 情報処理装置、情報処理方法、及び情報処理プログラム | |
TW201430702A (zh) | 韌體更新方法及系統 | |
CN113986635A (zh) | 一种bios测试方法、系统、存储介质及设备 | |
CN104142870A (zh) | 虚拟bios开机系统及方法 | |
JP2006133823A (ja) | コンピュータシステム | |
JP2001344185A (ja) | 情報処理装置およびi/oエミュレーション制御方法 |