TWI438686B - 用於使用狀態確認來保護作業系統啟動過程的系統及方法 - Google Patents

用於使用狀態確認來保護作業系統啟動過程的系統及方法 Download PDF

Info

Publication number
TWI438686B
TWI438686B TW094115799A TW94115799A TWI438686B TW I438686 B TWI438686 B TW I438686B TW 094115799 A TW094115799 A TW 094115799A TW 94115799 A TW94115799 A TW 94115799A TW I438686 B TWI438686 B TW I438686B
Authority
TW
Taiwan
Prior art keywords
operating system
loader
instructions
load
machine
Prior art date
Application number
TW094115799A
Other languages
English (en)
Other versions
TW200602978A (en
Inventor
Bryan Mark Willman
Paul England
Kenneth D Ray
Jamie Hunter
Lonny Dean Mcmichael
Derek Norman Lasalle
Pierre Jacomet
Mark Eliot Paley
Thekkthalackal Varugis Kurien
David B Cross
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of TW200602978A publication Critical patent/TW200602978A/zh
Application granted granted Critical
Publication of TWI438686B publication Critical patent/TWI438686B/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/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • Manipulator (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Numerical Control (AREA)
  • Operation Control Of Excavators (AREA)
  • Sealing Devices (AREA)
  • Spinning Or Twisting Of Yarns (AREA)

Description

用於使用狀態確認來保護作業系統啟動過程的系統及方法
本發明係有關於計算領域。特別是,本發明可提供一種用以確保一系統在一已知安全狀態下運作之機制,並且此機制可依照一保證該系統正確行為的方式使系統開機。這種保證該系統正確行之方式因而可防止在不適當環境下散佈一或更多的鍵值。
電腦安全通常會與能夠預測軟體元件之行為相關。一般說來,一系統的安全性可啟始自一能夠瞭解其行為之已知程式在一已知良好狀態下運作而按一可預測方式所執行。相反地,安全的阻礙-這或會牽涉到使得一電腦系統的行為按其設計者所考慮者以外之方式而進行-一般說來是可藉由替換或改變一已知程式,或是在一其中無法瞭解其行為的狀態下予以執行而造成。因此,對一計算環境提供安全性之一特點即包含辨識正在使用一已知程式,且此者係自一已知之良好狀態而進行。
一種其中行為之可預測性會特別重要的領域即為一作業系統及其各元件的載入作業。作業系統雖可經設計以對於其行為提供某一程度的可信賴性,然在既已載入此作業系統之前的時間裡,會是該系統特別易受攻擊的時間,這是因為或尚未建構完成(或是正在建構的過程中)可保護該作業系統不受攻擊的基礎結構。因此,確保該作業系統會按一可預測之方式進行載入處理,對於保護該作業系統不受某些類型的攻擊而言會很重要。
一種源衍自不安全載入一作業系統的安全漏洞即牽涉到保護可供啟動一些受限制功能的(各)鍵值。按一範例,但不具限制性,「微軟視窗」作業系統運用一種系統鍵值,或「SYSKEY」,這是用來按照一SYSKEY之可用性,藉由令以正確地執行該等處理而保護各式處理。例如,可自該SYSKEY導算出所需以將由該作業系統按一加密形式所儲存之私人資訊予以解密的鍵值。
傳統上,會是由登入程序來保護所需以執行受限制操作之鍵值。通常,使用者在開始使用該系統之前,必須先正確地自我認證(即如藉由提供正確的登入憑證資料,像是使用者名稱/密碼組合)。只有在正確地認證使用者之後才能使用這些鍵值,並且在作出該使用者無法適當地登入的結論之前,系統會僅讓使用者嘗試有限次數(即如三次)(這種對於嘗試登入次數的限制可在例如遭偷竊之膝上型電腦的情況下,防止未經授權之使用者藉由粗暴攻擊以猜測密碼而使用受保護功能)。然而,利用登入程序以保護存取至鍵值係假定該作業系統載入器經將該正確登入程式正確地載入於該作業系統,且尚未被或正執行中之惡意程式碼啟動使用各鍵值。若為另使用一惡意載入器,且該惡意載入器令一惡意登入程式載入於該作業系統,則或可並未輸入正確的認證資料而即可啟動使用鍵值或甚暴露出鍵值。由於載入作業系統提供一安全漏洞機會,故在此情況下的鍵值保護作業會要求在經辨識為正確地進行之環境下載入該作業系統。
一個會隨著辨識一作業系統載入處理之安全性而出現的問題是合法作業系統載入可牽涉到許多不同程式(即如有無數種不同。「選項ROM」,這些為在一系統開機載入程序之過程中執行的前OS程式),並且會有許多可按如該作業系統載入作業之一部份而執行的不同程序。因此,在一載入過程中會幾乎有無可計數之不同的合法機器狀態,而識別出所有這些狀態並辨識該機器確在一已知良好狀態下或為不切實際的工作。然而,並非該載入程序中的所有部份皆牽涉到安全性。令該載入處理進行而不嘗試評估其安全性,然後在開始任何或會影響到安全相關功能的程序之前,像是發佈鍵值,先將該環境設定為一已知良好狀態或會較具效率。更廣義地說,可准允一任意系統運行一段時間而無任何型態的安全評估作業,只要在准允進行任何牽涉到安全性的動作之前,能夠將該系統設定為一已知良好狀態。
有鑑於前揭項目,即需要一種機制以克服先前技藝的缺點。
本發明提供以在其中可辨識一載入作業確為正確地執行的情況下載入一作業系統。當一啟動機器時,會執行極為早期的起始程序(即如BIOS、選項ROM、主開機載入記錄、開機載入區段等)。在執行了這些早期程序之後,可啟動該作業系統載入器並可執行各種預備工作。在啟動該作業系統載入器且既已執行各種預備工作之後,即執行該作業系統載入器的核可作業。
該核可作業包含對該載入器本身或是該載入器之一部份執行有效性測試(即如總和檢查,或其他針對評估該載入器之識別資料及正確性的測試),並且評估目前的機器狀態(或強制該機器相符於一已知良好狀態)。如該載入器(或相關局部)已知為正確,且該機器狀態為一其中該載入器先前既經辨識為行為正確者,則可預測該載入器的行為。因此,可確保在一正確機器狀態下的正確載入器操作,並不載入會造成在不適當情況散佈供受保護功能之資料(即如像是系統鍵值之加密鍵值)的元件。
最好,是由一在高度保證環境下運行之核可器來執行該核可作業。一高度保證環境係其中有可提供相當高度的保證性,而在其內所執行的處理會按該等所經預期之方式而運行。因此,該核可器會正確執行的保證性可從該核可器係經一在高度保證性環境下所執行之處理(即如由辨識其一二進位簽章)而辨識的事實所導衍出,並依底置之信賴度在高度保證性環境下的各處理會被正確地執行(或者至少會有某一程度的保證性,該高度保證性環境不會干擾或准允干擾到一運作於此一環境內之處理的正確操作;然其者仍必須具有個別的信賴基礎,即實作在一高度保證性環境下之處理的程式會按經預期執行之方式而正確地執行)。一高度保證性環境可提供經封嵌之儲存,此係一儲存設備,其中資料會對一特定物件(亦即對一特定程式)而封嵌,並且該高度保證性環境可按不會將經封嵌之資料釋放給除了該資料所對此而簽封以外(如由該高度保證性環境所辨識)的任何物件之方式所予控制。該核可器可利用此經封嵌儲存以將一鍵值(即如該SYSKEY)封嵌至其本身,並且除非是對正確物件且當環境(即如機器狀態)在某些標準下確屬令人滿意時以外,否則可拒絕解封該鍵值。
底下將說明本發明其他特點。
概述 許多可在一作業系統下進行之處理係依一或更多為其正確操作之鍵值而定。對於該等鍵值的存取可由一像是一登入程式之認證程式加以控制,此者除非是該使用者提供正確的憑證資料,像是使用者名稱/密碼組合,否則會拒絕供以使用(各)鍵值。因此在缺少正確憑證資料時,藉由該登入程式的拒絕供以使用鍵值,即可對不知道密碼的使用者中斷(或甚完全地防止)許多處理(即如經加密檔案的解密作業)。登入程式雖對於閘限(gate)存取至各鍵值確為有效,然一作業系統載入器確或被謊騙載入一會將各鍵值散佈至由該登入程式所施加之各認證規則外部的不同元件。如此,當按此方式散佈各鍵值時,保護鍵值即需保護該作業系統載入處理。本發明可提供能夠用以保護該載入處理之機制。
示範性計算排置 第1圖顯示一種其中可實作出本發明各項特點之示範性計算環境。該計算系統環境100僅一適當計算環境之範例,且非為意指對本發明使用或功能範圍上的任何限制。該計算系統環境100亦不應被詮釋為具有任何有關於在該計算操作環境100中所繪出之各元件任一者或組合的相關性或要求性。
本發明可運作於各種其他一般目的或特殊目的計算系統環境或組態。可適於運用本發明之眾知計算系統、環境及/或組態範例包含,但不限於此,個人電腦、伺服器電腦、手持式或膝上型裝置、多重處理器系統、微處理器基礎式系統、機頂盒、可程式化消費性電子裝置、網路PC、迷你電腦、大型主機電腦、嵌入式系統,可含有上述任一系統或裝置之分散式計算環境等等。
本發明可按由一電腦所執行之電腦可執行指令,像是程式模組,的一般情境而描述。一般說來,程式模組包含可執行特定工作或實作特定抽象資料型態之副程式、程式、物件、元件、資料結構等。本發明亦可在一分散式計算環境中所實作,其中會由經一通訊網路或其他傳輸媒體所鏈結之遠端處理裝置來執行各項工作。在一分散式計算環境下,程式模組及其他資料可位於含有記憶體儲存裝置之本地及遠端電腦儲存媒體兩者處。
現參照於第1圖,此係一用以實作本發明之示範性系統,其中包含一按電腦110形式之一般目的計算裝置。該電腦110的各元件可包含,但不限於此,一處理單元120、一系統記憶體130及一將包合該系統記憶體在內之各種系統元件耦接於該處理單元120的系統匯流排121。該系統匯流排121可為多種匯流排結構之任者,這些含有記憶體匯流排或記憶體控制器、週邊匯流排、及利用各式匯流排架構的區域匯流排。僅為範例,而非其限制,這些架構包含「工業標準架構(ISA)」匯流排、「微通道架構(MCA)」匯流排、「強化ISA(EISA)」匯流排、「視訊電子標準協會(VESA)」區域匯流排,以及「週邊元件互連(PCI)」匯流排(又稱Mezzanine匯流排)。該系統匯流排121亦可在該等通訊裝置間經實作為點對點連接,切換物項等。
該電腦110通常包含各式的電腦可讀取媒體。電腦可讀取媒體可為任何能夠由該電腦110所存取之可用媒體,併包含揮發性及非揮發性媒體、可移除及非可移除媒體兩者。僅以範例,而非其限制,電腦可讀取媒體可包含電腦儲存媒體及通信媒體。電腦儲存媒體包含按任何方法或技術所實作以儲存像是電腦可讀取指令、資料結構、程式模組之資訊或其他資料的揮發性及非揮發性、可移除及非可移除媒體。電腦儲存媒體包含,但不限於此,RAM、ROM、EEPROM、快閃記憶體或其他記憶體技術、CD-ROM、數位光碟(DVD)或其他光學碟片儲存物、磁匣、磁帶、磁碟儲存物或其他磁性碟片儲存裝置,或是任何其他可用於儲存該所欲資訊且可由該電腦110進行存取的媒體。通信媒體通常可將各電腦可讀取指令、資料結構、程式模組或其他資料實作於一像是一載波或其他傳輸機制之經調變資料信號內,並且包含任何的資訊遞送媒體。該名詞「經調變資料信號」是指一種令一或更多其特徵按照將資訊編碼於該信號內之方式所予設定或改變的信號。僅一範例,而非其限制,該通信媒體包含像是有線網路或直接接線連接之有線媒體,以及像是音響、RF、紅外線及其他無線媒體之無線媒體。而亦應將上述任者之組合納入於電腦可讀取媒體的範圍內。
該系統記憶體130包含按揮發性及/或非揮發性記憶體之形式的電腦儲存媒體,像是唯讀記憶體(ROM)131及隨機存取記憶體(RAM)132。一含有像是在開機啟動時,協助該電腦110內各元件間傳送資訊之各基本副程式的基本輸入/輸出系統133(BIOS),通常是會被儲存在該ROM 131內。RAM 132通常含有資料及/或程式模組,可由該處理單元120所立刻存取及/或現即執行於其上。僅為範例,而非其限制,第1圖說明作業系統134、應用程式135、其他程式模組136以及程式資料137。
該電腦110亦可包含其他可移除/非可移除、揮發性/非揮發性電腦儲存媒體。僅以範例,第1圖說明一硬碟機141,這可對非可移除、非揮發性磁性媒體進行讀寫;一磁碟機151,這可對一可移除、非揮發性磁碟152進行讀寫;及一光碟機155,這可對一像是CD-ROM或其他光學媒體之可移除、非揮發性光碟156進行讀寫。其他可用於該示範性操作環境的可移除/非可移除、揮發性/非揮發性電腦儲存媒體包含,但不限於此,磁帶匣、快閃卡、數位光碟、數位視訊帶、全晶體RAM、全晶體ROM等等。該硬碟機141通常會透過一像是介面140之非可移除記憶體介面連接於該系統匯流排121,而該磁碟機151及該光碟機155通常是藉由一像是介面150之可移除記憶體介面連接至該系統匯流排121。
如前文所述及如第1圖所示之該等碟機與彼等的相關電腦儲存媒體,可供儲存該電腦110的電腦可讀取指令、資料結構、程式模組或其他資料。在第1圖裡,例如,該硬碟機141圖示為儲存作業系統144、應用程式145、其他程式模組146及程式資料147。注意這些元件可為相同或是不同於作業系統134、應用程式135、其他程式模組136及程式資料137。作業系統144、應用程式145、其他程式模組146及程式資料147經給定不同編號以說明該等至少可為一不同拷貝。使用者可透過像是鍵盤162及點指裝置161,通稱為一滑鼠、軌跡球或觸控板,之輸入裝置,將命令及資訊輸入該電腦110內。其他輸入裝置(未以圖示)可包含一麥克風、搖桿、遊戲板、衛星碟、掃描器等。該等及其他輸入裝置通常是透過一經耦接於該系統匯流排之使用者輸入介面160而連接於該處理單元120,然亦可藉由像是一平行埠、遊戲埠或通用序列埠(USB)之其他介面及匯流排結構所連接。一監視器191或其他種類的顯示裝置亦可透過一像是一視訊介面190之介面而連接於該系統匯流排121。除監視器外,電腦亦可包含其他像是喇叭197及印表機196之週邊輸出裝置,這些可經一輸出週邊介面195所連接。
該電腦110可利用接至一或更多像是一遠端電腦180之遠端電腦的邏輯連接而執行於一網接環境下。該遠端電腦180可為一個人電腦、一伺服器、一路由器、一網路PC、一端點裝置或其他常用網路節點,且通常包含許多或所有的前文關聯於電腦110所述之元件,然第1圖中僅繪出一記憶體儲存裝置181。所繪之各邏輯連接包含一區域網路(LAN)171及一廣域網路(WAN)173,但亦可包含其他網路。這些網接環境常見於辦公室、企業範圍電腦網路、企業內網路及網際網路。
當用於一LAN網接環境下時,該電腦110可透過一網路介面或配接器170而連接於該LAN 171。當用於一WAN網接環境下時,該電腦110通常包含一數據機172或其他用以於像是企業內網路之WAN 173上建立通信的裝置。該數據機制172可為內接或外接式,且可透過該使用者輸入介面160,或其他適當機制,而連接至該系統匯流排121。在一網接環境下,可將對於該電腦110或其局部所述之程式模組儲存在該遠端記憶體儲存裝置內。僅為範例,而非其限制,第1圖說明各遠端應用程式185為常駐於記憶體裝置181上。應瞭解圖繪之網路連接屬示範性,且可運用其他用以在各電腦間建立通信鏈結的裝置。
鍵值保護之動作 一計算環境可運用一鍵值,而有些在該環境內進行的處理會根據其正確操作會依此而定。該系統鍵值,或微軟公司WINDOWS作業系統所運用的「SYSKEY」即為此種鍵值之一範例,但不限於此範例。在一較佳具體實施例裡,一處理所據以而定之鍵值會為唯一、加密隨機的逐平台鍵值-亦即給定兩台機器,很可能兩個機器具有不同鍵值。因此,一根據此等鍵值而定的處理不太可能能夠從一平台攜帶到另一者-至少就以運用有效機制以確保一平台的鍵值並不可用於該平台之外的範圍而言。
圖2顯示一其中一處理係依一鍵值而運作的示範性系統。處理202係根據鍵值204而定以正確地操作。應注意該處理202並佈線於傳統的處理概念-亦即一可由一作業系統加以管理並經指配予一位置空間之執行單元-但更通常是指可在一電腦上執行的任何操作或操作系列。應進一步注意到,本範例雖顯示一根據一加密鍵值而定之處理,然在此所使用之名詞「處理」並不限於執行加密操作的各項處理。
即如第2圖所示,如該鍵值204為可運用作為對該處理202之一輸入,則該處理202可正確操作。另一方面,若該鍵值204無法用以作為對該處理202的輸入,則該處理202無法正確地操作。一鍵值保護機制206控制對該鍵值204的存取-亦即該機制206會按照是否符合相關的安全條件而定,對該處理202要不提供,要不不提供,該鍵值204。例如在該機制206供以使用該鍵值204之前,使用者在必須先登入並提供一正確密碼。
應注意有時會希望獲得拒絕該鍵值204藉以防止該處理202正確地操作之結果。例如,檔案加密/解密即一由該鍵值204所保護之處理202的範例。檔案正確解密可為依據對該鍵值204的存取而定。如該使用者無法正確地登入並自我授權,則或會希望無法進行該檔案解密作業,這是因為一使用者無法登入或為表示電腦正被某位所針對之使用者以外的其他人士所操作(即如在被竊取之膝上型電腦的情況下)。因此該鍵值保護機制206可令對該鍵值204的存取為依照是否符合相關的安全條件而定,並且在當並未滿足這些安全條件時,可利用拒絕該鍵值204以中斷需予中斷之處理。該機制206可按此方式將各處理予以中斷的能力會依照這些處理為其正確操作以要求該元件204而定,此因該仰賴性可供以拒絕該鍵值204來中斷該處理。
第3圖顯示一依照該鍵值204而定之處理的特定(但非限制性)範例。在如第3圖的範例裡,該示範性處理係一可按加密形式以儲存各檔案的「加密檔案系統(EFS)」302。應注意到此檔案加密之一目的在於保護一膝上型電腦上的資料,當萬一膝上型電腦遭到偷竊時可不致被一竊賊所復原。當產品一檔案304而供以儲存時,會將該檔案提供給該EFS 302。然後該EFS 302將該檔案304予以加密,並將該檔案304轉化成一經加密檔案306而予以儲存在一硬碟機141上。當提出一要求以擷取經加密檔案306時,該EFS 302擷取該經加密檔案306並予以解密以產生經解密檔案308(實作上該經解密檔案308的本質會與該原始檔案304相同,然為便於說明第3圖個別地顯示這兩個實例:檔案304係原始檔案,而該經解密檔案308在既經加密、儲存、擷取及由該EFS 302解密之後會為相同檔案)。
應注意到對該EFS 302之一輸入係內容鍵值310。該內容鍵值310會最好是一對稱鍵值,即運作如對該加秘方法之一輸入。該內容鍵值310是被用來加密該檔案304,以產生該經加密檔案306,且也會被用來解密該經加密檔案306藉以產生該經解密檔案308。應可瞭解將該鍵值310儲存在一些可簡易地擷取之位置處會很快地令該EFS 302保護該資料的功能失效:若該內容鍵值可簡易地從一硬碟機獲用,或是可簡易地從該膝上型電腦之一些已知特性(即如該處理器序號)而導算獲得,則既然一竊賊可簡易地發現該鍵值且予以解密,故使得該檔案是否依加密形式所儲存實無差異。因此,會希望藉由按某種僅可與真實使用者合作始可完成之方式來導算該鍵值以保護該鍵值。一種保護該鍵值的方式是利用一鍵值產生器模組312,這可接收鍵值204作為一輸入,並按該鍵值204之函數來導算該內容鍵值310。如此,即以會僅在適當安全環境下提供該鍵值204之範圍而言,很可能會僅只在適當的環境下方可導算出該內容鍵值310。換言之,藉令該內容鍵值310的導算作業係根據該鍵值204的可用性而定,各種施於該鍵值204的保護都會延伸到該內容鍵值310。例如,若提供該鍵值204藉提供正確密碼以要求該使用者登入,則這可確保除非該使用者正確地登入否則無法獲用該內容鍵值310。
因此,保護該鍵值204不致在錯誤環境下所給出會很重要,因為其他處理或依照只有在當出現正確的安全情境(即如擁有正確密碼之合法、經登入使用者)時才給出該鍵值204而定。即如後文所述,一種令一機器按會造成誤用之方式散佈該鍵值204的方式,即為在一其中該作業系統之惡意元件取代正確元件(在此該正確元件會被假定是能夠保護該鍵值204)的不安全環境下開機載入該機器。因此,底下說明一種可在能夠散佈該鍵值204之前確保按一已知(安全)環境之方式開機載入一機器的機制。
具狀態核可作業之開機載入處理 第4圖顯示一用於一開機載入程序之典型事件序列。
首先,啟動該機器的電源。一典型機器係經組態設定以在啟動電源時會開始執行在某固定位置處的指令。通常會被包含於此位址處的這些指令稱為「BIOS」402,或是「基本輸入/輸出系統」。在該BIOS 402執行後,該BIOS 402會開始執行稱為「選項ROM」404的小型程式。各選項ROM為執行極為基本的前開機載入功能之程式,像是設定對該機器的硬體密碼,或是選擇應予開機載入多個作業系統中的哪一者。在執行該等選項ROM 404之後,會指示該機器以載入該「主開機載入記錄(MBR)」406。
該MBR 406係一可執行程式。通常,該MBR 406常駐於一電腦之硬碟的第一區段內,並藉查核應使用哪一分割以進一步開機載入該分割表而開始(例如可將一硬碟加以分割以運用於不同作業系統,且各作業系統可要求不同的開機載入程序)。在既已查核正確的分割後,該MBR 406會將控制傳送給關聯於該分割之開機載入區段408。該開機載入區段接著開始載入該作業系統載入器410的處理,這會最終地載入該作業系統。應注意到在第4圖中顯示該MBR 406僅係為顯示此一元件是如何地配入一示範性開機載入處理,而本發明並不限於利用該MBR 406之開機載入程序。
在該作業系統載入器410運作時間的過程中,該載入器及該機器狀態會被核可(450)(在本情境下,此「機器」可指一實體機器或一虛擬機器)。該核可作業是由一在一高度保證環境之下運作的經信賴軟體元件所執行(此者之一具體實施例會在後文中特別說明),且因此會對正確地完成該載入器410的核可作業具有某種程度的保證/信賴度。基本上,藉由當該作業系統載入器410控制該機器時核可該機器狀態的相關特點,且藉由核可該載入器410,有可能對於會無法在稍後載入非法或惡意版本的作業系統元件(即如硬體抽象層、核心、驅動程式等(416)),一直到執行該登入程式418為止提供某種程度的保證性。防止將惡意元件載入該作業系統內一直到執行該登入程式418時會很重要,因為在將作業系統載入後作業系統會作的第一件事就是執行可閘限保護對該鍵值204之存取的登入程式418,且若可將惡意元件載入,則這些元件或會令該登入程式418按會在不適當環境下造成散佈該鍵值204的方式出現錯誤行為,藉此妥適於所有如前所述依據保護該鍵值204而定之元件的安全性。如此,可藉由從該作業系統載入器410執行時間開始一直到完成該登入程式為止,對該機器之狀態施加緊密控制來達到保護該鍵值204的目的。
會在該作業系統載入器410執行之時間過程中進行該核可作業450。該核可作業包含核可該載入器及機器狀態,且亦可包含將該機器狀態設定為一已知的良好狀態。在核可及設定該機器狀態之後的基本概念是將該機器置放在一狀態下,其中若是在當該機器屬該狀態下執行該載入器,則該載入器不會載入任何惡意元件,否則或會另為按造成安全漏洞之方式而行為。該核可作業450可實際地確保該載入器程式碼為先前既經辨識為正確行為之程式碼,且亦確保該機器確在此已知程式碼會正確地行為的狀態下(藉由辨識該機器確已在該狀態下,或是藉由將該機器設置為在該狀態下)。應了解此項技術能夠充分發揮現有的(安全)機器狀態,以確保該機器的未來狀態也會安全,同時可藉由該作業系統載入器410之行為不僅為已知及獲瞭解,並且亦經緊密地包繞的事實來達到這項發揮結果。根據這項觀察,應了解該核可作業450不應過早進行(即如在執行各選項ROM 404或MBR 406時),這是因為來自無數種不同來源之廣泛各式程式碼,以及執行此程式碼而令該機器或屬各種狀態下,而使得當執行所有這些各種程式碼模組時,要決定該機器的行為會非常困難,即便不是不可能。因此,最好是不要在執行該載入器410之前牽涉到該機器屬何狀態下,只要是在執行該載入器410時能夠將該機器設置在一合法狀態下即可。
在一較佳具體實施例裡,執行該載入器410會被分成兩個階段:階段1(412)及階段2(414)。最好,在進入該階段2之前會先核可實作階段2的程式碼(450),並且接著執行該核可作業450的經信賴程式碼會在一經良好定義之進入點處跳進該階段2。(此執行核可作業之「經信賴程式碼」為在高度保證性環境下執行的上述程式。熟諳本項技藝之人士應即瞭解該「經信賴」並不意指絕對無誤,而僅是意味著會有某種能夠確保該程式碼會正確地執行的基礎。由於一程式的行為可被運作其內之環境所影響,因此在高度保證性環境下執行經信賴之程式碼意味著該經信賴程式碼繪正確地操作:(1)該經信賴程式碼可被信賴以在一相符於某些期望之環境下正確地執行其功能,以及(2)可信賴該高度保證性環境以正確地提供一相符於該等期望之環境)。接著該階段2可(根據一些經定義標準)核可任何此者從該階段1所接收到之資訊。該階段1及該階段2間的分割線反映出會有一些可執行一開機載入程序而無任何安全辨識作業,以及對於一些安全相關工作(像是發佈該鍵值204)不會有任何後續影響,只要在設予啟動能夠造成此一安全相關工作無法正確執行之各事件的某時點之前,對各相關程式及狀態進行核可即可之特點的事實。此外,或會有在開機載入處理中過早地嘗試核可狀態的問題:一合法開機載入程序可採行之實際執行路徑變化會相當地大,因此要在此變化環境下定義出有效及無效機器狀態之間的差別會變得很困難。僅讓該載入處理透過任何這些可變狀態進行,而不嘗試著決定該機器所行經之任何狀態是否為有效可屬合理者。因此階段1可代表進行載入而無任何核可作業之局部。在該階段1結束時,會核可該載入器及該機器狀態,並且開始該階段2。此一分割線的假設是能夠執行各處理而無任何安全限制,一直到某點為止-在此點處會對所有關於該機器的相關因素加以核可,且會將該機器設置為一已知良好狀態下,這基本上可消除掉任何或會將該機器設置在自安全觀點而言確屬無可接受之狀態下的各項先前動作之影響。在該載入處理中劃分出該階段1及該階段2間之分割線的精確點處會高度地特定於其環境(即如該載入器程式碼如何?需進行什麼工作以作為該載入處理之一部份?),並且代表一種取捨:一方面,該分割線應足夠地晚,而對於未來動作,合法載入行為的變化量會足夠地小使得能夠可行地區別出合法行為及非法行為(即如前述,在早期載入程序裡,大量的選項ROM及其他變數會使得可能執行路徑的數目極大,造成區別合法行為及非法行為會變得很困難)。另一方面,該分割線應足夠地早,而這會在任何會影響到安全性,像是造成不適當地散佈鍵值,的事件(即如載入該登入程式)之前進行。一般說來,該階段1及該階段2間的分割線可供在一「原始」(或是「開放」或「未經核可」)狀態下執行一任意系統一段時間,然後開始任何所必要元件以對行為加以辨識(即如高度保證性環境),接著使用此等元件以核可該機器的目前狀態(或強制該機器進入一已知良好狀態下),而在此點處可供進行正在從事某件稍後會影響到安全性之事情的處理。
核可作業450 該核可作業450基本上為辨識作業系統載入器410(或更詳細地說,在一較佳具體實施例裡,辨識該載入器之階段2)確為經信賴程式,並確保正於其上操作中之機器係在一已知良好狀態下的動作。因此,該核可作業有兩個部份:(1)檢驗該載入器程式(或該載入器程式的階段2),以確保此確為據信為已知、經信賴程式,以及(2)將該相關機器狀態改變成一已知良好狀態,而在此之下該載入器已知為可正確地行為。執行(1)及(2)的前提即為在一已知機器狀態下而操作之已知程式會按一已知方式而行為。
該核可作業的第一部份-亦即檢驗該載入器-可按各種方式來執行。在翠簡單的範例裡,會有一各已知程式(可可經加密簽署以產生一數位簽章,或另按某種無可保證之方式所儲存)之雜湊,而該正在執行中的真實程式可對此加以比較。在整個程式上採取雜湊之問題在於不同合法程式的例式(instance)或會具有略為不同的映像檔,因此按此種在該已知程式與該執行中例式之間要求完整識別的方式所計算之雜湊或具過強的限制性。最好是能夠按確保該程式為如其所經期待者之方式來執行該核可作業,然這又會過度地無限制性-亦即該核可作業或可比較已知為固定之各程式元件的雜湊,且可對於或隨時間而變之程式元件執行其他測試。執行該核可作業之元件應依正予核可之程式的特定細節所裁訂;本發明並不限於任何為以核可一程式的特定技術。
該核可作業的第二部份-亦即辨識/設定該機器狀態-會最好是藉由將一狀態的所有相關「來源」設定成已知數值的方式所執行。通常,會影響到一作業系統的相關狀態來自於三種來源:CPU、晶片組及記憶體。因此,可在該核可作業時間將這些物項推入一已知良好狀態下-即如該CPU可被設置在一已知狀態下-即如ring 0,而該程式計數器指在一已知位置處,將所有的資料暫存器設定成零,並且將除其中儲存有該載入器程式之記憶體外的所有記憶體皆設定為零。如當執行該載入器而該機器在此狀態下而該載入器既經辨識為正確行為,則該檢驗該載入器及設置該機器在已知良好狀態下之組合應可確保正確行為,一直到執行該登入程式418時為止。即如前述,直到該登入程式418執行時之正確行為的各項優點之一者(然非唯一優點),即為不會載入會造成在不適當環境下散佈該鍵值204的惡意元件。
應注意到為供核可作業處理保護載入該作業系統而無惡意元件,應有足夠的保證性以確定該核可作業處理本身被正確地執行。可藉將該核可器具體實作為一在一高度保證性計算環境下執行之經信賴代理者,以確保核可作業處理的正確性。例如,或有一可執行有限集合之功能的小型作業系統,而此者可提供此一作業系統確會根據其規格而執行的保證高度性。此一作業系統可在一單一機器上併同於其他作業系統而操作,且將此一具高度保證性之作業系統隔離於該系統上其他(較不安全)環境之作業可由一像是主管者或虛擬機器監視者之監管元件執行(在一具體實施例裡,一主管者可執行分割作業,這些是該主管者在某些彼此相互隔離之狀態下進行維護的環境,且一作業系統可運作於其中)。此外,該高度保證性元件可獨具性地存取到該信賴性的根點,像是施用之一硬體模組,且強烈地保護逐平台的加密鍵值。該核可器可為一在此一高度保證性環境下執行的程式(或「代理者」),這可提供保證性-在某種程度下可信賴該高度保證性環境本身以阻擋攻擊-即該核可器不會受於來自該高度保證性環境之外而會造成不正確地行為的攻擊。此外,即如前述該高度保證性環境可提供封嵌儲存(亦即儲存一些資料並僅對該資料既經為此所封嵌之特定物件釋放該資料的能力),且該核可器可利用此封嵌儲存來儲存任何待予散佈之鍵值。應注意到該核可器可為該高度保證性環境之一整合部分,然亦可為一於該高度保證性環境下執行之個別元件。
第5圖顯示一可根據前述程序以執行該核可作業之核可器550的範例。該核可器550具有對與某已知標準之集合的正確性及/或相符性來評估該載入器410的能力。利用該等能力之組合,該核可器550可藉確保該載入器410為該經預期執行之載入器,並藉由確保其上執行該者的機器確在一其中該載入器410已知為正確地行為之狀態下,來確保該載入器410會正確地行為。
結構上來說明,該核可器550可包含兩個元件:一一般局部504及一載入器特定局部506。該「一般局部」504包含共用於廣泛各種核可器(或所有核可器)之程式碼。該載入器特定局部506為特定地相關於一特定載入器410之核可作業的程式碼-亦即該程式碼瞭解該載入器410之正確例式(或該載入器410的階段2)看似如何,且該者會執行各項測試以確保該載入器410確相符於此瞭解結果。如此,該載入器特定局部506可合併於該一般局部504以構成一完整核可器。
該核可器550係該最終決定是否將該鍵值204提供給該載入器的元件(而該者稍後會接著將此鍵值提供給該作業系統,以如前述般由該作業系統按根據一登入程式所准允之方式而使用)。該核可器550可藉由在一封嵌儲存設備508裡將該鍵值204封嵌至該核可器550來保護該鍵值204。該封嵌儲存設備508可為一高度保證性計算環境的特點。該封嵌儲存設備508可讓執行於該高度保證性環境內之各元件能夠將任意資料封嵌於其本身,使得無其他元件能夠擷取該資料。例如該核可器550的載入器特定局部506可將該鍵值204封嵌至其本身。該封嵌儲存設備508會防止除了該載入器特定局部506以外的任何元件解封該鍵值204。如此,可因為只能從該載入器特定局部506獲得,並且該載入器特定局部506只會將該鍵值204散佈給該載入器特定局部506相信不會造成該鍵值204不適當地散佈之載入器,而能夠保護該鍵值204。在另一具體實施例裡,會依據一含有該核可器及該載入器410之階段2的元件組合來封嵌該鍵值。在此一具體實施例裡,可消除掉該核可器之載入器特定局部506,這是因為既然對一已知正確階段2載入器之二元碼為進入該封嵌內之測度的一部份,因此該封嵌儲存機制本身基本上可確保在能夠解封該鍵值之前必會出現一正確階段2載入器。
保護SYSKEY之示範性處理 第6圖顯示一根據如前述之本發明特點以保護一鍵值的示範性處理。在啟始一機器後之某一點處即開始一作業系統載入器(602)。在該作業系統載入器的執行過程中,會核可該載入器及該機器狀態(604),藉此依前述原因以確保該載入器會按一可預測之方式而行為。在該載入器及該機器狀態經核可之後,該載入器會被用以載入該作業系統,同時防止惡意元件不致被載入(606)(即如前述該載入器及該機器狀態的核可作業意味著該載入器的未來行為已知為不會造成載入惡意元件)。在載入該作業系統之後,即執行可閘限存取該元件的登入程式。
其他示範性具體實施例 應注意到本發明之機制可不僅用於執行一作業系統載入處理,而是可概用於讓一系統能夠在一原始(未經核可)狀態下執行一些功能,而同時要求核可作業以進行一些功能。例如,一電腦可執行一些能夠執行而無需任何一種核可作業的功能(即如該電腦可作為一收音機),但或必須在該電腦可執行更為敏感功能之前先執行核可作業(即如從該硬碟中讀取檔案)。一般說來,一機器可被視為是一消費電器及一般PC兩者,而該消費電器部份並不要求核可作業/登入,然該一般PC部份確實要求。
此外,該核可器並不限於將一特定集合之鍵值釋放/不釋放給該登入程式,而可更一般地經組態設定以將特定集合之鍵值釋放至特定軟體堆疊-即如會有一可獲得一第一鍵值之軟體堆疊,然該核可器或可僅對一「經更重度核可之」軟體堆疊釋放一第二鍵值。
此外,鍵值並不必然地需要透過一登入程序而釋放,而是可透過任意核可作業程序所提供。例如,一DVD播放器二進位碼可在該核可器既已決定該播放器為正確二進位碼之後即獲得例如該DVD功能鍵值,而無需要求登入。
此外。有些程式可按某種形式而運作但無需核可作業,而然後在被准允暴露某些功能性之前會先要求一種核可作業。例如,可啟動一電話應用程式而無需登入,但在能夠散佈會准允該應用程式之加密功能運作的鍵值前會先要求登入。
應注意既已提供各前揭範例僅為解釋之目的,且絕非被詮釋為限制本發明。本發明雖既已參照於各種具體實施例所描述,應瞭解在此所用者係描述及說明字詞,而非為限制性之文字。此外,本發明雖既已參照於特定裝置、材料及具體實施例所描述,本發明並非為限制於在此所揭示之特定項目;相反地,本發明可延伸到所有功能性地等同結構、方法及使用,即如歸屬後載申請專利範圍之內者。熟諳本項技藝之人士經受惠於本規格教示,即可對此進行無數種修改及變動,而按其各項特點仍不致悖離本發明範圍及精神。
100...計算環境
110...電腦
120...處理單元
121...系統匯流排
130...系統記憶體
131...ROM
132...RAM
133...基本輸入/輸出系統
134...作業系統
135...應用程式
136...其他程式模組
137...程式資料
140...非可移除/非揮發性記憶體介面
141...硬碟機
144...作業系統
145...應用程式
146...其他程式模組
147...程式資料
150...可移除/非揮發性記憶體介面
151...磁碟機
152...磁碟
155...光碟機
156...光碟
160...使用者輸入介面
161...滑鼠
162...鍵盤
170...網路介面
171...區域網路
172...數據機
173...廣域網路
180...遠端電腦
181...記憶體儲存裝置
185...遠端應用程式
190...視訊介面
191...監視器
195...輸出週邊介面
196...印表機
197...喇叭
202...處理
204...鍵值
206...鍵值保護機制
302...加密檔案系統(EFS)
304...檔案
306...經加密之檔案
308...經解密之檔案
310...內容鍵值
312...鍵值產生器模組
402...基本輸入/輸出系統(BIOS)
404...選項ROM
406...主開機載入記錄(MBR)
408...開機載入區段
410...作業系統載入器
412...階段1
414...階段2
416...硬體抽象層/作業系統核心
418...登入程式
450...核可,產生狀態
502...機器狀態
504...一般局部
506...載入器特定局部
508...封嵌儲存設備
550...核可器
602...開始作業系統載入器
604...核可作業系統載入器及機器狀態
606...將系統鍵值提供給作業系統載入器;利用載入器以載入作業系統,同時防止載入惡意元件
608...登入程式閘限對鍵值的存取
當併同於各隨附圖式時,即可更佳地瞭解前揭概要以及前文之較佳具體實施例詳細說明。為說明本發明,各圖式中繪有本發明之示範性建構物項;然而,本發明並不侷限於所揭示之該等特定方法及設備。在各圖式裡:第1圖係一其中可實作本發明之各項特點的示範性計算環境區塊圖;第2圖係一系統區塊圖,此者運用一處理,而其正確操作係依一系統鍵值而定;第3圖係一經加密之檔案系統區塊圖,此者可藉由令解密作業為依一系統鍵值而定,來保護經加密之資料不會遭受未經授權之解密作業;第4圖係一具根據本發明各項特點之核可作業的示範性開機載入處理流程圖;第5圖係一根據本發明各項特點之示範性核可器區塊圖;以及第6圖係一根據本發明各項特點之保護一系統鍵值的示範性處理流程圖。
204‧‧‧系統鍵值
402‧‧‧基本輸入/輸出系統(BIOS)
404‧‧‧選項ROM
406‧‧‧主開機載入記錄(MBR)
408‧‧‧開機載入區段
410‧‧‧作業系統載入器
412‧‧‧階段1
414‧‧‧階段2
416‧‧‧硬體抽象層/作業系統核心
418‧‧‧登入程式
450‧‧‧核可,產生狀態

Claims (24)

  1. 一種經嵌入(encoded)電腦可執行指令的電腦可讀取儲存媒體,其中該電腦可讀取儲存媒體包含以下指令:載入作業系統載入器之指令,該等載入作業系統載入器之指令係用於載入一作業系統載入器,該作業系統載入器係係經配置以載入一作業系統;驗證數位簽章(validating digital signature)之指令,該等驗證數位簽章之指令係用於驗證該作業系統載入器之一數位簽章;將系統記憶體設為零(zeroing)之指令,該等將系統記憶體設為零之指令係用於將至少一部分系統記憶體設為零;執行作業系統載入器之指令,該等執行作業系統載入器之指令係用於執行該作業系統載入器;及傳送系統鍵值之指令,該等傳送系統鍵值之指令係用於傳送一系統鍵值至該作業系統載入器。
  2. 如申請專利範圍第1項所述之電腦可讀取儲存媒體,其中該電腦可讀取儲存媒體更包含以下指令:執行登入程式之指令,該等執行登入程式之指令係用於執行一登入程式,該登入程式係閘限對該系統鍵值之存取。
  3. 如申請專利範圍第2項所述之電腦可讀取儲存媒體,其中該等用於執行該登入程式之電腦可執行指令另包含以下指令:驗證憑證資料(credentials)之指令,該等驗證憑證資料之指令係用於驗證憑證資料;及存取系統鍵值之指令,該等存取系統鍵值之指令係用於存取該系統鍵值以回應接收有效之憑證資料。
  4. 如申請專利範圍第1項所述之電腦可讀取儲存媒體,其中該系統鍵值可用以解密一經加密的作業系統分割區(partition)。
  5. 如申請專利範圍第1項所述之電腦可讀取儲存媒體,其中該等用於載入該等作業系統載入器之指令係經配置以在執行以下指令前被執行:載入基本輸入輸出系統之指令,該等載入基本輸入輸出系統之指令係用於載入一基本輸入輸出系統;載入選項ROM之指令,該等載入選項ROM之指令係用於載入一選項ROM;載入主開機載入記錄之指令,該等載入主開機載入記錄之指令係用於載入一主開機載入記錄;以及載入開機載入區段之指令,該等載入開機載入區段之指令係用於載入一開機載入區段。
  6. 如申請專利範圍第5項所述之電腦可讀取儲存媒體,其中該等用於驗證該已載入之該作業系統的數位簽章之指令係經配置以在經執行至少一部分該作業系統載入器程式碼之後執行。
  7. 如申請專利範圍第6項所述之電腦可讀取儲存媒體,其中該等用於驗證該已載入之該作業系統的數位簽章之指令係經配置以在啟動全部的作業系統或大致全部的作業系統之後,或是在已啟動一些數量的分割區之後執行,其中該等分割區之每一者包含一環境,自該環境中由一管理程序(hypervisor)來維持與其他分割區某種程度之隔離。
  8. 如申請專利範圍第1項所述之電腦可讀取儲存媒體,其中該等用於驗證該數位簽章之指令係包含於用於一第一作業系統之指令中,且該作業系統載入器係經配置以載入用於一第二作業系統之指令。
  9. 如申請專利範圍第8項所述之電腦可讀取儲存媒體,其中該等用於該第一作業系統之第一指令係經配置以在一第一分割區內執行,且該等用於該第二作業系統之指令係經配置以在一第二分割區內執行。
  10. 如申請專利範圍第9項所述之電腦可讀取儲存媒體,其中一管理程序係經配置以管理該第一及第二分割區。
  11. 如申請專利範圍第1項所述之電腦可讀取儲存媒體,其中該作業系統載入器係為以下之一者:一完整作業系統及一作業系統之一完整實例(instance)。
  12. 一種用以在提供保證性(assurances)以作為一作業系統之一開機載入作業之可靠度(reliability)的環境下執行該作業系統之該開機載入作業之系統,該系統包含:系統硬體,該系統硬體包含系統記憶體;驗證電路,該驗證電路係經配置以驗證一作業系統載入器之一數位簽章;設定電路,該設定電路係經配置以藉由將至少一部分該系統記憶體設為零,來把至少該部分該系統記憶體設定為一已知狀態;執行電路,該執行電路係經配置以當至少一部分該系統記憶體已被設定為該已知狀態時,即執行該作業系統載入器;及顯露電路,該顯露電路係經配置以對一已驗證之作業系統載入器顯露一系統鍵值。
  13. 如申請專利範圍第12項所述之系統,更包含: 加密電路,該加密電路係經配置以利用一第一鍵值來加密該系統鍵值,該第一鍵值係產生自至少一部分該作業系統載入器之一二進位檔(binary)。
  14. 如申請專利範圍第12項所述之系統,其中該經配置以驗證該數位簽章之電路係經配置以在執行至少一部分該作業系統載入器之後,且在該作業系統載入器已初始化一核心或一裝置驅動程式之前,驗證該作業系統載入器之該數位簽章。
  15. 如申請專利範圍第12項所述之系統,其中該作業系統載入器係為一第一作業系統之一元件,該第一作業系統係在一第一分割區中操作,且該作業系統載入器係經配置以載入在一第二分割區中的一第二作業系統。
  16. 如申請專利範圍第15項所述之系統,其中該第一作業系統及該第二作業系統係由一管理程序來管理。
  17. 一種開機載入一作業系統之方法,該方法包含以下之步驟:執行步驟,執行一基本輸入輸出系統、一選項ROM、一主開機載入記錄、及一開機載入區段;開始步驟,開始一作業系統載入器; 驗證作業系統載入器之步驟,驗證該作業系統載入器;驗證機器狀態之步驟,藉由將至少一部分系統記憶體設為零來驗證一其上執行該作業系統載入器之機器的一狀態;允許步驟,若該作業系統載入器、以及該機器之該狀態,係經決定為有效,則允許該作業系統載入器能夠載入一作業系統。
  18. 如申請專利範圍第17項所述之方法,其中一對於在該作業系統下正確地執行至少一功能所必要之鍵值係經封嵌(sealed)至一驗證器,該驗證器係執行該驗證一作業系統載入器之步驟及執行該驗證一機器狀態之步驟,且其中該方法更包含以下之步驟:解封(unsealing)步驟,若該作業系統載入器及該機器狀態係為有效,則解封該鍵值並將該鍵值提供給該作業系統載入器。
  19. 如申請專利範圍第17項所述之方法,更包含以下之步驟:執行登入程式之步驟,在已載入該作業系統後,執行一可閘限對該鍵值之存取的登入程式。
  20. 如申請專利範圍第17項所述之方法,其中該登入程式可依照一使用者是否成功地完成一認證程序,來准允或不准該作業系統之元件使用該鍵值。
  21. 如申請專利範圍第17項所述之方法,其中會在該作業系統載入器已執行至少一動作之後,執行該驗證該作業系統載入器的步驟及該驗證該機器狀態的步驟。
  22. 如申請專利範圍第21項所述之方法,其中在重置該機器狀態之前的一時間點處執行該驗證該作業系統載入器之步驟及該驗證該機器狀態的步驟,會使得該載入器無法正常地運作以載入該作業系統。
  23. 如申請專利範圍第17項所述之方法,其中該機器包含一實體機器。
  24. 如申請專利範圍第17項所述之方法,其中該機器包含一虛擬機器。
TW094115799A 2004-06-30 2005-05-16 用於使用狀態確認來保護作業系統啟動過程的系統及方法 TWI438686B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/882,134 US7694121B2 (en) 2004-06-30 2004-06-30 System and method for protected operating system boot using state validation

Publications (2)

Publication Number Publication Date
TW200602978A TW200602978A (en) 2006-01-16
TWI438686B true TWI438686B (zh) 2014-05-21

Family

ID=35106886

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094115799A TWI438686B (zh) 2004-06-30 2005-05-16 用於使用狀態確認來保護作業系統啟動過程的系統及方法

Country Status (21)

Country Link
US (1) US7694121B2 (zh)
EP (1) EP1612666B1 (zh)
JP (2) JP4796340B2 (zh)
KR (1) KR101176646B1 (zh)
CN (1) CN100454246C (zh)
AT (1) ATE488800T1 (zh)
AU (1) AU2005201995B2 (zh)
BR (1) BRPI0501783B1 (zh)
CA (1) CA2507793C (zh)
CO (1) CO5700184A1 (zh)
DE (1) DE602005024744D1 (zh)
HK (1) HK1087216A1 (zh)
IL (1) IL168907A (zh)
MX (1) MXPA05005764A (zh)
MY (1) MY143926A (zh)
NO (1) NO332737B1 (zh)
NZ (1) NZ540356A (zh)
RU (1) RU2413295C2 (zh)
SG (1) SG118327A1 (zh)
TW (1) TWI438686B (zh)
ZA (1) ZA200504397B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI759827B (zh) * 2019-08-16 2022-04-01 邊信聯科技股份有限公司 異構處理器透過開放式連接器進行具有遠距認證及資訊獨立的可信運算系統及方法

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972590B2 (en) * 2000-09-14 2015-03-03 Kirsten Aldrich Highly accurate security and filtering software
US20060075236A1 (en) * 2004-09-30 2006-04-06 Marek James A Method and apparatus for high assurance processing
BRPI0613956A2 (pt) * 2005-06-28 2011-02-22 Matsushita Electric Ind Co Ltd método de verificação, dispositivo de processamento de informação, meio de gravação, sistema de verificação, programa de certificação e programa de verificação
KR100736083B1 (ko) * 2005-10-28 2007-07-06 삼성전자주식회사 멀티 로딩 장치 및 방법
US8291226B2 (en) * 2006-02-10 2012-10-16 Qualcomm Incorporated Method and apparatus for securely booting from an external storage device
JP4822544B2 (ja) * 2006-04-26 2011-11-24 株式会社リコー 複数のモジュール構成情報を管理できる画像形成装置
US20100306844A1 (en) * 2006-10-20 2010-12-02 Takashi Ohyama Application information tampering monitoring apparatus and method
EP2091002A4 (en) * 2006-12-04 2011-04-06 Eugrid Inc INFORMATION PROCESSING DEVICE AND INFORMATION MANAGEMENT PROGRAM
US7765374B2 (en) * 2007-01-25 2010-07-27 Microsoft Corporation Protecting operating-system resources
US8380987B2 (en) * 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
KR101209252B1 (ko) 2007-02-02 2012-12-06 삼성전자주식회사 전자기기의 부팅 방법 및 부팅 인증 방법
US20090007100A1 (en) * 2007-06-28 2009-01-01 Microsoft Corporation Suspending a Running Operating System to Enable Security Scanning
US8458460B2 (en) * 2007-09-27 2013-06-04 Intel Corporation Digest generation from instruction op-codes
US8683213B2 (en) * 2007-10-26 2014-03-25 Qualcomm Incorporated Progressive boot for a wireless device
US7865712B2 (en) * 2007-12-26 2011-01-04 Intel Corporation Method and apparatus for booting a processing system
JP5062687B2 (ja) * 2008-03-31 2012-10-31 Eugrid株式会社 情報処理装置
WO2009153387A1 (en) * 2008-06-16 2009-12-23 Nokia Siemens Networks Oy Software loading method and apparatus
KR101013419B1 (ko) * 2008-08-29 2011-02-14 주식회사 안철수연구소 시스템 보호 장치 및 방법
US8302182B2 (en) * 2008-09-01 2012-10-30 Mediatek Inc. Embedded system with authentication, and associated authentication method
KR101197182B1 (ko) * 2008-12-23 2012-11-02 한국전자통신연구원 컴퓨터 시스템에서의 해킹 방지 장치 및 방법
GB2471282B (en) * 2009-06-22 2015-02-18 Barclays Bank Plc Method and system for provision of cryptographic services
GB2471464A (en) * 2009-06-29 2011-01-05 Nokia Corp Procedure for generating a merged command list form the static lists to be used to start up or boot up the host device.
CA2796331A1 (en) * 2010-04-12 2011-10-20 Interdigital Patent Holdings, Inc. Staged control release in boot process
CN102024105A (zh) * 2010-11-16 2011-04-20 深圳市文鼎创数据科技有限公司 安全认证方法和装置
US9154299B2 (en) * 2010-12-13 2015-10-06 Novell, Inc. Remote management of endpoint computing device with full disk encryption
US8850177B2 (en) * 2011-07-08 2014-09-30 Openpeak Inc. System and method for validating components during a booting process
US20130086371A1 (en) * 2011-09-30 2013-04-04 Pradeep Bisht Method for device-less option-rom bios load and execution
TWI450194B (zh) 2011-11-10 2014-08-21 Inst Information Industry 作業系統處理方法以及系統、以及儲存其之電腦可讀取記錄媒體
US8572410B1 (en) 2012-07-18 2013-10-29 Freescale Semiconductor, Inc. Virtualized protected storage
US9058504B1 (en) * 2013-05-21 2015-06-16 Malwarebytes Corporation Anti-malware digital-signature verification
US9053216B1 (en) 2013-08-09 2015-06-09 Datto, Inc. CPU register assisted virtual machine screenshot capture timing apparatuses, methods and systems
US9167002B2 (en) 2013-08-15 2015-10-20 Microsoft Technology Licensing, Llc Global platform health management
US9304887B2 (en) 2013-09-16 2016-04-05 International Business Machines Corporation Method and system for operating system (OS) verification
US9195831B1 (en) 2014-05-02 2015-11-24 Google Inc. Verified boot
US10140454B1 (en) * 2015-09-29 2018-11-27 Symantec Corporation Systems and methods for restarting computing devices into security-application-configured safe modes
US10177910B2 (en) * 2016-08-31 2019-01-08 Microsoft Technology Licensing, Llc Preserving protected secrets across a secure boot update
US10069633B2 (en) * 2016-09-30 2018-09-04 Data I/O Corporation Unified programming environment for programmable devices
KR101887974B1 (ko) 2016-12-01 2018-08-13 현대오트론 주식회사 엔진제어기의 안전부팅을 위한 시스템 및 방법
EP3333748A1 (de) 2016-12-08 2018-06-13 Siemens Aktiengesellschaft Geräteeinheit geeignet für den betrieb im geschützten und/oder offenen betriebszustand sowie zugehöriges verfahren
TWI616774B (zh) * 2016-12-08 2018-03-01 緯創資通股份有限公司 電子裝置及其安全起動方法
US9817675B1 (en) 2017-01-31 2017-11-14 Hytrust, Inc. Methods and systems for attaching an encrypted data partition during the startup of an operating system
JP6990994B2 (ja) * 2017-05-26 2022-01-12 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
CN109040088B (zh) * 2018-08-16 2022-02-25 腾讯科技(深圳)有限公司 认证信息传输方法、密钥管理客户端及计算机设备
JP7077872B2 (ja) * 2018-08-29 2022-05-31 日本電気株式会社 情報処理装置、情報処理方法、およびプログラム
JP7077873B2 (ja) * 2018-08-29 2022-05-31 日本電気株式会社 情報処理装置、情報処理方法、およびプログラム
RU2720220C1 (ru) * 2019-06-21 2020-04-28 Российская Федерация, от имени которой выступает Государственная корпорация по атомной энергии "Росатом" (Госкорпорация "Росатом") Способ загрузки программного обеспечения

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5022077A (en) * 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
US5210875A (en) * 1989-08-25 1993-05-11 International Business Machines Corporation Initial bios load for a personal computer system
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US6658568B1 (en) 1995-02-13 2003-12-02 Intertrust Technologies Corporation Trusted infrastructure support system, methods and techniques for secure electronic commerce transaction and rights management
US6157721A (en) 1996-08-12 2000-12-05 Intertrust Technologies Corp. Systems and methods using cryptography to protect secure computing environments
EP2110732A3 (en) 1995-02-13 2009-12-09 Intertrust Technologies Corporation Systems and methods for secure transaction management and electronic rights protection
US5943422A (en) 1996-08-12 1999-08-24 Intertrust Technologies Corp. Steganographic techniques for securely delivering electronic digital rights management control information over insecure communication channels
NL1000530C2 (nl) 1995-06-08 1996-12-10 Defil N V Holland Intertrust A Filtreerwerkwijze.
JPH096232A (ja) * 1995-06-21 1997-01-10 Ricoh Elemex Corp 暗号化システム、復号化システム、情報秘匿処理システムおよび情報秘匿通信システム
US5920861A (en) 1997-02-25 1999-07-06 Intertrust Technologies Corp. Techniques for defining using and manipulating rights management data structures
AU7957998A (en) 1997-06-09 1999-01-25 Intertrust, Incorporated Obfuscation techniques for enhancing software security
US6249866B1 (en) 1997-09-16 2001-06-19 Microsoft Corporation Encrypting file system and method
US6112181A (en) 1997-11-06 2000-08-29 Intertrust Technologies Corporation Systems and methods for matching, selecting, narrowcasting, and/or classifying based on rights management and/or other information
US6496847B1 (en) 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US6397242B1 (en) 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6189100B1 (en) 1998-06-30 2001-02-13 Microsoft Corporation Ensuring the integrity of remote boot client data
US6209088B1 (en) 1998-09-21 2001-03-27 Microsoft Corporation Computer hibernation implemented by a computer operating system
US6327652B1 (en) 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US7194092B1 (en) 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
US6330670B1 (en) 1998-10-26 2001-12-11 Microsoft Corporation Digital rights management operating system
JP3273926B2 (ja) * 1999-02-12 2002-04-15 株式会社神戸製鋼所 ディジタル信号処理装置
US6651171B1 (en) 1999-04-06 2003-11-18 Microsoft Corporation Secure execution of program code
US6757824B1 (en) 1999-12-10 2004-06-29 Microsoft Corporation Client-side boot domains and boot rules
US6711675B1 (en) 2000-02-11 2004-03-23 Intel Corporation Protected boot flow
FI114416B (fi) * 2001-06-15 2004-10-15 Nokia Corp Menetelmä elektroniikkalaitteen varmistamiseksi, varmistusjärjestelmä ja elektroniikkalaite
DE60228027D1 (de) * 2001-07-06 2008-09-18 Texas Instruments Inc Sicherer Bootloader zum Sichern digitaler Geräte
US20030028765A1 (en) 2001-07-31 2003-02-06 Cromer Daryl Carvis Protecting information on a computer readable medium
US7191464B2 (en) * 2001-10-16 2007-03-13 Lenovo Pte. Ltd. Method and system for tracking a secure boot in a trusted computing environment
US7243230B2 (en) 2001-11-16 2007-07-10 Microsoft Corporation Transferring application secrets in a trusted operating system environment
US7137004B2 (en) 2001-11-16 2006-11-14 Microsoft Corporation Manifest-based trusted agent management in a trusted operating system environment
US7159240B2 (en) 2001-11-16 2007-01-02 Microsoft Corporation Operating system upgrades in a trusted operating system environment
GB2382419B (en) 2001-11-22 2005-12-14 Hewlett Packard Co Apparatus and method for creating a trusted environment
US7631196B2 (en) 2002-02-25 2009-12-08 Intel Corporation Method and apparatus for loading a trustable operating system
JP3863447B2 (ja) * 2002-03-08 2006-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 認証システム、ファームウェア装置、電気機器、及び認証方法
US7343493B2 (en) 2002-03-28 2008-03-11 Lenovo (Singapore) Pte. Ltd. Encrypted file system using TCPA
US6986006B2 (en) 2002-04-17 2006-01-10 Microsoft Corporation Page granular curtained memory via mapping control
US7058768B2 (en) 2002-04-17 2006-06-06 Microsoft Corporation Memory isolation through address translation data edit control
US7565509B2 (en) 2002-04-17 2009-07-21 Microsoft Corporation Using limits on address translation to control access to an addressable entity
AU2003221972A1 (en) 2002-04-18 2003-11-03 Advanced Micro Devices, Inc. Initialization of a computer system including a secure execution mode-capable processor
US6907522B2 (en) * 2002-06-07 2005-06-14 Microsoft Corporation Use of hashing in a secure boot loader
US7085933B2 (en) 2002-06-11 2006-08-01 Lenvo (Singapore) Pte, Ltd. Computer system apparatus and method for improved assurance of authentication
US7200758B2 (en) * 2002-10-09 2007-04-03 Intel Corporation Encapsulation of a TCPA trusted platform module functionality within a server management coprocessor subsystem
US7974416B2 (en) 2002-11-27 2011-07-05 Intel Corporation Providing a secure execution mode in a pre-boot environment
US6959262B2 (en) 2003-02-27 2005-10-25 Hewlett-Packard Development Company, L.P. Diagnostic monitor for use with an operating system and methods therefor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI759827B (zh) * 2019-08-16 2022-04-01 邊信聯科技股份有限公司 異構處理器透過開放式連接器進行具有遠距認證及資訊獨立的可信運算系統及方法

Also Published As

Publication number Publication date
NZ540356A (en) 2006-11-30
RU2005115918A (ru) 2006-11-20
CO5700184A1 (es) 2006-11-30
CN100454246C (zh) 2009-01-21
CN1716199A (zh) 2006-01-04
ZA200504397B (en) 2007-03-28
RU2413295C2 (ru) 2011-02-27
CA2507793A1 (en) 2005-12-30
MXPA05005764A (es) 2006-01-11
KR20060047897A (ko) 2006-05-18
AU2005201995B2 (en) 2010-06-17
EP1612666A1 (en) 2006-01-04
IL168907A (en) 2011-09-27
NO332737B1 (no) 2012-12-27
KR101176646B1 (ko) 2012-08-23
CA2507793C (en) 2013-07-23
NO20052391D0 (no) 2005-05-18
BRPI0501783A (pt) 2006-02-07
AU2005201995A1 (en) 2006-01-19
NO20052391L (no) 2006-01-02
JP2011187089A (ja) 2011-09-22
TW200602978A (en) 2006-01-16
US20060005034A1 (en) 2006-01-05
EP1612666B1 (en) 2010-11-17
MY143926A (en) 2011-07-29
ATE488800T1 (de) 2010-12-15
BRPI0501783B1 (pt) 2017-05-02
SG118327A1 (en) 2006-01-27
US7694121B2 (en) 2010-04-06
DE602005024744D1 (de) 2010-12-30
HK1087216A1 (en) 2006-10-06
JP5378460B2 (ja) 2013-12-25
JP2006018825A (ja) 2006-01-19
JP4796340B2 (ja) 2011-10-19

Similar Documents

Publication Publication Date Title
TWI438686B (zh) 用於使用狀態確認來保護作業系統啟動過程的系統及方法
US11416605B2 (en) Trusted execution environment instances licenses management
US11126754B2 (en) Personalized and cryptographically secure access control in operating systems
EP2583410B1 (en) Single-use authentication methods for accessing encrypted data
US8656146B2 (en) Computer system comprising a secure boot mechanism
CN1801091B (zh) 用可信处理模块安全地引导计算机的系统和方法
US8041947B2 (en) Computer architecture for an electronic device providing SLS access to MLS file system with trusted loading and protection of program execution memory
WO2020019083A1 (en) Personalized and cryptographically secure access control in trusted execution environment
JP2002318719A (ja) 高信頼計算機システム
WO2015119750A1 (en) Multi-level assurance trusted computing platform
US11416604B2 (en) Enclave handling on an execution platform
CN104715208A (zh) 一种基于tpm芯片的平台完整性校验方法
EP3776303A1 (en) Instance handling of a trusted execution environment
CN113678129A (zh) 授权对计算机化系统中的对象的访问的方法、计算机程序产品和现场设备
Jacob et al. faulTPM: Exposing AMD fTPMs’ Deepest Secrets
TW202205088A (zh) 用於經授權應用程式之bios動作請求

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees