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 PDF

Info

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
Application number
TW095103787A
Other languages
English (en)
Other versions
TW200638200A (en
Inventor
Rex A Flynn
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 TW200638200A publication Critical patent/TW200638200A/zh
Application granted granted Critical
Publication of TWI363964B publication Critical patent/TWI363964B/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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/66Updates of program code stored in read-only memory [ROM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • 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
    • G06F21/575Secure 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-
TW095103787A 2005-02-02 2006-02-03 System and method for reducing memory requirements and providing secure updates for firmware TWI363964B (en)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI558185B (zh) * 2012-10-18 2016-11-11 美國博通公司 媒體處理裝置及其操作方法、可操作為機上盒的設備

Families Citing this family (198)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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