专利名称:在主显示器内提供安全显示窗口的方法和设备的制作方法
技术领域:
本发明的实施例总体上涉及在计算平台上保护敏感数据免遭恶意软件 的危害,并且更具体地涉及利用虚拟化技术和受保护音频视频路径技术来 阻止用户环境直接地访问未加密敏感数据。
背景技术:
存在着各种机制,用来在耦合到计算设备的视频控制台或监视器上显 示数据或图形。具有虚拟化技术架构的计算设备使得一些应用能够运行在 拥有较高或较低特权的虚拟机或虚拟设备中。
存在着各种机制,用来启用平台上的虚拟化。可以以多种方式在平台
(例如,来 自英特尔公司)上实现虚拟化技术(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·尚博格 申请人:英特尔公司