TWI363964B - System and method for reducing memory requirements and providing secure updates for firmware - Google Patents
System and method for reducing memory requirements and providing secure updates for firmware Download PDFInfo
- Publication number
- TWI363964B TWI363964B TW095103787A TW95103787A TWI363964B TW I363964 B TWI363964 B TW I363964B TW 095103787 A TW095103787 A TW 095103787A TW 95103787 A TW95103787 A TW 95103787A TW I363964 B TWI363964 B TW I363964B
- Authority
- TW
- Taiwan
- Prior art keywords
- rom
- virtual
- image
- module
- firmware
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/66—Updates of program code stored in read-only memory [ROM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1408—Protection against unauthorised use of memory or access to memory by using cryptography
-
- 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]
-
- 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/575—Secure boot
Description
1363964 (1) . 九、發明說明 . 【發明所屬之技術領域】 本發明的例示實施例一般涉及在PC上執行POST的 * 韌體,包括BI0 S韌體,更具體地涉及減小韌體的記憶體 * 需求、安全地儲存韌體和以安全方式更新韌體。 相關申請 I 本發明主張於 2005年 2月2日申請的、標題爲 “System and Method for reducing Merory Requirements of Fimware and Providing Secure Updates and Storage Areas • for Fimware”的美國臨時申請案的權益和優先權,美國申 ' 請號爲 60/649486 。 【先前技術】 近年來,對PC預啓動所可利用的大量韌體代碼的需 φ 求增大。韌體是已經寫入到唯讀記憶體(ROM )模組上的 軟體,該模組包括但不侷限於 k〇M、PROM、EPROM、 EEP ROM和快閃記億體。對韌體需求增力口的一個原因是在 啓動PC和準備載入作業系統(OS )時需要藉由韌體( BIOS或構架)(這裡使用的術語「構架」指Intel公司的 (在Santa Clara,California) 「用於EFI的平台創新構 架構架」,並在下面將進一步討論)進行操作的複雜度增 加。需求增加的另一原因是在操作系統載入前創造在預啓 動(pre-boot )環境中執行額外附加價値特徵的產業中存 (2) 1363964
V • 在相當大的利益。 - 不幸的是,存在許多與使用韌體的傳統方法相關的問 題。由於產業上存在強大的刺激要保持PC的硬體成本降 • 低的事實,在ROM或快閃記億體部件上可利用儲存的增 ' 加已不能完全滿足對預啓動可利用的更大量韌體代碼增加 的需求。另外,增加韌體代碼的需求也需要與其它軟體環 境通信的安全機構,包括在網際網路(Internet)上的伺 φ 服器,和在作業系統已經載入後執行的代碼。並且,雖然 存在用於保護內容預啓動的解決方法,但是這些現有的解 決方法依賴於在本地硬碟驅動器上可用的指定分割區,或 依賴於能夠儲存和隱藏密鑰(key )的單獨的安全性晶片 。對於以安全方式更新在快閃記憶體部分上儲存的韌體的 任務,也引起了廣泛的關注。由於不能順利完成更新會導 致電腦變得不能工作,所以更新儲存在快閃記億體部分上 的韌體的現有方法包括對電腦的未來可操作性的風險。允 φ 許這樣的更新也會產生小的安全性危機,在於快閃記憶體 韌體經常會完全存取電腦的內部。 【發明內容】
本發明的例示實施例提供了一種用於使更多數量韌體 對於電腦預啓動可用的機構。爲了增加預啓動可用的韌體 數量,在建立程序中作出了以下設計決定:韌體的哪些段 需要設置.在ROM部>、以及韌體的哪個或哪些段可以位 於其它地方。遠離ROM而儲存的韌體段稱爲「虛擬ROM 『1363964 w - · (3) '模組J 。每個虛擬模組被指定一個產生的唯一識別符,對 - 於每個使用演算法如MDS或SHA-1的每個模組創建「訊 息摘要」。訊息摘要代表虛擬模組,以使得如果虛擬模組 * 改變時,訊息摘要也改變。在ROM影像的軟體建立中, * 爲每個虛擬R〇Μ模組建立的訊息摘要-唯一識別符對被用 於虛擬模組的邏輯指標。另外,在非揮發性儲存中把捜索 路徑變數設置到ROM影像中。該搜索路徑提供了 一個或 φ 多個尋找虛擬ROM模組的位置,並可以及時地在後面的 時點更新。 在製造程序期間把實際ROM影像(.包含到虛擬模組 的邏輯指標)設置到PC上的ROM或快閃記憶體部分。當 實際ROM影像要執行虛擬ROM模組時,它擷取與虛擬 ROM模組相關的唯一識別符,並與唯一識別符一起使用搜 索路徑變數以找出虛擬ROM模組的備份。它可以從本地 硬碟、從CD ROM或任何其他儲存媒體以載入模組,以及 φ 經由網路下載它。一旦它已經載入了模組,它在模組上執 行相同的訊息摘要演算法,並確認在執行前該模組沒有改 變。 本發明的例示實施例也使得韌體以安全方式更新。在 實際ROM中使用兩個附加屬性以指稱虛擬ROM模組。這 兩個附加屬性是版本屬性和對能驗證更新的單獨模組的參 考。這個單獨模組可以或不可以集成到實際ROM中-其可 以是用於其它虛擬ROM模組的唯一識別符。該更新程序 更新與第一虛擬ROM模組相關的訊息摘要和與第一虛擬 -6- r/1363964 w · * (4) • ROM模組相關的版本屬性。當雜亂數據(hashed ) (「雜 - 亂數據j在這種情況下意思是指在檔案上執行訊息摘要演 算法的其中一個)「匹配j新訊息摘要時,該更新程序會 ' 以與上述程序相對應的方式產生相對應的新拷貝(其可以 • 位於本地硬碟)。 在下載更新模組後,確認模組檢驗進行更新是可接受 的。藉由多個已知的用於確認行經網際網路之內容的機構 φ 的其中一個如公共私密密鑰對,以加密或解密使用SHA- 1 演算法製作的訊息摘要的內容。多個更新驗證模組藉由不 同的韌體供應商而可以使用每個參考的韌體,每一個該供 應商可以採用不同的確認方法。即使在不同的韌體供應商 使用相同的韌體機制的情況下,每個供應商可以使用它們 自己的用於標記內容的公共·私密密鑰對。 本發明的例示實施例也提供用於個人電腦之安全儲存 的建立和存取。爲了使儲存安全,ROM的區域或快閃記憶 φ 體部分藉由隨後的預啓動不執行的代碼而被做成唯讀或完 全不可讀取。本發明使得ROM或快閃記憶體部分的區域 唯讀(稱作「寫入除能」)和完全不可讀取(指「讀取除 能」)。爲了偵測儲存器上的竄改需要寫入除能,而爲了 能夠加密私密儲存,需要「讀取除能」。 建立和存取安全儲存區域的程序在實際ROM中儲存 「虛擬ROM」模組參考或指標,該實際ROM包括用於擷 取模組的唯一識別符,實際ROM包含用於整個機器的唯 一識別符。在擷取虛擬ROM模組中,同時使用模組識別 1363964 • * (5) • 符和機器識別符。一旦擷取到,使用儲存在虛擬ROM模 . 組參考中的訊息摘要確認模組。如果需要,在這個之後, 使用儲存在實際ROM別處的私密密鑰來解密虛擬ROM模 • 組。 • 利用預啓動碼在儲存器中更新到虛擬ROM模組(其 實質上是安全儲存單元)。當及時完成這些更新時,虛擬 ROM模組被寫回到其擷取的位置》寫出涉及顛倒上述步驟 φ ,藉由必要時先使用私密密鑰以加密模組,產生用於虛擬 影像模組的新訊息摘要,和使用模組識別符和機器識別符 將新模組寫回到其儲存位置。同樣,在實際ROM中的虛 擬ROM模組參考必須更新以反映新的訊息摘要値。隨後 ,在實際ROM中的虛擬ROM模組參考和PC用的機器識 別符是寫入除能的。另外,如果該儲存被加密,和使用私 密密鑰,包含私密密鑰的實際ROM區是讀取除能的。 在本發明的一個形態,用於減小在電子裝置中儲存韌 φ 體的儲存要求的方法包括分割韌體影像以建立多個虛擬 ROM模組的步驟。多個虛擬ROM模組儲存在位於電子裝 置上的ROM影像之外的至少一個位置處。該方法在設置 在ROM影像中的韌體建立中另外包括用於每個多個虛擬 ROM模組的參考。每個參考包括訊息摘要和用於相關虛擬 ROM模組的訊息摘要和唯一識別符。該方法也在與多個虛 擬ROM模組中所選擇的一個相關的參考中在預啓動期間 利用唯一識別符擷取多個虛擬ROM模組所選擇的一個。 該方法在預啓動期間使用在與多個虛擬ROM模組中選擇 '1363964 • « v (6) • 的一個相關的參考中進一步確認從多個虛擬ROM模 . 選擇的一個。 在本發明的另一形態,用於減小儲存在電子裝置 ' 體的儲存要求的系統包括在建立程序中建立的多個虛 • 體影像模組。該多個虛擬ROM模組儲存在位於電子 上的韌體ROM影像外部的至.少一個位置上。該系統 括韌體ROM影像。該韌體ROM影像包括用於多個 φ ROM模組每個的參考,其每個參考包括用於相關 ROM模組的訊息摘要和唯一識別符。該唯一識別符用 預啓動期間擷取參考的影像模組,該訊息摘要用於在 擷取的影像模組之前確認影像模組真實性。 在本發明的一個形態,用於減小儲存在電子裝置 體的記憶體需求的方法包括分割韌體影像以建立虛擬 模組的步驟,該虛擬ROM模組儲存在位於電子裝置 ROM影像外部的位置。該方法也包括在建立設置在 φ 影像的韌體中用於虛擬ROM模組的參考。該參考包 於虛擬ROM模組的訊息摘要和唯一識別符。另外, 法在預啓動期間在與虛擬ROM模組相關的參考中使 一識別符擷取虛擬ROM模組。在預啓動期間使用在 擬ROM模組相關的參考中的訊息摘要確認虛擬ROM 的真實性。 【實施方式】 本發明的例示實施例增加了對於電腦預啓動可用 組中 中韌 擬韌 裝置 也包 虛擬 虛擬 於在 執行 中韌 ROM 上的 ROM 括用 該方 用唯 與虛 模組 的韌 -9- (7) (7)
1363964 體數量,提供了對於韌體的安全更 立和存取安全儲存區域的方法。爲 依次分別討論本發明的每個形態。 示實施例涉及到了用於EFI (「構 平台創新構架。轉換成非構架解铁 本領域的技術人員來說是顯而易貝 集中在PC上,其它包括儲存在势 先程式化韌體影像的非PC電腦裝 範圍內。 在詳細討論本發明之前,有助 明使用的構架組件。用於EFI ( 「 創新構架是BIO S的功能和性能的 在Intel X86電腦的16位元實際榜 32位或64位元儲存模式中執行, 平台體系結構。同樣,BIOS主要 入,其中構架幾乎完全以C程式語 構架提供EFI (「可擴展韌體 F i r m w a r e I n t e r f a c e )的執行,其是 行摘要擷取的界面規範,該韌體從 軟體系統提供動力。EFI定義成完 以使用EFI的執行可以建立在現有 從暫存(scratch )區域建立,如構 表示界面的呼叫者或客戶對基礎運 呼叫者唯一的存取是藉由界面本身 [新機制,和提供用於建 ;了更清楚的解釋,下面 這裡描述的本發明的例 架j )的API的英特爾 t方案頂部的實施例對於 ,的。另外,雖然該討論 〖揮發性儲存部分上的預 €置也認爲落入本發明的 於討論BIOS和由本發 構架」)的英特爾平台 完全再執行。BIOS通常 €式上執行,構架能夠在 且不會被限制到特定的 幾乎完全以組合代碼寫 §寫入。 界面」,The Extensibl e 完全從韌體的細節和執 載入和執行作業系統的 全不「透明」的界面, 的BIOS的頂部上以及 架。「不透明」在這裡 行的內部是不可見的。 -10-
• I 1363964 v (8) * efi引入了標準設置的機制,即預啓動組件用於由構 . 架使用的彼此界面中,並且與本發明的不同實施例有關。 在組件之間的相互作用定義成「協定J ,其是每個都透明 ' 的c語言API。協定由「驅動程式」執行,驅動程式是能 - 夠分開地載入記億體其並執行的單獨組件。每個協定都具 有C語言程式碼「名稱J和其自身唯一識別符(其被執行 成 「GUID」或全球唯一識另IJ符,Globally Unique φ Identifier),該識別符用於在執行時間將其與其它協定區 分開。當驅動程式載入到記憶體中時,它描述成FEI環境 由它支援的一組協定。EFI環境保持這些協定在內記憶體 資料庫中的軌跡,使其它預啓動代碼搜索這些協定和存取 它們,並由此在不知道特定驅動程式中協定的基礎執行的 情況下,在已經「輸出」這些協定的驅動程式中找到並執 行代碼。 這個組件之間相互作用的非透明風格應當與那些熟悉 φ COM或CORB A的人類似。特別地,在COM中也使用了 唯一識別符(GUID)來「尋找」組件的界面。如同COM 和C ORB A —樣,EFI被設計成「可擴展的」。可以定義 新的協定,並且可以建立新的現有協定的執行。在另兩種 情況下,這些擴展以均勻方式適應於基礎環境。 驅動程式的槪念對於那些熟悉現今作業系統的人是熟 悉的,其中許多不同類型的硬體需要以統一的方式由軟體 支持。在這作業系統驅動程式環境中,對於不同類別的硬 體裝置定義了通用的API’s。這些通用的API’s隱藏了基 -11 - (9) (9)1363964 礎硬體區別的細節,而執行相同API的不同驅動程式是造 成處理硬體變數的原因。 除了在用於由EFI限定的預啓動組件之間的相互作用 的標準機制,本發明例示實施例支持僅在構架中限定的某 些擴展。該構架引入「訪體卷」(Firmware Vo丨ume)的 槪念,其是爲直接儲存在ROM部分中具體限定的平面檔 案系統。該韌體卷定義了與這個檔案系統相互作用的一組 協定。在該構架中 > 所有儲存在ROM影像中的檔案儲存 在韌體卷中。韌體卷由此在建立構架的程序期間產生。 在構架韌體卷說明書中定義的擴展協定之一是^ GUIDed Section Extraction Protocol」。這個協定以這樣 的方式定義,即供應商能夠利用新定義的「段j (其是檔 案的部分)擴展韌體卷,這些段的表示是完全不透明的。 擴展發生的方法是用於在韌體卷中檔案的段頭部包含 GUID,其由韌體卷代碼使用以定位執行「GUIDed Section Extraction Protocol」的驅動程式。這個驅動程式藉由協 定來求助用,並且隨著檔案從韌體卷中擷取並放置在記億 體中,傳輸不透明表現。可能傳輸的例子包括不透明表現 的加密或在不透明表現(opaqe representation)的數位簽 名》 雖然這裡包含的許多例子參考構架環境,但應當理解 本發明也可以利用更通用的BIOS組件藉由進行對構架描 述的調整實施,該調整對於本領域的技術人員來說是顯而 易見的。 -12-
1363964 • * > (10) 本發明的例示實施例在建立程序以安全識別沒窄 在ROM中的韌體模組期間使用了嵌入到ROM影像中 一識別符和訊息摘要的組合。其它傳統解決方法提供 要對隱藏或安全的硬碟分割增加在預啓動中可存取的 的安全方法,但這些其它解決方法不需韌體在建立 影像的時候存在。SHA-1或其它同等訊息摘要演算法 用使得很難建立產生相同訊息摘要的不同模組。由於 摘要嵌入在ROM影像中,改變訊息摘要本身需要 ROM部分。一旦訊息摘要已經嵌入到ROM影像中後 ,在多個現有方法識別或防止ROM影像改變,如使得 記憶體部分區域唯讀的TPM硬體和標記,這在本發 範圍之外但是對於本領域的技術人員來說是熟知的。 訊息摘要嵌入到R 〇 Μ影像中,如果R 〇 Μ影像是安全 且不能被改寫的,那麼虛擬ROM模組實際上也是安 並且不能被秘密地改變。遞迴方法也是可能的,在於 ROM模組本身能包含對其它儲存在別處的虛擬ROM 的「虛擬ROM指標」。本發明的安全對於所有虛擬 模組是可傳遞的,.因此對於安全預啓動環境韌體數量 少的限制,只要所有的韌體能在建立程序中可用即可 對每個虛擬ROM模組使用唯一識別符也爲虛擬 模組提供了單獨的位置。每個虛擬ROM模組可以儲 多個位置中一在硬碟上,在CD-ROM上,在局部區域 上’或在網際網路上。因爲訊息摘要演算法提供了確 組的安全方法,既不是在位置本身上、也不是從儲存 儲存 的唯 了主 韌體 ROM 的使 訊息 更新 ,存 快閃 明的 因爲 的並 全的 虛擬 模組 ROM 有很 〇 ROM 存在 網路 認模 位置 -13- (11) 1363964 -的一個傳輸到P C上記憶體的機制,需要被保護。 • 爲電腦預啓動提供附加韌體的第一步驟是應該被包括
在實際ROM影像和應該從實際ROM影像中省去的設計決 • 定。從實際ROM影像中省去的訊息封包成一個或多個分 - 開可存取的虛擬ROM模組。爲了效能原因,用以啓動PC 的必要軟體沿著其最通用的路徑經常留在實際ROM中。 然而,其它軟體不經常使用,如設定UI,其它語言的支 φ 持,不常用的啓動選項,擷取或重新更新韌體,以及許多 可能的預啓動應用和用途,可以設置在虛擬ROM模組中 實際R Ο ivl的外部。 虛擬ROM模組可以是構架「韌體卷」,其是組成包 括許多檔案的平面檔案系統的單個封包。這些被包括檔案 的每一個可以是構架中所支持的任何一種檔案。構架韌體 卷的優點是存在支持存取嵌入檔案的構架韌體(驅動程式 )。然而,虛擬ROM模組可以是任何一種檔案,包括數 φ 據和執行代碼。如上所述,設計決定可以產生虛擬ROM 模組的多個巢狀層。換句話說,一些虛擬ROM模組可以 包含對其它虛擬ROM模組的虛擬ROM指標。 對於每個這樣的虛擬ROM模組,產生了包括SHA-1 訊息摘要、和128位元GU ID (全球唯一識別符)虛擬 ROM指標的虛擬ROM指標。該訊息摘要和GUID可以使 用任何已知演算法產生。產生的GUID廣泛地用於構架中 ’但也同樣用於計算的其它方面。GUID和SHA-1訊息摘 要產生了具有極低能被拷貝的槪率的値。圖1描述了在 -14- (12) 1363964 • VROM模組和產生的訊息摘要和GU1D之間的相應關係。 . 對於第一VROM模組2,包括GUID 4和訊息摘要6的第 —VROM邏輯指標20與第一VROM模組相關且在第一 * VROM模組的基礎上分別產生。對於第二YROM模組12 - ,分別產生了包括GUID 14和訊息摘要16的分開的唯一 VROM邏輯指標22。 在用於虛擬ROM模組的GUID和訊息摘要產生後, φ 實際ROM影像從標準ROM代碼和虛擬ROM指標中建立 。在圖2中描述了該建立程序。對於第一VROM模組2的 第一VROM邏輯指標20包括產生的GUID 4和與第一 VROM模組相關的訊息摘要6。對第二VROM模組12的 第二VROM邏輯指標包括產生的GUID 14和與VROM模 組相關的訊息摘要16。第一 VROM邏輯指標20和第二 VROM邏輯指標22和通常的ROM代碼24 —起用於建立 ROM影像30。加入到ROM影像30的其它ROM代碼24 φ 是設計者覺得最適合於位於實際直接存取的ROM部分上 的ROM代碼》 從ROM影像30儲存和擷取虛擬ROM指標20和22 的規範依賴於特定實施例。在一個實施例中在構架的基礎 上,另一韌體卷(其在ROM影像中)包含多個類型的「 檔案」。這些檔案的每一個構建有多個段,其中每個段指 檔案的一些特殊屬性。由於在韌體卷中每個這樣的檔案都 是由GUID唯一識別的,這個GUID可以是與用於擷取虛 擬ROM模組相同的識別符,以及該虛擬ROM模組變成在 (13) 1363964 • 構架卷中的一個「檔案」。另一這樣的段可以使用「 • Guided Section Extraction Protocol」協定執行。這樣的段 包括GUID以識別需要進行擷取的驅動程式,以及SHA-1 訊息摘要以確認內容(該GUID已經包括在用於檔案的識 別符中)。另外,其它表示也可以在構架中構建並作爲現 有BIOS的一部分,只要表現出GUID和SHA-1訊息摘要 〇 圖3示出了如何將實際ROM影像放入ROM中,以及 示出了如何在別處分配虛擬ROM模組。包括第一 VROM 指標20、第二VROM指標22和其它ROM代碼24的ROM 影像30設置到ROM部件40如快閃記憶體。第一 VROM 指標所指的實際第一 VROM模組2可位於與ROM部件40 相同的電子裝置上的硬碟驅動器42中。第二VROM指標 所指的第二VROM模組12可以儲存在可藉由網際網路44 或其它類型網路存取的位置46上。對於本領域的技術人 員可以理解VROM模組儲存位置的其它分布可能落入在本 發明的範圍內。應當注意該分布不必要都是同時發生。雖 然實際ROM影像對於PC是必需要提出的,但虛擬ROM 模組僅僅以一些其它方式在某一點及時地可用。也不需要 用於虛擬ROM模組的單個分布機制。每個這樣的虛擬 ROM模組可以以多種不同方式分布。 分布機制的一個例子可以適用於更新電腦中的硬碟驅 動器。在韌體建立期間,將驅動器內容從一個硬碟驅動器 拷貝到另一硬碟驅動器的韌體首先可用。然而它沒有構成 -16- (14) 1363964 • 實際ROM的一部分,但是對它的一個虛擬ROM指標儲存 - 在實際ROM影像中。在硬碟更新的時候,其可能是許多 年以後,相應的虛擬ROM模組在必須使用CD-ROM以進 ' 行更新上是可用的。由於檔案先前已經「包括」在建立程 • 序中,所以它們能夠被相信且從CD-ROM中執行。可選擇 地,拷貝軟體的硬碟可以從網際網路上下載,和以同樣的 方式確認。在建立用於PC的硬碟影像期間另一分布機制 φ 可以是合適的。該硬碟影像可以包括虛擬ROM模組能被 拷貝的非安全的硬碟分割。 ‘ 圖4是接著本發明例示實施例在建立ROM影像步驟 期間使用虛擬ROM模組的步驟順序的流程圖。建立步驟 50起始於關於是否存在許多虛擬ROM模組(步驟51)的 決定。如果存在虛擬ROM模組,則產生GUID並指定給 虛擬ROM模組(步驟52 )。然後產生用於虛擬ROM模 組的訊息摘要,如SHA-1訊息摘要(步驟54 )。然後從 φ GUID-訊息摘要對構造虛擬ROM邏輯指標(步驟56)。 重複該步驟直到達到了沒有更多虛擬ROM模組的決定( 步驟51 )。然後組裝ROM影像,其包括虛擬ROM邏輯 指標和通常的ROM代碼(步驟(58),以及建立程序結 束(步驟60)。 一旦已經分布了虛擬ROM模組,它們可以在PC的記 億體或其它ROM部分40所位於的電子裝置中被擷取。圖 5描述了擷取程序的視圖。ROM影像3 0載入到PC記憶體 7〇中。在ROM影像30中的V ROM邏輯指標20和22指 -17- (15) (15)1363964 出儲存在硬碟驅動器42和儲存位置46中的第一和第二 VROM模組2和12。如下所述,該第一和第二VROΜ模 組2和12然後被擷取和載入到記憶體70中。可能存在多 個擷取特定VROM模組的原因,包括執行一些其它知道載 入特定虛擬ROM模組的韌體,或與一些界面相互作用的 使用者想要一些不存在實際ROM中的韌體被執行。 在基於構架的實施例中,其中虛擬ROM指標作爲韌 體卷中的一個段儲存,擷取V ROM模組的決定藉由段作爲 「載入到記憶體」的決定執行,該「檔案」藉由段來參考 。在這個實施例中,支持「Guided SeQtion Extraction Protocol」的如前所述的構架驅動程式執行圖6中的流程 圖的方法。應當理解雖然該描述指的是試圖擷取虚擬ROM 模組作爲「擷取驅動程式」的韌體,該韌體不可以以非構 架實施例作爲驅動程式而執行。 擷取驅動程式能夠使用儲存在非揮發性儲存中的變數 ,該非揮發性儲存描述了用於驅動對「在哪兒找」的一個 捜索路徑。通常在作業系統中使用搜索路徑以提供能在記 憶體中找到、載入和執行的用於可執行的機制。本發明使 用的搜索路徑是類似的,雖然存在多個能夠支持此等搜索 的執行方法。在構架實施例中,變數作爲可被用戶或一些 其它軟體在任何時候更新的EFI NVRAM變數儲存在ROM 部分中。· 擷取驅動程式藉由捜索路徑元件依次重複。該搜索路 徑表示搜索虛擬ROM模組的「較佳順序」。對在搜索路 -18· (16) 1363964 ' 徑中的每一個這種元件,該驅動程式企圖使用此元件以擷 • 取虛擬ROM模組。每個元件可以作爲「URI模板」編碼 ,其中,作爲在網路瀏覽器和網際網路中廣泛使用的通用 • 資源識別符(或通用資源定位器)不完全地指定相應檔案 • 的位置。這個不完全的指定可以簡單地是一個能夠利用與 虛擬ROM模組相關的GU ID變數塡充的變數。一旦塡充 了,這樣的「完全」URI可以指在本地硬碟分割上的一些 φ 目錄檔案,能夠使用超文本傳輸協定(HTTP )或一些其 它習知的協定在網際網路上擷取的檔案。同樣,在構架中 •,用於在URI (識別「file」「Http」;r ftp」等)中的 每個「方案」的擷取機制本身可以被處理成理解特定協定 的不同構架驅動程式。 具有任何特定元件的擷取不能找到相應的虛擬ROM 模組,在這種情況下企圖擷取在搜索路徑中的下個元件。 如果擷取步驟成功,虛擬ROM模組被載入記憶體。在這 • 種情況下,對虛擬ROM模組的訊息摘要藉由執行與在構 建程序期間使用的演算法相同的訊息摘要演算法被確認。 如果對虛擬ROM模組的訊息摘要匹配,則虛擬R〇M模組 是可用的。然而’如果對訊息摘要不匹配,則對搜索路徑 的下一個元件進行擷取。 在訊息摘要的確認後,作出虛擬ROM模組是否可以 「更近地j儲存在實際ROM的決定。「更近」.的定義可 以是設定在一邊用於高速存取虛擬ROM模組的本地硬碟 驅動器上的標.準化位置。如果這樣的位置存在,並且在搜 -19-
• I 1363964 (17) • 索路徑中比虛擬ROM模組已經被擷取的位置更早,然後 • 在它被存取前,虛擬ROM模組可以從記億體寫入到這個 位置。 ' 圖6是在本發明例示實施例後擷取虛擬ROM模組步 - 驟順序的流程圖。該擷取步驟80從確定是否在搜索路徑 中存在更多元件(步驟81)開始。如果在搜索路徑中存在 附加元件(步驟8 1 ),下一個位置從搜索路徑中選出(步 φ 驟 82 )。然後使用用於虛擬 ROM模組(步驟 84 )的 GU ID試圖到記億體中擷取虛擬ROM模組。如果擷取成功 ,產生用於虛擬ROM模組(步驟86 )的SHA-1訊息摘要 並與儲存虛擬ROM模組比較(步驟8 8 )。如果訊息摘要 匹配(步驟8 9 ),則作出虛擬ROM模組是否可以被高速 存取得更近(如上所述)的決定(步驟91)。如果虛擬 ROM模組可以被高速存取得更近(步驟91),它在搜索 路徑中就會被高速存取得更近(步驟92)。虛擬ROM模 Φ 組然後載入到其可以被存取的記億體中並且擷取步驟結束 (步驟96 ) » 本發明的例示實施例也可以用於提供用於安全地對韌 體提供更新的機制。修改上述的產生唯一識別符和訊息摘 要的步驟以包括產生兩個新的屬性-版本數目和用於更新 驗證程序的唯一識別符。例如,在構架實施例中,構架卷 「檔案」可以包含版本數目的段-具有可選擇地供應文本 串的單調增長的數値。同樣,構架「Guided Section Extraction Protocol」包含參考支持段搵取的驅動程式例 -20- (18) 1363964 • 示的GU1D。換包話說,可使用對下載和確認虛擬ROM模 - 組的內容負責的分離驅動程式。該驅動程式可以調用一巢 狀組的驅動程式。 ' 圖7示出了需要爲每個虛擬ROM模組封包的附加屬 • 性。VROM模組用作產生 VROM指標110。VROM指標 1 1 〇包括GUID 1 12和SHA-1訊息摘要1 14。另外,VROM 指標110也包括版本數目116和唯一地識別更新驗證程序 φ 的更新驗證識別符1 1 8。圖8示出了用於模組的相應虛擬 ROM指標1 10是怎樣與「更新驗證」代碼120 —起封包到 實際ROM影像.140中的,以及實際ROM 130的其它部分 。應當注意到「更新驗證」模組1 20並不需要儲存在實際 ROM 140中,它可以作爲附加虛擬ROM模組儲存。同樣 ,作爲在Guided section Extraction協定驅動程式上的變 L數可以在構架中執行更新驗證代碼(然而,在構架執行中 Guided Section Extraction協定驅動程式的至少一組必須 φ 儲存在實際ROM) - 在一個實施例中,PGP類的方法是作爲驗證之用。( PGP或「相當好的秘密」,Pretty Good Privacy,是一組 用於數位簽名和/或加密電子郵件訊息的演算法,對於本 領域技術人員來說是熟知的)。這個程序在圖9中示出。 在韌體建立時’對於具體的「更新驗證」模組,藉由私密 密鑰產生程序1 50產生公共私密數位密鑰對。用於這個的 演算法可以是任何標準演算法不對稱密鑰演算法如RSA。 密鑰1 52的公共部分利用更新驗證模組丨6〇儲存,私密密 -21 - (19) 1363964 • 鑰154藉由韌體廠商儲存在其自己的單獨位置17〇中。τ • 面討論用於更新驗證的附加選擇的安全機制。 圖10的流程圖描述了使用在產生用於~個或乡 ' 擬ROM模組中更新的私密密鑰的使用。爲了利用本發明 • 例示實施例產生更新,在更新準備好的時候200, 用其私密密鑰以產生更新「模組密鑰j 。廠商代碼在新模 組(新模組可以包括版本數目)上執行演算法如SHA-1 ( φ 步驟202 ),然後使用公共密鑰的私密部分以加密所得的 訊息摘要(步驟204 )。成功產生導致由私密密鏡簽名力α 密的更新模組密鏡206。本領域的技術人員可以知道類似 的加密機制以在其它執行中使用。 —旦建立,更新可以擷取、驗證和然後「指派」到虛 擬ROM模組中。擷取步驟需要版本檢查。具體虛擬r0M 模組的在先前版本可以是已經被下載並在「本地超高速緩 衝記億體」中可用。使用許多熟知機制中的一種以確定何 φ 時以及如何檢查更新的版本。該機制留給更新驗證的執行 。例如,更新驗證可以在周期基礎上進行更新版本的驗證 。另外地,特定位置對於更新可擷取,並通常進行檢查。 這些更新可以藉由作業系統執行的代碼提供。在沒有更新 版本存在的情況下,進行上述在圖6中描述的程序。不考 慮檢查更新的機制,如果檢測到了新版本,則它必須被驗 證。·這個驗證程序從根本上不同於上述用於原始虛擬ROM 模組的驗程序,因爲更新的虛擬ROM模組在建立虛擬 ROM的初期是不可用的。 -22- (20) 1363964 • 在本發明的_個實施例中,與更新相關的「模組密鑰 .」如圖11和12中所述的那樣被驗證。使用公共私密密鑰 的公共部分解密「模組密鑰j ,並利用更新驗證儲存。然 ‘一 後模組本身被雜亂(hashed ),並爲了平等而比較這兩個 • 結果。 圖11提供了這個步驟的一個可能執行的槪念,其中 在已經被載入到PC記憶體200中的ROM影像21 0中的虛 φ 擬ROM指標220邏輯地指向更新的虛擬ROM模組。該更 新的VROM模組200可以儲存在可以藉由網際網路25 5得 到的廠商位置260中。更新VROM模組25 0被下載到PC 記憶體200中並使用公共密鑰235藉由更新驗證器230驗 證,然後儲存在本地硬碟驅動器270上。如前所述,這個 虛擬ROM指標的「指派」需要虛擬ROM模組本身能夠在 這個程序期間更新。出於安全理由,更新程序也需要.未授 權用戶不能在該程序中更新虛擬ROM指標。同樣,如上 φ 所述,如果原始虛擬ROM建立程序是安全的,且用於防 止後來未授權客戶更新ROM —些機制存在,那麼這個更 新程序是非常安全的,因爲爲了進行更新僅僅執行授權代 碼。一旦驗證程序成功後,更新驗證器230更新儲存在實 際ROM影像210中的虛擬ROM指標220以使得其與新模 組版本250 —致,然後可選擇地將更新模組高速存取( cache)在本地硬碟270上。該更新包括改變利用虛擬 ROM指標220儲存的版本數目和SHA-1訊息摘要。 在圖12的流程圖進一步示出了該更新程序。該更新 -23- (21) 1363964 • 擷取程序280從確定未捜索更新位置是否存在開始(步驟 .281 )。如果存在未搜索程序(步驟281 ),則選擇從捜索 路徑的下一個位置(步驟282 )和使用更新模組GU1D到 ' 記憶體中擷取更加新的模組(步驟284 )。如果新版本存 - 在(步驟2 8 5 ),使用上述參考圖1 0的模組密鑰確認程序 驗證模組(步驟2 8 8 )»如果VROM模組的新版本不存在 ,隨後是標準擷取處理(步驟286 )。在更加新的模組存 φ 在的情況下,進行驗證(步驟289 )。在驗證成功的情況 下,如上所述作出新模組是否被高速存取得「更近」進一 步確認(步驟29 1 )。如果新模組能夠被高速存取得更近 ,它在搜索路徑中被高速存取得更近(步驟292 )。不考 慮高速存取,驗證程序更新VROM指標以反映更新的模組 (步驟294 ),然後存取在記憶體中更新的模組(步驟 296 ),在該點處擷取程序結束298。 在圖13中槪括了本發明的例示實施例之後用於驗證 # 與更新模組相關的模組密鑰的步驟順序。模組密鑰驗證程 序300從在新模組產生SHA-1訊息摘要開始(步驟3 02 ) 。本領域技術人員會知道在不脫離本發明範圍的情況下, 不同的實施可以使用於這裡討論的加密和解密程序的不同 訊息摘要演算法。然後使用公共私密密鑰的公用部分解密 該模組密鑰(步驟3 04 )。比較這兩個訊息摘要以確認它 們是否相等(步驟305 )。如果比較顯示是相等的訊息摘 要,則驗證就成功了 3 06。如果比較沒有顯示相同的訊息 摘要,則驗證就是失敗的3 08。 -24 - (22) 1363964 * 如上所示,可選擇的驗證技術也可以用作更新程序的 .一部分。只要ROM的一部分能夠從未授權的讀取中隱藏 ,對稱私密密鑰可以用作更新驗證。下面將討論這樣作的 * 該技術。對於這個技術,在建立程序中產生公共密鑰,藉 - 由ROM和廠商以加密形式儲存。可以使用相同的對稱密 鑰加密或解密更新的「密鑰」。可選擇地,可以利用可信 任的伺服器使用TLS或SSL建立用於通信的安全通道以 φ 下載更新。該驗證是與可信任客戶之間產生通信爲基礎, 而不是以利用更新本身傳輸的訊息摘要爲基礎。 本發明的例示實施例也可以用作建立和存取用於韌體 的安全儲存。藉由保持秘密鑰隱藏在用於加密或簽名的 ROM影像內部來建立沒有位於ROM影像中部分安全儲存 。可以以與上述的任何虛擬ROM模組被參考和存取的相 同方式參考和存取安全儲存器,但如果儲存區域是在除了 本地硬碟的其它地方時需要附加唯一機器識別符。 • 在構架環境中,單個韌體卷可以用作保護、加密用於 所有希.望使用該儲存的韌體代碼的儲存器。韌體卷的使用 意味著儲存是從非ROM位置作爲單個單元讀取,且作爲 單個單元寫回非ROM位置。其它使用多個韌體卷的方法 也立即變得清楚了。這些附加韌體卷可以藉由實際ROM 參考,或藉由第一韌體卷如上所述以遞迴方式參考。同樣 ’每個這樣的韌體卷可以具有一個旗標以識別它是否被加 密或簡單地寫入除能。 本發明的例示實施例可以在建立程序期間保留儲存。 -25- (23) 1363964 * 在虛擬ROM的建立程序期間,特殊橹案被標記成需要加 • 密的儲存。這些檔案的每一個擔任用作一些最終韌體代碼 的特定部份使用的加密儲存區域的占位符(placeholder ) ' 。該建立程序將所有的這些占位符結合到韌體卷中,使用
- SHA-1演算法產生用於韌體卷的訊息摘要,並在用於ROM 部分的主韌體卷中儲存這個韌體卷的參考(或虛擬ROM 指標)。如前所述,這個虛擬ROM指標包含用於參考的 φ (加密儲存)韌體卷的唯一識別符,和指示被存取以擷取 韌體卷的驅動程式之GUID。另外,它包含兩個標記,一 個示出其應當在執行的時候被加密,第二個示出它還沒有 被加密。 用於實際ROM的建立程序也保留用於兩個附加變數 的空間:機器識別符,和加密密鑰。用於機器識別符的空 間設置在標記爲在預啓動期間寫入除能的韌體卷中,而用 於加密密鑰的空間放置在表示爲在預啓動期間讀取除能的 φ 韌體卷中(該讀取和寫入除能在下面將詳細描述)》隨後 ,預啓動代碼可以決定擷取第一次包含加密儲存的韌體卷 。在考慮虛擬ROM指標時,預啓動代碼決定被參考的檔 案被標記要加密,但是還沒有被加密。在這種情況下,預 啓動代碼擷取使用上述相同方法的檔案的第一版本。由於 還沒有使用儲存’在建立時間期間所建立的相應韌體卷的 通用例子對於所有的執行預啓動代碼的例子都是可用的。 如上所述該韌體卷被載入到記憶體中並以與其它韌體卷相 同的方式對於預啓動代碼是可存取的。然而,由於後者需 -26- (24) 1363964 * 要被更新,提供存取這個韌體卷的驅動程式也保持「髒( • dirty )」旗標的軌道(指出其應當別寫回不變的儲存媒體 )以及虛擬ROM指標的位置。在這個韌體中的文件的任 ' 何更新會導致髒旗標的設定。 • 圖14示出了一旦安全儲存區域(即實施安全儲存區 域的韌體卷)第一次被讀取時,記憶體3 20是如何被破壞 的,且已經產生了機器ID和加密密鑰。記憶體區域3 20 φ 包括ROM影像3 3 0和安全儲存區域340。該ROM影像包 括可更新區域3 32和被更新(寫保護的)保護的區域3 34 。從更新保護的區域3 34安裝有安全儲存VROM指標335 和用於唯一機器ID的儲存336。該安全儲存VROM指標 包括用於VROM模組的GU ID、訊息摘要3 3 7和加密旗標 333。該ROM影像也具有讀取保護的(讀保護的)包括用 於加密密鑰3 39的儲存的區域3 3 8 » 及時在某些點(雖然對每個韌體卷的寫入並不是必要 φ 的),藉由預啓動代碼把修改後的韌體卷寫入到一些儲存 媒體中作出決定《寫入決定藉由在前面的段中描述的髒旗 標來驅動。預啓動代碼檢測機器識別符並且沒有產生加密 密鑰。它產生機器識別符和加密密鑰並且把它們存在實際 ROM中它們各自的儲存位置。可以使用任何用於產生唯一 値的適當機制以產生這些識別符。一個解決方法是對兩者 都使用GUID。 在產生識別符之後,本發明的例示實施例然後在虛擬 ROM指標中檢測,韌體卷應當被加密,但還沒有被加密。 -27- (25) 1363-964 * 其使用加密密鑰加密韌體卷並且在結果上產生SHA-1訊息 • 摘要。爲了本發明的目的,可以使用任何適當的加密演算 法,包括 Blowfish,DES/3DES,IDEA 等。 _ 在這個結果上加密韌體卷和產生訊息摘要後,然後預 • 啓動代碼必須確定在何處寫入加.密的韌體卷。用於加密韌 體卷的一個位置是如圖15中所示在本地硬碟驅動器350 上的一個目錄。然而,加密韌體卷3 40可以選擇地被儲存 | 在本地網路伺服器上、在網頁或在其它可存取的位置。使 用機器識別碼3 3 6和識別韌體卷檔案的GUI D 331的組合 -' 以把檔案寫入唯一位置。此時在這一點處,預啓動代碼更 新在實際ROM中的虛擬ROM指標335,表明韌體卷340 已經被加密了,並反映了新產生的訊息摘要3 3 7。 在圖16的流程圖中描述了寫入安全儲存的程序。寫 入:安全儲存4G0的程序從確定髒旗標是否設定(步驟401 )開始,該旗標表示韌體當被寫回到固定媒體。如果髒旗 φ 標沒有設定,該程序結束420。如果設置了髒旗標,作出 加密旗標333是否設定在V ROM指標335中的決定(步驟 / 403 )。如果加密旗標設定(步驟403 ) 了,使用加密密鑰 來加密安全儲存區域(步驟408 )。如果加密旗標沒有設 定(步驟403),機器ID產生並儲存(步驟4 04 ),以及 加密密鎗產生和儲存(步驟406 )。然後使用加密密鑰以 加密安全儲存(步驟4 0 8 ) » 在安全儲存加密(步驟408 )之後’在加密的安全儲 存上產生訊息摘要(步驟4 ] 0 )。該加密的儲存然後使用 •28- (26) 1363964 • 機器ID336和儲存GUID 331被寫入到第二儲存器(步驟 -412)。在寫入安全儲存(步驟412)之後,利用新訊息摘 要和加密旗標來更新VROM指標(步驟414),且寫入程 ‘ 序結束420。 • 如圖1 7所述的流程圖所提出的,本發明的例示實施 例支持擷取加密韌體卷的預啓動代碼。讀取安全儲存程序 440從確定加密旗標是否設定在VROM指標中(步驟441 B )的預啓動代碼開始。如果預啓動代碼從已經被加密的韌 體340 (步驟441)的虛擬ROM指標335中的旗標檢測出 ,則利用機器識別符3 3 6和GUID 33 1的組合擷取和讀取 韌體(步驟444) 。如果加密旗標沒有設定在VROM指標 中,則預啓動代碼使用儲存GUID從其它位置讀取未加密 的安全儲存初始値(步驟442 )。一旦已經讀取了韌體卷 (步驟442或步驟444 ),在安全儲存上產生訊息摘要( 步驟446 )。已產生的訊息摘要與在VROM指標中的訊息 φ 摘要比較和驗證(步驟447 )»如果存在不匹配,則安全 儲存讀取失敗(步驟448) »如果驗證成功,預啓動代碼 然後解密韌體卷(步驟450),並使得它在記憶體3 20中 可用並且讀取程序結束460。如上所述,保持髒旗標以決 定是否對韌體卷3 40作出了修改。該修改後的韌體卷以與 初始寫入相同的方式被第二次或連續重複地寫入儲存,除 了加密密鑰和機器識別符不需要被重新建立。 在預啓動程序中的某個特定點處,本發明的例示實施 例鎖定了實際ROM的多個部分以防止進一步的改變或存 -29- (27) (27)1363964 取。這個的實際機制取決於硬體。這個描述集中在鎖定發 生時的特定點。這個點可以是與修改後的韌體卷藉由被寫 入儲存器被清除(flush out )相同或之後。 —個對於讀取除能之儲存器的EFI相容點是在「出口 啓動服務j期間,其是及時的一個點,其中〇.S.(作業系 統)載入器通知將要繼續載入作業系統的EFI環境。而這 是非常易於執行的(驅動程式可以在出口啓動服務期間被 通知)’這裡的危險在於O.S.載入代碼的信任級β如果 O.S.載入代碼作爲功體建_1£程序的一部分如其它虛擬ROM 模組一樣是可用的,那麼這個解決方法是非常安全的。在 另一方面,如果O.S.載入代碼可以以其它方式存取,如使 用傳統啓動協定,然後讀取除能實際ROM儲存的及時最 佳點是僅僅在考慮啓動選項之前。在構架技術中這被稱作 在「DXE」(驅動程式執彳了環境,Driver Execution Environment )和「BDS」(啓動裝置選擇,Bοot De vi ce Selection)之間的轉變》 本發明的例示實施例也使得數據產生預啓動,並以安 全方式對其它環境可行。兩個檔案在韌體影像的建立程序 期間保存在兩個單獨的安全儲存韌體卷中。第一檔案保存 爲公共私密密鑰的公用部分,並被保存在寫入除能的安全 儲存韌體卷中。第二檔案保存爲公共私密密鑰的私密部分 ,並被保存在讀取除能的安全儲存韌體卷中〃 在預啓動時,產生用於特殊平台的唯一公共私密密鑰 ,並儲存在各自安全的儲存韌體卷中。用於這個的演算法 -30- (28) 1363964 • 可以是任何標準演算法對稱密鑰演算法如RS A。隨後’藉 • 由在內容上執行訊息摘要演算法,並藉由公共私密密鑰的 私密部分加密該內容,預啓動韌體把爲了傳輸的內容標記 ' 爲其它環境。內容和所得加密的訊息摘要都可以被儲存在 • 任何儲存位置》當另一環境接收預啓動內容時,公共私密 密鑰的公用部分被儲存在寫入除能的儲存器中,但可以被 讀取。使用這個公共部分以伴隨內容加密訊息摘要,然後 P 把這個結果與重新應用到內容的相同訊息摘要演算法的輸 出結果進行核對。這個程序確保該內容沒有被修改。由於 公共私密密鑰的私密部分對於其它環境不是可存取的,它 實際上是不可能以公共私密密鑰的公共部分能用作解密和 驗證內容的方式產生或簽名其它內容的。 當然在不脫離本發明的範圍的情況下,可以作一定的 改變,在上述說明書或附圖中示出所包含的內容僅作爲解 釋’並不是拘泥於字面。本領域的技術人員將會清楚在附 # 圖中描述的步驟順序和結構在不脫離本發明範圍的情況下 可以進行改變,並且這裡包含的說明僅僅是本發明多個可 能描述中的單個的例子。 【圖式簡單說明】 本發明在所附申請專利範圍中指出了其特殊性。結合 附圖參考下述說明書’將會更佳地理解上述本發明的優點 和本發明的進一步優點,其中: 圖】描述了 VROM模組和產生的訊息摘要和GUID之 -31 - (29) (29)1363964 間的關係; 圖2描述了在建立實際ROM影像中VROM邏輯指標 的使用; 圖3描述了分布程序的.視圖,其中實際ROM影像儲 存在ROM部件,和虛擬ROM模組可以儲存在硬碟上或網 際網路上; 圖4是建立程序的流程圖; 圖5描述了擷取程序的視圖,其中使用虛擬ROM「指 標j以擷取在實際ROM部分中沒有保留的虛擬ROM模組 * 圖6是擷取程序的流程圖; 圖7顯示了在建立程序期間對每個VROM模組產生的 附加信息,版本數目和更新有效器的參考: 圖8顯示了更新有效器和儲存在ROM影像中的「修 改」的VROM指標; 圖9顯示了用於更新有效器的公共-私密密鑰的產生 〇 圖1〇顯示了產生「密鑰」的流程圖,該「密鑰」與 使用公共·私密密鑰對的私密部分的模組更新相關; 圖1】顯示了更新VROM模組的擷取和確認; 圖12顯示了用於更新擷取的流程圖,包括用於確認 密鑰的流程圖的參考; 圖I 3顯示了用於密鑰確認的流程圖: 圖14顯示了用於建立韌體的安全儲存區域的部件的 -32- (30) 1363964 '損壞; * ® 15顯示了安全儲存區域到從屬儲存位置(在這種 情況下,硬碟)的加密和保存。 ® 16顯示了用於安全儲存的第一和隨後寫入的流程 • 圖:和 圖17顯示了用於第一和隨後安全儲存讀取的流程圖 〇 【主要元件符號說明】 2 :第一VROM模組(第一虛擬ROM模組)
4 : GUID 6 :訊息摘要 1 2 :第二VROM模組(第二虛擬ROM模組) 14 : GUID 1 6 :訊息摘要 φ 20 :第一VROM邏輯指標(第一虛擬ROM邏輯指標) 22 :第二VROM邏輯指標(第二虛擬ROM邏輯指標) 24:其它ROM代碼 3 0 : R Ο Μ影像 4 0 : R Ο Μ部件 42 :硬碟驅動器 44 :網際網路 46 :儲存位置 70 :記憶體 -33- (31) 1363*964 • 1 1 Ο : VROM指標(虛擬ROM指標)
• 1 〗2 : GUID 1 14 : SHA_]訊息摘要 ' ]16 :版本數目 1 1 8 :更新驗證識別符
120 : 「更新驗證」代碼 122: GUID
• 1 30 :實際 ROM 140 :實際ROM影像 1 5 0 密鑰產生程序 I 5 2 :密鑰 1 5 4 :私密密鑰 160 :更新驗證模組 1 7 0 :單獨位置 200 :記憶體 • 2 ] 0 : R Ο Μ 影像 220 :虛擬ROM指標 23 0 :更新驗證器 2 3 5 :公共密鑰 2 5 0 :更新V R Ο Μ模組 2 5 5 :網際網路 2 6 0 :廠商位置 270 :本地硬碟驅動器 320 :記憶體 -34- (32)1363964 3 3 Ο : R Ο Μ 影像 33 1: GUID 3 3 2 :更新區域 3 3 3 :加密旗標 334 :更新 ROM指標) 335:安全儲存VROM指標(安全儲存虛
3 3 6 :唯一機器ID 3 3 7 :訊息摘要 3 3 8 :區域 3 3 9 :加密密鎗 340:安全儲存區域 3 5 0 :本地硬碟驅動器 -35-
Claims (1)
1363964 附件2 :第095103787號申請專利範圍修正本 民國101年2月10日修正 十、申請專利範圍 1.—種用於減少儲存在電子裝置中的韌體的記億體 需求的方法,包含: 分割韌體影像以建立複數個虛擬ROM模組’該複數 個虛擬ROM模組儲存在位於該電子裝置上的ROM影像外 部的至少一個位置中; 將複數個虛擬ROM·模組的每一個的一個參考包括於 設置在該ROM影像中的韌體建立中,每個參考包括相關 虛擬ROM模組的訊息摘要和唯一識別符; 在預啓動期間,使用在該複數個虛擬ROM模組中所 選擇的一個相關的該參考中的唯一識別符,以擷取該複數 個虛擬ROM模組中所選擇的一個;及 在預啓動期間,使用與該複數個虛擬ROM模組中所 選擇的一個相關的該參考中的訊息摘要,以驗證該複數個 虛擬ROM模組中所選擇的該個。 2. 如申請專利範圍第1項的方法,進一步包含: 把搜索變數設置到該ROM影像中,該搜索變數表示 至少一個從該位置可能擷取到該複數個虛擬ROM模組中 的一個的位置。 3. 如申請專利範圍第2項的方法,進一步包含: 使用設置在該ROM影像中的該搜索變數來擷取該複 數個虛擬ROM模組中的該個。 1363964 4. 如申請專利範圔第1項的方法,其中該ROM影像 儲存在ROM (唯讀記憶體)、PROM (可程式化R〇M)、 EPROM (可抹除 PROM ) 、EEPROM (電氣式可抹除 PROM)和快閃記億體的群組中的其中一個。 5. 如申請專利範圍第1項的方法,進一步包含: 在多於一個位置中,儲存該複數個虛擬ROM模組。 6. 如申請專利範圍第5項的方法,其中該複數個虛 擬ROM模組中的至少一個是儲存在經由網路可存取的位 置上。 7. 如申請專利範圍第1項的方法,其中該複數個虛 擬ROM模組的至少一個是EFI框架韌體卷(v〇lume )。 8. 如申請專利範圍第1項的方法,其中儲存在該 ROM影像中的至少一個韌體檔案是儲存在EFI韌體卷中。 9. 一種用於減少儲存在電子裝置中的韌體的記億體 需求的方法,包含: 分割韌體影像以產生虛擬ROM模組,該虛擬rom模 組儲存在位於該電子裝置上的ROM影像外部的位置中; 將該虛擬ROM模組的一個參考包括於設置在該rom 影像的韌體建立中,該參考包括對該虛擬ROM模組的訊 息摘要和唯一識別符: 在預啓動期間’使用與該虛擬ROM模組相關的該參 考中的該唯一識別符,以擷取該虛擬ROM模組;及 在預啓動期間,使用與該虛擬ROM模組相關的該參 考中的該訊息摘要,以驗證該虛擬ROM模組的真實性 1363964 ίο. —種用於減小儲存在電子裝置中的韌體的記憶體 需求的系統,包含: 在建立程序期間所產生之複數個虛擬韌體影像模組, 複數個虛擬· ROM模組儲存在位於該·電子裝置上的韌體 ROM影像外部的至少一個位置上;及 韌體ROM影像,該韌體ROM影像包括複數個虛擬 ROM模組的每一個的一個參考,每個參考包括用於相關虛 擬ROM模組的訊息摘要和唯一識別符,在預啓動期間該 唯一的識別符用於擷取參考的影像模組,在執行擷取的影 像模組之前使用訊息摘要以驗證影像模組的真實性。 1 1 ·如申請專利範圍第1 0項的系統,其中ROM影像 儲存在ROM (唯讀記憶體)——PROM (可程式化ROM ) ·、 EPROM (可抹除 PROM ) 、EEPROM (電氣式可抹除 PROM )和快閃記憶體的群組中的其中一個。 12. 如申請專利範圍第10項的系統,其中該複數個 虛擬ROM模組的至少一個是EFI框架韌體卷。 13. 如申請專利範圍第10項的系統,其中儲存在該 ROM影像中的至少一個韌體檔案是儲存在EFI韌體卷中。 14. —種保留用於減少在電子裝置中的韌體記憶體需 求的電腦可執行指令的媒體,該指令包含: 分割韌體影像以產生複數個虛擬ROM模組的指令, 該複數個虛擬ROM模組儲存在位於該電'子裝置上的R〇M 影像外部的至少一個位置中; 將該複數個虛擬ROM模組的每一個的一個參考包括 1363964 於設置在該ROM影像中的韌體建立中的指令,每個參考 包括相關虛擬ROM模組的訊息摘要和唯一識別符; 在預啓動期間,使用在與從該複數個虛擬ROM模組 中所選擇的一個相關的參考中的唯一識別符以擷取該複數 個虛擬ROM模組中所選擇的一個的指令;及 在預啓動期間,使用與從該複數個虛擬ROM模組中 所選擇的一個相關的該參考中的訊息摘要以驗證從該複數 個虛擬ROM模組中所選擇的一個的指令。 15. —種安全地更新電子裝置中韌體的方法,包含: 分割韌體影像以產生複數個虛擬ROM模組,該複數 個虛擬ROM模組儲存在位於該電子裝置中的ROM影像外 部的至少一個位置中: 在預啓動期間,提供用於驗證更新的虛擬影像模組的 更新驗證程序,該更新驗證程序藉由唯一識別符所識別並 包括解密程序; 將該複數個虛擬影像模組的每一個的一個參考包括於 設置在該ROM影像中的韌體建立中,每個參考包括版本 識別符、相關的虛擬影像模組的訊息摘要和唯一識別符’ 在該ROM影像中的韌體建立也包括對該更新驗證程序的 參考: 提供包括版本識別符的更新的虛擬影像模組;及 在預啓動期間,使用由該ROM影像中的該參考所識 別的更新驗證程序,以驗證該更新的虛擬影像模組。 16. 如申請專利範圍第15項的方法,進一步包含: -4- 1363964 .利用該更新的虛擬影像模組取代在該ROM影像中已 參考的該複數個虛擬影像模組中的一個。 17.如申請專利範圍第15項的方法,進一步包含: 產生更新的虛擬影像模組的訊息摘要;及 藉由加密程序加密該更新的虛擬影像模組的該訊息摘 要,該加密程序需要包含在該更新驗證程序中的該解密程 序以解密該已加密的訊息摘要。 18·如申請專利範圍第17項的方法,進一步包含: 使用包含在該更新驗證程序中的該解密程序以解密該 已加密的訊息摘要,該解密作爲該更新的虛擬影像模組的 驗證的一部分執行。 19. 如申請專利範圍第18項的方法,進一步包含: 將該已加密的訊息摘要的解密與該更新驗證程序產生 的新訊息摘要比較,以驗證該更新的虛擬影像模組。 20. 如申請專利範圍第15項的方法,進一步包含: 產生該更新虛擬影像模組的訊息摘要; 藉由私密密鑰加密該訊息摘要;及 利用與該私密密鑰相關的公共密鑰解密該已加密的訊 息摘要’該公共密鑰係由該更新驗證程序使用。 21. 如申請專利範圍第15的方法,其中該更新驗證 程序將該複數個虛擬影像模組的一個的版本識別符與該更 新的虛擬影像模..組的版本識別符比較,以識..別該已更新的 虛擬影像模組爲一新模組。 22. 如申請專利範圍第15項的方法,其中該更新驗 -5- 1363964 證程序作爲該ROM影像的一部分被儲存。 23. 如申請專利範圍第15項的方法,其中該更新驗 證程序作爲該複數個虛擬影像模組的一個被儲存。 24. 如申請專利範圍第15項的方法,其中該更新的 虛擬影像模組是EFI構架韌體卷。 25·如申請專利範圍第15項的方法,進一步包含: 產生該更新的虛擬影像模組的訊息摘要; 藉由對稱密鑰加密該訊息摘要;及 利用該對稱密鑰解密該已加密的訊息摘要,該對稱密 鑰被該更新驗證程序使用》 26.—種安全地更新電子裝置中韌體的方法,包含: 分割韌體影像以產生虛擬影像模組,該虛擬影像模組 儲存在位於該電子裝置中的ROM影像外部的至少一個位 置中; 在預啓動期間,提供用於驗證更新虛擬影像模組的更 新驗證程序,該更新驗證程序藉由唯一識別符被識別並包 括解密程序; 將該虛擬影像模組的一個參考包括於設置在該ROM 影像的韌體建立中,該參考包括版本識別符、該相關的虛 擬影像模組的訊息摘要和唯一識別符,在該ROM影像中 的韌體建立也包括對該更新驗證程序的參考: 提供包括版本識別符的更新的虛擬影像模組;及 在預啓動期間,使用由該ROM影像中的參考所識別 的更新驗證程序以驗證該更新的虛擬影像模組。 1363964 27. —種安全地更新電子裝置中韌體的方法,包含: 分割韌體影像以產生複數個虛擬影像模組,該複數個 虛擬影像模組儲存在位於該電子裝置中的ROM影像外部 的至少一個位置中; 在預啓動期間,提供用於驗證更新虛擬影像模組的更 新驗證程序,該更新驗證程序藉由唯一識別符被識別並包 括解密程序; 將該複數個虛擬影像模組的每一個的一個參考包括於 設置在該ROM影像中的韌體建立中,在該ROM影像中的 韌體建立也包括對該更新驗證程序的參考; 在可信任伺服器上提供更新的虛擬影像模組; 使用藉由在該ROM影像中的參考所識別的更新驗證 程序以在該電子裝置和該可信任伺服器之間產生安全通道 :及 使用該通道下載已識別的更新的虛擬影像模組到該電 子裝置中,該下載的虛擬影像取代了在該ROM影像中所 參考的該複數個虛擬影像模組中的一個。 28. —種安全地更新在電子裝置中韌體的系統,包括 在建立程序期間所產生的複數個虛擬韌體影像模組, 該複數個虛擬影像模組係儲存在位於電子裝置中ROM影 像外部的至少一個位置上; 一更新驗證程序,包括在驗證更新的虛擬模組中所使 用的解密程序;及 1363964 一韌體ROM影像,其包括對該更新驗證程序的參考 ,和該複數個虛擬影像模組的每一個的參考,每個參考包 括版本識別符、相關虛擬影像模組的訊息摘要和唯一識別 符,在預啓動期間使用以擷取該經參考的虛擬影像模組的 該唯一識別符,在執行該所擷取影像模組之前使用以驗證 該影像模組的真實性的該訊息摘要。 29.如申請專利範圍第28項的系統,其中該更新的 虛擬影像模組是EFI構架韌體卷。 30_ —種保留用於安全地更新電子裝置中的韌體的電 腦可執行指令的媒體,該指令包含: 用以分割韌體影像以產生複數個虛擬影像模組的指令 ,該複數個虛擬影像模組儲存在位於該電子裝置中的ROM 影像外部的至少一個位置中: 用以提供在預啓動期間用於驗證更新的虛擬影像模組 的更新驗證程序的指令,該更新驗證程序藉由唯一識別符 被識別且包括解密程序: 將該複數個虛擬影像模組的每一個的一個參考包括於 設置在該ROM影像中的韌體建立中的指令,每個參考包 括版本識別符、相關虛擬影像模組的訊息摘要和唯一識別 符,在該ROM影像中的韌體建立也包括對該更新驗證程 序的參考; 用於提供包括版本識別符的更新的虛擬影像模組的指 令:及 用以在預啓動期間,使用由在該ROM影像中的參考 1363964 所識別的該更新驗證程序以驗證該更新的虛擬影像模組的 指令。 -9-
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US64948605P | 2005-02-02 | 2005-02-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200638200A TW200638200A (en) | 2006-11-01 |
TWI363964B true TWI363964B (en) | 2012-05-11 |
Family
ID=36979188
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100145532A TWI444826B (zh) | 2005-02-02 | 2006-02-03 | 用以對電腦裝置中的韌體提供安全儲存的方法、系統及保留有電腦可執行指令的媒體 |
TW095103787A TWI363964B (en) | 2005-02-02 | 2006-02-03 | System and method for reducing memory requirements and providing secure updates for firmware |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100145532A TWI444826B (zh) | 2005-02-02 | 2006-02-03 | 用以對電腦裝置中的韌體提供安全儲存的方法、系統及保留有電腦可執行指令的媒體 |
Country Status (4)
Country | Link |
---|---|
US (6) | US7603562B2 (zh) |
JP (2) | JP5437550B2 (zh) |
CN (1) | CN100576173C (zh) |
TW (2) | TWI444826B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI558185B (zh) * | 2012-10-18 | 2016-11-11 | 美國博通公司 | 媒體處理裝置及其操作方法、可操作為機上盒的設備 |
Families Citing this family (198)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8316361B2 (en) * | 2003-01-09 | 2012-11-20 | Hewlett-Packard Development Company, L.P. | Method of enabling a user to update one or more low-level resources of a computer system in a user-friendly manner |
US9489496B2 (en) * | 2004-11-12 | 2016-11-08 | Apple Inc. | Secure software updates |
US7603562B2 (en) | 2005-02-02 | 2009-10-13 | Insyde Software Corporation | System and method for reducing memory requirements of firmware |
US20070136609A1 (en) * | 2005-12-13 | 2007-06-14 | Rudelic John C | Methods and apparatus for providing a secure channel associated with a flash device |
US7818740B2 (en) * | 2006-05-05 | 2010-10-19 | Microsoft Corporation | Techniques to perform gradual upgrades |
CN101361051B (zh) * | 2006-06-19 | 2011-01-26 | 三星电子株式会社 | 用于具有空中广播能力设备的信息升级系统和方法 |
US7765373B1 (en) * | 2006-06-27 | 2010-07-27 | Siliconsystems, Inc. | System for controlling use of a solid-state storage subsystem |
US8108692B1 (en) | 2006-06-27 | 2012-01-31 | Siliconsystems, Inc. | Solid-state storage subsystem security solution |
US7590835B1 (en) | 2006-06-30 | 2009-09-15 | American Megatrends, Inc. | Dynamically updating a computer system firmware image |
US7797696B1 (en) | 2006-06-30 | 2010-09-14 | American Megatrends, Inc. | Dynamically updating a computer system and firmware image utilizing an option read only memory (OPROM) data structure |
US9395968B1 (en) * | 2006-06-30 | 2016-07-19 | American Megatrends, Inc. | Uniquely identifying and validating computer system firmware |
KR101426710B1 (ko) * | 2006-07-14 | 2014-09-23 | 삼성전자주식회사 | 휴대단말기의 버전정보 갱신 장치 및 방법 |
GB0623933D0 (en) * | 2006-11-29 | 2007-01-10 | Ibm | Apparatus and method for synchronizing controller firmware download |
US9883943B2 (en) | 2006-12-05 | 2018-02-06 | Valtech Cardio, Ltd. | Implantation of repair devices in the heart |
US8239688B2 (en) | 2007-01-07 | 2012-08-07 | Apple Inc. | Securely recovering a computing device |
US8254568B2 (en) | 2007-01-07 | 2012-08-28 | Apple Inc. | Secure booting a computing device |
US8291480B2 (en) * | 2007-01-07 | 2012-10-16 | Apple Inc. | Trusting an unverified code image in a computing device |
JP4903071B2 (ja) * | 2007-03-15 | 2012-03-21 | 株式会社リコー | 情報処理装置、ソフトウェア更新方法及び画像処理装置 |
US8560823B1 (en) * | 2007-04-24 | 2013-10-15 | Marvell International Ltd. | Trusted modular firmware update using digital certificate |
US8448193B2 (en) | 2007-04-27 | 2013-05-21 | Ricoh Company, Ltd. | Image forming device, information processing method, and information processing program |
US7987349B2 (en) | 2007-06-29 | 2011-07-26 | Intel Corporation | Encryption acceleration |
US8516136B2 (en) * | 2007-07-09 | 2013-08-20 | Alcatel Lucent | Web-based over-the-air provisioning and activation of mobile terminals |
CA2637168C (en) | 2007-07-11 | 2015-12-01 | Jeb Stuart Thorley | Method and system for version independent software release management |
US7836309B2 (en) * | 2007-07-20 | 2010-11-16 | Microsoft Corporation | Generic extensible pre-operating system cryptographic infrastructure |
TWI344288B (en) * | 2007-07-23 | 2011-06-21 | Arcadyan Technology Corp | Embedded system with web-based user interface, firmware structure thereof, and method for providing information thereof |
US8230412B2 (en) * | 2007-08-31 | 2012-07-24 | Apple Inc. | Compatible trust in a computing device |
US8429643B2 (en) * | 2007-09-05 | 2013-04-23 | Microsoft Corporation | Secure upgrade of firmware update in constrained memory |
US10997531B2 (en) | 2007-09-11 | 2021-05-04 | Ciambella Ltd. | System, method and graphical user interface for workflow generation, deployment and/or execution |
US8068614B2 (en) * | 2007-09-28 | 2011-11-29 | Intel Corporation | Methods and apparatus for batch bound authentication |
US9069990B2 (en) * | 2007-11-28 | 2015-06-30 | Nvidia Corporation | Secure information storage system and method |
US9158896B2 (en) | 2008-02-11 | 2015-10-13 | Nvidia Corporation | Method and system for generating a secure key |
US9069706B2 (en) * | 2008-02-11 | 2015-06-30 | Nvidia Corporation | Confidential information protection system and method |
US20090204803A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | Handling of secure storage key in always on domain |
US20090204801A1 (en) * | 2008-02-11 | 2009-08-13 | Nvidia Corporation | Mechanism for secure download of code to a locked system |
US8719585B2 (en) * | 2008-02-11 | 2014-05-06 | Nvidia Corporation | Secure update of boot image without knowledge of secure key |
US7865468B2 (en) * | 2008-02-29 | 2011-01-04 | International Business Machines Corporation | Prefetching remote files on local disk space |
CN101247416A (zh) * | 2008-03-25 | 2008-08-20 | 中兴通讯股份有限公司 | 基于ota的固件下载方法、预处理方法、完整性验证方法 |
US8631397B2 (en) * | 2008-03-31 | 2014-01-14 | Microsoft Corporation | Virtualized application image patching |
US8347348B2 (en) * | 2008-03-31 | 2013-01-01 | Lenovo (Singapore) Pte. Ltd. | Apparatus, system, and method for pre-boot policy modification |
US9613215B2 (en) | 2008-04-10 | 2017-04-04 | Nvidia Corporation | Method and system for implementing a secure chain of trust |
US8150039B2 (en) | 2008-04-15 | 2012-04-03 | Apple Inc. | Single security model in booting a computing device |
US8364983B2 (en) | 2008-05-08 | 2013-01-29 | Microsoft Corporation | Corralling virtual machines with encryption keys |
US8555048B2 (en) * | 2008-05-17 | 2013-10-08 | Hewlett-Packard Development Company, L.P. | Computer system for booting a system image by associating incomplete identifiers to complete identifiers via querying storage locations according to priority level where the querying is self adjusting |
US8321654B2 (en) * | 2008-05-20 | 2012-11-27 | Alcatel Lucent | Methods for initial bootstrap during activation and initial configuration of user terminals in network |
US8335931B2 (en) * | 2008-06-20 | 2012-12-18 | Imation Corp. | Interconnectable personal computer architectures that provide secure, portable, and persistent computing environments |
ATE540371T1 (de) * | 2008-06-23 | 2012-01-15 | St Ericsson Sa | Elektronische vorrichtung und verfahren zur software- oder firmwareaktualisierung einer elektronischen vorrichtung |
US20090327750A1 (en) * | 2008-06-29 | 2009-12-31 | Tse-Hong Wu | Security system for code dump protection and method thereof |
US9069965B2 (en) * | 2008-08-26 | 2015-06-30 | Dell Products L.P. | System and method for secure information handling system flash memory access |
US8479015B2 (en) * | 2008-10-17 | 2013-07-02 | Oracle International Corporation | Virtual image management |
US20100131694A1 (en) * | 2008-11-26 | 2010-05-27 | Kelly Scott G | Secure Boot ROM Emulation |
US8756667B2 (en) * | 2008-12-22 | 2014-06-17 | Lenovo (Singapore) Pte. Ltd. | Management of hardware passwords |
US8407700B2 (en) * | 2009-03-03 | 2013-03-26 | Symantec Corporation | Methods and systems for merging virtualization sublayers |
US8176307B2 (en) * | 2009-04-13 | 2012-05-08 | Broadcom Corporation | Method and system for post-build modification of firmware binaries to support different hardware configurations |
US20100278445A1 (en) * | 2009-04-30 | 2010-11-04 | Timothy Kindberg | Generating data using a data encoding symbol |
US9968452B2 (en) | 2009-05-04 | 2018-05-15 | Valtech Cardio, Ltd. | Annuloplasty ring delivery cathethers |
US8321656B2 (en) * | 2009-06-13 | 2012-11-27 | Phoenix Technologies Ltd. | Timer use in extensible firmware interface compliant systems |
US8356184B1 (en) | 2009-06-25 | 2013-01-15 | Western Digital Technologies, Inc. | Data storage device comprising a secure processor for maintaining plaintext access to an LBA table |
US10177934B1 (en) | 2009-09-04 | 2019-01-08 | Amazon Technologies, Inc. | Firmware updates inaccessible to guests |
US9565207B1 (en) | 2009-09-04 | 2017-02-07 | Amazon Technologies, Inc. | Firmware updates from an external channel |
US8887144B1 (en) | 2009-09-04 | 2014-11-11 | Amazon Technologies, Inc. | Firmware updates during limited time period |
US8214653B1 (en) * | 2009-09-04 | 2012-07-03 | Amazon Technologies, Inc. | Secured firmware updates |
US8601170B1 (en) | 2009-09-08 | 2013-12-03 | Amazon Technologies, Inc. | Managing firmware update attempts |
US8102881B1 (en) | 2009-09-08 | 2012-01-24 | Amazon Technologies, Inc. | Streamlined guest networking in a virtualized environment |
US8971538B1 (en) | 2009-09-08 | 2015-03-03 | Amazon Technologies, Inc. | Firmware validation from an external channel |
US8640220B1 (en) | 2009-09-09 | 2014-01-28 | Amazon Technologies, Inc. | Co-operative secure packet management |
US8959611B1 (en) | 2009-09-09 | 2015-02-17 | Amazon Technologies, Inc. | Secure packet management for bare metal access |
US8300641B1 (en) | 2009-09-09 | 2012-10-30 | Amazon Technologies, Inc. | Leveraging physical network interface functionality for packet processing |
US8381264B1 (en) | 2009-09-10 | 2013-02-19 | Amazon Technologies, Inc. | Managing hardware reboot and reset in shared environments |
US9292277B2 (en) | 2009-12-18 | 2016-03-22 | Hewlett-Packard Development Company, L.P. | Methods and devices for updating firmware of a component using a firmware update application |
JP5564956B2 (ja) * | 2010-01-15 | 2014-08-06 | 富士通株式会社 | 情報処理装置及び情報処理装置のファームウェア更新方法 |
US8825920B2 (en) * | 2010-01-20 | 2014-09-02 | Spansion Llc | Field upgradable firmware for electronic devices |
EP2550621A4 (en) | 2010-03-25 | 2015-09-16 | Virtustream Canada Holdings Inc | SYSTEM AND METHOD FOR SAFE CLOUD COMPUTING |
KR20110108071A (ko) * | 2010-03-26 | 2011-10-05 | 삼성전자주식회사 | 펌웨어 다운로드 시스템 |
US9465601B2 (en) | 2010-04-20 | 2016-10-11 | International Business Machines Corporation | Pluggable activation engine extensions via virtual disks |
US9721101B2 (en) * | 2013-06-24 | 2017-08-01 | Red Hat, Inc. | System wide root of trust chaining via signed applications |
US8700895B1 (en) * | 2010-06-30 | 2014-04-15 | Google Inc. | System and method for operating a computing device in a secure mode |
US9118666B2 (en) | 2010-06-30 | 2015-08-25 | Google Inc. | Computing device integrity verification |
US8522322B2 (en) * | 2010-09-22 | 2013-08-27 | Intel Corporation | Platform firmware armoring technology |
CN102591669B (zh) * | 2011-01-06 | 2015-01-28 | 南京百敖软件有限公司 | 模块化计算机固件及其实现方法 |
KR101524096B1 (ko) | 2011-06-07 | 2015-06-01 | 엘에스아이 코포레이션 | 호스트가 볼 때 디바이스 펌웨어 업데이트 효과들의 관리 |
US8706955B2 (en) * | 2011-07-01 | 2014-04-22 | Apple Inc. | Booting a memory device from a host |
US8943564B2 (en) * | 2011-07-21 | 2015-01-27 | International Business Machines Corporation | Virtual computer and service |
US8924737B2 (en) | 2011-08-25 | 2014-12-30 | Microsoft Corporation | Digital signing authority dependent platform secret |
WO2013032426A1 (en) * | 2011-08-26 | 2013-03-07 | Hewlett-Packard Development Company, L.P. | Managing access to a network |
CN103164351B (zh) * | 2011-12-16 | 2016-04-27 | 宏碁股份有限公司 | 数据存取方法 |
US9305142B1 (en) | 2011-12-19 | 2016-04-05 | Western Digital Technologies, Inc. | Buffer memory protection unit |
US9037779B2 (en) * | 2011-12-19 | 2015-05-19 | Sandisk Technologies Inc. | Systems and methods for performing variable flash wear leveling |
US9489924B2 (en) | 2012-04-19 | 2016-11-08 | Nvidia Corporation | Boot display device detection and selection techniques in multi-GPU devices |
EP2660721A1 (en) * | 2012-05-03 | 2013-11-06 | Gemalto SA | Method of loading an application in a secure device |
US9235404B2 (en) | 2012-06-27 | 2016-01-12 | Microsoft Technology Licensing, Llc | Firmware update system |
US8972973B2 (en) * | 2012-06-27 | 2015-03-03 | Microsoft Technology Licensing, Llc | Firmware update discovery and distribution |
US9110761B2 (en) | 2012-06-27 | 2015-08-18 | Microsoft Technology Licensing, Llc | Resource data structures for firmware updates |
US8898654B2 (en) * | 2012-08-29 | 2014-11-25 | Microsoft Corporation | Secure firmware updates |
US9390278B2 (en) | 2012-09-14 | 2016-07-12 | Freescale Semiconductor, Inc. | Systems and methods for code protection in non-volatile memory systems |
US9519786B1 (en) * | 2012-10-05 | 2016-12-13 | Google Inc. | Firmware integrity ensurance and update |
US9128798B2 (en) * | 2012-10-17 | 2015-09-08 | Movimento Group | Module updating device |
GB2507497B (en) | 2012-10-30 | 2015-01-14 | Barclays Bank Plc | Device and method for secure memory access |
GB2507596B (en) | 2012-10-30 | 2014-09-17 | Barclays Bank Plc | Secure computing device and method |
US9015694B2 (en) | 2012-10-31 | 2015-04-21 | Aruba Networks, Inc | Cloud-based firmware distribution service |
WO2014076452A1 (en) * | 2012-11-19 | 2014-05-22 | Barclays Bank Plc | Secure computing device and method |
CN103279700A (zh) * | 2013-06-08 | 2013-09-04 | 北京时代奥视数码技术有限公司 | 液晶监视器的固件版本验证方法和液晶监视器 |
SG11201510304TA (en) | 2013-06-18 | 2016-01-28 | Ciambella Ltd | Method and apparatus for code virtualization and remote process call generation |
US9032423B2 (en) | 2013-06-21 | 2015-05-12 | Microsoft Technology Licensing, Llc | Dependency based configuration package activation |
EP3019956A4 (en) * | 2013-07-12 | 2017-03-15 | Ciambella Ltd. | Method and apparatus for firmware virtualization |
TWI493463B (zh) * | 2013-10-30 | 2015-07-21 | Insyde Software Corp | Electronic device, universal extension firmware interface Basic input and output system firmware update method, recording media and computer program products |
WO2015065417A1 (en) | 2013-10-31 | 2015-05-07 | Intel Corporation | Selective power management for pre-boot firmware updates |
JP6053950B2 (ja) * | 2013-11-06 | 2016-12-27 | 三菱電機株式会社 | ソフトウェア更新装置及びソフトウェア更新プログラム |
US10055588B2 (en) | 2013-11-13 | 2018-08-21 | Via Technologies, Inc. | Event-based apparatus and method for securing BIOS in a trusted computing system during execution |
US10049217B2 (en) | 2013-11-13 | 2018-08-14 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
US9798880B2 (en) | 2013-11-13 | 2017-10-24 | Via Technologies, Inc. | Fuse-enabled secure bios mechanism with override feature |
US9779242B2 (en) | 2013-11-13 | 2017-10-03 | Via Technologies, Inc. | Programmable secure bios mechanism in a trusted computing system |
US9507942B2 (en) | 2013-11-13 | 2016-11-29 | Via Technologies, Inc. | Secure BIOS mechanism in a trusted computing system |
US9779243B2 (en) | 2013-11-13 | 2017-10-03 | Via Technologies, Inc. | Fuse-enabled secure BIOS mechanism in a trusted computing system |
US9767288B2 (en) | 2013-11-13 | 2017-09-19 | Via Technologies, Inc. | JTAG-based secure BIOS mechanism in a trusted computing system |
US9547767B2 (en) | 2013-11-13 | 2017-01-17 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
US9367689B2 (en) * | 2013-11-13 | 2016-06-14 | Via Technologies, Inc. | Apparatus and method for securing BIOS in a trusted computing system |
US10095868B2 (en) | 2013-11-13 | 2018-10-09 | Via Technologies, Inc. | Event-based apparatus and method for securing bios in a trusted computing system during execution |
FR3013863B1 (fr) * | 2013-11-25 | 2017-02-24 | Maxim Integrated Products | Systemes et procedes de mise en oeuvre de microcontroleurs securises |
CN105793816A (zh) * | 2013-12-27 | 2016-07-20 | 英特尔公司 | 硅初始化的受控定制 |
US9842210B2 (en) * | 2014-01-16 | 2017-12-12 | Raytheon Company | Universal extensible firmware interface module identification and analysis |
JP2015170036A (ja) * | 2014-03-05 | 2015-09-28 | 株式会社東芝 | Icカード、icカードの制御方法、及び処理装置 |
WO2015172352A1 (en) | 2014-05-15 | 2015-11-19 | Seagate Technology Llc | Storage device tampering detection |
EP3172687B1 (en) * | 2014-07-22 | 2018-12-19 | Hewlett-Packard Development Company, L.P. | Authorizing a bios policy change for storage |
US10657262B1 (en) * | 2014-09-28 | 2020-05-19 | Red Balloon Security, Inc. | Method and apparatus for securing embedded device firmware |
EP3007094B1 (en) * | 2014-10-08 | 2021-05-05 | Nintendo Co., Ltd. | Boot program, information processing apparatus, information processing system, information processing method, semiconductor apparatus, and program |
US9489542B2 (en) | 2014-11-12 | 2016-11-08 | Seagate Technology Llc | Split-key arrangement in a multi-device storage enclosure |
TW201619866A (zh) * | 2014-11-20 | 2016-06-01 | 萬國商業機器公司 | 客製化資訊設備的方法 |
TWI507893B (zh) * | 2014-12-09 | 2015-11-11 | Inventec Corp | 儲存擴充裝置自動識別系統及儲存擴充裝置自動識別配置方法 |
US10154023B1 (en) * | 2014-12-18 | 2018-12-11 | EMC IP Holding Company LLC | Method and system for secure instantiation of an operation system within the cloud |
US10101987B2 (en) * | 2015-03-11 | 2018-10-16 | Echelon Corporation | Method and system of processing an image upgrade |
CN104731674B (zh) * | 2015-02-02 | 2020-09-01 | 北京忆恒创源科技有限公司 | 使用mlc nvm存储电子系统固件的方法与设备 |
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 |
US20160256269A1 (en) | 2015-03-05 | 2016-09-08 | Mitralign, Inc. | Devices for treating paravalvular leakage and methods use thereof |
US10013387B2 (en) | 2015-06-11 | 2018-07-03 | Cisco Technology, Inc. | Method or apparatus for flexible firmware image management in microserver |
US20160378686A1 (en) * | 2015-06-24 | 2016-12-29 | Intel Corporation | Memory encryption exclusion method and apparatus |
US9965270B2 (en) * | 2015-07-01 | 2018-05-08 | Quanta Computer Inc. | Updating computer firmware |
US10467015B2 (en) * | 2015-09-08 | 2019-11-05 | Dell Products, Lp | Method for out of band device configuration deployment and system therefor |
WO2017048291A1 (en) * | 2015-09-18 | 2017-03-23 | Hewlett Packard Enterprise Development Lp | Firmware update packages |
SG11201805215UA (en) | 2015-12-21 | 2018-07-30 | Ciambella Ltd | Method and apparatus for creating and managing controller based remote solutions |
EP3397207A4 (en) | 2015-12-30 | 2019-09-11 | Mitralign, Inc. | SYSTEM AND METHOD FOR REDUCING TRISCUPIDAL FLUTE REGULATION |
US20180081666A1 (en) * | 2016-03-11 | 2018-03-22 | Oleksii Surdu | Reliable and Secure Firmware Update for Internet of Things (IoT) Devices |
FR3050555B1 (fr) * | 2016-04-21 | 2019-09-27 | Thales | Procede de traitement d'un fichier de mise a jour d'un equipement avionique d'un aeronef, produit programme d'ordinateur, dispositif electronique de traitement et systeme de traitement associes |
US10097563B2 (en) | 2016-05-04 | 2018-10-09 | Gbs Laboratories, Llc | Reliable and secure firmware update with a dynamic validation for internet of things (IoT) devices |
US10503931B2 (en) * | 2016-05-09 | 2019-12-10 | Arris Enterprises Llc | Method and apparatus for dynamic executable verification |
US11087249B2 (en) | 2016-05-24 | 2021-08-10 | Ciambella Ltd. | Method and apparatus for triggering execution of a workflow over a network |
US10126136B2 (en) | 2016-06-14 | 2018-11-13 | nuTonomy Inc. | Route planning for an autonomous vehicle |
US11092446B2 (en) | 2016-06-14 | 2021-08-17 | Motional Ad Llc | Route planning for an autonomous vehicle |
US10309792B2 (en) | 2016-06-14 | 2019-06-04 | nuTonomy Inc. | Route planning for an autonomous vehicle |
US10829116B2 (en) | 2016-07-01 | 2020-11-10 | nuTonomy Inc. | Affecting functions of a vehicle based on function-related information about its environment |
GB201611910D0 (en) | 2016-07-08 | 2016-08-24 | Valtech Cardio Ltd | Adjustable annuloplasty device with alternating peaks and troughs |
US10798780B2 (en) | 2016-08-22 | 2020-10-06 | Ciambella Ltd. | Method and apparatus for creating and managing controller based remote solutions |
JP6585019B2 (ja) * | 2016-09-13 | 2019-10-02 | 株式会社東芝 | ネットワーク監視装置、ネットワークシステムおよびプログラム |
US10331129B2 (en) | 2016-10-20 | 2019-06-25 | nuTonomy Inc. | Identifying a stopping place for an autonomous vehicle |
US10473470B2 (en) | 2016-10-20 | 2019-11-12 | nuTonomy Inc. | Identifying a stopping place for an autonomous vehicle |
US10857994B2 (en) | 2016-10-20 | 2020-12-08 | Motional Ad Llc | Identifying a stopping place for an autonomous vehicle |
US10681513B2 (en) | 2016-10-20 | 2020-06-09 | nuTonomy Inc. | Identifying a stopping place for an autonomous vehicle |
US10416991B2 (en) * | 2016-12-14 | 2019-09-17 | Microsoft Technology Licensing, Llc | Secure IoT device update |
US10402273B2 (en) | 2016-12-14 | 2019-09-03 | Microsoft Technology Licensing, Llc | IoT device update failure recovery |
US10715526B2 (en) | 2016-12-14 | 2020-07-14 | Microsoft Technology Licensing, Llc | Multiple cores with hierarchy of trust |
CN106775716B (zh) * | 2016-12-15 | 2020-04-17 | 中国科学院沈阳自动化研究所 | 一种基于度量机制的可信plc启动方法 |
US10331434B2 (en) * | 2016-12-21 | 2019-06-25 | Quanta Computer Inc. | System and method for remotely updating firmware |
TWI621017B (zh) * | 2017-03-06 | 2018-04-11 | 慧榮科技股份有限公司 | 資料儲存裝置以及其操作方法 |
CN110419024A (zh) | 2017-03-14 | 2019-11-05 | 西安姆贝拉有限公司 | 用于在开发环境中自动生成和合并代码的方法和设备 |
US10936299B2 (en) * | 2017-04-28 | 2021-03-02 | Dell Products, L.P. | Automated intra-system persistent memory updates |
CN107179928A (zh) * | 2017-05-12 | 2017-09-19 | 深圳市四海众联网络科技有限公司 | 一种通信设备自动升级的方法 |
TWI667590B (zh) * | 2017-06-01 | 2019-08-01 | 慧榮科技股份有限公司 | 資料儲存裝置以及韌體加密及更新方法 |
US10346157B2 (en) * | 2017-07-31 | 2019-07-09 | Qualcomm Incorporated | Patch infrastructure for ROM firmware |
US20190102321A1 (en) * | 2017-09-29 | 2019-04-04 | Intel Corporation | Techniques to provide access protection to shared virtual memory |
TWI647610B (zh) * | 2017-11-14 | 2019-01-11 | 慧榮科技股份有限公司 | 認證韌體資料之資料儲存裝置與資料儲存方法 |
US10949537B2 (en) * | 2017-12-01 | 2021-03-16 | Stmicroelectronics, Inc. | Secure firmware provisioning and device binding mechanism |
CN108572842A (zh) * | 2017-12-30 | 2018-09-25 | 天津清源电动车辆有限责任公司 | 一种电动汽车远程监控系统的自更新方法 |
US11238181B2 (en) | 2018-02-14 | 2022-02-01 | Roku, Inc. | Production console authorization permissions |
US10592271B1 (en) | 2018-03-05 | 2020-03-17 | Cavium, Llc | Methods and systems for tracking a virtual memory of a virtual machine |
CN108494866A (zh) * | 2018-03-30 | 2018-09-04 | 北京小米移动软件有限公司 | 信息处理方法及服务器、终端设备 |
KR20210041540A (ko) * | 2018-05-28 | 2021-04-15 | 로얄 뱅크 오브 캐나다 | 보안 전자 트랜잭션 플랫폼을 위한 시스템 및 방법 |
CN108777803A (zh) * | 2018-06-05 | 2018-11-09 | 四川师范大学 | 广电云平台视频流处理方法、装置、设备及介质 |
CN111832013A (zh) * | 2018-08-27 | 2020-10-27 | 创新先进技术有限公司 | 固件升级方法及装置 |
CN109446815B (zh) * | 2018-09-30 | 2020-12-25 | 华为技术有限公司 | 基本输入输出系统固件的管理方法、装置和服务器 |
US10726133B1 (en) * | 2019-02-04 | 2020-07-28 | Dell Products L.P. | Securely loading UEFI images at runtime |
US10990411B2 (en) * | 2019-03-25 | 2021-04-27 | Dell Products L.P. | System and method to install firmware volumes from NVMe boot partition |
TWI791244B (zh) * | 2019-04-07 | 2023-02-01 | 新唐科技股份有限公司 | 監控系統開機之安全裝置及其方法 |
US11579893B2 (en) * | 2019-04-18 | 2023-02-14 | Dell Products L.P. | Systems and methods for separate storage and use of system BIOS components |
US10789062B1 (en) * | 2019-04-18 | 2020-09-29 | Dell Products, L.P. | System and method for dynamic data deduplication for firmware updates |
US11169818B2 (en) * | 2019-04-25 | 2021-11-09 | Dell Products L.P. | Systems and methods for dynamically locating and accessing operating system (OS) file system data from a pre-boot environment |
TWI693600B (zh) * | 2019-05-08 | 2020-05-11 | 慧榮科技股份有限公司 | 具安全性擴充的資料儲存裝置以及非揮發式記憶體控制方法 |
CN110297726B (zh) * | 2019-07-03 | 2023-08-25 | 上海兆芯集成电路股份有限公司 | 具有串行存在检测数据的计算机系统及内存模块控制方法 |
DE102019209887A1 (de) * | 2019-07-04 | 2021-01-07 | BSH Hausgeräte GmbH | System und Verfahren zur Speicherung eines zu schützenden Datensatzes |
CN110363011A (zh) * | 2019-07-19 | 2019-10-22 | 腾讯科技(深圳)有限公司 | 用于验证基于uefi的bios的安全性的方法和设备 |
KR20210046418A (ko) * | 2019-10-18 | 2021-04-28 | 삼성전자주식회사 | 보안 패치가 가능한 롬을 갖는 반도체 장치 및 그것의 패치 방법 |
US10997297B1 (en) * | 2019-12-06 | 2021-05-04 | Western Digital Technologies, Inc. | Validating firmware for data storage devices |
US11061666B1 (en) * | 2020-01-07 | 2021-07-13 | International Business Machines Corporation | Distributing computing tasks to individual computer systems |
US20210232384A1 (en) * | 2020-01-24 | 2021-07-29 | Insyde Software Corp. | System and Method for Runtime Capsule Firmware Update with Low-Latency Software SMIs |
US11392391B2 (en) * | 2020-02-03 | 2022-07-19 | Dell Products L.P. | Selectively updating a bios image |
US20230049419A1 (en) * | 2020-02-12 | 2023-02-16 | Hewlett-Packard Development Company, L.P. | Component access to rom-stored firmware code over firmware controller exposed virtual rom link |
US20210349708A1 (en) * | 2020-05-05 | 2021-11-11 | Caterpillar Inc. | System and method involving multiple software targets packaged into one file |
JP7330157B2 (ja) | 2020-09-18 | 2023-08-21 | 株式会社東芝 | 情報処理装置および更新処理方法 |
US20220300276A1 (en) * | 2021-03-18 | 2022-09-22 | Quanta Computer Inc. | Modular firmware composition |
US20230315595A1 (en) * | 2022-03-30 | 2023-10-05 | Dell Products L.P. | Enriched pre-extensible firmware interface initialization graphics |
Family Cites Families (77)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5878256A (en) * | 1991-10-16 | 1999-03-02 | International Business Machine Corp. | Method and apparatus for providing updated firmware in a data processing system |
US5623604A (en) * | 1992-11-18 | 1997-04-22 | Canon Information Systems, Inc. | Method and apparatus for remotely altering programmable firmware stored in an interactive network board coupled to a network peripheral |
US5835760A (en) * | 1995-10-13 | 1998-11-10 | Texas Instruments Incorporated | Method and arrangement for providing BIOS to a host computer |
US5757914A (en) * | 1995-10-26 | 1998-05-26 | Sun Microsystems, Inc. | System and method for protecting use of dynamically linked executable modules |
US5835594A (en) * | 1996-02-09 | 1998-11-10 | Intel Corporation | Methods and apparatus for preventing unauthorized write access to a protected non-volatile storage |
US5978912A (en) * | 1997-03-20 | 1999-11-02 | Phoenix Technologies Limited | Network enhanced BIOS enabling remote management of a computer without a functioning operating system |
US20010056540A1 (en) * | 1997-09-16 | 2001-12-27 | Timothy Ober | Secure memory area |
US6052803A (en) * | 1997-09-26 | 2000-04-18 | 3Com Corporation | Key-based technique for assuring and maintaining integrity of firmware stored in both volatile and non-volatile memory |
US6185678B1 (en) * | 1997-10-02 | 2001-02-06 | Trustees Of The University Of Pennsylvania | Secure and reliable bootstrap architecture |
US6009520A (en) * | 1997-12-10 | 1999-12-28 | Phoenix Technologies, Ltd | Method and apparatus standardizing use of non-volatile memory within a BIOS-ROM |
US7689532B1 (en) * | 2000-07-20 | 2010-03-30 | Digimarc Corporation | Using embedded data with file sharing |
US6269446B1 (en) * | 1998-06-26 | 2001-07-31 | Canon Kabushiki Kaisha | Authenticating images from digital cameras |
JP2000227856A (ja) * | 1999-02-08 | 2000-08-15 | Fuji Xerox Co Ltd | メモリ制御システム |
US6571335B1 (en) * | 1999-04-01 | 2003-05-27 | Intel Corporation | System and method for authentication of off-chip processor firmware code |
US6618810B1 (en) * | 1999-05-27 | 2003-09-09 | Dell Usa, L.P. | Bios based method to disable and re-enable computers |
US7231513B1 (en) * | 1999-12-17 | 2007-06-12 | Intel Corporation | Dynamically linked basic input/output system |
US6581159B1 (en) * | 1999-12-23 | 2003-06-17 | Intel Corporation | Secure method of updating bios by using a simply authenticated external module to further validate new firmware code |
US6986052B1 (en) * | 2000-06-30 | 2006-01-10 | Intel Corporation | Method and apparatus for secure execution using a secure memory partition |
US6976163B1 (en) * | 2000-07-12 | 2005-12-13 | International Business Machines Corporation | Methods, systems and computer program products for rule based firmware updates utilizing certificate extensions and certificates for use therein |
EP1316168A4 (en) * | 2000-08-04 | 2006-05-10 | First Data Corp | METHOD AND DEVICE FOR USE OF ELECTRONIC COMMUNICATION IN AN ELECTRONIC CONTRACT |
US6633976B1 (en) * | 2000-08-10 | 2003-10-14 | Phoenix Technologies Ltd. | Method of storing BIOS modules and transferring them to memory for execution |
US7000249B2 (en) * | 2001-05-18 | 2006-02-14 | 02Micro | Pre-boot authentication system |
US7028184B2 (en) * | 2001-01-17 | 2006-04-11 | International Business Machines Corporation | Technique for digitally notarizing a collection of data streams |
US6718464B2 (en) * | 2001-01-23 | 2004-04-06 | International Business Machines Corporation | Method and system for customizing a client computer system configuration for a current user using BIOS settings downloaded from a server |
JP2002297410A (ja) * | 2001-03-30 | 2002-10-11 | Minolta Co Ltd | データ通信プログラム、データ通信プログラムを記録したコンピュータ読み取り可能な記録媒体、データ通信装置およびデータ通信方法 |
US7213052B2 (en) * | 2001-03-31 | 2007-05-01 | Minolta Co., Ltd. | Data communication apparatus capable of rewriting firmware |
US20020147918A1 (en) * | 2001-04-05 | 2002-10-10 | Osthoff Harro R. | System and method for securing information in memory |
US6966837B1 (en) * | 2001-05-10 | 2005-11-22 | Best Robert M | Linked portable and video game systems |
JP2002351668A (ja) * | 2001-05-28 | 2002-12-06 | Nec Corp | コンピュータシステム、コンピュータの起動方法、及びコンピュータ起動プログラム |
US7103641B2 (en) * | 2001-06-18 | 2006-09-05 | Intel Corporation | Method and apparatus for distributing computer platform firmware across a network |
GB0116568D0 (en) * | 2001-07-06 | 2001-08-29 | Ncipher Corp Ltd | Firmware validation |
US7237121B2 (en) * | 2001-09-17 | 2007-06-26 | Texas Instruments Incorporated | Secure bootloader for securing digital devices |
US7103529B2 (en) * | 2001-09-27 | 2006-09-05 | Intel Corporation | Method for providing system integrity and legacy environment emulation |
US7181510B2 (en) * | 2002-01-04 | 2007-02-20 | Hewlett-Packard Development Company, L.P. | Method and apparatus for creating a secure embedded I/O processor for a remote server management controller |
US6725178B2 (en) * | 2002-01-15 | 2004-04-20 | International Business Machines Corporation | Use of hidden partitions in a storage device for storing BIOS extension files |
US7454603B2 (en) | 2002-02-11 | 2008-11-18 | Intel Corporation | Method and system for linking firmware modules in a pre-memory execution environment |
US7321969B2 (en) * | 2002-04-26 | 2008-01-22 | Entrust Limited | Secure instant messaging system using instant messaging group policy certificates |
US6907522B2 (en) * | 2002-06-07 | 2005-06-14 | Microsoft Corporation | Use of hashing in a secure boot loader |
US6920566B2 (en) * | 2002-07-12 | 2005-07-19 | Phoenix Technologies Ltd. | Secure system firmware by disabling read access to firmware ROM |
US7036007B2 (en) | 2002-09-09 | 2006-04-25 | Intel Corporation | Firmware architecture supporting safe updates and multiple processor types |
US7730325B2 (en) * | 2002-09-13 | 2010-06-01 | Bally Gaming, Inc. | Verification system and method |
US7047448B2 (en) * | 2002-11-21 | 2006-05-16 | Bitfone Corporation | Software self-repair toolkit for electronic devices |
US7246266B2 (en) * | 2002-11-21 | 2007-07-17 | Chris Sneed | Method and apparatus for firmware restoration in modems |
US7974416B2 (en) * | 2002-11-27 | 2011-07-05 | Intel Corporation | Providing a secure execution mode in a pre-boot environment |
US20040123093A1 (en) * | 2002-12-20 | 2004-06-24 | Rothman Michael A. | Method and apparatus for loading BIOS and option ROM's from alternate locations |
US8245055B2 (en) * | 2002-12-31 | 2012-08-14 | Intel Corporation | Method for firmware control invocation from power management |
US7240361B2 (en) * | 2003-01-31 | 2007-07-03 | Qwest Communications International Inc. | Systems and methods for controlled transmittance in a telecommunication system |
US7395420B2 (en) * | 2003-02-12 | 2008-07-01 | Intel Corporation | Using protected/hidden region of a magnetic media under firmware control |
US7337309B2 (en) * | 2003-03-24 | 2008-02-26 | Intel Corporation | Secure online BIOS update schemes |
TWI227443B (en) | 2003-04-16 | 2005-02-01 | Insyde Software Corp | A resource compatible system for EFI (extensible firm interface) and BIOS (basic input/output system) |
US20040230963A1 (en) * | 2003-05-12 | 2004-11-18 | Rothman Michael A. | Method for updating firmware in an operating system agnostic manner |
US7143279B2 (en) * | 2003-05-29 | 2006-11-28 | Intel Corporation | Dynamic BIOS execution and concurrent update for a blade server |
US7380136B2 (en) * | 2003-06-25 | 2008-05-27 | Intel Corp. | Methods and apparatus for secure collection and display of user interface information in a pre-boot environment |
US20050021968A1 (en) * | 2003-06-25 | 2005-01-27 | Zimmer Vincent J. | Method for performing a trusted firmware/bios update |
US7299503B2 (en) * | 2003-06-26 | 2007-11-20 | International Business Machines Corporation | Apparatus and method for location specific authentication using powerline networking |
US7469346B2 (en) * | 2003-06-27 | 2008-12-23 | Disney Enterprises, Inc. | Dual virtual machine architecture for media devices |
US7328340B2 (en) * | 2003-06-27 | 2008-02-05 | Intel Corporation | Methods and apparatus to provide secure firmware storage and service access |
KR101081729B1 (ko) * | 2003-07-07 | 2011-11-08 | 로비 솔루션스 코포레이션 | 저작권 침해를 제어하고 쌍방향 컨텐츠를 인에이블시키기 위한 재프로그램가능한 보안 |
US20050091496A1 (en) * | 2003-10-23 | 2005-04-28 | Hyser Chris D. | Method and system for distributed key management in a secure boot environment |
US7017040B2 (en) * | 2003-12-04 | 2006-03-21 | Intel Corporation | BIOS update file |
TW200519744A (en) * | 2003-12-05 | 2005-06-16 | Tatung Co Ltd | Method for firmware update |
US7424603B2 (en) * | 2003-12-18 | 2008-09-09 | Intel Corporation | Method and apparatus to store initialization and configuration information |
US7207039B2 (en) * | 2003-12-24 | 2007-04-17 | Intel Corporation | Secure booting and provisioning |
US7457945B2 (en) * | 2004-03-23 | 2008-11-25 | Dell Products L.P. | System and method for providing a secure firmware update to a device in a computer system |
US7590867B2 (en) * | 2004-06-24 | 2009-09-15 | Intel Corporation | Method and apparatus for providing secure virtualization of a trusted platform module |
US7364087B2 (en) * | 2004-06-24 | 2008-04-29 | Intel Corporation | Virtual firmware smart card |
US7406591B2 (en) * | 2004-06-29 | 2008-07-29 | Intel Corporation | Booting from a remote BIOS image |
US20060005046A1 (en) * | 2004-06-30 | 2006-01-05 | Seagate Technology Llc | Secure firmware update procedure for programmable security devices |
US7406520B2 (en) * | 2004-07-30 | 2008-07-29 | Sap Aktiengesellschaft | Identifying interfaces related to a service |
US7730326B2 (en) * | 2004-11-12 | 2010-06-01 | Apple Inc. | Method and system for updating firmware stored in non-volatile memory |
US7577832B2 (en) * | 2004-12-14 | 2009-08-18 | Hewlett-Packard Development Company, L.P. | Apparatus and method for booting a system |
US7770003B2 (en) * | 2004-12-29 | 2010-08-03 | Intel Corporation | Updating firmware securely over a network |
US20060143600A1 (en) * | 2004-12-29 | 2006-06-29 | Andrew Cottrell | Secure firmware update |
US7502946B2 (en) * | 2005-01-20 | 2009-03-10 | Panasonic Corporation | Using hardware to secure areas of long term storage in CE devices |
US7603562B2 (en) * | 2005-02-02 | 2009-10-13 | Insyde Software Corporation | System and method for reducing memory requirements of firmware |
US8898477B2 (en) * | 2007-11-12 | 2014-11-25 | Gemalto Inc. | System and method for secure firmware update of a secure token having a flash memory controller and a smart card |
US9235404B2 (en) * | 2012-06-27 | 2016-01-12 | Microsoft Technology Licensing, Llc | Firmware update system |
-
2006
- 2006-02-01 US US11/344,779 patent/US7603562B2/en active Active
- 2006-02-01 US US11/344,856 patent/US8181020B2/en active Active
- 2006-02-01 US US11/344,855 patent/US7774596B2/en active Active
- 2006-02-02 JP JP2006025172A patent/JP5437550B2/ja active Active
- 2006-02-03 TW TW100145532A patent/TWI444826B/zh active
- 2006-02-03 TW TW095103787A patent/TWI363964B/zh active
- 2006-02-05 CN CN200610071181A patent/CN100576173C/zh active Active
-
2009
- 2009-09-02 US US12/552,670 patent/US8468331B2/en active Active
-
2012
- 2012-04-18 US US13/450,314 patent/US8645717B2/en active Active
- 2012-08-21 JP JP2012182646A patent/JP5403771B2/ja active Active
-
2014
- 2014-01-23 US US14/162,517 patent/US9235403B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI558185B (zh) * | 2012-10-18 | 2016-11-11 | 美國博通公司 | 媒體處理裝置及其操作方法、可操作為機上盒的設備 |
Also Published As
Publication number | Publication date |
---|---|
US7603562B2 (en) | 2009-10-13 |
TWI444826B (zh) | 2014-07-11 |
CN1831774A (zh) | 2006-09-13 |
US20060174055A1 (en) | 2006-08-03 |
US20060174240A1 (en) | 2006-08-03 |
JP5403771B2 (ja) | 2014-01-29 |
JP5437550B2 (ja) | 2014-03-12 |
US8645717B2 (en) | 2014-02-04 |
JP2013012217A (ja) | 2013-01-17 |
CN100576173C (zh) | 2009-12-30 |
US20090327738A1 (en) | 2009-12-31 |
US8181020B2 (en) | 2012-05-15 |
US8468331B2 (en) | 2013-06-18 |
TW201224752A (en) | 2012-06-16 |
US20060174109A1 (en) | 2006-08-03 |
TW200638200A (en) | 2006-11-01 |
US9235403B2 (en) | 2016-01-12 |
US7774596B2 (en) | 2010-08-10 |
JP2006216048A (ja) | 2006-08-17 |
US20140136856A1 (en) | 2014-05-15 |
US20120221866A1 (en) | 2012-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI363964B (en) | System and method for reducing memory requirements and providing secure updates for firmware | |
US11178121B2 (en) | Secure software updates | |
KR101130367B1 (ko) | 소프트웨어 분산 서비스를 위한 시스템 및 방법 | |
KR101150041B1 (ko) | 델타 압축 패칭을 이용하여 파일을 업데이트하기 위한시스템 및 방법 | |
KR101098621B1 (ko) | 네트워킹된 환경에서 설치 컴포넌트들을 업데이트하는시스템 및 방법 | |
KR101098745B1 (ko) | 소프트웨어 업데이트를 관리하고 통신하기 위한 시스템 및방법 | |
JP4510373B2 (ja) | 共有名を用いてコンポーネントにセキュリティを提供するシステムおよび方法 | |
US7849267B2 (en) | Network-extended storage | |
JP2010073193A (ja) | モバイルインターネットデバイス(mid)でuefiファームウェア及びuefiアウェアなオペレーティングシステムのセキュアなブートのためのシステム及び方法 | |
SE1150067A1 (sv) | Optimerade förfaranden för integritetsverifiering | |
JP2010073193A5 (zh) | ||
WO2023010834A1 (zh) | 一种Linux嵌入式系统的启动方法、装置和存储介质 | |
Liu | CSFS: a secure file system |