保护客户端平台上的内容的制作方法

文档序号:6587908阅读:125来源:国知局
专利名称:保护客户端平台上的内容的制作方法
技术领域
本公开总体上涉及数字内容的保护。
背景技术
数字版权管理是对科技和娱乐业的挑战。通过从互联网非法下载电影和音乐文 件,每天会损失数百万美元。到目前为止,实施的解决方案(例如,内容编码方案和高级访 问内容系统)对这些数据损失没有提供足够的保护。扩大这些损失是由尝试获得计算机系统的控制和/或窃取数字内容的恶意软件 发起的复杂以及进化的攻击。这些攻击可以呈现各种不同的形式,包括从尝试使得软件崩 溃到扰乱程序以用于其它目的。运行时间数据的保护(例如,软件程序的代码、配置信息和 /或保护在主存储器中以及传送中的内容的密钥)是对科技和娱乐业的特殊的挑战。


图1说明了根据本发明实施例的用于提供对执行环境内的软件部件的保护的平台。图2说明了根据本发明实施例的使用并行执行环境的平台。图3是示出了根据本发明的一个实施例的用于安全平台的架构的框图。图4是内容播放器(例如,图3的内容播放器)的操作的方法的流程图,其用于在 由图3的安全平台架构提供的环境中工作。图5是用于与由图3的安全平台架构提供的安全环境一起工作的内容服务器的操 作的方法的流程图。图6是用于提供图3的安全平台架构的客户端安全管理层的操作的方法的流程 图。
具体实施例方式本发明的实施例可以提供一种方法、系统和具有指令的计算机可读存储介质,其 用于保护从内容服务器接收的内容并且为接收内容播放器提供保护服务。安全客户端平台 向内容服务器提供其完整性的证明。该完整性的证明证明包括证明证明受保护的“已知 的”内容播放器的存在以及对抗设计用于窃取内容的、被称为“内容抓取器(ripper),,的软 件的保护。内容播放器向受到完整性保护的“已知的”内容播放器提供内容密钥。各种实施例可以包括一个或多个元件。元件可以包括安排来执行一些功能的任何 结构。按照期望的设计参数或性能约束的给定的组,每个元件可以被实现为硬件、软件或其任何组合。尽管通过示例在某个拓扑中用有限数量的元件描述了实施例,但是按照期望的 给定的实现,在备选拓扑中,实施例可以包括更多或更少的元件。值得注意的是,任何提及 的“一个实施例”或“实施例”意味着结合实施例描述的特定特征、结构或特性被包括在至 少一个实施例中。在说明书中各种地方中短语“在一个实施例中”的出现并非必然都是指 相同的实施例。图1说明了根据本发明的实施例的用于保护从内容服务器接收的内容的平台 100。平台100可以具有执行环境104,其可以是执行操作系统(OS) 108的域。OS 108可以 是用于执行并控制在执行环境104内的其它部件(例如,软件部件112)的普通操作的部 件,其受到由下面的管理模块116提供给选定部件的内部分区(intra-partition)存储器 访问保护,这将在下文进一步详细讨论。在一些实施例中,部件112可以是管理级部件,例如内核部件。在各种实施例中, 内核部件可以是服务(例如,加载程序、调度程序、存储器管理器等)、扩展/驱动程序(例 如,用于网卡、通用串行总线(USB)接口、磁盘驱动器等)或服务驱动程序的混合(例如,用 于监视代码的执行的入侵检测器)。可选地,在实施例中,部件112可以是应用进程、线程或 其它用户空间程序、服务或库。如本文使用的,术语“部件”旨在是指可以使用以获得期望的结果的编程逻辑和关 联的数据。术语部件可以与“模块”或“代理”同义并可以是指编程逻辑,其可以体现在硬 件或固件中或在软件指令的集合中,可以具有入口和出口点,用例如C++、Intel 32位架构 (IA-32)可执行代码等的编程语言来编写。软件部件可以被编译并且被连接成可执行程序,或被安装在动态链接库中,或可 以用解释性语言(例如,BASIC)来编写。将理解,软件部件可以从其它部件或从它们自身调 用,和/或可以响应于检测事件或中断而被调用。可以在机器可存取介质中提供软件指令, 当所述指令被访问时可以导致机器进行结合本发明的实施例的部件描述的操作或执行。机 器可存取介质可以是固件,例如电可擦除可编程只读存储器(EEPR0M)或其它可记录/不 可记录介质,例如只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储设备、光盘存储设备 等。将进一步理解,硬件部件可以由连接逻辑单元(例如,门电路和触发器)组成,和/或 可以由可编程单元(例如,可编程门阵列或处理器)组成。在一些实施例中,本文描述的部 件被实现为软件模块,但仍然可以用硬件或固件来表示。此外,虽然可以说明和/或描述了 仅给定数目的离散软件/硬件部件,但是可以在不脱离本发明实施例的精神和范围的情况 下,通过额外的部件或更少的部件来表示这种部件。除了执行环境104的内部分区选定部件之外,管理模块116还可以仲裁对硬件资 源118 (例如,一个或多个处理器120、网络接口控制器(NIC) 124、存储设备128和/或存储 器132)的普通部件的访问。处理器120可以执行平台100的部件的编程指令。处理器120可以是单个和/或 多核心处理器、控制器、专用集成电路(ASIC)等。在实施例中,存储设备128可以代表非易失性存储设备,其用于存储用于平台100 上的部件的执行的持久性内容,例如但不限于操作系统、程序文件、配置文件等。在实施例 中,存储设备128可以包括存储内容136,其可以代表持久性存储用于部件112的源内容。 源内容的持久性存储可以包括例如,可以具有可执行文件和/或代码段的可执行的代码存储、到其它例程的链接(例如,对动态链接库(DLL)的调用)、数据段等。在各种实施例中,存储设备128可以包括集成和/或外围存储设备,例如但不限于 盘和关联的驱动器(例如,磁的、光的)、通用串行总线(USB)存储设备和关联的端口、闪存 存储器、ROM、非易失性半导体器件等。在各种实施例中,存储设备128可以是物理上为平台100的一部分的存储资源,或 可以由平台100访问而不必是平台100的一部分。例如,可以由平台100在网络140上经 由网络接口控制器124来访问存储设备128。在加载请求(例如,从加载部件或OS 108的代理)时,管理模块116和/或OS 108 可以将存储内容136从存储设备128加载到存储器132作为活动内容144以操作执行环境 104中的部件112。在各种实施例中,存储器132可以是易失性存储设备,其用于提供用于平台100上 的部件的操作的活动内容。在各种实施例中,存储器132可以包括RAM、动态RAM (DRAM)、静 态RAM (SRAM)、同步DRAM (SDRAM)、双倍数据速率RAM(DDRRAM)、高速缓存等。在一些实施例中,存储器132可以将其中存储的内容组织到多组存储器单元中。 可以是固定和/或可变大小的这些组织的组可以便于虚拟存储器管理。存储单元的组可以 是页、段或其组合。使用分页的虚拟存储器可以便于对具有较小的物理存储器页的大的逻辑/线性 地址空间进行仿真。所以,执行环境104可以提供虚拟的执行环境,其中部件可以工作,然 后可以将所述部件映射到存储器132的物理页面。由OS 108和/或管理模块116维护的 页表可以将由执行环境104的部件提供的逻辑/线性地址映射到存储器132的物理地址。在各种实施例中,可以选择部件112或其部分以进行内部分区以将保护服务提供 给部件112。例如,部件112可以代表内容播放器,其用于从内容服务器接收内容。管理模 块116可以识别并隔开部件112的部分以由0S108或其它部件控制对部件112的访问。分 区的部分可以包括特定部件的任何部分,直到全部。分区的部分可以物理地或虚拟地与在 相同执行环境内的其它部件隔离,以使得如果需要的话,可以由下面的平台监视并限制内 部执行环境访问。内部分区可以在不需要部件112工作在具有独立的OS的完全独立的执 行环境的情况下,便于例如部件112与0S 108的隔离。内部分区还可以在以某种方式(例 如,由恶意软件、rootkit、关键运行时间故障等)损害的执行环境104内,向部件112提供 来自其它部件的相似或更高特权级别的保护。本发明的实施例可以提供保护服务同时仍允 许在部件112与执行环境104的其它部件(例如,0S 108)之间许可的交互。由0S 108控 制对部件112的访问可以包括各种级别的访问限制。在各种实施例中,用于保护执行环境内的内容的部件的内部分区可以用于具有多 执行环境(例如,工作在允许虚拟化技术(VT)的平台中的虚拟机)的平台。在这种实施例 中,管理模块可以包括虚拟机监视器(VMM)或是虚拟机监视器(VMM)的一部分。在可信计算组(TCG)标准化团体中定义了硬件的平台证明和管理程序。由TCG定 义的证明机制包括提供对“测量的代码”运行在客户端平台上的事实的证明。通过比较当 前版本的代码与原始的“金标准(goldstandard) ”版本的代码来“测量”代码。来自原始的 “金标准”的代码中的任何变化指示了代码被篡改,可能由病毒或其它恶意软件对其进行了 改写。
8
在TCG标准下为了平台证明通常测量的代码包括代码,例如识别并初始化系统 硬件部件的BIOS代码以及管理程序代码。管理程序允许多个操作系统运行在主计算机系 统上,并且还被称为“虚拟机监视器”。对平台证明的测量通常不会扩展到操作系统或应用 程序,因为当今极多版本的操作系统和应用程序是可用的。有如此多可用的版本的操作系 统和应用程序,维护每个版本代码的确认原始“金标准”副本以与测量的代码进行比较被认 为是难以管理的负担。于2007 年 8 月 2 日递交的、名称为 “Secure Vault Service for SoftwareComponents within an Execution Environment,,的专禾丨J申请 11/229,126被转让 给本申请的受让人,并通过引用全文将其并入到本文中。专利申请11/229,126描述了可以 用于测量并保护在虚拟机内的操作系统和应用程序部件的安全保险库服务(Secure Vault Service)。由运行在比操作系统高的特权级的虚拟机监视器来提供安全保险库服务。因 此,安全保险库服务可以即使在系统中操作系统被损害的情况下保护系统上的数据和程序 部件。提供安全保险库服务的虚拟机监视器在本文被称为“客户端安全管理层”。图2说明了根据本发明的实施例的使用虚拟化来为部件提供并行执行环境和保 护服务的平台200。在各种实施例中,平台200可以类似于图1的平台100并且基本上可以 与图1的平台100互换。此外,下文所述的元件可以类似于如上所描述的相同命名的元件 并且基本上可以与如上所描述的相同命名的元件互换,并且反之亦然。在该实施例中,平台200上的管理模块(例如,虚拟机监视器(VMM) 204)可以向一 个或多个独立运行的执行环境或“虚拟机(VM)”(例如,客户VM 228和辅助VM 232)呈现 平台硬件208 (例如,一个或多个处理器212、网络接口控制器(NIC) 216、存储设备220和/ 或存储器224)的多个抽象和/或视图。辅助VM 232可以用于执行从客户VM 228独立地 或安全地分离的代码,并且可以防止客户VM 228的部件执行可以改变、修改、读取或影响 辅助VM 232的部件的操作。虽然平台200示出了两个VM,但是其它实施例可以使用任何数 量的VM。在客户VM 228和辅助VM 232中工作的部件中的每一个可以如同它们运行在专用 计算机而不是虚拟机上一样工作。也就是说,在客户VM 228和辅助VM 232中工作的部件 中的每一个可以期望控制各种事件并且具有对硬件208的完全访问。VMM 204可以管理对 硬件208的VM访问。可以以软件(例如,作为独立程序和/或主机操作系统的部件)、硬 件、固件和/或其任何组合来实现VMM 204。客户VM 228可以包括0S 236和部件240。在指定的事件发生时,VMM204可以识 别并隔开部件240的不同部分以控制0S 236或其它部件对分区部分的访问。一个或多个这 些分区部分可以用于代表内容播放器,其用于从内容服务器接收内容。在各种实施例中,指 定的事件可以是何时将存储内容244从存储设备220加载到存储器224作为活动内容248 或者何时部件240请求保护。然而,在各种实施例中,可以额外/可选地使用其它指定的事 件。部件240可以向VMM 204注册,并且更具体地说,向用于保护的VMM204的完整性 服务模块(ISM)252注册。在各种实施例中,注册可以在发生注册事件(例如,周期性地将 活动内容248加载到存储器224)时发生,和/或以一些其它事件驱动方式发生。在各种实 施例中,可以由部件240、VM 228内的另一个部件(例如,0S 236) VMM 204或VM 232的部件来启动注册。在接收注册时,ISM 252可以与工作在VM 232中的完整性测量模块(IMM) 256合 作来认证并验证部件240的完整性。部件240的完整性的认证和验证可以有助于防止未授 权的修改和/或恶意的终止,并且可以确保如由管理员、用户或其它策略所定义的,可以仅 向识别的部件提供保护。IMM256可以工作在OS 260的上下文中的VM域232中或工作在独 立的硬件中,所以可以很大程度上独立于OS 236。通过在VM 228的上下文之外运行,IMM 256可以具有不出现在OS 236的上下文中或可能在OS 236的上下文中被损害的准确并可 靠的存储器测量能力。MM 256可以向ISM 252提供对验证请求的响应,例如通过、失败、有条件的通过 (pass w/qualification)、有条件的失败(fail w/qualification)等。在各种实施例中, 条件可以反映在通过和失败之间的完整性验证的程度。IMM 256有效地识别或认证部件及 其数据,并且保证其在存储器中具有期望的、正确的形式。在一些实施例中,活动内容248可以包括完整性清单,其可以是在部件240的完整 性的验证中使用的信息的集合。在各种实施例中,完整性清单可以包括一个或多个完整性 校验值和/或对固定位置的重定位,其覆盖存储内容244(例如,代码存储和/或静态的和 /或配置设置/数据)。IMM 256可以访问来自活动内容248的完整性清单,并且验证部件 240全部或部分地对应于完整性清单。IMM 256可以通过验证在完整性清单结构上的加密 签名来验证完整性清单自身的可靠性以确保没有改变其正确形式。可以通过例如逐字节分 析或通过加密散列分析来完成对映像的比较。在各种实施例中,IMM 256可以例如通过直接存储器访问(DMA)或直接物理存储 器访问来在存储器224中直接搜索活动内容248。在各种实施例中,可以例如通过ISM 252 将部件240的线性地址提供给IMM 256,并且IMM 256可以执行虚拟到物理映射以识别活动 内容248的物理存储单元。在实施例中,VMM 204可以提供向IMM 256提供特殊接口以提 供对活动内容248的访问。在各种实施例中,可以在当部件240正在执行时,周期性地和/或以某种其它事件 驱动方式进行初始的注册,对活动内容248进行完整性测量。在初始的注册请求或对事件 处理的请求时的完整性测量可以有助于基于在其被制造或最后加载时的内容的状态来确 定活动内容248和/或存储内容244的初始状态。周期性的或事件驱动的完整性测量可以 有助于检测不适当地改变活动内容248和/或存储内容244的保护属性的攻击。在2005 年 6 月 30 日递交的、名称为 “Signed Manifest for Run-timeVerifixation of Software Program Identity and Integrity,,的美国专利申 it No. 11/173, 851 ;2005 年 12 月 30 日递交的名称为"Identifier Associated withmemory Locations for Managing Memory Accesses” 的美国专利申请 No. 11/322,669 以及 2006 ip 3 30 H Intra-Partitioning of SoftwareComponents within an Execution Environment”的美国专利申请No. 11/395,488中描述了部件的完整性测量的其 它细节,所有所述专利申请通过引用其实体并入到本文中。再参考图2,ISM 252可以从MM 256接收反映对活动内容248的存储器中的完整 性和位置的验证的响应。如果验证失败,则ISM 252拒绝请求并可以触发警报。如果验证 通过,则ISM 252可以与存储器管理器264合作以对部件240的部分进行内部分区以保护
10服务。这里,可以在存储器中的保险库或隐藏页周围建立保护,所以可以仅由验证的部件和 /或部件自身的全部来访问它们。虽然图2说明了执行环境是虚拟分区,但是其它实施例可以通过其它机制(例如, 使用服务处理器、保护执行模式(例如,系统管理模式SMM或安全执行模式SMX)和/或嵌 入式微控制器)提供各种执行环境。在各种实施例中,可以经由各种不同类型的分区将辅 助环境与主机环境隔开,所述分区包括如上所述的虚拟分区(例如,虚拟化技术(VT)方 案中的虚拟机)和/或完全独立的硬件分区(例如,使用活动管理技术(AMT)、“可管理引 擎”(ME)、使用隔离平台资源的平台资源层(PRL)、系统管理模式(SMM)和/或其它类似的 或相似的技术)。在各种实施例中,VT平台还可以用于实现AMT、ME和PRL技术。参考图1和2如上所描述的平台可以用于保护从内容服务器接收的内容并为接收 内容播放器提供保护服务。图3是示出了根据本发明的一个实施例的用于安全平台300的架构的框图。安全 平台300将其完整性的证明提供给远程处理系统(例如,内容服务器360)。该完整性的证 明包括证明受保护的“已知的”内容播放器330的存在以及对被称为设计用于窃取内容的 “内容抓取器”的软件的防护。内容服务器360将加密内容随内容密钥一起提供给受完整性 保护的“已知的”内容播放器330。安全平台300包括客户端安全管理层310,其用于保护 系统存储器340中的内容和内容密钥。由客户端安全管理层310将内容密钥仅发布给其代 码被验证并确认的授权“已知的”内容播放器330。客户端安全管理层310在用于内容播放器的存储器的保护部分342中提供对存储 器340内的内容播放器的代码、数据和帧缓冲的保护。例如,为了由内容播放器330来使 用,由操作系统内核320分配的保护代码344、保护数据346和保护的帧缓冲存储器348仅 可以由内容播放器330访问并与其它应用程序隔离。客户端安全管理层310确保不可以通 过截取由内容播放器330放入帧缓冲器的帧、读取存储器340或从持久性存储设备或从网 络信道(例如,通信链路350)读取文件来“窃取”内容。防止由未授权的应用程序以及由 操作系统访问用于内容播放器的存储器的保护部分342。安全平台300可以使用如上所描述的专利申请11/229,126的客户端安全管理层 的功能来测量并保护客户端内容播放器330、包括保护的帧缓冲存储器348的、由客户端内 容播放器330使用的存储器340以及存储在存储器340中的数据(例如,保护代码344和 保护数据346)。此外,安全平台300使用由客户端安全管理层310提供的平台证明来向内 容供应者(例如,内容服务器360)确保动态内容将在客户平台300上受到保护。安全平台300向远程内容服务器360证明即使内容的授权用户是恶意的或客户 端平台300安装了恶意软件,也不可以以未授权的方式来复制由远程服务器提供的内容。 可以提供该证明,因为客户端安全管理层310防止了对其中存储了内容的存储器340的未 授权访问(使用用于内容播放器的存储器的保护部分342)。响应于所述证明,内容服务器 360将用内容密钥加密的内容提供给客户端平台300。由于由客户端安全管理层310在安全 平台300中提供的保护,即使授权用户也不能使用内容抓取软件来对内容进行非法拷贝。在一个实施例中,内容播放器330用于在不将用户限定到特定硬件实例的情况下 将内容密钥从一个平台转移到另一个平台。例如,如果发生系统故障,则可以使用该迁移功 能,以使得已知的并验证的内容播放器330可以重新安装在不同的硬件上。这种迁移除了内容播放器330的所需的认证之外,还需要测量、验证并认证的新硬件平台。在另一个实施 例中,安全平台300包括另一个授权并保护的应用程序(未示出),其用于允许将内容密钥 从一个平台上的授权内容播放器330转移到另一个平台上。在下文进一步详细讨论平台的 测量和认证。在一个实施例中,安全平台300包括平台硬件302,其是提供了硬件扩展以增强平 台的安全能力的Intel 可信执行技术(TXT)平台。在BIOS中允许测量的引导以提供平 台证明能力。通过允许测量引导,在以系统重置指令开始的引导处理期间执行的所有指令 被测量,并且测量被记录。然后,测量可以与期望的软件和固件的“金标准”副本进行比较 以确定指令是否与期望的软件和固件一致。可选地,在一个实施例中,平台硬件302包括由用户允许的可信平台模块 (TPM) 304。将概括地描述TPM的功能,随后是对当其工作在平台300内时TPM 304的说明。 TPM是硬件部件,通常是微控制器,其驻留在处理系统内并提供用于增强处理系统的安全性 的各种设施和服务。可以根据规范(例如,日期为2003年10月2日的可信计算组(TCG) TPM规范版本1. 2 (下文称为“TPM规范”),其可以从互联网www. trustedcomputinggroup. org/home获得)来实现TPM。TCG兼容的TPM安全地存储密钥、口令和数字证书。TPM提供可以生成在数字证书 中使用的密钥、创建数字签名并且提供加密的核心安全技术。通过使用定义的接口的安全 子系统来访问和控制安全操作。像硬盘加密、安全电子邮件和身份/访问管理的应用程序 受益于由TPM提供的安全功能。TPM基于特征(例如,包括处理器和芯片组的平台的硬件部件以及驻留在平台中 的软件(例如,固件和操作系统)来证明平台的身份和/或完整性。TPM还可以支持软件进 程的审核和记录以及平台引导完整性、文件完整性和软件许可证的验证。TPM通常被描述为 为平台提供信任的根。TPM通过存储关于平台的配置的信息来提供安全功能。然后,该信息可以用于TPM 的主要功能、平台证明和受保护的存储。平台可以将信息提供给需要的远程实体以允许远 程实体确定平台的可信赖性。平台还可以指示TPM确保仅在系统处于已知的“好的”配置 时才发布密钥或敏感数据。为了存储平台状态,TPM使用平台配置寄存器(PCR,例如图3的TPM304的PCR 306),其用于存储以软件的160位SHAl (安全散列算法1)散列的形式的测量以及对平台的 配置信息。这些测量在引导模块处开始。每个引导部件测量下一个部件,将测量记录在TPM 中,然后运行该部件直到操作系统接管其核心的测量为止。因为向PCR的每次写入都将测 量增加到寄存器而不是覆盖先前的测量,所以没有实体可以改变由前面的部件所作出的对 其代码的测量。因此,得到测量的链,以使得如果链的开始(被称为测量的信任的根)和每 个链路都是可信赖的,那么整个链是可信赖的。证明是指允许平台以可信赖的方式将其配置报告给远程方的TPM功能和协议的 设置。例如,TPM提供了对用于存储平台状态的PCR进行签名的能力。例如,平台可以使用 证明身份密钥(AIK)来对PCR进行签名。这种签名的PCR可以被称为引用。为了将由真实TPM对引用进行签名的证据提供给远程实体,每个TPM具有一组证 书。例如,由TPM制造商签名的签注证书说明了 TPM满足TPM规范。制造商还将被称为签注密钥(EK)的唯一密钥存储在TPM中,并且制造商使用EK来对签注证书进行签名。理论 上,可以直接使用EK来对PCR的引用进行签名。然而,因为EK是唯一的,所以在一些实现 中,使用第三方来代替以提供保密。具体地说,平台使用被称为保密认证机构(CA)的第三 方来为每个AIK创建身份证书。TCG定义了协议,其允许TPM使用EK和签注证书向保密CA 证明TPM是真的TPM。继而,保密CA为TPM声称其拥有的AIK创建身份证书。假定远程实体信任TPM的制造商、保密CA和用于测量的信任的根,则由附有身份 证书的AIK签名的引用是平台的当前状态的加密证据。可以用于允许可信平台的远程认证 的另一个加密协议是直接匿名证明(DAA)。TPM提供的另一组服务是密钥及其它数据的安全存储。TPM可以创建 Rivest-Shamir-Adleman (RSA)密钥,它将只允许使用一次(a)请求者经由机密SHAl散列 提供授权,以及(b)如由PCR确定的当前配置指示了“好的”状态。该功能允许平台加密数 据,以使得如果机器被损害、从外部介质引导或被篡改,则数据将仍然不可访问。为支持服务(例如,安全存储设备),TPM为不同的操作创建具有单个目的类型的 密钥。类型EK的密钥仅对从保密CA中解密身份证书是可用的。AIK用于对其它密钥进行 签名并且引用PCR。存储设备密钥(SK)用于保护其它密钥或“密封”数据,其是使用口令或 PCR绑定来保护数据的数据的专用加密。绑定密钥(BK)用于加密任意数据并将数据转换成 TPM绑定的数据结构。签名密钥(SigK)用于对任意数据进行签名。再次参考图3,在一个实施例中,客户端安全管理层310向内容服务器360提供平 台证明,其证明了接收的内容受到保护。作为响应,内容服务器360提供加密内容以及加 密了的内容密钥。在一个实施例中,针对客户端安全管理层310,使用证明身份密钥(AIK) 的公开部分来加密内容密钥。内容、加密内容密钥和内容策略被发送给客户端内容播放器 330。客户端内容播放器300向客户端安全管理层310证明其完整性,并且客户端安全管理 层310将解密内容密钥提供给保护存储器342中的授权客户端内容播放器330。由客户端 安全管理层310提供的解密内容密钥可以考虑到关于内容播放器330的、由客户端安全管 理层310维护的策略。客户端内容播放器330解密内容并且将内容移交给保护的帧缓冲存 储器348,所述存储器348在受保护以供内容播放器330使用的内容播放器342的存储器的 保护的部分内。因此,内容抓取器软件不能从持久性存储设备、存储器340、保护的帧缓冲存 储器348或网络信道350中的任何一个中窃取内容。该机制防止对为了内容保护在图形硬 件中允许加密的昂贵硅栅极的需要,并且跨越离散或集成的图形适配器工作。在一个实施例中,平台硬件302的TPM 304具有用于签名的证明身份密钥(AIK) 和用于加密的AIK。这些AIK可以存储在PCR 306中并可以由保密认证机构或使用直接匿 名证明(DAA)来认证。TPM 304还可以获得显示作为客户端安全管理层密钥316的、专用于 客户端安全管理层310的AIK。客户端安全管理层310使用客户端安全管理层密钥316来 向远程处理系统(例如,内容服务器360)断言平台300的可信赖性。通过了解计算机系统内的不同架构部件具有对资源访问的不同级别,可以进一步 了解平台300的架构中客户端安全管理层310的角色。保护环是在计算机系统的架构内的 分层的级别或层级的特权的组中的一个。通常由固件层处提供了不同的处理器模式的一些 处理器架构通过硬件来实施特权的使用。环被布置在从最高特权(最可信,通常编号为0) 到最低特权(最不可信,通常具有最高环数)的分层中。在大部分操作系统上,环0是具有
13最高特权的级并与物理硬件(例如,处理器和存储器)基本上直接交互。Intel虚拟化技术 (VT-x)平台扩展了该概念,其包括比环0级更可信的“根”特权级。在引导平台时,测量在 根特权级处运行的代码。在一个实施例中,如图3所示的根特权级是如在Intel VT-χ平台 中定义的根特权级,尽管本发明不限制于此。可以想象,可以使用备选的虚拟化技术来实现 客户端安全管理层310,所述虚拟化技术可以允许在比由传统的操作系统内核代码所使用 的环0级更可信的特权级处发生一些操作。在图3中示出了如在根特权级处工作的客户端安全管理层310,其具有比工作在 环0特权级的操作系统内核320更高的特权。在引导平台300时,测量用于客户端安全管 理层310的代码。因此,在引导平台300以后,TPM304的PCR寄存器306具有包括对客户 端安全管理层310的代码的测量的SHA-I散列值。针对客户端安全管理层310,生成客户端 安全管理层密钥316 (如由TPM 304产生的AIK)。在图3中,操作系统内核320工作在比应用程序(例如,内容播放器330)高的环0 特权级,所述播放器330工作在环3特权级。通过工作在根特权级处(所述根特权级是甚 至比环0高的特权级),客户端安全管理层310能够确保在存储器340内的用于内容播放器 的存储器的保护部分342是不可访问的,即使对操作系统内核320来说也是不可访问的。客户端安全管理层310包括运行时间存储器保护部件312和内容保护管理器314。 运行时间存储器保护部件312在用于内容播放器的存储器的保护部分342内,对保护代码 344和保护数据346两者以及保护的帧缓冲存储器348进行保护。运行时间存储器保护部 件312可以使用如上所描述的在专利申请11/229,126中描述的安全保险库服务功能来在 用于内容播放器的存储器的保护部分342内对保护代码344、保护数据346以及保护的帧缓 冲存储器348进行保护。例如,保护代码344可以包含数据链接库、可执行代码及与保护部 件有关的其它软件(例如,内容播放器330)。保护数据346可以包含例如数据(例如,由内 容播放器330从内容服务器360下载的内容以及用于下载内容的加密与解密密钥)。相似 地,保护的帧缓冲存储器348由内容播放器330来使用以由用户渲染用于显示的内容。通 过限制对用于内容播放器的存储器的保护部分342的访问,在运行在环0特权级的操作系 统内核320或运行在环3特权级的其它应用程序受到损害的情况下,客户端安全管理层310 的运行时间存储器保护部件312提供保护。客户端安全管理层310的内容保护管理器314使用由平台硬件302的TPM 304提 供的安全特征来证明平台300的可信赖性。例如,客户端安全管理层310使用客户端安全 管理层密钥316来向远程处理系统(例如,内容服务器360)断言平台300的可信赖性,所 述密钥316可以是例如由TPM304生成的AIK。下文进一步详细描述客户端安全管理层310 的内容保护管理器314的操作。图4是用于在由图3的安全平台架构提供的环境中工作的内容播放器(例如,图3 的内容播放器330)的操作的方法的流程图。参考图4执行的操作被描述为由图3的部件 来执行。在启动时,内容播放器330转移到“针对存储器和内容保护,向客户端安全管理层 注册”的步骤410。在该步骤,内容播放器330调用对客户端安全管理层310的超级调用以 提供存储器的保护部分342,以保护其代码和数据,其包括所述代码和数据的动态链接库以 及用于渲染内容的帧缓冲存储器348。对客户端安全管理层310的这些超级调用可以调用 上面引用的专利申请11/229,126中概述的安全保险库服务。一旦客户端安全管理层310例如通过提供用于内容播放器的存储器的保护部分342来向内容播放器330提供该保护时, 不可以由不具有与内容播放器330相同的来自客户端安全管理层310的访问许可的任何环 0或环3的部件来访问用于内容播放器330的保护代码344、保护数据346和保护的帧缓冲 器 348。作为向客户端安全管理层310的注册处理的一部分,可以创建用于内容播放器 330的清单以及应用程序标识符。可以根据上面引用的于2005年6月30日递交的、名称 为“Signed Manifest for Run-Time Verification ofSoftware Program Identity and Integrity”的专利申请11/173,851来创建该清单。清单可以包含可以用于验证内容播放 器330的完整性并且可以由客户端安全管理层310在随后的交互中确认内容播放器330的 完整性的信息。再次参考图4,在最初“针对存储器和内容保护,向客户端安全管理层注册”步骤 410中,向客户端安全管理层310注册之后,内容播放器330转移到“从客户端安全管理层 请求安全信息”步骤420。在一个实施例中,内容播放器330请求的安全信息包括用于客户 端安全管理层310的PCR值。响应于对安全信息的请求,客户端安全管理层310提供包含 TPM中的特定PCR寄存器的PCR值的签名的团点(blob)。使用AIK签名密钥对团点进行签 名。团点还包含客户端安全管理层310的AIK加密密钥的公开部分以及从保密认证机构接 收的证书。在本文描述的实施例中,安全信息被描述为根据基于AIK的加密方案来进行管 理。本领域的普通技术人员将了解,可选地,还可以使用其它方案(例如,保护用户的保密 的直接匿名证明)来管理安全信息。内容播放器330从“从客户端安全管理层请求安全信息”步骤420转移到“从内容 服务器请求内容,提供来自客户端安全管理层的安全信息”步骤430。内容播放器330使用 由客户端安全管理层310提供的安全信息来向内容服务器360证明平台300是安全的。内 容请求包含用于内容服务器的内容播放器的账户的用户证书、从客户端安全管理层310接 收的签名的团点以及请求内容的策略参数。例如,策略参数可以指示在用于播放视频的用 户的许可证到期之前允许用户播放内容的视频的时间的数量。参考图5进一步详细描述了 内容服务器360对请求内容的处理。内容播放器330从“从内容服务器请求内容,提供来自客户端安全管理层的安全 信息”步骤430转移到“从内容服务器接收内容和加密内容密钥”步骤440。内容播放器330 从内容服务器360中接收封装的团点,所述团点包括加密内容和加密内容密钥。然后,内容 播放器330转移到“从客户端安全管理层请求解密密钥”步骤450。内容播放器330将加密 内容密钥(下文参考图5进一步详细描述)与其自身的应用程序标识符一起传递到客户端 安全管理层310。下文参考图6进一步详细讨论了客户端安全管理层310对加密内容密钥 的处理。响应于“从客户端安全管理层请求解密密钥”步骤450,内容播放器330接收解密 密钥,内容播放器330使用所述解密密钥可以解密由内容服务器360提供的加密内容。内 容播放器330进入“使用由客户端安全管理层提供的解密密钥来解密内容”步骤460并解 密由内容服务器360提供的内容。内容播放器330将加密内容加载到用于内容播放器的存 储器的保护部分342中并使用解密密钥来解密所述内容。内容播放器330进入到“渲染内 容”步骤470,其中,内容播放器330使用包括在保护代码344中的标准应用程序接口来在保护帧缓冲器上渲染解密内容。解密内容被直接写入用于内容播放器的存储器的保护部分 342内的保护数据346,而不是调用操作系统内核320以渲染内容。图5是用于与本发明的安全平台一起工作的内容服务器的操作的方法的流程图。 响应于从内容播放器330接收对内容的请求,内容服务器360验证如“验证来自内容播放器 的对内容的请求以及来自客户端安全管理层的安全信息”步骤510中所示的请求。例如, 内容服务器360可以针对保密认证机构的根证书,验证签名的团点中提供的客户端安全管 理层310的证书。随后,内容服务器360可以比较PCR寄存器的散列值与所述散列值的金 标准副本,由此确定客户端安全管理层310的有效性。此外,内容服务器360可以针对用户 数据库来认证用于内容播放器330的用户证书并且检查作为请求的一部分的策略参数。例 如,可以根据当将在内容请求中提供策略中的值与在服务数据库中存储的用户的策略进行 比较时哪个策略更有约束性来提供内容。内容服务器360从“验证来自内容播放器的对内容的请求以及来自客户端安全管 理层的安全信息”步骤510转移到“创建包含加密内容和加密内容密钥的封装团点”步骤 520。在一个实施例中,内容服务器360用被称作内容密钥(CK)的对称密钥来加密内容, 并用客户端安全管理层310的AIK加密密钥来加密CK、内容策略(CP)和应用程序标识符 (Al)。例如在该实施例中,按照如下使用用于内容服务器360的服务密钥来创建封装的团占.BLOB = Sign service-key (Ε CK (Content) Il E AIK-Encryption (CK Il CP Il AI))。 在该公式中,通过使用签名的服务密钥来创建团点以加密由两个分量组成的串接字符串。 第一分量使用内容密钥加密内容,而第二分量加密内容密钥、内容策略和具有证明身份密 钥的证明标识符的串接字符串。在“将加密内容和加密内容密钥提供给验证的内容播放器” 步骤530中,将封装的团点发送回内容播放器330。图6是用于提供图3的安全平台架构的客户端安全管理层的操作的流程图。如参 考图4 “针对存储器和内容保护,向客户端安全管理层注册”步骤410所描述的,客户端安 全管理层310响应于应用程序的注册请求。响应于这种注册请求,客户端安全管理层310 转移到“响应于部件的注册,提供存储器和内容保护”步骤610。可以按照上述参考客户端 安全管理层310的运行时间存储器保护部件312来提供存储器保护。如上所述,客户端安 全管理层310的运行时间存储器保护部件312保护在用于内容播放器的存储器的保护部分 342内的保护代码344、保护数据346和保护的帧缓冲存储器348。运行时间存储器保护部 件312可以使用如上所描述的在专利申请11/229,126中描述的安全保险库服务功能来保 护用于内容播放器的存储器的保护部分342内的保护代码344、保护数据346和保护的帧缓 冲存储器348。尽管关于图6提供的服务被描述为由客户端安全管理层310来执行,但是可以由 客户端安全管理层310的内容保护管理器314来提供内容保护。如“从部件接收解密请求” 步骤620中所示,客户端安全管理层310可以从部件接收解密请求。响应于这种解密请求, 客户端安全管理层310可以转移到“确认部件的完整性”的步骤630。在确认部件的完整性 中,客户端安全管理层310可以针对封装团点中由内容服务器360提供的应用程序标识符 来验证解密请求中由内容播放器330提供的应用程序标识符。客户端安全管理层310可以 进一步执行其它完整性测量以验证内容播放器330的完整性,例如在将解密密钥提供给内
16容播放器330之前验证用于内容播放器330的清单。响应于确认部件的完整性,客户端安全管理层310可以解密返回到内容播放器 330的封装的团点中的内容服务器360提供的内容密钥以及其它参数。客户端安全管理层 310可以针对内容策略来验证解密请求并且还可以将来自封装的团点的策略信息记录到策 略数据库(使用未保护的环3应用程序)。通过在将解密内容密钥提供给内容播放器330 之前,针对内容策略来验证解密请求,即使客户端内容播放器330不再连接到用于内容服 务器360的网络时,客户安全管理层310可以在传送了内容之后,实施提供内容服务器360 所需的策略。然后,控制从“确认部件的完整性”步骤630转移到“将解密密钥放入用于部件的 保护存储器中”步骤640,其中,客户端安全管理层310和/或客户端安全管理层310的运 行时间存储器保护部件312将解密密钥放入部件的存储器的保护部分,例如用于内容播放 器的存储器保护部分342。概述的机制在不需要额外的硬件的情况下使用标准特征在平台上提供内容保护。 由于本发明通过将保护器放在比保护内容(即,内容播放器)高的特权的级处来使用合理 的加密技术,所以由本发明的客户端安全管理层提供的保护服务相比于其它基于模糊的技 术提供更严密的防护。概述的机制允许远程内容服务供应者来将内容分发到对攻击者具有 高度抵抗力的客户端。该机制是不被入侵的并且不需要修改平台硬件、操作系统或额外的 驱动器。可以以硬件、软件或这种实现方式的组合来实现本文公开的机制的实施例。本发 明的实施例可以被实现为在可编程系统上执行的计算机程序,所述系统包括至少一个处理 器、数据存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备和 至少一个输出设备。可以将程序代码应用到用于执行本文描述的功能并且生成输出信息的输入数据。 本发明的实施例还包括机器可访问介质,其包含用于执行本发明的操作的指令或者包含设 计数据(例如,HDL,其定义了结构、电路、装置、处理器和/或本文描述的系统特征)。这种 实施例还可以被称为程序产品。这种机器可访问存储介质可以包括但不限制于由机器或器件制造或形成的颗粒 的有形排列,其包括例如,硬盘和任何其它类型的盘,其包括软盘、光盘、只读紧致盘存储 器(CD-ROM)、可重写紧致盘(CD-RW)和磁光盘、半导体器件(例如,只读存储器(ROM))、随 机存取存储器(RAM)(例如,动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))、可 擦除可编程只读存储器(ΕΗ 0Μ)、闪存、电可擦除可编程只读存储器(EEPROM)、磁或光卡, 或适合于存储电子指令的任何其它类型的介质。可以以已知的方式将输出信息应用到一个或多个输出设备。对该申请的目的来 说,处理系统包括具有处理器的任何系统,所述处理器例如是数字信号处理器(DSP)、微控 制器、专用集成电路(ASIC)或微处理器。可以以高层的过程或面向对象编程语言来实现程序以与处理系统进行通信。如果 需要,还可以以汇编或机器语言来实现程序。实际上,本文描述的机制不被限制在任何特定 的编程语言的范围内。在任何情况下,语言可以是编译的或解释的语言。本文呈现的是用于向从内容服务器接收的内容提供安全平台的方法和系统的实施例。虽然示出了并描述了本发明的特定实施例,但是对本领域的这些技术人员明显的是, 在不脱离所附权利要求的范围的情况下,可以进行多种改变、变化和变型。因此,本领域的 一个技术人员将认识到,在不脱离本发明的宽广的方面的情况下,可以进行改变和变型。所 附权利要求将包括落入本发明的真正范围和精神内的所有这种改变、变化和变型。
权利要求
一种方法,包括代表部件来控制对计算机系统的存储器的保护部分的访问;从所述部件接收加密的内容密钥;确认所述部件的完整性;解密所述加密的内容密钥以提供解密的内容密钥;以及响应于确认所述部件的完整性,将所述解密的内容密钥放在所述存储器的保护部分中。
2.根据权利要求1所述的方法,其中所述控制对所述存储器的保护部分的访问包括防止由用于所述计算机系统的操作系 统来访问所述存储器的保护部分。
3.根据权利要求1所述的方法,其中所述控制对所述存储器的保护部分的访问包括防止由未授权的应用程序来访问所述 存储器的保护部分。
4.根据权利要求1所述的方法,其中所述解密的内容密钥对应于由所述部件从内容供应者接收的内容;以及 所述部件使用所述解密的内容密钥来解密所述内容。
5.根据权利要求1所述的方法,进一步包括 从所述部件接收对特定内容的解密请求;以及在解密所述加密的内容密钥之前,确定针对所述特定内容的内容策略是否允许对所述 特定内容进行解密。
6.根据权利要求5所述的方法,其中在没有连接到提供了所述特定内容的内容服务器的情况下,执行对所述特定内容的内 容策略是否允许对所述特定内容进行解密的确定。
7.根据权利要求1所述的方法,其中所述确认所述部件的完整性包括验证用于所述部件的清单。
8.根据权利要求1所述的方法,其中所述确认所述部件的完整性包括确认用于所述部件的代码匹配用于所述部件的代码 的标准。
9.一种方法,包括作为部件向客户端安全管理层注册以接收计算机系统的存储器的保护部分的保护; 从内容供应者接收加密的内容和加密的内容密钥;向所述客户端安全管理层提供所述加密的内容密钥,其中,所述客户端安全管理层确 认所述部件的完整性,解密所述加密的内容密钥以提供解密的内容密钥,并且将所述解密 的内容密钥放入所述存储器的保护部分中;以及使用所述解密的内容密钥将所述加密的内容解密到所述存储器的保护部分中。
10.根据权利要求9所述的方法,进一步包括向所述内容供应者提供如下证明证明接收的内容被防止受到未授权的拷贝。
11.根据权利要求10所述的方法,其中所述证明包括用于所述客户端安全管理层的标识信息。
12.—种计算机系统,包括 处理器;耦合到所述处理器的存储器;客户端安全管理层,用于代表运行在所述处理器上的部件来控制对所述存储器的保护部分的访问; 从所述部件接收加密的内容密钥; 确认所述部件的完整性;解密所述加密的内容密钥以提供解密的内容密钥;以及响应于确认所述部件的完整性,将所述解密的内容密钥放在所述存储器的保护部分中。
13.根据权利要求12所述的计算机系统,其中所述客户端安全管理层还用于通过防止由所述计算机系统的操作系统访问所述存储 器的保护部分来控制对所述存储器的保护部分的访问。
14.根据权利要求12所述的计算机系统,其中所述客户端安全管理层还用于通过防止由运行在所述计算机系统上的未授权的应用 程序访问所述存储器的保护部分来控制对所述存储器的保护部分的访问。
15.根据权利要求12所述的计算机系统,其中所述解密的内容密钥对应于由所述部件从内容供应者接收的内容;以及 所述部件使用所述解密的内容密钥来解密所述内容。
16.根据权利要求12所述的计算机系统,其中 所述客户端安全管理层还用于从所述部件接收对特定内容的解密请求;以及在解密所述加密的内容密钥之前,确定针对所述特定内容的内容策略是否允许对所述 特定内容进行解密。
17.根据权利要求16所述的计算机系统,其中所述客户端安全管理层还用于在没有连接到提供了所述特定内容的内容服务器的情 况下,确定针对所述特定内容的内容策略是否允许对所述特定内容进行解密。
18.根据权利要求12所述的计算机系统,其中所述客户端安全管理层还用于通过验证用于所述部件的清单来确认所述部件的完整性。
19.根据权利要求12所述的计算机系统,其中所述客户端安全管理层还用于通过确认用于所述部件的代码匹配用于所述部件的代 码的标准来确认所述部件的完整性。
20.一种计算机系统,包括 处理器;存储器;客户端安全管理层;以及 内容播放器,用于作为部件向所述客户端安全管理层注册以接收对所述存储器的保护部分的保护;从内容供应者接收加密的内容和加密的内容密钥;提供所述加密的内容密钥给所述客户端安全管理层,其中,所述客户端安全管理层确 认所述部件的完整性,解密所述加密的内容密钥以提供解密的内容密钥,并且将所述解密 的内容密钥放入所述存储器的保护部分中;以及使用所述解密的内容密钥将所述加密的内容解密到所述存储器的保护部分中。
21.根据权利要求20所述的计算机系统,其中所述内容播放器还用于向所述内容供应者提供如下证明证明接收的内容被防止受到 未授权的拷贝。
22.根据权利要求21所述的计算机系统,其中所述证明证明包括用于所述客户端安全管理层的标识信息。
23.一种计算机可读存储介质,包括 指令,其用于代表运行在计算机系统上的部件控制对所述计算机系统的存储器的保护部分的访问;从所述部件接收加密的内容密钥; 确认所述部件的完整性;解密所述加密的内容密钥以提供解密的内容密钥;以及响应于确认所述部件的完整性,将所述解密的内容密钥放在所述存储器的保护部分中。
24.根据权利要求23所述的计算机可读存储介质,其中所述指令还用于通过防止所述计算机系统的操作系统访问所述存储器的保护部分来 控制对所述存储器的保护部分的访问。
25.根据权利要求23所述的计算机可读存储介质,其中所述指令还用于通过防止运行在所述计算机系统上的未授权的应用程序访问所述存 储器的保护部分来控制对所述存储器的保护部分的访问。
26.根据权利要求23所述的计算机可读存储介质,其中所述解密的内容密钥对应于由所述部件从内容供应者接收的内容;以及 所述部件使用所述解密的内容密钥来解密所述内容。
27.根据权利要求23所述的计算机可读存储介质,其中,所述指令还用于 从所述部件接收对特定内容的解密请求;以及在解密所述加密的内容密钥之前,确定针对所述特定内容的内容策略是否允许对所述 特定内容进行解密。
28.根据权利要求23所述的计算机可读存储介质,其中所述指令还用于在没有连接到提供所述特定内容的内容服务器的情况下,确定针对所 述特定内容的内容策略是否允许对所述特定内容进行解密。
29.根据权利要求23所述的计算机可读存储介质,其中所述指令还用于通过验证用于所述部件的清单来确认所述部件的完整性。
30.根据权利要求23所述的计算机可读存储介质,其中所述指令还用于通过确认用于所述部件的代码匹配用于所述部件的代码的标准来确认所述部件的完整性。
31.一种计算机可读存储介质,包括 指令,其用于作为部件向计算机系统的客户端安全管理层注册以接收对所述计算机系统的存储器 的保护部分的保护;从内容供应者接收加密的内容和加密的内容密钥;提供所述加密的内容密钥给所述客户端安全管理层,其中,所述客户端安全管理层确 认所述部件的完整性,解密所述加密的内容密钥以提供解密的内容密钥,并且将所述解密 的内容密钥放入所述存储器的保护部分中;以及使用所述解密的内容密钥将所述加密的内容解密到所述存储器的保护部分中。
32.根据权利要求31所述的计算机可读存储介质,其中所述指令还用于向所述内容供应者提供证明如下证明接收的内容被防止受到未授权 的拷贝。
33.根据权利要求32所述的计算机可读存储介质,其中 所述证明证明包括用于所述客户端安全管理层的标识信息。
全文摘要
一种方法、计算机系统和具有指令的计算机可读介质,其提供确保内容免受在接收计算机系统上的恶意软件危害的客户端安全管理层和内容播放器。客户端安全管理层代表部件(例如,运行在计算机系统的处理器上的内容播放器),控制对计算机系统的存储器的保护部分的访问。客户端安全管理层从部件接收加密内容密钥,确认部件的完整性,解密加密内容密钥以提供解密内容密钥,并且响应于确认部件的完整性将解密内容密钥放入存储器的保护部分中。还描述并要求保护了其它实施例。
文档编号G06F21/00GK101894224SQ20091100023
公开日2010年11月24日 申请日期2009年12月25日 优先权日2008年12月30日
发明者P·德万 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1