TWI428786B - 建立一受保護之計算環境的方法 - Google Patents

建立一受保護之計算環境的方法 Download PDF

Info

Publication number
TWI428786B
TWI428786B TW094130187A TW94130187A TWI428786B TW I428786 B TWI428786 B TW I428786B TW 094130187 A TW094130187 A TW 094130187A TW 94130187 A TW94130187 A TW 94130187A TW I428786 B TWI428786 B TW I428786B
Authority
TW
Taiwan
Prior art keywords
core
application
security
program
protected environment
Prior art date
Application number
TW094130187A
Other languages
English (en)
Other versions
TW200638237A (en
Inventor
Sumedh N Barde
Jonathan D Schwartz
Reid Joseph Kuhn
Alexandre Vicktorovich Grigorovitch
Kirt A Debique
Chadd B Knowlton
James M Alkove
Geoffrey T Dunbar
Michael J Grier
Ming Ma
Chaitanya D Upadhyay
Adil Ahmed Sherwani
Arun Upadhyaya Kishan
David R Marsh
David R Blythe
Frank D Yerrace
Jay Senior
Ketteth Reneris
Noel R 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
Priority claimed from US11/116,598 external-priority patent/US20060242406A1/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of TW200638237A publication Critical patent/TW200638237A/zh
Application granted granted Critical
Publication of TWI428786B publication Critical patent/TWI428786B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/106Enforcing content protection by specific content processing
    • G06F21/1064Restricting content processing at operating system level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/603Digital right managament [DRM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Description

建立一受保護之計算環境的方法
以下連同附圖所提供的詳細說明,其意在說明示例,而非意指本發明僅可被構造或利用為示例之形式。本文連同示例陳述示例的功能,及用以構成或操作示例的步驟系列。然而,相同或相當的功能及系列也可藉不同的範例來實行。
雖然示例在本文中係以一電腦作業系統中的實施來說明闡釋,所說明的系統係提供為一範例而非做為限制。如熟習此項技藝者所將了解的,本文示例適合應用於各種型態的電腦系統。
導論
第1圖為一方塊圖,示出一習知的處理媒體內容106之媒體應用程式105,其係在一習知的計算環境100中作業,圖中指示出一針對系統101之攻擊107。習知的計算環境100可由個人電腦(“PC”)或消費性電子設備(“CE”)裝置101(可包含作業系統(“OS”)102)提供。典型的作業系統經常劃分其作業為一使用者模式103和一核心模式104。使用者模式103和核心模式104可為一個或一個以上的應用程式105所用。應用程式105可用來處理傳送至裝置101之媒體內容106,該傳送係經由某種機制諸如CD-ROM驅動器、網際網路連接及類似機制。媒體內容106範例如可用來再現音頻及視頻資訊之媒體檔案。
計算環境100可典型地包含一方便應用程式105作業之作業系統(“OS”)102,而結合一個或一個以上的中央處理單元(“CPU”)。有許多作業系統102可容許多個使用者存取CPU作業。多使用者存取範圍典型地涵括了一般使用者以至管理者的權限。管理者典型地對系統上所運行的應用程式105,也對使用者模式103及核心104有權限。如此的計算環境100容易受到各種型態的攻擊107。攻擊不僅包括外人尋覓對裝置101及其上內容106之增益存取,也包括攻擊者之擁有對裝置101之管理權限,或者其他型態的使用者之有任何授予的存取權限。
第2圖為一方塊圖,示出一受信賴的處理媒體內容106之應用程式202,其係利用一容易抵抗攻擊205之受保護的環境203。此處所用「受信賴的應用程式」一詞,可定義為一應用程式,利用到在一受保護的環境中作業的程序,致而容易抵抗攻擊205且限制對任何處理中的媒體內容106或其他資料之未授權存取。如此,在一受保護的環境中作業的一應用程式組件或元件乃典型地被視為「受信賴的」,因彼等易限制未授權存取且易抵抗攻擊。如此的應用程式202本身被視為一受信賴的應用程式,或者可利用另一受信賴的應用程式來保護其程序及/或資料的一部分。
舉例而言,可設計一受信賴的媒體播放程式202,來播放典型地僅獲使用許可之媒體內容106,而媒體內容106不能以未授權方式存取。如此的受信賴的應用程式202或許不作業且/或處理媒體內容106,除非計算環境200能提供所需的安全性水準,諸如提供一抵抗攻擊205之受保護的環境203。
本文中所用「程序“process”」一詞,可定義為一程式(包括可執行程式碼、機器指令、變數、資料、狀態資訊等),在一作業系統及/或計算環境的核心空間、使用者空間及/或任何其他空間中常駐且/或作業。
數位權限管理系統204或類似系統可利用於受保護的環境203。數位權限管理系統204的使用僅只供做範例,不一定在一受保護的環境或安全性的計算環境下被利用。就典型而論,數位權限管理系統係利用防竄改軟體(Tamper-Resistant Software,TRS”),其造價昂貴且可能會負面地衝擊計算性能。利用一受信賴的應用程式202,則可最小化加強保護所需的TRS功能性。
可利用熟習此項科技領域者所知的各種機制,來代替、附加或結合一典型的數位權限管理系統。此等機制可包括,但不限於,加密/解密、金鑰交換、密碼、許可執照及類似物。如此,本文中所用的數位權限管理,可為簡單機制,諸如將加密的媒體解密、利用密碼來存取資料,或為其他的防竄改機制。執行此等任務之機制可十分簡單且全然包含在受信賴的應用程式202之內,或者可經由與不同於受信賴的應用程式202之複合系統做通訊的介面。
第3圖為一方塊圖,示出一受信賴的應用程式202的示範組件,其可包含於該受保護的環境203內。受信賴的應用程式202,至少有一部分子組件302-304將典型地利用受保護的環境203。該受信賴的應用程式的其他組件301或許不利用到受保護的環境。媒體內容或資料可能要求加強保護水準以免於攻擊或未授權存取,其處理中所涉及的組件302-304可在受保護的環境203內作業。受保護的環境203可為單個受信賴的應用程式202所利用,或也有可能為複數個受信賴的應用程式所利用。或者,受信賴的應用程式202可利用複數個受保護的環境。受信賴的應用程式202也可耦合且/或利用一數位權限管理系統204。
所示的範例中,來源程式302和接收程式303係示為在受保護的環境203內作業的媒體管線304的局部。受保護的環境203可望保證一旦受保護且加密的內容309以被接收並解密,則受信賴的應用程式202和其組件會防止內容309被未授權存取。
數位權限管理204對受信賴的應用程式202及其所處理的內容309可提供進一步的保護之道。透過一由許可執照308、裝置鑑別憑證311和其他安全性機制所構成的系統,內容提供者一般來說能夠確信加密的內容309被遞送到合法授權的裝置且內容309依打算而被使用。
第4圖為一方塊圖,示出一系統,用以從服務提供者407下載數位媒體內容410至一示範的受信賴的應用程式202,該應用程式則利用一受保護的環境203。在所示的範例中,顯示受信賴的應用程式202正用於二處401、403。受信賴的應用程式202可用在一CE裝置401或一PC403。數位媒體410可經由服務提供者407及網際網路405來下載,供受信賴的應用程式202使用。另一選擇,則可經由其他機制使受信賴的應用程式能取得數位媒體,諸如經由網路、CD或DVD光碟或其他儲存媒體。進而言之,數位媒體410可被提供為一加密的形式309,其需一由解密金鑰、許可執照、鑑別憑證及/或類似物所構成的系統,而形式可取為數位權限管理系統204。提供給受信賴的應用程式之資料或媒體內容410可或可不受到保護,即加密或類似的保護。
在一個範例中,一受信賴的應用程式202可隨一受保護的環境203而利用一數位權限管理(“DRM”)系統204或類似系統。在此例中,受信賴的應用程式202典型地經設計來認可並堅持該內容的使用政策,其係將內容使用限制在內容提供者由政策所授權者。實施此舉可能涉及程式碼的執行,其典型者係對內容使用執照加以質問,繼而決定是否能採取對一段內容所請求的行動。此功能至少部分可由數位權限管理系統204提供。美國專利申請案09/290,363號(申請日期1999年4月12日)、美國專利申請案10/185,527號、10/185,278號及10/185,511號(申請日期皆2002年6月28日)提供了一數位權限管理系統範例,其整體併入本文以供參照。
建造一受信賴的應用程式202而用於CE裝置401或PC 403中,可包含:確保該將內容309解密並做處理之受信賴的應用程式202對惡意的攻擊是有「安全性的」。如此,一受保護的環境203典型地係指一可能不易攻擊的環境。
如所示,受信賴的應用程式202係在一CE電子裝置401中作業,該等裝置可週期性地調與一PC 403(亦提供一受信賴的應用程式)同步。PC 403次而耦合404於網際網路405。網際網路連接容許數位媒體410由服務提供者407提供。服務提供者407可在整個網際網路405上傳輸許可執照及加密的媒體406給受信賴的應用程式202。一旦加密的媒體被遞送並解密,其可能容易受到各種型式的攻擊。
受保護的環境和潛在的攻擊
受保護的計算環境容易提供一環境來限制駭客,使其不得增益存取未授權的內容。駭客包括身份為系統管理者之駭客。系統管理者典型地對一電腦上執行中的實際上所有的程序有完全的控制,但是此存取或許並不合宜。例如,若一系統使用者已獲授權,則其使用一媒體檔案的許可執照不應被非為該使用者之系統管理者用來存取該媒體檔案。受保護的環境可望貢獻助力以產生一程序使其中將內容解密並處理之程式碼能作業而不讓駭客得以存取解密的內容。受保護的環境也可限制授權特權之使用者,諸如系統管理者之存取,且/或限制任何其他的使用者,彼等在並無限制下可能未經授權而存取受保護的內容。保護可包含:安全性典型的使用者模式程序(第1圖,103)及核心模式程序(第1圖,104),及彼等可能正在處理的任何資料。
在核心作業的程序可能容易受到攻擊。例如,在典型的作業系統的核心,會有物件(包括程序)產生而容許管理者做無限制的存取。如此,管理者既典型地擁有完全的存取特權,乃可存取實際上所有的程序。
受保護的內容可包含政策或類似的資訊,指示該內容之授權使用。如此的政策可經由一DRM系統或其他的安全性機制來加強。就典型而論,對受保護的內容之存取係透過DRM系統或其他機制,加強了政策,而獲授權。然而,系統管理者既對系統完全存取,則可更改DRM系統或機制的狀態而揚棄內容政策。
受保護的環境可望提供一受保護的空間,對其中正在處理的媒體內容限制其未授權存取,甚至對高特權使用者如系統管理者亦然。當一受保護的環境結合一數位權限管理系統或類似系統來使用,則可產生一受信賴的應用程式,內容提供者對此可感到已提供足夠的安全性性來保護數位媒體以免於未授權存取,也可保護該內容的政策以免於任何其他與該媒體內容有關聯的資料、金鑰或保護機制的竄改。
攻擊向量
現今的作業系統(“OS”)架構典型地呈現了眾多可能的攻擊向量,可能會危及處理中的媒體應用程式及任何數位媒體內容。在此範例的目的之下,可能發生於一OS中的攻擊係歸類為二種攻擊型態,即核心模式攻擊和使用者模式攻擊。
第一攻擊型態為核心模式攻擊。核心模式典型地被視為作業系統受信賴的基礎。作業系統及大多數系統及週邊驅動器之核心可在核心模式下作業。就典型而論,任何運行於核心中的程式碼容易受到任何運行於核心中的其他程式碼之入侵,使用者模式則不易落入此情形。而且,在核心模式下運行的程式碼典型地可存取實質上所有的使用者模式程序。CPU也可對各種程式碼型態提供特權位準。核心模式程式碼典型地指定如此的CPU所提供的最高位準特權,其典型地給出對系統的完全存取。
第二攻擊型態為使用者模式攻擊。在使用者模式下運行的程式碼可或可不被系統視為受信賴的程式碼,依其所指定的特權位準而定。此特權位準可由作業中的使用者系統環境上下文或帳戶而確定。在一管理者帳戶的系統環境上下文中運行的使用者模式程式碼可對系統上所運行的其他程式碼有完全的存取。此外,在使用者模式下運行的程式碼可被劃分以防止一個使用者存取他人的程序。
此等攻擊可進而分解為特定的攻擊向量。受保護的環境典型地係被設計來做保護以免於未授權存取,不然,後者可經由一個或以上的此等攻擊向量而獲致。受保護的環境可做保護以免於如下的攻擊向量:程序產生、惡意的使用者模式應用程式、將惡意的程式碼載入一程序、惡意的核心程式碼、無效的信賴授權及外部攻擊向量。
程序產生為一可能的攻擊向量。作業系統典型地包含一「產生程序」機制而容許一親代程序產生一子代程序。一惡意的親代程序藉修改該產生程序的程式碼或藉更改其所產生的資料,可對產生中的子代程序做出未授權的修改。結果則會危及惡意的親代程序所產生的子代程序處理之下的數位媒體。
惡意的使用者模式應用程式為一可能的攻擊向量。作業系統典型地包含管理者位準的特權。以管理者特權運行的程序可對許多作業系統機制,且對電腦上運行的近乎所有的程序,做無限制的存取。如此,且舉「視窗(Windows)」為例,以管理者特權運行的惡意的使用者模式應用程式可對電腦上運行的許多其他的程序增益存取,如此而可能危及數位媒體。類似地,在任何使用者系統環境上下文中作業的程序可能受到任何在同一系統環境上下文中作業的惡意程序攻擊。
將惡意的程式碼載入一安全性的程序,為一可能的攻擊向量。對一程序附錄或附加惡意的程式碼乃是可能的。如此的受到危及的程序無法受到信賴,且對該經修改的程序所處理中的任何媒體內容或其他資料可能有未授權存取。
惡意的核心模式程式碼為一可能的攻擊向量。作業系統典型地包含特權之一「系統位準」。舉「視窗(Windows)」為例,所有在核心模式下運行的程式碼係典型地做為系統來運行,因此可有最大的特權。通常的結果舉例來說,驅動器在核心模式下運行可有最大機會攻擊任何使用者模式應用程式。如此由惡意的核心模式程式碼所為的攻擊可能危及數位媒體。
無效的信賴授權(TAs)為一可能的攻擊向量。TAs可參與使媒體許可執照生效,繼而將數位媒體的內容「解除鎖定」。TAs具體可有特定的媒體型態或格式,可由媒體提供者或其夥伴來實施。如此,則TAs是可插入的且/或可做為動態連結程式庫(“DLL”)或類似物而被提供。DLL可能由可執行碼(包括惡意的程式碼)來載入。為使TAs保證對媒體有合法的利用,媒體必須能夠保證自己運行所在的程序是安全性的。不然,該數位媒體可能會遭危及。
外部攻擊或為另一可能的攻擊向量。有一組攻擊不需要系統中運行著惡意的程式碼來攻擊該系統。舉例來說,對一程序附接一除錯器或對機器附接一核心除錯器,或者在一磁碟上尋找二進制檔案中的敏感資料等等,全屬可能的機制,其可獵獲並危及數位媒體或能存取數位媒體之程序。
第5圖為一方塊圖,示出示範的攻擊向量507-510,由一使用者或機制所開發而企圖以未授權方式存取一計算環境100中典型地存在的媒體內容及其他資料500。受保護的環境可做保護以免於此等攻擊向量,如此乃限制了對受信賴的應用程式及彼等程式所處理的資料之未授權存取,而對攻擊有所抵抗。如此的攻擊可由系統的使用者或含可執行程式碼之機制的使用者做出。媒體應用程式105在圖中心處示出,而攻擊向量507-510傾向於集中在存取應用程式105所儲存且/或處理中的敏感資料500。
可能的攻擊向量509可經由一惡意的使用者模式應用程式502而告初始。在該示範的作業系統架構中,一程序的親代以及擁有管理者特權之任一程序,兩者都典型地對其他程序(諸如一個處理媒體內容和處理該資料)及彼等程式所處理的資料做無限制存取。如此,則一受保護的環境可保證一受信賴的應用程式及該程式所處理的媒體內容抵抗其他使用者模式應用程式所為的攻擊。
可能的攻擊向量508係將惡意的程式碼503載入一程序501。具備一抵抗外來攻擊之安全性程序,安全性程度典型地僅同於形成該程序而運行於內部之程式碼。若有DLL及其他程式碼典型地載入程序而待執行,則可在一受保護的環境內提供一機制,在將該程式碼載入一程序前保證正要載入的程式碼是可受信賴以運行於該程序之內的。
可能的攻擊向量510係透過惡意的核心模式程式碼504。在核心模式104下運行的程式碼典型地有最大特權。結果,核心模式下所運行的驅動器可能有若干機會攻擊其他的應用程式。舉例來說,驅動器或能直接在其他程序中存取記憶體。具結果,則是驅動器一旦運行,其對包含解密了的「加密的媒體內容(第3圖,309)」之一程序記憶體可能會有所存取。保證核心中所運行的程式碼為非惡意的程式碼,則可藉以防止核心模式攻擊,如本範例所提示的。
可能的攻擊向量507係外部攻擊506對系統100所為。此類代表典型的一組攻擊,不需要系統100上運行惡意的程式碼。舉例來說,其包括:對一應用程式及/或系統上的一程序附接一除錯器,或在一機器上搜尋敏感資料等等。對此等型態之攻擊,可產生一受保護的環境來抵抗。
產生並維持受保護的環境
第6圖為一流程圖,示出產生並維持一受保護的環境之程序600,其容易限制對媒體內容及其他資料之未授權存取。程序序列600之始,一電腦系統起動602而作業系統核心負載且一核心安全性旗標被設定為初始值604。該程序持續,歷經一受保護的環境典型地產生而有一應用程式典型地載入其中606。該程序包含該受保護的環境所做的週期性檢查608,其企求保證在一安全性程序為必要之時系統一直是安全性的。
此處所用「核心」一詞,係定義為一計算環境、系統或裝置的作業系統中心模組。該核心模組可實施為電腦可執行指令及/或電子邏輯電路形式。就典型而論,該核心係負責一計算環境的記憶體管理、程序及任務管理,及儲存媒體管理。此處所用「核心組件」一詞,係定義為一基本控制機制、模組、電腦可執行指令及/或電子邏輯電路,形成核心的一部分。例如,核心組件可以是一「載入器」,其可負責來載入其他的核心組件,俾以建立一完全可作業的核心。
產生並維持受保護的環境的程序,其總結如下:1.方塊602代表一電腦系統的起動。其典型地開始通常所謂的啟動程序並包含作業系統自磁碟或某其他的儲存媒體被載入。
2.典型地,啟動程序期間的一個第一作業係將核心及核心組件載入。本範例提供核心組件之生效作業,且若所有的組件因係安全性而生效則該核心的安全性指示旗標之設定作業。此係示於方塊604。
3.在該電腦系統被視為完全作業的之後,使用者可起動一應用程式,諸如一可能需要受保護的環境之受信賴的媒體播放程式。本範例提供一安全性的核心,在一受保護的環境中作業一應用程式,如方塊606所示。
4.一旦該受保護的環境已經產生且該應用程式一個或以上的程序已經載入其中作業,則該受信賴的環境可週期性地檢查該核心安全性旗標以保證該核心保持為安全性的,如方塊608所示。此即,從該受信賴的應用程式開始作業之時起,可做一週期性檢查來決定是否有任何未授權的核心組件載入。如此的未授權的核心組件會攻擊該受信賴的應用程式或該程式所正在處理的資料。因此,若有任何如此的組件載入,該核心安全性旗標可適當地設定。
使安全性的核心負載並生效
第7圖為一方塊圖,示出示範核心組件720-73及其他組件710-714,其係被利用來產生一示範的安全性的計算環境200。此圖示出一電腦系統,其包含了各種組件710-730,典型地儲存在一磁碟或類似物上,而有幾個在電腦起動時用來形成一作業系統的核心。箭號604指示該等核心組件載入記憶體而形成作業系統核心之程序。負載的核心750經顯示含有各種組件751-762,並含有一核心安全性旗標790以指示其對一受保護的環境是否為安全性的。圖中核心安全性旗標790雖經說明為「旗標」,並不意圖僅限於此;其可實施為一布林變數或為一更複雜的資料結構或機制。
核心組件720-730典型地係經過「簽章」,可包含一憑證資料738,藉此則核心得以生效而有彼等核心組件確為自己所宣稱者,彼等核心組件未曾經過修改且/或非為惡意的。在每一核心組件720-730及/或每一負載的核心組件760,762之中,可存在一簽章塊及/或憑證資料738。簽章及/或憑證資料738對每一組件可以是獨特的。簽章及/或憑證資料738可用來產生並維持受保護的環境,如以下所指示的。典型地,一組件係由其提供者以某種方式所「簽章」,以此而安全性地識別其組件來源且/或指示其是否可能已受到竄改。簽章可做為該組件的標頭散列來實施,或者藉其他技術。習知的鑑別憑證或鑑別憑證鍊也可隨一組件納入,以決定該組件是否可受信賴。簽章及/或憑證資料738典型地在一組件發配公用之前,係附加於該組件。熟習此項技藝者將通曉此等技術及其使用。
當一典型的電腦系統起動或「啟動」,作業系統的載入程序或「核心載入器」751可典型地將核心組件自磁碟或類似物載入系統記憶體的一部分,以形成作業系統的核心。一旦所有的核心組件被載入作業,電腦和作業系統會被視為「啟動」而準備正常作業。
核心組件#1 720以至核心組件#n 730,在該計算環境中可儲存於一磁碟或其他的儲存媒體,伴隨著一撤銷列表714、一核心轉儲旗標712及一附帶著除錯憑證711之除錯器710。箭號604標示該核心載入程序,其自所屬的儲存位置讀取各種組件714-730,並將組件載入系統記憶體而形成一功能性的作業系統核心750。圖中核心轉儲旗標712雖經說明為「旗標」,並不意圖僅限於此;其可實施為一布林變數或為一更複雜的資料結構或機制。
核心載入器751隨著核心752的PE管理部分752、撤銷列表754和二個核心組件720及722依所示係載入該核心,最後二者載入成為方塊760及762;同時另有尚待載入之核心組件764及770的空間指示。最後,核心750包含一核心安全性旗標790,核心安全性旗標790可用以指示核心750目前是否被視為安全性的。此圖例係做為一範例,並不意圖設限或稱完備。核心載入器751、核心的PE管理部分752及/或核心的其他組件係示為截然不同的核心組件,以為解釋的明確性,但在實作時則可或可不與核心的其他部分有所區別。
在計算環境200之中,可含一撤銷列表714以用來結合核心組件760及762所關聯的簽章及憑證資料738。此物件714可保留一簽章、鑑別憑證及/或鑑別憑證鍊列表,其中資料自列表714產生日期起即不再被視為有效。撤銷列表714如所示係被載入該核心而為物件754。維持如此的列表,係因為以後可能發現一合乎有效簽章及鑑別憑證之組件(例如組件760及762)有問題。系統可使用如此的列表754來檢查所載入的核心組件720-730,該等組件可能經合法簽章且/或擁有受信賴的憑證資料738但隨後可能已被認為不值得信賴。如此的撤銷列表754將典型地包含版本資訊755,以致能更輕易地依需要而識別、管理及更新。
該系統可能衝擊核心安全性性之另一組件乃是除錯器710。除錯器典型地可不被視為該核心的一部分,但可存在於一計算環境200之內。除錯器包括所謂的核心除錯器、系統分析器及類似物,可廣泛地存取系統及系統上所運行的程序以及任何資料。一除錯器710能夠存取一計算環境200中的任何資料,包括不應以非授權方式存取的媒體內容。另一方面,除錯典型地乃是新功能發展的一部分;在受保護的環境中,對企圖處理受保護的媒體內容之程式碼來除錯,就典型而論是可能的。一除錯器710可如此而包含除錯憑證711,以指示除錯器710之存在於系統上乃是獲授權的。如此,偵測一除錯器710伴隨任何憑證711之存在,係受保護的環境產生及維持的一部分(第6圖,600)。
計算環境200可包含一核心轉儲旗標712。此旗標712可用來指示有多少核心記憶體在系統驟然故障時可取來檢驗。如此的核心轉儲可用於如此的故障的事後除錯。如此的旗標712若指示記憶體在轉儲當時實質全都是可取來檢驗的,則核心750可被視為不安全性的;此係因駭客能運行一應用程式而將系統記憶體中受保護的媒體曝露,然後強加一驟然故障條件而導致含該曝露的媒體內容之記憶體部分可取來檢驗。如此,一核心轉儲旗標712可用以產生並維持一受保護的環境(第6圖,600)。
第8圖及第9圖為流程圖,示出一示範程序604,用以載入核心組件以產生一示範的安全性的計算環境。此程序604係開始於核心載入器已起動且核心的PE管理部分已載入作業之後。圖中並未示出,該核心的PE管理部分可使該核心載入器本身及/或先前或已載入的任何其他核心元件生效。生效作業可定義為決定一給定的組件是否被視為安全性的且值得信賴的,如此程序604的第2部分所闡示者。
以下所用關於核心組件之「獲授權以供安全性使用」一詞及類似詞,有下述的特定含義。若一核心含任何組件未獲授權以供安全性使用,則不提供安全性的計算環境使受保護的環境可作業於其內。反之並不為真,而係視其他因素諸如攻擊向量而定。
1.方塊801示出載入程序604的起點,其係在核心的PE管理部分已載入作業之後。任何前此載入於該核心的組件可如上述而生效。
2.方塊802示出,核心安全性旗標於初始時係設定為TRUE(真);除非有任何先於核心的PE管理部分載入的組件,或是此組件本身,經發現為不安全性的,在此該核心安全性旗標可設定為FALSE(偽)。實務上,TRUE或FALSE的指示可取各種不同的形式;此處使用TRUE或FALSE僅係例舉,並不意欲設限。
3.方塊804指示對計算環境中除錯器存在所做的檢查。或者,除錯器能常駐在遠程,經由一網路或其他與該計算環境中的程序通訊之通訊媒體,而附接於該計算環境。若偵測不到除錯器,則該載入程序604於方塊810繼續進行。否則,該載入程序604於方塊809繼續進行。圖中並未示出,此檢查可週期性地實施,而該核心安全性旗標的狀態可據以更新。
4.若偵測到一除錯器,則方塊806檢查除錯憑證,其指示在一受保護的環境下可授權對系統除錯。若如此的憑證不存在,則該核心安全性旗標可設定為FALSE,如方塊808所示。否則,載入程序604於方塊810繼續進行。
5.方塊810示出核心轉儲旗標檢查。若此旗標指示可能有完全的核心記憶體轉儲或類似物,則則核心安全性旗標可設定為FALSE,如方塊808所示。否則,載入程序604於方塊812繼續進行。圖中並未示出,此檢查可週期性地實施,而核心安全性旗標的狀態可據以更新。
6.方塊812示出撤銷列表之載入核心。如果該撤銷列表可用來檢查除錯憑證或其他先前載入的憑證、簽章、憑證資料或類似物,則此步驟可在程序序列中比所示者更早地執行(先於將要檢查的憑證或類似物之載入)。圖中並未示出,一旦載入此組件,則可檢查任何或所有的先前載入的組件,以了解彼等的簽章及/或憑證資料是否已經依照該撤銷列表而遭撤銷。若有任何組件已遭撤銷,則該核心安全性旗標可設定為FALSE而載入程序604於方塊814繼續進行。注意,撤銷列表可或可不載入核心供受保護的環境產生及維持之用。
7.方塊814示出此圖變遷至第9圖所示的第2部分,其於方塊901繼續進行。
8.方塊902示出對任何要載入的額外的核心組件所做的檢查。若所有的組件已載入,則載入程序604通常即告完成而核心安全性旗標係保持在最後所設定的任何狀態,非TRUE即FALSE。若有額外的核心組件要載入,則載入程序604於方塊906繼續進行。
9.方塊906示出對次將載入的組件的一有效簽章所做的檢查。若該簽章為無效,則核心安全性旗標可設定為FALSE,如方塊918所示。否則,載入程序604於方塊908繼續進行。若無組件簽章可取得,則該組件可被視為不安全性的且核心安全性旗標可設定為FALSE,如方塊918所示。簽章有效性的決定,可檢查一有效簽章列表上的匹配且/或檢查簽章者的身份是否為受信賴的身份。如熟習安全性技術領域者所通曉的,其他的方法也能用來使組件簽章生效。
10.方塊908示出組件的憑證資料檢查。若該憑證資料為無效,則核心安全性旗標可設定為FALSE,如方塊918所示。否則,載入程序604於方塊910繼續進行。若無組件憑證資料可取得,則該組件可被視為不安全性的且核心安全性旗標可設定為FALSE,如方塊918所示。憑證資料有效性的決定,可檢查該組件的憑證資料以了解該組件是否獲授權以供安全性使用。如熟習此項技藝者所通曉的,其他的方法也能用來使組件憑證資料生效。
11.方塊910示出組件的簽章對照核心中所載入的一撤銷列表的檢查。若簽章存在於該列表,依指示已遭撤銷,則核心安全性旗標可設定為FALSE,如方塊918所示。否則,載入程序604於方塊912繼續進行。
12.方塊912示出組件的憑證資料對照一撤銷列表的檢查。若憑證資料存在於該列表,依指示已遭撤銷,則核心安全性旗標可設定為FALSE,如方塊918所示。否則,載入程序604於方塊914繼續進行。
13.方塊914示出組件的簽章檢查以決定其是否OK(可)供使用。做此檢查,可檢驗組件的葉憑證資料來了解該組件是否獲授權以供安全性使用。在該憑證資料中有一定的屬性可指示組件是否獲准使用於受保護的環境。若否,則該組件可能非經適當地簽章而核心安全性旗標可設定為FALSE,如方塊918所示。否則,載入程序604於方塊916繼續進行。
14.方塊916示出組件的根憑證資料檢查。做此檢查,可檢驗組件的根憑證資料來了解其是否在列於一受信賴的根鑑別憑證列表上。若否,則該組件可被視為不安全性的且核心安全性旗標可設定為FALSE,如方塊918所示。否則,載入程序604於方塊920繼續進行。
15.方塊920示出組件之載入核心,而在核心中該組件現被視為作業的。然後,載入程序604轉回方塊902以檢查任何另要載入的組件。
產生受保護的環境
第10圖為一方塊圖,示出一安全性的計算環境200,其將一應用程式105載入一示範的受保護的環境203,以形成一典型地抵抗攻擊之受信賴的應用程式。在本範例中,該核心同於第7圖中所述已經負載,且系統200被視為完全作業的。在此,使用者起動了媒體應用程式105(以此為例)。媒體應用程式105可為其一個或以上的程序及/或組件來操作而要求產生一受保護的環境203。受保護的環境之產生程序606產生受保護的環境203並載入應用程式105及/或其組件,如下述。
第11圖為一流程圖,示出一示範程序606,用以產生一受保護的環境並將一應用程式載入該受保護的環境。此程序606包含一初始步驟:產生一安全性的程序,繼而使將要載入的軟體組件生效;然後將該軟體組件載入該新的安全性的程序使之作業。一旦成功,結果會有一軟體組件作業於一安全性的核心支持下的受保護的環境。如此的軟體組件,連同其所處理的任何數位媒體內容或其他資料,可受到保護而免於各種不同的的包括如上所述的攻擊。
1.方塊1101示出受保護的環境產生程序606的起點。此點通常是處在某應用程式或程式碼要求一受保護的環境來作業之時。
2.方塊1102示出一受保護的環境之建立。儘管圖中並未示出,此舉可藉請求作業系統產生一新的安全性程序來實行。以後所載入而在此安全性程序中作業的程式碼可被視為在受保護的環境作業。若核心安全性旗標設定為FALSE,則該「產生新的安全性程序」之請求失敗。此係因系統整個可被視為不安全性的而不適合受保護的環境及任何需要受保護的環境之應用程式或資料。或者,該「產生新的安全性程序」之請求成功,但該載入於新的程序之組件卻被通知:系統被視為不安全性的,據此對作業能有所修正。否則,載入程序606於方塊1106繼續進行。
3.方塊1106示出對行將載入該新的安全性程序或受保護的環境之軟體組件的一有效簽章所做的檢查。若該簽章為無效,則程序606失敗,如方塊1118所示。否則,程序606於方塊1108繼續進行。該程序中並未示出,對該產生新的安全性程序之程式或其均等物,也可就其有效簽章加以檢查。如此,則對於該組件本身及/或該產生新的安全性程序之程式來說,若無簽章可取得,則該組件可被視為不安全性的且程序606失敗,如方塊1118所示。簽章有效性的決定,可檢查一有效簽章列表上的匹配且/或檢查簽章者的身份是否為受信賴的身份。如熟習安全性技術領域者所通曉的,其他的方法也能用來使組件簽章生效。
4.方塊1108示出軟體組件的憑證資料檢查。若該憑證資料為無效,則程序606失敗,如方塊1118所示。否則,程序606於方塊1110繼續進行。若無組件憑證資料可取得,則該組件可被視為不安全性的且程序606失敗,如方塊1118所示。憑證資料有效性的決定,可檢查該組件的憑證資料以了解該組件是否獲授權以供安全性使用。如熟習此項技藝者所通曉的,其他的方法也能用來使組件憑證資料生效。
5.方塊1110示出組件的簽章對照一撤銷列表的檢查。若簽章存在於該列表,依指示已遭撤銷,則程序606失敗,如方塊1118所示。否則,載入程序606於方塊1112繼續進行。
6.方塊1112示出組件的憑證資料對照一撤銷列表的檢查。若憑證資料存在於該列表,依指示已遭撤銷,則程序606失敗,如方塊1118所示。否則,載入程序606於方塊1114繼續進行。
7.方塊1114示出組件的簽章檢查以決定其是否為可接受以供使用。做此檢查,可檢驗組件的葉憑證資料來了解該組件是否獲授權以供安全性使用。在該憑證資料中有一定的屬性可指示組件是否獲准使用於受保護的環境。若否,則該組件可被視為非經適當地簽章而程序606失敗,如方塊1118所示。否則,載入程序606於方塊1116繼續進行。
8.方塊1116示出組件的根憑證資料檢查。做此檢查,可檢驗組件的根憑證資料來了解其是否在列於一受信賴的根鑑別憑證列表上。若否,則該組件可被視為不安全性的而程序606失敗,如方塊1118所示。否則,載入程序606於方塊1120繼續進行。
9.方塊1118示出軟體組件之載入失敗。下接方塊1130,其為受保護的環境產生程序606的終點。
10.方塊1120示出軟體組件之載入該受保護的環境,在其中係被視為作業的。下接方塊1130,其為受保護的環境產生程序606的終點。
使一安全性的核心一直生效
第12圖為一方塊圖,示出一示範的受信賴的應用程式202,其係利用一示範的受保護的環境202,週期性地檢查608該安全性的計算環境200的安全性狀態790。在本範例中,計算環境200和核心750可同於第7圖及第8圖中所說明者。核心750已經負載,且電腦200被視為完全作業的。此外,一受保護的環境已產生而有受信賴的應用程式的適當組件載入作業;如此乃建立了一利用受保護的環境202之受信賴的應用程式,下文將簡單稱之為「受保護的環境」。
受保護的環境202可憑核心的PE管理部分752做週期性檢查,來決定核心750是否一直保持為安全性的。實施此週期性檢查,係因新的組件(包括可能被視為安全性的組件)有可能隨時被載入核心750。若此情形將發生,則核心安全性旗標790的狀態會改變為FALSE,而受保護的環境202中所作業的程式碼有機會適當地予以回應。
舉例而言,考慮一媒體播放應用程式在具有一安全性的核心750之PC 200上起動,並考慮該媒體播放應用程式的一部分,其在一受保護的環境202中作業而處理獲有許可執照僅供安全性使用的數位媒體內容。在本範例中,若有一被視為不安全性的新的組件於該媒體播放應用程式正在處理該媒體內容時被載入,則檢查該核心安全性狀態程序204會指出核心安全性旗標790已改變為FALSE,其指示核心750可能不再是安全性的。
或者,撤銷列表754被更新而一先前被視為安全性的核心組件不再被視為安全性的,而導致核心安全性旗標790被設定為FALSE。在此,該應用程式可接收到通知,謂系統200不再被視為安全性的,如此乃能終止作業或採取其他的適當行動來保護自己及/或處理中的媒體內容。
第13圖為一流程圖,示出一示範程序608,用以週期性地檢查該安全性的計算環境的安全性狀態。此程序608可為一受保護的環境202所使用,以決定核心是否一直保持為安全性的。受保護的環境202可週期性地使用此程序608,以檢查該核心目前的安全性狀態。受保護的環境202及/或其內所作業的軟體組件可使用該目前的安全性狀態資訊,以適當地修正作業。該程序的週期性活動可用習知的技術來施行。
此圖示出受保護的環境202與核心的PE管理部分752之間的通訊序列608(以示範的偽程式碼闡示之)。此通訊可包含一撤銷列表版本檢查而使一應用程式有能力指定一至少具一定版本之撤銷列表。此通訊序列可用習知的技藝來加密安全性。
1.受保護的環境202對核心的PE管理部分做一IsKernelSecure(MinRLVer)呼叫1320,以查詢核心目前的安全性狀態。在此呼叫1320中,可包含預期要利用到的撤銷列表的最低版本(MinRLVer)。
2.該核心的PE管理部分做一檢查,以了解受保護的環境,即該呼叫程序,是否為安全性的。若否,則其可對該受保護的環境提供一Return(轉回)(SecureFlag=FALSE)指示1322,而通訊序列608乃告完成。此安全性性檢查可由該核心的PE管理部分來從事,係就該受保護的環境而檢查有效簽章及/或憑證資料,如上所述。
3.否則,該核心的PE管理部分檢查核心安全性旗標,以回應呼叫1320。若該安全性旗標為FALSE狀態,則可對該受保護的環境提供一Return(SecureFlag=FALSE)指示1324,而通訊序列608乃告完成。
4.否則,該核心的PE管理部分就撤銷列表版本資訊而檢查撤銷列表。若該撤銷列表有版本資訊舊於IsKernelSecure(MinRLVer)呼叫1320所請求者,則有幾個選項是可能的。第一,如圖中所指示,該核心的PE管理部分可對該受保護的環境提供一Return(SecureFlag=FALSE)指示1326,而通訊序列608乃告完成。
或者(圖中並未示出),具有適當版本之撤銷列表可被配置並載入該核心,所有的核心組件能用此新的(或更新了的)撤銷列表而再生效,核心安全性旗標則經適當地更新,此通訊序列608的先前步驟#3乃重複來過。
5.否則,該核心的PE管理部分可對該受保護的環境提供一Return(SecureFlag=TRUE)指示1328,而通訊序列608乃告完成。
示範計算環境
第14圖為一方塊圖,示出一示範的計算環境1400,可在其中實施程序、系統及方法以建立一安全性的計算環境(包括一受保護的環境203)。示範的個人電腦1400僅係例示一計算系統或裝置,提供安全性的計算環境及/一受保護的環境,並無意令本申請案中所說明的範例限制在此個別的計算環境或裝置型態上。
有眾多其他的通用或特用系統,也能用來施行一合適的計算環境。周知的系統則例如,但不限於,個人電腦(“PC”)1400、手提或膝上型裝置、微處理器為主的系統、多處理系統、視訊轉換器、可程式消費性電子產品、遊戲機、消費性電子裝置、行動電話、PDAs及類似物。
PC 1400包含一通用的計算系統,其形式為一計算裝置1401,而耦合於各種週邊裝置1403、1404、1415、1406及類似物。計算裝置1401的組件可包含一個或以上的處理器(包括CPU、GPU、微處理器或類似物)1407、一系統記憶體1409及一耦合於該各種系統組件之系統匯流排1408。處理器1407處理各種電腦可執行的指令,以控制計算裝置1401的作業並經由各種通訊連接,諸如一網路連接1414或類似物而與其他的電子及/或計算裝置(未示出)通訊。系統匯流排1408代表任何個數的幾種型態的匯流排結構,包括一記憶體匯流排或記憶體控制器、一週邊匯流排、一加速繪圖埠及/或一處理器或區域匯流排,使用了各種不同的匯流排架構。
系統記憶體1409可包含形式為揮發性記憶體之電腦可讀取的媒體(諸如隨機存取記憶體(RAM))及/或非揮發性記憶體(諸如唯讀記憶體(ROM))。在ROM之內可儲存一基本輸入/輸出系統(BIOS)。RAM典型地包含可立即被一個或以上的處理器1407存取,或正在其上作業之資料及/或程式模組。藉由範例,所示的在系統記憶體中載入以作業的,乃是一利用了受保護的環境203之受信賴的應用程式202及正在處理中的媒體內容106。
大量儲存裝置1404及1410可耦合於計算裝置1401,或藉耦合於系統匯流排而併入計算裝置1401。如此的大量儲存裝置1404及1410可包括一磁碟驅動器,其對一可移除的非揮發性磁碟(如,一「軟碟」)1405讀出寫入,及/或一光碟驅動器,其對一非揮發性光碟(諸如一CDROM、DVD ROM或類似物)1406讀出且/或寫入。電腦可讀取的媒體1405及1406典型地收錄電腦可讀取的指令、資料結構、程式模組及類似物,而供應於軟碟、CD、DVD、可攜式Memory Stick及類似物。
在硬碟1410、其他的大量儲存裝置1404及系統記憶體1409(典型地受限於可取得的空間)上,可儲存任何個數的程式或程式模組,其舉例來說包括一個或以上的作業系統、一個或以上的應用程式、其他的程式模組及/或程式資料。如此的作業系統、應用程式、其他的程式模組及/或程式資料(或彼等的某種組合)皆可包含本文所說明的系統及方法之具體實施例。核心組件720-730可隨其他的作業系統程式碼儲存在磁碟1410上。媒體應用程式105及/或一數位權限管理系統204可隨其他的應用程式儲存在磁碟1410上。此等組件720-730和應用程式105、204可被載入系統記憶體1409而作業。
一顯示裝置1416可經由一介面,諸如一視頻配接器1411,而耦合於系統匯流排1408。使用者能經由任何個數的不同輸入裝置1403,諸如鍵盤、指向裝置、搖桿、遊戲墊、序列埠及/或類似物,而與計算裝置1400分介。此等及其他的輸入裝置可經由輸入/輸出介面1412(其可耦合於系統匯流排1408)而耦合於處理器1407,且可耦合於其他的介面及匯流排結構,諸如一個或以上的平行埠、遊戲埠及/或一通用串列匯流排(USB)及類似物。
透過一個或以上的區域網路(LAN)、廣域網路(WAN)、網際網路、無線電鏈路、光鏈路及類似物,計算裝置1400可通訊連接一個或以上的遠程電腦及/或裝置而在一網路環境中作業。計算裝置1400可經由一網路配接器1413,或者經由一數據機、DSL、ISDN介面或類似物,而耦合於一網路。
通訊連接1414係通訊媒體之一範例。通訊媒體典型地收錄電腦可讀取的指令、資料結構、程式模組及/或在一調變的資料訊號中的其他資料(諸如一載波或其他的輸運機制),且包含任何資訊遞送媒體。「調變的資料訊號」一詞,意謂一訊號有一個或以上的特徵頻率經某種方式之設定或改變,所含的資訊藉此而編碼。藉由範例,但不設限,通訊媒體包括有線媒體(諸如有線網路或直連線路),及無線媒體(諸如聲波、無線電頻、紅外線及其他的無線媒體)。
熟習此項技藝者將了解,被利用來儲存電腦可讀取的程式指令之儲存裝置能分散於一網路各處。例如,一遠端的電腦或裝置可儲存一以軟體為例之系統。一當地的或終端的電腦或裝置可存取遠端的一個或以上的電腦或裝置,並下載軟體的局部或全部來運行一個或以上的程式。或者,當地的電腦可依需要下載軟體的片段,或做分散式處理:在當地的終端機上執行軟體的一些指令而另在遠端的電腦或裝置上執行執行一些。
熟習此項技藝者亦將了解,利用習知的技術,則全部的或一部分的軟體指令可由一專用電子電路來運作,諸如由一數位訊號處理器(“DSP”)、可程式邏輯陣列(“PLA”)、分散電路或類似物。本文所用的電子設備一詞,包括含任何軟體及/或軔體及類似物之計算裝置及消費性電子裝置,且/或包括不含軟體及/或軔體及類似物之電子裝置或電路。
電腦可讀取的媒體一詞,包括系統記憶體、硬碟、大量儲存裝置及彼等的聯合媒體大量儲存裝置、通訊媒體及類似物。
100...習知的計算環境
101...PC或消費性電子裝置
102...作業系統
103...使用者模式
104...核心
105...媒體應用程式
106...媒體內容
107...攻擊
200...安全性的計算環境
201...PC或消費性電子裝置
202...受信賴的應用程式(利用一受保護的環境)
203...受保護的環境
204...數位權限管理(DRM系統)
205...攻擊
301...其他應用程式組件
302...來源程式
303...接收程式
304...媒體管線
308...許可執照
309...加密的內容
311...裝置憑證
401...CE裝置
403...PC
405...網際網路
406...許可執照及加密的媒體
407...服務提供者
410...數位媒體
500...要保護的資料
502...惡意的應用程式
503...惡意的程序碼
504...惡意的驅動器
506...系統外部的攻擊
507...攻擊向量
508...攻擊向量
509...攻擊向量
510...攻擊向量
600...產生並維持受保護的環境供受信賴的應用程式之用
602...起動
604...載入核心組件並設定核心安全性旗標(核心負載-程序序列的第一部分)
606...將應用程式載入受保護的環境(產生受保護的環境並使負載)
608...受保護的環境週期性地檢查核心安全性旗標/檢查核心安全性狀態
710...除錯器
711...除錯身份碼
712...核心轉儲旗標
714...撤銷列表
720...核心組件#1
722...核心組件#2
724...核心組件#3
730...核心組件#n
738...安全性簽章及憑證鍊
750...核心
751...核心載入器
752...核心的PE管理部分
754...載入的撤銷列表
755...撤銷列表版本資訊
760...載入的核心組件#1
762...載入的核心組件#2
764...用於核心組件#3之空間
770...用於核心組件#n之空間
790...核心安全性旗標
801...起動
802...設定核心安全性旗標為TRUE
804...除錯器存在?
806...除錯器身份碼存在?
808...設定核心安全性旗標為FALSE
810...核心轉儲旗標=TRUE?
812...將撤銷列表載入核心
814...程序序列的第二部分
901...程序序列的第二部分起動
902...另一組件將載入?
904...完成
906...簽章為有效?
908...憑證鍊有效?
910...簽章在撤銷列表中?
912...憑證在撤銷列表中?
914...簽章OK可使用?
916...根憑證OK可使用?
918...設定核心安全性旗標為FALSE
920...將組件載入核心
1050...核心
1101...起動
1102...產生受保護的環境供組件載入
1106...簽章為有效?
1108...憑證鍊有效?
1110...簽章在撤銷列表中?
1112...憑證在撤銷列表中?
1114...簽章OK可使用?
1116...根憑證OK可使用?
1118...組件載入失敗?
1120...將組件載入受保護的環境
1130...完成
1401...計算裝置
1403...I/O裝置
1404...週邊驅動器
1407...處理單元
1408...系統匯流排
1409...系統記憶體
1410...硬碟
1411...視訊配接器
1412...I/O介面
1413...網路配接器
1414...網路連接
1415...喇叭
1416...顯示器
參照附圖來閱讀本文的發明說明,更能從中理解示例的特色及優點。
第1圖為一方塊圖,示出一習知的處理媒體內容之媒體應用程式,其係在一習知的計算環境中作業,圖中指示出一針對系統之攻擊。
第2圖為一方塊圖,示出一受信賴的處理媒體內容之應用程式,其係利用一容易抵抗攻擊之受保護的環境。
第3圖為一方塊圖,示出一受信賴的應用程式的示範組件,其可包含於該受保護的環境內。
第4圖為一方塊圖,示出一系統,用以從服務提供者下載數位媒體內容,其係利用到一示範的受信賴的應用程式,該應用程式則利用一受保護的環境。
第5圖為一方塊圖,示出示範的攻擊向量,由一使用者或機制所開發而企圖以未授權方式存取一計算環境中典型地存在的媒體內容及其他資料。
第6圖為一流程圖,示出產生並維持一受保護的環境之程序,其容易限制對媒體內容及其他資料之未授權存取。
第7圖為一方塊圖,示出示範核心組件及其他組件,其係被利用來產生一示範的安全性的計算環境。
第8圖及第9圖為流程圖,示出一示範程序,用以載入核心組件以產生一示範的安全性的計算環境。
第10圖為一方塊圖,示出一安全性的計算環境,其將一應用程式載入一示範的受保護的環境,以形成一典型地抵抗攻擊之受信賴的應用程式。
第11圖為一流程圖,示出一示範程序,用以產生一受保護的環境並將一應用程式載入該受保護的環境。
第12圖為一方塊圖,示出一示範的受信賴的應用程式,其係利用一示範的受保護的環境,週期性地檢查該安全性的計算環境的安全性狀態。
第13圖為一流程圖,示出一示範程序,用以週期性地檢查該安全性的計算環境的安全性狀態。
第14圖為一方塊圖,示出一示範的計算環境,可在其中實施程序、系統及方法以建立一安全性的計算環境(包括實施一受保護的環境)。
在附圖中,係用類似的編號來指派類似的元件。
100‧‧‧習知的計算環境
101‧‧‧PC或消費性電子裝置
102‧‧‧作業系統
103‧‧‧使用者模式
104‧‧‧核心
105‧‧‧媒體應用程式
106‧‧‧媒體內容
107‧‧‧攻擊

Claims (17)

  1. 一種在一計算裝置內建立一受保護的環境,並且載入一應用程式至該受保護的環境中之方法,該方法包含下列步驟:藉由該計算裝置之一作業系統的一核心之複數個核心組件的一核心載入器,將一受保護環境(PE)管理組件載入至該核心中,其中該被載入的PE管理組件係在該計算裝置上可操作,且其中該PE管理組件係該等複數個核心組件之一者,且其中該核心載入器係在該計算裝置上可操作;由該PE管理組件驗證該核心載入器為安全;回應於驗證該核心載入器為安全之該步驟,為該核心建立一安全性狀態,其中該建立步驟包含設定一核心安全旗標,該核心安全旗標係該等複數個核心組件之另一者,且其中該核心安全旗標指示該核心之該安全性狀態對於該受保護之環境而言是安全的;由該核心載入器載入該等複數個核心組件之其他尚未載入者,其中該等複數個核心組件之其他經載入者係在該計算裝置上可操作;驗證該等複數個核心組件之其他經載入者為安全的,使得該核心被視為完全可操作;回應於該核心被視為完全可操作而產生一安全性程序; 將該應用程式載入至該安全性程序中,其中該應用程式異於該作業系統;週期性地檢查該核心的該安全性狀態;以及有對該核心的該安全性狀態的任何改變,則通知該安全性程序。
  2. 如申請專利範圍第1項所述之方法,其中週期性地檢查該核心的該安全性狀態之該步驟更包含下列步驟:檢查該核心安全性旗標。
  3. 一種在一電子裝置中產生一受保護的環境,並且將一應用程式之至少一部分載入至該受保護的環境中的方法,該方法包含下列步驟:藉由該電子裝置之一作業系統的一核心之複數個核心組件的一核心載入器,將一受保護環境(PE)管理組件載入至該核心中,其中該被載入的PE管理組件係在該電子裝置上可操作,且其中該PE管理組件係該等複數個核心組件之一者,且其中該核心載入器係在該電子裝置上可操作;由該PE管理組件驗證該核心載入器為安全;為該應用程式之該至少一部分產生一安全性程序;檢查該應用程式之一簽章的有效性;檢查該應用程式之一憑證資料的有效性;決定該應用程式之該簽章不在一撤銷列表中,其 中該撤銷列表係經載入及維持在該核心中;決定該應用程式之該憑證資料不在該撤銷列表中;決定該應用程式之該簽章可接受以供使用;決定該應用程式之該憑證資料可接受以供使用;以及將該應用程式之該至少一部分載入至該受保護的環境之該安全性程序中,其中該應用程式異於該作業系統。
  4. 如申請專利範圍第3項所述之方法,其中若檢查該應用程式之該簽章的有效性之該步驟為失敗,則將該應用程式之該至少一部分載入至該安全性程序中的該步驟為失敗。
  5. 如申請專利範圍第3項所述之方法,其中若檢查該應用程式之該憑證資料的有效性之該步驟為失敗,則將該應用程式之該至少一部分載入至該安全性程序中的該步驟為失敗。
  6. 如申請專利範圍第3項所述之方法,其中若決定該應用程式之該憑證資料不在該撤銷列表中之該步驟失敗,則將該應用程式之該至少一部分載入至該安全性程序中的該步驟為失敗。
  7. 如申請專利範圍第3項所述之方法,其中若決定該應用程式之該簽章可接受以供使用之該步驟為失敗,則將該應用程式之該至少一部分載入至該安全性程序中 的該步驟為失敗。
  8. 如申請專利範圍第3項所述之方法,其中若決定該應用程式之該憑證資料可接受以供使用之該步驟為失敗,則將該應用程式之該至少一部分載入至該安全性程序中的該步驟為失敗。
  9. 如申請專利範圍第3項所述之方法,該方法更包含下列步驟:週期性地檢查該核心的一安全性狀態,並且相應地更新一核心安全性旗標。
  10. 一種包含電腦可執行指令的電腦可讀取裝置,當由一計算裝置執行該等電腦可執行指令時,該等電腦可執行指令致使該計算裝置執行一種在該計算裝置內建立一受保護的環境,並且載入一應用程式至該受保護的環境中之方法,該方法包含下列步驟:藉由該計算裝置之一作業系統的一核心之複數個核心組件的一核心載入器,將一受保護環境(PE)管理組件載入至該核心中,其中該被載入的PE管理組件係在該計算裝置上可操作,且其中該PE管理組件係該等複數個核心組件之一者,且其中該核心載入器係在該計算裝置上可操作;由該PE管理組件驗證該核心載入器為安全;回應於驗證該核心載入器為安全之該步驟,為該核心建立一安全性狀態,其中該建立步驟包含設定一核心安全旗標,該核心安全旗標係該等複數個核心組 件之另一者,且其中該核心安全旗標指示該核心之該安全性狀態對於該受保護之環境而言是安全的;由該核心載入器載入該等複數個核心組件之其他尚未載入者,其中該等複數個核心組件之其他經載入者係在該計算裝置上可操作;驗證該等複數個核心組件之其他經載入者為安全的,使得該核心被視為完全可操作;回應於該核心被視為完全可操作而產生一安全性程序;將該應用程式載入至該安全性程序中,其中該應用程式異於該作業系統;週期性地檢查該核心的該安全性狀態;以及有對該核心的該安全性狀態的任何改變,則通知該安全性程序。
  11. 如申請專利範圍第10項所述之電腦可讀取裝置,其中週期性地檢查該核心的該安全性狀態之該步驟更包含下列步驟:檢查該核心安全性旗標。
  12. 如申請專利範圍第10項所述之電腦可讀取裝置,該方法更包含下列步驟:檢查該應用程式之一簽章的有效性;檢查該應用程式之一憑證資料的有效性;決定該應用程式之該簽章不在一撤銷列表中,其中該撤銷列表係經載入及維持在該核心中; 決定該應用程式之該憑證資料不在該撤銷列表中;決定該應用程式之該簽章可接受以供使用;以及決定該應用程式之該憑證資料可接受以供使用。
  13. 如申請專利範圍第12項所述之電腦可讀取裝置,其中若檢查該應用程式之該簽章的有效性之該步驟為失敗,則將該應用程式載入至該安全性程序中的該步驟為失敗。
  14. 如申請專利範圍第12項所述之電腦可讀取裝置,其中若檢查該應用程式之該憑證資料的有效性之該步驟為失敗,則將該應用程式載入至該安全性程序中的該步驟為失敗。
  15. 如申請專利範圍第12項所述之電腦可讀取裝置,其中若決定該應用程式之該憑證資料不在該撤銷列表中之該步驟失敗,則將該應用程式載入至該安全性程序中的該步驟為失敗。
  16. 如申請專利範圍第12項所述之電腦可讀取裝置,其中若決定該應用程式之該簽章可接受以供使用之該步驟為失敗,則將該應用程式載入至該安全性程序中的該步驟為失敗。
  17. 如申請專利範圍第12項所述之電腦可讀取裝置,其中若決定該應用程式之該憑證資料可接受以供使用之該步驟為失敗,則將該應用程式載入至該安全性程序中 的該步驟為失敗。
TW094130187A 2005-04-22 2005-09-02 建立一受保護之計算環境的方法 TWI428786B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US67397905P 2005-04-22 2005-04-22
US11/116,598 US20060242406A1 (en) 2005-04-22 2005-04-27 Protected computing environment

Publications (2)

Publication Number Publication Date
TW200638237A TW200638237A (en) 2006-11-01
TWI428786B true TWI428786B (zh) 2014-03-01

Family

ID=46062814

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094130187A TWI428786B (zh) 2005-04-22 2005-09-02 建立一受保護之計算環境的方法

Country Status (3)

Country Link
KR (1) KR101238496B1 (zh)
TW (1) TWI428786B (zh)
WO (1) WO2006115533A2 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9363481B2 (en) 2005-04-22 2016-06-07 Microsoft Technology Licensing, Llc Protected media pipeline
US9436804B2 (en) 2005-04-22 2016-09-06 Microsoft Technology Licensing, Llc Establishing a unique session key using a hardware functionality scan
CN109753347B (zh) * 2017-11-06 2023-03-21 阿里巴巴集团控股有限公司 一种实现驱动的系统及方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327652B1 (en) * 1998-10-26 2001-12-04 Microsoft Corporation Loading and identifying a digital rights management operating system
US20030005335A1 (en) * 2001-06-28 2003-01-02 Hidekazu Watanabe Protecting secured codes and circuits in an integrated circuit
US7343493B2 (en) * 2002-03-28 2008-03-11 Lenovo (Singapore) Pte. Ltd. Encrypted file system using TCPA
US7322042B2 (en) * 2003-02-07 2008-01-22 Broadon Communications Corp. Secure and backward-compatible processor and secure software execution thereon

Also Published As

Publication number Publication date
WO2006115533A2 (en) 2006-11-02
KR101238496B1 (ko) 2013-03-04
WO2006115533A3 (en) 2007-11-15
TW200638237A (en) 2006-11-01
KR20080008337A (ko) 2008-01-23

Similar Documents

Publication Publication Date Title
US9189605B2 (en) Protected computing environment
US10516533B2 (en) Password triggered trusted encryption key deletion
KR101176646B1 (ko) 상태 검증을 사용하는 보호된 오퍼레이팅 시스템 부팅을 위한 시스템 및 방법
US9363481B2 (en) Protected media pipeline
JP5992457B2 (ja) オペレーティングシステムのコンフィグレーション値の保護
RU2541879C2 (ru) Механизм против мошенничества на основе доверенного объекта
JP2008537224A (ja) 安全な起動方法およびシステム
Löhr et al. Patterns for secure boot and secure storage in computer systems
Reid et al. DRM, trusted computing and operating system architecture
US8656190B2 (en) One time settable tamper resistant software repository
CN101458748B (zh) 载入内核组件以创建安全计算环境的方法
TWI428786B (zh) 建立一受保護之計算環境的方法
KR101265887B1 (ko) 보호 컴퓨팅 환경을 제공하는 방법 및 장치 내에 보호 환경을 설정하는 방법
Zhao Authentication and Data Protection under Strong Adversarial Model
Desai App Attestation Service: A Runtime Remote Attestation for User-mode Processes on Windows
Rosenbaum et al. A Tour Beyond BIOS into UEFI Secure Boot

Legal Events

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