本申请是2004年4月30日提交的美国专利申请No.10/835,951的部分继续申请,并且还是2005年4月27日提交的美国专利申请No.11/116,598的部分继续申请,而美国专利申请No.11/116,598要求对2005年4月22日提交的美国临时专利申请No.60/673,979的优先权。
具体实施方式
以下提供的详细描述以及附图旨在作为现有示例的描述,而并非旨在表示其中可构建或使用现有示例的唯一形式。该描述阐述这些示例的功能、用于构建和运行这些示例的步骤序列、以及所例示的示例。然而,不同的示例可实现相同或等效的功能和序列。
尽管现有示例在本文中被描述和说明为在计算机操作系统中实现,但所述系统被提供为一示例而非限制。如本领域技术人员将理解地,现有示例适用于各种不同类型的计算机系统中的应用程序。
安全计算环境可包括一起工作以减少对媒体内容、其它数据和/或整个计算环境的未经授权访问的可能性的元件或组件。然而,与任何安全或内容保护环境技术一样,可能会有绕过和/或破坏这样的保护系统的尝试。以下所述的方法和系统倾向于组合受保护计算环境的创建和管理、组件的取消和更新、以及组件的个性化,它们可一起运行以提供对这样的破坏的快速响应和补救,并减慢其蔓延。
以下是对创建和维护受保护环境的系统和方法的描述,然后是示出如何形成受保护环境使其元件或组件可更新和/或可个性化的描述。接着是对取消和更新受保护环境的组件的系统和方法的描述,然后是对个性化受保护环境的组件的系统和方法的描述。
创建和维护受保护计算环境
以下描述提供创建和维护受保护计算环境的系统和方法。受保护计算环境的一个示例在2005年4月27日提交的美国专利申请No.11/116,598中提供,该申请通过引用全部结合于此并如下所述。
图1是示出在常规计算环境100中运行的处理媒体内容1063的常规媒体应用程序105的框图,其中具有对系统101的攻击107的指示。常规计算环境100可由可包括操作系统(“OS”)102的个人计算机(“PC”)或消费电器(“CE”)设备101提供。典型的操作系统常常将其操作分成用户模式103和内核模式104。用户模式103和内核模式104可由一个或多个应用程序105使用。应用程序105可用来处理媒体内容106,该媒体内容106可经由诸如CD ROM驱动器、因特网连接等某些机制传送到设备101。内容106的一个示例将是可用来复制音频和视频信息的媒体文件。
计算环境100通常可包括便于应用程序105连同一个或多个中央处理单元(“CPU”)的运行的操作系统(“OS”)102。许多操作系统102可允许多个用户访问CPU的运行。多个用户可具有通常范围为从典型用户到管理员的访问特权。管理员通常具有对在系统上运行的应用程序105、用户模式103和内核104的访问特权范围。这种计算环境100易于受到各类攻击107。攻击不仅可包括想要访问设备101和其上内容106的外来者,而且包括具有对设备101的管理权限的攻击者,或具有授予其的任何访问权限的其它类用户。
图2是示出处理媒体内容106并利用倾向于对攻击有抵抗力的受保护环境203的受信任应用程序202的框图。该受保护环境203可包括可更新和/或可个性化的元件或组件。术语“受信任应用程序”在本文中使用时可被定义为使用在受保护环境中运行的进程使它们倾向于对攻击205有抵抗力、并限制对正在处理的任何媒体内容106或其它数据的未经授权访问的一种应用程序。因而,在受保护环境中运行的应用程序的组件或元件通常被视为“受信任”,因为它们倾向于限制未经授权访问并倾向于对攻击有抵抗力。这样的应用程序202可被视为是受信任应用程序本身,或者它可使用另一受信任应用程序来保护其进程和/或数据的一部分。
例如,受信任媒体播放器202可被设计成播放媒体内容106,该媒体内容106通常仅在获得许可后才能使用以使该媒体内容106不能以未经授权方式访问。这种受信任应用程序202只在计算环境200可提供所需安全级别时(诸如通过提供对攻击205有抵抗力的受保护环境203)才可操作和/或处理媒体内容106。
当在本文中使用时,术语“进程”可被定义为驻留于内核空间、用户空间和/或操作系统和/或计算环境的任一其它空间和/或在其中运行的程序(包括可执行代码、机器指令、变量、数据、状态信息等)的一个实例。
数字权限管理系统204等可与受保护环境204一起使用。使用数字权限管理系统204仅作为一个示例提供,并且不可与受保护环境或安全计算环境一起使用。通常数字权限管理系统使用倾向于制作昂贵并且会负面地影响计算性能的防篡改软件(“TRS”)。使用受信任应用程序202可使提供增强保护所需的TRS功能的量最小化。
本领域技术人员所公知的各种机制可替换、附加或连同典型的数字权限管理系统使用。这些机制可包括但不限于加密/解密、密钥交换、口令、许可证等。因而,数字权限管理在本文中使用时可以是像解密经加密媒体、使用口令来访问数据、或其它防篡改机制一样简单的机制。执行这些任务的机制可以非常简单或完全包含在受信任应用程序202内,或可经由与不同于受信任应用程序202的复杂系统通信的接口来访问。
图3是示出可包括在受保护环境203中的受信任应用程序202的示例性组件的框图。受信任应用程序202通常将受保护环境203用于其子组件302-304的至少一部分。受信任应用程序的其它组件301不可使用受保护环境。参与处理媒体内容或数据、可调用免遭攻击或未经授权访问的增强保护级别的组件302-304可在受保护环境203内运行。受保护环境203可由单个的受信任应用程序202、或可能地由多个受信任应用程序使用。可替换地,受信任应用程序202可使用多个受保护环境。受信任应用程序202还可耦合于和/或使用数字权限管理系统204。
在所示示例中,源302和宿303被示为在受保护环境203中运行的媒体管线304的一部分。受保护环境203倾向于确保:一旦已接收到并解密了受保护和/或加密内容309,受信任应用程序202及其组件就防止对内容309的未经授权访问。
数字权限管理204可进一步提供它经由谁获得对内容的哪类访问的描述和控件来处理的受信任应用程序202和内容309的保护方法。通过许可证308、设备证书311和其它安全机制的系统,内容提供者通常能确信加密内容309已被传送给适当的获授权设备,并且该内容309被按计划地使用。
图4是示出用于从服务供应商407处将数字媒体内容410下载到使用受保护环境203的一示例性受信任应用程序202的系统的框图。在所示示例中,受信任应用程序202被示为在两个地方401、403使用。该受信任应用程序202可在CE设备401或PC 403中使用。数字媒体410可经由服务提供者407和因特网405下载以供受信任应用程序202使用。可替换地,数字媒体可经由诸如网络、CD或DVD盘、或其它存储媒体的其它机制而变得对受信任应用程序可用。此外,数字媒体410可以加密形式309提供,从而需要取数字权限管理系统204形式的解密密钥、许可证、证书等系统。提供给受信任应用程序的数据或媒体内容410可被或可不被保护,即加密等。
在一示例中,受信任应用程序202可利用数字权限管理(“DRM”)系统204等以及受保护环境203。在该情形中,受信任应用程序202通常被设计成通过将内容的使用限制于由内容提供者经由策略授权的使用来承认并遵从内容的使用策略。实现这个可涉及执行通常询问内容证书、随后作出有关是否对一条内容采取所请求动作的判定的代码。该功能可至少部分地由数字权限管理系统204提供。数字权限管理系统的一个示例在1999年4月12日提交的美国专利申请No.09/290,363、各自在2002年6月28日提交的美国专利申请No.10/185,527、10/185,278和10/185,511中提供,这些申请通过引用全部结合于此。
构建可在CE设备401或PC 403中使用的受信任应用程序202可包括确保解密和处理内容309的受信任应用程序202因没有受到恶意攻击的危险而“安全”。因而,受保护环境203通常指不易于受攻击的环境。
如图所示,受信任应用程序202在消费电器设备401中运行,该消费电器设备401可与也提供一受信任应用程序的PC 403周期性地同步。PC 403又耦合(404)到因特网405。因特网连接允许数字媒体410由服务提供者407提供。到服务提供者407。该服务提供者407可经由因特网405将许可证和经加密媒体406传送给受信任应用程序202。一旦经加密媒体被递送和解密,它就易于受到各种形式的攻击。
受保护计算环境倾向于提供限制黑客和他人获得对内容的未经授权访问的环境。黑客可包括装作是系统管理员的黑客。系统管理员通常具有对实质上在计算机上执行的所有进程的全面控制,但这种访问可能并不合乎需要。例如,如果系统用户已被授予使用一媒体文件的许可证,则不同于用户的系统管理员能访问该媒体文件应当是不可接受的。管理员和用户都应当不能以在所授权限界限外的方式访问该媒体。受保护环境倾向于有助于创建其中解密和处理内容的代码可在不给予黑客对经解密内容的访问权限的情况下运行的进程。受保护环境也可限制对诸如管理员的特权用户、和/或否则可获得对受保护内容的未经授权访问的任何其它用户的未经授权访问。保护可包括保护典型的用户模式进程(图1,103)和内核模式进程(图1,104)以及它们所处理的任何数据。
内核可在攻击时使用,因为它可具有对系统中包括进程的对象的低级访问权限。在内核中运行的进程易于受到攻击。例如,在典型操作系统的内核中,创建了可允许管理员不受限制地访问的对象,包括进程。因而,通常具有全权访问特权的管理员实质上可访问所有进程,从而可以内容提供者所不期望的方式截取内容。
受保护内容可包括指示内容的获授权使用的策略或相似信息。这种策略可经由DRM系统或其它安全机制实施。通常,对受保护内容的访问通过可实施策略的DRM系统或其它机制授予。然而,具有系统访问权限的系统管理员或攻击者可找到改变DRM系统的状态的方法、或无视内容策略的机制。
受保护环境倾向于提供一受保护空间,该受保护空间限制对正在处理的媒体内容的未获授权访问(甚至对诸如管理员的高特权用户也是如此)。当受保护环境连同数字权限管理系统等一起使用时可创建受信任应用程序,在该受信任应用程序中内容提供者可感到提供了使数字媒体免遭未经授权访问的充分安全性,还可使内容策略以及可与该媒体内容相关联的任何其它数据、密钥或保护机制一起免遭篡改。
当前的操作系统(“OS”)体系结构通常呈现可危害媒体应用程序的数个可能攻击矢量和正在处理的任何数字媒体内容。出于本示例的目的,可在OS中发生的攻击被分成两类攻击,它们是内核模式攻击和用户模式攻击。
第一类攻击是内核模式攻击。内核模式通常被视为是基于操作系统受信任的。操作系统核心以及大多数系统和外围驱动器可用内核模式运行。通常在内核中运行的任何一条代码易于被在内核中运行的任意另一条代码侵入,而对于用户模式而言则并非这种情形。此外,以内核模式运行的代码通常对基本上所有用户模式进程具有访问权。CPU也可提供对各种代码类型提供特权级别。内核模式代码通常由这样的CPU分配以最高级别的特权,通常给予其对系统的全权访问。
第二类攻击是用户模式攻击。以用户模式运行的代码可取决于它分配到的特权级别而可以或不可以被系统视为受信任代码。该特权级别可根据所运行的用户环境或帐户来确定。在管理员帐户环境中运行的用户模式代码可全权访问在该系统上运行的其它代码。此外,以用户模式运行的代码可被分割以防止一个用户访问另一个用户的进程。
这些攻击可被进一步地分解成特定攻击矢量。受保护环境通常被设计成免遭未经授权访问,否则可通过这些攻击矢量的一个或多个获得这些未经授权访问。受保护环境可免遭攻击矢量破坏而得到保护,这些矢量可包括:进程创建、恶意用户模式应用、将恶意代码载入一进程、恶意内核代码、无效信任授权、以及外部攻击矢量。
进程创建是一可能的攻击矢量。操作系统通常包括允许父进程创建子进程的“创建进程”机制。恶意父进程可通过更改创建进程代码或通过更改它所创建的数据来对正在创建的子进程作出未经授权的更改。这可导致危害可由恶意父进程创建的子进程处理的数字媒体。
恶意用户模式应用程序是一可能的攻击矢量。操作系统通常包括管理员级特权。正在运行的具有管理员特权的进程可对许多操作系统机制以及几乎在计算机上运行的所有进程有不受限制的访问权。因而,在例如Windows中,正在运行的具有管理员特权的恶意用户模式应用程序可获得对许多在计算机上运行的其它进程的访问权,并由此危害数字媒体。类似地,在任何用户环境中运行的进程可被在相同环境中运行的任何恶意进程攻击。
将恶意代码载入一安全进程是一可能的攻击矢量。将恶意代码附加或添加到一进程中是有可能的。这种受危害进程不能得到信任,并可获得对该经更改进程所处理的任何媒体内容或其它数据的未经授权访问。
恶意内核模式代码是一可能的攻击矢量。操作系统通常包括一“系统级别”的特权。例如,在Windows中,以内核模式运行的所有代码通常作为系统运行,并且因此可具有最大特权。通常的结果是以内核模式运行的驱动器可具有攻击例如任何用户模式应用程序的最大机会。这种恶意内核模式代码的攻击可危害数字媒体。
无效信任授权机构(TA)是一可能的攻击矢量。TA可参与媒体许可证的验证,且可随后“开启”数字媒体的内容。TA可专用于一媒体类型或格式,并通过媒体提供者或其合伙人实现。这样,TA可插入和/或可被提供为动态链接库(“DLL”)等。DLL可通过包括恶意代码的可执行代码载入。为了使TA确保该媒体被准确使用,它需要确保它在其中运行的进程是安全的。否则数字媒体会受到危害。
外部攻击是另一可能的攻击矢量。存在不需要恶意代码在系统中运行来攻击它的一组攻击。例如,将调试程序附加于一进程、或将一内核调试程序附加于机器、在桌面上的二进制文件中寻找敏感数据等都是寻找和危害数字媒体或可访问数字媒体的进程的可能机制。
图5是示出可由以未经授权方式尝试访问媒体内容和其它通常呈现在计算环境100中的数据500的用户或机制利用的示例性攻击矢量507-510的框图。受保护环境可阻碍这些攻击矢量使得对受信任应用程序和它们处理的数据的未经授权访问受到限制,并提供对攻击的抵抗力。这些攻击可由可包括可执行代码的系统或机制的用户发起。媒体应用程序105在示图的中央示出,且攻击矢量507-510倾向于集中在访问由应用程序105存储和/或处理的敏感数据500。
一可能攻击矢量509可经由恶意用户模式应用程序502启动。在示例性操作系统架构中,父进程和具有管理员特权的任一进程通常对诸如正在处理媒体内容的一进程的其它进程以及它们所处理的数据具有不受限制的访问权。这种对媒体内容的访问是未经授权的。因而,受保护环境可确保受信任应用程序和它所处理的媒体内容对其它用户模式应用程序的攻击有抵抗力。
一可能攻击矢量508是恶意代码503在进程501中的载入。具有对来自外部的攻击有抵抗力的安全进程通常仅与在内部运行的形成该进程的代码一样安全。假设DLL和其它代码通常被载入进程以供执行,可在受保护环境中提供一种机制,该机制可确保在将代码载入进程之前相信所载入代码可在该进程内运行。
一可能攻击矢量510是通过恶意内核模式代码504。以内核模式104运行的代码通常具有最大特权。结果可以是以内核模式运行的驱动器可具有多个攻击其它应用程序的机会。例如,驱动器可能能够直接在另一进程中访问存储器。其结果是驱动器一旦运行就可访问包含经解密的“加密媒体内容”(图3,309)的进程存储器。通过确保在内核中运行的代码是如本示例提供的非恶意代码,可防止内核模式攻击。
一可能攻击矢量507是通过对系统100的外部攻击506。该群体表示通常不需要恶意代码在系统100上运行的那组攻击。例如,将一调试程序附加于该系统上的应用程序和/或进程、在机器中搜索敏感数据等。可创建受保护环境来抵抗这些类型的攻击。
图6是示出用于创建和维护倾向于限制对媒体内容和其它数据的未经授权访问的受保护环境的过程600的流程图。当计算机系统启动(602)并且载入操作系统的内核,且内核安全标记被设置(604)成初始值时,序列600开始。该过程在通常创建受保护环境且将应用程序载入其中(606)的时间内继续。该过程包括通过受保护环境的周期性检查(608),以寻求确保系统在需要安全进程的时间保持安全。
在本文中使用时,术语“内核”被定义为用于计算环境、系统或设备的操作系统的中央模块。该内核模块可以计算机可执行指令和/或电子逻辑电路的形式来实现。通常,内核负责计算环境的存储器管理、进程和任务管理、以及存储介质管理。术语“内核组件”在此使用时被定义为构成内核一部分的基本控制机制、模块、计算机可执行指令和/或电子逻辑电路。例如,内核组件可以是负责载入其它内核组件以便于构建一全面运行内核的“载入器”。
现在归纳创建和维护受保护环境的过程:
1.框602表示计算机系统的启动。这通常以常称为引导进程并包括从盘或其它某存储介质载入操作系统开始。
2.通常引导进程期间的起始操作之一是载入内核及其组件。本示例提供内核组件的验证,并且如果都被成功验证为安全,则将指示内核的标记设置为安全。这在框604中示出。
3.在计算机系统被视为全面运行之后,用户可启动可能需要一受保护环境的诸如受信任媒体播放器的应用程序。本示例向安全内核提供在受保护环境内运行的应用程序,如框606所示。
4.一旦受保护环境已经被创建并且应用程序的一个或多个进程已被载入其中并正在运行,受信任环境就可周期性地检查内核安全标记以确保该内核保持安全,如框608所示。即,从受信任应用程序开始运行的时间点看,可周期性地作出检查以确定是否载入了任何未经授权的内核组件,包括在载入新的内核组件的任何时候。这些未经授权的内核组件可攻击受信任应用程序或它可能正在处理的数据。因此,如果载入任一这些组件,则可正确地设置内核安全标记。
图7是示出用于创建一示例性安全计算环境200的示例性内核组件720-730和其它组件710-714的框图。该示图示出包含通常存储在盘等上的数个组件710-730,其中的几个组件用来在计算机启动时构成操作系统的内核。箭头604指示将内核组件载入存储器以形成系统的操作内核的过程。所载入的内核750被视为包含其各个组件751-762以及指示内核对受保护环境而言是否被视为安全的内核安全标记790。该内核安全标记790被描述为“标记”并不意味着是限制性的;它可被实现为布尔变量、或更复杂的数据结构或机制。安全计算环境200和/或内核750的各个组件或元件是可更新和/或可个性化的。
内核组件720-730通常是“经签名的”并可包括证书数据738,证书数据738可允许内核验证这些组件是它们所声称的组件,并且它们未经修改和/或不是恶意的。签名块和/或证书数据738可在每个内核组件720-730和/或每个所载入的内核组件760、762中存在。签名和/或证书数据738对每个组件是唯一的。签名和/或证书数据738可在创建和维护受保护环境时使用,如下所述。通常组件由其供应商以安全表示该组件之源和/或指示它是否已被篡改的方式“签名”。签名可被实现为组件报头的散列(有时称为“报头图像散列”),或通过使用其它技术来实现。一常规证书或证书链也可与一组件包括在一起,它们可被用来确定是否可相信该组件。签名和/或证书数据738通常在分发公用之前被添加到一组件。本领域技术人员将熟悉这些技术及其用途。
当典型的计算系统被启动或“引导”时,操作系统的载入过程或“内核载入器”751通常可从盘等将内核组件载入到系统存储器的一部分中以构成操作系统的内核。一旦所有内核组件被载入并运行,则计算机和操作系统被视为“经引导的”并准备好正常操作。
计算环境中的内核组件#1720到内核组件#n730、以及取消列表714、内核转储标记712和调试程序710以及调试凭证711可被存储在盘或其它存储介质上。箭头604指示从其存储位置读取各个组件714-730并将其载入系统存储器以形成功能操作系统内核750的内核载入进程。内核转储标记712被描述为“标记”并不意味着是限制性的;它可被实现为布尔变量、或更复杂的数据结构或机制。
内核载入器751以及内核的受保护环境(“PE”)管理部分752、取消列表754、以及两个内核组件720和722被示为载入到内核中,后者为框760和762,以及指示用于要被载入到内核中的附加内核组件的空间的指示-764和770。最后,内核750包括可用来指示内核750当前是否被视为安全的内核安全标记790。该示图被作为一个示例提供,且并非是限制性或完整的。为清晰起见,内核载入器751、内核的PE管理部分752和/或内核的其它组件被示为不同的内核组件,但实际上它们可与内核的其它部分相区分,或可不与它们相区分。
包括在计算环境200内的可以是取消列表714,它可结合与内核组件760和762相关联的签名和证书数据738一起使用。该对象714可保留到列表714的创建日期为止不再被视为有效的签名、证书和/或证书链列表。取消列表714被示为作为对象754载入到内核中。这些列表被保存是因为例如组件760和762的经有效签名和证明的组件后来会被发现具有某问题。该系统可使用这样的列表754来在载入内核组件720-730时检查它们,这些组件720-730可被正确签名和/或具有受信任的证书数据738但随后可被认为是不可信任的。这种取消列表754通常将包括版本信息755,从而它可更容易地按需标识、管理和更新。
系统的可影响内核安全性的另一组件是调试程序710。调试程序通常可不被视为内核的一部分,但可出现在计算环境200中。包括那些称为内核调试程序、系统分析程序等的调试程序可具有对系统和在系统上运行的进程以及任何数据的宽泛访问权。调试程序710可能能够访问计算环境200中的任何数据,包括不应以除获授权之外的方式访问的媒体内容。另一方面,调试通常是开发新功能的一部分,并且在受保护环境内调试旨在处理受保护媒体内容的代码通常是可能的。调试程序710因而可包括指示调试程序710在系统上的出现获得授权的调试凭证711。由此对调试程序710以及任何附随凭证711出现的检测可以是创建和维护受保护环境(图6,600)的一部分。
计算环境200可包括内核转储标记712。该标记712可被用来指示在灾难性系统故障的情形中有多少内核存储器可用于检查。或者,该标记或相似标记可指示系统的全存储器转储。这样的内核和/或存储器转储可用于在诸如故障之后的事后调试。如果这种标记712指示基本上所有的存储器可用于对转储的检查,则内核750可被视为是不安全的,因为黑客可运行揭示系统存储器中的受保护介质、然后促使可导致可用于检查的存储器包括含有所揭示媒体内容的灾难性故障状况的应用程序。由此,内核转储标记712可用于创建和维护受保护环境(图6,600)。
图8和图9是示出用于载入内核组件以创建一示例性安全计算环境的一示例性过程604的流程图。该过程604在内核载入器已启动且内核的PE管理部分已被载入并运行之后开始。未在这些附图中示出的是,内核的PE管理部分可验证内核载入器本身和/或先前已载入的任何其它内核元件。验证可被定义为确定一给定组件是否被视为安全和可信任的,如本过程604的部分2所示。
如以下相关于内核组件使用的术语“被授权安全使用”具有以下具体含义。包含未被授权安全使用的任何组件的内核不提供受保护环境可在其内运行的安全计算环境。相反情形也可能不为真,因为它取决于诸如攻击矢量的其它因素。
1.框801示出载入过程604在内核的PE管理部分已被载入并运行之后开始。在此之前载入内核中的任何组件可被如上所述地验证。
2.框802示出内核安全标记在开始时被设置为TRUE(真),除非在内核的PE管理部分之前载入的任何组件或该组件本身被发现是不安全的,此时内核安全标记可被设置成FALSE(假)。实际上TRUE或FALSE的指示可采取各种形式;在此使用TRUE或FALSE仅仅是一个示例并且并不表示是限制性的。或者,内核安全标记开始时可被设置成FALSE,而在后来当发现内核安全时可被设置成TRUE。
3.框804指示对调试程序在计算环境中的出现的检查。或者调试程序可远程地驻留并可经由网络或与计算环境中一进程的其它通信介质附加于计算环境。如果未检测到调试程序,则载入过程604在框810继续。否则它在框809继续。未在示图中示出的是,该检查可周期性地执行且内核安全标记的状态可被相应地更新。
4.如果检测到一调试程序,则框806示出对调试凭证的检查,该调试凭证可指示在出现受保护环境时调试可在系统上获得授权。如果未出现这样的凭证,则内核安全标记可被设置成FALSE,如框808中所示。否则载入过程604在框810继续。
5.框810示出内核转储标记的检查。如果该标记指示全内核存储器转储等是可能的,则内核安全标记可被设置成FALSE,如框808中所示。否则载入过程604在框812继续。未在示图中示出的是,该检查可周期性地执行且内核安全标记的状态可被相应地更新。
6.框812示出将取消列表载入内核。在取消列表可被用来检查调试凭证或其它先前载入的凭证、签名、证书数据等的情形中,该步骤可比所示序列更早地进行(在载入要检查的凭证等之前)。未在示图中示出的是,一旦载入该组件,就可检查任一和全部先前载入的内核组件,以查看是否已按取消列表取消了其签名和/或证书数据。如果已取消了任一个,则内核安全标记可被设置成FALSE,且载入进程604在框814继续。注意,取消列表可以或不可以被载入到内核中以用于创建和维护受保护环境。
7.框814示出到该示图的第二部分的转换,该第二部分在图9中示出并在框901继续。
8.框902示出对要载入的任何附加内核组件的检查。如果所有组件已被载入,则载入过程604通常是完整的,且内核安全标记保持它上次所设置的或为TRUE或为FALSE的任何状态。如果有其它内核组件要载入,则载入过程604在框906继续。
9.框906示出对要载入的下一组件的有效签名的检查。如果该签名无效,则内核安全标记可被设置成FALSE,如框918所示。否则载入过程604在框908继续。如果没有组件签名可用,则该组件可被视为不安全且内核安全标记可被设置成FALSE,如框918所示。签名有效性可通过检查有效签名列表的匹配、和/或通过检查签名者的身份是否是一受信任实体来确定。如安全技术领域中的技术人员所熟悉的,也可使用其它方法来验证组件签名。
10.框908示出对组件的证书数据的检查。如果证书数据无效则内核安全标记可被设置为FALSE,如框918所示。否则载入过程604在框910继续。如果没有组件证书数据可用,则该组件可被视为不安全且内核安全标记可被设置成FALSE,如框918所示。证书数据有效性可通过检查该组件的证书数据以查看该组件是否被授权安全使用来确定。如本领域技术人员所熟悉的,也可使用其它方法来验证组件证书数据。
11.框910示出根据载入到内核中的取消列表检查组件的签名。如果该签名出现在列表上指示它已被取消,则内核安全标记可被设置成FALSE,如框918所示。否则载入过程604在框912继续。
12.框912示出根据取消列表检查组件的证书数据。如果证书数据出现在列表上指示它已被取消,则内核安全标记可被设置成FALSE,如框918所示。否则载入过程604在框914继续。
13.框914示出检查组件签名以确定它是否可使用。该检查可通过检查组件的叶证书数据以查看该组件是否被授权安全使用来进行。证书数据中的某些属性可指示该组件是否被批准用于受保护环境用途。如果为否,则该组件不可被适当签名且内核安全标记可被设置成FALSE,如框918所示。否则载入过程604在框916继续。
14.框916示出对组件的根证书数据的检查。该检查可通过检查组件的根证书数据以查看它是否在受信根证书列表上来进行。如果为否,则该组件可被视为不安全且内核安全标记可被设置成FALSE,如框918所示。否则载入过程604在框920继续。
15.框920示出将组件载入内核,在该内核中现在组件被视为运行。然后载入过程604返回到框902以检查要载入的任何其它组件。
图10是示出安全计算环境200的框图,该安全计算环境200将应用程序105载入一示例性受保护环境203以形成通常对攻击有抵抗力的受信任应用程序。在本示例中,内核可与图7所述的相同且已被载入,系统200被视为全面运行。作为示例,此时用户启动媒体应用程序105。媒体应用程序105可要求创建受保护环境203,以使其进程和/或组件的一个或多个在其内运行。受保护环境创建过程606创建受保护环境203,并载入应用程序105和/或其组件,如下所述。
图11是示出用于创建受保护环境并将一应用程序载入受保护环境的一示例性过程606的流程图。该过程606包括创建一安全进程的初始步骤、然后验证要载入其中的软件组件、接着将该软件组件载入新的安全进程并使其运行。在成功时,结果可以是软件组件在安全内核所支持的受保护环境中运行。这种软件组件以及它所处理的任何数字媒体内容或其它数据可使其免受包括以上所述的各种攻击。
1.框1101示出受保护环境创建过程606的开始。这通常是在某应用程序或代码要求受保护环境运行时。
2.框1102示出受保护环境的建立。尽管未在示图中示出,这可通过要求操作系统创建一新的安全进程来完成。后来载入并在该安全进程中运行的代码可被视为在受保护环境中运行。如果内核安全标记被设置为FALSE,则“创建新的安全进程”请求会失败。这会是因为该系统作为整体可被视为是不安全且不适合受保护环境和要求受保护环境的任何应用程序或数据的。或者,“创建新的安全进程”请求会成功,且被载入该新进程的组件可得到系统被视为不安全的通知以使该组件相应地更改其运行。否则,过程606在框1106继续。
3.框1106示出对要载入新安全进程或受保护环境的软件组件的有效签名的检查。如果该签名无效则过程606可失败,如框1118所示。否则过程606在框1108继续。未在该过程中示出的是也可对创建新安全进程的程序或其等效体检查有效签名。因而,对于创建新安全进程的组件本身和/或程序,如果没有签名可用则该组件可被视为不安全且过程606会失败,如框1118所示。签名有效性可通过检查对有效签名列表的匹配和/或通过检查签名者的身份是否是一受信任实体来确定。如安全技术领域的技术人员所熟悉的,也可使用其它方法来验证组件签名。
4.框1108示出对软件组件的证书数据的检查。如果证书数据无效则过程606可失败,如框1118所示。否则过程606在框1110继续。如果没有组件证书数据可用,则组件可被视为不安全且过程606会失败,如框1118所示。证书数据有效性可通过检查组件的证书数据以查看该组件是否被授权安全使用来确定。如本领域技术人员所熟悉的,也可使用其它方法来验证组件证书数据。
5.框1110示出根据取消列表检查组件的签名。如果该签名出现在列表上指不它已被取消则过程606会失败,如框1118所示。否则过程606在框1112继续。
12.框1112示出根据取消列表检查组件的证书数据。如果该证书数据出现在列表上指示它已被取消则过程606会失败,如框1118所示。否则过程606在框1114继续。
13.框1114示出对组件签名的检查以确定是否可接受它以供使用。该检查可通过检查组件的叶证书数据以查看该组件是否被授权安全使用来进行。证书数据中的某些属性可指示是否准予该组件在受保护环境中使用。如果为否,则该组件可被视为未经适当签名且过程606会失败,如框1118所示。否则过程606在框1116继续。
14.框1116示出对组件的根证书数据的检查。该检查可通过检查组件的根证书数据以查看它是否列示于受信任根证书列表上来进行。如果为否,则该组件可被视为不安全且过程606会失败,如框1118所示。否则,过程606在框1120继续。
15.框1118示出载入软件组件失败,然后是框1130,即受保护环境创建过程606结束。
16.框1120示出软件组件被载入受保护环境,在该环境中该软件组件被视为运行,然后是框1130,即受保护环境创建过程606结束。
图12是示出利用一示例性受保护环境202来周期性地检查(608)安全计算环境200的安全状态790的一示例性受信任应用程序的框图。在本示例中,计算环境200和内核750可与图7和8所述的相同。内核750已被载入且计算机200被视为完全运行。此外,受保护环境已被创建且受信任应用程序的适当组件已被载入其中并运行,从而建立了利用受保护环境202(下文中简称为“受保护环境”)的受信任应用程序。
受保护环境202可对内核752的PE管理部分进行周期性的检查以确定随着时间的流逝内核750是否保持安全。要执行该周期性检查是因为新组件有可能在任何时间被载入内核750,包括可被视为不安全的组件。如果这种情况发生,则内核安全标记790的状态会变成FALSE,且在受保护环境202中运行的代码有机会作出适当响应。
例如,考虑在具有安全内核750的PC 200上启动的媒体播放器应用程序,以及在受保护环境202中运行、处理数字媒体内容且仅被许可安全使用的媒体播放器应用程序的一部分。在本示例中,如果在媒体播放器应用程序处理媒体内容时载入了被视为不安全的新内核组件,则检查内核安全状态过程240将标注内核安全标记790已变成FALSE,指示该内核750不再安全。
或者,取消列表745可被更新,且先前被视为安全的内核组件不再被视为安全,从而导致内核安全标记790被设置为FALSE。此时应用程序可接收到系统200不再被视为安全的通知并可终止运行,或采取其它适当动作来保护它自己和/或它正在处理的媒体内容。
图13是示出用于周期性地检查安全计算环境的安全状态的一示例性过程608的流程图。该过程608可由受保护环境202用来确定随着时间的流逝该内核是否保持安全。受保护环境202可周期性地使用该过程608来检查内核的当前安全状态。受保护环境202和/或在其中运行的软件组件可使用该当前安全状态信息来适当地更改其操作。该过程的周期性激活可使用常规技术来实现。
示图示出用示例性伪码例示的受保护环境202与内核752的PE管理部分之间的通信序列608。该通信可包括检查取消列表的版本,这可给予应用程序指定至少某版本的取消列表的能力。可使用常规技术来用密码术保护该通信序列。
1.受保护环境202对内核的PE管理部分作出IsKernelSecure(MinRLVer)呼叫1320,以查询内核的当前安全状态。包括在该呼叫1320中的是期望使用的取消列表的最低版本(MinRLVer)。
2.内核的PE管理部分作检查以查看作为呼叫进程的受保护环境是否安全。如果为否,则它可向受保护环境提供一返回(安全标记=FALSE)指示1322,并且通信序列608完成。该安全检查可通过内核的PE管理部分对受保护环境检查有效签名和/或证书数据来实现,如上所述。
3.否则,内核的PE管理部分响应于呼叫1320检查内核安全标记。如果该标记的状态为FALSE,则它可向受保护环境提供返回(安全标记=FALSE)指示1324,并且通信序列608完成。
4.否则,内核的PE管理部分对取消列表检查取消列表版本信息。如果取消列表具有比IsKernelSecure(MinRLVer)呼叫1320中所请求的老的版本信息,则可能有若干个选项。首先,如示图中所示,内核的PE管理部分可向受保护环境提供返回(安全标记=FALSE)指示1326,并且通信序列608完成。
或者,且未在示图中示出,适当版本的取消列表可被定位并载入到内核中,所有内核组件可使用该新的或经更新的列表来重新验证,内核安全标记在适当时更新,并重复该通信序列608的前一步骤#3。
5.否则,内核的PE管理部分可向受保护环境提供返回(安全标记=FALSE)指示1328,并且通信序列608完成。
图14是示出其中可实现用于建立包括受保护环境203的安全计算环境的过程、系统和方法的一示例性计算环境1400的框图。示例性个人计算机1400仅是可提供安全计算环境和/或受保护环境的计算系统或设备的一个示例,并且并非旨在将本申请中所述示例限制在该特定计算环境或设备类型中。
适当的计算环境可用多个其它通用或专用系统来实现。公知系统的示例可包括但不限于,个人计算机(“PC”)1400、手持式或膝上型设备、基于微处理器的系统、多处理器系统、机顶盒、可编程消费电器、游戏控制台、消费电器设备、蜂窝式对话、PDA等。
PC 1400包括耦合到各个外围设备1403、1404、1415、1416等的计算设备1401形式的通用计算系统。计算设备1401的各个组件可包括一个或多个处理器(包括CPU、GPU、微处理器等)1407、系统存储器1409、以及耦合各个系统组件的系统总线1408。处理器1407处理各种计算机可执行指令以控制计算设备1401的运行,并经由诸如网络连接1414等的各种通信连接与其它电子和/或计算设备(未示出)通信。系统总线1408表示任意数目的几类总线结构,包括存储总线或存储器控制器、外围总线、加速图形端口、和/或使用各种总线架构的任一种的处理器或局域总线。
系统存储器1409可包括诸如随机存取存储器(RAM)的易失性存储器、和/或只读存储器(ROM)的非易失性存储器形式的计算机可读介质。基本输入/输出系统(BIOS)可被存储在ROM中。RAM通常包含可由一个或多个处理器1407即时访问和/或当前操作的数据和/或程序模块。作为示例,所示载入到系统存储器以作运行的是利用受保护环境203的一受信任程序202,以及正在处理的媒体内容106。
大容量存储设备1404和1410可通过耦合到系统总线来耦合于计算设备1401或结合到计算设备1401中。这样的大容量存储设备1404和1410可包括读取和写入可移动、非易失性磁盘(例如“软盘”)1405的磁盘驱动器,和/或读取和写入非易失性光盘1406,诸如CD-ROM、DVD-ROM等的光盘驱动器。计算机可读介质1405和1406通常包括在软盘、CD、DVD、便携式存储棒等上提供的计算机可读指令、数据结构、程序模块等。
任意数目的程序或模块可被存储在硬盘1410、其它大容量存储设备1404、以及系统存储器1409上(通常受可用空间限制),包括例如操作系统、一个或多个应用程序、其它程序模块和/或程序数据。这种操作系统、应用程序、其它程序模块和程序数据(或其某个组合)各自可包括本文中所述系统和方法的一个实施例。内核组件720-730连同其它操作系统代码可被存储在盘1410上。媒体应用程序105和/或数字权限管理系统204连同其它应用程序可被存储在盘1410上。这些组件720-730和应用程序105、204可被载入系统存储器1409并运行。
显示设备1416可经由诸如视频适配器1411的接口耦合到系统总线1408。用户可经由诸如键盘、定点设备、操纵杆、游戏垫、串行端口等任何数目的不同输入设备1403来与计算设备1400通信。这些和其它输入设备可经由可耦合系统总线1408的输入/输出接口1412耦合到处理器1407,并且可通过诸如并行端口、游戏端口和/或通用串行总线(USB)等的其它接口和总线结构耦合。
计算设备1400可在使用通过一个或多个局域网(LAN)、广域网(WAN)、因特网、无线链路、光学链路等与一个或多个远程计算机和/或设备的通信连接的网络化环境中运行。计算设备1400可经由网络适配器1413或可替换地经由调制解调器、DSL、ISDN接口等耦合到一网络。
通信连接1414是通信介质的一个示例。通信介质通常在诸如载波或其它传输机制的已调制数据信号中体现计算机可读指令、数据结构、程序模块、或其它数据,且包括任何信息输送介质。术语“已调制数据信号”意指在信号中用对信息编码的方式设置或改变其一个或多个特征的信号。作为示例,而非限制,通信介质包括诸如有线网络或直线连接的有线介质,和诸如声学、射频、红外线和其它无线介质的无线介质。
本领域技术人员将认识到用来存储计算机可读程序指令的存储设备可分布在网络上。例如远程计算机或设备可存储被描述为软件的系统的一个示例。本地或终端计算机或设备可访问(多个)远程计算机或设备,并下载软件的部分或全部以运行一(多个)程序。或者,本地计算机可通过在本地终端上执行部分软件指令并在远程计算机和/或设备上执行部分软件指令来按需下载软件或分布式地处理该软件。
本领域技术人员还将认识到通过利用本领域技术人员所公知的常规技术,软件指令的全部或一部分可通过诸如数字信号处理器(“DSP”)、可编程逻辑阵列(“PDA”)、分立电路等专用电子电路来执行。术语电子装置在本文中使用时包括含有任意软件和/或固件的计算设备和消费电子设备,和/或不含有任意软件和/或固件的电子设备或电路。
术语计算机可读介质可包括系统存储器、硬盘、大容量设备及其相关联介质、通信介质等。
用可更新和可个性化元件构成受保护计算环境
以下描述用于构成一受保护环境使其元件或组件可被更新和/或个性化的系统和方法。
图15是示出一示例性操作系统内核的框图,该示例性操作系统内核包括内核752的分离出来作为独立元件或组件的受保护环境(“PE”)管理部分752、以及倾向于在创建和管理一示例性安全计算环境200时使用的其它内核组件1551。PE管理部分752可以是可更新和/或可个性化的,并且内核750或安全计算环境200的其它组件或元件也可以是可更新和/或可个性化的。
PE管理组件752可在创建受保护环境、将应用程序或其它组件载入该受保护环境、以及维护和管理该受保护环境中起主要作用。此外,PE管理组件除维护诸如安全内核标记790的数据、并处理有关系统安全状态的请求之外,还监视并跟踪内核750和/或计算环境200的安全状态。这些功能可与内核1551和/或安全计算环境200的其它组件一起执行。
通过将内核750的PE管理部分分离成独立组件752,如果需要替换内核的该独立组件将更为容易。替换该组件的原因的一个示例是:在PE管理组件752已被安装到计算机系统或设备上之后是否发现一安全缺陷。因为PE管理组件752可保持机密安全信息1570并可提供创建和维护受保护环境的功能,所以对可暴露缺陷的攻击而言它是有吸引力的目标。如果PE管理组件752是内核的不可或缺部分,则修理这种缺陷可使替换整个内核或操作系统成为必要,而这可能是一种昂贵和耗时的操作。另一示例是PE管理组件752的功能是否可被更新以更佳地免受新发现的威胁。再一次地,替换该单个组件752而非整个操作系统或其更大部分是较容易且较便宜的。如果有必要替换该独立的PE管理组件752,则可通过如下所述地取消并更新它来实现。这种取消可涉及禁用该组件直到用另一个版本来更新或替换它。
如下所述,取消和更新一组件的过程也可应用于内核750的任一其它组件或任一组其它组件。此外,该过程可应用于整个操作系统的任一组件或任一组件集合、或可应用于应用程序软件的组件或安装在系统上的其它软件、或其任意组合。连同内核750的PE管理组件752提供该取消和更新功能可使得对所发现的缺陷和/或新发现的安全威胁作出快速响应容易得多且便宜得多。
PE管理组件752的结构、数据和/或代码可被模糊化(obfuscated),如示图中的斜条所示。这种模糊化可降低攻击者发现该组件内保存的机密或其它秘密信息和机制的能力。模糊化可使用包括本领域技术人员所知的各种方法以及未来确定的其它相关方法来执行。
一实施例中的PE管理组件752可包括内核安全标记790。维护该标记790并将其安全地保存在PE管理组件752内可阻止攻击者篡改它或绕过它,从而使得不安全的内核显现为是安全的。内核安全标记790可在PE管理组件752内被模糊化和/或加密等,以进一步减少对它的未经授权访问。
PE管理组件752还可包括可用于取消和更新的标识信息1572,如下所述。该标识信息1572可包括可被用于与取消列表(图12,754)作比较或被用作取消和更新系统的一部分的版本信息和/或其它标识信息。
PE管理组件752还可包括附加机密信息1570,该附加机密信息1570可包括在与其它内核组件1551和/或在受保护环境内运行的受信任应用程序(图12,608和202)的安全通信1580中使用的私钥。该机密信息1570可在PE管理组件752内被模糊化和/或加密,以进一步减少对它的未经授权访问。
如果PE管理组件752被未获授权组件而非内核750本身或其获授权组件1551之一载入,则PE管理组件752可被不当地使用或完全地绕过,由此导致显现为安全的不安全系统。为了降低该可能性,内核750可在它载入PE管理组件752时向PE管理组件752发送认证消息。在一实施例中,该认证消息可包括时戳并使用内核750秘密保存的私钥来签名。PE管理组件752可形成为直到它已接收到并验证了该认证信息,它才提供对它所维护的内核安全标记790或其它机密信息1570的访问权。在认证信息没有被适当接收和/或验证的情形中不可能创建受保护环境,因为要确保计算环境安全是不可能的。因此,要求受保护环境的应用程序或媒体内容可能不能如此运行来降低媒体内容、其它数据和/或整个计算环境会受到危害的风险。
PE管理组件752还可包括个性化数据1560。在操作系统、内核750或PE管理组件752本身初始安装之后,个性化数据1560可以是一般或设备证书模板的形式(图24,2412),如下所述,该形式可与安装在其它计算机系统或设备上的其它“箱外”(out-of-the-box)版本相似或相同。当用户尝试使用倾向于要求受保护环境的受保护媒体内容或其它受保护数据或应用程序时,也可要求唯一的个性化数据或唯一的设备证书(图24,2411)。在该情形中,系统或设备专用信息或唯一的设备ID倾向于在创建唯一的个性化数据时使用,该个性化数据可以唯一的设备证书(图24,2411)等的形式提供。该唯一的设备证书的创建可使用以下所述的用于个性化受保护计算环境的元件的系统和方法来完成。
PE管理组件752的具有唯一个性化数据1560的个性化版本可被视为“绑定”于产生唯一设备ID的专用系统或设备,其中该个性化版本可以是唯一设备证书(图24,2411)的形式。可替换地,该系统或设备的任何组件或元件可被相似地个性化和绑定。该绑定可通过至少部分地基于系统或设备专用数据或唯一的设备ID形成个性化数据1560来实现。PE管理组件752与专用系统或设备之间的这种绑定可使该专用PE管理组件752在任意其它系统或设备上呈现为无用。如果是这种情形,则对于用户而言,将PE管理组件752的其个性化和可能受损版本复制到一不同系统或设备并提供一安全计算环境可能是不可能的。因此,如果攻击者能够闯入其PE管理组件752版本并损害之,或访问其机密信息1570或其内核安全标记790,则受损版本会在任何其它系统或设备上提供一安全计算环境,由此降低这种安全漏洞快速传播的风险是不可能的。
取消和更新受保护计算环境的元件
以下描述提供用于取消和更新受保护计算环境的元件的系统和方法。取消和更新系统和方法的一个示例在2004年4月30日提交的美国专利申请No.10/835,951中提供,该申请通过引用全部结合于此并如下所述。
图16中提供了示出取消和更新受保护环境的元件以及它们如何彼此相关的许多方面的框图。要禁用的计算组件列表1605可通过计算机可读介质分布于诸如1610的可访问数字媒体对象1606、1607等(它们是媒体内容的具体实例(图1,106))的计算设备。这些计算设备1610上的进程1611可读取列表1605以及任何补充列表1620,并禁用列表1605、1620上的组件,例如组件1630。进程1611可确保列表1605、1620上指定的所有组件1660在将例如1606的数字媒体对象暴露于这些组件的操作之前被禁用。列表1605和1620可以是如前所述的取消列表(图7,714)和/或所载入的取消列表(图7,754)的变体。计算设备1610可以是PC或CE设备(图2,201)并提供一安全计算环境(图2,200)。
列表1605可提供全局取消或对全部受保护媒体对象禁用一组件,但它还可提供更为灵活的取消。列表上的组件1660可被标记用于临时取消,其中它们仅被禁用有限时间,它们也可被标记用于内容特定取消,其中它们仅在访问特定类型的媒体内容,例如音乐媒体内容时才被禁用。它们也可被标记用于媒体对象特定取消,仅禁用对例如数字媒体对象1606的特定媒体对象的访问,或可标记用于媒体对象源特定取消,仅禁用从例如媒体内容分发者1601的一特定源对媒体内容的访问。在禁用如在列表1605、经更新列表1608和任何补充列表1620上指定的组件之后,媒体对象1606、1607可由用户通常在应用和娱乐时使用的数字媒体访问平台1650处理。为说明起见,这些进程未在图16中示出。
除了灵活取消之外,列表1605可提供灵活的分发和更新。列表1605可由负责维护列表1600的组织来分发和更新。它还可由允许这样做的其它组织1603来分发和更新。补充列表1620可由数字媒体对象1606、1607提供,以指定对该对象1606、1607、或来自同一源1601或1602的其它对象的更严格或不太严格的取消策略。媒体对象1606或1607也可指定列表1605的最大使用期限,从而要求计算设备1610所使用的列表1605已在指定时间间隔内更新。这使得数字媒体的所有者能控制对其所有物(例如1606)的媒体保护的严格程度。控件可被添加到列表1605,以指定哪些组件1660可被取消,以及获准更新列表的那些(例如1601、1602、1603和1604)中所允许的取消类型。
此外,访问列表1605的计算设备1610上的进程1611可包括以下功能:便于列表1605和1607的使用,诸如提示更新列表;向用户通知组件禁用;以及提示替换被禁用的组件。除自动和透明更新外,提供了用于提示用户更新列表的数种技术。进程1611还可在禁用组件1630之前通知用户,并给予用户是禁用组件1630还是放弃访问媒体对象1606、1607的选择。列表1605可包含用于替换组件1630的统一资源定位器(“URL”),并且进程1611可提示用户访问该URL以替换一被禁用组件1630。
本发明可利用安全传输和存储列表1605的技术来使其免遭未经授权实体更改。安全的数据传输和存储技术是本领域所公知的,并且本发明并不限于任一这种技术,但是称为“安全时钟”技术的一种现有安全传输技术被提议用于优选实施例。该技术包括从例如1603的受信任源取得一安全时钟时间T2,并将其与和列表1605一起存储的安全时钟时间T1作比较。如果确定需要更新,则可将T1连同其它标识信息发送给受信任源1603。然后受信任源1603可返回列表更新1608、以及新的时钟时间T3和原始时钟时间T1。然后T1可由接收者验证以确定该受信任源1603是否已被损坏。
最终,用于证明和标识组件1660的技术被作为对组件1660的附加检查、以及统一标识列表1605的组件1660的方法提出。唯一的标识符可被分配给所有组件1660。该标识符可由组件的所有者或创建者创建。该个人然后通过承认所使用的标识符是真正唯一的、并且该组件没有可用来损害数字媒体保护技术的属性,可向负责维护该列表的组织证明该唯一标识符。这可由证明组织复核,然后该唯一标识符可用来标识组件。如果组件被确定为允许绕过数字媒体保护技术,则其唯一标识符可被列出并且该组件可被禁用,如下所述。
禁用组件倾向于指限制或完全禁止组件在计算设备上的使用。在本文档中使用时禁用可指宽泛范围的可能动作,除非该术语被进一步地限制成描述一特定类的禁用。禁用可激烈如同出于全部目的永久全局地禁用一组件,诸如从所有形式的计算机存储器中擦除一软件组件并禁止其在任何理由下的重新安装。禁用也可以是更为不引人注目的,例如通过临时地限制一个组件或一个组件功能子集参与指定动作达一有限时间,或者临时地限制组件对指定数字媒体对象进行操作。术语禁用和术语取消在本文中倾向于是同义的。
在本说明书中常常引用两类取消。全局取消在本文中使用时倾向于指对所有受保护媒体对象永久地取消一组件。当数字媒体访问平台1650访问任一受保护媒体对象时,不再允许已被全局取消的对象运行。有限取消倾向于指当计算设备对一特定媒体对象操作时完全地禁用一组件,随后允许该组件恢复正常功能。作为有限取消主体的一个组件在数字媒体访问平台1650操纵一特定媒体对象时出于任何目的都不能被访问,但是在该媒体对象从有效操作中安全移除之后可允许该组件进行其全范围的正常操作。有限取消在本文中也可被排他性地引用。
数字媒体对象有时将被称为媒体对象。数字媒体对象可以是消费品媒体的离散数字表示。电影、歌曲、书籍、论文、插图、照片、以及数据库或数据的有用集合都能数字地存储,并且这样可采取数字媒体对象的形式。各种各样的数字文件格式可用于这样的媒体对象,诸如熟悉的用于歌曲的波格式(“.wav”)和MPEG音频层-3格式(“.mp3”)、用于书面文档的文件(.doc)和多信息文本格式(“.rtf”)、用于数字图像的.Tag图像文件格式(“.GIFf”)和联合图像专家组(“.jpeg”)格式等等。一般而言,媒体对象存储在某些形式的计算机可读介质中。
适用于本发明的列表的各个实施例在图17中提供。参看图17,列表以表格格式示出。可以理解,表格不是必需的,相反组件和任何相关信息可被堆到单个列等中。该表格提供一列用于唯一标识符1700,其中可放置用来唯一地表示组件的信息。唯一标识符列1700中的标识符也可唯一地表示组件的组,例如来自一特定源的任何组件。图17中的唯一标识符被示为“组件A”1701、“组件B”1702等。也可使用数字、文本、符号等的字符串,诸如字符串“Yu2#abc”1704。在一较佳实施例中,全局唯一标识符(“GUID”)1705可被用作列表的组件的唯一标识符。
可提供定义响应组件的取消特征的取消作用域列1710。例如,一组件可被标记用于全局取消1711,诸如组件A 1701。组件B 1702被标记用于有限取消1712。组件C 1703被标记用于“媒体内容类型”取消1713。例如,想像组件C实际上唯一地标识了一类媒体对象,例如电影、或音乐文件、或以.mpeg格式存储的文件。取消可使用媒体内容类型取消1713应用于这一类。Yu2#abc 1704组件被标记用于媒体源类型取消1714。该取消1714可用来对所有媒体对象禁用来自指定源的相应组件1704。最后,可在取消作用域列1710中指定任何其它类型的取消1715。可有许多发明用于各种情形的有细微差别的取消,并且任一这样的细微差别可在一个或多个取消作用域1710列中指定。
可提供更新URL列1720以提供更新标记用于全局取消的组件的信息。尽管图17使用熟悉的万维网(“www”)URL来提出替换组件的位置,但任何位置可在这样的一个列中指定,包括内联网或网络位置、甚至电话号码或街道地址。这种列1720的目的倾向于要便于进行组件取消的计算设备的用户访问替换组件。
因特网位置可提供一种方便的替换已被全局取消的软件组件的方法。例如,更新URL列1720中的URL可指定列表组织(诸如图16中负责取消一组件的1600)的因特网位置。这由图17中的元件1721示出。列表组织(图16,1600)可提供一新组件或替换组件,或者可将计算设备重新引导到能提供一新组件或替换组件的位置。类似地,该列表可提供如1722中的到组件开发者的直接链路,或到媒体对象所有者或负责取消一组件的某些其它实体的链路,如1724和1725所示。
最后,对于图17的列,可提供任何数量的其它列x、y、z和n,以提供相关于列表中组件的其它有用信息1730。可存储在这些列中的某些示例性信息可包括组件及其功能的无格式英文描述。在计算设备的用户被提示取消列表上的组件的情形中,用户可受益于该描述的可用性。此外,如果多个组织被允许对该列表提供更新,则可有某些组件被标识为仅由诸如列表组织的特定组织更新(图16,1600)。
图17的列表也可指示最后一次更新的时间T1 1760。因为常常作出有关组件安全性的新发现,所以最近的取消列表可提供比旧的或过时的取消列表更高的安全性。即使该列表不改变,内容所有者也会想要确保重放其媒体对象的计算设备具有最新的列表。
列表可接受的过时可与媒体对象的值相关。最高取值内容-例如最近已向大屏幕影院市场发行的高清晰度电影-可能需要在呈现内容之前对更新后列表作检查。中等取值内容-例如最近已向DVD家庭视频市场发行的标准清晰度电影-可能需要不超过一个月的列表。较低取值内容-例如以不受保护格式同样可用的受保护内容,诸如“红皮书音频”内容-不再强加列表更新。
图17的列表还包括一变化标识符1750。该变化标识符可在更新列表以提供有关列表属性的易于访问信息时使用。
替代提供其中提供所有组件、取消、替换及其它信息的单个主列表,可提供多个列表。例如,在本发明的各个优选实施例中,可不采用取消作用域列1710。相反,全局取消列表1870可由负责维护该全局取消列表1870的组织提供。在图18的左侧示出的全局取消列表1870仅包含将被全局取消的组件的唯一标识符。组件A 1701、组件D 1806、组件E 1807等在示例性全局取消列表1870上示出,因此被指定用于全局取消。
此外,参考图9,媒体对象的所有者和分发者可提供诸如有限取消列表1871等多个有限取消列表。这里可以作为例如与数字媒体对象1606、1607绑定的增补列表1620提供,如图16所示。有限取消列表1871趋于仅包含为有限取消所设计的组件。因此,组件B 1702、组件M 1810、组件N 1811和组件O 1812都被示为为有限取消而设计的。
如图18中的全局取消组件和有限取消组件分为两支倾向于允许本发明的灵活和安全使用。组件的全局取消可具有对计算设备的严重后果,因此不建议对广泛的参与者群体给予全局取消能力。然而,有限取消倾向于仅应用于指定要取消组件的媒体对象。因此,有限取消不必使计算设备有重放对其请求取消的特定媒体对象之外的后果。通过使全局和有限取消分为两支,列表组织(图16,1600)可确保一个一般安全环境来防止对大多数媒体对象的未经授权访问,同时媒体对象所有者和分发者可增加他们自己的媒体对象的安全程度而不会负面地影响计算设备的正常功能。
图19是示出用于实现图18的多个列表的一种示例性技术的框图。图19可通过首先简略地引用图16来得到最佳的理解。如更新列表1608的列表1605、以及任何补充列表1620可由禁用例如列表1605、1608、1620上的组件1630的策略引擎1611等实现。这可在媒体对象1606或1607被传递到平台1650,并由此暴露于各个组件1660的操作之前实现。
内容所有者可提供一源安全性管理器1910来确保在允许访问媒体对象1912之前取消组件。该源安全性管理器1910可根据内容所有者的需要来调整。这样,它可从媒体对象1912中读取一补充列表1921。它还可读取任何附加列表,诸如指定要对所有媒体对象禁用的来自源的组件的源一般列表1911。此外,源安全性管理器可按需访问其它信息1920以确定在重放特定媒体对象1912之前应当禁用的任一其它组件。在确定要禁用所有组件之后,一排除列表1923可被传递给一般策略引擎1900等。
一般策略引擎1900可实施排除列表1923、以及应用于所有媒体对象的全局取消列表1901。它可按需通过接口与应用程序1902链接,以向计算设备的用户通知取消组件,并提示用户替换任一组件1930。或者,这可在用户不交接或知道的情况下自动地执行。一旦计算设备准备好呈现媒体对象1912,它就可通知源安全性管理器1910,并且该源安全性管理器可将媒体对象1912传递给策略引擎等。
策略引擎2032的各种功能如图20所示。策略引擎2032可负责读取和实施在全局或补充列表上指定的组件取消。这倾向于涉及将列表上的任何组件与可与媒体对象交互的每个组件作比较。取决于所列出的组件是访问期望媒体对象所任选的还是必需的,可提供两种或多种不同的实施体验。如果该组件是可任选的,则组件更新用户界面可指示它被禁用,组件变换可从进程中排除,并且媒体对象可继续播放。如果该组件是必需的,则用户可得到通知,组件可从进程中排除,并且媒体对象可被跳过,即禁止重放。在发现并安装了一个替换组件之后,用户可再次尝试访问所期望的媒体对象。
按照实施这些列表,策略引擎2032还可更新列表和所禁用的组件。这些进程在图20中示出。注意,尽管任一列表可由策略引擎2032更新,但在优选实施例中媒体对象指定能够它们自己的要排除的组件列表,以及可能全局取消列表的新鲜度。在这种配置中,只有全局取消列表易于得到更新。
有触发列表更新的各种方法。在各种实施例中,操作系统或设备可周期性地检查经更新的全局取消列表。也可称为源信任授权机构的源安全性管理器也可通过要求一经更新列表来触发一更新。更新可自动地执行,或者可向用户提供拒绝检查或更新全局取消列表的选项。如果用户拒绝执行一更新,则不可播放需要一经更新列表的内容。
一旦触发了一更新,就可发生图20中所示的进程。首先,策略引擎2032可启动一列表更新UI 2021。这可向计算设备的用户通知一列表更新即将发生,并提供推迟该更新的机会。用户可获准指定他们想要如何并在何时更新该列表。例如,用户可指定从不检查更新,或者周期性地检查更新并通知用户。在后一情形中,当设备在线时,可进行从列表组织2000列表服务网站2001等中对经更新列表的搜索。如果新列表可用,则指示新列表可用的图标可出现用户的桌面上。用户还可获准指定对列表的自动更新。当设备在线时,经更新列表(如果有一个可用)可从列表组织2000列表服务网站2001等中自动下载。更新可被安全地存储在列表存储2031中。
可置于全局取消列表之上的组件可通过对计算设备的用户启动替换UI 2022被策略引擎2032等替换。该UI可通知用户一组件被取消。它还向该用户提供其它信息,描述组件何时被取消、被取消的组件名称、谁取消了该组件、以及该取消是全局的、有效的、还是对于来自指定源的全部内容的。用户可进一步地得到组件对一媒体会话是否是必要的、替换所取消组件的位置等通知。这样,‘现在更新’和‘更多信息’按钮可以是该UI的一部分。‘更多信息’可将用户带到描述问题和为解决问题用户可采取的步骤的网页上。‘现在更新’可使用户得到替换组件的下载体验。或者,组件可在用户不输入或不知道的情况下自动替换。术语被替换和被更新在本文环境中可同义地使用。
下载体验首先可访问组件发现服务2002。该服务2002可使用来自列表的唯一标识符来确定要替换哪些组件。一旦作出这种确定,该服务就可通过列表组织组件下载服务2003将一替换组件直接下载到客户机2050。否则,该列表组织可将客户机2050重新导向到第三方组件下载服务2010。通过维护一组件可用位置的列表,列表组织可确保客户机2050不被导向过时或不正确的因特网位置。在完成组件下载或更新过程之后,组件更新UI 2022可提示用户安装替换组件,或者替换组件可由策略引擎2032等自动安装。
关于经更新列表的下载,注意对列表的更新可来自任意源,而不仅仅来自集中式列表组织。在这点上,图16示出来自单独的组件信息存储1603的列表更新1608。图16中列表源发站1600和列表更新站1603的分开旨在表示列表更新可来自任何受信任源。然而,在优选实施例中,诸如1600的单个组织产生并更新列表1605是更为有效的。
各个较佳实施例将提供列表的安全传输和存储以防止篡改。如果列表被篡改,则应当禁用的组件可能不会被禁用,由此损害本发明所设计保护的媒体对象、其它数据和/或整个系统的安全性。此外,因为发现了新的信息,所以可能发现可能的安全漏洞,因此可周期性地作出对列表的更新。这些更新应是安全的以防止篡改。这样的更新可在任意时间间隔上可用,尽管经验显示每月一次的更新对全局取消列表提供令人满意的时间间隔。如果没有新的组件被添加到列表上,则可向客户机设备提供空白的更新以满足内容所有者的新鲜度要求。
用于安全传输和存储数据的各种技术在本领域中是公知的,并且可使用任一这种技术。用于传输列表的一优选方法被称为安全时钟法。该方法具有阻碍重放攻击、中间人攻击、和时钟回滚攻击的优点。使用该技术,客户机2110与更新服务器2100之间的通信参与图21中所示的过程。首先,客户机计算设备2110倾向于针对它所具有的当前全局取消列表取回最后更新的时钟T1(2101)。接着,客户机2110倾向于从列表服务安全时钟服务2100中取回(2102)当前的安全时钟T2。然后,客户机2110倾向于比较T1和T2并确定(2103)它是否需要向列表服务更新服务2100发送一更新请求。这种请求如果被发送则可包括T1、诸如GUID的表示全局取消列表的唯一标识符、以及客户机版本号。列表服务更新服务2100然后倾向于取得客户机2100的请求及其当前新鲜时钟T1。它倾向于检查自T1起全局取消列表是否已被更新(2105)。如果是,则列表服务2100可准备将最新的全局取消列表发回到客户机2110。如果否,则列表服务2100可简单地准备发送标识空更新的一个响应字符串。该列表服务2100还可取回(2105)当前的安全时钟时间T3。客户机版本、T1、T3和响应可由列表服务2100一起签名(2105)以防止篡改。该经签名封装可被发送(2106)给客户机2110。
当客户机2110得到响应时,它可检查(2107)响应完整性和它所包含的时钟时间T1、T3。T3应大于T2,且T1和客户机版本应当与客户机2100发送给服务器2100的原始值相同。这倾向于防止中间人和时钟回滚攻击。最后,客户机2110可将其全局取消列表的最后更新时钟更新(2108)为T3,并在需要时更新(2108)全局取消列表本身。本领域技术人员将理解其它安全协议和以上协议的变体等是可行的,并且在某些情形中对于提供列表的安全更新是合乎需要的。
注意客户机版本号的使用。这使得列表服务2100能更新用于进一步向客户机2110分发的分发机制。例如,列表服务2100可通过将完整或空的取消列表引导给客户机来开始。但是,如果后来列表服务2100确定下载完整的取消列表过于庞大,则它可设计一种增量机制来仅发送全局取消列表的更新部分。如果是这样,则可将不同的版本号分配给新的客户机2110。
在成功传输之后,列表可被存储在任意适当位置。如果它已被签名,则它无需存储在一安全位置,因为每当访问它时可对其进行验证。或者,它可被置于不易受到文件回滚攻击的安全存储中以确保所取消的组件保持被取消。
以上描述详细地说明了列表的各个实施例,包括各种类型、列表的源、以及用于实施和更新这些列表的过程。以下简短描述将涉及由诸如图16中列表服务1600的列表服务生成这种列表的技术。一般而言,该过程包括生成可关于媒体对象1606、1607在计算设备上运行的组件1660的唯一标识符。提供了列表组织可借此证明组件安全性的附加特征。在各个优选实施例中,只有经证明的组件才被获准关于媒体对象运行。
图22是示出插件(图16,1660)可如何与允许它们被载入数字媒体平台(图16,1650)的标识信息相关联的一示例性过程的框图。在各个优选实施例中,没有组件获准相关于数字媒体平台等运行,除非它已经过列表组织证明。作为证明过程的一部分唯一的标识符被分配给一组件,且该唯一标识符可与取消列表相匹配。因此图22提供使组件开发者能获得所开发组件的证书和唯一标识符的证明过程,开发者需要可与数字媒体平台等一起使用的证书和唯一标识符。
首先,图22的步骤示出通过以下示例性步骤2201至2203组件开发者可获得其组件的常规证书并签名其组件。组件开发者可生成他们自己的公钥/私钥对(K1pub,K1pri)(2201)。接着,组件开发者可将公钥K1pub发送到任一信任根,例如VERISIGN以得到一常规证书(2202)。然后,组件开发者可使用标准签名方法以私钥K1pri对其各个组件签名(2203)。该签名连同来自2202的证书通常使该组件的用户能确认该组件真正属于所述组件开发者,并且在它被创建之后没有被修改。
以上步骤2201-2203对本领域技术人员而言是可从其它环境中认识的。在执行以上步骤2201-2203之后,在允许组件载入数字媒体平台之前还可要求其它步骤2204-2205。如步骤2204所示,可要求开发者将标识诸如数字链接库(“DLL”)等组件的信息置入与该组件相关联的经签名块中。该块可以是例如XML清单。该标识信息较佳地将包括确认该块是真正用于所标识组件的组件散列。该块中所包括的其它信息可以是诸如GUID的对组件唯一的唯一标识符、开发者的公司名称、以及与组件相关联的其它有用信息。记住,唯一标识符将用来对取消列表标识一组件。该唯一标识符可包含作为唯一标识符信息的任何模式,例如供应商名称、公钥、唯一ID。由受信任根签名的任何信息可用于匹配目的。如果需要,组件开发者可使用与步骤2201相同的私钥K1pri或新的私钥K2pri来签名标识块。
最后,组件开发者可针对一单独证书将相应的公钥(K1pub或K1pub)发送给列表组织(2205)。此时,列表组织可请求组件开发者签署协议,即所提供的标识信息是正确的、将不会重复使用唯一标识符、并且该组件遵守被设计成保护数字内容的一些通用顺应性规则。
策略引擎(图16,1611)等可信任列表组织。因此,来自列表组织的证书(2205)向策略引擎指示所证明的组件可被安全载入数字媒体平台等,并且标识信息确实属于该组件并且没有被篡改。
图23是示出验证来自组件开发者的信息是正确的过程的框图。图23的步骤可由承担有实施列表任务的诸如策略引擎的软件、数字逻辑等实现。首先,策略引擎可取回在2202从组件获得的常规证书。它使用标准方法验证证书的完整性(2301)。然后,它可从该证书取回组件开发者的公钥并使用该公钥来验证组件的签名(2302)。此时,如果验证成功,则策略引擎可确保组件开发者担保该组件,且该组件从彼时起就没有被修改。
在图23的后续步骤中,策略引擎重复步骤2301和2302以验证来自2204的标识块。具体地,策略引擎首先可取回在2205获得的证书,并使用标准方法验证该证书的完整性(2303)。然后它可从列表组织证书中取回组件开发者的公钥,并使用该公钥来验证标识信息上的签名(2304)。如前所述,标识信息块较佳地包含可用来验证该块的组件散列。策略引擎等可取回该散列,然后验证它与组件相匹配,而组件又确认标识信息真正与该组件相对应。
最后,策略引擎可确定经签名块中的标识信息是否与取消列表中的条目之一相匹配(2305)。该过程使针对从列表服务获得的全局取消列表和来自数字媒体对象等的排除列表来检查唯一标识符成为必需。如前所述,该标识信息可包括唯一GUID、开发者的公司名称、开发者的公钥等等。取消列表的每个条目可具有与这些字段的一个或多个匹配的模式。这使得列表服务或数字媒体对象能取回来自特定开发者的一个具体组件(根据GUID)或所有组件,或用特定密钥签名的所有组件等等。
如果该组件的标识信息与取消列表的条目之一相匹配,则策略组件不允许组件获取对数据媒体对象内容的访问。该拒绝本身可使用本领域技术人员理解的各种机制来实现。
总结以上对禁用和取消组件以保护数字媒体的描述,列表可用来标识将被取消的组件。该列表应被安全地传输和存储。受信任进程可读取该列表并负责取消其上的组件。可指定变化程度的取消。全局列表可对所有媒体对象取消组件,而任何数目的补充列表可仅对媒体对象子集枚举要取消的组件。该列表还可向用户界面提供可向用户通知取消、列表更新、并通过替换或更新禁用组件来引导他们的信息。
个性化受保护计算环境的元件
以下描述提供用于个性化受保护环境的元件或组件的系统和方法,包括:创建唯一的设备证书,并使该唯一设备证书与一设备、系统或软件组件相关联以提供个性化。通过用模板构建消费电器设备、系统或软件组件,唯一设备证书可在后来生成。通过使延迟设备证书的生成成为可能,制造过程倾向于被简化。该模板包含倾向于对制造商生产线中的所有设备通用的信息,并使该设备、系统或组件能在制造过程已完成之后使用个性化过程来生成唯一设备证书,和/或用该证书来更新。个性化系统和方法的一个示例在2004年12月20日提交的美国专利申请No.11/018,095中提供,该申请通过引用全部结合于此并如下所述。
经个性化的组件是通过个性化已变得唯一的组件,个性化就像接收唯一安全性更新一样。内容提供者可要求仅在已被个性化的系统上播放其数字内容。在个性化过程期间,证书授权机构的个性化服务等可生成绑定于该组件的唯一证书。一旦该组件已被个性化,就可生成公钥/私钥对。在个性化过程中生成的私钥可被存储在组件中。相应的公钥可在请求许可证时被用作组件的标识符,并且交换所可使用该密钥来加密许可证。如果组件被移到另一主机,则它需要另一次个性化。由交换所准予的许可证在诸如计算机或消费电器设备的另一系统上是不可转换或使用的。
个性化可减少因攻击引起的损害,因为如果系统上的组件被损害,只有该系统易于受到影响。然而,这可引入有关权限便携性的困难:例如当用户需要在他朋友处观看电影或在他朋友的便携式设备(PDA、移到对话、便携式播放器等)上收听音乐时,他可能必需获得每个设备的新许可证来获准内容消费。为了减少数字许可过程对用户体验的影响,一些解决方案允许用户备份其许可证并将它们恢复到另一系统。为了防止滥用,用户通常仅能有限次数地这样做。
图24是示出典型的数字权限管理系统2400的框图。数字权限管理(DRM)倾向于提供定义、结合和实施数字媒体2401中的权限等的系统。DRM系统2400倾向于提供来自服务提供者2407的媒体内容2410在可能会不安全的诸如因特网2045的信道上的安全分发。该系统2400可实施使用规则并使多媒体内容2410免遭非法使用。使用规则可包括过期日期、用户可播放音频或视频文件的次数、以及用户可复制音频或视频文件等的次数。
作为示例,个人计算机2403可用来连接到因特网2405并将内容从服务提供者2407传递给消费电器设备2401。用于经由路径2402和2404向PC 2403、以及向CE设备2401传递信息的协议可通过诸如USB、红外、蓝牙、MTP等常规连接实现。在替代实施例中,消费电器设备可在不使用个人计算机2403的情况下被耦合到服务提供者。个人计算机和CE设备可利用本领域技术人员所知的任何数目的适当操作系统来运行。用于实现本说明书中描述的功能的指令可作为软件、硬件(例如烧入ASIC中的指令)或其组合存在。
在通常的使用中,DRM 2400倾向于通过提供经加密数据文件2409来保护内容2410。因为文件2409被加密,所以数据本身受到保护。因而,文件2409可不受限制地被移动、存档、复制或分发。当加密文件在系统之间传输时,无需隐藏文件或使它们不可访问,或实施特定保护,因为复制文件并将其给予他人并不能使他们使用该文件。为了能使用加密文件,用户必须获得许可证2408。该许可证2408是对加密文件2410实施控制的一种方法。许可证2408通常被授予单个机器2401,甚至在被复制的情况下它也不易于对其它系统发生作用。
每个许可证2408都包含权利和限制,定义可如何和在什么条件下使用文件中的数据。例如,音乐文件许可证可包含“播放权”而非“刻录CD权”,并且它可允许2005年10月1日到2005年11月1日期间的这些权利。对一个文件有多个许可证也是可能的。只要那些许可证之一授予所需权利,用户就能以期望方式访问和使用该文件。访问可指用密码术解密文件、通过口令获得文件的访问权等,从而消费电器设备或系统可观看、播放和以其它方式使用该文件的内容。
在所述实施例中,许可证2408倾向于结合设备证书2411工作,该设备证书2411允许加密内容2409在消费电器设备2401等上播放。如果系统提供视频或图片功能则也可观看该文件。用于观看或回放的文件通常将包括音乐文件、图片文件、视频文件、文档等。简言之,即服务提供者想要经由信道安全传输的任何东西。系统通过设备证书来标识自己。该示例性XML结构或其等效体描述了CE设备、列示了所支持的特征、并且还包含系统的公钥。设备证书2411对于单个系统、消费电器设备等而言可以是唯一的。在各个实施例中,唯一设备证书2411倾向于从与消费电器设备2401、软件组件等封装(2413)在一起的设备证书模板2412中生成。该设备证书模板可被视为有助于创建唯一设备证书的特定模式、引导等。
提供内容、数据等的使用或回放的消费电器设备2401、计算机系统或其它系统等可被称为数字权限管理(“DRM”)设备。这些设备可以是控制受保护内容2409的分发以及对该内容2410、数据等的访问的DRM系统2400的一部分。能使用DRM的设备2401可包含称为“设备证书”(“Dev Cert”)2411的可用来确保DRM操作的安全性的一个XML对象(或XML的等效体)。通常设备证书可以包括但不限于XML的任何格式或数据结构提供。设备证书2411对每个CE设备2401或组件都是唯一的,并且通常对制造商而言在CE设备2401或组件内提供比提供简单的序列号等更难。
设备证书2411是可用于消费电器设备2401或组件等以通过认证设备2401或组件获准访问受保护内容2409来提供安全性的安全设备。设备证书是外部实体所信任和依赖的、可使该实体向CE设备提供内容的凭证。设备证书还可用来验证或授权用于访问内容或数据的组件。这种自动化设备认证可用于被设计成安全回放或使用受保护媒体内容或其它数据的系统2400中。
该示例性设备证书2411可以是将设备标识、设备功能声明、重要信息、公钥信息等收集在一起、并呈现单个数字签名设备证书中信息的XML对象。设备证书通常至少使用一公钥和一签名;设备证书中所包括的其它信息倾向于是可任选的。设备证书2411可通过OEM签名证书(未示出)签名,该OEM签名证书可以是OEM提供的设备证书2411是附随其的设备2401或组件的准确反映的证明,也可能是第三方提供的证明OEM被授权创建和证明DRM系统的内容调节器证书(未示出)。
所述实施例倾向于解决与生成针对OEM生产线中的每个消费电器设备2401、或针对可安装在许多系统上的软件组件的唯一和可验证设备证书2411相关联的制造问题。这些实施例倾向于使制造商能装运使用通常对生产线中所有系统都等同的设备证书模板2412的整条生产线。使用该模板2412,设备2401可在制造之后自动并安全地自个性化。换言之,该设备基于内置其中的模板2412创建唯一的设备证书2411。或者,个性化可在不同于但耦合于设备的个性化服务的帮助下完成。设备2401然后可在正确的证书2408或个性化组件呈现时访问经加密内容2409。
设备证书模板2412可具有一典型设备证书的多个部分,但设备专用部分倾向于为空。模板2412可由OEM或制造商签名,并可包括第三方内容提供者自己的设备授权证书。为了根据设备证书模板2412创建设备证书2411,启动设备证书个性化的过程。一旦已创建了设备证书,设备就可访问和使用受保护内容。
图25是示出制造带有完整设备证书2504、2505、2506的消费电器设备、组件或系统2501、2502、2503的常规方法的框图。每个设备2501、2502、2503倾向于被制造成带有相应的唯一设备证书2504、2505、2506。每个设备证书倾向于对与其一起装运的设备或组件是唯一的。提供这样的唯一设备证书通常是制造设备或组件时所需的、增加制造的成本和复杂性的一个附加步骤。
图26是示出制造带有通用设备模板2412的设备2401、2602、2603、软件组件等的方法的框图,这些通用设备模板2412使得唯一设备证书2604、2605、2606能在后来创建。在所示示例中,任何数量的设备或组件可在制造期间构建,每个设备或组件通常都带有相同的设备证书模板2412。在每个设备或组件上载入相同的模板可通过更改通用模板允许设备证书在后来创建而有助于制造过程。
图27是示出可将设备证书模板变换成唯一设备证书的设备证书个性化或初始化过程的框图。设备证书个性化可在已经安装和/或装运了设备或组件之后进行,并且通常在访问DRM内容之前创建设备证书。非DRM内容通常将不启动自个性化过程,因为设备证书通常不需要访问非DRM内容。如果设备被损坏,则在擦掉旧的设备证书之后可重复设备证书个性化。然而,该设备还可能需要从制造商或服务处获取经更新模板,因为设备证书是基于模板的。如果取消了设备证书,则也可取消来自旧模板的新设备证书。
在框2701,CE设备通电启动。通电或在替换实施例中对访问DRM保护内容的尝试可启动个性化过程。在框2702,DRM被初始化。在框2703,如果设备证书可用,则过程跳至框2705。如果设备证书在框2703不可用,则过程继续到框2704。
在框2704创建唯一设备证书。并且最后在框2705访问DRM内容。
图28是示出倾向于构成设备证书模板2412的各个部分的框图。所述模板通常将被储存在消费电器设备的存储器中。同等地,该模板可储存在诸如闪存RAMASIC、一个或多个软盘、光盘、硬盘或其它计算机可读介质等的其它类存储器上。设备证书模板的各个部分一起工作以建立一信任路线,使得内容提供者具有包括该模板或从中推导的唯一设备证书的设备或组件是有效的并被授权用于期望用途的合理预期。为了反向兼容或其它目的,可在设备证书模板中提供一条以上的信任路线。
在构建设备证书模板中所反映的信任路线时,OEM通常生成可在形成一设备授权证书时使用的公钥和私钥对。OEM所生成的设备授权证书(“DAC”)通常包括由OEM储存在安全位置的私钥。还包括有通常发送给证书授权机构的公钥。证书授权机构验证OEM的DAC并返回一授权根证书和被发送回OEM的授权证书。
OEM通常装备有来自证书授权机构的生成一分组证书的软件工具。该分组证书可包括设备或组件的特征、限制和/或其它元数据(制造商名称、型号等)。然后OEM用DAC私钥对该分组证书签名。包括带有未经签名模板的AUTHORIZATION_ROOT(授权根)证书2801、AUTHORIZATION(授权)证书2802和分组证书使得该模板能够生成并包括有设备或组件加上分组证书私钥。在制造之后,诸如使设备通电启动、或尝试访问一文件的触发器通常将使设备证书能通过填充模板中调用的任何所需信息、并用分组证书私钥签名来从模板中生成。触发器可被视为开始自个性化过程或设备证书生成的启动事件或启动命令。
在建立信任路线时,设备证书中的各个证书各自建立可追溯回OEM的一条信任路线。如果需要可取消各个证书,从而使信任链中断。
AUTHORIZATION ROOT证书2801是设备证书模板中所包含的一部分。该部分通常包含证书授权机构的根证书信息。证书授权机构的根证书通常是最高级别的授权,并由证书授权机构签发。构成信任链的其它证书可基于该授权根证书。一般而言,根证书包含一ID(标识你在证明谁)和正在证明的公钥。该证书通常通过证书授权机构的私钥签名。该私钥通常储存在由证书授权机构控制的安全位置中。相应的公钥通常储存在设备或组件中并用于验证签名。
AUTHORIZATION证书:本部分通常包含证书授权机构对OEM的制造设备证书的证书授权。本数据部分通常包含OEM的授权ID、设备的最大安全级别、以及签名分组证书的公钥。本数据部分通常使用证书授权机构的私钥签名。相应的公钥通常储存在授权根证书中。
分组证书:本数据部分通常包含对整条生产线相同的设备特征,诸如设备或组件的名称、制造商等。它包含作为验证设备证书部分的基础的分组证书公钥。相应的私钥被隐藏在设备上。该设备证书部分通常使用该私钥签名。
图29示出一示例性XML设备证书模板。设备证书模板可体现为XML或某其它形式。示出了使用XML来实现授权根证书2801的一个示例。授权根证书通常包括一公钥。还包括在设备证书模板中的是构成授权证书2802的XML代码。并且在此之上示出了构成分组证书2803的XML代码。最后,XML编码模板的将被填充以创建设备证书2804的部分在页面的顶部示出。反向兼容性或合法许可的规定2901可被包括在XML代码中。
在该模板中构成设备证书模板的各个部分可以任意顺序显现,所示顺序仅是一个示例。此外,设备证书模板可用各种语言或格式来编码,诸如html、二进制格式等。在替换实施例中,也可能从服务器或服务载入模板,而不是由制造商预先将模板载入到设备或组件上。
图30是示出创建一示例性唯一设备证书的设备证书个性化过程的框图。该过程可利用设备或系统与服务提供者之间的询问和回应交换。在该交换期间,安全倾向于通过提供具有中等安全级别的密钥的交换来维持。具有中等安全级别的密钥通常用来启动该过程并将验证过程“引导”到一更高安全级别。
为了提供唯一设备证书或“唯一Dev-cert”,个性化过程通常用来创建唯一设备证书(图27,2704)。开始一示例性过程,在框3003设备或系统通过收集框3002的设备专用信息和框3001的经签名设备证书模板来构建设备证书询问。提供给该框的设备证书模板2412可如前所述,并可包括来自服务提供者的授权证书、设备信息(制造商、型号、版本等)、确认提供了模板的模板字段、设备证书询问应当向其发送的URL、用来加密设备证书询问中设备私密数据的公钥、以及用于模板数据部分的数字签名。该设备专用信息可包括对想要形成其设备证书的设备或组件唯一的信息、并且还可被称为“唯一设备ID”。在一实施例中,设备专用信息可包括基于设备序列号或其它唯一系统信息的标识字符串。
在框3004,来自询问的该唯一信息被发送给可由设备或组件的OEM操作的服务器(或“Dev-cert单个服务器”)等。发送给服务器的数据通常是私密和受保护的。在框3005该服务器通常基于询问数据确认导入询问并创建唯一设备证书-“唯一Dev-cert”。包括所创建设备证书的回应在框3006被返回给设备(“Dev-Cert回应”)。在框3007,设备确认所接收到的回应。在框3008,设备或系统储存已创建的设备证书。在一实施例中,唯一设备证书的储存可包括用唯一设备证书来更新一组件,诸如图15中所示的PE管理组件(图15,752)。
图31是示出构成在设备证书个性化过程中使用的一示例性设备证书询问的多个部分的框图。设备证书中多个部分的排列是可变的,且用来编码各个部分中信息的语言或协议也可变化。DATA(数据)部分通常包括URL(3104)、DEVCERT_TEMPLATE(设备证书_模板3105)、BOOTSTRAPID(引导ID 3106)以及DEVINFO(设备信息3107)。DEVINFO可包含DEVICE_UNIQUEID(设备_唯一ID 3108)、DEVICE_PUBKEY(设备公_钥3109)、DEVICE_PRIVKEY(设备_私钥3110)和DEVCERT_OLD(设备证书_旧3111)。
DATA部分在3102示出。该数据部分或标记包含由设备证书询问提交的部分或全部数据。该标记通常是强制性的。通常该数据可包含URL(3104)、DEVCERT_TEMPLATE(3105)、BOOTSTRAPID(3106)以及DEVINFO(3107)。DEVINFO可包含DEVICE_UNIQUEID(3108)、DEVICE_PUBKEY(3109)、DEVICE_PRIVKEY(3110)和DEVCERT_OLD(3111)。
SIGNATURE(签名)部分在3103示出。通常包括dev-cert询问的字符串<DATA>和</DATA>的DATA部分的内容通过由OEM提供的BOOTSTRAP(引导)私钥数字签名。该部分还包含通常是强制性的数字签名。
URL部分在3104示出。在该部分中通常记录要向其发送设备证书询问的URL。它通常是明文(未加密)储存的。该URL可取自设备证书模板,从而应用程序无需单独地解析设备证书模板以取得URL。该标记可以是强制性的。在一替换实施例中,URL可从设备证书模板中解析。
设备证书询问的DEVCERT_TEMPLATE部分在3105示出。在本部分中提供的有效设备证书模板通常通过OEM私钥签名。该节点也可以是明文的。该标记通常是强制性的。
设备证书询问的BOOTSTRAPID部分在3106示出。该引导ID通常也由OEM提供。提供该引导ID通常是为了帮助服务器找到用于验证dev-cert询问签名的正确密钥。该节点通常是明文的。该标记可能是强制性的。
设备证书询问的DEVINFO部分在3107示出。该部分通常包含一般必须保护的设备专用私密信息。该标记下的内容通常使用一般在dev-cert模板中出现的单个服务器公钥来加密。该信息然后可Base64编码。该标记通常是强制性。该节点可包含DEVICE_UNIQUEID(3108)、DEVICE_PUBKEY(3109)、DEVICE_PRIVKEY(3110)和DEVCERT_OLD(3111)。
设备证书询问的DEVICE_UNIQUEID部分在3108示出。该部分通常包含唯一设备ID。该标记通常是强制性的。
设备证书询问的DEVICE_PUBKEY部分在3109示出。在构建询问的过程中,设备或系统通常生成一公钥私钥对,并如前所述地隐藏该私钥。该部分通常包含一Base64编码的设备公钥。本领域技术人员将认识到可提供其它等效编码。公钥通常由服务器或服务插入真正的唯一设备证书。该公钥还可由服务器用来加密返回给设备的回应。该标记通常是强制性的。
设备证书询问的DEVICE_PRIKEY部分在3110示出。该部分可包含一Base64编码的设备私钥。该设备私钥可由服务器用来加密服务器生成的第三方保存密钥。第三方保存密钥通常加密从客户机提交的任意旧密钥。该标签通常是强制性的。
设备证书询问的DEVICE_OLD部分在3111示出。该部分通常包含旧的“设备唯一dev-cert”。该部分通常是一任选标记。在设备重新个性化的情形中它可包括在内,从而服务器可从该设备证书中提取旧的密钥对并将它们包括在新的设备证书中。
图32示出先前在框3003(图30)构建的一示例性XML设备证书询问。在所示示例中,用XML编码的设备证书(或其等价)可以是Base64编码的。或者,可执行其它类型的编码以便于向服务器或服务发送设备证书询问。在其它替换实施例中,可不执行编码。
当服务器接收到询问3201时,由所提供URL 3204标识的服务器通过验证设备询问的数字签名3202来验证询问的真实性。引导ID 3203通常使服务器能找到用于签名验证的正确密钥。该服务器还倾向于验证包括在询问中的设备证书模板3205的签名。该服务器然后可解码和解密DEVINFO部分3206以访问设备专用信息或唯一设备ID。
在收集了设备专用信息之后,设备证书询问创建真正的设备唯一设备证书并将该设备证书包括在回应3207中。为了保护私密性,设备证书回应可使用设备公钥来加密。该加密倾向于确保回应仅可由从中接收到设备证书询问的设备或系统来解密。
图33示出一示例性XML设备证书回应。该设备回应以HTML格式示出。然而,任何适当的格式和/或协议可被用于设备证书回应。
设备证书回应可包括以下字段。差错字段(“ERROR”)3301可以是一任选字段。差错字段的出现可指示发送给服务器的询问有一些可由差错代码指示的差错。
字段DEVCERT_NEW(设备证书新)3302通常包含通过设备或系统与耦合到该设备的服务之间进行的交换生成的真正设备的唯一设备证书。如前所述,个人计算机可出现在设备与服务提供者之间,或者个人计算机可以是该设备。
当设备接收到设备证书回应时,它通常解码并解密之。如果差错字段3301出现,则设备可向应用程序返回差错代码。如果未出现差错标记,则它通常提取设备证书,验证其签名、服务提供者授权证书、唯一设备id、设备公钥和设备证书的所有其它部分。然后设备证书被储存在设备中或被包括于正在个性化的组件。
图34是示出可出现在设备证书模板一实施例中的信任链结构3400的框图。在信任链结构中,授权根证书3401倾向于针对各个OEM生成许多授权证书或DAC3402、3403、3404。DAC还可包括一安全级别。当从上到下地横穿一路径时,每个水平级别可被视为信任链中的一个链路。每个链路通常具有与之相关联的证书以建立该链路的有效性,并将其耦合到前后链路。例如框3401、3402、3405和3408可被视为从授权根链路3407到设备证书3408的链路。设备证书模板通常通过将信任链中的每个链路纳入形成模板的字段部分来形成。
根据给予OEM的每个DAC,该OEM可针对其制造的每个设备型号或每个组件生成多个分组证书3405、3406、3407。设备证书3408、3409、3410可针对所构建的每个设备生成并倾向于基于分组证书。通过添加或去除分组证书的层次有可能改变安全级别。例如可添加一层设备证书以区分消费电器设备的特定型号的生产过程。