[go: up one dir, main page]

TW201535145A - 使用保護讀取儲存器安全地儲存韌體數據之系統及方法 - Google Patents

使用保護讀取儲存器安全地儲存韌體數據之系統及方法 Download PDF

Info

Publication number
TW201535145A
TW201535145A TW103142204A TW103142204A TW201535145A TW 201535145 A TW201535145 A TW 201535145A TW 103142204 A TW103142204 A TW 103142204A TW 103142204 A TW103142204 A TW 103142204A TW 201535145 A TW201535145 A TW 201535145A
Authority
TW
Taiwan
Prior art keywords
data
memory
computing device
secure
firmware
Prior art date
Application number
TW103142204A
Other languages
English (en)
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 TW201535145A publication Critical patent/TW201535145A/zh

Links

Classifications

    • 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/4406Loading of operating system
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself

Landscapes

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

Abstract

本發明之實施例在保護讀取儲存器中儲存供韌體使用之數據,然後將該數據或與所儲存之數據相關的數據傳送至一安全執行環境中,以供正常的平台操作期間使用。在作業系統被載入之前,該保護讀取儲存器僅在平台重置之後但保護讀取儲存器被鎖定之前的一時間期間中為可讀取的。此種保護讀取儲存器在正常的系統記憶體中執行任何非信任碼之前係為鎖定的,使得在該保護讀取儲存器中的數據不會暴露給惡意碼執行。

Description

