TW201519100A - 用於在uefi安全開機資料庫中自動註冊任選rom的系統以及方法 - Google Patents

用於在uefi安全開機資料庫中自動註冊任選rom的系統以及方法 Download PDF

Info

Publication number
TW201519100A
TW201519100A TW103131574A TW103131574A TW201519100A TW 201519100 A TW201519100 A TW 201519100A TW 103131574 A TW103131574 A TW 103131574A TW 103131574 A TW103131574 A TW 103131574A TW 201519100 A TW201519100 A TW 201519100A
Authority
TW
Taiwan
Prior art keywords
computing device
indicator
signature
mode
uefi
Prior art date
Application number
TW103131574A
Other languages
English (en)
Other versions
TWI643130B (zh
Inventor
Timothy Andrew Lewis
Original Assignee
Insyde Software 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 Insyde Software Corp filed Critical Insyde Software Corp
Publication of TW201519100A publication Critical patent/TW201519100A/zh
Application granted granted Critical
Publication of TWI643130B publication Critical patent/TWI643130B/zh

Links

Classifications

    • 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/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本發明論述一種用於將任選ROM自動地註冊至用於UEFI安全開機的系統安全性資料庫中的機制。由計算裝置接收在系統的下一次開機時自動註冊用於一或多個各別裝置的一或多個任選ROM的請求。在接收到所述請求後,將指示自動註冊狀態的旗標或其他類型的指示符改變至作用中模式。將所述指示符儲存於非揮發性記憶體中且可儲存為UEFI鑑認變數。在對所述指示符進行所述改變之後,將所述系統重設抑或關機。僅在所述下一次開機期間,在識別指示作用中模式自動註冊狀態的所述指示符之後,在無需使用者互動的情況下計算(雜湊)簽章並不存在於所述系統安全性資料庫中的所有所發現裝置的所述任選ROM的所述簽章,且將其添加至所述UEFI安全開機資料庫。

Description

用於在UEFI安全開機資料庫中自動註冊任選ROM的系統以及方法 [相關申請案]
本申請案是關於2013年9月12日申請的標題為「用於在UEFI安全開機資料庫中自動註冊任選ROM的系統以及方法(System and Method for Auto-Enrolling Option ROMS in a UEFI Secure Boot Database)」的美國臨時專利申請案第61/877,082號且主張其權利,所述申請案的內容以全文引用的方式併入本文中。
本發明關於用於在UEFI安全開機資料庫中自動註冊任選ROM的系統以及方法。
計算裝置是由包含於所述裝置內的韌體初始化,且此韌體提供促進作業系統(OS)的開機的一系列軟體服務以及提供在已開機作業系統之後繼續可用的此等 服務之子集。韌體為已寫入至唯讀記憶體(ROM)模組(包含(但不限於)ROM、PROM、EPROM、EEPROM以及快閃記憶體(下文統稱為「ROM」))上的軟體。連同其他服務,韌體亦負責操作計算裝置直至可執行將計算裝置的作業系統載入至記憶體中的開機程序為止。一旦載入,作業系統便主管計算裝置的正常操作,但出於安全性以及其他原因,在載入作業系統之後佈建某些服務可要求自作業系統返回至韌體之控制轉變。
統一可擴展韌體介面(UEFI)為由非營利性行業主體所產生的詳述計算裝置(諸如(但不限於)個人電腦(PC))的作業系統與所包含韌體之間的程式設計介面的規範。UEFI規範描述工具集合,計算裝置可藉由所述工具集合以組織方式自電力施加狀態移動至完全操作。UEFI規範告知所要結果,但有意地並不指定實施的內部策略。UEFI韌體規範替換由行業先前所使用且通常稱為舊版BIOS(基本輸入輸出系統)的早期作業系統(OS)/韌體介面。
任選ROM驅動程式(下文亦稱為「任選ROM」或「驅動程式」)為用以擴展BIOS或UEFI韌體以支援特定硬體裝置的二進位程式碼。其可包含初始化、開機相關服務以及硬體裝置管理。當正運送卡時,任選ROM可包含於插入卡上的快閃記憶體儲存區上,或可為與單獨地下載至或以其他方式傳達至計算裝置的卡(或系統中的其他裝置)相關聯的驅動程式。當發現匹配的插入 配接卡(或主機板上的裝置)時,BIOS(或UEFI韌體)執行任選ROM。任選ROM用以與相關聯硬體裝置通信。
電腦系統可含有一或多個擴充槽,諸如符合高速周邊組件互連(PCI)規範的彼等擴充槽。此等槽可用以安裝擴充系統能力的可選輸入輸出板(亦稱為「擴充卡」或「任選卡」)。此等擴充卡可包含舊版BIOS組件(舊版BIOS組件包含與系統平台一起遞送且支援系統平台的系統BIOS,以及併入至任選卡中且支援卡的初始化的舊版任選ROM)。UEFI規範提供產生用於系統板的UEFI韌體的能力,以及啟用待由製造商併入至擴充卡中的UEFI任選ROM驅動程式的能力。然而不幸的是,雖然行業朝向較多地支援具有符合UEFI的韌體的計算裝置轉變,但許多當前所製造的擴充卡仍頻繁地僅包含舊版任選ROM,而非包含由UEFI規範所預想的UEFI格式簽署的任選ROM。
對於包含於具有符號UEFI的韌體的計算系統中的裝置,當系統執行UEFI規範中所定義的「安全開機」程序時,缺乏UEFI格式簽署的任選ROM變得重要。在習知UEFI安全開機程序期間,僅在開機序列期間執行經驗證可執行程式碼。習知安全開機程序取決於針對本端系統安全性資料庫驗證以UEFI鑑認變數儲存的可執行程式碼。在此程序期間,通常僅存在可驗證程式碼且因此批准其在開機程序期間執行的兩種方式。驗證可執行程式碼的第一種方式為:若可執行程式碼已由系統安全性資 料庫中的憑證「簽署」,則批准所述可執行程式碼。相同憑證可已用以簽署大量「可執行程式碼」。驗證可執行程式碼的第二種方式為將先前已儲存於系統安全性資料庫中的可執行程式碼的準確雜湊匹配所提供以用於執行的可執行程式碼的雜湊(每一雜湊僅唯一地識別其所基於的程式碼,且在儲存雜湊之後對彼程式碼的任何更改將導致在比較經變更程式碼的雜湊與原始程式碼的雜湊時發生不匹配)。一旦經驗證,便可在開機序列期間執行可執行程式碼。不允許在習知UEFI安全開機期間執行並未經由任一機制驗證的程式碼(諸如,簽章先前尚未儲存於系統安全性資料庫中的舊版任選ROM)。
本發明的實施例提供一種用於將任選ROM自動地註冊至用於UEFI安全開機的系統安全性資料庫中的機制。由計算裝置接收在系統的下一次開機時自動註冊用於一或多個各別裝置的一或多個任選ROM的請求。與任選ROM相關聯的裝置當前可或可並不存在於系統中。在接收到請求後,將指示自動註冊狀態的旗標或其他類型的指示符設定為作用中模式。指示符儲存於非揮發性記憶體中。在一個實施例中,將指示符儲存為UEFI鑑認變數。在將指示符改變至作用中模式之後,將系統重設抑或關機。若將系統關機,則在對系統重新供電之前使用者具有將新裝置添加至系統的機會。僅在下一次開機期間,在識 別指示作用中模式自動註冊狀態的指示符之後,在無需使用者互動的情況下計算(雜湊)簽章並不存在於系統安全性資料庫中的所有經發現裝置的任選ROM的簽章,且將其添加至UEFI安全開機資料庫。亦可提供額外機制以在未來開機時忽略此等經自動註冊裝置。
一種用於在用以執行UEFI安全開機的系統安全性資料庫中自動註冊任選ROM驅動程式的計算裝置實施方法包含接收在計算裝置的系統安全性資料庫中自動註冊用於至少一個任選ROM驅動程式的簽章的請求的步驟。基於請求,將儲存於非揮發性儲存器中的自動註冊模式的指示符自非作用中模式改變至作用中模式。在改變指示符之後,所述方法亦將計算裝置重設或關機。在將計算裝置重設或關機之後,用於計算裝置的開機序列開始且識別具有簽章並不存在於系統安全性資料庫中的任選ROM驅動程式的至少一個裝置。亦偵測作用中自動註冊模式。基於偵測到作用中自動註冊模式,在無需使用者互動的情況下在系統安全性資料庫中自動地註冊用於至少一個裝置的簽章。在退出開機序列之前,將自動註冊模式的指示符自作用中模式改變回至非作用中模式。基於系統安全性資料庫中存在所註冊簽章,將用於至少一個裝置的任選Rom驅動程式載入至記憶體中以用於執行。
在另一實施例中,一種計算裝置包含至少一個擴充裝置以及用於至少一個擴充裝置的至少一個任選ROM驅動程式。計算裝置亦包含非揮發性儲存器,其保 存用於執行UEFI安全開機的系統安全性資料庫,以及用於計算裝置中的任選ROM驅動程式的自動註冊模式的指示符,其中指示符設定為作用中模式。計算裝置更包含經組態以執行用於計算裝置的開機序列的韌體。開機序列識別到用於至少一個任選ROM驅動程式的簽章並不存在於系統安全性資料庫中,偵測到自動註冊模式的指示符設定為作用中模式,且基於偵測到作用中模式,在無需使用者互動的情況下在系統安全性資料庫中自動地註冊用於至少一個擴充裝置的至少一個任選ROM驅動程式的簽章。基於系統安全性資料庫中存在所註冊簽章,將用於至少一個擴充裝置的至少一個任選Rom驅動程式載入至記憶體中以用於執行。
100、102、103、104、106、108、200、202、203、204、205、206、207、208、210、212、300、302、304、306、308、310、312、400、402、404、406、408、410、412、414、416‧‧‧步驟
500‧‧‧計算裝置
502‧‧‧CPU
504‧‧‧記憶體
510‧‧‧硬碟機
512‧‧‧作業系統
520‧‧‧唯讀記憶體(ROM)
525‧‧‧韌體
530‧‧‧系統安全性資料庫
540‧‧‧指示符
550、570‧‧‧擴充槽
560、580‧‧‧擴充卡
562、582‧‧‧快閃記憶體儲存區
564‧‧‧經簽署UEFI任選ROM驅動程式
584‧‧‧未經簽署UEFI任選ROM驅動程式
圖1(先前技術)描繪用以在裝備有符合UEFI的韌體的計算裝置中執行安全開機的步驟的例示性序列。
圖2描繪由本發明的實施例所執行以在開機序列期間自動註冊任選ROM的步驟的例示性序列。
圖3描繪由本發明的實施例所執行以使用OS公用程式設定自動註冊指示符以便在後續開機序列期間自動註冊任選ROM的步驟的例示性序列。
圖4描繪由本發明的實施例所執行以在開機序列期間使用韌體程式碼設定自動註冊指示符以便在後續開機 序列期間自動註冊任選ROM的步驟的例示性序列;以及 圖5描繪適於實踐本發明的實施例的例示性環境。
併入本說明書中且構成本說明書的部分的隨附圖式說明本發明的一或多個實施例,且與描述一起用以解釋本發明。
當實施於計算裝置中時,用於UEFI韌體的機器碼以及由韌體所使用的所有永久性資料駐留於唯讀記憶體(ROM)中。在許多狀況下,ROM為被稱為快閃記憶體ROM的電可抹除矽裝置。快閃記憶體ROM具有可由電命令抹除且可接著寫入個別元素,且裝置將無期限地保留資料的特性。當首次將電力施加至計算裝置時,系統執行將狀態清除至已知條件且開始執行韌體的稱為重設的程序。自可分割成若干功能分區或區的ROM讀取韌體。一個此區被稱為儲存UEFI規範中所定義的鑑認變數的鑑認變數區或儲存區。一或多個UEFI鑑認變數可用以保存UEFI定義之安全性資訊,其包含用以執行如UEFI規範中所概述的驅動程式簽章檢查的系統安全性資料庫。簡言之,驅動程式簽章檢查為可藉以使用公用/私用密鑰密碼編譯技術在起源處「簽署」來自其他方的軟體且接著在允許軟體進行操作之前由計算系統的符合UEFI的韌體驗證簽章的程序。系統安全性資料庫保存用以執行簽章檢查的 經批准密鑰的程式庫。系統安全性資料庫在本文中亦替代地稱為「安全開機資料庫」。
如上文所提到,在具有擴充槽的PC系統中,擴充裝置可攜載用以初始化裝置的額外韌體(任選ROM)、提供開機相關服務以及裝置管理公用程式。舉例而言,使用PCI 3.0標準或ExpressCard標準所實施的視訊裝置、輸入裝置或儲存裝置提供此等任選ROM。根據UEFI規範,由於此等任選ROM並非系統韌體的部分,因此當電腦系統處於UEFI安全開機模式時,必須在執行其指令之前驗證其簽章。然而,較舊(「舊版」或非UEFI)任選ROM、未經簽署UEFI任選ROM或在開發期間所提供的彼等任選ROM不可得到驗證,此是因為並未在UEFI安全開機資料庫中發現其簽章。因此,並不將任選ROM載入至記憶體中(且因此並不可用於執行),且不可在開機序列期間使用任選ROM之功能性。此情況使電腦系統不如其另外狀況有用。
圖1(先前技術)描繪用以在裝備有符合UEFI的韌體的計算裝置中執行安全開機的步驟的例示性習知序列。取決於計算裝置是在重設之後正重新啟動抑或自關機電力開啟,序列在韌體內部的CPU重設向量處以計算裝置重設或接通而開始執行(步驟100)。在開機序列期間,韌體初始化硬體裝置且識別用於裝置的所有任選ROM(步驟102)。對於每一任選ROM,韌體進行檢查以查看任選ROM的簽章是否在安全開機資料庫中(步驟 103)。若簽章在安全開機資料庫中(步驟103),則啟動任選ROM(步驟104)(亦即,載入至記憶體中且執行),因此在載入作業系統之前,相關聯硬體裝置可用於在開機序列期間使用。若簽章並不在安全開機資料庫中(步驟103),則忽略任選ROM(步驟106)且在開機序列期間相關聯硬體裝置不可用。在處置所有任選ROM之後,繼續開機序列直至完成為止(步驟108)。
解決使用簽章並未在UEFI安全開機資料庫中被發現的任選ROM的問題的先前嘗試已使用兩種方法中的一者。在第一方法中,在開機序列開始之前斷開UEFI安全開機模式,因此並不檢查簽章。然而,由於此方法停用對所有任選ROM以及大部分系統中的OS開機載入程式的檢查,因此此方法使系統顯著較不安全,且在大部分情況下為對問題的不合需要解決方案。其他方法已要求在註冊程序期間與使用者存在某種程度的互動。舉例而言,可向使用者呈現使用者可選擇註冊的所有未註冊裝置任選ROM的清單,或可在開機序列期間提示使用者發現到裝置且請求將其簽章註冊至UEFI安全開機資料庫。然而,此等方法要求使用者與計算裝置互動且將使用者錯誤以及安全性問題引入至程序中。
與此等先前技術相對比,本發明的實施例提供用以在無需使用者互動的情況下僅在下一次開機時將任選ROM自動地註冊至UEFI安全開機資料庫中的技術。更特定而言,本發明的實施例依賴於非揮發性儲存器中的 指示符(諸如,安全UEFI鑑認變數)的存在以及內容。圖2描繪由本發明的實施例所執行以基於非揮發性儲存器中的指示符的內容在開機序列期間自動註冊任選ROM的步驟的例示性序列。序列較類似於圖1中所描繪的習知安全開機程序而開始。更具體言之,取決於計算裝置是在重設之後重新啟動抑或自關機電力開啟,序列在韌體內部的CPU重設向量處以計算裝置重設或接通而開始執行(步驟200)。在開機序列期間,韌體初始化硬體裝置且識別用於裝置的所有任選ROM(步驟202)。對於每一任選ROM,韌體進行檢查以查看任選ROM的簽章是否在安全開機資料庫中(步驟203)。若簽章在安全開機資料庫中(步驟203),則啟動任選ROM(步驟204)。若並不存在簽章不在UEFI安全開機資料庫中的任選ROM(步驟205),則繼續開機序列以完成(步驟212)。然而,若存在不在系統安全性資料庫中的任何任選ROM簽章(步驟205),則檢查非揮發性儲存器中的自動註冊狀態的指示符以查看其是否指示作用中模式(步驟207)。可藉由韌體查驗UEFI鑑認變數或非揮發性儲存器中用於旗標或其他指示符的其他位置來執行此檢查。若指示符指示系統處於自動註冊作用中模式,則將不在資料庫中的所有任選ROM註冊於安全開機資料庫中(步驟208)。舉例而言,可根據UEFI規範的第27.5章計算簽章不在UEFI安全開機資料庫中的任選ROM中的每一者的雜湊。此雜湊通常為整個影像的SHA-256雜湊,但其他簽章類型在本發明 的範疇內是可能的。在一個實施例中,可藉由與自動註冊模式資訊一起儲存的額外組態資訊計算特定任選ROM簽章而非所有任選ROM。額外資訊可指定應在後續開機期間計算哪些裝置任選ROM簽章及/或應跳過哪些簽章。
若韌體識別到自動註冊作用中模式(步驟207),則在開機序列完成之前可由韌體將狀態自動地重設至非作用中模式(步驟210)(在執行或排程不存在簽章的自動註冊之後),使得下次在下一開機序列期間遇到所述指示符時,將執行正常安全開機程序而非本發明的自動註冊程序。以此方式,本發明的實施例可僅單次支援本文中所描述的自動註冊程序而旁路習知安全開機程序。在替代實施例中,識別指示符的作用中模式的韌體可回應於識別到作用中模式而更新計數器值,且比較所述值與預定數目。若所述值等於預定數目,則由韌體將指示符重設為非作用中模式(且將計數器重設為0)。若所述值小於預定數目,則指示符保持不變處於作用中模式。以此方式,可預定次數地但並不無期限地繼續旁路習知安全開機程序。可在接收到將指示符設定為作用中模式(如下文中進一步描述)的請求時自使用者接收預定值,或預定值可為可用於韌體的永久儲存值。一旦已將先前未註冊任選ROM驅動程式的簽章添加至系統安全性資料庫/UEFI安全開機資料庫,開機序列便可藉由與可用於開機序列的新註冊任選ROM相關聯的裝置繼續完成。(步驟212)。
因此,本發明的自動註冊程序允許在自動註冊程序期間,在並不要求使用者互動的情況下,單次旁路通常執行將防止使用未經驗證任選ROM的安全開機程序的計算裝置。在製造計算裝置期間此自動註冊程序可尤其有用。舉例而言,主機板ROM可快閃儲存有已設定的自動註冊變數/指示符以及處於安全開機模式的韌體。可將主機板安裝於底盤中且亦可安裝所有可選卡(包含無有效簽章的彼等卡)。可接著對系統加電。在第一次開機期間,若尚未註冊,則將使裝置上的所有任選ROM的所有簽章自動註冊於UEFI安全開機資料庫中,且接著將使自動註冊狀態指示符重設為非作用中模式。此後,除非自動註冊指示符再次改變,否則消費者進行的系統開機將執行安全開機。
對本發明的功能性以及安全性而言,自動註冊模式儲存於計算裝置中的方式是重要的。首先,模式指示符的儲存器必須是非揮發性的,此是因為模式指示符必須跨越重設或平台電力循環而持留。其次,必須保護將模式自非作用中改變至作用中的能力,使得攻擊者不能簡單地改變模式以便允許其不信任的任選ROM在下一次開機時執行。存在可用以保護模式免於由未授權個人或程序改變的兩個機制。首先,可將指示符保護為UEFI鑑認變數,如UEFI規範的第7.2章中所描述。根據UEFI規範限制對UEFI鑑認變數的存取。若應允許OS公用程式改變模式,則此第一機制是有用的,此是因為可藉由用私用密 鑰簽署更新模式之請求使某些受信任OS公用程式能夠存取以改變鑑認變數,其中先前已將對應公用密鑰註冊於UEFI安全性資料庫中。
圖3描繪由本發明的實施例所執行以使用OS公用程式設定自動註冊指示符以便在後續開機序列期間自動註冊任選ROM的步驟的例示性序列。當經授權OS公用程式用以將UEFI鑑認變數中的自動註冊模式狀態改變為作用中模式時,序列開始(步驟300)。接著重設或斷開計算裝置(步驟302)。當改變自動註冊模式(亦即,自作用中至非作用中或自非作用中至作用中)時,用新值寫入UEFI鑑認變數或其他指示符且接著可將平台重設抑或關機。將使平台重設為自動註冊用於系統中已安裝裝置的任選ROM。將使平台關機以允許在系統斷開時安裝新裝置。接著,當恢復電力時,將發現裝置且對其進行自動註冊。接著,電力開啟計算裝置以開始開機序列(步驟304)。在開機序列期間,韌體偵測到鑑認變數(指示符)中的作用中模式狀態,且自動地註冊不在系統安全性資料庫中的所偵測任選ROM的所有簽章(步驟306)。將經新註冊任選ROM連同先前所註冊任選ROM載入至記憶體中以用於執行(步驟308),且韌體將由指示符所指示的自動註冊模式自作用中改變至非作用中(步驟310)。舉例而言,韌體可將指示自動註冊模式的值寫入至經鑑認變數。應瞭解,在替代實施中,韌體可首先在自動註冊簽章缺失於系統安全性資料庫中的任選ROM之前 將自動註冊模式改變回至非作用中。在重設自動註冊模式且自動註冊任選ROM之後,開機序列繼續且最終將用於計算裝置的作業系統載入至記憶體中且退出(步驟312)。
可藉以保護儲存於鑑認變數中的自動註冊模式指示符的第二機制為將對自動註冊模式的改變限制於預OS時間週期(在載入用於計算裝置的任何OS之前)。若僅使用預OS應用程式(諸如,設置公用程式),則第二方法是有用的,此是因為韌體快閃記憶體裝置的內容是隱式受信任的。圖4描繪由本發明的實施例所執行以在開機序列期間使用韌體程式碼設定自動註冊指示符以便在後續開機序列期間自動註冊任選ROM的步驟的例示性序列。所述序列藉由韌體開始開機序列而起始(步驟400)。接著中斷開機序列(步驟402)。舉例而言,可藉由調用設置公用程式中斷開機序列。在使用者經由公用程式進行請求之後,基於韌體的程式碼將UEFI鑑認變數或其他指示符中的自動註冊模式自非作用中改變為作用中(步驟404),且接著調用對計算裝置的重設抑或關機(步驟406)。韌體重新啟動開機序列(步驟408)、偵測自動註冊模式,且將不在系統安全性資料庫中的所偵測裝置的任選ROM簽章自動註冊於系統安全性資料庫中(步驟410)。韌體將鑑認變數或其他指示符中的自動註冊模式改變回至非作用中(使得下一次開機並不旁路習知安全開機程序)(步驟412)。將經新註冊任選ROM連同先前 所註冊驅動程式載入至記憶體中以用於執行(步驟414),且開機系統繼續、最終載入作業系統且退出(步驟416)。
將瞭解,保護自動註冊模式改變的其他方法亦可提供必要的模式改變行為。舉例而言,可組態計算裝置使得僅擁有受信任符記的使用者可請求模式改變。
圖5描繪適於實踐本發明的實施例的例示性環境。計算裝置500包含用以處理指令的CPU 502。計算裝置500可為PC、膝上型電腦、平板計算裝置、伺服器、智慧型電話,或裝備有處理器且能夠執行符合UEFI規範的韌體的一些其他類型的計算裝置。計算裝置500亦可包含諸如隨機存取記憶體(RAM)的記憶體504。作為由計算裝置所執行的開機程序的部分,可將儲存於硬碟機510中或儲存於計算裝置500中或與所述裝置通信的位置中的其他非揮發性儲存器上的作業系統512載入至記憶體504中。
計算裝置500亦可包含ROM 520。ROM 520可為快閃記憶體ROM,且可包含如上文所描述的可在計算裝置的不同操作點處操作的韌體525。ROM 520亦可保存系統安全性資料庫530以及指示計算裝置500的自動註冊狀態的指示符540。在一個實施例中,指示符540為UEFI鑑認變數。
計算裝置500亦可包含固持擴充卡560的擴充槽550。擴充卡560可包含保存至少一個經簽署UEFI 任選ROM驅動程式564的快閃記憶體儲存區562。經簽署UEFI任選ROM驅動程式564的簽章可儲存於系統安全性資料庫530中,且可由韌體在針對計算裝置500所執行的安全開機程序期間使用以執行對驅動程式的驗證。
計算裝置500亦可包含固持擴充卡580的擴充槽570。擴充卡580可包含保存至少一個未經簽署UEFI任選ROM驅動程式584的快閃記憶體儲存區582。未經簽署UEFI任選ROM驅動程式564的簽章可不在系統安全性資料庫530中,因此在針對計算裝置500所執行的習知安全開機程序期間對驅動程式進行驗證是不可能的。然而,在本文中所描述的本發明的自動註冊程序期間,可在開機程序期間將未經簽署任選ROM驅動程式584自動註冊於系統安全性資料庫530中,使得在開機序列期間擴充卡580的功能性變得可用。
可將本發明的實施例的部分或全部提供為體現於一或多個非暫時性媒體上或媒體中的一或多個電腦可讀程式或程式碼。媒體可為(但不限於)硬碟、緊密光碟、數位影音光碟、ROM、PROM、EPROM、EEPROM、快閃記憶體、RAM或磁帶。大體而言,可以任何計算語言實施電腦可讀程式或程式碼。
由於可在不脫離本發明的範疇的情況下作出某些改變,因此預期將上文描述中所含有或隨附圖式中所繪示的所有事項解釋為說明性而非字面意義。熟習此項技 術者將認識到可在不脫離本發明的範疇的情況下,變更諸圖中所描繪的步驟序列以及架構,且本文中所含有的說明為本發明的多種可能描繪的單數實例。
本發明的實例實施例的前述描述提供說明以及描述,但並不意欲為窮盡性的或將本發明限為所揭露的精確形式。有可能根據上文教示進行修改以及變化或可自本發明的實踐獲得修改以及變化。舉例而言,雖然已描述一系列動作,但可在與本發明原理一致的其他實施中修改動作的次序。另外,可並行地執行非相依動作。
200、202、203、204、205、206、207、208、210、212‧‧‧步驟

Claims (18)

  1. 一種用於在用以執行統一可擴展韌體介面(UEFI)安全開機的系統安全性資料庫中自動註冊任選ROM驅動程式的計算裝置實施方法,其包括:接收在該計算裝置的該系統安全性資料庫中自動註冊用於至少一個任選ROM驅動程式的簽章的請求;基於該請求,將儲存於非揮發性儲存器中的自動註冊模式的指示符自非作用中模式改變至作用中模式;在對該指示符進行該改變之後,將該計算裝置重設或關機;在對該計算裝置進行該重設或該關機之後,開始用於該計算裝置的開機序列;識別具有簽章並不存在於該系統安全性資料庫中的任選ROM驅動程式的至少一個裝置;偵測該作用中自動註冊模式;基於對該作用中自動註冊模式的該偵測,在無需使用者互動的情況下在該系統安全性資料庫中自動地註冊用於該至少一個裝置的該簽章;以及在退出該開機序列之前將該自動註冊模式的該指示符自該作用中模式改變至該非作用中模式,其中,基於該系統安全性資料庫中存在該所註冊簽章,將用於該至少一個裝置的該任選Rom驅動程式載入至記憶體中以用於執行。
  2. 如申請專利範圍第1項所述之方法,其中,非揮發 性儲存器中的該自動註冊模式的該指示符是以UEFI鑑認變數儲存,且對該指示符的該改變是寫入至該鑑認變數。
  3. 如申請專利範圍第1項所述之方法,其中,該計算裝置經組態以僅允許在由該開機序列載入作業系統之前執行程式碼以改變該指示符。
  4. 如申請專利範圍第1項所述之方法,其中,該計算裝置經組態以僅在自擁有符記的使用者接收到命令之後改變該自動註冊模式。
  5. 如申請專利範圍第1項所述之方法,其中,該計算裝置是在對該指示符進行該改變之後重設,且該所自動註冊簽章是用於在重設時已安裝於該計算裝置中的裝置。
  6. 如申請專利範圍第1項所述之方法,其中,該計算裝置是在對該指示符進行該改變之後關機,且該所自動註冊簽章是用於在該關機之後且在該開機序列開始之前安裝於該計算裝置中的裝置。
  7. 如申請專利範圍第1項所述之方法,其更包括:將指示用於該至少一個裝置的該所自動註冊簽章僅對單一開機序列或預定數目個開機序列有效的資訊儲存於該非揮發性儲存器中。
  8. 一種非暫時性媒體,其保存用於在用以執行統一可擴展韌體介面(UEFI)安全開機的系統安全性資料庫中自動註冊任選ROM驅動程式的電腦可執行指令,該指令在執行時使計算裝置進行如下操作:接收在該計算裝置的該系統安全性資料庫中自動註冊 用於至少一個任選ROM驅動程式的簽章的請求;基於該請求,將儲存於非揮發性儲存器中的自動註冊模式的指示符自非作用中模式改變至作用中模式;在對該指示符進行該改變之後,將該計算裝置重設或關機;在對該計算裝置進行該重設或該關機之後,開始用於該計算裝置的開機序列;識別具有簽章並不存在於該系統安全性資料庫中的任選ROM驅動程式的至少一個裝置;偵測該作用中自動註冊模式;基於對該作用中自動註冊模式的該偵測,在無需使用者互動的情況下在該系統安全性資料庫中自動地註冊用於該至少一個裝置的該簽章;以及在退出該開機序列之前將該自動註冊模式的該指示符自該作用中模式改變至該非作用中模式,其中,基於該系統安全性資料庫中存在該所註冊簽章,將用於該至少一個裝置的該任選Rom驅動程式載入至記憶體中以用於執行。
  9. 如申請專利範圍第8項所述之媒體,其中,非揮發性儲存器中的該自動註冊模式的該指示符是以UEFI鑑認變數儲存,且對該指示符的該改變是寫入至該鑑認變數。
  10. 如申請專利範圍第8項所述之媒體,其中,該計算裝置經組態以僅允許在由該開機序列載入作業系統之前執行程式碼以改變該指示符。
  11. 如申請專利範圍第8項所述之媒體,其中,該計算裝置經組態以僅在自擁有符記的使用者接收到命令之後改變該自動註冊模式。
  12. 如申請專利範圍第8項所述之媒體,其中,該計算裝置是在對該指示符進行該改變之後重設,且該所自動註冊簽章是用於在重設時已安裝於該計算裝置中的裝置。
  13. 如申請專利範圍第12項所述之媒體,其中,該計算裝置是在對該指示符進行該改變之後關機,且該所自動註冊簽章是用於在該關機之後且在該開機序列開始之前安裝於該計算裝置中的裝置。
  14. 如申請專利範圍第8項所述之媒體,其中,該指令在執行時進一步使該計算裝置進行如下操作:將指示用於該至少一個裝置的該所自動註冊簽章僅對單一開機序列或預定數目個開機序列有效的資訊儲存於該非揮發性儲存器中。
  15. 一種計算裝置,其包括:至少一個擴充裝置;用於該至少一個擴充裝置的至少一個任選ROM驅動程式;非揮發性儲存器,其保存用於執行統一可擴展韌體介面(UEFI)安全開機的系統安全性資料庫,以及用於該計算裝置中的任選ROM驅動程式的自動註冊模式的指示符,該指示符設定為作用中模式;韌體,其經組態以執行用於該計算裝置的開機序列, 其中該開機序列:識別到用於該至少一個任選ROM驅動程式的簽章不存在於該系統安全性資料庫中;偵測設定為該作用中模式的該自動註冊模式的該指示符;以及基於對該作用中模式的該偵測,在無需使用者互動的情況下在該系統安全性資料庫中自動地註冊用於該至少一個擴充裝置的該至少一個任選ROM驅動程式的該簽章;其中,基於該系統安全性資料庫中存在該所註冊簽章,將用於該至少一個擴充裝置的該至少一個任選Rom驅動程式載入至記憶體中以用於執行。
  16. 如申請專利範圍第15項所述之計算裝置,其中,非揮發性儲存器中的該自動註冊模式的該指示符是以UEFI鑑認變數儲存。
  17. 如申請專利範圍第15項所述之計算裝置,其中,該自動註冊模式的該指示符是在後續開機序列之前自該作用中模式改變至非作用中模式。
  18. 如申請專利範圍第15項所述之計算裝置,其中,該非揮發性儲存器保存指示用於該至少一個裝置的該所自動註冊簽章僅對單一開機序列或預定數目個開機序列有效的資訊。
TW103131574A 2013-09-12 2014-09-12 用於在uefi安全開機資料庫中自動註冊任選rom的系統以及方法 TWI643130B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361877082P 2013-09-12 2013-09-12
US61/877,082 2013-09-12

Publications (2)

Publication Number Publication Date
TW201519100A true TW201519100A (zh) 2015-05-16
TWI643130B TWI643130B (zh) 2018-12-01

Family

ID=52626725

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103131574A TWI643130B (zh) 2013-09-12 2014-09-12 用於在uefi安全開機資料庫中自動註冊任選rom的系統以及方法

Country Status (2)

Country Link
US (1) US9881162B2 (zh)
TW (1) TWI643130B (zh)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9363087B2 (en) * 2014-10-02 2016-06-07 Microsoft Technology Licensing, Inc. End-to-end security for hardware running verified software
US9921819B2 (en) * 2014-12-29 2018-03-20 Airwatch Llc Persistent mobile device enrollment
US9830457B2 (en) * 2015-05-05 2017-11-28 Dell Products, L.P. Unified extensible firmware interface (UEFI) credential-based access of hardware resources
US10181036B2 (en) * 2015-06-24 2019-01-15 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Automatic discovery and installation of secure boot certificates
CN106933558B (zh) * 2015-12-31 2021-08-13 研祥智能科技股份有限公司 一种电源控制方法及装置
JP6631303B2 (ja) * 2016-02-16 2020-01-15 富士通株式会社 認証方法、認証プログラム及び情報処理装置
US10185828B2 (en) * 2016-03-15 2019-01-22 Dell Products L.P. Systems and methods using virtual UEFI path for secure firmware handling in multi-tenant or server information handling system environments
US10395039B2 (en) * 2016-09-12 2019-08-27 Dell Products, L.P. Customer-owned trust of device firmware
US10740109B2 (en) 2017-03-22 2020-08-11 Vmware, Inc. Configuring a computing device using managed operating system images
EP3596595B1 (en) * 2017-03-22 2023-05-03 VMware, Inc. Persistent enrollment of a computing device using vendor autodiscovery
US10445106B2 (en) 2017-03-22 2019-10-15 Vmware, Inc. Persistent enrollment of a computing device using a BIOS
US10620965B2 (en) 2017-03-22 2020-04-14 Vmware, Inc. Internet recovery of a windows configuration
US10409619B2 (en) 2017-03-22 2019-09-10 Vmware, Inc. Persistent enrollment of a computing device using vendor autodsicovery
US10635819B2 (en) 2017-03-22 2020-04-28 Vmware, Inc. Persistent enrollment of a computing device based on a temporary user
US10732963B2 (en) * 2017-04-05 2020-08-04 Dell Products, Lp System and method for automatically managing updated UEFI variables
US10831897B2 (en) * 2017-07-14 2020-11-10 Dell Products, L.P. Selective enforcement of secure boot database entries in an information handling system
JP7050503B2 (ja) * 2018-01-29 2022-04-08 Necプラットフォームズ株式会社 完全性検証装置、完全性検証システム、完全性検証方法、及び、完全性検証プログラム
US10719607B2 (en) * 2018-03-19 2020-07-21 Nxp B.V. Data integrity verification in a non-volatile memory
CN108804325B (zh) * 2018-06-08 2021-10-22 郑州云海信息技术有限公司 一种对Secure Boot的测试方法
CN110677250B (zh) 2018-07-02 2022-09-02 阿里巴巴集团控股有限公司 密钥和证书分发方法、身份信息处理方法、设备、介质
CN110795742B (zh) 2018-08-02 2023-05-02 阿里巴巴集团控股有限公司 高速密码运算的度量处理方法、装置、存储介质及处理器
CN110795774B (zh) * 2018-08-02 2023-04-11 阿里巴巴集团控股有限公司 基于可信高速加密卡的度量方法、设备和系统
CN110851183B (zh) * 2018-08-20 2024-04-12 联想企业解决方案(新加坡)有限公司 在多处理器体系结构中快速启动处理器的方法
CN110874478B (zh) 2018-08-29 2023-05-02 阿里巴巴集团控股有限公司 密钥处理方法及装置、存储介质和处理器
JP7210238B2 (ja) * 2018-11-15 2023-01-23 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及び、プログラム
JP7289641B2 (ja) * 2018-11-30 2023-06-12 キヤノン株式会社 情報処理装置、およびその制御方法
CN109683972B (zh) * 2018-12-25 2021-07-16 联想(北京)有限公司 信息控制方法及装置
US20220376975A1 (en) * 2020-02-14 2022-11-24 Arris Enterprises Llc Systems and methods for modem configuration and rollback
TWI743963B (zh) * 2020-08-25 2021-10-21 瑞昱半導體股份有限公司 電腦系統及其具有安全開機機制的電子裝置及運作狀態還原方法
US11500994B2 (en) * 2020-09-23 2022-11-15 Dell Products L.P. Communication system personality provisioning system
US11989300B2 (en) * 2021-07-19 2024-05-21 Dell Products L.P. Firmware secure boot customization extensions
US12014187B2 (en) * 2022-05-04 2024-06-18 Micron Technology, Inc. Boot processes for storage systems

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030106052A1 (en) * 2001-12-03 2003-06-05 Morrison John A. System and method for high availability firmware load
US8863309B2 (en) * 2006-04-27 2014-10-14 Hewlett-Packard Development Company, L.P. Selectively unlocking a core root of trust for measurement (CRTM)
US7890742B2 (en) * 2007-04-23 2011-02-15 Hewlett-Packard Development Company, L.P. Automatically selecting firmware instructions for an operating system
US8607040B2 (en) * 2010-11-16 2013-12-10 Intel Corporation Method of provisioning firmware in an operating system (OS) absent services environment
US8560822B1 (en) * 2011-05-26 2013-10-15 Phoenix Technologies Ltd. Pre-boot operating environment
WO2013067486A1 (en) * 2011-11-04 2013-05-10 Insyde Software Corp. Secure boot administration in a unified extensible firmware interface (uefi)- compliant computing device

Also Published As

Publication number Publication date
TWI643130B (zh) 2018-12-01
US20150074387A1 (en) 2015-03-12
US9881162B2 (en) 2018-01-30

Similar Documents

Publication Publication Date Title
TWI643130B (zh) 用於在uefi安全開機資料庫中自動註冊任選rom的系統以及方法
US11520894B2 (en) Verifying controller code
US9880908B2 (en) Recovering from compromised system boot code
CN103718165B (zh) Bios闪存攻击保护和通知
JP5582909B2 (ja) プラットフォーム完全性検証システム
US11194586B2 (en) Secure boot override in a computing device equipped with unified-extensible firmware interface (UEFI)-compliant firmware
US10437580B2 (en) Software updating methods and systems
US9990255B2 (en) Repairing compromised system data in a non-volatile memory
US20150378846A1 (en) Method, computer program, and computer for restoring set of variables
US10025587B2 (en) Method of bootup and installation, and computer system thereof
KR20080108526A (ko) 제1 및 제2 처리 유닛을 포함하는 처리 장치, 이를 부팅하는 방법 및 이 방법을 수행하게 하도록 적응되는 컴퓨터 실행가능 프로그램 코드 수단을 포함하는 컴퓨터 프로그램 제품
US20200089507A1 (en) Low power embedded device using a write-once register to speed up the secure boot from sleep states of the device
TWI754219B (zh) 更新信號技術
US9928367B2 (en) Runtime verification
EP3163489A1 (en) Token-based control of software installation and operation
CN110874467B (zh) 信息处理方法、装置、系统以及处理器、存储介质
US8838952B2 (en) Information processing apparatus with secure boot capability capable of verification of configuration change
US20210367781A1 (en) Method and system for accelerating verification procedure for image file
US20230133726A1 (en) Method and system for avoiding boot failure from platform firmware resilience execution
US11507700B2 (en) Firmware-based method for securely enabling hardware devices during a computing platform boot sequence
US11960372B2 (en) Verified callback chain for bios security in an information handling system
WO2020052202A1 (en) Low power embedded device using a write-once register to speed up the secure boot from sleep states of the device