数字权利管理的方法

文档序号:7854682阅读:183来源:国知局
专利名称:数字权利管理的方法
数字权利管理的方法本申请是申请人英特托拉斯技术公司于2006年10月18日提交的同名中国专利申请200680047769. 2的分案申请。本申请要求了于2005年10月18日提交的美国临时申请号60/728,089、于2006年2月9日提交的美国临时申请号60/772,024、于2006年4月10日提交的美国临时申请号60/744,574、于2006年4月10日提交的美国临时申请号60/791,179、于2006年5月8日提交的美国临时申请号60/746,712、于2006年5月8日提交的美国临时申请号60/798,925和于2006年8月I日提交的美国临时申请号60/835,061的优先权益。这里将美国临时申请号 60/728,089、60/772,024、60/744,574、60/791, 179、60/746,712、60/798,925 和60/835,061全部引用以用于任何目的。版权许可本专利文档的公开内容的部分包含受版权保护的材料。版权所有者不反对任何人对本专利文献或专利公开内容的影印复制,由于它已经出现在美国专利商标局的专利文档`或记录中,但是在其它方面却无论如何都保留所有版权。
_5]背景技术或相关信息在现代计算系统中,人们常常希望限制对电子内容、服务和/或处理资源的访问和/或只允许某些实体执行某些动作。已经开发或提出各种技术来实现这种控制。这些技术常常被称为数字权利管理(digital rights management DRM)技术,这是因为一般地说,它们的目标在于在数字或其它电子内容、服务或资源方面管理各实体的权利。许多现有技术的问题在于它们过于复杂、受限制、相对不那么灵活,不能实现某些自然类型的关系和处理,和/或不能与其它DRM系统共同使用。这里描述了与改进的DRM技术相关的系统和方法,所述系统和方法可以用来改进这些问题中的一些或全部。应当理解,目前描述的所发明工作体的实施例可以依照多种方式来实现,包括作为程序、设备、系统、装置、方法、计算机可读介质和/或其组合来实现。用于控制对内容访问的现有系统包括用于结合对电子内容访问的授权来访问许可的组件。然而,这种组件通常对与许可相关联的权利管理信息的链或图、链路或节点执行不太灵活的评估。它们常常不能适于完全不同的授权方案和/或常常不能与某些DRM系统一起操作来授权对内容的访问。本发明的实施例通过与许可相关联地存储、利用和/或执行附加例程或控制程序来克服这种缺点,其可以提供动态授权特征,启用分布式授权资源和/或另外使访问功能流水线化。此外,许多现有系统只针对其中维持简单的与授权/状态相关的数据的情况。这些系统没能解决其中访问授权可能要求关于多个数据层的相关性的情况,诸如根据先前导出的与其它节点相关联的数据来确定条件。本发明的实施例通过结合DRM控制程序实现状态数据库来提供状态存储特征以克服这些缺点,所述状态存储特征是安全的,提供从调用到调用的持久状态信息,或另外启用状态读取和写入功能,所述状态读取和写入功能改进了控制程序的执行和/或执行更高效的访问授权。另外的现有系统可以实现DRM许可或结构,其包括涉及使用公钥来保护许可组件的组件。然而,与这些系统相关的缺点包括这样的可能性黑客可以伪造访问或实施许可或另外利用存在于DRM许可结构中相关联的相互关系所要求的数字签名。本发明的一个或多个实施例通过实施许可对象的数字和/或联锁签名来克服这种缺点,包括使用特定的受保护的密钥。这些实施例的优点包括通过公钥以及从许可元项的相互关系导出的关联特征来防止未授权的访问。其它现有系统可以包括用于在第一实体和第二实体之间诸如在两个权利管理实体之间进行邻近度(proximity)确定的组件。这种系统可以强制执行规则,该规则表明例如通过执行麻烦的邻近度检查过程,而使受保护的内容无法被拷贝到某一环境之外。然而,这些系统的缺点在于它们还不能在不过于妨碍执行邻近度检查本身的情况下向受保护的内容提供安全性保护。本发明的实施例通过提供经由与传输随机数和/或秘密种子相关的特征来实现可靠的简洁的邻近度检测协议来克服这些及其它缺点。一个或多个实施例的相关联优点包括攻击者在密码上不可能确定正确的响应,即便已经拦截了请求也是如此。总之,需要一种可以不依靠过于复杂的、受限制的和/或相对不灵活的技术来充分授权对电子内容的访问的系统,能够启用某些自然类型的关系和过程的系统,和/或可与其它DRM系统一起操作的系统。

发明内容
按照本发明的系统、方法和制造产品针对电子内容的授权访问以及与所述电子内容相关联的数据处理。在一个示例性实施例中,提供了一种用于授权访问在存储器中所存储的电子内容的方法。此示例性实施例的方法可以包括接收用于访问电子内容的请求,获取(retrieve)与所述电子内容相关联的许可,并且使用数字权利管理引擎来执行第一控制程序以便确定所述请求是否可以被准许。其它示例性实施例可以包括评估在存储器中所存储的一个或多个链路对象并且执行第二控制程序以便确定所述链路是否有效和/或一个或多个条件是否被满足。应当理解,以上一般描述以及以下详细描述只是示例性的和解释性的,而并非是限制所描述的本发明。除这里所阐明的那些特征和/或变化之外,还可以提供进一步的特征和/或变化。例如,本发明可以针对所公开特征的各种组合和子组合和/或下面在详细描述中所公开的几个进一步特征的组合和子组合。


结合附图参照以下详细描述可以容易地理解本发明的发明主体,其中图I示出了用于管理电子内容的使用的说明性系统。图2示出了可以用来实施所发明工作主体的实施例的系统的更详细例子。图3示出了说明性的数字权利管理(DRM)引擎在使用DRM的网络中可以怎样起作用。图4示出了用于对DRM系统中的关系进行建模的节点和链路的集合。图5是用于图示DRM引擎的实施例可以怎样确定所请求的动作是否被授权的流程图。
图6依照所发明的工作主体的一个实施例示出了 DRM许可的例子。图7A和7B图示了在一个实施例中代理的使用。图8示出了 DRM许可的例子。图9是DRM引擎可以怎样确定所请求的动作是否被授权的更详细的例子。图10是DRM引擎怎样在一个实施例对象中执行控制程序的更详细的例子。图11示出了在设备上运行的DRM引擎的说明性实施例。图12是用于图示在一个实施例中执行控制程序中所涉及的步骤的流程图。图13示出了在一个实施例中构成内容消费客户端应用的元项。图14示出了在一个实施例中构成内容封装(packaging)应用的元项。图15示出了依照一个实施例的密钥推导机制。图16不出了 DRM系统的例子。图17示出了用于规定临时登录的DRM系统的例子。图18示出了用于管理企业文档的说明性系统的高级体系结构。图19示出了诸如在图18中所示出的系统可以怎样用来管理对文档的访问或其它使用的例子。图20示出了诸如在图18中所示出的系统可以怎样用来管理对文档的访问或其它使用的附加例子。图21示出了在图20中所示出的例子的附加特征。图22示出了用于管理企业内的电子内容的另一说明性系统。图23图示了可以怎样应用这里所描述的系统和方法来管理保健记录。图24是在电子预订服务的情境中可以怎样使用这里所给出的系统和方法的图解。图25是在家庭网络域的情境中可以怎样使用这里所描述的系统和方法的图解。图26图示了在一个示例性实施例中在主机应用和DRM客户端引擎之间发生的交互。图27图示了在一个说明性实施例中在主机应用和封装引擎之间发生的交互。图28A是依照一个实施例的许可的更详细的图解。图28B图示了在一个示例性实施例中在链路和节点之间的关系。图29图示了虚拟机的说明性实现的运行环境。图30图示了依照一个实施例的扩展状态块数据结构。图31A示出了在一个实施例中的数据段的存储器映像。图31B示出了在一个实施例中的代码段的存储器映像的例子。图31C示出了在一个实施例中的输出入口存储器映像的例子。图31D不出了在一个实施例中的输出表入口的通用例子。图31E示出了用于示例性入口点(entry point)的输出表入口的例子。图32示出了许可转送协议的例子。图33示出了依照一个实施例的许可转送协议的另一例子。图34示出了用于在一个实施例中保护许可对象的完整性的机制。图35示出了用于在另一实施例中保护许可对象的完整性的机制。
图36图示了依照一个实施例的邻近度检查协议。图37图示了依照一个实施例的邻近度检查协议的使用。图38图示了在一个实施例中在客户端和许可服务器之间的交互。图39是在一个实施例中在客户端和许可服务器之间交互的更详细图解。图40示出了具有多个角色的实体的例子。图41图示了依照一个实施例的引导(bootstrap)协议。图42示出了在一个实施例中在cl4n_ex和说明性XML规范化之间的关系。
具体实施例方式下面提供了所发明工作主体的详细描述。虽然描述了几个实施例,然而应当理解,`所发明的工作主体不限于任何一个实施例,而是作为替代包含很多替换、修改和等效方式。另外,虽然在下面描述中阐明了很多具体细节以便提供对所发明工作主体的彻底理解,不过可以在没有这些细节中的一些或全部的情况下实现一些实施例。此外,为了清楚目的,并未详细描述在相关技术中已知的某些技术材料,以免不必要地模糊所发明的工作主体。共同受让的美国专利申请号10/863,551、公开号2005/002787IAl ( “‘551申请”)描述了数字权利管理(DRM)体系结构和新颖DRM引擎的实施例,其克服了许多先前DRM实现方式所体现的一些弱点,在此通过引用加以结合以供参考。本申请描述了对在‘551申请中所描述的体系结构和DRM引擎的增强、扩充和修改以及可替换实施例,并且还描述了新的组件、体系结构和实施例。从而应当理解,可以在诸如‘551申请中所描述的体系结构和/或DRM引擎的情境内以及在其它情境内使用这里所描述的材料。I.示例性DRM系统图I示出了用于管理电子内容的说明性系统100。如图I所示,用于保持电子内容103中权利的实体102封装内容以供分发和最终用户108a-e消费(被一起称作“最终用户108”,其中附图标记108可交换地指代最终用户或最终用户的计算系统,这在本文情境下将是清楚的)。例如,实体102可以包括内容所有者、创建者或供应者,诸如音乐家、电影工作室、出版社、软件公司、作者、移动服务供应者、因特网内容下载或预订服务、电缆或卫星电视供应者、公司雇员等或者代表其活动的实体,并且内容103可以包括任何电子内容,诸如数字视频、音频或文本内容,电影、歌曲、视频游戏、软件、电子邮件消息、文本消息、字处理文档、报道或任何其它娱乐、企业或其它内容。在图I所示出的例子中,实体102使用封装引擎109来使许可106与所封装的内容104相关联。许可106是基于实体102的策略105或其它意愿的,并且指定允许和/或禁止使用内容和/或一个或多个条件,为了利用内容,所述一个或多个条件必须被满足,或者所述一个或多个条件作为使用条件或结果必须被满足。所述内容还可以由诸如加密或数字签名技术之类的一个或多个密码机制来保证安全,为此可以使用信任权威机构110来获得适当的密码密钥、证书等。如图I所示,可以借助任何适当的手段来向最终用户108提供封装的内容104和许可106,诸如经由像因特网的网络112、局域网103、无线网络、虚拟专用网络107、广域网等,经由电缆、卫星、广播或蜂窝式通信114,和/或经由诸如压缩光盘(⑶)、数字多功能盘(DVD)、快闪存储卡(例如,安全数字(SD)卡)之类的可记录介质116等。封装的内容104可以连同许可106 —起以单个封包或传输113中或以从相同或不同源所接收的独立封包或传输中被递送给用户。最终用户的系统(例如,个人计算机108e,移动电话108a,电视和/或电视机顶盒108c,便携式音频和/或视频播放器,电子书阅读器等)包含应用软件116、硬件和/或专用逻辑单元,专用逻辑单元可操作来获取并再现所述内容。用户的系统还包括这里被称作为数字权利管理引擎118的软件和/或硬件,用于评估与所封装的内容104相关联的许可106并且强制执行它的条款(和/或使应用116能够强制执行这种条款),诸如通过有选择地准许用户只有当被许可106允许时才能访问所述内容来实现。数字权利管理引擎118可以在结构上或功能上与应用116集成,或者可以包括独立的软件和/或硬件。作为选择或另外,诸如系统108c之类的用户的系统可以与诸如系统108b之类的远程系统(例如,服务器,用户设备网络中的另一设备,诸如个人计算机或电视机顶盒等)通信,所述远程系统使用数字权利管理引擎来确定120是否准许用户访问该用户先前所获得或请求的内容。数字权利管理引擎和/或用户系统上或与其远程通信的其它软件还可以记录关于用户对受保护内容的访问或其它使用的信息。在一些实施例中,此信息中的一些或全部可以被传送到远程方(例如,交换所(clearinghouse) 122,内容创建者,所有者或供应者102,用户管理者,代表其活动的实体等),例如以用于分配收益(诸如使用费,基于广告的收益等)、确定用户偏好、强制系统策略(例如,监视怎样以及何时使用机密信息)等。应当理解,虽然图I示出了说明性的DRM体系结构和一组说明性关系,但是可以在任何适当的情境中实施这里所描述的系统和方法,并且从而应当理解,图I是用于图示和解释目的而不是限制目的。图2示出了可以用来实施本发明工作主体的实施例的系统200的更详细的例子。例如,系统200可以包括最终用户的设备108、内容供应者的设备109等的实施例。例如,系统200可以包括诸如个人计算机IOSe或网络服务器105之类的通用计算设备或诸如蜂窝式电话108a、个人数字助理、便携式音频或视频播放器、电视机顶盒、信息亭、游戏系统等专门计算设备。系统200 —般包括处理器202、存储器204、用户接口 206、用于接受可拆卸存储器208的端口 207、网络接口 210和用于连接上述元件的一个或多个总线212。系统200的操作一般由在存储器204中所存储的程序指导下操作的处理器202来控制。存储器204通常包括高速随机存取存储器(RAM)和非易失性存储器,诸如磁盘和/或闪速EEPR0M。存储器204的某些部分可以被限制,以致它们无法被系统200的其它组件读取或写入。端口207可以包括用于接受计算机可读介质208的盘驱动器或存储器插槽,所述计算机可读介质208诸如软盘、⑶-ROM、DVD、存储卡、SD卡、其它磁或光介质等。网络接口 210 —般可操作来经由诸如因特网或内部网(例如,LAN, WAN,VPN等)之类的网络220来在系统200及其它计算设备(和/或计算设备网络)之间提供连接,并且可以使用一种或多种通信技术来在物理上进行这种连接(例如,无线,以太网等)。在一些实施例中,系统200还可以包括处理单元203,所述处理单元203受到保护以避免被系统200的用户或其它实体篡改。这种安全的处理单元可以帮助增强诸如密钥管理、签名验证之类的敏感操作以及数字权利管理过程的其它方面的安全性。如图2所示,计算设备200的存储器204可以包括用于控制计算设备200操作的各种程序或模块。例如,存储器204—般包括用于管理应用、外围装置等执行的操作系统220 ;用于再现受保护的电子内容的主机应用230 ;和用于执行这里所描述权利管理功能中的一些或全部的DRM引擎232。如在此的其它地方所描述,DRM引擎232可以包括、与之相互操作和/或控制各种其它模块,诸如用于执行控制程序的虚拟机222,和用于存储状态信息以供虚拟机222使用的状态数据库224,和/或用于执行密码运算(诸如加密和/或解密内容、计算散列函数和消息认证代码、评估数字签名等)的一个或多个密码模块226。存储器204 一般还包括受保护的内容228和相关联的许可229以及密码密钥、证书等(未示出)。一个本领域普通技术人员应当理解,这里所描述的系统和方法可以利用与图2中所图示的类似或完全相同的计算设备或实际上任何其它适当的计算设备来实施,包括不拥有在图2中所示出的一些组件的计算设备和/或拥有未示出的其它组件的计算设备。从而应当理解,图2只用于图示而并非是限制目的。这里描述了数字权利管理引擎和相关的系统和方法,其可以用来提供在图I和2中所示出的那些系统或其它类型系统中的权利管理功能中的一些或全部。另外,下面将描述各种其它系统和方法,其可以用在图I和2中所示出的那些系统情境中以及其它情境中,包括与数字权利管理无关的环境。2. DRM引擎体系结构`在一个实施例中,使用相对简单、开放和灵活的数字权利管理(DRM)引擎来执行核心DRM功能。在优选实施例中,此DRM引擎被设计成用于相对容易地集成到诸如在‘551申请中所描述的web网络服务环境中,以及集成到可能的任何主机环境或软件体系结构中。在优选实施例中,DRM引擎与特定的媒体格式和密码协议无关,允许设计者按照特定情况的要求来灵活地使用标准化或专有技术。由DRM引擎的优选实施例所使用的管理支配(governance)模型是简单的,但是该模型可以用来表达良好的关系和业务模型。下述DRM引擎的一些说明性实施例涉及被称为“章鱼(Octopus) ”的示例性实现方式;然而应当理解,本发明并不限于章鱼例子的具体细节,并且仅用于说明而并非限制性目的。I. I.概述图3示出了说明性的DRM引擎303a在使用DRM的系统302中可以怎样来起作用。如图3所示,在一个实施例中,DRM引擎303a被嵌入或集成到主机应用304a(例如,诸如音频和/或视频播放器之类的内容再现应用,诸如电子邮件程序、文字处理器、电子书读取器或文件阅读器等文本再现应用)内或与之通信。在一个实施例中,DRM引擎303a执行DRM功能并且对于诸如加密、解密、文件管理之类的服务依赖主机应用304a,和/或可以由主机来更有效地提供其它功能。例如,在优选实施例中,DRM引擎303a可操作来操纵DRM对象305,所述DRM对象305包括受保护内容308的许可306。在一些实施例中,DRM引擎303a还可以向主机应用304a递送密钥。如图3所示,DRM引擎303a和主机应用304a中的一个或两个可以利用要处理的web网络服务305a和/或主机服务306a和/或为完成它们各自的任务所需要的信息。‘551申请提供了这种服务的例子以及其中DRM引擎303a和主机应用304a可以相互操作的方式。在图3所示出的例子中,DRM引擎303a、主机应用304a、主机服务306a和web网络服务接口 305a被加载到诸如最终用户的个人计算机(PC)之类的设备300a上。设备300a可通信地耦合到服务器300b以及便携式设备300d,其中从所述服务器300b获得内容308和许可306,并且设备300a可以向便携式设备300d转发内容308和/或许可306。这些其它设备中的每个可以包括与DRM引擎300a类似或完全相同的DRM引擎303,其可以与所述设备的特定主机应用和主机环境相集成。例如,服务器300b可以包括主机应用304b,用于执行成批封装内容和/或许可,并且利用DRM引擎300a来评估与正被封装的内容相关联的控制,以便与任何重新分发的限制相一致。类似地,设备300c可以包括能够再现并封装内容的主机应用304c,而设备300a可以包括只能再现内容的主机应用。作为潜在的主机环境多样性的又一例子,设备300d可以不包括web网络服务接口,但是作为替代可以依赖于与设备300a的通信和web网络服务接口 305a,以达到这样的程度主机应用304d和/或DRM引擎303d需要使用任何web网络服务。图3只是其中可以使用DRM引擎的系统的一个例子;应当理解,这里所描述的DRM引擎的实施例可以依照许多不同的方式执行并且与应用和系统集成,并且不限于在图3中所示出的说明性例子。I. 2.对象在优选实施例中,内容保护和管理支配对象用来表示系统中的实体、保护内容、使使用规则与内容相关联并且确定当请求时访问是否被准许。如下面所更详细地描述,在一个实施例中使用以下对象
对象类型功能__ 节点表示实体 链路表示在实体之间的直接关系
内容表示内容(例#’士某体内容) 内容密钥表示加密内容所使用的加密密钥 控制表示管理支配与内容交互的使用规则 控制器表示在控制和内容密钥对象之间的关联 保护器表示在内容和内容密钥对象之间的关联I. 2. I.节点对象节点对象用来表示系统中的实体。在实践中,节点通常表示用户、设备或组。节点对象一般还具有相关联的属性,所述相关联的属性表示与节点相关联的实体的某些特性。例如,图4示出了两个用户(Xan400和Knox402)、两个设备(PC404和便携式设备406)和用于表示组(例如,凯里家庭的成员408、公共图书馆的成员410、特定音乐服务的订户412、RIAA批准的设备414以及特定公司所制造的设备416)的几个实体,每一个都具有相关联的节点对象。在一个实施例中,节点对象包括用于定义该节点用来表示什么的属性。属性的一个例子是节点类型。除表示用户、组或设备之外,节点类型属性可以用来表示其它实体。在一些实施例中,节点对象还可以包括密码密钥信息,诸如当使用别处描述的密钥推导和分发技术的实施例时的密码密钥信息。在一些实施例中,节点对象还包括保密性的非对称密钥对,用于把机密信息目标定为有权访问所述节点对象的机密部分的子系统。这可以是节点所表示的实体(例如,音乐服务412)或负责管理所述节点的某个实体(例如,最终用户(例如,Knox402)可以负责管理他或她的便携式设备406)。1.2.2.链路对象在优选实施例中,链路对象是用于示出在两个节点之间关系的签名的(signed)的对象。例如,在图4中,从PC节点404到Knox402的链路418示出了所有权。从Κηοχ402到凯里家庭节点408的链路示出了成员资格,从所述Carey家庭节点408到音乐服务订户节点412的链路也是这样。在一个实施例中,链路对象表达在两个节点之间的关系,从而在图4中所示出的关系可以使用十个链路来表示。如图4所示,图420可以用来表达在节点之间的关系,其中链路对象是在节点之间的有向边。例如在图4中,在凯里家庭节点408和音乐服务节点412之间的关系断言在该图中存在其顶点为凯里家庭节点408和音乐服务节点412的有向边422。Κηοχ402和Xan400是凯里家庭408的成员。因为Knox402被链接到凯里家庭408并且所述凯里家庭408被链接到音乐服务412,所以认为在Κηοχ402和音乐服务412之间存在路径。当存在从一个节点到其它节点的路径时,DRM引擎认为该节点可从另一节点到达。这允许写入控制,用于允许`根据节点可从其中正执行用于请求访问受保护内容的应用的设备到达的条件来许可访问受保护的内容。如下面所更详细地描述,链路对象选择性地还可以包含用于允许推导内容密钥的一些密码数据。链路对象还可以包含用于定义所述链路可以被认为有效的条件的控制程序。这种控制程序可以被DRM引擎的虚拟机执行或解释(这里这些术语可交换地使用)以便评估链路的有效性(例如,以便确定所述链路是否可以用来到达授权图中的给定节点)。在一个实施例中,链路被签名。可以使用任何适当的数字签名机制,并且在一个实施例中DRM引擎没有定义链路对象怎样被签名并且没有评估任何相关联的证书,作为替代它依赖主机系统来验证任何这种签名和/或证书。这允许系统设计者或管理员定义链路对象的使用期、撤消它等(例如,通过使用期满密钥或证书、撤销等),从而在特定的受保护内容和/链路的情境下在通过DRM引擎评估控制程序和DRM对象所提供的策略管理和安全性之上提供了附加的策略管理和安全性层(例如,链路期满作为选择或另外可以通过在链路对象本身中包括适当的控制程序来实现,所述控制程序当执行时会强制实施期满日期或其它有效期)。在一个实施例中,DRM引擎是通用的,并且与任何适当的加密、数字签名、撤销和/或由主机应用和/或环境所使用的其它安全机制一起工作。从而,例如如果DRM引擎需要确定特定链路是否已经被适当的签名,那么它可以简单地调用主机应用(和/或主机或系统密码服务)以便依照由系统设计者所选择的特定签名方案来验证所述签名,DRM引擎本身可以不知道所述方案的细节。在其它实施例中,DRM引擎本身依赖主机简单地表明所使用的适当签名算法,来执行实际的签名评估。1.2.3.内容保护和管理支配再次参照图3,在典型的方案中,内容供应者300b使用应用304b,所述应用304b包括用于加密或用密码来保护电子内容308的封装引擎,并且所述内容供应者300b创建用于管理支配对该内容的访问或其它使用的许可306。在一个实施例中,许可308包括用于指定可以怎样使用内容308的一组对象305,并且还包括内容的加密密钥和/或为获得它们所需要的信息。在一个实施例中,内容308和许可306在逻辑上是独立的,但是通过内部引用(例如,使用对象ID310)被绑定在一起。在许多情况中,把内容和许可一起存储和/或一起递送可能是方便的;然而在优选实施例中并不要求这样。在一个实施例中,许可可以应用于一个以上的内容项,并且一个以上许可可以应用于任何单个的内容项。如图3所示,当在客户端设备300a上运行的主机应用304a想要对特定的内容308执行动作时,它请求DRM引擎303a检查它旨在执行的动作(例如“播放”)是否被允许。在一个实施例中,DRM引擎303a从在包括内容许可306的对象305中所包含的信息中加载并执行与内容308相关联的控制程序,并且根据所述控制程序所返回的结果来准许或拒绝用于执行该动作的权限。权限一般要求满足一些条件,诸如节点可从用于表示请求实体/设备300a的节点到达的条件。图5是用于图示DRM引擎的实施例可以怎样确定所请求的动作(例如,观看内容)
是否被授权的流程图。如图5所示,接收用于评估对给定动作的许可的请求(500)。例如,在主机从用户接收用于执行所指定动作的请求之后,可以从主机应用接收此请求。如图5所示,DRM引擎评估所指定的许可(502),并且确定所请求的动作是否被授权(504)。例如,所述许可可以包含DRM引擎执行的控制程序,其输出用来进行授权判定。如果许可授权所请求的动作(即,从块504“是”退出),那么DRM引擎向主机应用表明所述请求被准许(506)。否则,DRM引擎向主机应用表明所述请求被拒绝(508)。在一些实施例中,DRM引擎还可以向主机应用返回各种元数据,所述元数据例如用于把条件与准许授权相关联(例如,义务(obligation)和/或回调(callback)),或者提供关于拒绝授权原因的附加信息。例如,DRM引擎可以表明只有主机应用记录关于所请求动作执行的某些信息才允许所请求的动作,或者只要所述主机应用以预定义的时间间隔回调DRM引擎以便例如重新评估许可,才允许所请求的动作。下面提供了由DRM引擎所返回的关于这种义务、回调的附加信息及其它元数据。如果所请求的动作被授权,那么内容密钥将被(例如,从许可的内容密钥对象中)获取,并且用来就所请求的使用而发布所述内容。I. 2. 4.许可 DRM 对象如图6所示,在优选实施例中,许可600是对象集合。在图6所示出的例子中,许可600包括内容密钥对象602、保护器对象604、控制器对象606和控制对象608。如图6所示,内容密钥对象602包括加密的密钥数据610 (例如,为解密所加密的内容项612所需要的密钥的加密版本)和关于用于加密所述密钥数据的密码系统的信息。保护器对象604把内容密钥对象602绑定到一个或多个内容对象614。如图6所示,控制对象608包括并保护用于指定怎样管理支配内容对象614的控制程序616。在优选实施例中,控制程序616是在由DRM引擎所操作的虚拟机上运行的可执行字节代码。控制程序通过检查是否满足在所述控制程序中所指定的条件来管理支配是否可以对所述内容执行某些动作,所述条件诸如某些节点是否可使用有效链路对象到达,某些状态对象是否已经被存储,主机环境是否具有某些特征等。再次参照图6,控制器对象606用来把一个或多个内容密钥对象602绑定到控制对象608。许可600还可以包括另外的对象,诸如用于提供所述许可所要求的内容访问条件的机器或人类可读描述的元数据。作为选择或另外,可以包括这种元数据作为一个其它对象(例如,控制对象608)的资源扩展。在图6所示出的实施例中,控制对象608和控制器对象606都被签名,使得该系统可以在使用控制信息来进行内容访问判定之前来验证所述控制信息是否来自信任源。在一个实施例中,还可以通过验证在控制器对象606中所包括的安全散列来检查控制对象608的有效性。控制器对象606还可以包含在它引用的内容密钥对象602中包含的每个密钥或其它密钥数据的散列值,由此使攻击者篡改在密钥数据和内容密钥对象之间的绑定变得相对困难。如图6所示,在一个实施例中,内容612被加密并且包括在内容对象614中。所使用的解密密钥被包括在内容密钥对象602内(或由其引用),并且在这两者之间的绑定由保护器对象604来表示。如图6所示,唯一的ID用来使在内容对象614和内容密钥对象602之间的绑定便于进行。用于管理支配使用密钥610来解密内容612的规则包括在控制对象608内,并且在控制对象608和内容密钥602之间的绑定由控制器对象606再次使用唯一的ID来表示。应当理解,虽然图6示出了在一个优选实施例中包括许可的对象,不过这里所描述的DRM系统和方法不限于此许可结构的使用。例如而并非限制,可以使用许可,其中在图
6中所示出的各个对象的功能依照不同的方式可以被组合到少量对象中,或传播到另外的对象上,或者在对象之间分散。作为选择或另外,可以利用许可来实施这里所描述的系统和方法的实施例,所述许可缺乏由在图6中所示出的许可结构具有的一些功能,和/或提供另外的功能。从而应当理解,依照这里所描述的原理可以使用用于使许可与内容相关联的任何适当机制,不过在优选实施例中使用在图6中所示出的有益结构。1.3.状态数据库在一个实施例中,DRM引擎包括或有权访问可以用来提供安全状态存储机制的安全持久的对象存储装置。这种机构对于使控制程序能够读取和写入从调用到调用是持久的状态信息来说是有用的。这种状态数据库可以用来存储状态对象以及会员资格状态和/或任何其它适当的数据,所述状态对象诸如播放计数、首次使用日期、累积的再现时间等。在一些实施例中,在第一系统上执行的DRM引擎可能不具有访问本地状态数据库的权利,并且可操作来例如使用web网络和/或主机服务来访问远程状态数据库。在一些情况中,在第一系统上执行的DRM引擎可能必须访问在远程系统上的数据库中所存储的状态信息。例如,第一系统可能不包括状态数据库,或者可能在其自己的状态数据库中没有它所需要的信息。在一些实施例中,当DRM引擎面临这种情况时,它可以经由服务接口和/或通过使用代理程序来访问远程状态数据库,如下面所更详细地描述。1.4.关于控制程序这里所描述的系统和方法在各种情境中利用控制程序。例如,在控制对象中所包含的控制程序可以用来表达用于管理支配使用受保护内容的规则和条件。另外,链路对象中的控制程序可以用来表达用于确定对于给定目的(例如,节点可达性分析)所述链路是否有效的规则和条件。这种控制程序有时这里被称作为链路约束(link constraints)。其中可以使用控制程序的又一情境是在代理或委托对象中,其中控制代码用来代表另一实体(在代理控制程序的情况下)或代表另一控制(在委托控制程序的情况下)执行动作。在一个实施例中,和直接由物理处理器执行相反,控制程序由为DRM引擎主控的虚拟机来执行或解释。然而应当理解,可以容易地构造物理处理器或其它硬件逻辑单元来执行控制程序。在一个实施例中,控制程序采用字节代码格式,其使跨平台进行的相互操作便于进行。
在优选实施例中,控制程序用汇编语言编写并且被汇编程序转换为字节代码。在其它实施例中,模板和/或高级权利表达式语言可以用来提供权利、规则和/或条件的初始表达式,并且可以使用编译器来把所述高级表达式转换为字节代码以供这里所描述DRM引擎的实施例执行。例如,用专有DRM格式编写的权利表达式可以利用适当的编译器被转换或翻译为在功能上等效的字节代码表达式以供在这里所描述的DRM引擎实施例上执行,从而使受保护的内容能够依照由内容供应者所指定的条件在理解所述专有DRM格式的系统上以及在包括诸如这里所描述的DRM引擎的系统上使用。还应当理解,这里所描述的数字权利管理引擎系统和方法不限于使用由虚拟机所解释的字节代码权利表达式。作为替代在一些实施例中,可以依照任何适当的方式(例如,使用高级权利表达式语言(rightsexpression language REL)、模板等)来表示权利,并且这里所描述的授权图和/或其它技术使用被设计成用于识别并评估这种权利表达式的应用程序来执行。1.4.1.条件如先前所表明,控制程序一般表达为了对内容的使用请求被准许、为了链路被确
认为有效等所必须满足的一个或多个条件。取决于内容供应者或系统设计者的要求和/或所述系统所提供的功能,可以使用任何适当的条件。在优选实施例中,由DRM引擎所使用的虚拟机支持任意复杂的程序,所述程序能够测试诸如以下一些或全部的条件 基于时间的条件把客户端时间值与在控制程序中所指定的一个或多个值相比较。 以特定节点为目标检查某个节点是否可从另一节点到达。此原理提供了对如域、预订、成员资格等这种模型的支持。 测试某些节点属性是否匹配所指定的值检查节点的任何属性,诸如与节点相关联的设备的再现能力是否满足保真度要求。 测试在客户端与安全相关的元数据是否是最新的例如检查客户端是否具有可接受版本的客户端软件以及准确的时间量度。在一些实施例中,这种检查例如可以依赖于来自数据证明服务的一个或多个证书中的声明。 基于状态的条件检查状态数据库中的信息。例如,状态数据库可以包含作为控制程序先前执行的结果所产生的信息和/或令牌,及关于所记录事件和条件的其它信息,所述令牌用于证明预订的所有权、成员资格等,由此使得可以评估涉及计数器的条件(例如,播放次数、输出次数、所过去的时间限制等)。 环境特性例如,检查主机环境中的硬件和/或软件是否具有某些特征,诸如识别并强制义务的能力;检查诸如安全输出信道之类的某些软件或硬件组件的存在或不存在;检查邻近度信息,诸如请求设备与另一设备或应用的邻近度;使用网络服务和/或代理来检查远程系统和/或在其上所存储数据的特征;等。使用这些或任何其它适当的条件,控制对象可以表达用于管理支配可以怎样再现、转送、输出等内容的规则。应当理解,以上条件列表实际上是说明性的,而且可以通过例如执行用于测试所想要条件的系统调用来定义并使用任何适当的条件。例如而并非限制,如果希望要求设备位于特定的子网络上,那么可以定义可操作来返回主机设备的IPConfig信息(或远程设备的IPConfig信息,如果使用代理在远程设备上运行系统调用的话)的系统调用(例如,GetIPConfig),其可以由控制程序用来测试所述设备是否位于所规定的子网络上。1.4.2.代理这里所描述的DRM引擎相关的系统和方法的优选实施例提供了对携带控制程序的独立对象的支持。这种“代理”可以被分发给在远程系统上运行的DRM引擎以便实现所指定的功能,诸如写入到远程DRM引擎的安全状态存储中。例如,可以作为联系远程服务或执行远程控制程序的结果来 发送代理。还可以使用代理来实现内容移动操作、初始化计数器、撤销节点的注册等。作为又一例子,可以使用代理来执行从远程节点到另一节点的可达性分析。这种代理例如在强制实施用于禁止被注册给第一用户的设备再被注册给第二用户的策略方面是有用的。如果第二用户请求注册,那么代理可以被第二用户或者代表他或她活动的注册服务发送到该设备,,以便确定所述设备是否已经被注册到第一用户,在这种情况下第二用户的注册请求可能会被拒绝。图7A和7B图示了在一个实施例中代理的使用。如图7A所示,假定两个实体——系统A700和系统B702——想要彼此经由计算机网络703通信,并且DRM系统正被使用且能够描述并强制实施用于某些操作的规则,诸如访问受保护的内容或创建可以用来表示成员资格、注册状态等的DRM对象。在一些情况下,规则会在系统A700上被评估,但是规则要求取决于系统B702的状态的信息。该信息需要被DRM系统704信任,所述DRM系统704在系统A700上强制实施所述规则。例如,系统A700上的DRM系统704可以评估/强制实施用于执行内容从系统A700到系统B702的远程再现的规则,并且所述规则可以表明只有当系统B702是确定设备组的一部分时才允许这种操作,其中借助可在系统B702上访问的安全状态数据库716中的状态对象711的存在来声明该组中的成员资格。在优选实施例中用来处理这种情况的方法利用代理。例如,如果系统A700需要来自系统B702的信息,那么系统A700准备代理705,所述代理705在一个实施例中是从系统A700向系统B702发送的控制程序(例如,可以由DRM引擎执行的指令序列)。在一个实施例中,系统A700经由认证的通信信道720向系统B702发送代理代码705,使得系统A700可以确信代理705的确是运行在系统B702上。在一些实施例中,连同代理代码705 —起,系统A700还可以向系统B702传送可以由代理代码705用来执行其工作的一个或多个参数。如图7B所示,系统B702接收代理705和任何相关联的代理参数,并且运行代理代码705。当代理705在系统B702上运行时,它访问系统B的状态数据库716,获取状态信息711和/或用其执行一个或多个计算,并且把结果713发送回到系统A700,优选经由认证的通信信道710。在这一点上,系统A700具有需要用来继续进行其评估的信息。1.4. 3.链路约束在一个实施例中,用于表示用来管理支配对内容项执行某个操作(诸如“播放”)的规则的例程集被称作“动作控制”。用于表示关于链路对象的有效性约束的例程集被称作“链路约束”。像动作控制一样,在优选实施例中,链路约束可以表达任何适当的条件组合。还像动作控制一样,链路约束可以被本地评估和/或使用服务接口或代理来远程评估。1.4.4.义务和回调在一个实施例中,某些动作当被准许时要求来自主机应用的进一步参与。义务表示当使用主机应用请求的内容密钥时或在此之后需要由所述主机应用执行的操作。回调表示对一个或多个控制程序例程的调用,所述控制程序例程当使用主机应用请求的内容密钥时或在此之后需要被主机应用执行。义务的例子包括但不限于当内容正被再现时关闭某些输出和/或控制的要求(例如,以便防止把所述内容写入到不受保护的输出或防止快速转发通过某些重要的内容段);关于内容使用的信息被记录(例如,计量或审计信息)和/或被发送到远程站点(例如,交换所,服务供应商等)的要求;本地或远程执行代理程序的要求;等。回调的例子包括但不限于在某个绝对时间主机向回调用控制程序的要求,在某个消逝的时间(例如,使用内容所消逝的时间)之后,在发生某个事件(例如,完成试用内容再现时段)之后,当已经停止使用内容时等。例如,在某个过去时间之后的回调可以用来增加或减少预算、播放计数等(例如,只是在用户使用一段内容至少达一定量时间才把用户预算记入帐),从而保护用户免得在他或她偶然按压播放按钮但是立即按下停止时就从他或她的帐户中记帐。在一个实施例中,存在不同类型的义务和回调,并且如果应用遇到它不支持或者不理解的任何关键的义务或回调(例如因为所述义务类型可能在执行应用之后才定义),那么就需要所述应用拒绝继续要为其返回此义务或回调参数的动作。`1.4.5.例子图8-12示出了 DRM引擎的说明性实施例可以怎样控制使用内容的例子。参照图8,假定DRM引擎已经接收用于播放内容项802、804的组800的请求。例如,内容项802、804可以包括从预订服务、电子邮件附件等中获得的不同的内容段、多媒体展示的不同子部分和曲集的不同曲目。所述请求可以由DRM引擎从主机应用接收,所述主机应用随后接收来自计算设备的用户的请求,所述主机应用运行在所述计算设备上。来自主机应用的请求一般标识所请求的动作、要对其采取动作的一个或多个内容以及管理支配所述内容的许可。DRM引擎按照在图5中所图示的过程来确定是否应当准许请求。图8和9提供了在图5中所示出的过程的更详细的非限制性例子。参照图9,当接收对访问内容项802和804的请求时(块900),DRM引擎检查在所述请求中所标识的或其拥有的许可来看看是否存在有效许可。例如,DRM引擎可以首先标识保护器对象806和808,其包含内容项802和804的唯一标识符(即分别为NS :007和NS :008)(图9中的块902)。接下来,DRM引擎定位在保护器对象806和808中所标识的内容密钥对象810和812(图9中的块904),所述保护器对象806和808随后使所述DRM引擎能够标识引用内容密钥对象810和812的控制器814 (图9中的块906)。在优选实施例中,控制器814被签名,并且DRM引擎验证其签名(或请求主机服务来验证它)。DRM引擎使用控制器814来标识用于管理支配对内容密钥对象810和812 (从而内容项802和804)的使用的控制对象816(图9中的块908)。在优选实施例中,DRM引擎验证控制对象816的完整性(例如,通过计算控制对象816的摘要(digest)并且把它与在控制器814中所包含的摘要相比较)。如果完整性验证取得成功,那么DRM引擎执行在控制对象816中所包含的控制代码(块910),并且把结果返回到主机应用(块912),所述主机应用使用它来准许或拒绝用户对访问内容的请求。控制代码的结果还可以选择性地指定主机应用将需要满足的一个或多个义务或回调。图10是DRM引擎可以怎样执行在图9的块910和912中所指定的动作的更详细例子(即,执行控制程序并且返回结果)。如图10所示,当标识相关的控制对象时,DRM引擎把在控制对象中所包含的字节代码加载到优选由所述DRM引擎主控的虚拟机中(块1000)。DRM引擎和/或虚拟机典型情况下还初始化虚拟机的运行时环境(块1002)。例如,虚拟机可以分配为执行控制程序所需要的存储器、初始化寄存器及其它环境变量,和/或(例如,如下所述通过进行System. Host. GetObject调用)获得关于虚拟机操作的主机环境的信息。应当理解,在一些实施例中,块1000和1002可以被有效地组合或交织,和/或次序颠倒。如图10所示,虚拟机接下来执行控制程序的字节代码(块1004)。这里如其它地方所描述,这可以涉及调用其它虚拟机代码、从安全存储装置获取状态信息等。当控制程序已经完成执行时,它提供输出(例如在优选实施例中为ExtendedStatusBlock),其例如可以由调用应用用来确定请求是否已经被准许,并且如果是的话,确定任何义务或回调是否与其相关联;请求是否已经被拒绝,并且如果是的话,确定拒绝的原因;或者确定在执行期间是否出现任何错误(块1006)。如先前所表明,在控制对象816中所包含的控制代码指定为了对内容项802和804
进行所请求的使用而必须满足的条件或其它要求。这里所描述的系统和方法能够说明任意复杂的条件组;然而为了此例子目的,假定控制程序被设计成要求为了播放内容项802和804,(a)给定用户的节点必须可从对其作出播放内容请求的设备到达,和(b)当前日期必须在所规定日期之后。图11示出了在设备1102上运行的DRM引擎1100的说明性实施例可以怎样执行上述示例性控制程序,并且图12是在执行过程中所涉及的步骤的流程图。如图11所示,DRM引擎1100 (例如,通过调用System. Host. SpawnVm)创建虚拟机执行环境1104并且加载控制程序。虚拟机1104在由DRM引擎1100所指定的入口点(例如,在Control. Actions.Play, perform例程的位置)开始执行控制程序。在此例子中,控制程序需要确定给定节点是否可从其上运行DRM引擎1100的设备1102的个性(personality)节点到达。为了进行此确定,控制程序向DRM引擎1100所提供的链路管理器服务1106作出调用1105,指定要求链接到的节点(图12中的块1200)。链路管理器1106负责评估链路对象来确定一个节点是否可从另一节点到达。为了有效地完成这点,链路管理器1106可以预先计算从设备1102的个性节点1110到在该设备1102所拥有的任何链路对象中所指定的各个节点1114是否存在路径。即,链路管理器1106可以通过检查它有权访问的链路的“去往”和“来自”字段来简单地确定哪些节点潜在地可从设备1102的个性节点1110到达。当链路管理器1106接收来自虚拟机1104的调用1105时,它通过首先确定从个性节点1110到所指定的节点1112是否存在路径(例如,通过检查在它先前确定在理论上可到达的节点的列表中的节点ID)来确定所指定的节点1112是否是可到达的(图12中的块1202)。如果存在路径,那么链路管理器1106评估在链路中所包含的任何控制程序来看看所述链路是否有效(图12中的块1204-1210)。为了评估链路对象中的控制程序(图12中的块1206),链路管理器1106可以使用其自己的虚拟机1108,所述链路管理器1106在其上执行在所述链路对象中所包括的控制程序。链路管理器1106将其确定结果(即,给定节点是否是可到达的)返回到在虚拟机1104中执行的控制程序,其中它被用于全面评估播放内容的请求是否将被准许。当确定所指定的节点1112可从设备1102的个性节点1110到达时,在虚拟机1104上执行的控制程序接下来确定是否满足所指定的日期限制(图12中的块1212)。如果已经满足日期限制(即,从块1212以“是”退出),那么控制程序返回用于表明已经满足所指定条件的结果(图12中的块1214);否则,控制程序返回用于表明不满足所指定条件的结果(图12中
的块1216)。下面示出了诸如上述控制程序的例子
权利要求
1.一种用于管理对电子内容的访问或使用的方法,所述方法包括 获取与所述电子内容相关联的控制程序,所述控制程序包括指令,所述指令当由数字权利管理引擎执行时可操作来评估第一条件并且当确定已经满足所述第一条件时允许对所述电子内容的第一使用; 在所述数字权利管理引擎的控制下把状态信息存储到数据库中,所述状态信息与所述电子内容的第一使用相关; 第二次执行所述控制程序以确定是否授权对所述电子内容的第二使用,评估所述第一条件和第二条件,所述第二条件的评估至少部分地依赖于所述状态信息; 当确定已经满足所述第二条件时,更新所述状态信息并且把所更新的状态信息存储在所述数据库中。
2.如权利要求I所述的方法,其中在数据库中所存储的状态信息包括对已经访问过所述电子内容的次数的计数。
3.如权利要求I所述的方法,其中在数据库中所存储的状态信息包括使用所述电子内容的持续时间的量度。
4.如权利要求I所述的方法,其中从链路对象获得所述控制程序,所述链路对象形成从第一节点到第二节点的授权图的一部分。
5.如权利要求4所述的方法,其中所述第一条件包括所述链路对象应该有效的要求。
6.如权利要求4所述的方法,其中所述第一节点表示计算设备,所述第二节点表示所述计算设备的用户。
7.如权利要求4所述的方法,其中所述第一节点表示计算设备,所述第二节点表示预订服务。
8.如权利要求4所述的方法,其中所述第一节点表示计算设备,所述第二节点表示家庭网络域。
9.一种用于管理对电子内容的访问或使用的系统,所述系统包括 用于获取与所述电子内容相关联的控制程序的装置,所述控制程序包括指令,所述指令当由数字权利管理引擎执行时可操作来评估第一条件并且当确定已经满足所述第一条件时允许对所述电子内容的第一使用; 用于在所述数字权利管理引擎的控制下把状态信息存储到数据库中的装置,所述状态信息与所述电子内容的第一使用相关; 用于第二次执行所述控制程序以确定是否授权对所述电子内容的第二使用,评估所述第一条件和第二条件的装置,所述第二条件的评估至少部分地依赖于所述状态信息;和 用于当确定已经满足所述第二条件时更新所述状态信息并且把所更新的状态信息存储在所述数据库中的装置。
10.如权利要求9所述的系统,其中在数据库中所存储的状态信息包括对已经访问过所述电子内容的次数的计数。
11.如权利要求9所述的系统,其中在数据库中所存储的状态信息包括使用所述电子内容的持续时间的量度。
12.如权利要求11所述的系统,其中从链路对象获得所述控制程序,所述链路对象形成从第一节点到第二节点的授权图的一部分。
13.如权利要求12所述的系统,其中所述第一条件包括所述链路对象应该有效的要求。
14.如权利要求12所述的系统,其中所述第一节点表示计算设备,所述第二节点表示所述计算设备的用户。
15.如权利要求12所述的系统,其中所述第一节点表示计算设备,所述第二节点表示预订服务。
16.如权利要求12所述的系统,其中所述第一节点表示计算设备,所述第二节点表示家庭网络域。
17.一种用于保护数字权利管理许可的方法,所述数字权利管理许可包括(a)第一对象,所述第一对象包括控制程序,所述控制程序包括一个或多个指令,所述一个或多个指令可操作来测试与对电子内容的指定使用相关联的一个或多个条件;(b)第二对象,包括第一密码密钥,所述第一密码密钥被至少部分地加密,所述第一密码密钥可操作来解密所述电子内容;(C)第三对象,包括对所述第一对象的引用和对所述第二对象的引用;和(d)第四对象,包括对所述第二对象的引用和对所述电子内容的引用,所述方法包括 使用所述第一密码密钥来数字地签名所述第三对象。
18.如权利要求17所述的方法,进一步包括 计算所述第一对象的消息认证代码,所述消息认证代码利用所述第一密码密钥。
19.如权利要求18所述的方法,进一步包括 计算所述消息认证代码的公钥签名。
20.如权利要求19所述的方法,进一步包括 在所述第二对象中包括所述消息认证代码和公钥签名。
21.如权利要求17所述的方法,其中所述第一对象包括控制对象。
22.如权利要求17所述的方法,其中所述第二对象包括内容密钥对象。
23.如权利要求17所述的方法,其中所述第三对象包括控制器对象。
24.如权利要求17所述的方法,其中所述第四对象包括保护器对象。
25.一种用于验证数字权利管理许可的完整性的方法,所述数字权利管理许可包括(a)第一对象,所述第一对象包括控制程序,所述控制程序包括一个或多个指令,所述一个或多个指令可操作来测试与对电子内容的指定使用相关联的一个或多个条件;(b)第二对象,包括第一密码密钥,所述第一密码密钥被至少部分地加密,所述第一密码密钥可操作来解密所述电子内容;(C)第三对象,包括对所述第一对象的引用和对所述第二对象的引用;和(d)第四对象,包括对所述第二对象的引用和对所述电子内容的引用,所述方法包括 使用所述第一密码密钥来验证所述第三对象的数字签名。
26.如权利要求25所述的方法,进一步包括 使用所述第一密码密钥来计算消息认证代码并且把所述消息认证代码与在所述第三对象中所包含的值相比较。
27.如权利要求26所述的方法,进一步包括 使用公钥/私钥对中的私钥来验证所述消息认证代码的签名。
28.如权利要求25所述的方法,其中所述第一对象包括控制对象。
29.如权利要求25所述的方法,其中所述第二对象包括内容密钥对象。
30.如权利要求25所述的方法,其中所述第三对象包括控制器对象。
31.如权利要求25所述的方法,其中所述第四对象包括保护器对象。
32.一种用于验证数字权利管理许可的完整性的系统,所述数字权利管理许可包括(a)第一对象,所述第一对象包括控制程序,所述控制程序包括一个或多个指令,所述一个或多个指令可操作来测试与对电子内容的指定使用相关联的一个或多个条件;(b)第二对象,包括第一密码密钥,所述第一密码密钥被至少部分地加密,所述第一密码密钥可操作来解密所述电子内容;(C)第三对象,包括对所述第一对象的引用和对所述第二对象的引用;和(d)第四对象,包括对所述第二对象的引用和对所述电子内容的引用,所述系统包括 用于使用所述第一密码密钥来验证所述第三对象的数字签名的装置。
33.一种用于确定第一实体是否处在第二实体的预定义邻近度之内的方法,所述方法包括 在所述第一实体产生一组随机数对; 从所述第一实体向所述第二实体发送加密的信息,所述第二实体能够从所述加密的信息导出该组随机数对 在所述第二实体解密所述加密的信息; 在所述第二实体导出该组随机数对; 从所述第二实体向所述第一实体发送确认; 在所述第一实体测量第一时间值; 从所述第一实体向所述第二实体发送该组随机数对的第一数; 在所述第二实体验证所述第一数来自该组随机数对; 从所述第二实体向所述第一实体发送该组随机数对的相应随机数;和 在所述第一实体接收所述相应随机数;以及 在所述第一实体测量第二时间值。
34.如权利要求33所述的方法,进一步包括 计算在所述第一时间值和所述第二时间值之间的差异,以及 把所述差异与阈值相比较。
35.如权利要求34所述的方法,进一步包括 如果所述差异大于所述阈值,那么拒绝所述第二实体访问计算资源。
36.如权利要求34所述的方法,进一步包括 如果所述差异小于所述阈值,那么准许所述第二实体访问计算资源。
37.一种用于确定第一实体与第二实体的邻近度的方法,所述方法包括 从所述第一实体向所述第二实体发送第一秘密; 从所述第二实体接收确认; 在所述第一实体测量第一时间值; 从所述第一实体向所述第二实体发送所述第一秘密的一部分; 从所述第二实体接收所述第一秘密的相应部分; 在所述第一实体测量第二时间值;以及 计算在所述第一时间值和第二时间值之间的差异。
38.如权利要求37所述的方法,进一步包括把所述差异与阈值相比较。
39.如权利要求38所述的方法,进一步包括 如果所述差异大于所述阈值,那么拒绝所述第二实体访问计算资源。
40.如权利要求38所述的方法,进一步包括 如果所述差异小于所述阈值,那么准许所述第二实体访问计算资源。
41.一种用于在包括具有虚拟机的数字权利管理引擎的数字权利管理系统中授权访问或其它使用电子内容的方法 接收访问或其它方式使用所述电子内容的请求; 识别与所述电子内容相关联的许可,所述许可包括控制程序和内容密钥; 使用所述虚拟机来执行所述控制程序; 获得来自所述虚拟机的输出,所述输出表明只要满足义务,对所述电子内容所请求的访问或其它使用就被授权; 确定主机应用能够满足所述义务;并且 在履行所述义务时,允许进行对所述电子内容所请求的访问或其它使用,包括使用内容密钥来解密所述电子内容。
42.如权利要求41所述的方法,其中所述义务包括以降低的质量格式来再现所述电子内容。
43.如权利要求41所述的方法,其中所述义务包括记录关于对所述电子内容的访问或其它使用的审计信息,并且向远程站点报告所述审计信息。
44.如权利要求41所述的方法,其中所述义务包括应该禁止所述数字权利管理系统运行在的主机环境的指定功能的要求。
45.如权利要求44所述的方法,其中所述电子内容包括广告,并且其中所述指定功能包括在再现所述电子内容期间快进或回退的能力。
46.如权利要求44所述的方法,其中所述指定功能包括向一定的技术输出所述电子内容的能力。
47.一种用于在包括具有虚拟机的数字权利管理引擎的主机系统中授权访问或其它使用电子内容的方法,包括 接收访问或其它方式使用所述电子内容的请求; 识别与所述电子内容相关联的许可,所述许可包括控制程序和内容密钥; 使用所述虚拟机来执行所述控制程序; 只要满足义务,就确定对所述电子内容所请求的访问或其它使用能够被授权; 确定所述主机系统不能满足所述义务;以及 拒绝进行对所述电子内容所请求的访问或其它使用。
48.一种用于管理对电子内容的访问或使用的方法,所述方法包括 获取与所述电子内容相关联的控制程序,所述控制程序包括指令,所述指令当由数字权利管理引擎执行时可操作来评估第一条件,以及当确定已经满足所述第一条件时允许对所述电子内容的第一使用; 从远程系统接收代理程序,所述代理程序包括指令,所述指令当由数字权利管理引擎执行时可操作来把状态信息存储在由所述数字权利管理引擎所管理的数据库中;并且执行所述控制程序,包括确定是否已经满足第一条件,所述确定至少部分地基于所述状态信息。
49.如权利要求48所述的方法,其中在数据库中所存储的状态信息包括可以对所述电子内容进行第一使用的次数计数的初始值。
50.如权利要求48所述的方法,进一步包括 允许对所述电子内容的第一使用;并且 减少所述计数的当前值。
51.如权利要求48所述的方法,其中从链路对象获得所述控制程序,所述链路对象形成从第一节点到第二节点的授权图的一部分。
52.如权利要求51所述的方法,其中所述第一条件包括所述链路对象应该有效的要求。
53.如权利要求51所述的方法,其中所述第一节点表示计算设备,所述第二节点表示所述计算设备的用户。
54.如权利要求51所述的方法,其中所述第一节点表示计算设备,所述第二节点表示预订服务。
55.如权利要求54所述的方法,其中从所述预订服务的操作者接收所述代理程序。
56.如权利要求51所述的方法,其中所述第一节点表示计算设备,所述第二节点表示家庭网络域。
57.一种用于管理对电子内容的访问或使用的系统,所述系统包括 用于获取与所述电子内容相关联的控制程序的装置,所述控制程序包括指令,所述指令当由数字权利管理引擎执行时可操作来评估第一条件,以及当确定已经满足所述第一条件时允许对所述电子内容段的第一使用; 用于从远程系统接收代理程序的装置,所述代理程序包括指令,所述指令当由数字权利管理引擎执行时可操作来把状态信息存储在由所述数字权利管理引擎所管理的数据库中;和 用于执行所述控制程序,包括确定是否已经满足第一条件的装置,所述确定至少部分地基于所述状态信息。
58.如权利要求57所述的系统,其中在数据库中所存储的状态信息包括可以对所述电子内容进行第一使用的次数计数的初始值。
59.如权利要求57所述的系统,进一步包括 用于允许对所述电子内容段进行第一使用的装置;和 用于减少所述计数的当前值的装置。
60.如权利要求57所述的系统,其中从链路对象获得所述控制程序,所述链路对象形成从第一节点到第二节点的授权图的一部分。
61.如权利要求60所述的系统,其中所述第一条件包括所述链路对象应该有效的要求。
62.如权利要求60所述的系统,其中所述第一节点表示计算设备,所述第二节点表示所述计算设备的用户。
63.如权利要求60所述的系统,其中所述第一节点表示计算设备,所述第二节点表示预订服务。
64.如权利要求63所述的系统,其中从所述预订服务的操作者接收所述代理程序。
65.如权利要求60所述的系统,其中所述第一节点表示计算设备,所述第二节点表示家庭网络域。
66.一种用于管理企业文档的方法,所述方法包括 使用第一软件应用来创作电子文档; 使用数字权利管理插件来加密所述文档并且把许可与之相关联,所述许可包括控制程序,为了获得对所述文档的访问权,所述控制程序需要占有一组一个或多个链路对象,所述链路对象在逻辑上把与第一设备相关联的节点连接到与第一用户组相关联的节点,所述许可进一步包括可操作来解密所述文档的第一密钥的加密版本; 向远程计算机系统发送所述文档; 确定所述远程计算机系统占有一组一个或多个链路对象,所述链路对象在逻辑上把所述远程计算机系统连接到与所述用户组相关联的节点,其中所述一个或多个链路之一包括可操作来解密所述第一密钥的第二密钥的加密版本; 当完成确定步骤时,使用与所述远程计算机系统相关联的密钥来解密所述第二密钥; 使用所述第二密钥来解密所述第一密钥;并且 使用所述第一密钥来解密所述文档。
67.如权利要求66所述的方法,其中使用数字权利管理插件的步骤进一步包括 从一组一个或多个模板中选择第一模板,所述一个或多个模板表达能够强加于对电子文档的访问的策略条件;其中所述数字权利管理插件可操作来把由所述模板所表达的策略条件自动转换为可由数字权利管理插件执行的控制程序。
68.如权利要求67所述的方法,其中所述数字权利管理插件进一步可操作来创建把所述控制程序与所述第一密钥安全地绑定的控制器对象。
69.如权利要求68所述的方法,其中所述控制器对象包括内容密钥对象的散列和控制对象的散列,其中所述内容密钥对象包括所述第一密钥的加密版本,并且所述控制对象包括所述控制程序。
70.如权利要求69所述的方法,其中使用所述第一密钥利用HMAC来签名所述控制器对象。
71.如权利要求70所述的方法,其中利用电子文档的作者的公钥签名来签名所述控制器对象。
72.如权利要求71所述的方法,其中使用所述第一密钥利用HMAC来签名所述公钥签名。
全文摘要
本发明提供了一种数字权利管理的方法。描述了用于执行数字权利管理的系统和方法在一个实施例中,提供了一种数字权利管理引擎,用于评估与受保护的内容相关联的许可以确定对所述内容所请求的访问或其它使用是否被授权。在一些实施例中,许可包含可由数字权利管理引擎执行的控制程序。
文档编号H04L9/30GK102882677SQ20121021873
公开日2013年1月16日 申请日期2006年10月18日 优先权日2005年10月18日
发明者G·博康-吉博, J·G·博夫, M·G·梅嫩特, W·B·布拉德利 申请人:英特托拉斯技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1