使用保護讀取儲存器安全地儲存韌體數據之系統及方法
本申請案主張美國臨時專利申請案號61/911,655,標題為“System and Method to Store Data Securely for Firmware Using Read-Protected Storage”,申請日為2013年12月4日的專利申請案之權益及優先權,其全文內容中的專利參考文獻全體皆引用作為本說明書的揭示內容。
本發明係關於使用保護讀取儲存器安全地儲存韌體數據之系統及方法
多數計算裝置係由包括在該裝置內之韌體所初始化,且該韌體提供一系列的軟體服務,這些軟體服務幫助作業系統(OS)的開機,也提供這些服務的較小子集,其在作業系統開機後可繼續被利用。韌體是一種已經 被寫在唯讀記憶體(ROM)模組上之軟體,此模組包括但不限於唯讀記憶體(ROM)、可程式唯讀記憶體(PROM)、可抹除可程式唯讀記憶體(EPROM)、電氣可抹除可程式唯讀記憶體(EEPROM)或快閃記憶體(以上全體在本文之後均以“ROM”表示)。在其他服務中,直到將該計算裝置之作業系統載入記憶體之開機進程可運行前,由此種韌體負責該計算裝置之操作。儘管某些服務的提供,在載入該作業系統後會基於安全性及其他因素,回頭向該韌體要求來自該作業系統的控制移轉,但一旦作業系統經載入,就由該作業系統接管該計算裝置的正常操作。例如,一些韌體僅在一計算裝置從該作業系統所控制的一正常操作模式轉換到由該韌體控制的一安全執行環境之後才可執行。
這樣的安全執行環境的一個例子是系統管理模式(SMM)。計算設備可以包含被稱為中央處理單元(CPU)的一個或多個元件。每個CPU可具有一個以上的核心。這些CPU以及CPU核心可具有一正常的操作模式和稱為SMM的一第二操作模式。當CPU或核心是在正常操作模式下(當計算設備正由作業系統所控制),它可以訪問計算機的除了專為SMM某些存儲器區域外的所有元素。相對的,當CPU或核心在SMM下運行時,其能夠訪問該計算裝置的所有元素,包括分配給SMM存儲器位置。經由一些被稱作系統管理中斷(SMI)事件的觸發,CPU或核心可被指向從正常操作模式轉變到SMM。來自 系統設計中之可用的確切觸發器稍微不同,但對一個SMI被觸發的結果是,在主記憶體中之執行將立即被停止,而在SMM保護儲存器中之一特定位置開始執行。當受到在正常系統記憶體執行之密碼及使用直接記憶體存取(DMA)之硬體裝置的檢查下保護,由SMM提供的安全執行環境允許安全服務和應用程式進行執行動作。支援x86系統架構的計算裝置經常地提供SMM支持。相似類型的安全執行環境可以在其他使用ARM處理器的計算裝置中之平台,如TrustZoneTM被提供。
統一可延伸韌體介面(UEFI)是一個由非營利工業主體所創建的規範,詳述在作業系統和計算裝置之韌體間的一編程介面,此類韌體包括下列但不限於:個人電腦(PC)。UEFI規範描述一組工具,藉此,計算裝置可以一種有組織的方式從提供電力狀態推移到全操作式。此UEFI規範顯示了欲求結果但卻無法謹慎地說明內部的實施策略。此UEFI韌體規範取代了先前工業上所使用的早期OS/韌體介面,現在則被稱作遺留BIOS(基本輸入輸出系統)。
當在一計算裝置中實施時,用於UEFI韌體的機器碼及該韌體所使用的全部永久資料,都位在唯讀記憶體(ROM)中。在很多情況下,該ROM是一被稱為快閃記憶體(flash ROM)的可電氣抹除矽裝置。快閃記憶體具有特徵在於,其可經由電氣指令被抹除繼而個別元件可被寫入,且該裝置將無限期地保留該資料。當電力先供應 給該計算裝置時,該裝置會執行一個叫做重置的處理,其清除一已知情況之狀態並開始該啟動序列所控制之韌體的執行。該韌體係從ROM讀取。
本發明之實施例在保護讀取儲存器中儲存供韌體使用之數據,然後將該數據或與所儲存之數據相關的數據傳送至一安全執行環境中,以供正常的平台操作期間使用。在作業系統被載入之前,該保護讀取儲存器僅在平台重置之後但保護讀取儲存器被鎖定之前的一時間期間中為可讀取的。此種保護讀取儲存器在正常的系統記憶體中執行任何非信任碼之前係為鎖定的,使得在該保護讀取儲存器中的數據不會暴露給惡意碼執行。在一實施例中,在該保護讀取儲存器中之數據包括一密碼金鑰,其使用來將包括一大量的密鑰之次要數據解碼至該安全執行環境中。在另一實施例中,在保護讀取儲存器中之數據包括一加密金鑰,其被用來解密包括驅動器或韌體卷之次要數據,該韌體卷係在載入至安全執行環境之前被複製到正常的記憶體中。在又一實施例中,該保護讀取儲存器內容或其自身的一部分,包括未加密的驅動器或一韌體卷,其在被載入至該安全執行環境之前,被複製到正常的系統記憶體。
在一實施例中,一種使用一保護讀取儲存器以儲存用於韌體之數據的計算裝置可實施之方法,其包含在該計算裝置的一重置之後,於一啟動序列期間執行韌體 以讀取來自保護讀取儲存器的數據。該保護讀取儲存器僅在一時間期間為非暫時性及可讀取,該時間期間係在該計算裝置之重置和該保護讀取儲存器的一隨後鎖定之間,以防止在該保護讀取儲存器中之數據的任何進一步讀取,直到提供該保護讀取儲存器之一記憶體裝置的一隨後重置被執行。該方法也包括複製該數據或與該數據有關的次要數據至一安全記憶體位置,該安全記憶體位置係由該計算裝置所執行之一安全執行環境所使用。該方法還鎖定該保護讀取儲存器及該安全記憶體位置和該安全執行環境的配置。在鎖定該保護讀取儲存器及該安全記憶體位置和該安全執行環境的配置之後,該作業系統被載入至記憶體。
在另一實施例中,一種組配以使用保護讀取儲存器以儲存用於韌體之數據的計算裝置,其包含一處理器及具有用於該計算裝置之一作業系統的暫時性記憶體。該計算裝置也包括一具有韌體之非暫時性儲存器。該韌體係組配在該計算裝置的一重置之後,於一啟動序列期間讀取來自保護讀取儲存器的數據。該保護讀取儲存器僅在一時間期間為非暫時性及可讀取,該時間期間係在該計算裝置之重置和該保護讀取儲存器的一隨後鎖定之間,以防止在該保護讀取儲存器中之數據的任何進一步讀取,直到提供該保護讀取儲存器之一記憶體裝置的一隨後重置被執行。該韌體進一步組配來複製該數據或與該數據有關的次要數據至一安全記憶體位置,該安全記憶體位置係由該計算裝置所執行之一安全執行環境所使用。該韌體也組配來 鎖定該保護讀取儲存器及該安全記憶體位置和該安全執行環境的配置。此外,該韌體組配以在鎖定該保護讀取儲存器及該安全記憶體位置和該安全執行環境的配置之後,載入該作業系統至記憶體。
102-112、200-212‧‧‧步驟
300‧‧‧系統快閃ROM裝置
302‧‧‧經加密的密碼金鑰
302A‧‧‧經複製的解密金鑰
304‧‧‧經加密的UEFI SMM驅動器、SMM/DXE驅動器或韌體卷
304A‧‧‧經複製的已解密之UEFI SMM驅動器、SMM/DXE驅動器或韌體卷
304B‧‧‧經排程的UEFI SMM驅動器、SMM/DXE驅動器或韌體卷
310‧‧‧保護讀取儲存器
312、314‧‧‧解密金鑰
316‧‧‧組合SMM/DXE驅動程序和/或固件體積(它包含驅動器)
316A‧‧‧組合SMM/DXE驅動程序和/或固件體積(它包含驅動器)316的驅動程序或固件的卷
316B‧‧‧司機
350‧‧‧正常的系統記憶體
360‧‧‧SMRAM
400‧‧‧計算裝置
402‧‧‧CPU
403-406‧‧‧芯
408‧‧‧存儲器
409‧‧‧SMRAM
410‧‧‧硬盤
412‧‧‧OS
420‧‧‧ROM
430‧‧‧固件
450‧‧‧讀保護存儲區域
455‧‧‧數據
460‧‧‧輔助數據
包含於本說明書中並構成本說明書的一部分的附圖顯示了一或多個本發明之實施例,配合說明書內文,能增進對本發明的理解。在附圖中:第1圖(先前技術)描繪UEFI啟動流程的一個示例;第2圖描繪由本發明一實施例在一啟動序列期間利用保護讀護讀取儲存器執行序列步驟的一個示例;第3A圖描繪在本發明一實施例中,具有保護讀取儲存器之快閃ROM裝置與具有使用SMRAM複製解密金鑰至SMRAM的系統記憶體之一示例;第3B圖描繪在本發明一實施例中,具有保護讀取儲存器之快閃ROM裝置與具有使用SMRAM複製解密驅動器或韌體卷至SMRAM的系統記憶體之一示例;第3C圖描繪在本發明一實施例中,具有保護讀取儲存器之快閃ROM裝置與具有使用SMRAM複製驅動器或韌體卷至SMRAM的系統記憶體之一示例。
第4圖描繪適於實施本發明一實施例的示例環境。
本發明的實施例保護可信固件等固件和操作系統或遠程管理代理之間的通信。傳統上,在受信任的固件和這些代理之間建立秩序的信任,加密密鑰(通常是不對稱的公鑰)被用來驗證這些代理接收到的信息。不幸的是,由從所述可信固件對這些藥物的信息可以驗證,因為這將要求可信固件使用簽名密鑰有限手段。這樣的簽名密鑰通常被嵌入在包含在可信固件相同閃速ROM,並且因為可信固件必須能夠訪問以執行在CPU中,簽名密鑰將訪問的CPU上運行的程序。由於大多數的加密系統的安全性就在於在密鑰,有人能夠訪問固件的閃速ROM設備將能夠危及系統的安全性通過讀取密鑰和創建偽造數據假裝在可信固件來發起。
一種常規的方法來解決這一問題,並保護加密/解密密鑰是使用可信平台模塊(TPM)。TPM的可用於保存從未曝光並執行使用密鑰的加密操作的密鑰。然而,這需要一個TPM被包括在計算設備。同樣,某些CPU有被允許運行和僅該代碼允許在CPU中存儲訪問鍵的特殊操作模式,其中僅簽名的代碼或代碼在內部閃速ROM設備。然而,這種方法需要由CPU進行的特殊操作模式的其他支持。另一種做法是通過由分別存儲鑰匙或存儲密鑰,或在某些混淆形式以使它們不容易識別,但此技術需要一種替代存儲過程模糊密鑰來保護在固件私鑰。
與傳統的技術中,一個本發明的實施例提供了一種快閃ROM設備或其它非易失性存儲器被讀保護,並包含數據的一小部分。讀保護存儲可讀僅在以下的計算裝置的一個復位的時間段,並在此之前,先於操作系統的任何進一步防止了裝載執行讀保護存儲的隨後鎖定在讀取數據的讀保護存儲直到存儲器設備(諸如快閃ROM)的隨後的復位正在提供讀保護存儲被執行。在一個實施方案中,所述固件使用從讀保護存儲讀取的解密密鑰向次級數據進行解密,如附加的密碼密鑰,並將它們複製到用於由一個安全執行環境,如SMM或TrustZone的存儲器。在另一個實施方案中,固件可以讀取在所讀取的保護存儲一個密鑰,並用它來解密經加密的UEFI SMM驅動器,組合的SMM/DXE驅動程序或它們首先被複製到正常系統存儲器被調度到執行前一個固件卷並複製到分配給該安全執行環境作為引導序列的一部分的存儲器位置。或者,在另一實施方案中,一個非加密的UEFI SMM驅動器,組合的SMM/DXE驅動程序或固件卷可以存儲在讀保護的存儲和複製到正常系統存儲器被調度到執行前和複製到存儲位置分配給安全執行環境作為引導序列的一部分。本發明的實施例提供了成本的降低在其上使用某種形式的安全協處理器,以防止鍵和其它數據從被暴露的常規方法。
如上所述,固件負責計算裝置的初始化和操作系統的加載。圖1描繪了與通過計算裝有UEFI兼容BIOS設備執行的UEFI平台初始化規範相一致的示例性引 導順序。示範引導順序在與安全性(SEC)階段固件開始執行(步驟102)的CPU復位向量開始執行。在CPU復位向量是從哪個CPU將檢索下一個CPU復位的第一個指令執行的默認位置。美國證券交易委員會階段從CPU復位的時間延長,直到臨時RAM可用。除其他任務,在SEC階段處理平台重啟事件,通過利用處理器高速緩存作為平面存儲器創建一個臨時存儲器存儲,例如,和手指針暫時存儲器,暫時棧和一個引導固件體積(BFV),以預EFI(PEI)階段固件。PEI階段(步驟104)初始化存儲為駕駛員執行環境(DXE)階段開始使用稱為PEI模塊(PEIM),其包含在由SEC階段提供的BFV驅動程序。在PEI階段執行的最後一個模塊,名為DXE初始程序加載程序(IPL)(DXE IPL或DXE初始程序加載)操作轉換到DXE階段。在DXE階段(步驟106)初始化系統組件,如芯片組和附加卡。在這個階段中,代碼被執行創建該安全執行環境中的系統存儲器中的已分配的內存位置。作為一個安全的存儲器位置的一個例子,在計算設備的系統存儲器可以被劃分成兩個區域:正常的系統存儲器,其中,所述操作系統和應用程序的執行與系統管理隨機存取存儲器(SMRAM),其中,安全服務和應用程序執行。所述SMRAM是通過執行在使用直接存儲器訪問(DMA)正常系統存儲器或硬件設備代碼免受檢查。該SMRAM最初是作為正常的系統內存可見,直到後來在啟動順序後隱藏。應當理解,雖然本文的描述中提到SMRAM,具體到 86的系統架構的一個術語,這裡所描述的概念也類似於用於ARM處理器的TrustZone的和TrustZone的安全存儲器條款。引導設備選擇(BDS)階段(步驟108)選擇啟動設備從中加載操作系統到內存中。運行時階段(步驟110),是指在操作系統已經加載到內存中,所採取的計算裝置的控制下一個啟動序列結束的時間。當計算設備的固件需要從操作系統控制回後的操作系統已關閉,例如,如由計算設備以低功率狀態的轉變(步驟的結果,來生(AL)相(步驟112)發生111)這樣的CPU復位時為睡眠狀態,在此之前。如下面進一步解釋的,本發明的實施例使用在DXE階段讀保護存儲數據或輔助數據複製到安全執行環境,這樣它會以後提供給執行中的安全執行環境的固件。
圖2描繪了一個示範性的由本發明的實施例執行,利用一個引導序列期間讀保護存儲步驟順序。如上所述,下面的CPU復位(步驟200),引導序列開始(步驟202)。UEFI引導流通常通過CPU復位(步驟200),在SEC階段和PEI階段之後兩個階段上運行。PEI階段再通過相位的執行啟動,在此期間DXE階段,一部分的方式,SMRAM內的SMM環境由一個DXE驅動程序的一個或多個創建的。如以上所討論的,SMM環境是由一系統管理中斷(SMI #)的裝置輸入的CPU/CPU核心的操作模式。其執行在此模式中的代碼通常駐留在一個安全的存儲器位置(諸如SMRAM)僅SMM期間訪問。 期間在正被裝載的SMM驅動器(DXE階段)引導過程期間,正常的存儲器,這將在以後用作SMRAM的部分被構造和CPU準備在SMM操作該存儲器內,但SMRAM不而安全。這種準備包括配置CPU與內存地址,開始在進入SMM並在CPU的狀態信息將被保存在內存中的地址執行。在某些情況下,它也需要在配置CPU的高速緩衝存儲器控制器,以允許SMRAM進行高速緩存,以治療SMRAM在這樣一種方式,代碼或外部硬件不能窺探或改變SMRAM內容(例如:Intel的SMRR)。
與圖2的序列繼續,在讀保護存儲的數據是可讀的,在這一點上的引導序列,並且本發明的固件在讀保護的存儲(步驟204)中讀取數據。例如,固件可以讀取在所讀取的保護存儲的數據的解密密鑰或密鑰,然後用它來定位在快閃ROM設備或其他地方的次要數據進行解密。可替換地,固件可以讀取從讀保護存儲未加密的數據。如下面進一步解釋的,數據或輔助數據可以被直接複製到所使用的安全執行環境的安全存儲器位置,或者可以先被複製到正常系統存儲器之前,隨後複製到安全存儲器位置在以後的啟動順序(步驟206)。一旦數據已被成功地從讀出保護存儲讀出,讀出的保護存儲被鎖定(步驟208),使得其內容不能由任何軟件或固件,或者任何外部硬件設備來讀取。典型地,這是通過在引導序列期間將值寫入到所述存儲設備的配置寄存器的一個特定的值或一系列完成。該讀保護確保讀週期到設備返回一個預先確定 的值或者僅僅是處理在由該裝置所在的總線定義的方法。讀保護存儲的讀保護狀態不能被除通過設備復位改變。通常,快閃ROM設備的復位連接到計算系統的復位。按照讀出保護存儲(步驟208)的鎖定,固件繼續在SMRAM區域加載更多的代碼作為引導過程的一部分,直到沒有更多的代碼應加載和OS準備被裝載到存儲器中。在SMM和SMRAM配置定稿,並配置被鎖定(步驟210)。例如,一個典型的DXE流期間,在結束的DXE是一個事件,發出信號時,導致SMM驅動到用於安全操作的準備。另外,SMRAM被關閉(不可訪問時不處於SMM)和鎖定,從而在配置寄存器,控制其配置不能被改變,直到一個隨後的系統復位。同樣地,其他安全敏感的配置寄存器被鎖定。將UEFI PI規範提供了一種機制,加載代碼到SMRAM,並提供足夠的通知用於通知當這種鎖定是可能的實施。一旦SMRAM被鎖定,已加載到SMRAM中的數據或輔助數據不再可見到外部硬件或執行正常存儲器的代碼。數據或輔助數據可以隨後僅通過執行SMM代碼中使用。在SMM代碼可以提供在正常存貯到代碼的服務,作為一個代理來執行操作,包括加密操作,與所述數據或輔助數據,但沒有數據或輔助數據暴露於代碼在正常存儲器操作。這些服務通常調用使用軟件生成SMI。在此之後的保護到位,操作系統加載到內存中,以便它可以採取的計算裝置(步驟212)的操作的控制。操作系統的加載可通過UEFI引導管理器(UEFI規範)或PI規範(BDS階 段)發生。
在一個實施例中,解密密鑰被存儲在讀保護的存儲和使用的固件進行解密,其中包括其他密鑰,使得其他加密密鑰可以提供給一個安全執行環境,如SMM輔助數據。圖3A示出具有讀保護的存儲器和系統存儲器與SMRAM用於一個本發明的實施例的解密的密鑰複製到SMRAM中的示例性閃存ROM設備。系統內存在的計算設備包括正常的系統存儲器350和存儲器的安全部分,SMRAM360,由SMM分配供使用。該系統的快閃ROM設備300具有至少一個區域,讀保護存儲310,這是後平台重置和讀保護存儲被鎖定之前僅可讀。一旦讀保護存儲被鎖定時,其內容不能被讀出,直到快閃ROM設備,可提供讀出保護存儲被執行的隨後的復位。通常,快閃ROM裝置的復位連接到該系統或PCI復位信號。在快閃ROM設備的讀保護存儲310保持至少一個解密密鑰312本發明的固件使用解密密鑰312對在閃速ROM設備輔助數據進行解密,如附加的加密密鑰(多個)302。固件拷貝解密的密碼密鑰302A SMM期間SMRAM360以供使用。解密密鑰或密鑰的確切性質可在不脫離本發明的主旨的範圍內變化。例如,該解密密鑰可以是二分之一的非對稱密鑰對的,也可以是一個對稱密鑰。這樣,讀出的保護存儲可能是非常小的(例如32個字節為一個256位的AES密鑰或512字節的4096位RSA密鑰)。應當理解,在其他實施例中,可以存在多於一個的鍵不同的類型。
在另一個實施方案中,在讀出保護存儲的數據包括一個用於解密包含司機或正被裝入安全執行環境之前複製到正常存儲器固件卷次要數據的加密密鑰。圖3B示出具有讀保護的存儲器和系統存儲器與在由本發明實施例的複製解密的驅動程序或固件卷成SMRAM使用SMRAM的示例性閃存ROM設備。系統內存在的計算設備包括正常的系統存儲器350和存儲器的安全部分,SMRAM360,由SMM分配供使用。該系統的快閃ROM設備300具有至少一個區域,讀保護存儲310,這是後平台重置和讀保護存儲被鎖定之前僅可讀。在快閃ROM設備的讀保護存儲310保持至少一個解密密鑰314。本發明的固件使用解密密鑰314對在快閃ROM設備的輔助數據如UEFI SMM驅動器,組合的SMM/DXE驅動程序解密和/或固件卷(其中包含驅動器)304解密的驅動程序或固件的卷304A被複製到在正常的系統內存正常系統存儲器350一次,這些驅動程序被調度使用正常的UEFI平台初始化(PI)的機制來執行。在平台初始化,司機304B被SMM期間複製到SMRAM360執行。可替代地,解密驅動器可以由固件SMM期間而不是第一次被複製到正常系統存儲器直接複製到SMRAM中使用。
在另一個實施方案中,非加密的UEFI SMM驅動,SMM/DXE驅動程序和/或固件的卷可以存儲在本發明的讀出保護存儲和複製SMM期間SMRAM使用。圖3C描繪了具有讀保護的存儲和系統內存在由本發明實施例的 複製的驅動程序或固件卷成SMRAM使用SMRAM的示例性閃存ROM設備。系統內存在的計算設備包括正常的系統存儲器350和存儲器的安全部分,SMRAM360,由SMM分配供使用。該系統的快閃ROM設備300具有至少一個區域,讀保護存儲310,這是後平台重置和讀保護存儲被鎖定之前僅可讀。在快閃ROM設備的讀保護存儲310保持至少一個UEFI SMM驅動,組合SMM/DXE驅動程序和/或固件體積(它包含驅動器)316的驅動程序或固件的卷316A被複製到正常的系統存儲器350一旦在正常的系統內存,這些驅動程序,預計正常使用UEFI平台初始化(PI)的機制來執行。在平台初始化,司機316B被SMM期間複製到SMRAM360執行。可替代地,驅動器可以由固件SMM期間而不是第一次被複製到正常系統存儲器直接複製到SMRAM中使用。
圖4示出適用於實踐本發明的實施例的示例性環境。一種計算設備400包括一個CPU402用於處理指令。在CPU402可以包括多個核,如芯403-406。該計算設備400可以是鼠標操作BIOS控制的計算設備。該計算設備400可以是個人計算機,膝上型計算機,平板計算設備,服務器,智能電話或一些其它類型的計算設備。該計算設備400還可以包括存儲器408,例如隨機存取存儲器(RAM)。這個存儲器408的一部分可以被配置為SMRAM409的OS412被存儲在硬盤410或其他非易失性存儲是在,或者在與通信的位置上,計算設備400可被加 載到存儲器408如由計算裝置執行的引導過程的一部分。
計算裝置400還可以包括ROM420的ROM420可以是一個閃存ROM設備,並且可以是系統的快閃ROM設備。在某些情況下,該系統的設計可以結合保持固件多個ROM設備。ROM420可以包括固件430,如上所述,其可操作在不同的點的計算裝置的操作。例如,固件430可以是計算設備400的引導序列期間可操作和SMM期間可以是可操作的。固件430計算當裝置400在OS412的控制(即在非SMM保護模式)中執行的正常操作模式也可以是可操作的。ROM420可以包括一個讀保護存儲區域450保持數據455,這只是可讀後的計算裝置的一個復位並且如上所述的OS加載之前。ROM420還可以存儲與數據455輔助數據460可以是讀保護的區域450或ROM420中的非讀保護區域的輔助數據460。
應當理解的是,除了那些上面具體描述的本發明的其它實施例也在本發明的範圍之內。例如,本發明的其它實施例可使用替代的SMM和SMRAM TrustZone的,TrustZone的安全存儲器和相關技術。同樣地,讀出保護存儲和次級數據存儲可以位於比系統快閃ROM設備等另一個快閃ROM設備。存儲單元可以位於一些其他形式的非易失性存儲裝置完全。存儲單元也可存在於彼此分離的裝置。
在其中的解密密鑰被存儲在讀出保護存儲一個實施方案中,更新的密鑰使用由先前的密鑰簽名更新的 數據僅當是允許的。
在另外的實施方案中,可以使用安全的存儲,但尚未SMRAM。相反,一個應用程序可以從讀保護存儲器中執行,應用程序可能被解密,以從利用存儲在只讀存儲器保護密鑰,或一個應用程序的其他非易失性存儲裝置的正常存儲器可以由讀保護存儲到正常複製存儲器,然後執行一次。在這種情況下,該應用程序是在一個安全的環境(OS前)執行的,因為它沒有持續到不可信的環境中。UEFI應用在從入口點退出立即終止。
在另一個實施方案中,固件更新用的次級數據存儲的驗證內容的讀保護存儲。次要數據是通過驗證,它包含用於讀保護存儲的更新和該更新已經使用密鑰或密鑰對在讀出保護存儲中找到的一個關鍵的簽名驗證。如果次要數據的簽名是有效的,則讀出保護存儲的內容所使用的輔助數據的內容進行更新。在本實施例中,讀保護存儲任選不加以保護(即從未啟用讀保護),首先,直到它已被編程一次。這允許使用一個簽名的更新在製造過程中被指定的讀出保護存儲的初始內容並隨後進行更新。
在一個實施方案中,固件可以生成從一個隨機數和/或其它一些種子值的初始密鑰,即延伸到使用的方法的關鍵,例如,在PKCS # 7進行說明。這使得每個系統都有一個唯一的密鑰,可以使用固件來加密由本身的數據,如用戶的密碼,需要被存儲在存儲裝置訪問的操作系統的應用程序,並且不能由一個曝光受到損害在其他平 台上的關鍵。自動生成由固件進一步消除了對一個鍵由安裝進行安裝。
在另一實施例中,配置比特鎖定讀保護存儲在處理器或平台矽使得過渡從一個狀態到另一個被自動設置。當由CPU執行的初始代碼包含一個上模ROM上並臨時RAM也上型模如被上一芯片(SoC的)一個系統中找到,這是很有用的。在此情況下,SMM和SMRAM之前離開的PEI階段配置。以這種方式,讀出的保護存儲內容不會被暴露在外部總線,因為所有的代碼和數據執行是可見的,只有在SoC上。作為一個例子,一個高速緩存通常被用作臨時RAM中。當臨時RAM是禁止時,讀保護,可以啟用。作為另一實例,當CPU開始執行所述內部ROM以外,讀保護,可以啟用。作為另一個例子,一個片上的SRAM可用於執行代碼和讀保護使能時執行開始於地址範圍那些由SRAM解碼之外。
在替代實施例中,配置比特用於讀保護存儲綁定到SMRAM/SMM構造鎖位。配置鎖定位SMRAM防止進入SMRAM而不是在SMM中,並防止被改變,直到下一次復位的結構,使得SMRAM中的內容不能被讀出或改變。當SMRAM/SMM配置鎖定位被置位,在讀保護存儲在讀保護功能。
在一個實施方案中,在執行正常存儲器的應用程序可以請求對數據進行加密,解密,或利用使用API先前在安全存儲器置備的關鍵之一驗證。例如,用戶可以 輸入一個密碼,然後,經由服務呼叫時,該密碼可以進行比較,以在安全存儲器由固件維持,返回真或假取決於它是否是一個匹配的加密版本。密碼的安全的存儲器中的版本可使用所供應的加密密鑰中的一個進行加密。同樣的,該用戶密碼或建立信任的正常內存運行的應用程序的其他方式,可能會要求數據有一定的塊進行加密或者使用配置的在安全存儲器的密鑰進行解密。完全發生在安全存儲器中的操作,使得密鑰永遠不會露出。不可信的應用程序或者(通過擴展名)用戶不允許使用該密鑰。
在一個實施方案中,在與主板上的組件之間的加密的交易的系統,該密鑰不被在系統總線(CPU總線,存儲器總線,閃存總線),用於捕獲通過用分析儀攻擊者暴露。尤其是,它是很難有人用閃光燈讀取器/編程器從閃光裝置提取的內容,因為該數據將被記錄加密只知道與它通信的系統控制器的一個關鍵的芯片上。
本發明的部分或所有實施例可被提供以作為一或多個電腦可讀程式或嵌入在一或多個非依電性媒體之上或之中。該媒體可為但不限為一硬碟、一光碟、一多樣化數位光碟、ROM、PROM、EPROM、EEPROM、快閃記憶體、RAM或一磁帶。總的來說,該電腦可讀程式或編碼可以任何計算機語言實施。
因為可以做出某些變化而不脫離本發明的主旨的範圍內,意圖是包含在上述說明或示出在附圖中的所有內容都被解釋為說明性的而不是在字面意義。本領域的 從業者將認識到,步驟和在附圖中描述的體系結構的順序可以在不脫離本發明的主旨的範圍內,並且包含在本文所說明的眾多的本發明的可能的描繪的單數的例子來改變。
本發明的示例實施例的前述描述提供了說明和描述,但並非意在窮舉或將本發明限制為所公開的精確形式。修改和變化是可能的,根據上述教導的,或者可以從本發明的實踐中獲得。例如,當一系列的動作進行了說明,以下動作的順序可以與本發明的原理相一致的其他實現中修改。此外,非相關動作可以並行地執行。
300‧‧‧系統快閃ROM裝置
302‧‧‧經加密的密碼金鑰
302A‧‧‧經複製的解密金鑰
310‧‧‧保護讀取儲存器
312‧‧‧解密金鑰
350‧‧‧正常的系統記憶體
360‧‧‧SMRAM

Claims (21)

  1. 一種使用一保護讀取儲存器以儲存用於韌體之數據的計算裝置可實施之方法,該方法包含:在該計算裝置的一重置之後,於一啟動序列期間執行韌體以讀取來自保護讀取儲存器的數據,該保護讀取儲存器僅在一時間期間為非暫時性及可讀取,該時間期間係在該計算裝置之重置和該保護讀取儲存器的一隨後鎖定之間,以防止在該保護讀取儲存器中之數據的任何進一步讀取,直到提供該保護讀取儲存器之一記憶體裝置的一隨後重置被執行;複製該數據或與該數據有關的次要數據至一安全記憶體位置,該安全記憶體位置係由該計算裝置所執行之一安全執行環境所使用;鎖定該保護讀取儲存器;鎖定該安全記憶體位置和該安全執行環境的配置;以及在鎖定該保護讀取儲存器及該安全記憶體位置和該安全執行環境的配置之後,載入該作業系統至記憶體。
  2. 如申請專利範圍第1項所述之方法,其中該數據包括至少一解密金鑰,及該方法進一步包含:使用該解密金鑰解密該次要數據;以及複製經解密的該次要數據至該安全記憶體位置。
  3. 如申請專利範圍第2項所述之方法,其中經解密的該次要數據係至少一加密金鑰。
  4. 如申請專利範圍第1項所述之方法,其中該數據包括至少一解密金鑰,及該方法進一步包含:使用該解密金鑰解密該次要數據;以及從該正常的系統記憶體複製經解密的該次要數據至該安全記憶體位置之前,複製經解密的該次要數據至一正常的系統記憶體位置,該系統記憶體位置在一作業系統控制下之該計算裝置操作的期間係可存取的。
  5. 如申請專利範圍第4項所述之方法,其中經解密的該次要數據係至少一統一可延伸韌體介面(UEFI)系統管理模式(SMM)驅動器、一結合SMM/驅動器執行環境(DXE)驅動器及一韌體卷。
  6. 如申請專利範圍第1項所述之方法,其中該數據係至少一UEFI SMM驅動器、一結合SMM/DXE驅動器及一韌體卷,及該方法進一步包含:從該正常的系統記憶體複製該數據至該安全記憶體位置之前,複製該數據至一正常的系統記憶體位置,該系統記憶體位置在一作業系統控制下之該計算裝置操作的期間係可存取的。
  7. 如申請專利範圍第1項所述之方法,其中該安全執行環境係SMM及該安全記憶體位置係系統管理隨機存取記憶體(SMRAM)。
  8. 如申請專利範圍第1項所述之方法,其中該安全執行環境係ARM所開發之信任區域(TrustZone)及該安全記憶體位置係TrustZone安全記憶體。
  9. 一種具有電腦可執行指令之非暫時性媒體,其中該等指令用以使用保護讀取儲存器以儲存用於韌體之數據,該等指令當被執行時致使至少一計算裝置進行下列步驟:在該計算裝置的一重置之後,於一啟動序列期間執行韌體以讀取來自保護讀取儲存器的數據,該保護讀取儲存器僅在一時間期間為非暫時性及可讀取,該時間期間係在該計算裝置之重置和該保護讀取儲存器的一隨後鎖定之間,以防止在該保護讀取儲存器中之數據的任何進一步讀取,直到提供該保護讀取儲存器之一記憶體裝置的一隨後重置被執行;複製該數據或與該數據有關的次要數據至一安全記憶體位置,該安全記憶體位置係由該計算裝置所執行之一安全執行環境所使用;鎖定該保護讀取儲存器;鎖定該安全記憶體位置和該安全執行環境的配置;以及在鎖定該保護讀取儲存器及該安全記憶體位置和該安全執行環境的配置之後,載入該作業系統至記憶體。
  10. 如申請專利範圍第9項所述之媒體,其中該媒體包括至少一解密金鑰及當被執行時致使該計算裝置進行下列步驟:使用該解密金鑰解密該次要數據;以及複製經解密的該次要數據至該安全記憶體位置。
  11. 如申請專利範圍第10項所述之媒體,其中經解密 的該次要數據係至少一加密金鑰。
  12. 如申請專利範圍第9項所述之媒體,其中該數據包括至少一解密金鑰,及該等指令當被執行時致使該計算裝置進行下列步驟:使用該解密金鑰解密該次要數據;以及從該正常的系統記憶體複製經解密的該次要數據至該安全記憶體位置之前,複製經解密的該次要數據至一正常的系統記憶體位置,該系統記憶體位置在一作業系統控制下之該計算裝置操作的期間係可存取的。
  13. 如申請專利範圍第12項所述之媒體,其中經解密的該次要數據係至少一統一可延伸韌體介面(UEFI)系統管理模式(SMM)驅動器、一結合SMM/驅動器執行環境(DXE)驅動器及一韌體卷。
  14. 如申請專利範圍第9項所述之媒體,其中該數據係至少一UEFI SMM驅動器、一結合SMM/DXE驅動器及一韌體卷,及該等指令當被執行時致使該計算裝置進行下列步驟:複製該數據至該正常的系統記憶體位置;以及複製從該正常的系統記憶體位置之數據至該安全記憶體位置。
  15. 如申請專利範圍第9項所述之方法,其中該安全執行環境係SMM及該安全記憶體位置係系統管理隨機存取記憶體(SMRAM)。
  16. 如申請專利範圍第9項所述之方法,其中該安全 執行環境係ARM所開發之信任區域(TrustZone)及該安全記憶體位置係TrustZone安全記憶體。
  17. 一種組配以使用保護讀取儲存器以儲存用於韌體之數據的計算裝置,該計算裝置包含:一處理器;具有用於該計算裝置之一作業系統的暫時性記憶體,以及具有韌體之非暫時性儲存器,該韌體組配以進行下列步驟;在該計算裝置的一重置之後,於一啟動序列期間讀取來自保護讀取儲存器的數據,該保護讀取儲存器僅在一時間期間為非暫時性及可讀取,該時間期間係在該計算裝置之重置和該保護讀取儲存器的一隨後鎖定之間,以防止在該保護讀取儲存器中之數據的任何進一步讀取,直到提供該保護讀取儲存器之一記憶體裝置的一隨後重置被執行;複製該數據或與該數據有關的次要數據至一安全記憶體位置,該安全記憶體位置係由該計算裝置所執行之一安全執行環境所使用;鎖定該保護讀取儲存器;鎖定該安全記憶體位置和該安全執行環境的配置;以及在鎖定該保護讀取儲存器及該安全記憶體位置和該安全執行環境的配置之後,載入該作業系統至記憶體。
  18. 如申請專利範圍第17項所述之計算裝置,其中該非暫時性儲存器係系統快閃唯讀記憶體(ROM)。
  19. 如申請專利範圍第17項所述之計算裝置,期中該處理器係一ARM處理器,該安全執行環境係TrustZone且該安全記憶體位置係TrustZone安全記憶體。
  20. 如申請專利範圍第17項所述之計算裝置,其中該數據及次要數據係一密碼金鑰。
  21. 如申請專利範圍第17項所述之計算裝置,其中該數據或該次要數據係至少一統一可延伸韌體介面(UEFI)系統管理模式(SMM)驅動器、一結合SMM/驅動器執行環境(DXE)驅動器及一韌體卷。
TW103142204A 2013-12-04 2014-12-04 使用保護讀取儲存器安全地儲存韌體數據之系統及方法 TW201535145A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201361911655P 2013-12-04 2013-12-04

Publications (1)

Publication Number Publication Date
TW201535145A true TW201535145A (zh) 2015-09-16

Family

ID=53265393

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103142204A TW201535145A (zh) 2013-12-04 2014-12-04 使用保護讀取儲存器安全地儲存韌體數據之系統及方法

Country Status (2)

Country Link
US (1) US9535712B2 (zh)
TW (1) TW201535145A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI734379B (zh) * 2019-03-08 2021-07-21 美商萬國商業機器公司 用於使用初始程式載入機制啟動安全客體之電腦實施方法、電腦系統及電腦程式產品

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201502782A (zh) * 2013-05-07 2015-01-16 Insyde Software Corp 非依電性記憶體中之作業系統啟動加載器之快取技術
US20150193620A1 (en) * 2014-01-07 2015-07-09 Dell Products, Lp System and Method for Managing UEFI Secure Boot Certificates
US9594927B2 (en) * 2014-09-10 2017-03-14 Intel Corporation Providing a trusted execution environment using a processor
US10146942B2 (en) * 2015-02-24 2018-12-04 Dell Products, Lp Method to protect BIOS NVRAM from malicious code injection by encrypting NVRAM variables and system therefor
US9674162B1 (en) 2015-03-13 2017-06-06 Amazon Technologies, Inc. Updating encrypted cryptographic key pair
US9893885B1 (en) 2015-03-13 2018-02-13 Amazon Technologies, Inc. Updating cryptographic key pair
US10198274B2 (en) * 2015-03-27 2019-02-05 Intel Corporation Technologies for improved hybrid sleep power management
US10003467B1 (en) 2015-03-30 2018-06-19 Amazon Technologies, Inc. Controlling digital certificate use
US9479340B1 (en) 2015-03-30 2016-10-25 Amazon Technologies, Inc. Controlling use of encryption keys
KR102385552B1 (ko) * 2015-12-29 2022-04-12 삼성전자주식회사 시스템-온-칩 및 이를 포함하는 전자 장치
US10419401B2 (en) 2016-01-08 2019-09-17 Capital One Services, Llc Methods and systems for securing data in the public cloud
US10858390B2 (en) * 2016-09-02 2020-12-08 Cem Corporation Use of excess carbodiimide for peptide synthesis at elevated temperatures
US10374885B2 (en) 2016-12-13 2019-08-06 Amazon Technologies, Inc. Reconfigurable server including a reconfigurable adapter device
US10691803B2 (en) * 2016-12-13 2020-06-23 Amazon Technologies, Inc. Secure execution environment on a server
US10180800B2 (en) * 2017-03-02 2019-01-15 Intel Corporation Automated secure data and firmware migration between removable storage devices that supports boot partitions and replay protected memory blocks
US11507668B2 (en) 2017-09-19 2022-11-22 Hewlett-Packard Development Company, L.P. Cryptographic key security
CN111295644B (zh) * 2017-10-30 2024-06-21 惠普发展公司,有限责任合伙企业 保障硬件初始化
KR102411920B1 (ko) * 2017-11-08 2022-06-22 삼성전자주식회사 전자 장치 및 그 제어 방법
US10979232B2 (en) * 2018-05-31 2021-04-13 Motorola Solutions, Inc. Method for provisioning device certificates for electronic processors in untrusted environments
US10860744B2 (en) * 2018-11-20 2020-12-08 Silicon Laboratories, Inc. System and method for ensuring integrity and confidentiality of data programmed in an insecure manufacturing environment
US11102014B2 (en) * 2019-01-30 2021-08-24 THALES DIS CPL CANADA, Inc. Method for handling data in a secure container
JP7300866B2 (ja) * 2019-03-28 2023-06-30 オムロン株式会社 制御システム
EP3915031B1 (en) * 2019-04-30 2023-09-27 Hewlett-Packard Development Company, L.P. System management memory coherency detection
TWI788594B (zh) * 2019-10-07 2023-01-01 系微股份有限公司 安全執行可延伸韌體應用程式的方法及計算機設備
KR20220140716A (ko) * 2020-02-24 2022-10-18 인텔 코포레이션 런타임에서의 외부 메모리 훈련 구현
US11520596B2 (en) * 2020-02-26 2022-12-06 Microsoft Technology Licensing, Llc Selective boot sequence controller for resilient storage memory
SG10202003630VA (en) * 2020-04-21 2021-09-29 Grabtaxi Holdings Pte Ltd Authentication and validation procedure for improved security in communications systems
KR20220107733A (ko) 2021-01-26 2022-08-02 에스케이하이닉스 주식회사 보호모드를 지원하는 비휘발성 메모리 장치 및 그를 포함하는 메모리 시스템

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7089339B2 (en) * 2001-03-16 2006-08-08 National Semiconductor Corporation Sharing of functions between an embedded controller and a host processor
US7974416B2 (en) * 2002-11-27 2011-07-05 Intel Corporation Providing a secure execution mode in a pre-boot environment
US7512813B2 (en) * 2004-05-28 2009-03-31 International Business Machines Corporation Method for system level protection of field programmable logic devices
US20070226795A1 (en) * 2006-02-09 2007-09-27 Texas Instruments Incorporated Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture
US20070226478A1 (en) * 2006-03-23 2007-09-27 John Rudelic Secure boot from secure non-volatile memory
US8510569B2 (en) * 2009-12-16 2013-08-13 Intel Corporation Providing integrity verification and attestation in a hidden execution environment
US8473717B2 (en) * 2010-02-03 2013-06-25 Arm Limited Coprocessor reset controller with queue for storing configuration information of subsequent sessions prior to completion of current session
US8417962B2 (en) * 2010-06-11 2013-04-09 Microsoft Corporation Device booting with an initial protection component
US9658858B2 (en) * 2013-10-16 2017-05-23 Xilinx, Inc. Multi-threaded low-level startup for system boot efficiency

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI734379B (zh) * 2019-03-08 2021-07-21 美商萬國商業機器公司 用於使用初始程式載入機制啟動安全客體之電腦實施方法、電腦系統及電腦程式產品

Also Published As

Publication number Publication date
US20150154031A1 (en) 2015-06-04
US9535712B2 (en) 2017-01-03

Similar Documents

Publication Publication Date Title
US9535712B2 (en) System and method to store data securely for firmware using read-protected storage
US8838950B2 (en) Security architecture for system on chip
US8190917B2 (en) System and method for securely saving and restoring a context of a secure program loader
US9658969B2 (en) System and method for general purpose encryption of data
CN109918919B (zh) 认证变量的管理
JP6137499B2 (ja) 方法および装置
US7945789B2 (en) System and method for securely restoring a program context from a shared memory
US8095802B2 (en) System and method for securely saving a program context to a shared memory
US20070180271A1 (en) Apparatus and method for providing key security in a secure processor
US8312296B2 (en) System and method for recovering from an interrupted encryption and decryption operation performed on a volume
JP2006507548A (ja) 認証コード方法及び装置
EP3646223A1 (en) Remote attestation for multi-core processor
BRPI0801772B1 (pt) Método implementado por computador, sistema de tratamento de informação e meio de armazenamento legível por computador
TW201500960A (zh) 在配有適用統一可延伸韌體介面(uefi)之韌體之計算裝置中的安全性變數變化檢測技術
US20030061494A1 (en) Method and system for protecting data on a pc platform using bulk non-volatile storage
Raj et al. ftpm: A firmware-based tpm 2.0 implementation
US8108905B2 (en) System and method for an isolated process to control address translation
US11815944B2 (en) System and method for securing firmware function calls using session-based encryption
Ruan Boot with integrity, or don’t boot
US20020169976A1 (en) Enabling optional system features
CN111373404B (zh) 密码密钥安全
Muramoto et al. Improving Hardware Security on Talos II Architecture Through Boot Image Encryption