專利名稱:在主顯示器內提供安全顯示窗口的方法和設備的制作方法
技術領域:
本發明的實施例總體上涉及在計算平臺上保護敏感數據免遭惡意軟件 的危害,并且更具體地涉及利用虛擬化技術和受保護音頻視頻路徑技術來 阻止用戶環境直接地訪問未加密敏感數據。
背景技術:
存在著各種機制,用來在耦合到計算設備的視頻控制臺或監視器上顯 示數據或圖形。具有虛擬化技術架構的計算設備使得一些應用能夠運行在 擁有較高或較低特權的虛擬機或虛擬設備中。
存在著各種機制,用來啟用平臺上的虛擬化。可以以多種方式在平臺
(例如,來 自英特爾公司)上實現虛擬化技術(VT)。 VT啟用了操作系統的基 于硬件的虛擬化。實現了一個這樣的平臺,使得架構被分割為兩個虛擬化 的操作系統服務操作系統(service operating system, SOS)和功能操作系統 (capability operating system, COS)。 COS典型地是用戶環境,而SOS典型 地執行操作系統(OS)服務等。SOS典型地將與COS OS運行在相同的特權 級別。SOS也可被稱為"虛擬設備"。COS代表了傳統的用戶OS,用戶在 其中運行應用。SOS典型地是更加受約束/受控制的分區,該分區可防范無 意的軟件修改,例如通過下載等。因此,通常認為SOS比COS更安全。 在具有SOS和COS的VT模型中,平臺可以被限制為在虛擬設備(或
sos)之上僅有一個分區,即cos。 sos和cos可以是在此類架構上的僅
有分區。
英特爾⑧vPROTM桌面PC支持基于虛擬設備的架構。所有的虛擬設備 都是運行在虛擬機監視器(VMM)之上的安全的、隔離的虛擬機。出于性能 的原因,vPROTM平臺中的物理圖形驅動程序在用戶OS (COS)虛擬機中運 行。虛擬設備向COS發送數據以用于顯示。在這種類型的系統中,虛擬設 備沒有到顯示輸出的安全路徑。當物理圖形驅動程序仍然在COS中時,所采取的利用了傳統的軟件虛擬化技術的方式會遭受到基于COS的惡意軟 件攻擊。另一種方式通過將物理圖形驅動程序移到SOS中并使所有的COS 應用都通過SOS來發送圖像數據以用于顯示來獲得更高的安全性。在這種 情況下,所有的COS應用都會遭受到潛在的性能降級。
通過以下對本發明的詳細描述,本發明的特征和優勢將變得顯而易見,
其中
圖1A是方框圖,其示出了在具有單一操作系統的平臺中的受保護音 頻視頻路徑;
圖IB是方框圖,其示出了根據本發明的實施例,在具有虛擬化技術 (VT)的平臺中的受保護音頻視頻路徑;
圖2是方框圖,其示出了根據本發明的實施例,對敏感數據的加密和 解密;
圖3是方框圖,其示出了根據本發明的實施例,在功能操作系統和服 務操作系統之間的交互;
圖4是方框圖,其示出了根據實施例,將被用于加密/解密數據的唯一 應用密鑰的生成;
圖4A是方框圖,其示出了根據實施例,運行時認證過程和安全信道 的建立;
圖5是流程圖,其示出了根據本發明的實現,用于對硬件設備進行認
證并建立安全信道的實時方法;以及
圖6是流程圖,其示出了根據本發明的實施例,用于利用虛擬化技術 來取得并顯示數據的示例性安全方法。
具體實施例方式
本發明的實施例可在各個領域中得到應用,在這些領域中,用戶想要 査看需要防止被第三方獲取的內容。例如,用戶可能希望使用互聯網瀏覽 器(例如,可從微軟公司得到的Internet Explorer⑧瀏覽器)來與銀行或金融 機構辦理交易。用戶需要防止個人和金融信息被第三方或惡意軟件獲取。本發明的實施例使得用戶能夠取得己加密內容以將其顯示在監視器的一部 分上,同時數據不會被其它軟件應用或第三方截取。盡管以下說明將此場 景用作示例以幫助示出本發明的實施例,但是,可以理解的是,還可將本 發明的實施例用于保護其它類型的敏感數據或內容。
在本說明書中所提及的本發明的"一個實施例"或"一實施例"意味 著結合該實施例所描述的特定的特征、結構或特性被包括在本發明的至 少一個實施例中。因此,在本說明書的全文各處出現的短語"在一個實施 例中"未必都是指同一個實施例。
出于解釋的目的,闡述了特定的配置和細節,以便提供對本發明的透 徹理解。然而,對本領域的技術人員來說顯而易見的是,可在沒有本文所 呈現的特定細節的情況下實施本發明的實施例。此外,為了不使本發明難 以理解,公知的特征可被省略或簡化。在本說明書的全文中給出了各種示 例。這些示例僅僅是對本發明的特定實施例的說明。本發明的范圍并不限 于所給出的示例。
本發明的實施例是涉及防止以不安全和開放的方式將存儲在存儲設備 上的已加密內容傳送給顯示設備的系統和方法。為了進行論述,內容常常 被稱為"視頻"內容。然而,受保護內容可包括音頻和/或視頻內容。視頻 內容要在以通信方式被耦合到計算設備的視頻設備上被顯示。然而,受保 護內容可能不止包括視頻部分。在至少一個實施例中,本發明是要利用受 保護音頻視頻路徑(PAVP)硬件來保護在虛擬設備內部創建的視頻內容。在
實施例中,虛擬設備或服務操作系統(SOS)經由功能操作系統(COS)向圖形 引擎發送已加密內容。然而,由于穿過COS的內容是被加密的,所以該內 容可免遭來自COS內部的攻擊。為了從虛擬設備應用獲得對PAVP硬件的 訪問,在COS中加入了代理應用。
在一實施例中,虛擬設備首先在sos中對數據進行加密,然后只是向
COS代理應用發送已加密數據。COS代理應用又向圖形硬件轉發該已加密
數據。圖形硬件中的解密引擎對該數據進行解密。現在,明文數據經由隔
離的存儲器進入到諸如子畫面覆蓋(Sprite overlay)這樣的安全顯示引擎。因 此,在任何時間點上,明文數據對基于COS的應用來說都是不可見的。 COS中的代理應用也會做出必要的圖形API (應用程序接口)調用(即DirectX、 OGL),以創建應用窗口并使虛擬設備工作負荷在圖形引擎上被 排定。
保護數據的一種方法是在平臺上一個分離的虛擬機中運行取得該數據 的應用。虛擬機(VM)常常利用公共平臺上的存儲器的可分離區域,其中, 對一個VM可用的存儲器對其它VM來說是不可用的。當應用運行在平臺 上的OS中時,該存儲器可由運行在相同OS中的多個其它應用共享。任 何特權軟件(Ring-0驅動程序)都可訪問所有存儲器,并因此可獲得對應用 數據的訪問權。在被感染的系統中,某些這種特權軟件可能是惡意的。因 此,將應用劃分到分離的VM中是有益的。
在現有的系統(例如運行著可從微軟公司獲得的Windows OS)中,OS 想要控制顯示并直接與圖形硬件進行通信以驅動顯示輸出。因此,OS驅 動程序和圖形驅動程序需要擁有對要顯示在顯示控制臺上的內容的訪問 權。在現有的系統中, 一旦OS擁有了對該內容的訪問權,則所有Ring-0 軟件和運行在相同空間中的其它應用(包括惡意軟件)也會擁有對該內容的 訪問權。
本發明的實施例可利用受保護音頻視頻路徑(PAVP)技術。通常,PAVP 技術被開發用于在沒有VT功能的平臺(即具有單個OS的系統)上提供視頻 的安全回放。
可在共有未決的美國專利申請No. 12/006,282 (代理人案號P26735)中 找到PAVP技術的更多細節,該申請的名稱為"Securing Content for Playback",由Balaji Vembu等人在2007年12月31日提交。可在未決的 美國專利申請No. 11/961,848 (代理人案號P26736)中找到有關于在圖形硬 件和應用之間進行密鑰交換的更多細節,該申請的名稱為"Methods For Authenticating A Hardware Device And Providing A Secure Channel To Deliver Data",由Balaji Vembu等人在2007年12月20日提交。
在一實施例中,當用戶知道將被取得的數據是敏感的并且應當被保護 時,用戶可選擇安全的網絡瀏覽器。對該安全瀏覽器的調用也將啟動將會 被用在SOS VM中的SOS應用和SOS PAVP驅動程序。在這個時刻,COS 正運行在COS VM中,而SOS正運行在SOS VM中。VMM正在運行以 便對運行在該平臺上的各個虛擬機進行控制。在正常操作的情況下,VMM會對由每個虛擬機所使用的時間片進行控制,并捕獲特定事件以便由
VMM或運行在SOS上的系統服務來進行處理。
當用戶在安全瀏覽器中點擊超鏈接或數據時,COS應用會向SOS應 用發送該事件。SOS應用負責與遠程服務器安全地通信,以便取得用戶數 據并對其進行處理。在處理之后,SOS應用會對將被顯示的數據進行加密, 并且通過SOS圖形驅動程序將該數據發送給COS代理應用。在COS應用
能夠看到或操作敏感數據之前,此數據將被加密。
由于用戶輸入(例如鼠標點擊)是以通常的方式來進行操作的,并且所 請求的數據出現在視頻監視器上,因此,對于用戶來說,運行在用戶環境
(VM)中的用戶接口(瀏覽器應用)似乎擁有了對敏感數據的訪問權。然而, 用戶接口環境實際上沒有見到未加密數據,而是僅僅使得運行在SOS VM 上的應用去訪問敏感數據并使圖形引擎去解密和顯示該敏感數據。該數據 將保持加密狀態,直到圖形硬件對其進行解密并將其發送到子畫面顯示引 擎以便顯示為內部窗口。
現在參考圖1A,示出了一個方框圖,其說明了具有PAVP硬件的平臺 101。 PAVP架構使得針對數據的安全路徑能夠從應用IIO下行至圖形硬件 103a,并到達監視器120a。首先,應用與硬件會執行密鑰交換協議,其結 果是產生了在應用和硬件之間共用的共享會話密鑰。運行在平臺101上的 操作系統(OS) 112中的應用110可向AES (高級加密標準)引擎113a發送已 加密數據(如圖所示,被保護在兩個磚墻之間)。AES引擎113a擁有對存儲 器105a中的受保護存儲部分106a的訪問權。
圖形引擎103a是獨立于計算機的中央處理單元而執行圖形處理任務 的硬件。圖形引擎可包括圖形協處理器、圖形加速器、顯示適配器或圖形 適配器。圖形引擎103a可包括加密引擎113a。
已加密內容可包括任何類型的已加密材料,包括圖形、視頻、靜態圖 片、文本、游戲、軟件或數據。已加密信息可來自于應用110,該應用包 括用于解密的密鑰。可將傳入的數據存儲在存儲器105a中的未受保護存儲 部分之內。在一個實施例中,可將存儲器105a的一部分與圖形引擎相關聯。 盡管存儲器105a被示為一個具有受保護區域和未受保護區域的存儲器,但 是,也可使用分離的存儲器。存儲器105a可包括集成的或外部的存儲器控制器。在一個實施例中,存儲器105a是系統存儲器。
如在圖1A中所示的,己加密材料被存儲在存儲區域106a中的緩沖區 或表面(surface)上。在一個實施例中,已加密緩沖區可被存儲在未受保護 存儲器105a中。只有已解密緩沖區需要被存儲在受保護存儲器106a中。 當需要已加密內容時,可由圖形引擎103a中的引擎從存儲器105a中的已 加密表面106a處讀取該已加密內容。在一個實施例中,引擎113a可以是 加密/解密引擎。在一個實施例中,引擎113a可實現由位于華盛頓特區的 美國國家標準與技術研究院(NIST)所開發的高級加密標準(AES)。引擎113a 可負責通過使用密鑰(如由密鑰Kl所指示的)來對已加密內容進行解密。
然而,弓l擎113a可以向渲染器引對未示出)傳遞已解密信息,而不是 對其進行存儲,其中,該渲染器引擎是圖形引擎103a的一部分,其負責對 內容進行處理以用于顯示。
在對用于顯示的圖形信息進行渲染的過程中,渲染器引擎可存儲各種 信息。可在緩沖區中或在存儲器105a之內存儲信息。可防止105a中的存 儲器被除授權實體之外的任何其它實體訪問。盡管渲染器以未加密方式在 表面上存儲信息,但是,以渲染器引擎的形式存在的硬件阻止了非圖形引 擎硬件對該信息的訪問。
105a中的存儲器可被基本輸入/輸出系統(BIOS)"竊取"。如本文所使
用的,"被竊取的存儲器"描述了對操作系統不可用的存儲器。它可包括緩 沖區,這些緩沖區被用于排序或散列操作(例如查詢工作空間存儲器),或 者針對那些被用作用來進行分配的通用存儲器的緩沖區來使用以存儲內部 數據結構(例如鎖、事務上下文和連接信息)。被竊取的存儲器不被操作系 統所識別。結果是,操作系統和運行在操作系統上的應用沒有辦法來訪問 被竊取的存儲器。代替地,只有圖形引擎103a的部件被允許通過使用圖形 弓I擎驅動程序來訪問被竊取的存儲器。
在另一個實施例中,存儲器105a中的部分存儲也可以被基于頁表的保 護機制來保護,其中,由可信實體而非操作系統來對該頁面表進行操作。 也可使用其它形式的受保護存儲器。
起初,應用IIO對計算機系統IOI的圖形引擎硬件進行認證,并與該 硬件交換會話密鑰。 一旦會話被建立,應用IIO在向硬件發送數據之前會對該數據進行加密。 一旦會話被設置,之后,應用110會向常規的、未受 保護存儲器105a輸出己加密數據。
引擎(其為圖形引擎103a的一部分)從未受保護存儲器105a中讀取數 據、進行解密并將結果寫入受保護存儲器。由硬件來實施受保護存儲器。 只有圖形引擎硬件(例如引擎、渲染器引擎、或者子畫面或覆蓋引擎123a) 可以訪問被竊取的存儲器。圖形硬件不允許已解密數據被寫到未受保護存 儲器中。
在對受保護信息進行硬件處理期間,該數據駐留在受保護存儲器中。 受保護存儲器是由系統基本輸入/輸出系統(BIOS)在引導時創建的,BIOS 留出了一塊存儲器(其被稱為被竊取的存儲器)以便設置中間緩沖區。 一旦 BIOS分配了該受保護存儲器并在硬件寄存器中存儲了該受保護存儲器的 參數,則該寄存器會被鎖定,以防止通過操縱受保護存儲器的邊界來訪問 數據。當對受保護內容進行回放時,圖形引擎驅動程序會在受保護存儲器 中分配表面。這些表面或緩沖區被稱作受保護表面。硬件具有特定的機制 來確保受保護存儲器對于任何運行在系統101上的軟件或非圖形硬件設備 來說都是不可訪問的。應用將確保在向硬件傳遞內容之前,受保護存儲器 已被正確地建立。
圖形引擎硬件103a也具有受保護執行模式,該模式確保了沒有圖形操 作可導致來自受保護存儲器的數據會被復制到未受保護存儲器中。該模式 允許在硬件處理期間就對數據進行保護,而無需檢查由軟件所提交的圖形 命令或操作。否則的話,軟件驅動程序可能己受到危害并可能試圖去獲取 受保護數據。
注意,在一個實施例中,顯示表面不能被合成代理訪問。合成 (compositkm)是操作系統上的軟件部件。合成對用戶正在使用的不同的顯 示窗口如何合并為最終顯示進行控制。合成為各種圖像分配緩沖區,然后 對其進行合并,并將硬件指向合并后的圖像。合成代理的一個示例是微軟 VistaTM操作系統上的Aero合成。
合成代理在計算機的中央處理單元而非圖形引擎上運行。因此,其被 阻止對存儲器105a中的受保護存儲器進行訪問。然而,通過指向將被合并 的緩沖區并提供用于合成后的圖像的目標緩沖區,合成代理可指示圖形硬件代表它來執行合成。
在其它實施例中,利用可信合成,顯示引擎121可被用于所有數據顯 示。然而,在可信合成中,合成代理可以指示圖形引擎將緩沖區合成到一 起以產生作為結果的屏幕緩沖區,可通過使用常規的顯示引擎來顯示該屏 幕緩沖區。
代替地,圖形引擎硬件103a可使用子畫面或覆蓋引擎123a來輸出圖 形引擎數據以用于顯示。顯示器120a顯示來自顯示引擎和子畫面覆蓋引擎 123a的組合數據。結果是,不需要合成代理去訪問被竊取的存儲器。
合成代理可向顯示引擎121供應內容。來自顯示引擎121的輸出會與 來自子畫面或覆蓋引擎123a的輸出相組合,以便在顯示器120a上提供顯 示。在一個實施例中,來自被竊取的存儲器的視頻可繞過合成代理,并直 接到達覆蓋引擎。如密鑰K2所示,可在組合器和顯示器120a之間提供內 容保護。
無保護上下文可使得寫操作能夠被指向任何地方。因此,未受保護存 儲器中的任何信息可在任何地方被寫入。為了從無保護上下文轉變到有保 護上下文,圖形引擎驅動程序可在命令緩沖區中插入一個命令,以使圖形 引擎硬件進入有保護上下文模式。在有保護上下文模式中,可執行從受保 護或未受保護表面的讀操作。寫操作必須僅是針對受保護表面的。在一個 實施例中,可以通過與存儲器相關聯的存儲器控制器來實現對寫操作的限 制。為了返回到無保護模式,圖形引擎硬件可執行清除命令以便脫離有保 護上下文模式。
清除命令可擦除任何可能被暫時存儲在圖形引擎硬件(例如渲染器引 擎)中的受保護信息。這可防止在圖形引擎硬件已經轉變到無保護上下文之 后去訪問在該硬件中不再被使用的臨時數據。
顯示硬件可使用新的、可從受保護存儲器中讀出信息的鉤子(hook)。 該架構可為應用110提供一種機制,用來指定允許哪個顯示平面(display plane)能訪問受保護存儲器。典型的顯示引擎具有許多顯示平面,這些顯示 平面能夠產生存儲器訪問操作,并通過顯示管道(pipeline)將數據發送出去。
根據一些實施例,用于對內容進行安全回放的基礎結構為應用提供了 一種機制,可用來在將數據發送到圖形引擎之前安全地對圖形引擎進行認
13證。其還可為應用提供安全加密信道以向硬件發送數據。在一些實施例中,由于中間緩沖區對任何運行在計算機上的軟件和任何除圖形引擎設備之外的其它硬件設備來說都是不可訪問的,因此,在硬件處理期間,數據可受到保護。
在一個實施例中,保護模式在一個實施例中可由硬件來實現。然而,也可考慮軟件和固件的實現。當以軟件和固件實現時,指令可被存儲在諸如半導體存儲器之類的計算機可讀介質上。首先,圖形引擎驅動程序插入命令,以便將圖形硬件置于有保護上下文中。
一旦進入了保護模式,將會確定一個寫操作是否是針對受保護表面的。如果不是,該寫操作被阻止。否則,該寫操作被執行。可執行從受保護或未受保護表面的讀操作。
確定是否存在退出有保護上下文的請求。如果不存在,則流程會進行迭代以尋找更多的寫操作和讀操作來執行。如果存在,則會執行圖形引擎清除命令。之后,確定是否存在對受保護存儲器的讀操作。此刻,在退出有保護上下文之前,圖形硬件會阻止該讀操作。
因此,操作系統上的應用的訪問操作不會訪問受保護存儲器,該存儲器對于操作系統來說是未知的。其它部件僅可以通過其存儲器控制器來尋求對受保護存儲器進行訪問,該存儲器控制器阻止由非圖形引擎硬件所進4亍的訪問。
在典型的系統中,圖形硬件103a會對將被顯示的數據進行操作,并將該數據存儲在存儲器中。由顯示引擎從存儲器105a中取得將被顯示的數據,并且之后,在監視器120a上顯示該數據。在圖示中,子畫面覆蓋123a為顯示引擎,其用于從存儲器中取得數據并在監視器120a的一部分上顯示該數據。子畫面覆蓋123a可在監視器120a上可見的正常窗口之上顯示小窗口。因此,至少存在有兩個存儲緩沖區(memory buffer)。第一緩沖區包含用于顯示第一窗口的信息,本文中稱為"外部窗口",第二緩沖區包含用于在第一窗口內顯示信息的信息,本文中稱為"內部"窗口。最終顯示在監視器120a上的圖像是保存在兩個緩沖區內的信息的組合。在實施例中,子畫面顯示引擎123a擁有對用于內部窗口的信息的訪問權。例如,舊的電影播放器利用子畫面顯示引擎在外部窗口之內、內部窗口之中顯示電影或視頻信息。可以理解的是,實際上,可在整個顯示器中顯示內部窗口(例如,在正常的用戶操作期間,在監視器上可出現許多窗口。然而,只有它們中的一些(如果存在的話)會包含受保護內容或敏感信息。在此情況下,第一緩沖區可包含所有將被顯示的未受保護內容,例如,電子郵件程序、字處理程序和數據等。第二存儲緩沖區可包含通過網絡(例如,互聯網)取得的敏感信息。出于舉例說明的目的,在本文中,敏感數據被描述為通過網絡從金融機構取得的用戶的金融數據。可以理解的是,使用本發明的實施例,可保護各種類型的敏感數據。由于用戶的賬戶信息和收支平衡是很敏感的,它們將被存儲在第二存儲緩沖區中,像將由金融機構顯示一樣。該第二存儲緩沖區可被保護以便只有子畫面引擎有權訪問它。
可在基于處理器的軟件應用110和圖形硬件103a之間交換加密/解密密鑰。圖形硬件103a中的解密引擎113a用來對已加密的受保護數據進行解密。可使用安全子畫面覆蓋123a直接在顯示器120a上顯示視頻管道輸出。應用IIO在把數據存儲到存儲器中之前對該數據進行加密。這樣,受保護數據作為已加密數據駐留在安全存儲部分106a中。運行在OS中的其它軟件應用將沒有對未加密數據的訪問權。數據將被圖形硬件解密以便在監視器120a上顯示該數據。
為了更清楚地示出本發明的方法在現實世界情形中是如何使用的,以下說明將關注使用方法來對硬件設備進行認證并且在軟件應用和硬件設備之間建立安全信道。軟件應用用作信源(source)設備,硬件應用用作信宿(sink)設備。雖然這是以下說明的重點,但是,值得注意的是,本發明既不限于軟件信源設備,也不限于硬件信宿設備。
本文描述了示例性的實施例,其中,硬件設備包括視頻處理設備,軟件應用用來向視頻處理設備傳送音頻和視頻數據。本發明的方法確保了以安全和受保護的方式來傳遞音頻/視頻數據。對于一個實施例,如下文所描述的,秘密加密密鑰永久地駐留在視頻處理設備或圖形硬件中,應用密鑰被提供給生成軟件應用的軟件供應商,并且,由軟件應用來生成隨機會話密鑰。
根據本發明的實現,秘密加密密鑰被永久地嵌入到硬件設備(例如視頻處理設備或圖形設備103a)中。在一些實現中,視頻處理設備可包括嵌入在計算機主板上的集成電路設備中的一個或集合。在其它實現中,視頻處理設備可包括圖形卡,該圖形卡與計算機主板是分開的,但是又與后者電
耦合。在各種實現中,可通過加速圖形端口(AGP)、外圍組件接口(PCI贈、PCI Express槽或其它類似的擴展端口將圖形卡耦合到計算機主板。如本領域的技術人員所知的,視頻處理設備是有能力處理音頻/視頻數據的設備。在替代的實現中,硬件設備可以是除視頻處理設備之外的設備。
秘密加密密鑰(SEK)可以是128位密鑰。在替代的實現中,SEK可具有更多數量的位(例如192或256位),或者具有更少數量的位(例如32或64位)。本領域的技術人員將意識到,位的數量可基于期望的安全級別而做出改變。在本發明的一些實現中,SEK可以是與高級加密標準(AES)相兼容的128位、192位或256位密鑰。也可使用其它加密方法。
在本發明的實現中,通過特殊的熔斷器(fose), SEK可被永久地嵌入到視頻處理設備中。例如,可將SEK經過包括了特殊熔斷器的寫入路徑寫入到視頻處理設備的存儲陣列中。之后,該特殊熔斷器被有意地燒斷以防止SEK被外部信源訪問或篡改。對SEK僅存的訪問是在視頻處理設備的內部,并且,該內部訪問對于外部信源來說是不可用的。在替代的實現中,SEK可被硬連線(hardwired)到寄存器傳輸級(RTL)中。
圖4以圖解方式示出了視頻處理設備400,其包括嵌入的SEK 402。SEK 402被永久地嵌入到視頻處理設備400內,并且不能被外部信源訪問或篡改。如上所述,SEK402可以是128、 192或256位密鑰,其可與AES
或其它密碼加密過程一起使用。
唯一應用密鑰(AppKey)406可被分配給軟件供應商。可為制造用于和本發明的視頻處理設備一起使用的軟件應用的每個軟件供應商分配唯一的AppKey。沒有兩個軟件供應商會共享相同的AppKey。在一些情況下,軟件供應商可被分配兩個或更多個AppKey。例如,如果第一 AppKey被破壞,則可分配第二AppKey。在一些實現中,由軟件供應商來選擇AppKey。在替代的應用中,由視頻處理設備的廠商來生成AppKey。在進一步的實現中,由獨立的第三方來選擇AppKey。
在本發明的一些實現中,AppKey可以是128位密鑰。在替代的實現中,AppKey可具有更多數量的位(例如192或256位),或具有更少數量的
16位(例如32或64位)。如將在下文中解釋的,除了被分配給軟件供應商之外,AppKey隨后將充當加密密鑰。同樣地,AppKey可以是與AES或替代的密碼加密過程相兼容的128位、192位或256位鑰匙。
可使用SEK來對唯一的AppKey進行加密,以生成已加密AppKey,在本文中稱為(AppKey)SEK 408。在一些實現中,可使用塊密碼加密。在本發明的進一步的實現中,可使用諸如AES之類的標準化加密。AES是一種特殊的塊密碼,其已被采納為加密標準。如本領域的技術人員所了解的,可將此塊密碼與SEK—起使用從而來對AppKey進行加密。例如,可以使用SEK 402對AppKey 406進行整個塊密碼加密過程,以輸出已加密的(AppKey)SEK408。在替代的實現中,還可以使用除AES之外的密碼。
在一些實現中,可在視頻處理設備自身上運行加密過程。例如,唯一的AppKey可被發送經過視頻處理設備,在視頻處理設備中利用了 SEK來對AppKey進行加密。在進一步的實現中,可使用并非特指視頻處理設備的設備來對唯一的AppKey進行加密。例如,可以使用加密工具來接受唯一的AppKey,并以與視頻處理設備相同的方式,通過使用AES來用SEK對該唯一的AppKey進行加密。僅有的要求是在加密工具中所使用的SEK要與被永久地嵌入到出售給消費者的眾多視頻處理設備中的SEK相匹配。這使得消費者所購買的視頻處理設備中的每個都能夠使用AES塊密碼和SEK來對(AppKey)SEK進行解密。在本發明的實現中,加密工具可包括正在運行加密軟件的計算機。
之后,已加密AppKey,即(AppKey)SEK,被提供給軟件供應商404。軟件供應商僅擁有對AppKey和(AppKey)SEK的訪問權。軟件供應商從未擁有對SEK的訪問權。另外,由于可使用諸如AES之類的加密方法,因此,即使軟件供應商擁有了對AppKey和(AppKey)SEK這兩者的訪問權,軟件供應商也沒有能力對SEK進行譯碼。
示出了在已加密應用密鑰(AppKey)SEK的初始預備期間,軟件供應商404與視頻處理設備400所進行的交互。如上所述,可以使用加密工具來代替視頻處理設備。軟件供應商404向視頻處理設備(或加密工具)400提供了 AppKey 406。同樣,盡管圖4示出了 AppKey 406是由軟件供應商404所提供的,但是,在替代的實現中,其可由視頻處理設備400的制造商或獨立的第三方來提供。視頻處理設備(或加密工具)400使用SEK 402來對 AppKey 406進行加密。諸如AES之類的加密方法可被用于該加密。之后, 視頻處理設備(或加密工具)400會輸出已加密AppKey,其被表示為 (AppKey)SEK408,并且,該(AppKey)SEK 408被提供給軟件供應商404。
用來生成(AppKey)SEK的針對AppKey的加密操作可在安全位置發 生。例如,可在制造視頻處理設備的制造設施處實施該預備階段。在替代 的實現中,可向軟件供應商提供加密工具,其中,該軟件供應商之后會在 安全位置維護該加密工具并使用該工具來生成已加密AppKey。值得注意 的是,出于安全的目的,該加密過程不應當在一般的用戶平臺上執行。
圖5是一個流程圖,其示出了本發明的實現的示例性運行時方法500, 該方法用于認證硬件設備(即,信宿設備),例如視頻處理設備,并在軟件 應用(即信源設備)和視頻處理設備之間建立安全信道。圖4A以圖解方式示 出了根據本發明的實現的運行時認證過程和安全信道的建立操作。下面將 并行地論述這兩個圖。如上所述,使用安全信道,以便以受保護的方式從 軟件應用向視頻處理設備傳送音頻/視頻數據。
從圖5開始,由軟件供應商來提供與視頻處理設備一起使用的軟件應 用(圖5的過程502)。軟件應用被設計用來至少部分地處理音頻/視頻數據。 根據本發明的實現,被嵌入到軟件應用中的有對于軟件供應商來說唯一的 AppKey 406。另外,被嵌入到軟件應用中的還有已加密的(AppKey)SEK 408,其包括由視頻處理設備或加密工具使用了 SEK 402進行加密之后的 AppKey。以上描述了針對特定軟件供應商來生成(AppKey)SEK 408的示例 性過程。
通常,軟件應用600使用本領域公知的標準的防篡改軟件方法來保護 AppKey406和(AppKey)SEK 408。傳統軟件應用通常使用這樣的方法在處 理過程中對許可密鑰和音頻/視頻數據進行保護。需要注意的是,如果 AppKey和(AppKey)SEK被破壞,由于使用了諸如AES之類的加密方法, 則仍將無法確定SEK的值。
圖4A示出了軟件應用600和視頻處理設備400。如上所述,SEK402 被永久地嵌入到視頻處理設備400中。AppKey 406被包括在軟件應用600 中,該AppKey 406對于軟件供應商來說是唯一 的,并且已加密的(AppKey)SEK 408包括了使用SEK 402進行加密之后的AppKey 606。軟件 應用600也包括音頻/視頻數據(A/V) 602,該數據需要被安全地傳送到視頻 處理設備400。
在運行時,使用軟件應用和視頻處理設備來處理和傳送音頻/視頻數 據。先于音頻/視頻數據的傳輸或與之并發地,軟件應用向視頻處理設備 400傳送(AppKey)SEK 408 (在504)。由于(AppKey)SEK被加密,因此, (AppKey)SEK能以幾乎不能被解密的高度受保護的方式在軟件應用和視 頻處理設備之間傳遞。
軟件應用也可生成隨機會話密鑰(RSK) 604 (在506)。 RSK 604通常是 一個唯一密鑰,其由軟件應用隨機地產生,并且不必與任何軟件供應商相 關。軟件應用可以使用標準隨機數生成庫來生成該會話密鑰。
之后,軟件應用使用AppKey406對RSK604進行加密(在508)。這生 成了己加密的(RSK)AppKey606。如上所述,AppKey 406可以是與標準加 密方法相兼容的128、 192或256位密鑰。在一個實現中,可以使用與利用 SEK 402來加密AppKey 406相類似的技術來實施該加密。例如,可使用 諸如AES之類的塊密碼加密。可以使用AppKey 406對RSK 604進行整個 塊密碼加密過程,以輸出已加密的(RSK)AppKey 606。在其它實現中,可 使用利用AppKey 406來加密RSK 604的替代方法。
接著,軟件應用向視頻處理設備400傳送已加密的(RSK)AppKey 606 (在510)。可以在與已加密的(AppKey)SEK408大約相同的時間將已加密的 (RSK)AppKey 606發送給視頻處理設備400,或者可以稍后發送。通常, 軟件應用將在大約相同的時間傳送已加密的(RSK)AppKey 606和已加密的 (AppKey)SEK408這兩者。同(AppKey)SEK 408 —樣,由于(RSK)AppKey 606是被加密的,因此,其以幾乎不可能被解密的高度受保護的方式在軟 件應用和視頻處理設備之間傳遞。
在從軟件應用600接收到已加密的(AppKey)SEK 408之后,視頻處理 設備400使用被永久地嵌入到視頻處理設備400內的SEK 402來對 (AppKey)SEK 408進行解密(在512)。視頻處理設備400現在已經取得 AppKey406。可以使用SEK402對(AppKey)SEK 408進行整個塊密碼解密 過程,以輸出已解密的AppKey 406。 AES可作為解密標準來使用。視頻處理設備400因此能以受保護的方式來接收AppKey 406。
接著,在從軟件應用600接收到己加密的(RSK)AppKey606之后,視 頻處理設備400使用之前解密的AppKey 406來對(RSK)AppKey 606進行 解密(在514)。視頻處理設備現在己經取得RSK 604。可以使用AppKey 406 對已加密的(RSK)AppKey 606進行整個塊密碼解密過程,以輸出己解密的 RSK 604。同樣,AES可作為解密標準來使用。視頻處理設備400因此能 以受保護的方式來接收RSK 604。在處理流程中的該點處,軟件應用600 和視頻處理設備400擁有共同的共享RSK 604。
軟件應用600現在可以使用RSK 604以受保護的方式來向視頻處理設 備400發送已加密音頻/視頻數據608。首先,軟件應用600使用RSK 604 來對音頻/視頻數據602進行加密(在516)。己加密音頻/視頻數據在本文中 被稱為(A/V)RSK 608。在一個實現中,可通過使用與用SEK來加密AppKey 和用AppKey來加密RSK相類似的技術來執行該加密。在另一個實現中, 當計數器(CTR)模式被用于音頻/視頻數據加密時,電子密碼本(ECB)模式可 被用于密鑰加密。需要注意的是,對于音頻/視頻數據加密,可以使用本領 域中任何可用的加密模式,其包括但不限于塊密碼加密技術的任何可用變 型,例如密碼塊鏈接(CBC)、傳播密碼塊鏈接(PCBC)、密碼反饋(CFB)以及 輸出反饋(OFB)。之后,軟件應用600向視頻處理設備400傳送已加密的 CA/V)RSK 608 (在518)。當音頻/視頻數據在軟件應用和視頻處理設備之間 傳遞時,該加密操作可防止(A/V)RSK 608被截取和解碼。
視頻處理設備接收已加密的(A/V)RSK 608,并使用之前解密的RSK 604來對其進行解密(在520)。在一個實現中,可以使用與被用來對 (AppKey)SEK和(RSK)AppKey進行解密的技術相類似的技術來執行該解 密。基于適合于被用于音頻/視頻數據的加密方法的方法來選擇這里所實現 的解密方法。
視頻處理設備現在已經取得未加密音頻/視頻數據,視頻處理設備可處 理和傳送該數據(在522)。例如,視頻處理設備可對該數據進行處理,并且 在通過揚聲器傳送音頻的同時,在顯示設備上顯示視頻。
加密的使用保護了數據的傳輸。并且,因為在沒有事先擁有SEK的情 況下,視頻處理設備不能對AppKey或RSK進行解密,所以隱含地對硬件
20進行了認證。沒有SEK的硬件不能解密任何數據,并且因此,不能處理和 傳送音頻/視頻數據。
如上所述,圖4A示出了在軟件應用600和視頻處理設備400之間的 已加密數據的流動。如所示出的,軟件應用向視頻處理設備400傳送 (AppKey)SEK 408。軟件應用600還生成隨機會話密鑰RSK 604,用AppKey 406對RSK 604進行加密以生成(RSK)AppKey 606,并向視頻處理設備400 傳送(RSK)AppKey 606。最后,軟件應用600用RSK 604對A/V 602進行 加密,以生成己加密音頻/視頻數據(A/V)RSK608,并向視頻處理設備400 傳送(A/V)RSK 608。如圖4A所示,所有從軟件應用600流向視頻處理設 備400的數據都會被加密。
如上所述,PAVP硬件的目的是創建一種硬件機制,以便安全地播放 之前被記錄在存儲設備上的視頻內容。圖1B是方框圖,其示出了根據本 發明的實施例,如何利用如上所述的PAVP技術來確保當敏感數據或視 頻內容在配置有VT架構的平臺上的安全存儲器和圖形引擎之間移動時, 該敏感數據或視頻內容不會被不受阻礙地訪問。在具有VT功能的平臺中, 本發明的實施例利用COS 160和SOS 170來進一步保護內容免受惡意軟件 的危害。
出于舉例說明的目的,在上文中,使用播放視頻內容的例子來對PAVP 架構進行了論述。出于舉例說明的目的,在下文中,將在在顯示屏上顯示 敏感數據的情形中對本發明的實施例進行論述。在任一種情況下,PAVP 架構和會話密鑰使得己加密視頻或顯示內容能夠免受惡意軟件或誤用的危 害。
在一實施例中,可使用應用171 (例如安全瀏覽器)來與用戶的金融機 構安全地交互。在一個獨立的虛擬機(VM)中在SOS 170中啟動應用171。 因此,進程(瀏覽器)所訪問的所有數據被限定到VM內的進程。該應用的 一小部分(典型地,限于用戶接口)仍保留在COS中,以便經由COS代理 應用161來與SOS應用171進行交互。如上所述的, 一旦應用171接收到 數據,則該應用會與作為PAVP架構的一部分的硬件103b執行加密/解密 密鑰交換操作。由SOS 170經由COS代理應用161來執行該密鑰交換操 作。在任何時候,COS或用戶環境都未曾真正地持有明文密鑰。現在,經由圖形驅動程序163,可從應用171向圖形硬件103b發送已加密數據。
存儲設備105b在受保護區域106b中存儲加密形式的數據。如果沒有 對解密密鑰的訪問權,就不能從存儲設備105b中讀取該數據。COS應用 161沒有解密該數據的密鑰。然而,COS應用161知道該數據存在,并且 可對其進行定位。COS應用161可從存儲設備105b (從受保護區域106b) 中讀取該已加密數據,并且向PAVP硬件(圖形引擎)103b發送該己加密數 據。PAVP硬件基于在SOS應用和圖形硬件103b之間交換的會話密鑰來對 該敏感數據執行解密。解密密鑰被保存在解密引擎內,該解密引擎存在于 圖形顯示管道的內部。己解密數據被存儲在與COS隔離的存儲器的一部分 內。因此,該數據對于運行在COS內部的任何惡意軟件來說都是不可見的。 數據被呈現給安全子畫面覆蓋123b,后者又在顯示器120b上顯示該未加 密數據。因此,在任何時間點上,明文數據對于基于COS的應用來說都是 不可見的。
現在參考圖2,示出了一個方框圖,其說明了根據本發明的實施例, 對遍及整個平臺的內容的保護。圖6是一個流程圖,其示出了用于取得并 顯示敏感數據的示例性方法。在下文中,將并行地討論圖2和圖6。平臺 具有受保護存儲器106b,其擁有緩沖區,所述緩沖區包含有將由顯示引擎 在監視器120上顯示的數據。已解密表面-1存儲器220代表了存儲器的第 一緩沖區,己解密表面-4存儲器230代表了存儲器的第二緩沖區。用戶與 COS應用311進行交互(在61)。用戶調用(例如對安全瀏覽器的用戶調用) 使得SOS應用321和COS代理應用311被啟動。用戶與運行在COS中的 安全瀏覽器的一小部分進行交互。該安全瀏覽器的大部分運行在SOS VM 中,其中,數據可在遠離惡意軟件的情況下被安全地處理。只有用戶接口 部分運行在COS中。因此,通過做出合適的請求以獲得由圖形引擎顯示的 數據,COS應用在簡單地(向SOS應用)提供服務。
COS代理應用311接收交互請求,并向SOS應用321轉發信息以采取 行動(在62)。例如,由COS中的代理應用311把鼠標點擊發送給SOS應 用321 (在62)。現在,SOS應用321可基于用戶動作的位置來確定將要采 取的行動(例如,對用戶選擇做出響應,并從屬于金融機構的遠程服務器上 取得數據)。SOS應用321從信源取得敏感數據(在63)。 SOS應用321負責把從網絡信源(即金融機構網站)接收到的數據存儲到存儲器中。當數據被
接收到時,SOS應用321使用密鑰240來對數據進行加密(在64),并在已 加密表面存儲緩沖區210中存儲該已加密數據(在65)。VMM將存儲器210 的一些區域設置為可被COS和SOS VM共享。
COS代理應用311指示圖形硬件去訪問存儲器210中的已加密數據(在 66)。因為COS應用311沒有針對該已加密數據的密鑰,所以,運行在用 戶環境中的應用沒有對該數據的訪問權。因此,該數據仍然是安全的。解 密引擎201是圖形硬件的一部分,并且具有用于對存儲在緩沖區210中的 數據進行解密的密鑰250。解密引擎201取得已加密數據210并對其進行 解密(在67)。之后,已解密數據被存儲到受保護存儲器106b中的緩沖區 220中。視頻引擎205可執行對該數據的進一步處理。 一旦數據準備好被 顯示,其將被存儲在已解密表面-4存儲緩沖區230中。子畫面覆蓋204被 指示將緩沖區230中的數據顯示到監視器120上(在68)。因此,可以看出, 僅可由更高特權的SOS應用321和圖形及顯示硬件引擎(201、 205、 204) 來訪問已解密的敏感數據。可使用顯示引擎203來顯示未受保護數據,例 如,在監視器120上的外部窗口22內。可在監視器120上的內部窗口 21
中顯示受保護數據。
再次參考圖1A,盡管PAVP架構為敏感數據提供了更多的保護,但是, 該保護可能受到限制。由于單一的OS運行在平臺101上,因此,運行在 該OS中的惡意代碼可能會有能力獲得對未加密存儲緩沖區的訪問權。因 為,運行在用戶環境(例如用戶或COS VM)中的OS和其它應用由于這些進 程都沒有針對已加密數據的密鑰從而對數據沒有訪問權,所以,使用了虛 擬設備(例如VM)模型的本發明的實施例遭受惡意軟件危害的可能性較小。 此外,VMM或硬件構造可被用來劃分存儲器,從而COSVM對保存有未 加密數據的存儲緩沖區106b沒有物理訪問權。
現在參考圖3,示出了一個方框圖,其說明了根據本發明的實施例, 在COS和SOS之間的信息交換。在該圖示中,平臺具有虛擬機監視器 (VMM) 330,用來控制虛擬機的操作。在第一虛擬機310中將啟動功能操 作系統(COS)313。在該VM310中,瀏覽器應用311可被啟動。在實施例 中,為了最佳性能,COS需要訪問物理圖形設備。因此,在這種情況下,
23物理圖形驅動程序(PAVP已被啟用)315在該VM310中運轉。服務操作系 統(SOS)323在第二VM320中執行。SOS可提供各種OS服務、分配存儲 器等等。
例如,再次參考圖1B, SOS 170可對具有音頻驅動程序173的IP語 音(VoIP)應用171進行控制。VMM 180控制COS 160和SOS 170的操作。
SOS VM 320具有虛擬化的圖形驅動程序(PAVP已被啟用)325。當COS 之外的應用或進程需要訪問圖形硬件時,通過SOS PAVP驅動程序325來 啟用訪問。通過在虛擬化的圖形驅動程序325和COS代理應用311之間的 通信來對物理圖形驅動程序315進行訪問。本發明的實現令COS來擁有物 理圖形驅動程序,以便最優化OS對物理設備的訪問。例如,COS可以是 Windows OS,當能夠訪問物理圖形設備以顯示多個窗口和圖形時,該 Windows OS以最佳的情況工作。平臺上的其它應用可經由SOS VM 320 中的虛擬圖形驅動程序來傳送它們的圖形需求。SOS VM 320可對其它驅 動程序和物理設備進行控制。
本文描述的技術不限于任何特定的硬件或軟件配置;它們可在任何計 算、消費電子或處理環境中找到適用性。可以通過硬件、軟件或二者的結 合來實施該技術。
為了仿真,程序代碼通過使用硬件描述語言或另一種功能性描述語言 (其本質上提供了預計所設計的硬件將如何來執行的模型)來表示硬件。程 序代碼可以是匯編或機器語言、或者將被編譯和/或解釋的數據。另外,在 本領域中,談及軟件時,通常是采用如采取動作或造成結果這樣的一種形 式或另一種形式。這樣的表達式僅僅是一種簡化的方式,用于說明由處理 系統來執行程序代碼,這使得處理器執行動作或產生結果。
可以使用高級的過程或面向對象的編程語言來實現每個程序,以便與 處理系統進行通信。然而,如有需要,可以使用匯編或機器語言來實現程 序。無論如何,該語言都可被編譯或解釋。
程序指令可以用于使被用所述指令編程的通用或專用處理系統執行本 文描述的操作。替代地,可由包含有用于執行操作的硬線邏輯的特定硬件 組件來執行所述操作,或者,由已編程的計算機組件和定制的硬件組件的 任何組合來執行所述操作。本文描述的方法可被作為計算機程序產品來提供,該計算機程序產品可包括機器可訪問介質,其上存儲有指令,所述指 令可被用來對處理系統或其它電設備進行編程以執行該方法。
程序代碼或指令可被存儲在,例如,易失性和/或非易失性存儲器中, 例如存儲設備和/或相關聯的機器可讀或機器可訪問介質,包括固態存儲 器、硬盤、軟盤、光存儲、磁帶、閃速存儲器、記憶棒、數字視頻盤、數
字多用盤(DVD)等,以及更多的特殊介質,例如機器可訪問的生物狀態保 存存儲裝置。機器可讀介質可包括用于以機器可讀形式來存儲、發送或接 收信息的任何機制,并且,介質可包括諸如天線、光纖、通信接口等的有 形介質,其中,編碼有該程序代碼的電、光、聲或其它形式的傳播信號或 載波可穿過該有形介質。可以通過分組、串行數據、并行數據、傳播信號 等形式來傳輸程序代碼,并且可以以壓縮或加密的格式來使用程序代碼。
可以在執行在可編程機器上的程序中實現程序代碼,所述可編程機器 可以是,例如,移動或固定計算機、個人數字助理、機頂盒、移動電話和 尋呼機、消費電子設備(包括DVD播放器、個人錄像機、個人視頻播放器、 衛星接收機、立體聲接收機、有線電視接收機)以及其它電子設備,每個設 備都包括處理器、處理器可讀的易失性和/或非易失性存儲器、至少一個輸 入設備和/或一個或多個輸出設備。可將程序代碼應用于利用輸入設備來輸 入的數據,以便執行所述的實施例,并產生輸出信息。輸出信息可被應用 到一個或多個輸出設備。本領域的技術人員可以理解的是,可以用各種計 算機系統配置來實現所公開的主題的實施例,這些計算機系統配置包括多 處理器或多核處理器系統、小型機、大型機,以及可被嵌入到事實上任何 設備中的普及性的或小規模的計算機或處理器。也可在分布式計算環境中 實現所公開的主題的實施例,其中,可由通過通信網絡來連接的遠程處理 設備來執行任務或部分任務。
盡管操作可以被描述為順序性的過程,但是事實上,可并行地、并發 地和/或在分布式環境中執行其中的一些操作,并且其中,程序代碼被本地 和/或遠程地存儲,以便由單或多處理器機器來對其進行訪問。此外,在一 些實施例中,操作的次序可被重新安排,而不偏離所公開的主題的精神。 嵌入式控制器可使用程序代碼或與之協同使用。
盡管己參照說明性的實施例描述了本發明,但是,并不是要以限制的意義來解釋本說明書。對于所說明的實施例的各種修改以及本發明的其它 實施例對本發明所屬領域的技術人員來說都是顯而易見的,這都被認為是 在本發明的精神和范圍之內。
權利要求
1、一種用于保護數據的系統,包括具有虛擬化技術(VT)功能的平臺;在所述平臺上的第一虛擬機中運行的功能操作系統(COS),運行在該COS下的應用請求來自信源的數據;在所述平臺上的第二虛擬機中運行的服務操作系統(SOS),該SOS被配置為從所述信源取得所請求的數據、并且先對該數據進行加密然后才將已加密的數據存儲到第一存儲器中,所述第一存儲器可由所述COS訪問;以及圖形引擎,其具有解密功能,并且有權訪問所述第一存儲器和受保護的第二存儲器,所述第二存儲器存儲已解密的數據,并且所述第二存儲器不可由所述第一和第二虛擬機訪問。
2、 如權利要求l所述的系統,還包括監視器,其中,所述圖形引擎在對所存儲的已加密的數據進行解密之后,在所述監視器上顯示所取得的數 據。
3、 如權利要求2所述的系統,其中,所述圖形引擎將所述已解密的數據與在所述監視器上的其它顯示數據進行合并。
4、 如權利要求l所述的系統,其中,所述SOS還包括虛擬圖形驅動 程序,該虛擬圖形驅動程序用于通過運行在所述COS上的物理圖形驅動程 序來訪問所述圖形引擎。
5、 如權利要求1所述的系統,其中,所述圖形引擎具有秘密加密密鑰, 并且所述SOS具有唯一應用密鑰,其中,用所述秘密加密密鑰對所述唯一 應用密鑰進行加密,以得到與所述圖形引擎一起使用的已加密應用密鑰。
6、 如權利要求l所述的系統,其中,所述圖形引擎與所述SOS進行協商,以利用會話密鑰來對由所述SOS加密的數據進行解密。
7、 如權利要求l所述的系統,其中,所述SOS包括多個系統服務, 并且對除所述圖形引擎之外的一個或多個設備進行控制。
8、 一種用于保護數據的方法,包括運行在具有虛擬化技術架構的平臺上的第一虛擬機中的應用請求來自 信源的數據,所述第一虛擬機執行用來控制用戶環境的功能操作系統(COS);運行在第二虛擬機中的第二應用截取對數據的請求,所述第二虛擬機 執行服務操作系統(SOS);所述第二應用從所述信源取得所請求的數據; 所述第二應用對所取得的數據進行加密;在可由所述第一應用和圖形引擎訪問的第一存儲器中存儲己加密的數據;響應于由所述第一應用做出的要求對所請求的數據進行顯示的請求, 所述圖形引擎對已加密的數據進行解密;在受保護的第二存儲器中存儲已解密的數據,所述COS無權訪問所述 第二存儲器;以及所述圖形引擎在監視器上顯示所請求的數據。
9、 如權利要求8所述的方法,還包括把要顯示的其它數據與由所述圖形引擎解密的所請求的數據進行合 并,以形成將被顯示在所述監視器上的已合并的顯示區域,其中,所述其 它數據是由顯示引擎生成的。
10、 如權利要求8所述的方法,其中,所述圖形引擎還包括符合高級 加密標準(AES)的加密/解密引擎、以及用于在所述監視器上的內部窗口中 顯示所請求的數據的子畫面覆蓋引擎。
11、 如權利要求8所述的方法,還包括通過運行在所述第一虛擬機上的物理圖形驅動程序,在所述第二應用 和所述圖形引擎之間進行協商,以生成會話密鑰。
12、 一種其上存儲有用于保護數據的指令的機器可讀存儲介質,所述 指令當在平臺上執行時,使得所述平臺由運行在具有虛擬化技術架構的平臺上的第一虛擬機中的應用請求來 自信源的數據,所述第一虛擬機執行用來控制用戶環境的功能操作系統 (COS);由運行在第二虛擬機中的第二應用截取對數據的請求,所述第二虛擬 機執行服務操作系統(SOS);由所述第二應用從所述信源取得所請求的數據; 由所述第二應用對所取得的數據進行加密;在可由所述第一應用和圖形引擎訪問的第一存儲器中存儲已加密的數據;響應于由所述第一應用做出的要求對所請求的數據進行顯示的請求, 由所述圖形引擎對已加密的數據進行解密;在受保護的第二存儲器中存儲已解密的數據,所述COS無權訪問所述 第二存儲器;以及由所述圖形引擎在監視器上顯示所請求的數據。
13、 如權利要求12所述的介質,還包括用于以下操作的指令 把要顯示的其它數據與由所述圖形引擎解密的所請求的數據進行合并,以形成將被顯示在所述監視器上的已合并的顯示區域,其中,所述其 它數據是由顯示引擎生成的。
14、 如權利要求12所述的介質,其中,所述圖形引擎還包括符合高級 加密標準(AES)的加密/解密引擎、以及用于在所述監視器上的內部窗口中 顯示所請求的數據的子畫面覆蓋引擎。
15、如權利要求12所述的介質,還包括用于以下操作的指令 通過運行在所述第一虛擬機上的物理圖形驅動程序,在所述第二應用 和所述圖形引擎之間進行協商,以生成會話密鑰。
全文摘要
本發明涉及在主顯示器內提供安全顯示窗口的方法和設備。在一些實施例中,本發明涉及在計算平臺上保護敏感數據免遭惡意軟件的危害,并且更具體地涉及利用虛擬化技術和受保護音頻視頻路徑技術來阻止用戶環境直接地訪問未加密敏感數據。在一個實施例中,服務操作系統(SOS)訪問由運行在用戶環境虛擬機或功能操作系統(COS)中的應用所請求的敏感數據。在把敏感數據傳送給COS之前,SOS應用會對該數據進行加密。COS直接向圖形引擎做出請求,其中,在把敏感數據顯示在監視器上之前,該圖形引擎會對該數據進行解密。還描述并主張了其它實施例。
文檔編號G06F21/22GK101661544SQ200910149779
公開日2010年3月3日 申請日期2009年3月31日 優先權日2008年3月31日
發明者B·韋姆布, N·薩朗德哈爾, V·尚博格 申請人:英特爾公司