TWI773146B - 計算裝置及包含有用於經授權應用程式所作bios動作請求之指令的非暫時性有形電腦可讀媒體 - Google Patents

計算裝置及包含有用於經授權應用程式所作bios動作請求之指令的非暫時性有形電腦可讀媒體 Download PDF

Info

Publication number
TWI773146B
TWI773146B TW110106124A TW110106124A TWI773146B TW I773146 B TWI773146 B TW I773146B TW 110106124 A TW110106124 A TW 110106124A TW 110106124 A TW110106124 A TW 110106124A TW I773146 B TWI773146 B TW I773146B
Authority
TW
Taiwan
Prior art keywords
bios
key
action
request
computing device
Prior art date
Application number
TW110106124A
Other languages
English (en)
Other versions
TW202205088A (zh
Inventor
安德瑞溝 N 品席洛
約書亞 S 希夫曼
理查 A 小布拉里
瓦路汀 阿里
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 美商惠普發展公司有限責任合夥企業
Publication of TW202205088A publication Critical patent/TW202205088A/zh
Application granted granted Critical
Publication of TWI773146B publication Critical patent/TWI773146B/zh

Links

Images

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/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/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
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • 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
    • 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

Abstract

本文描述計算裝置之實例。在一些實例中,一計算裝置可包括一控制器以在該計算裝置啟動時產生一金鑰。在一些實例中,該計算裝置可包括一核心驅動程式。在一些實例中,該核心驅動程式可將在作業系統(OS)啟動期間自一基本輸入/輸出系統(BIOS)接收該金鑰。在一些實例中,該核心驅動程式可將自一應用程式接收針對一BIOS動作之一動作請求。在一些實例中,該核心驅動程式可將回應於判定該應用程式經授權以請求該BIOS動作而藉由該金鑰對該動作請求進行簽名。在一些實例中,該計算裝置可包括該BIOS以回應於接收經簽名之動作請求而執行該BIOS動作。

Description

計算裝置及包含有用於經授權應用程式所作BIOS動作請求之指令的非暫時性有形電腦可讀媒體
本發明係有關於用於經授權應用程式之BIOS動作請求。
電子技術已發展到在社會中幾乎隨處可見且已用於改善社會中之許多活動。舉例而言,計算裝置用於執行多種任務,包括工作活動、通訊、研究及娛樂。不同種類之電子電路可用以提供不同種類之電子技術。
依據本發明之一實施例,係特地提出一種計算裝置,其包含:一控制器,其用以在該計算裝置啟動時產生一金鑰;一核心驅動程式,其用以:在作業系統(OS)啟動期間自一基本輸入/輸出系統(BIOS)接收該金鑰;自一應用程式接收針對一BIOS動作之一動作請求;以及回應於判定該應用程式經授權以請求該BIOS動作而藉由該金鑰對該動作請求進行簽名;以及該BIOS,其用以回應於接收經簽名之動作請求而執行該BIOS動作。
102,202,302,402:計算裝置
104,204,404:控制器
106,206,306,406:金鑰
108,208,308,408:基本輸入/輸出系統
110,210,310,410:BIOS動作
112,212,312,412:核心驅動程式
114,214,314,414:應用程式
116,216,316,416:動作請求
120a,120b,220,320,420a,420b,420c:經簽名之動作請求
311:處理器
418:核心
424:驗證回應
426:回應
530:電腦可讀媒體
532:金鑰請求指令
534:動作請求接收指令
536:動作請求簽名指令
600:方法
602,604,606,608,610,612,614,616:步驟
下文將藉由參考以下圖式描述各種實例。
圖1係繪示計算裝置之實例之方塊圖,該計算裝置可用於經授權應用程式所作之基本輸入/輸出系統(Basic Input/Output System;BIOS)動作請求; 圖2係繪示計算裝置之另一實例之方塊圖,該計算裝置可用於經授權應用程式所作之BIOS動作請求;圖3係繪示計算裝置之又另一實例之方塊圖,該計算裝置可用於經授權應用程式所作之BIOS動作請求;圖4係繪示計算裝置之又另一實例之方塊圖,該計算裝置可用於經授權應用程式所作之BIOS動作請求;圖5係繪示用於經授權應用程式所作BIOS動作請求之電腦可讀媒體之實例的方塊圖;及圖6係繪示用於由經授權應用程式請求BIOS動作之方法之實例的流程圖。
貫穿該等圖式,相同或類似參考編號可指定類似但未必相同之元件。圖式未必按比例,且一些部件之大小可經誇示以更清楚地說明所展示之實例。此外,圖式提供根據本說明書之實例;然而,本說明書不限於圖式中所提供之實例。
計算裝置可係包括電子電路之裝置。舉例而言,計算裝置可包括積體電路(例如,電晶體、數位邏輯、半導體技術等)。計算裝置之實例包括膝上型電腦、桌上型電腦、智慧型電話、平板電腦裝置、無線通訊裝置、遊戲主控台、智慧型器具、具有電子組件之載具、飛機、無人機、機器人、智慧型器具等。
在本文所描述之計算裝置之一些實例中,計算裝置可包括基本輸入/輸出系統(BIOS)。如本文所使用,基本輸入/輸出系統(BIOS)指代硬體或硬體及指令以在執行計算裝置之作業系統(Operating System;OS)之前初始化、控制或操作計算裝置。包括於BIOS內之指令可係軟體、韌體、微碼或者界定或控制BIOS之功能性或操作的其他規劃。在一個實例中,BIOS可使用可由處理器執行 之指令(諸如計算裝置之平台韌體)而實施。BIOS可在執行計算裝置之OS之前操作或執行。BIOS可初始化、控制或操作諸如計算裝置之硬體組件之類的組件且可載入或啟動計算裝置之OS。
在一些實例中,BIOS可提供或建立計算裝置之硬體裝置或平台韌體與計算裝置之OS之間的介面,經由該介面,計算裝置之OS可控制或操作計算裝置之硬體裝置或平台韌體。在一些實例中,BIOS可實施用於初始化、控制或操作計算裝置之聯合可延伸韌體介面(Unified Extensible Firmware Interface;UEFI)規範或另一規範或標準。
BIOS可回應於自計算裝置之應用程式發送之請求而執行動作(在本文中稱為BIOS動作)。在一些實例中,BIOS動作可包括改變計算裝置之應用程式可存取之設定(稱為BIOS設定)。此等BIOS設定可包括BIOS之設定及/或BIOS介面(例如,UEFI)之設定。本文中描述用於在執行階段藉由經授權應用程式安全存取BIOS設定之實例。在其他實例中,BIOS動作可包括使用特權BIOS能力、功能、資源或BIOS可回應於應用程式之請求而執行的其他操作。因此,BIOS動作可包括回應於藉由應用程式發送之請求而藉由BIOS執行之操作。
在本文所描述之實例中,無論是否預先知曉BIOS管理(Admin)密碼均可執行BIOS動作。反而,BIOS可以密碼方式偵測及驗證調用應用程式。
在一些實例中,OS之核心驅動程式可使用在計算裝置啟動(例如,起動)時產生之金鑰經由密碼術耦接至BIOS。如本文所使用,核心驅動程式可係在計算裝置上核心模式中操作之程式。
在一些實例中,核心驅動程式可係經由密碼術緊密耦接至BIOS之早期啟動(例如,啟動起動)驅動程式。金鑰可藉由安全控制器或藉由BIOS自身產生。在一些實例中,金鑰可係密碼金鑰或傳送金鑰。在一些實例中,金鑰可係對稱或非對稱的。在非對稱金鑰之情況下,可將公鑰提供至BIOS,且核心驅動 程式可保留私鑰。可在OS啟動期間使用安全金鑰交換協定與核心驅動程式共用金鑰,該安全金鑰交換協定使用BIOS作為中間物。
在自BIOS獲得密碼金鑰之後,核心驅動程式可曝露用於經授權應用程式之介面,希望將請求發送至BIOS以執行BIOS動作(例如,對BIOS設定做出改變,及/或使用特權BIOS能力、功能、資源等)。應用程式可首先將動作請求傳遞至核心驅動程式。在一些實例中,動作請求可包括設定用於BIOS設定之資訊及新值。在其他實例中,核心驅動程式可接著使用各種技術(例如,數位簽名或其他OSL位準構造)驗證調用應用程式是否係經授權應用程式。核心驅動程式可接著藉由使用由BIOS提供之共用金鑰對動作請求進行簽名而授權動作請求。
雖然本文中描述包括核心驅動程式之實例,但在其他實例中,早期發動機制可自BIOS獲得金鑰且可自調用應用程式對動作請求進行簽名。如本文所使用,早期發動機制可包括在OS啟動期間在初期發動之可執行程式碼(例如,驅動程式、程序、服務等)。早期發動機制亦可稱為早期發動程式碼或早期啟動程式碼。在一些實例中,早期發動機制可在核心模式中操作。早期發動機制之實例包括早期發動反惡意軟體服務。在一些實例中,早期發動機制可執行本文所描述之核心驅動程式之操作。
在一些實例中,經簽名之動作請求可返回至調用應用程式,其接著使用藉由作業系統(例如,用於WINDOWS之視窗管理儀錶(Windows Management Instrumentation;WMI))提供的BIOS存取方法發送新經簽名之動作請求。在此情況下,現存BIOS介面可未經修改,因此與舊版工具保持相容性。在一些實例中,經簽名之動作請求可使用經認證之通訊方法傳達至BIOS。舉例而言,經認證之通訊可包括對稱方法(例如,雜湊為基的訊息鑑別碼(hash-based message authentication code;HMAC)、帶關聯資料之認證加密(Authenticated Encryption with Associated Data;AEAD)加密、進階加密標準(Advanced Encryption Standard;AES)-Galois/計數器模式(Galois/Counter Mode;GCM))或非對稱方法(例如,使用Diffie Hellman(Diffie Hellman;DH)及/或橢圓曲線Diffie-Hellman(Elliptic-curve Diffie-Hellman;ECDH)之簽名或整合式加密方案)。
一旦經接收,BIOS可偵測針對動作請求之簽名之存在。BIOS可接著獨立地或藉由使用產生金鑰之控制器而驗證對動作請求之簽名。若簽名核對通過,則BIOS將調用應用程式辨識為經授權應用程式且執行所請求之BIOS動作。
安全BIOS存取之此程序可藉由BIOS執行,即使BIOS管理密碼已先前經設定及/或並不作為動作請求之部分而提供亦如此。在其他實例中,可進行策略決策以針對一些或所有操作使用BIOS管理密碼。此等實例亦提供保護以防OS-BIOS存取介面(例如WMI)遭受中間者(man-in-the middle;MiTM)攻擊。在一些實例中,在動作請求中傳遞至核心驅動程式之酬載亦可經加密,從而除完整性保護外亦提供機密性。
圖1係繪示計算裝置102之實例之方塊圖,該計算裝置可用於經授權應用程式114所作之BIOS動作請求116。計算裝置102之實例可包括計算裝置、膝上型電腦、桌上型電腦、智慧型電話、平板電腦裝置、無線通訊裝置、遊戲主控台、具有電子組件之載具、飛機、無人機、機器人、智慧型器具等。
在BIOS 108之存取方案(例如,WMI)之一些實例中,不存在標準化方式以供BIOS 108知曉調用程序之身分標識。因此,在此等實例中,BIOS 108不知曉調用應用程式114是否係經授權程序。應注意,在某些情況下,可存取BIOS動作110(例如,讀取BIOS設定),而調用程序不具有OS中之管理權限。在其他情況下,BIOS動作110(例如,讀取BIOS設定)可依賴於管理權限(例如,藉由使用私用WMI介面及經保護以供管理程序存取之名稱空間)。然而,在此 等情況下,此並不意謂調用程序係經授權程序。舉例而言,具有管理存取之惡意程序亦可存取BIOS動作110。因此,確保BIOS安全性策略及組配藉由經授權程序存取對於計算裝置而言係一挑戰。
可存取BIOS設定之惡意行動者(例如,惡意軟體)可輕而易舉地接管計算裝置102。舉例而言,惡意行動者可替換PC之序列號。在另一實例中,惡意行動者可將安全性設定調整為更寬鬆策略(例如,藉由允許諸如攝影機、WiFi卡、麥克風、USB埠等先前避免之裝置)。惡意行動者可接著使用此等漏洞來發動新攻擊。惡意行動者亦可改變可阻止作業系統安全起動(例如,斷開安全啟動)、可停用密碼之啟動時間電力、可停用虛擬化或可信賴的平台模組(Trusted Platform Module;TPM)等等之設定。
如此論述中所見,一些計算裝置架構並未向BIOS 108提供判定可信賴程序是否正嘗試存取BIOS組配或惡意行動者是否獲得不當特權且正調用呼籲更改BIOS 108之安全性組配之方法。本文所描述之實例提供機制,藉由該等機制,BIOS 108可將對BIOS動作110之存取授權給經授權程序,同時阻斷對其他(未經授權)程序之存取。
在一些實例中,計算裝置102可包括控制器104。在一些實例中,控制器104可係在計算裝置102上執行任務之微控制器(例如,嵌式控制器)。在一些實例中,控制器104可執行OS不執行之任務。在一些實例中,控制器104可包括獨立於由計算裝置102之主OS使用之記憶體的記憶體(例如,RAM、ROM)。
控制器104可在啟動計算裝置102時產生金鑰106。在啟動時間(例如,在計算裝置102起動或通電時),且在每一啟動時,控制器104可產生密碼傳送金鑰106。在一些實例中,金鑰106可係對稱金鑰或可包括非對稱金鑰對(例如,私鑰及公鑰對)。控制器104可安全地儲存金鑰106。舉例而言,控制器 104可將金鑰儲存於僅控制器104可存取之儲存區(例如,記憶體)中。在其他實例中,控制器104亦可用嵌入於控制器104內部之僅控制器104可存取的另一金鑰對金鑰106進行加密(或金鑰對)。
在一些實例中,控制器104可在執行BIOS 108時將金鑰106發送至BIOS 108。舉例而言,當BIOS開始執行時,控制器104可將金鑰106傳遞至BIOS。在一些實例中,控制器104可經由私用通道或協定傳遞金鑰106。若BIOS 108確實自控制器104提取金鑰106且儲存該金鑰106,則BIOS 108可在BIOS開機自我測試(power-on self-test;POST)期間儘可能早地提取金鑰106。BIOS 108可確保金鑰106在可供BIOS 108使用之最安全記憶體(例如,系統管理模式(System Management Mode;SMM)記憶體)中受到保護。
在圖1之實例中,控制器104可儲存金鑰106,且可驗證藉由金鑰106簽名的經簽名之動作請求120b,如下文所描述。應注意,在其他實例中,BIOS 108可產生金鑰106。此方法之實例描述於圖3中。
BIOS 108可產生或提供可允許核心驅動程式112請求金鑰106之介面。在一些實例中,核心驅動程式112可係基於OS之早期啟動驅動器。在一些實例中,介面可包括進階組配與電源介面(Advanced Configuration and Power Interface;ACPI)方法調用、WMI調用或允許OS-BIOS介面之其他方法。
在OS啟動程序之早期階段期間(例如,在載入大部分第三方程式碼之前),可起動核心驅動程式112。核心驅動程式112亦可稱為核心啟動-起動驅動程式、啟動驅動程式或早期啟動驅動程式。存在可如何在OS中安裝或注入核心驅動程式112之各種實例。此等實例包括程式碼設施之常規模式、使用視窗平台二進位表(Windows Platform Binary Table;WPBT)、使用超管理器在客體OS中注入核心驅動程式112等。應注意,藉由核心驅動程式112係早期啟動驅動程式以確保核心驅動程式112係作業系統載入的可信賴程序之第一集合中之一者, 從而可達成高位準安全性。舉例而言,可以防止不可信賴或未經授權應用程式在核心驅動程式112之前獲取金鑰106之方式儘可能早地自BIOS 108提取金鑰106。此金鑰交換可基於期望安全性保證及密碼金鑰程序(例如,金鑰協議、金鑰包覆及金鑰材料之直接傳送)來實施。
在一些實例中,在使用UEFI安全啟動之BIOS 108及OS的情況下,BIOS 108可確保BIOS 108正啟動之OS在密碼上係安全的。BIOS 108亦可確保OS載入器及OS之其他早期部分確保BIOS 108正載入的組件(例如,核心驅動程式112)之完整性係安全的。如超管理器程式碼完整性(Hypervisor Code Integrity;HVCI)之其他OS專用進階安全技術可提供額外保證,其中藉由使用硬體輔助超管理器甚至更確保核心驅動程式112之完整性及功能性。此確保核心驅動程式112將係運行之最早程式碼模組中之一者,且具有在其他程序之前獲得金鑰106之高機率。
核心驅動程式112可在OS啟動期間自BIOS 108接收金鑰106。在載入時,核心驅動程式112可直接對BIOS 108進行調用以請求由控制器104產生之密碼金鑰106(例如,傳送金鑰)。在一些實例中,BIOS 108可回應於自核心驅動程式112接收針對金鑰106之請求而自控制器104請求金鑰106。BIOS 108可回應於自控制器104接收金鑰106而將金鑰106傳遞至核心驅動程式112。
在一些實例中,BIOS 108可在OS啟動期間使用安全金鑰交換協定將所產生之金鑰106與核心驅動程式112共用。舉例而言,核心驅動程式112可對BIOS 108進行ACPI方法調用以請求金鑰106。應注意,ACPI方法調用可提供額外安全性以抵禦攻擊者,此係因為應用程式及/或無特權程式碼(例如,環3程式碼)將不能夠獲得金鑰106。此外,在核心驅動程式112係早期啟動驅動程式之情況下,實施為核心驅動程式以獲得金鑰106的惡意軟體之機會顯著減小。
ACPI方法調用可允許核心驅動程式112自提供BIOS之記憶體位 置提取金鑰106。在一些實例中,金鑰106之提取可係「獲得」型操作。在其他實例中,金鑰106之提取可採用複雜金鑰交換協定。在另一實例中,BIOS 108可要求控制器104在經要求時將金鑰106提供給BIOS 108。BIOS 108接著可將金鑰106傳遞至核心驅動程式112。
在一些實例中,調用BIOS 108之核心驅動程式112亦可確保自BIOS 108置放金鑰106所在之暫時記憶體槽抹除金鑰106,防止在核心驅動程式112之後載入的另一驅動程式亦存取金鑰106。因此,BIOS 108可回應於將金鑰106發送至核心驅動程式112而抹除儲存金鑰106之記憶體以防止對金鑰106之額外讀取。在一些實例中,BIOS 108可確保,在核心驅動程式112提取金鑰106之後,BIOS 108不再接受對金鑰提取之調用(例如,ACPI方法調用),因此防止其他惡意實體提取金鑰106。
核心驅動程式112可自應用程式114接收針對BIOS動作110之動作請求116。舉例而言,核心驅動程式112可曝露用於OS程序之介面,以調用且傳遞資料(例如,二進位大型物件(Binary Large OBject;BLOB))至核心驅動程式112。在一些實例中,尋求對經保護BIOS動作110之存取的合法(例如,經授權)應用程式114可使用驅動器曝露之介面調用核心驅動程式112。應用程式114可在動作請求116中傳遞待由BIOS 108執行之指令(或指令集)。
核心驅動程式112可執行動作請求116之授權,使得BIOS 108可信賴動作請求116且執行BIOS動作110。在一些實例中,核心驅動程式112可回應於接收動作請求116而首先驗證調用應用程式114係經授權應用程式。在一實例中,核心驅動程式112可使用包括經授權以請求BIOS動作110之應用程式之白名單。在另一實例中,核心驅動程式112可藉由驗證應用程式114的數位簽名及確保調用應用程式114係已知及/或經授權程序而驗證調用應用程式114之磁碟上身分標識。在又另一實例中,核心驅動程式112可確保調用應用程式114 之位置係經由強存取控制清單(access-control list;ACL)控制,藉此防止其他應用程式將惡意程式碼(例如,惡意動態鏈接程式庫(Dynamic-link library;DLL))緊鄰合法應用程式114而置放,因此引起非預期隱碼。在其他實例中,OS可組配有其他技術片段(例如,反惡意軟體、抗病毒、下一代抗病毒、端點偵測及回應(endpoint detection and response;EDR)工具,或可預防程序混亂以確保調用者應用程式114未由冒名頂替者取代的其他工具)。
核心驅動程式112可回應於判定應用程式114經授權以請求BIOS動作110以產生經簽名之動作請求120a而藉由金鑰106對動作請求116進行簽名。舉例而言,若調用應用程式114經驗證係合法及/或由核心驅動程式112授權以請求對BIOS 108之改變,則核心驅動程式112可藉由核心驅動程式112在啟動期間獲取之金鑰106而對傳入動作請求116進行簽名。在一些實例中,可藉由金鑰106使用數位簽名、雜湊為基的訊息鑑別碼(HMAC)或經認證加密(例如,AES-GCM)方案由核心驅動程式112對動作請求116進行簽名。在一些實例中,核心驅動程式112亦可將額外元資料添加至經簽名之動作請求120a,該額外元資料使用金鑰106添加保護(例如,完整性、機密性及/或重放保護)。
在圖1之實例中,核心驅動程式112可將經簽名之動作請求120a返回至應用程式114。在此情況下,應用程式114將經簽名之動作請求120b發送至BIOS 108。舉例而言,一旦調用應用程式114自核心驅動程式112接收經簽名之動作請求120a,應用程式114接著便可使用可用方法(例如,WMI方法)將經簽名之動作請求120b傳遞至BIOS 108。
在其他實例中,核心驅動程式112可將經簽名之動作請求120a發送至BIOS 108以執行BIOS動作110。在此情況下,核心驅動程式112可將經簽名之動作請求120a直接發送至BIOS 108,而非將經簽名之動作請求120a發送返回應用程式114。此可如圖2中所描述來實現。
一接收到經簽名之動作請求120b,BIOS 108便可偵測到該經簽名之動作請求120a已經簽名。若BIOS 108偵測到經簽名之動作請求120b,則BIOS 108可執行簽名核對以驗證經簽名之動作請求120b。在一些實例中,BIOS 108可使用金鑰106認證動作請求116。在金鑰106係由控制器104產生且儲存之一些實例中,BIOS 108可使用計算裝置102上可用之傳送協定將驗證經簽名之動作請求120b之完整性(及/或移除機密性包絡)的任務委託給控制器104。
若簽名核對通過(例如,成功),則接著BIOS 108可處理經簽名之動作請求120b。舉例而言,BIOS 108可回應於判定簽名核對通過而改變BIOS設定或根據經簽名之動作請求120a執行操作。在一些實例中,BIOS 108可將經簽名之動作請求120b之結果(例如,成功或失敗)返回至調用應用程式114。
若BIOS 108發現傳入動作請求並未藉由金鑰106經恰當保護或認證(例如,若簽名核對失敗,則動作請求並不包括金鑰106),則BIOS 108可拒絕對動作請求採取行動。在一些實例中,BIOS 108可將此視為藉由惡意應用程式改變BIOS設定的未經授權之嘗試。在BIOS管理存取密碼經設定之一些實例中,BIOS 108可將此失敗之簽名核對視為其中多個失敗鎖定其他請求的密碼失敗情境,即使動作請求中所提供之密碼係正確的亦如此。
此等實例提供對BIOS動作110之受控存取,防止惡意或未經授權之程序改變或存取BIOS組配。可防止對BIOS動作110之存取,即使惡意或未經授權之程序在某種程度上獲得對BIOS管理密碼之存取(若已設定一個密碼)亦如此。
應注意,雖然使用BIOS動作110描述以上實例,但此等實例亦適用於其中BIOS 108將信賴任何傳入資料或命令之其他情境。類似地,雖然使用Windows及x86術語,但此等實例亦適用於其他OS及電腦架構。
亦應注意,此等實例可添加用於執行BIOS動作110之若干位準 之保護及靈活性。舉例而言,BIOS 108可使用本文中所描述的經簽名之動作請求120a以提供對靈敏BIOS設定之存取,同時允許及接受其他未經簽名之動作請求進入。在其他實例中,BIOS 108可允許在未進行簽名之情況下接受獲得請求簽名,但可預期授權一些或所有設定請求。再次,此等實例可擴展以允許用於存取BIOS動作110之靈活的安全性模型。
所描述之實例提供用於調用BIOS 108(例如,WMI調用)之確實性、完整性及機密性。可在核心驅動程式112中實行針對調用(例如,WMI調用)之存取控制策略強制執行。一旦BIOS 108知曉調用應用程式114經授權,BIOS 108接著便可立即執行BIOS動作110而無需視實體存在之使用者的授權而定,因此簡化使用者體驗同時增強安全性。所描述之實例亦可消除BIOS 108與調用應用程式之間對自BIOS返回之資料的潛在MiTM攻擊。
使用作為早期啟動-起動驅動程式之核心驅動程式112自BIOS 108擷取金鑰106可將攻擊表面減少至毫秒級時間框。此係因為核心驅動程式112係在OS啟動程序期間起動的第一程序中之一者。在對獲得金鑰106之第一請求後,BIOS 108可自BIOS 108之暫時記憶體抹除金鑰106,此防止任何其他請求擷取金鑰106,從而確保核心驅動程式112而非其他程序將接收金鑰106。
此外,因為核心驅動程式112可在特權狀態(例如,特權位準0或環0)中運行,所以無其他使用者模式程序可讀取或替換核心驅動程式112之記憶體結構。因此,金鑰106經保護免受來自使用者模式程序之攻擊。在一些實例中,核心驅動程式112可依賴於OS以防止未經簽名之驅動程式安設於內核模式中。此意謂可保護核心驅動程式112免於由另一核心驅動程式替換或損壞。
在一些實例中,計算裝置102可包括額外組件,及/或可在不脫離本揭露內容之範疇的情況下移除及/或修改本文中所描述之組件中的一些。在一些實例中,計算裝置102及/或控制器104可包括處理器及/或記憶體。處理器可 係以下中之任一者:中央處理單元(central processing unit;CPU)、基於半導體之微處理器、圖形處理單元(graphics processing unit;GPU)、場可規劃閘陣列(field-programmable gate array;FPGA)、特殊應用積體電路(application-specific integrated circuit;ASIC)及/或適於擷取並執行記憶體中儲存之指令的其他硬體裝置。處理器可提取、解碼及/或執行儲存於記憶體中之指令。記憶體可係含有或儲存電子資訊(例如,指令及/或資料)之任何電子、磁性、光學或其他實體儲存裝置。因此,記憶體可係例如隨機存取記憶體(Random Access Memory;RAM)、電可抹除可規劃唯讀記憶體(Electrically Erasable Programmable Read-Only Memory;EEPROM)、動態隨機存取記憶體(Dynamic Random Access Memory;DRAM)、磁阻式隨機存取記憶體(magnetoresistive random-access memory;MRAM)、相變RAM(phase change RAM;PCRAM)、憶阻器、快閃記憶體、儲存裝置及/或光碟等。在一些實例中,記憶體可係非暫時性有形電腦可讀儲存媒體,其中術語「非暫時性」並不涵蓋暫時性傳播信號。處理器可與記憶體進行電子通訊。在一些實例中,控制器104之處理器及/或記憶體可與計算裝置102之應用程式處理器(例如,CPU)分離。
在一些實例中,計算裝置102可包括輸入/輸出介面(未圖示),計算裝置102可經由該輸入/輸出介面與一或多個外部裝置(未圖示)進行通訊。輸入/輸出介面可包括硬體及/或電腦可讀指令以使得處理器能夠與一或多個外部裝置進行通訊。輸入/輸出介面可能夠有線或無線連接至一或多個外部裝置。在一些實例中,輸入/輸出介面可進一步包括網路介面卡及/或亦可包括硬體及/或電腦可讀指令以使得處理器能夠與各種輸入及/或輸出裝置(諸如鍵盤、滑鼠、顯示器、另一設備、計算裝置、電子裝置等)進行通訊,經由該等輸入及/或輸出裝置使用者可將指令及/或指示輸入至計算裝置102中。
圖2係繪示計算裝置202之另一實例之方塊圖,該計算裝置可用 於經授權應用程式214所作之BIOS動作請求216。計算裝置202可根據圖1中描述之計算裝置102來實施。舉例而言,控制器204可產生金鑰206。此金鑰206可經由BIOS 208經提供至核心驅動程式212,如圖1中所描述。
核心驅動程式212可針對BIOS動作210自應用程式214接收動作請求216。核心驅動程式212可執行動作請求216之授權,使得BIOS 208可信賴動作請求216且執行BIOS動作210。核心驅動程式212可回應於判定應用程式214經授權以請求BIOS動作210而藉由金鑰206對動作請求216進行簽名。此可如圖1中所描述來實現。
在圖2之實例中,核心驅動程式212可將經簽名之動作請求220發送至BIOS 208以執行BIOS動作210。在此情況下,核心驅動程式212可將經簽名之動作請求220直接發送至BIOS 208,而非將經簽名之動作請求220發送返回應用程式214。
一接收到經簽名之動作請求220,BIOS 208便可基於金鑰206驗證該經簽名之動作請求220。此可如圖1中所描述來實現。若經簽名之動作請求220經驗證,則BIOS 208可執行BIOS動作210。
圖3係繪示計算裝置302之又另一實例之方塊圖,該計算裝置可用於經授權應用程式314所作之BIOS動作請求316。計算裝置302可根據圖1中描述之計算裝置102來實施。
在此實例中,BIOS 308可產生用以對藉由應用程式314發送之動作請求316進行簽名之金鑰306。舉例而言,計算裝置302一啟動,BIOS 308便可產生金鑰306。BIOS 308可將金鑰306儲存於安全內部結構中(例如,在共用或私用快閃記憶體上之UEFI可變、SMM或私用儲存區)。
BIOS 308可產生介面以允許核心驅動程式312在OS啟動期間請求金鑰。此可如圖1中所描述來實現。然而,在此實例中,BIOS 308可將金鑰 306保留於儲存區中以供用於驗證經簽名之動作請求320。
在此實例中,計算裝置302之處理器311可實施核心驅動程式312及調用應用程式314。舉例而言,核心驅動程式312及調用應用程式314可經實施為由處理器311執行之程式碼。在一些實例中,處理器311可係以下中之任一者:CPU、基於半導體之微處理器、GPU、FPGA、ASIC及/或適於擷取並執行記憶體中儲存之指令的其他硬體裝置。核心驅動程式312可回應於判定應用程式314經授權以請求BIOS動作310而使用金鑰306對動作請求316進行簽名。此可如圖1中所描述來實現。
處理器311可將經簽名之動作請求320發送至BIOS 308。在一實例中,應用程式314可將經簽名之動作請求320發送至BIOS 308,如圖1中所描述。在另一實例中,核心驅動程式312可將經簽名之動作請求320發送至BIOS 308,如圖2中所描述。
一接收到經簽名之動作請求320,BIOS 308便可執行簽名核對以驗證該經簽名之動作請求320。在此情況下,BIOS 308可使用經儲存之金鑰306核實經簽名之動作請求320之完整性(及/或移除機密性包絡)。BIOS 308可回應於判定簽名核對通過而執行BIOS動作310。
圖4係繪示計算裝置402之又另一實例之方塊圖,該計算裝置可用於經授權應用程式所作之BIOS動作請求。在計算裝置402啟動時,控制器404可產生金鑰406。在一些實例中,金鑰406可係傳送金鑰。在一些實例中,控制器404可使用RSA、ECC或其他非對稱密碼程序產生非對稱(例如,公用-私用)金鑰對。在其他實例中,控制器404可自具有合適安全性之隨機數產生器(random number generator;RNG)產生對稱金鑰。
控制器404可將金鑰406(或金鑰對)安全地儲存至僅可由控制器404存取之安全儲存區中。在一些實例中,此安全儲存區可係僅可由控制器404 藉由硬體設計存取之私用偵察晶片。在另一實例中,安全儲存區可係控制器404內部之整合式快閃儲存區。在一些實例中,若金鑰406係唯一的且僅可由控制器404存取,則控制器404可使用彼金鑰406進一步保護所儲存金鑰對之機密性以防止經由離線攻擊而未經授權窺探秘密。
控制器404可將金鑰406發送至BIOS 408。在非對稱金鑰對之情況下,控制器404可將金鑰之公用部分(例如,公鑰)發送至BIOS 408。對於對稱金鑰,控制器404可將整個金鑰406發送至BIOS 408。
BIOS 408可儲存金鑰406。舉例而言,BIOS 408可將金鑰406儲存於內部結構中,諸如共用(或私用)快閃上之UEFI可變、SMM或私用儲存區。BIOS 408可手動控制作業系統,該作業系統接著開始啟動。
在作業系統啟動階段期間,基本(例如,核心)OS組件開始載入且啟動。接下來,早期發動驅動程式可載入,隨後早期啟動驅動程式(亦稱為啟動-起動驅動程式或啟動驅動程式)可開始載入。核心驅動程式412可作為OS之核心418之部分起動。應注意,特定啟動時間並非與此實例成一體,但核心驅動程式412可在任何「不可信賴的」程式碼可運行之前起動。
在一些實例中,核心驅動程式412可係早期發動反惡意軟體(Early Launch of Anti Malware;ELAM)型驅動程式、啟動驅動程式,或藉由ELAM發動及/或載入之啟動驅動程式。此等類型之驅動程式可係在任何不可信賴的程式碼運行之前發動之可信賴的程式碼。
核心驅動程式412可自BIOS 408請求金鑰406。回應於此請求,BIOS 408可將金鑰406返回至核心驅動程式412。BIOS 408可接著抹除儲存用於BIOS 408之金鑰406之記憶體結構以防止對金鑰406之額外讀取。此可防止其他惡意程式自BIOS 408存取金鑰406,此將允許惡意程式隨後變為惡意中間軟體驅動程式。藉由確保核心驅動程式412係早期啟動驅動程式,惡意的惡意 軟體之大量集合經消除,此係因為OS確保啟動驅動程式係由合法組織簽名。舉例而言,ELAM使用擴展驗證(Extended Validation;EV)證書,且在EV證書發佈之前為組織提供了高要求。應注意,此實例中之控制器404可將金鑰406保留於安全儲存區中。
核心驅動程式412可將金鑰406在內部儲存於記憶體中。在一些實例中,作業系統可確保存取屬於早期啟動驅動程式之內部記憶體受到限制。然而,核心驅動程式412亦可使用額外技術以增強對保存金鑰之記憶體之保護。舉例而言,核心驅動程式412可使用由硬體及/或晶片組方案或經由超管理器等提供之飛地技術。在核心驅動程式412完成初始化之後,作業系統之其餘部分可繼續正常啟動。
在後期,經授權應用程式414可起動。應用程式414可係由OS執行之程序。在一些實例中,應用程式414可請求特定BIOS動作410。核心驅動程式412可驗證應用程式經授權以請求BIOS動作410。
在一些實例中,應用程式414可包括藉由金鑰對進行簽名之程式碼,對於BIOS 408而言,該金鑰對係可信的。舉例而言,屬於簽名金鑰之公鑰可嵌入於BIOS安全記憶體中。應用程式414之名稱及/或簽名者公司名稱亦可嵌入於BIOS安全記憶體中。
在一些實例中,可針對核心驅動程式412界定白名單以用於認證應用程式414。白名單可包括經授權之程序及/或程式碼簽名認證機構(certificate authority;CA)及經允許由應用程式414調用之對應WMI。白名單可在核心驅動程式412中經硬編碼或經提供為啟動時間引數。在一些實例中,白名單之粒度可處於WMI位準或甚至參數位準。
應用程式414可將至核心驅動程式412之句柄以準備發送動作請求416。核心驅動程式412可判定嘗試自核心驅動程式412取得句柄之應用程式 414之檔案的全路徑。核心驅動程式412可驗證檔案上之簽名。若簽名因任何原因(例如,無證書、無簽名、不良簽名等)未能驗證,則核心驅動程式412可不通過對句柄之請求。
在一些實例中,核心驅動程式412可對照有效發行人之預定清單而核對發行人資訊。若發行人不在預定清單上,則核心驅動程式412隨後可不通過對句柄之請求。
在一些實例中,核心驅動程式412可驗證在句柄請求之資源中指定的原始檔案名與應用程式414之檔案名匹配。此可防止調換來自同一發行人的其他二進位檔案。若檔案名不同,則核心驅動程式412可不通過對句柄之請求。
若核心驅動程式412驗證應用程式414經授權以請求BIOS動作410,則應用程式414隨後可繼續構建動作請求416以作為資料緩衝器(例如,在WMI中使用之BLOB)發送至BIOS 408。應用程式414接著可將動作請求416發送至核心驅動程式412,從而要求核心驅動程式412對動作請求416進行簽名。舉例而言,核心驅動程式412可曝露允許應用程式414(及其他驅動程式)調用之介面。
核心驅動程式412接著可運用金鑰406保護動作請求以產生經簽名之動作請求420a。在一些實例中,核心驅動程式412可添加防重放或靶向資訊至經簽名之動作請求420a。對經簽名之動作請求420a之保護可包括認證、加密及完整性保護。對於對稱金鑰,經簽名之動作請求420a可使用HMAC編碼或經加密(例如,使用AES-GCM)。對於非對稱金鑰,可使用對稱會話金鑰保護經簽名之動作請求420a。視程序而定,會話秘密可經由核心驅動程式412與BIOS 408或控制器404之間的金鑰協議或金鑰封裝方法導出。
核心驅動程式412可將經簽名之動作請求420a返回至應用程式 414。在受保護資料自核心驅動程式412返回之情況下,應用程式414可調用BIOS 408(例如,使用WMI)且可將經簽名之動作請求420b發送至BIOS 408。
一接收到經簽名之動作請求420b,BIOS 408可將經簽名之動作請求420c發送至控制器404以使用金鑰406驗證該經簽名之動作請求420c。控制器404亦可處理包括於經簽名之動作請求420c中之任何防重放或靶向機制。靶向機制可慮及計算裝置402之獨特標識。防重放機制可限制計算裝置402上之命令執行的範疇,例如可執行命令之持續時間、命令可在給定計算裝置402上執行之次數等。
控制器404可解密經簽名之動作請求420c中之資料(若需要)。控制器404可使用金鑰406驗證經簽名之動作請求420c之資料完整性及確實性。控制器404可在驗證回應424中將所得資料返回至BIOS 408。若資料驗證失敗,則控制器404可在驗證回應424中返回錯誤。
若控制器404返回經成功驗證之動作請求,則BIOS 408接著可分析經簽名之動作請求420c以判定執行何動作。BIOS 408可接著基於經簽名之動作請求420c執行BIOS動作410。
在一些實例中,BIOS 408可將回應426返回至調用應用程式414。舉例而言,若經簽名之動作請求420b通過簽名核對,則BIOS 408接著可將回應426作為成功回應返回。否則,BIOS 408可將回應426作為失敗回應返回。
圖5係繪示用於經授權應用程式所作BIOS動作請求之電腦可讀媒體530之實例的方塊圖。電腦可讀媒體530可係非暫時性有形電腦可讀媒體530。電腦可讀媒體530可係例如RAM、EEPROM、儲存裝置、光碟及其類似者。在一些實例中,電腦可讀媒體530可係依電性及/或非依電性記憶體,諸如DRAM、EEPROM、MRAM、PCRAM、憶阻器、快閃記憶體及其類似者。在一些實例中,圖5中所描述之電腦可讀媒體530可係圖1中所描述之計算裝置102 的記憶體之實例。在一些實例中,電腦可讀媒體530之程式碼(例如,資料及/或可執行程式碼或指令)可經傳送及/或載入至計算裝置102之一或多個記憶體。
電腦可讀媒體530可包括程式碼(例如,資料及/或可執行程式碼或指令)。舉例而言,電腦可讀媒體530可包括金鑰請求指令532、動作請求接收指令534及/或動作請求簽名指令536。
在一些實例中,金鑰請求指令532可係在執行時使得計算裝置之處理器在OS啟動期間將請求自核心驅動程式發送至用於金鑰之BIOS的指令。金鑰可在啟動計算裝置時由控制器或BIOS產生。在一些實例中,此可如圖1至圖4中所描述來實現。
在一些實例中,動作請求接收指令534可係在執行時使得計算裝置之處理器自應用程式接收針對BIOS動作之動作請求之指令。舉例而言,處理器可曝露用於自應用程式接收針對BIOS動作之動作請求之介面。在一些實例中,此可如圖1至圖4中所描述來實現。
在一些實例中,動作請求簽名指令536可係在執行時使得計算裝置之處理器回應於判定應用程式經授權以請求BIOS動作而藉由金鑰對動作請求進行簽名之指令。舉例而言,處理器可回應於接收動作請求而驗證應用程式係經授權應用程式。處理器可藉由運用金鑰對動作請求進行簽名而授權動作請求。經簽名之動作請求可允許BIOS執行BIOS動作。在一些實例中,此可如圖1至圖4中所描述來實現。
圖6係繪示用於由經授權應用程式請求BIOS動作之方法600之實例的流程圖。方法600及/或方法600之一或多個要素可由計算裝置執行。舉例而言,方法600之一或多個要素可由圖1中描述之計算裝置102、圖1中描述之控制器104、圖2中描述之計算裝置202、圖3中描述之計算裝置302、圖4中描述之計算裝置402及/或控制器404執行,其中任一者可大體上稱為圖6中 之「計算裝置」。在一些實例中,方法600可使用圖5中描述之一或多個指令來執行。
計算裝置可在啟動計算裝置時產生602金鑰。在一些實例中,當計算裝置如圖1至圖4中所描述通電時,控制器或BIOS可產生602金鑰。
計算裝置可在OS啟動期間將金鑰自BIOS發送604至核心驅動程式。舉例而言,BIOS可產生介面以允許核心驅動程式請求金鑰。BIOS可自核心驅動程式接收針對金鑰之請求。BIOS接著可將金鑰傳遞至核心驅動程式。BIOS可在OS啟動期間使用安全金鑰交換協定與核心驅動程式共用所產生之金鑰。在一些實例中,BIOS可回應於將金鑰發送至核心驅動程式而抹除儲存金鑰之記憶體以防止對金鑰之額外讀取。
計算裝置(例如,核心驅動程式)可針對BIOS動作自應用程式接收606動作請求。舉例而言,核心驅動程式可曝露用於接收動作請求之介面。應用程式可使用由核心驅動程式提供之介面發送動作請求。
計算裝置(例如,核心驅動程式)可判定608應用程式經授權以請求BIOS動作。舉例而言,核心驅動程式可使用經授權應用程式之白名單而認證調用應用程式。在其他實例中,核心驅動程式可驗證調用應用程式之簽名。在另外的其他實例中,核心驅動程式可驗證在句柄請求之資源中指定的原始檔案名與應用程式之檔案名匹配。
計算裝置(例如,核心驅動程式)可藉由金鑰對動作請求進行簽名610。舉例而言,核心驅動程式可運用金鑰保護動作請求以產生經簽名之動作請求。
計算裝置可將經簽名之動作請求發送612至BIOS。在一些實例中,核心驅動程式可將經簽名之動作請求發送至調用應用程式,該調用應用程式將經簽名之動作請求轉遞至BIOS。在其他實例中,核心驅動程式可直接將經簽 名之動作請求發送至BIOS。
計算裝置(例如,BIOS)可執行614簽名核對以驗證經簽名之動作請求。舉例而言,BIOS可將經簽名之動作請求發送至控制器以使用金鑰驗證經簽名之動作請求的資料完整性及確實性。在其他實例中,BIOS可驗證經簽名之動作請求之簽名。計算裝置(例如,BIOS)可回應於判定簽名核對通過而執行616 BIOS動作。
如本文中所使用,術語「及/或」可意謂一或多個項目。舉例而言,片語「A、B及/或C」可意謂以下中之任一者:A(無B及C)、B(無A及C)、C(無A及B)、A及B(但無C)、B及C(但無A)、A及C(但無B)或A、B及C中之全部。
雖然本文中描述各種實例,但本揭露內容不限於該等實例。本文中所描述之實例的變化可在本揭露內容之範疇內。舉例而言,可省略或組合本文中所描述之實例之操作、功能、態樣或元件。
102:計算裝置
104:控制器
106:金鑰
108:基本輸入/輸出系統
110:BIOS動作
112:核心驅動程式
114:應用程式
116:動作請求
120a,120b:經簽名之動作請求

Claims (15)

  1. 一種計算裝置,其包含:一控制器,其用以在該計算裝置啟動時產生一金鑰;一核心驅動程式,其用以:在作業系統(OS)啟動期間自一基本輸入/輸出系統(BIOS)接收該金鑰;自一應用程式接收針對一BIOS動作之一動作請求;以及回應於判定該應用程式獲授權去請求該BIOS動作而以該金鑰對該動作請求進行簽署;以及該BIOS,其用以回應於收到經簽署之動作請求而執行該BIOS動作。
  2. 如請求項1之計算裝置,其中該控制器將儲存該金鑰且驗證該經簽署之動作請求。
  3. 如請求項1之計算裝置,其中該控制器將在執行該BIOS時將該金鑰發送至該BIOS。
  4. 如請求項1之計算裝置,其中該BIOS將在OS啟動期間使用一安全金鑰交換協定與該核心驅動程式共用該金鑰。
  5. 如請求項1之計算裝置,其中該BIOS將回應於將該金鑰發送至該核心驅動程式而抹除儲存該金鑰之記憶體以防止對該金鑰之額外讀取。
  6. 如請求項1之計算裝置,其中該BIOS將:自該核心驅動程式接收針對該金鑰之一請求;回應於來自該核心驅動程式之針對該金鑰之該請求而自該控制器請求該金鑰;以及回應於自該控制器收到該金鑰而將該金鑰傳遞至該核心驅動程式。
  7. 如請求項1之計算裝置,其中該核心驅動程式將會將該經簽 署之動作請求送回該應用程式,且其中該應用程式將該經簽署之動作請求發送至該BIOS。
  8. 如請求項1之計算裝置,其中該核心驅動程式將會將該經簽署之動作請求發送至該BIOS以執行該BIOS動作。
  9. 一種計算裝置,其包含:一基本輸入/輸出系統(BIOS),其用以在該計算裝置啟動時產生一金鑰;一核心驅動程式,其用以:在作業系統(OS)啟動期間自該BIOS接收該金鑰;自一應用程式接收針對一BIOS動作之一動作請求;以及回應於判定該應用程式獲授權去請求該BIOS動作而以該金鑰對該動作請求進行簽署;以及該BIOS用以回應於收到經簽署之動作請求而執行該BIOS動作。
  10. 如請求項9之計算裝置,其中該BIOS將產生一介面以允許該核心驅動程式請求該金鑰。
  11. 如請求項9之計算裝置,其中該BIOS將:偵測該經簽署之動作請求;以及執行一簽章核對以驗證該經簽署之動作請求。
  12. 如請求項11之計算裝置,其中該BIOS將回應於判定該簽章核對通過而執行該BIOS動作。
  13. 一種包含有指令之非暫時性有形電腦可讀媒體,該等指令在執行時使得一計算裝置之一處理器:將作業系統(OS)啟動期間來自一核心驅動程式之一請求發送至一基本輸入/輸出系統(BIOS)以請求一金鑰,該金鑰係在該計算裝置啟動時由一控制器或該 BIOS產生;自一應用程式接收針對一BIOS動作之一動作請求;以及回應於判定該應用程式獲授權去請求該BIOS動作而以該金鑰對該動作請求進行簽署,經簽署之動作請求允許該BIOS執行該BIOS動作。
  14. 如請求項13之電腦可讀媒體,其中該等指令在執行時進一步使該處理器:回應於收到該動作請求而驗證該應用程式係一經授權應用程式;以及藉由以該金鑰對該動作請求進行簽署而授權該動作請求。
  15. 如請求項13之電腦可讀媒體,其中該等指令在執行時進一步使該處理器顯露一介面以用於自該應用程式接收針對該BIOS動作之該動作請求。
TW110106124A 2020-07-30 2021-02-22 計算裝置及包含有用於經授權應用程式所作bios動作請求之指令的非暫時性有形電腦可讀媒體 TWI773146B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/US2020/044307 WO2022025901A1 (en) 2020-07-30 2020-07-30 Bios action request for authorized application
WOPCT/US20/44307 2020-07-30

Publications (2)

Publication Number Publication Date
TW202205088A TW202205088A (zh) 2022-02-01
TWI773146B true TWI773146B (zh) 2022-08-01

Family

ID=80036012

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110106124A TWI773146B (zh) 2020-07-30 2021-02-22 計算裝置及包含有用於經授權應用程式所作bios動作請求之指令的非暫時性有形電腦可讀媒體

Country Status (3)

Country Link
US (1) US20230229774A1 (zh)
TW (1) TWI773146B (zh)
WO (1) WO2022025901A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11750372B2 (en) * 2021-01-07 2023-09-05 Dell Products L.P. BIOS/OS key provisioning system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200611192A (en) * 2004-09-21 2006-04-01 Aimgene Technology Co Ltd Bios locking device, computer system with a bios locking device and control method thereof
US8156298B1 (en) * 2007-10-24 2012-04-10 Adam Stubblefield Virtualization-based security apparatuses, methods, and systems
US20180276000A1 (en) * 2017-03-22 2018-09-27 Vmware, Inc. Persistent enrollment of a computing device using a bios
US20190236278A1 (en) * 2018-01-30 2019-08-01 Dell Products L.P. Modifiable policy action secure boot violation system
WO2019147360A1 (en) * 2018-01-23 2019-08-01 Diebold Nixdorf, Incorporated Application interface and database structures to remotely manage bios settings of automated teller machines

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8176309B2 (en) * 2009-05-07 2012-05-08 Nuvoton Technology Corporation Boot system has BIOS that reads rescue operating system from memory device via input/output chip based on detecting a temperature of a hard disk

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200611192A (en) * 2004-09-21 2006-04-01 Aimgene Technology Co Ltd Bios locking device, computer system with a bios locking device and control method thereof
US8156298B1 (en) * 2007-10-24 2012-04-10 Adam Stubblefield Virtualization-based security apparatuses, methods, and systems
US20180276000A1 (en) * 2017-03-22 2018-09-27 Vmware, Inc. Persistent enrollment of a computing device using a bios
WO2019147360A1 (en) * 2018-01-23 2019-08-01 Diebold Nixdorf, Incorporated Application interface and database structures to remotely manage bios settings of automated teller machines
US20190236278A1 (en) * 2018-01-30 2019-08-01 Dell Products L.P. Modifiable policy action secure boot violation system

Also Published As

Publication number Publication date
WO2022025901A1 (en) 2022-02-03
TW202205088A (zh) 2022-02-01
US20230229774A1 (en) 2023-07-20

Similar Documents

Publication Publication Date Title
CN107533609B (zh) 用于对系统中的多个可信执行环境进行控制的系统、设备和方法
JP6114832B2 (ja) 仮想マシンのための管理制御方法、装置及びシステム
CN109669734B (zh) 用于启动设备的方法和装置
CN107851160B (zh) 用于在isa控制下进行多个共存可信执行环境的可信i/o的技术
JP4796340B2 (ja) 状態検証を使用した保護されたオペレーティングシステムブートのためのシステムおよび方法
US8726364B2 (en) Authentication and access protection of computer boot modules in run-time environments
US9319380B2 (en) Below-OS security solution for distributed network endpoints
US8522018B2 (en) Method and system for implementing a mobile trusted platform module
US20210117534A1 (en) Trusted execution environment instances licenses management
KR20170095161A (ko) 시큐어 시스템 온 칩
JP6735872B2 (ja) コンピュータシステム及びコンピュータシステムを初期化する方法
US11354417B2 (en) Enhanced secure boot
US10853086B2 (en) Information handling systems and related methods for establishing trust between boot firmware and applications based on user physical presence verification
US10747885B2 (en) Technologies for pre-boot biometric authentication
Mannan et al. Unicorn: Two-factor attestation for data security
US10771249B2 (en) Apparatus and method for providing secure execution environment for mobile cloud
TWI773146B (zh) 計算裝置及包含有用於經授權應用程式所作bios動作請求之指令的非暫時性有形電腦可讀媒體
EP3440586B1 (en) Method for write-protecting boot code if boot sequence integrity check fails
WO2019185126A1 (en) Instance handling of a trusted execution environment
US10938857B2 (en) Management of a distributed universally secure execution environment