專利名稱:通過應用程序分解將高保證特征集成到應用程序中的制作方法
技術領域:
本發明一般涉及計算領域,尤其是提供了一種以允許需要可信或安全測量的操作集成到普通、非安全軟件中的方式支持應用程序的劃分和分解的機制。
背景技術:
在計算領域,在一方面提供高度安全的系統和另一方面提供大量功能性特征和高度可擴充性的系統之間存在一種緊張關系。計算領域的安全性取決于用高度的確定性理解并預測計算機系統的行為(即,軟件和硬件的行為)的能力-即,確保系統不會通過無意的誤用或故意的攻擊以不同于為其設計的方式表現。例如,被設計成保護有版權的資料不被復制的計算機系統僅在可確保系統實際上做設計它所做的事情的方面是可信的。然而,大型、開放的體系結構往往是難處理且復雜的,從而很難分析其行為,因為有大量的變量可影響該行為。當前,諸如全服務(full-service)操作系統或文字處理器等大型復雜的程序看似不可能將其行為核實到高度的確定性。可能書寫可在各種各樣的條件和攻擊種類下測試并核實其行為的小程序,但是這一程序只能執行有限的功能組。由此,在提供大量的功能和提供高度的安全性之間存在一種緊張關系。
提出的一種解決方案是并肩運行兩個系統-一個具有高度功能性的大系統,以及另一具有高度安全性的小系統。由此,諸如WINDOWS XP等全服務操作系統可以連同一小型、高保證操作系統一起運行。只要在全服務操作系統中出現需要以具有高度可信的緊密控制的方式執行的事件,就可將該任務傳遞到高保證操作系統。
操作系統提供了其它程序可在其中執行的環境。然而,兩個操作系統可并肩存在這一純粹的事實無法解決給定的應用程序如何利用兩個環境的問題。期望應用程序能夠使用全特征環境來執行大多數功能(即,不需要高度安全性的功能),并使用高保證環境來執行的確需要高度安全性的功能。此外,期望以提供集成的用戶體驗的方式來使用這兩個環境。
鑒于上述原因,需要一種克服現有技術的缺點的系統。
發明內容
本發明提供了一種應用程序的功能可被分解(factor)或劃分成多個部分的機制-即,需要某一程度的安全或保護的行動,以及不需要那些安全或保護的行動。依照本發明,應用程序被實施為至少兩個軟件對象運行在全特征(但是低保證)環境中的軟件對象,以及運行在高保證(但特征有限)環境中的另一軟件對象。當全特征環境中的對象執行時,它可能遇到需要某一程度的保護的數據(如,該數據可能需要保密,或它可能需要在確定該數據未被篡改的意義上是可核實的)。當運行在全特征環境中的軟件對象遇到這樣的數據時,該軟件對象促使該數據被傳遞到高保證環境。在高保證環境中操作的軟件對象然后操作該數據。當處理該數據時需要的數據的任何輸入、輸出或存儲使用高保證環境來執行,以保護該數據不被該高保證環境外部出現的事件截取或篡改。
這兩個環境由一提供兩個環境進行通信所需要的基礎結構(或“管道(plumbing)”)的基礎組件主管(host)。例如,需要在高保證環境中處理的數據對象可具有該基礎組件生成的包裝。該包裝可標識向其路由該數據對象用于處理的環境,并且也可提供能夠核實該數據對象自從被該基礎組件包裝以來未被修改的事實的封印。由此,軟件對象可將數據對象傳遞到基礎組件,基礎組件能夠(1)確定該數據對象應當被傳遞到哪一環境,以及(2)核實該數據對象自從創建以來未被篡改。后一行動提供了允許跨平臺建立對象的可信性的基礎結構如果在第一機器上(具有第一基礎組件)創建了對象,則該第一基礎組件簽署該對象為該對象是在該基礎組件已知的高保證環境中生成的確切對象的證明。當然后在另一機器上打開該對象時,另一機器然后可以核實該簽名,并判定它們是否信任簽署者。(如,某些機器和/或基礎組件可能比其它機器更善于確保其主管的環境的正確行為;每一機器可為其自己決定它是否信任創建給定數據對象的平臺。)下文將描述本發明的其它特征。
當結合附圖閱讀時,可以更好地理解以上概述以及以下較佳實施例的詳細描述。為說明本發明的目的,附圖中示出了本發明的示例性構造;然而,本發明不限于所揭示的具體方法和手段。附圖中圖1是可實現本發明的各方面的示例計算環境的框圖;圖2是被分解成組成功能的應用程序的框圖;圖3所示是將數據路由到應用程序的不同組件的框圖;圖4是可分解應用程序的用戶界面的示例的框圖;圖5是支持分解的應用程序的使用的示例性體系結構的框圖;圖6是可使用分解的應用程序的環境的示例層次結構的框圖;圖7是在支持分解的應用程序的使用的環境中使用的示例數據對象的框圖;圖8是可通過其在分解的應用程序中處理數據的示例過程的流程圖。
具體實施例方式
綜述本發明提供了一種允許應用程序被劃分或“分解”成安全和非安全組件,并允許這些組件共同工作以提供關于該應用程序的集成用戶體驗的機制。例如,文字處理程序可被劃分成一執行大多數布局、編輯、打印、拼寫檢查、語法檢查等與文字處理器關聯的功能的非安全組件,以及一啟用需要某一保護方式的數據對象的顯示和編輯的安全組件。非安全組件可運行在普通、開放環境中,如典型的商業操作系統。安全組件可運行在允許某些類型的軟件以該軟件將正確表現的高保證運行的高保證環境中。本發明提供了關于這一情形的各種特征。首先,本發明提供了一種跨兩個組件的用戶體驗,使得從用戶的觀點來看,用戶看似盡可能地使用單個應用程序。第二,本發明提供允許應用程序處理安全和非安全數據的基礎結構或“管道”,并用于跨分區使用的這類數據。
對于用戶體驗,一般情況是用戶開始使用應用程序的非安全部分。在這一使用期間出現的數據(如,文字處理文檔中的敏感文本項目、電子表格中的敏感金融數字等)由應用程序的非安全部分以某一方式較佳地集成到用戶體驗中,即使該數據實際上無法由該非安全部分顯示。例如,如果文字處理文檔中有敏感或機密文本項目,則文字處理器的非安全部分能夠顯示標識該項目的框,以及表示即使無法顯示該文本也存在的事實的某一類型的圖形(如,指示文本的彎曲的線條)。在一個示例中,用戶可在該框或圖形上點擊,然后可調用應用程序的安全部分以在出現該框的屏幕的同一位置顯示文本。由此,對于用戶體驗集成了應用程序的安全和非安全部分。
對于基礎結構,本發明提供了一種允許一個環境中的數據對象被路由到另一環境的機制。通常,機密或敏感的數據對象-并由此需要由安全部分處理-將被加密,使得非安全部分無法讀取它。由此,這一對象通常由在生成該數據對象中起作用的每一組件包裝在一系列包裝中。每一包裝較佳地包含附加該包裝的組件的標識符,以及允許核實該包裝內的數據的完整性的封印。外部包裝較佳地由創建該包裝的機器上的可信根附加-即,在單個機器上主管各種環境,并由某一公知的授權機構核實為其行為可信的基礎組件。該外部包裝允許該基礎組件擔當路由器的作用。由此,當非安全部分遇到該對象時,它可能無法讀取該對象,但是可將該對象標識為要發送到另一環境用于處理的對象。由此,非安全部分將該對象發送到基礎組件,它然后基于包裝中標識了哪一環境將該對象路由到正確的環境。
另外,如果對象在第一機器上創建,并在第二機器上打開,則第二機器可通過檢查作為外部包裝的一部分的簽名確定該對象的可信性。應當理解,當基礎組件包裝并密封對象時,基礎組件本質上證明在對象的創建過程中,基礎組件在保護創建過程不受外部篡改的方面正確地執行了其功能。(基礎組件通常提供允許高保證環境保護其自身不受篡改的機制一如,可信處理器模塊(TPM)、存儲器隔離機制等)。某些基礎組件可比其它組件更好地執行這一功能,因此在其上打開數據對象的任一機器可作出關于是否相信該對象實際上是依照應用到該對象的安全需求來創建的判定。例如,如果對象包括通過鍵盤輸入的文本,則高保證環境將以安全的方式從鍵盤接收輸入,但是該環境安全地接收輸入的能力可取決于基礎組件保護從鍵盤到高保證環境的路徑的能力。由于包裝包含特定的基礎組件生成的封印或簽名,因此包裝支持一種可信模型,其中,不同的機器可作出關于可靠數據對象如何基于在其上創建該數據對象的機器的假定安全性的判定。
下文描述支持分解或劃分的應用程序的使用的系統、方法和機制。
示例性計算方案圖1示出了可在其中實現本發明的各方面的示例性計算環境。計算系統環境100僅為合適的計算環境的一個示例,并非建議對本發明的使用或功能的范圍的局限。也不應將計算環境100解釋為對示例性操作環境100中示出的任一組件或其組合具有依賴或需求。
本發明可以使用眾多其它通用或專用計算系統環境或配置來操作。適合使用本發明的眾所周知的計算系統、環境和/或配置包括但不限于個人計算機、服務器計算機、手持式或膝上設備、多處理器系統、基于微處理器的系統、機頂盒、可編程消費者電子設備、網絡PC、小型機、大型機、包括任一上述系統或設備的分布式計算環境等等。
本發明可在計算機可執行指令的一般上下文環境中描述,計算機可執行指令如由計算機執行的程序模塊。一般而言,程序模塊包括例程、程序、對象、組件、數據結構等等,執行特定的任務或實現特定的抽象數據類型。本發明也可以在分布式計算環境中實踐,其中,任務由通過通信網絡或其它數據傳輸媒質連接的遠程處理設備來執行。在分布式計算環境中,程序模塊可以位于本地和遠程計算機存儲媒質中,包括存儲器存儲設備。
參考圖1,用于實現本發明的示例系統包括以計算機110形式的通用計算裝置。計算機110的組件可包括但不限于,處理單元120、系統存儲器130以及將包括系統存儲器的各類系統組件耦合至處理單元120的系統總線121。處理單元120可表示如多線程處理器上支持的多個邏輯處理單元。系統總線121可以是若干種總線結構類型的任一種,包括存儲器總線或存儲器控制器、外圍總線以及使用各類總線結構的局部總線。作為示例而非局限,這類結構包括工業標準體系結構(ISA)總線、微通道體系結構(MCA)總線、增強ISA(EISA)總線、視頻電子技術標準協會(VESA)局部總線以及外圍部件互連(PCI)總線(也稱為Mezzanine總線)。系統總線121也可以被實現為點對點連接、交換光纖等通信設備。
計算機110通常包括各種計算機可讀媒質。計算機可讀媒質可以是可由計算機110訪問的任一可用媒質,包括易失和非易失媒質、可移動和不可移動媒質。作為示例而非局限,計算機可讀媒質包括計算機存儲媒質和通信媒質。計算機存儲媒質包括以用于儲存信息的任一方法或技術實現的易失和非易失,可移動和不可移動媒質,信息如計算機可讀指令、數據結構、程序模塊或其它數據。計算機存儲媒質包括但不限于,RAM、ROM、EEPROM、閃存或其它存儲器技術、CDROM、數字多功能盤(DVD)或其它光盤存儲、磁盒、磁帶、磁盤存儲或其它磁存儲設備、或可以用來儲存所期望的信息并可由計算機110訪問的任一其它媒質。通信媒質通常在諸如載波或其它傳輸機制的已調制數據信號中包含計算機可讀指令、數據結構、程序模塊或其它數據,并包括任一信息傳送媒質。術語“已調制數據信號”指以對信號中的信息進行編碼的方式設置或改變其一個或多個特征的信號。作為示例而非局限,通信媒質包括有線媒質,如有線網絡或直接連線連接,以及無線媒質,如聲學、RF、紅外和其它無線媒質。上述任一的組合也應當包括在計算機可讀媒質的范圍之內。
系統存儲器130包括以易失和/或非易失存儲器形式的計算機存儲媒質,如只讀存儲器(ROM)131和隨機存取存儲器(RAM)132。基本輸入/輸出系統133(BIOS)包括如在啟動時幫助在計算機110內的元件之間傳輸信息的基本例程,通常儲存在ROM 131中。RAM 132通常包含處理單元120立即可訪問或者當前正在操作的數據和/或程序模塊。作為示例而非局限,圖1示出了操作系統134、應用程序135、其它程序模塊136和程序數據137。
計算機110也可包括其它可移動/不可移動、易失/非易失計算機存儲媒質。僅作示例,圖1示出了對不可移動、非易失磁媒質進行讀寫的硬盤驅動器141、對可移動、非易失磁盤152進行讀寫的磁盤驅動器151以及對可移動、非易失光盤156,如CD ROM或其它光媒質進行讀寫的光盤驅動器155。可以在示例性操作環境中使用的其它可移動/不可移動、易失/非易失計算機存儲媒質包括但不限于,磁帶盒、閃存卡、數字多功能盤、數字視頻帶、固態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。圖1描述的邏輯連接包括局域網(LAN)171和廣域網(WAN)173,但也可包括其它網絡。這類網絡環境常見于辦公室、企業范圍計算機網絡、內聯網以及因特網。
當在LAN網絡環境中使用時,計算機110通過網絡接口或適配器170連接至LAN 171。當在WAN網絡環境中使用時,計算機110通常包括調制解調器172或其它裝置,用于通過WAN 173,如因特網建立通信。調制解調器172可以是內置或外置的,通過用戶輸入接口160或其它合適的機制連接至系統總線121。在網絡化環境中,描述的與計算機110相關的程序模塊或其部分可儲存在遠程存儲器存儲設備中。作為示例而非局限,圖1示出了遠程應用程序185駐留在存儲器設備181中。可以理解,示出的網絡連接是示例性的,也可以使用在計算機之間建立通信鏈路的其它裝置。
經劃分或經“分解”的應用程序軟件,如應用程序,通常執行各種不同的功能并操作各種不同類型的數據。在這一意義上,應用程序可被視為不同功能的集合。將一個應用程序分解成其各種不同的功能是有用的,使得這些不同的功能可被單獨執行(如,分配給提供不同安全級別的環境)。圖2示出了一個應用程序如何被分解成其各種不同的功能。
應用程序135包括各種不同的功能202(1)、202(2)、…、202(n)、202(n+1)、202(n+2)、…、202(n+m)。例如,應用程序135可以是文字處理程序,單獨的功能可以是編輯、察看、打印、跟蹤變化等等。應當注意,盡管圖2示出應用程序135具有n+m個離散的功能,在判定什么是離散功能中應當謹慎判斷。例如,所有的打印功能可被視為單個功能,或者打印可被視為包括兩個或多個不同的功能(如,打印一頁或者打印整個文檔)。另外,如后文進一步描述的,同一基本操作可被視為多個功能,取決于正在操作什么類型的數據。(如,察看文檔的基本操作可被認為是兩個不同功能之一,取決于被察看的數據是安全還是非安全的。)由此,可以有兩個單獨的察看功能,一個在某一方面是安全的,一個不是。本質上,將一個程序分解成其組成功能是圍繞程序所做的事情(和/或程序所操作的各種不同類型的數據)畫出邊界的問題,并且一般沒有關于如何畫這些邊界的特定要求。
在一個示例中,功能可分組在一起,使得功能202(1)到202(n)是第一分區206(1)的一部分,功能202(n+1)到功能202(n+m)是第二分區206(2)的部分。可以方便地以這一方式分組功能,使得可以類似地處理同一分區中的功能。例如,分區206(1)可包括應用程序135的涉及普通、非安全數據的功能,而分區206(2)可包括應用程序135的涉及機密或安全數據(或需要其它某一級別的保護的數據)的功能。由此,分區206(1)中的功能可在普通開放環境(如,由普通商業操作系統提供的環境)中執行,而分區206(2)中的功能可在高保證環境中運行。(高保證環境在下文更具體討論。)圖3示出了如何使用分區來允許單個應用程序135處理安全和非安全數據的示例。在圖3的示例中,應用程序135執行需要高度保護的操作302(如,涉及機密數據的操作),并且也執行需要低程度保護或不需要保護的操作304(如,不涉及機密數據的操作)。(在本示例中,數據上的“操作”可包括任一類型的數據處理,如執行數據的輸入或輸出,執行數據的計算等)。在本示例中,不涉及機密數據的操作的功能由應用程序135的分區206(1)處理,涉及機密數據(或需要某一類型的保護的數據)的操作的功能由分區206(2)處理。例如,如果應用程序135是文字處理程序,則顯示普通(非保護)文檔可由分區206(1)處理,而顯示機密文檔可由分區206(2)處理。作為另一示例,如果應用程序135是股票貿易程序,則分區206(1)可包含允許用戶查尋股票的當前價格的功能,而分區206(2)可在驗證用戶之后允許用戶購買或出售股份(在這一情況下,用戶的驗證憑證以及他或她的財物賬號是機密數據的一種類型)。
應當理解,圖3示出了應用程序的不同分區可用于處理機密和非機密數據,但是圖3不限于用于實現或使用分區應用程序的任一具體機制。下文結合圖4-8討論了一種以提供集成用戶體驗的方式支持應用程序的劃分和分區的使用的示例體系結構。
示例性經劃分的應用程序應用程序的各種功能可依照任一標準來劃分。在圖3的示例中,依照該應用程序是處理安全還是非安全數據來劃分應用程序的功能。當劃分應用程序時,期望將各種劃分集成到單個用戶體驗中。圖4示出了經劃分的應用程序的一個示例用戶界面。(應當理解,“安全”數據指需要某一類型的保護的數據,盡管本發明不限于任一具體類型的保護。例如,在“保密”的意義上,數據可需要保護,在這一情況下,可加密該數據。作為另一示例,在可核實的意義上數據可需要保護-即,確定該數據自從時間中的某一參考點以來未被修改的能力-在這一情況下,可簽署該數據。)用戶界面400是文字處理程序的界面。(應當理解,文字處理程序是應用程序的一個方便的示例,盡管它不意味著唯一的示例。)在圖4的示例中,用戶界面400顯示了作為文字處理文檔的一部分的各種項目402(1)到402(5)。項目402(1)是普通的非安全文本。項目402(2)是非安全圖形404。項目402(3)、402(4)和402(5)是安全文本的數據。應用程序的非安全分區執行不涉及安全數據的處理的所有處理。在本示例中,該處理包括非安全項目402(1)和402(2)的顯示(并可能有編輯、打印、保存等),以及所有項目(甚至是安全項目)的布局。非安全分區能夠展示安全項目,因為假定盡管項目402(3)、402(4)和402(5)的內容是機密的,這些項目的存在不是機密的。由此,非安全分區能夠將項目402(3)到402(5)顯示為彎曲線條405,由此向用戶提供了關于非安全分區不能處理的內容的至少某些用戶體驗。
如果用戶希望察看內容項目402(3)、402(4)和402(5),例如,用戶可點擊表示給定內容項目的彎曲線條405。該行動可促使調用安全分區。安全項目之一中包含的內容然后可被傳遞到安全分區用于處理。在一個示例中,安全分區然后可在疊加在由非安全分區展示的內容的位置上的窗口中顯示實際內容項目-如,當安全分區顯示內容項目402(3)時,它可通過在先前顯示表示內容項目402(3)的彎曲線條405的區域的上方放置該內容項目的圖像。盡管上述情形涉及用戶與軟件的兩個不同片斷(即,安全和非安全分區)的交互動作,對用戶而言可似乎他與單個應用程序交互,由此提供了跨兩個分區的集成用戶體驗。
圖4示出了經劃分的應用程序為文字處理程序的示例。其它示例包括電子表格,其中用戶可在非安全分區中輸入公式并構建表格等,但是操作的實際數據僅對安全分區可用。由此,非安全分區在每一單元中顯示某一占位符數據(如,“xxxx”)。單元中數據的估算和呈現由應用程序的安全分區執行。當用戶按“計算”按鈕時,彈出一個窗口(由安全分區生成),并顯示適當的行和列中的單元值,它們基于對安全分區可用的基礎數據來計算。在這一實現中,安全分區將具有一估算引擎以及一(平凡的)呈現例程,但是不需要結合電子表格用戶界面的其它方面、幫助窗口、公式構造器等。
安全貿易應用程序,其中,相應地向安全和非安全分區分配功能。例如,顯示貿易圖表和股票信息(公共可用)可由非安全分區執行。另一方面,安全分區允許用戶輸入股票貿易符號、用戶要購買或售出的股票份額的價格和數量,并在第一次核實服務器的身份之后向遠程貿易服務器發送該信息。
以圖像格式(如,可移植文檔格式或“PDF”)輸出文檔的文字處理器。安全分區能夠讀并顯示該圖像。這一文檔的呈現被稱為文檔的“傳真”。基礎文字處理文檔(即,包含格式化代碼和文本字符而非僅圖像的文檔的版本)機器傳真由非安全分區發送到安全分區,并且安全分區顯示該傳真。用戶使用安全環境中的安全簽署代理簽署該傳真(或文檔和傳真的摘要)。簽署的傳真(稱為“傳真-0”)和基礎文檔以大型二進制對象(blob)返回到非安全分區。當核實器接收包含該文檔、傳真-0和傳真的簽名的大型二進制對象時,核實器首先基于基礎文字處理文檔呈現該傳真的一個新副本(稱為傳真-1)。核實器將傳真-0、傳真-1、Word文檔和簽名發送到安全分區,它核實傳真是相同的,并且傳真-0上的簽名是有效的。盡管該模型不提供文檔的保密(由于文檔的傳真-1仍可由非安全分區呈現),它的確服務來核實文檔的完整性一即,文檔是原始創建的那一個,并且未被修改的事實。
圖5示出了支持應用程序的劃分的體系結構。在圖5中,有可在其中運行軟件的兩個環境502(1)和502(2)。在本示例中,有四個單獨的處理器504(1)、504(2)、504(3)和504(4)。在本上下文中,“處理器”不僅指微處理器,還指以某一方式為應用程序處理數據的軟件組件。處理器504(1)和504(2)運行在環境502(1)中,處理器504(3)和504(4)運行在環境502(2)中。例如,處理器504(1)和504(3)可分別為單個文字處理應用程序的非安全和安全部分。基礎組件508主管環境502(1)和502(2),使得兩個環境可在單個機器上共存。本發明不限于任一具體類型的基礎組件508;基礎組件508的一些示例是虛擬機器監控器(VMM)、外內核、微內核或系統管理程序。例如,環境502(1)和502(2)可以是VMM或系統管理程序主管的單獨的操作系統。作為另一示例,基礎組件508可以是操作系統之一-如,提供某些用戶功能,并也實施其本身和其它(低保證)操作系統之間的分隔的高保證操作系統。
作為基礎組件508的部分運行的一個組件是基準監控器510。基準監控器510執行將給定的數據對象路由到正確的環境用于處理的功能。例如,在運行應用程序的過程中可遇到(或生成,或輸入)標簽數據506,基準監控器510促使標簽數據506被路由到正確的環境。標簽數據506與允許基準監控器510確定應當將該標簽數據路由到哪一環境的標識標記關聯。另外,標簽數據506也可包含允許目標環境確定應當將該數據給予哪一處理器來處理的額外的標記。標簽數據506的示例結構在下文結合圖7討論。
標簽數據506可在任何位置遇到(或生成,或輸入),盡管最典型的標簽數據將在一個環境中遇到,并被傳遞到另一環境。例如,文字處理應用程序的非安全部分可遇到包含某一機密文本的標簽數據。文字處理應用程序然后可以圖4所示的方式顯示該文本的表示(如無法破譯的彎曲線條)。萬一用戶期望顯示實際文本(如,通過點擊為該數據保留的區域),則應用程序的非安全分區(如,運行在環境502(1)中的處理器504(1))可向基準監控器510提供標簽數據506,它然后向環境502(2)提供該數據。環境502(2)然后可將該數據路由到正確的處理器(如,處理器504(3)),它然后能夠以上文結合圖4描述的方式在屏幕的適當位置上顯示該數據。
應當理解,在圖5的模型內,應用程序本質上由處理器構成-即,可處理不同的指定類型的數據或執行某些類別的任務的組件-并且應用程序的不同分區使用不同的處理器。例如,處理器504(1)和504(3)可表示單個應用程序(如,文字處理應用程序)的安全和非安全處理器,其中,根據數據是安全還是非安全數據將數據路由到處理器504(1)或504(3)的任一個。
也應當理解,沒有關于什么類型的環境可用的要求,但是一個環境是高保證操作系統,另一環境是普通的全服務開放操作系統是尤其有用的。“高保證”操作系統是提供將正確執行其期望功能的相對高級的保證的系統。如果所有的軟件(包括操作系統)與描述該軟件的期望功能的規范相關聯,并且如果所有軟件遭受導致軟件以非預期的方式表現的某一級別的程序錯誤或攻擊,則“高保證”操作系統是提供操作系統將依照其規范表現的相對高級可信度的系統。(大多數商業軟件具有顯式、書面規范,盡管本上下文中的規范也可包括關于軟件應當如何表現的隱式、非書面理解。)高保證與安全性不同,盡管高保證可用于實現安全性。例如,用于機密數據的處理器可被設計成運行在高保證操作系統中;在處理器保護機密數據的能力取決于它所運行的環境的正確行為(如,系統調用的正確執行、正確的進程隔離等)的方面,處理器可提供如果處理器運行在普通、全服務操作系統中就無法實現的一種安全級別。(高保證的折衷選擇使高保證環境具有十分有限的功能范圍;較大的程序是最難核實該程序將在各種各樣的情況下正確表現。由此,諸如WINDOWS XP等全服務商業操作系統通常被認為不是高保證的。)在以上高保證的描述的上下文中,可以理解,將一個應用程序劃分成處理不需要重大安全性的數據的低安全性處理器,以及需要更多安全性的數據的高安全性處理器通常是有用的。高安全性處理器可運行在高保證環境中,低安全性處理器可運行在低保證環境中。
支持經劃分的應用程序的示例體系結構圖6示出了可執行劃分應用程序的示例體系結構600。體系結構600包括基礎組件508,其功能是主管可執行應用程序的劃分的各種環境。如上所述,基礎組件508可采用各種形式,如VMM、外內核、微內核、系統管理程序等等。基礎組件508具有主管多個環境(如,操作系統)的功能,并也管理(并限制)這些環境之間的交互。多個環境的主管可使用各種技術來執行。例如,基礎組件508可向多個操作系統的每一個展現自含“虛擬機器”;操作系統然后控制虛擬機器“虛擬硬件”,并且基礎組件508向“真實的”硬件發出基于(但不必要與其相同)操作系統給予虛擬機器的指令的指令。(一般而言,這就是傳統的VMM如何工作的。)作為另一示例,基礎組件508可向不同的操作系統分配某些設備以及機器的物理地址空間的某些片段,并可通過準許每一操作系統僅控制其分配的設備和其分配的地址空間部分來實施這一分配。本發明不限于基礎組件的任一具體實施例;為圖6的目的,僅假定有一能夠主管多個環境的基礎組件,使得這些多個環境可以彼此某種程度的隔離在單個機器上共存。
在圖6的示例中,基礎組件508主管操作系統602(1)到602(4)。操作系統602(1)是WINDOWS XP操作系統或另一通用操作系統的一個實例;操作系統602(2)是Linux操作系統的一個實例;操作系統602(3)是“網絡點”-即,提供有限功能但是將正確實現該功能的高保證的高保證操作系統(在上述意義內);操作系統602(4)可以是另一通用操作系統,如OS/2。一般而言,基礎組件508可主管任意數量的操作系統(或其它類型的環境),并且圖6所示的四個操作系統僅為示例。
在給定的操作系統內,可能運行應用程序級軟件的片段。例如,MICROSOFTWORD文字處理程序(604)和MICROSOFT EXCEL電子表格程序(606)在WINDOWS XP操作系統602(1)下運行。Linux操作系統602(2)、網絡點602(3)和OS/2操作系統602(4)也可運行其自己的應用程序。在本示例中,稱為“Word-let”的程序(608)和“Excel-let”(610)在網絡點602(3)下運行。Word-let 608是當WORD需要處理安全程序時與WORD 604一起工作的安全程序。類似地,Excel-let610為EXCEL 606處理安全數據。由此,在圖4的示例中,WORD 604可以是處理非安全數據項目、在窗口內展示數據項目并顯式表示安全項目的不可破譯的彎曲線條的程序(或“處理器”)。Word-let 608可以是打開安全項目并在WORD 604為該項目保留的窗口的區域中呈現該項目的程序。本質上,WORD 604和Word-let608一起表示跨在不同的環境中執行的不同處理器的文字處理應用程序的功能的劃分(或“分解”)。類似地,EXCEL 606和Excel-let 610可具有類似的關系-即,EXCEL 606處理不涉及安全數據的大多數電子表格功能,而Excel-let 610代表EXCEL處理安全數據。
如上所述,網絡點602(3)是可提供可執行可信應用程序(即,對于諸如打開機密數據等敏感操作可足夠確信其行為可信的應用程序)的環境的高保證操作系統。然而,網絡點602(3)可能提供十分有限的功能。由此,例如,將文字處理應用程序劃分成WORD 604和Word-let 608是有用的,使得WORD可使用通用操作系統中可用的廣泛特征來提供廣泛的功能,并且Word-let可使用網絡點602(3)所提供的環境的高保證特性來執行(可能有限的)具有高度可信性的敏感功能。
圖6示出了提供支持應用程序的劃分的基礎結構的基礎組件。以下是該基礎結構可包括的一些特性的描述注冊和目錄服務基礎組件可提供一種接口,基礎組件所主管的環境可通過該接口向基礎組件注冊。基礎組件也可提供用以啟動主管的環境的方法(或者基礎組件可以是主管環境之一)。環境的保證級別是與該環境關聯的元信息,并且基礎組件可提供可任選的服務來以結構化方式訪問并查找該信息。
分隔主管環境具有基礎組件向其分配的安全上下文。環境的安全上下文可包含以下組件a.DAC上下文,如環境的代碼id。
b.MAC上下文在MAC的情況下,環境的MAC上下文包括敏感標簽和類別。
通信環境間通信由基礎組件通過使用它所擁有的單向傳輸來控制。
a.傳輸提供了環境之間的順序且可靠消息傳送。提供同步對象用于向環境通知關于傳輸上數據的到達。
b.訪問控制傳輸是基礎組件所擁有的對象,并且主管環境對傳輸的讀取和寫入的能力由基礎組件所實施的訪問控制模型來控制。在DAC的情況下,這由傳輸上的ACL控制用于行動“讀”和“寫”。在MAC的情況下,這由附加到傳輸的標簽控制。為提供對多級設備的輸出,基礎組件提供前端安全過濾器的實現。前端安全過濾器(FESF)是可被附加到傳輸的讀或寫端的向基礎組件注冊的功能。在寫(讀)-FESF的情況下,寫FESF由VMM在數據由VM寫入(讀取)傳輸之前調用。寫-FESF的一個示例是Seal(),它通常在如果MAC有效時在數據寫入普通(非高保證)環境之前應用到高保證環境中的數據。如果MAC未有效,則環境必須在向另一環境發送之前加密它認為私密敏感的數據。
消息傳輸跨不同的環境攜帶消息。消息是由基礎組件創建的數據大型二進制對象(data blob),它被結構化如下a.由基礎組件分配的安全上下文包含DAC和MAC上下文。DAC上下文包含創建環境的主題id。MAC上下文包含創建環境的敏感標簽和類別。
b.內容數據(包括由創建環境分配的安全上下文)。
更高級抽象環境(或運行在環境中的應用程序或其它軟件對象)可通過使用基礎組件展現的通信抽象由其自己實現RPC接口。這可以是環境所提供的服務代碼,或僅為庫代碼。可展現的另一抽象是環境之間的套接字調用接口,它不需要由基礎組件實現。
焦點管理在經劃分的應用程序的許多示例中,從一個環境到另一個的消息的到達可促使安全輸入或輸出設備的當前所有者中的變化。焦點管理由基礎組件在環境的請求之后提供-如,環境可在來自另一環境的消息到達后請求焦點中的變化。另一環境然后具有與該安全輸入/輸出設備的會話,并放棄控制。基礎組件可強迫終止環境的I/O會話。
用于經劃分的應用程序的示例數據對象圖7示出了數據對象的示例結構,它允許該數據對象用于經劃分的應用程序。如上所述,當應用程序被劃分時,應用程序的第一分區可遇到不能由該分區處理但需要被發送到第二分區的數據對象。在第一分區是應用程序的“非安全”部分,而第二分區是“安全”部分的情況下,第一分區較佳地可認識到數據對象需要被發送到別處用于處理,即使第一分區無法確定關于該對象的其它情況(如,即使第一分區無法讀該對象的內容)。另外,在某些情況下,重要的是核實該數據對象實際上在安全情況下創建,并未被修改(如,應當可確定數據是否輸入到一種保護在從鍵盤到應用程序的I/O流的路徑上的數據免遭欺騙的環境)。由此,同樣較佳地,數據對象以允許核實其處理鏈的方式顯示。
數據對象700包括數據項目702。數據項目702是數據對象700為攜帶目的而存在的基礎實質內容-如,機密文字處理文檔(或其部分)、電子表格的敏感財政數據、金融交易中驗證用戶的密碼信息等等。
數據項目702由處理該數據的體系結構的每一層在一系列包裝中包裝。每一包裝用于兩個目的(1)包裝標識在該項目上放置該包裝的實體(如,應用程序、環境等),它隨后協助將項目路由到該實體;(2)包裝以隨后允許核實該項目自從被包裝以來未被修改的方式密封該項目。例如,如果Word-let 608創建數據項目702,則Word-let可附加數據項目702的數字簽名以及將Word-let標識為處理器的頭,隨后當需要以某一方式處理數據項目702時,它應當被路由到該處理器。由此,該簽名和頭構成了包裝704。應當注意,包裝不限于簽名和頭,或任一特定的實施例,有各種允許標識項目并允許核實項目的完整性(如,未修改)的已知技術。
如上所述,諸如Word-let等處理器的安全性基于可信組件的層次結構-即,Word-let是可信的,因為它依賴于網絡點的高保證;網絡點是可信的,因為它依賴于基礎組件的隔離能力,等等。由此,鏈的層次結構中的每一組件逐漸通向創建數據項目702并以其自己的包裝來包裝該項目的應用程序。已由Word-let的包裝來包裝的數據項目702然后由網絡點的包裝706來包裝。該(雙重包裝的)項目然后由基礎組件的包裝708來包裝。每一包裝本質上標識了包裝組件,并也構成包裝的內容自從它們被包裝以來未改變的可核實斷言(在包裝組件是可信的意義上)。
另外,由于包裝是依照層次的順序嵌套的,每一包裝可用于路由目的。由此,當應用程序遇到數據對象700時,外部包裝708將該對象標識為需要被路由到另一處理器的對象,因此該對象被發送到基礎組件。基礎組件然后使用包裝來核實包裝內的內容的完整性,并使用下一層包裝706來確定該內容需要被路由到哪一環境(在本情況下為到網絡點)。網絡點然后核實包裝706內的內容的完整性,并也使用包裝704來確定哪一軟件對象(在本情況下為Word-let)將處理內容。Word-let然后核實包裝704內的內容的完整性。該內容是數據項目702。由此,數據對象700的結構允許數據對象702在逐漸通向處理數據項目702的處理器的鏈的每一步驟中被路由并核實。
使用經劃分的應用程序的示例過程圖8示出了可使用經劃分的應用程序的一個示例過程。為圖8的示例目的,假定應用程序具有兩個處理器,稱為處理器1和處理器2。
最初,處理器1運行;在處理器運行的過程中,處理器1遇到數據對象(802)。如上所述,處理器1可能無法讀數據對象,但是能夠認識到數據對象為需要發送到別處以用于處理的某物。由此,處理器1將數據對象發送到基準監控器(804)。
基準監控器使用該數據對象的最外部包裝來確定該數據對象需要被發送到何處。如上所述,基準監控器(較佳地為上述基礎組件的一部分)也使用最外部的包裝來核實該包裝的內容的完整性。在本示例中,假定維持了該內容的完整性,并且基準監控器確定該數據對象需要由處理器2來處理(806)。(如上所述,基準監控器可能不直接知曉處理器2的存在,但是可使用包裝以將該對象路由到特定的環境,其中,該對象實際上由接收環境路由到處理器2。由于上文結合圖7討論了以這一方式的嵌套包裝的使用,為簡化圖8的示例的目的,僅假定數據方式可以某種方式路由到處理器2,而不考慮將對象路由到處理器2時所涉及的中間路由步驟。)當確定數據對象以處理器2為目的時,確定(808)處理器2是否正在運行。例如,該確定可由預期運行處理器2的環境作出(如,在當前示例中為網絡點)。如果處理器2未運行,則啟動處理器2(810)。在啟動了處理器2之后(或確定已運行),如果處理器2要處理任何輸入或輸出,則給予處理器2焦點(即,在輸入和輸出設備上執行I/O的能力)。
注意,上述示例僅為解釋目的提供,并且不應當被解釋為限制本發明。盡管參考各種實施例描述的本發明,可以理解,此處所使用的詞語是描述和說明的詞語,而非限制的詞語。此外,盡管此處參考特定的裝置、材料和環境描述了本發明,本發明并不意味著局限在此處所揭示的細節上;相反,本發明延及處于所附權利要求書的范圍之內的所有功能等效結構、方法和使用。從本說明書的教導獲益的本領域的技術人員可在不脫離本發明的各方面的范圍和精神的情況下對其作出許多修改和變化。
權利要求
1.一種管理應用程序的劃分的系統,其特征在于,它包括一主管第一環境和第二環境的基礎層,所述應用程序包括在所述第一環境中執行的第一軟件對象,所述第一軟件對象處理多個數據并包括將所述多個數據的第一個標識為不可由所述軟件對象處理的邏輯;以及在所述第二環境中執行并以防止對所述多個數據的所述第一個的篡改的方式處理所述多個數據的所述第一個的第二軟件對象,所述基礎層包括或主管從所述軟件對象接收所述多個數據的所述第一個并將所述多個數據的所述第一個路由到所述第二環境的邏輯。
2.如權利要求1所述的系統,其特征在于,所述第一軟件對象促使在顯示設備上顯示所述多個數據的所述第一個的表示,所述表示包括一個或多個不可破譯的記號。
3.如權利要求2所述的系統,其特征在于,所述一個或多個不可破譯的記號(1)彼此大小相同,或者(2)為與所述多個數據的所述第一個的內容不相關的大小。
4.如權利要求1所述的系統,其特征在于,由所述第二軟件對象提供的所述防篡改能力包括所述第二環境通過將所述多個數據的所述第一個的表示寫入一與顯示設備關聯的視頻存儲器中,以促使所述表示取代顯示所述表示的所述顯示設備的位置上的任何圖像,從而阻止對所述多個數據的所述第一個的顯示的干擾。
5.如權利要求1所述的系統,其特征在于,所述多個數據的所述第一個在鍵盤上輸入,并且其中,由所述第二軟件對象提供的所述防篡改包括阻止對從所述鍵盤轉移到所述第二軟件對象的輸入流的所述多個數據的所述第一個的篡改。
6.如權利要求5所述的系統,其特征在于,所述第二應用程序簽署所述多個數據的所述第一個以防止隨后對所述多個數據的所述第一個的篡改。
7.如權利要求6所述的系統,其特征在于,所述第二環境簽署所述多個數據的所述第一個和由所述第二應用程序創建的簽名作為所述多個數據的所述第一個和所述簽名系在所述第二環境中被創建的指示。
8.如權利要求1所述的系統,其特征在于,所述基礎層包括向所述第二環境分配第一標識符的組件。
9.如權利要求8所述的系統,其特征在于,所述多個數據的所述第一個包括或附有所述第一標識符和標識所述第二軟件對象的第二標識符。
10.如權利要求1所述的系統,其特征在于,所述第一環境與描述所述第一環境的行為的第一規范相關聯,其中,所述第二環境與描述所述第二環境的行為的第二規范相關聯,其中,所述第二環境符合所述第二規范比所述第一環境符合所述第一規范具有更高的保證級別。
11.如權利要求10所述的系統,其特征在于,所述第二軟件對象依賴于所述第二環境的行為,以阻止對所述多個數據的所述第一個的篡改。
12.如權利要求1所述的系統,其特征在于,所述基礎層是所述第二環境,或包括在所述第二環境中。
13.一種在第一環境中執行、處理向其應用一種政策的數據的第一軟件對象方法,其特征在于,所述方法包括所述第一軟件對象遇到所述數據;所述第一軟件對象確定所述數據無法由所述第一軟件對象處理;所述第一軟件對象促使將所述數據被提供給在第二環境中執行的第二軟件對象,所述第二環境提供所述第二環境中執行的行動將被正確執行的第一保證級別,其中,所述第二軟件對象以使用所述保證來阻止出現在所述第二環境外部的行動對所述數據的篡改的方式處理所述數據。
14.如權利要求13所述的方法,其特征在于,所述防篡改包括阻止對所述數據的改變。
15.如權利要求14所述的方法,其特征在于,所述數據在一可視顯示設備上顯示,并且其中,所述防篡改包括在所述可視顯示設備的位置上顯示所述數據的表示,并取代不同于在所述位置上呈現的所述表示的任何圖像。
16.如權利要求13所述的方法,其特征在于,所述第一軟件對象促使所述數據的表示在一可視顯示設備上顯示,所述表示包括一個或多個不可破譯的記號。
17.如權利要求16所述的方法,其特征在于,所述表示(1)彼此大小相同,或(2)具有與所述多個數據的所述第一個的內容不相關的大小。
18.如權利要求16所述的方法,其特征在于,所述第一軟件對象或所述第二軟件對象、或所述第一軟件對象和所述第二軟件對象的組合,促使所述可視顯示設備上顯示的項目在至少一個方面變化,以準許察看由所述第二軟件對象生成的所述數據的圖像。
19.如權利要求14所述的方法,其特征在于,所述數據使用鍵盤來提供,并且其中,所述防篡改包括阻止對從所述鍵盤轉移到所述第二軟件對象的輸入流的所述數據的改變。
20.如權利要求13所述的方法,其特征在于,所述安全政策指定所述數據由所述第二軟件對象處理。
21.如權利要求13所述的方法,其特征在于,所述數據包括將所述第二環境標識為處理所述數據的位置的第一標簽,或與該第一標簽相關聯。
22.如權利要求21所述的方法,其特征在于,所述數據包括將所述第二軟件對象標識為所述數據的處理器的第二標簽,或與該第一標簽相關聯,并且其中,所述第二環境基于所述第二標簽將所述數據路由到所述第二軟件對象。
23.如權利要求13所述的方法,其特征在于,所述第二環境與描述所述第二環境的行為的第一規范相關聯,并且其中,所述保證規定所述第二環境符合所述規范。
24.如權利要求13所述的方法,其特征在于,所述第一環境與描述所述第一環境行為的第二規范相關聯,并且其中,所述第一環境提供所述第一環境中執行的行動將被正確執行的第二保證級別,所述第二保證級別相對低于所述第一保證級別。
25.一種在其上編碼了允許用戶操作第一和第二類數據的代碼和數據的計算機可讀媒質,所述第二類數據比所述第一類數據需要相對較高級別的保護來免遭篡改,其特征在于,所述代碼和數據包括第一軟件對象,它與描述所述第一軟件對象的行為的第一規范相關聯,所述第一軟件對象包括以下指令操作所述第一類數據的成員;辨認所述第二類數據的成員為無法由所述第一軟件對象處理;以及促使所述第二類數據的所述成員被路由到第二軟件對象;以及所述第二軟件對象,它與描述所述第二軟件對象的行為的第二規范相關聯,所述第二軟件對象符合所述第二規范比所述第一軟件對象符合所述第一規范有相對更高的保證級別,所述第二軟件對象包括操作所述第二類數據的成員的指令。
26.如權利要求25所述的計算機可讀媒質,其特征在于,所述第一軟件對象在第一環境中操作,其中,所述第二軟件對象在第二環境中操作,其中,所述第一環境與描述所述第一軟件環境的行為的第三規范相關聯,其中,所述第二環境與描述所述第二環境的行為的第四規范相關聯,其中,所述第二環境符合所述第四規范的保證級別相對高于所述第一環境符合所述第一規范的保證級別,并且其中,所述第二軟件對象符合所述第二規范的保證衍生自所述第二軟件對象對所述第二環境的行為的信賴。
27.如權利要求25所述的計算機可讀媒質,其特征在于,所述第二類數據的每一成員包括(1)指示所述第二類的所述成員要在所述第二環境中處理的第一標簽,以及(2)由所述第二環境分配的指示所述第二類的所述成員要由所述第二軟件對象處理的第二標簽。
28.如權利要求27所述的計算機可讀媒質,其特征在于,所述第一軟件對象促使所述第二類的成員通過向一基礎組件發送所述第二類的成員而被路由到所述第二軟件對象,所述第一標簽由所述基礎組件分配,所述第二標簽可由所述第二環境辨認,但不可由所述基礎組件辨認。
29.如權利要求25所述的計算機可讀媒質,其特征在于,所述第一軟件對象在一可視顯示設備上顯示輸出,所述輸出包括要顯示所述第二類的所述成員的所述可視顯示設備上的一個或多個位置,并且其中,所述第二軟件對象在所述一個或多個位置上顯示所述第二類的所述數據的表示。
30.如權利要求29所述的計算機可讀媒質,其特征在于,所述表示由促使所述表示被寫入與所述可視顯示設備相關聯的視頻存儲器的所述第二環境顯示在所述一個或多個位置中。
31.如權利要求25所述的計算機可讀媒質,其特征在于,所述第二類的成員包括使用鍵盤輸入的數據,并且其中,促使所述第二類數據的所述成員被路由到所述第二軟件對象包括所述第二環境將所述第二類的成員以防止在所述第二環境外部出現的事件對所述第二類的成員進行篡改的方式從所述鍵盤傳輸到所述第二軟件對象。
32.一種支持將應用程序至少劃分成第一軟件對象和第二軟件對象的系統,所述系統主管第一環境和第二環境,所述第一軟件對象運行在所述第一環境中,所述第二軟件對象運行在所述第二環境中,其特征在于,所述系統包括展現以下方法中的至少一個的應用編程接口第一方法,它從所述第一軟件對象接收第一數據對象,其包括(1)可由所述第二軟件對象處理的數據,以及(2)由所述系統分配給所述第二環境的第一標識符;且它基于所述第一標識符將所述第一數據對象路由到所述第二環境;第二方法,它創建第二數據對象,其包括(1)可由所述第二軟件對象處理的數據;(2)所述第一標識符;(3)允許隨后確定所述第二數據對象自從由所述第二方法創建以來未被篡改的驗證數據;第三方法,它從所述第一環境接收與所述第二軟件對象相關聯的第二標識符,并指導創建所述第二軟件對象的實例;以及第四方法,它從所述第一軟件環境接收(1)第三數據對象,以及(2)與所述第一軟件對象相關聯的第三標識符,并指導基于已接收所述第三標識符創建所述第一軟件對象的實例,并指導所述第一軟件對象操作所述第三數據對象。
33.如權利要求32所述的系統,其特征在于,所述第一環境與描述所述第一環境的行為的第一規范相關聯,其中,所述第二環境與描述所述第二環境的行為的第二規范相關聯,其中,有所述第一環境符合所述第一規范的第一保證級別,其中,有所述第二環境符合所述第二規范的第二保證級別,并且其中,所述第二保證級別相對高于所述第一保證級別。
34.如權利要求33所述的系統,其特征在于,所述第二軟件提供所述第二軟件對象將保護數據的保證,所述保證至少部分地通過依賴于所述第二環境的行為來提供。
全文摘要
應用程序分解或劃分用于將安全特征集成到常規的應用程序中。應用程序的功能依照給定的行動是否涉及敏感數據的處理被劃分成兩個組。創建單獨的軟件對象(處理器)來執行這兩組行動。可信處理器處理安全數據并運行在高保證環境中。當另一處理器遇到安全數據時,該數據被發送到可信處理器。以允許數據被路由到可信處理器的方式包裝該數據,并防止數據被不同于可信處理器的任一實體破譯。提供了一種基礎結構,它包裝對象、將它們路由到正確的處理器,并允許通過反向通往已知為可信的基礎組件的可信鏈來證明它們的完整性。
文檔編號G06F21/22GK1609801SQ20041008829
公開日2005年4月27日 申請日期2004年10月21日 優先權日2003年10月24日
發明者K·D·雷, M·佩納多, P·英格蘭德, T·V·庫里恩 申請人:微軟公司