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