按照数据权限管理(DRM)系统在一个定义域诸如一组织内发行数字内容转让专利

申请号 : CN200410005381.9

文献号 : CN1521980B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : A·纳林C·文卡特施F·D·比鲁姆M·A·德米罗P·D·瓦克斯曼P·马里克R·U·马拉维亚拉奇切S·包尔尼V·克里什那斯瓦米Y·(E)罗森菲尔德

申请人 : 微软公司

摘要 :

许可证颁发者从请求者接收一个请求,包括标识请求者的标识符和与数字内容关联的权限数据,在其中权限数据列出至少一个标识符和与其关联的权限。之后许可证颁发者在一目录中找到请求者的标识符,且在此基础上,在目录中找到请求者是其成员的每个组的标识符。将找到的请求者标识符的每一个和每个找到的组标识符与在权限数据中的每个标识符比较,以找到一个匹配,以及向请求者发布带有与匹配标识符关联的权限的许可证以再现内容。

权利要求 :

1.一种用于许可证颁发者向一个请求者发布数字许可证以允许请求者再现相应的数字内容的方法,许可证颁发者访问一个包括用于请求者的列表的目录,列表包括请求者的标识符和请求者是其成员的每个组的标识符,所述方法包括:从请求者接收请求,请求包括:(i)发送的证书,所述发送的证书包括标识请求者的标识符;(ii)签署的权限标签,所述签署的权限标签包括与数字内容关联的权限数据,权限数据列出至少一个标识符和与每个列出的标识符关联的权限;

在目录中找到请求者的标识符;

根据在目录中找到的请求者标识符,在目录中找到请求者是其成员的每个组的标识符;

将找到的请求者标识符的每一个以及每个找到的组标识符与在权限数据中的每个标识符进行比较,以找到一个匹配;以及向请求者发布带有来自权限数据的与匹配标识符关联的权限的许可证。

2.如权利要求1所述的方法包括,其特征在于,所述发送的证书是数字证书。

3.如权利要求1所述的方法其特征在于,所述请求还包括带有基于权限描述和加密的内容密钥的数字签名的权限数据。

4.如权利要求3所述的方法,其特征在于,所述方法还包括验证数字签名。

5.如权利要求1所述的方法包括:

对于每个找到的请求者标识符和每个找到的组标识符,

将这样的标识符与在权限数据中列出的每个标识符比较,以及注意被比较的标识符是否是一个匹配标识符,从而产生至少两个匹配标识符;选择匹配标识符中的一个;以及向请求者发布带有与选择的匹配标识符关联的权限的许可证。

6.如权利要求5所述的方法包括,选择向请求者传送最大量权限的匹配标识符。

7.如权利要求5所述的方法,其特征在于,在权限数据中的每个标识符具有一相应的优先级标记,所述方法包括,选择具有最高优先级标记的匹配标识符。

8.一种用于许可证颁发者向请求者发布数字许可证以允许请求者再现相应的数字内容的系统,许可证颁发者访问包括用于请求者的列表的目录,列表包括请求者的标识符和请求者是其成员的每个组的标识符,所述系统包括:用于从请求者接收请求的装置,请求包括:(i)发送的证书,所述发送的证书包括标识请求者的标识符;(ii)签署的权限标签,所述签署的权限标签包括与数字内容关联的权限数据,权限数据列出至少一个标识符和与每个列出的标识符关联的权限;

用于在目录中找到请求者的标识符的装置;

用于根据在目录中找到的请求者标识符,在目录中找到请求者是其成员的每个组的标识符的装置;

用于将找到的请求者标识符的每一个以及每个找到的组标识符与在权限数据中的每个标识符进行比较,以找到一个匹配的装置;以及用于向请求者发布带有来自权限数据的与匹配标识符关联的权限的许可证的装置。

9.如权利要求8所述的系统,其特征在于,所述发送的证书是数字证书。

10.如权利要求8所述的系统,其特征在于,所述请求包括带有一个基于权限描述和加密的内容密钥的数字签名的权限数据。

11.如权利要求10所述的系统,其特征在于,所述系统还包括用于验证数字签名的装置。

12.如权利要求8所述的系统,所述系统包括:

对于每个找到的请求者标识符和每个找到的组标识符:

用于将这样的标识符与在权限数据中列出的每个标识符比较,以及注意被比较的标识符是否是一个匹配标识符,从而产生至少两个匹配标识符的装置;

用于选择匹配标识符中的一个的装置;以及

用于向请求者发布带有与选择的匹配标识符关联的权限的许可证的装置。

13.如权利要求12所述的系统,其特征在于,所述系统包括,用于选择向请求者传送最大量权限的匹配标识符的装置。

14.如权利要求12所述的系统,其特征在于,在权限数据中的每个标识符具有相应的优先级标记,所述系统包括,用于选择具有最高优先级标记的匹配标识符的装置。

15.一种用于许可证颁发者向请求者发布数字许可证以允许请求者再现相应的数字内容的方法,请求者是一个组的成员,所述方法包括:从请求者接收一个请求,请求包括:(i)发送的证书,所述发送的证书包括一标识组的标识符;(ii)签署的权限标签,所述签署的权限标签包括与数字内容关联的权限数据,权限数据列出至少一个标识符和与每个列出的标识符关联的权限;

将来自请求者的组标识符与在权限数据中的每个标识符比较,以找到一个匹配;以及向请求者发布带有来自权限数据的与匹配的组标识符关联的权限的许可证,发布的许可证包括相应于按照组的公用密钥加密的数字内容的内容密钥,由此请求者用相应于组的公用密钥的组的私有密钥能够获得内容密钥。

16.如权利要求15所述的方法,其特征在于,所述发送的证书是数字证书。

17.如权利要求15所述的方法其特征在于,所述请求带有一基于权限描述和加密的内容密钥的数字签名的权限数据。

18.如权利要求17所述的方法,其特征在于,所述方法还包括验证数字签名。

19.如权利要求15所述的方法,其特征在于,许可证颁发者访问一个包括用于组的列表的目录,列表包括组的标识符和组的每个成员的标识符,所述方法还包括:从每个请求者接收该请求者的标识符;

在目录中基于组的标识符找到用于组的列表;以及

验证在目录找到的用于组的列表包括请求者的标识符。

20.一种用于许可证颁发者向请求者发布数字许可证以允许请求者再现相应的数字内容的系统,请求者是一个组的成员,所述系统包括:用于从请求者接收一个请求的装置,请求包括:(i)发送的证书,所述发送的证书包括一标识组的标识符;(ii)签署的权限标签,所述签署的权限标签包括与数字内容关联的权限数据,权限数据列出至少一个标识符和与每个列出的标识符关联的权限;

用于将来自请求者的组标识符与在权限数据中的每个标识符比较,以找到一个匹配的装置;以及用于向请求者发布带有来自权限数据的与匹配的组标识符关联的权限的许可证的装置,发布的许可证包括一相应于按照组的公用密钥加密的数字内容的内容密钥,由此请求者用相应于组的公用密钥的组的私有密钥能够获得内容密钥。

21.如权利要求20所述的系统,其特征在于,所述发送的证书是数字证书。

22.如权利要求20所述的系统,其特征在于,所述请求包括带有一个基于权限描述和加密的内容密钥的数字签名的权限数据。

23.如权利要求22所述的系统,其特征在于,所述系统还包括用于验证数字签名的装置。

24.如权利要求20所述的系统,其特征在于,许可证颁发者访问一个包括用于组的列表的目录,列表包括组的标识符和组的每个成员的标识符,所述系统还包括:用于从请求者接收该请求者的标识符的装置;

用于在目录中基于组的标识符找到用于组的列表的装置;以及

用于验证在目录找到的用于组的列表包括请求者的标识符的装置。

25.一种用于许可证颁发者向请求者发布数字许可证以允许请求者再现相应的数字内容的方法,请求者是一组的成员,许可证颁发者访问一个包括用于组的列表的目录,列表包括组的每个成员的标识符,所述方法包括:从请求者接收一个请求,所述请求包括:(i)发送的证书,所述发送的证书包括标识所述组的标识符,标识请求者的标识符,(ii)签署的权限标签,所述签署的权限标签包括关联于数字内容的权限数据,权限数据列出至少一个标识符及与每个列出的标识符关联的权限;

将来自请求者的组标识符与在权限数据中的每个标识符比较,以找到一个匹配;

在目录中基于组的标识符找到用于组的列表;

从找到的列表中验证在其中包括请求者的标识符;以及

向请求者发布带有来自权限数据的与匹配的组标识符关联的权限的许可证,发布的许可证包括一个相应于按照请求者的公用密钥加密的数字内容的内容密钥,由此请求者用相应于请求者的公用密钥的组的私有密钥能够获得内容密钥。

26.如权利要求25所述的方法,其特征在于,所述发送的证书是数字证书。

27.如权利要求26所述的方法,还包括,从数字证书中获得请求者的公用密钥。

28.如权利要求25所述的方法其特征在于,所述请求包括带有一个基于权限描述和加密的内容密钥的数字签名的权限数据。

29.如权利要求28所述的方法,其特征在于,所述方法还包括验证数字签名。

30.一种用于许可证颁发者向请求者发布数字许可证以允许请求者再现相应的数字内容的系统,请求者是一个组的成员,许可证颁发者访问一个包括用于组的列表的目录,列表包括组的每个成员的标识符,所述系统包括:用于从请求者接收一请求的装置,所述请求包括:(i)发送的证书,所述发送的证书包括标识所述组的标识符,一标识请求者的标识符,(ii)签署的权限标签,所述签署的权限标签包括关联于数字内容的权限数据,权限数据列出至少一个标识符及与每个列出的标识符的权限;

用于将来自请求者的组标识符与在权限数据中的每个标识符比较,以找到一个匹配的装置;

用于在目录中基于组的标识符找到用于组的列表的装置;

用于从找到的列表中验证在其中包括请求者的标识符的装置;以及用于向请求者发布来自权限数据的带有与匹配的组标识符关联的权限的许可证的装置,发布的许可证包括一个相应于按照请求者的公用密钥加密的数字内容的内容密钥,由此请求者用相应于请求者的公用密钥的组的私有密钥能够获得内容密钥。

31.如权利要求30所述的系统,其特征在于,所述发送的证书是数字证书。

32.如权利要求31所述的系统,其特征在于,所述系统还包括,用于从数字证书中获得请求者的公用密钥的装置。

33.如权利要求30所述的系统,其特征在于,所述请求包括带有一个基于权限描述和加密的内容密钥的数字签名的权限数据。

34.如权利要求33所述的系统,其特征在于,所述系统还包括用于验证数字签名的装置。

说明书 :

按照数据权限管理(DRM)系统在一个定义域诸如一组织内

发行数字内容

[0001] 对相关申请的交叉参考
[0002] 下面的美国专利申请揭示涉及本申请的主题的主题,并因此通过引用将它们整体包括在此:
[0003] 美国专利申请No. ,与本发明同时在代理人摘要编号(attorney docketnumber)MSFT-1569下申请的,且标题为“Publishing Digital Content Withina Defined Universe Such As an Organization in Accordance with a DigitalRights Management(DRM)System”;
[0004] 美国专利申请No.10/185,527,在代理人摘要编号MSFT-1330下于2002年6月28日申请的,且标题为“Obtaining a Signed Rights Label(SRL)forDigitial Content and Obtaining a Digital License Corresponding to theContent Based on the SRL in a Digital Rights Mangement System”;
[0005] 美国专利申请No.10/185,278,在代理人摘要编号MSFT-1333下于2002年6月28日申请的,且标题为“Using a Rights Template to Obtain a SignedRights Label(SRL)for Digital Content in a Digtial Rights ManagementSystem”;以及[0006] 美国专利申请No.10/185,511,在代理人摘要编号MSFT-1343下于2002年6月28日申请的,且标题为“Systems And Methods For Issuing Usage LicensesFor Digital Content And Services”。

技术领域

[0007] 本发明涉及数据权限管理(DRM)系统。更具体地说,本发明涉及使用DRM系统在诸如组织、办公室、公司等等定义域内发行数字内容,因此在这个域内可按照相应的使用或许可条款约束内容的再现和使用。

背景技术

[0008] 在数字内容诸如数字音频、数字视频、数字文本、数字数据、数字多媒体等方面,在其中这样的数字内容要被分发至一或多个用户,数据权限管理和实施是非常需要的。数字内容可能是静态的,诸如文本文档,或者它可能是被流化的,诸如流化的实况转播事件的音频/视频。典型的分发模式包括有形的设备诸如磁(软)盘、磁带、光(激光)盘(CD)等,和无形的媒体诸如电子公告板、电子网络、因特网等。在由用户接收时,这样的用户在适当的再现设备诸如个人计算机等等上的媒体播放器再现或‘播放’数字内容。
[0009] 在一个情景中,内容所有者或权限所有者诸如作者、发行人、广播员等,想要将这样的数字内容分发给许多用户或接受者的每一个以交换许可费或一些其它的费用。那么,在这样的情景中,内容可能是歌曲、歌曲集、电影等,而分发的目的是产生许可费。如果让这样的内容所有者选择,很可能想要对用户能够对这样被分发的数字内容能做什么进行限制。例如,内容所有者意欲限制用户复制和重新分发这样的内容至第二个用户,至少是在这样的第二个用户向拒绝内容所有者许可费时。
[0010] 另外,内容所有者可能想要为用户提供以不同许可费购买不同类型的用户许可的灵活性,而同时使用户遵守实际购买的无论什么类型的许可的条款。例如,内容所有者可能想要允许被分发的数字内容只被播放有限的次数,只被播放某个总的时间,只在某种类型的机器上播放,只在某种类型的媒体播放器上播放,只由某种类型的用户播放。
[0011] 在另一个情景中,诸如在一组织内的职工或组织的成员想要将这样的数字内容分发给组织内的其它职工或成员或者分发给组织外的其它个人,但内容开发者,往往欲阻止其它人再现这个内容。这里,内容的分发与以机密的或限制的方式共享基于组织的内容非常相似,而与以交换许可费或一些其它报酬的无限的(broad-based)分发相反。
[0012] 在这样的情景中,内容可能是文档报告、电子表格、数据库、电子邮件等等,诸如在办公室环境内可被交流的,以及内容开发者可能想要确保内容保持在组织或办公室环境内并且不被未经授权的个人诸如例如竞争者或对手再现。再一次,这样内容开发者想要对接受者能够对这样被分发的数字内容所做的事进行限制。例如,内容所有者意欲限制用户,复制和重新分发这样的内容至第二个用户,至少是在被允许再现内容的个人范围之外暴露内容时。
[0013] 此外,内容开发者可能想要为各种接受者提供不同级别的再现权限。例如,内容开发者可能想要允许受保护的数字内容相对于一类个人可被观看而不可被打印,并且相对于另一类个人可被观看且可被打印。
[0014] 不过,在任一情景中,在分发已经发生后,这样的内容所有者/开发者即使对数字内容有控制也只具有很少的控制。实际上任何个人计算机包括制作这样的数字内容的准确的数字拷贝所需的软件和硬件,和将这样准确的数字拷贝下载至可写的磁或光盘所需的软件和硬件,以及通过网络诸如因特网将这样准确的数字拷贝送到任何目的地所需的软件和硬件,所以这特别成问题。
[0015] 当然,作为分发内容的交易的一部分,内容所有者/开发者可能要求数字内容的用户/接受者承诺不以讨厌的方式重新分发这样的数字内容。然而,这样的承诺很容易作出也很容易打破。内容所有者/开发者可能试图通过几种已知的通常包括加密和解密的安全设备阻止这样的重新分发。但是,要阻止适当地被确定的用户不解密被加密的数字内容,以非加密的形式保存这样的数字内容,然后重新分发同一数字内容,其存在的可能性非常小。
[0016] 于是,存在一种需求,用于提供数据权限管理(DRM)和实施结构和方法,允许受控制地再现或播放任意形式的数字内容,在其中该控制是灵活的且可由这样的数字内容的内容所有者/开发者定义的。更明确地说,存在对这样一种结构的需求,该结构允许和促进这样的受控制的再现,特别是在办公室或组织环境等等中,在其中文档要在规定的一组个人或一类个人中共享。
[0017] 概述
[0018] 至少部分地由本发明满足上述需求,在本发明中,许可证颁发者向请求者发布允许请求者再现相应的数字内容的数字许可证。在本发明中,许可证颁发者可以使用一个包括请求者的列表的目录,在其中这个列表包括请求者的标识符和请求者是其成员的每个组的标识符。
[0019] 许可证颁发者从请求者接收一个请求,在其中该请求包括一标识请求者的标识符以及与内容关联的权限数据,且在其中权限数据列出至少一标识符和与其关联的权限。许可证颁发者之后在目录中找到请求者的标识符,以及由在目录中被找到的请求者标识符,在目录中找到请求者是其成员的每个组的标识符。将每个被找到的请求者标识符和每个被找到的组标识符,与在权限数据中列出的每个标识符比较,以找到一个匹配,以及向请求者发布带有与匹配的标识符关联的权限的许可证。

附图说明

[0020] 结合附图阅读时将更好地理解前面的概述,以及后面本发明实施例的详细说明。为了例示本发明,在附图中所示的实施例目前是较佳的。不过,如应该理解的,本发明不受限于所示的精确安排和工具。在附图中:
[0021] 图1是一表示典型的非限制的计算环境的方框图,在该环境中可实现本发明;
[0022] 图2是一表示具有各种计算设备的典型网络环境的方框图,在该环境中可实现本发明;
[0023] 图3是按照本发明的系统和方法的一个实施例的功能方框图,用于发行数字内容;
[0024] 图4是按照本发明的方法的一个实施例的流程图,用于发行权限管理的数字内容;
[0025] 图4A是一方框图,示出如由图4的方法产生的签署的权限标签的结构;
[0026] 图5是按照本发明的系统和方法的一个实施例的方框图,用于许可权限管理的数字内容;
[0027] 图6A和6B是按照本发明的方法的一个实施例的流程图,用于许可权限管理的数字内容;
[0028] 图7是一流程图,示出按照本发明的一个实施例在重新发行一权限标签时所执行的关键步骤;
[0029] 图8是一方框图,示出按照本发明的一个实施例的一证书,它由一DRM服务器发布,以允许用户执行离线发行;
[0030] 图9是一方框图,示出按照本发明的一个实施例的一权限模板,指定要被结合到一权限标签中的信息;
[0031] 图10是一流程图,示出按照本发明的一个实施例,在创建图9的权限模板和基于权限模板创建图4A的签署的权限标签的时候所执行的关键步骤;
[0032] 图11是一方框图,示出基于信任的系统的实例的实施结构;
[0033] 图12是一方框图,示出按照本发明的一个实施例的处理对一许可证的请求的许可证颁发者;
[0034] 图13是一流程图,示出由图12的许可证颁发者在发布许可证时所执行的与一目录有关的步骤;以及
[0035] 图14是一流程图,示出由图12的许可证颁发者在将政策插入一要被发行的许可证中时所执行的步骤。
[0036] 详细说明
[0037] 图1和下面的讨论旨在提供一合适的计算环境的简要概括的说明,在该环境中可实现本发明。不过,应该理解,手持的、便携的和其它所有种类的计算设备被预期结合于本发明使用。尽管下面描述是通用计算机,但是这只是一个实例,并且本发明只要求具有网络服务器互操作性和交互性的瘦客户机。因而,可在一网络化主机化服务的环境中实现本发明,在该环境中,包含非常少或最小程度的客户机资源,例如,一个在其中客户机设备只用作为对于万维网的浏览器或接口的网络化环境。
[0038] 尽管不要求,但可通过由开发者使用的应用编程接口(API)实现本发明,和/或将本发明包括在网络浏览软件内,将在计算机可执行指令诸如程序模块的一般背景中描述网络浏览软件,由一或多个计算机诸如客户工作站、服务器或其它设备执行。通常,程序模块包括执行特定任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构等等。一般地,可将程序模块的功能按要求结合或分发到各种实施例中。而且,本领域熟练技术人员将意识到,可用其它计算机系统配置实施本发明。其它可能适合于本发明使用的知名的计算系统、环境和/或配置包括,但不限于,个人计算机(PC)、自动出纳机(automatedteller machine)、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、可编程消费电子产品、网络PC、小型机、大型机等等。还可在分布式计算环境中实施本发明,在该环境中,由通过通信网络或其它数据传输媒体连接的远程处理设备执行任务。在一分布式环境中,可将程序模块放在包括存储器设备的本地或远程计算机存储媒体两者之中。
[0039] 图1这样示出一合适的计算系统环境100的实例,在该环境中可实现本发明,尽管如上面清楚地说明的,计算系统环境100只是合适的计算系统环境的一个实例,而非意指关于本发明的使用或功能的范围的任何限制。也不应该将计算环境100解释为具有与在典型操作环境100中所示的组件的任何一个或组合有关的任何依赖性或要求。
[0040] 参考图1,用于实现本发明的典型系统包括一以计算机110形式的通用计算设备。计算机110的组件可包括,但不限于,处理单元120,系统存储器130,和将各种系统组件包括系统存储器在内连接至处理单元120的系统总线121。系统总线121可以是几种类型总线结构的任何一种,包括使用各种总线结构的存储器总线或存储控制器,外部设备总线,和局部总线。作为实例,但不限制,这样结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)局部总线、以及周边元件互连(PCI)总线(也被称为夹层(Messanine)总线)。
[0041] 计算机110一般包括多种多样的计算机可读媒体。计算机可读媒体可以是能够由计算机110存取的任何可用媒体,并包括易失的或非易失的媒体,可移动的和不可移动的媒体。作为例子,不是限制,计算机可读媒体可包括计算机存储媒体和通信媒体。计算机存储媒体包括易失的和非易失的、可移动的和不可移动的媒体两者,它们是以任何用于存储信息诸如计算机可读指令、数据结构、程序模块或其它数据的方法和技术实现的。计算机存储媒体的实例包括,但不限于,RAM(随机存取存储器)、ROM(只读存储器)、EEPROM(电可擦除可编程只读存储器)、闪存或其它存储技术、CD-ROM(光盘)、数字通用盘(DVD)或其它光盘存储器、磁盒、磁带、磁盘存储器或其它磁存储设备,或者可能被用于存储想要的信息和能由计算机110存取的任何其它媒体。通信媒体一般包括计算机可读指令、数据结构、程序模块或其它数据,它们在调制的数据信号诸如载波或其它传输机制中,还包括任何信息传送媒体。术语“调制的数据信号”指具有以将信息编码在信号中的方式设置或改变的一或多个特征的信号。作为实例,但不是限制,通信媒体包括有线的媒体,诸如有线的网络或直接线连接,以及无线的媒体,诸如耦合器、RF(射频)和其它无线媒体。任何上述各项的组合应该也包括在计算机可读媒体的范围之内。
[0042] 系统存储器130包括以易失的和/或非易失的存储器形式的计算机存储媒体,诸如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS),包含帮助计算机110内部件之间传送信息的基本例程,诸如在起动期间,它一般被存储在ROM131中。RAM132一般包含由处理单元120可直接存取和/或目前操作的数据和/或程序模块。作为例子,不是限制,图1示出操作系统134、应用程序135、其它程序模块136和程序数据137。
[0043] 计算机110还可包括其它可移动的/不可移动的、易失的/非易失计算机存储媒体。只是作为例子,图1示出读写不可移动的、非易失的磁媒体的硬盘驱动器141,读写可移动的、非易失的磁盘152的磁盘驱动器151,和读写可移动的、非易失的光盘156诸如CD ROM或其它光媒体的光盘驱动器155。能用于典型操作环境的其它可移动的/不可移动的、易失的/非易失的计算机存储媒体包括,但不限于,磁带盒、闪存卡、数字通用盘、数字视频带、固态ROM(solidstate ROM)等等。硬盘驱动器141一般通过一不可移动的存储器接口诸如接口140连接至系统总线121,以及磁盘驱动器151和光盘驱动器155一般由可移动的存储器接口诸如接口150连接至系统总线121。
[0044] 上面所述和在图1中所示的驱动器及其关联的计算机存储媒体,为计算机110提供计算机可读指令、数据结构、程序模块和其它数据的存储。在图1中,例如,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137或者相同,或者不同。操作系统144、应用程序145、其它应用模块146和程序数据147在这里给出不同的编号,以说明在最低程度上它们是不同的拷贝。用户可通过输入设备,诸如键盘162和普通被称为鼠标的定点设备161、轨迹球或触摸垫,将命令和信息输入到计算机110中。其它输入设备(未示出)可包括话筒、游戏杆、游戏垫、卫星天线等等。这些和其它输入设备常常通过连接到系统总线的用户输入接口160连接至处理单元120,但是也可以通过其它接口和总线结构连接,诸如并行端口、游戏端口或通用串行总线(USB)。
[0045] 显示器191或其它类型的显示设备也通过一个接口诸如视频接口190连接至系统总线121。图形接口182,诸如北桥(Northbridge),也可连接至系统总线121。北桥是一芯片组,与CPU或主机处理单元120通信,并承担加速图形接口(AGP)的通信职责。一或多个图形处理单元(GPU)184可与图形接口182通信。在这点上,GPU184一般包括芯片内的的存储器,诸如寄存存储,且GPU184与视频存储器186通信。不过,GPU184只是协处理器的一个实例,且因而多种多样的协处理器可包括在计算机110之内。显示器191或其它类型的显示设备也通过一个接口诸如视频接口190连接至系统总线121。除显示器之外,计算机还可包括其它外部输出设备诸如扬声器197和打印机196,它们可通过输出外部接口195连接。
[0046] 计算机110可在一个使用逻辑连接至一或多个计算机诸如远程计算机180的网络化环境中运行。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它普通网络节点,并且一般包括上面相对于计算机110所述的组件的许多或全部,尽管在图1中只示出存储器设备181。图1中所示的逻辑连接包括局域网(LAN)171和广域网(WAN)173,还可包括其它网络。这样的网络环境在办公室、企业级计算机网络、企业内部互联网和因特网中是普通的。
[0047] 当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至LAN171。当在WAN网络环境中使用时,计算机110一般包括调制解调器172或用于建立在WAN173诸如因特网上的通信的其它工具。调制解调器172,可以是内置的或外置的,可通过用户输入接口160或其它适当的机制连接至系统总线121。在网络化环境中,相对于计算机110所述的程序模块,或其一部分,可存储在远程存储器设备中。作为例子,不是限制,图1示出远程应用程序185为驻留在存储设备181上。将意识到所示的网络连接是典型的,并且可使用用于在计算机之间建立通信链路的其它方法。
[0048] 本领域的一个普通熟练技术人员能意识到,计算机100或其它客户机设备能作为计算机网络配置的一部分。在这点上,本发明适合于任何具有出现在任意数量存储单元或卷上的任意数量应用程序和过程的计算机系统。本发明可应用于带有配置在一网络环境中的、具有远程或地存储的服务器计算机和客户计算机的环境。本发明也可应用于具有编程语言功能、解释和执行能力的独立的计算设备。
[0049] 分布式计算促进通过计算设备和系统之间的直接交流共享计算机资源和服务。这些资源和服务包括信息交换、高速缓冲和用于文件的磁盘存储。分布式计算利用网络连接,允许客户机平衡其集体的能力以有利于整个企业。在这点上,多种多样的设备可具有应用程序、对象和资源,它们可交互以包含用于可信的图形流水线(trusted graphics pipeline)的本发明的认证技术。
[0050] 图2提供一典型的网络化或分布式计算环境的示意图。这个分布式计算环境包括计算对象10a、10b等,以及计算对象或设备110a、110b、110c等。这些对象可包括程序、方法、数据存储、可编程逻辑等。这些对象可包括同一或不同设备诸如PDA、电视、MP3播放器、电视、个人计算机等的部分。每个对象经由通信网络14能与另一个对象通信。这个网络可自包含其它计算对象和计算设备,它们为图2的系统提供服务。按照本发明的一个方面,每个对象10或110可包含一个可请求用于可信的图形流水线的本发明的认证技术的应用程序。
[0051] 还能意识到,一个对象诸如110c可以另一个计算设备10或110为主机。这样,尽管所示的物理环境可将连接的设备示为计算机,这样的例示只是示范性,且可以可替换地包括各种数字设备诸如PDA,电视,MP3播放器等,软件对象如接口,COM对象等来图示或描述这个物理环境。
[0052] 存在各种各样支持分布式计算环境的系统、组件和网络配置。例如,计算系统可通过有线的或无线的系统、通过本地网络或广泛分布的网络连接在一起。目前,许多网络被连接到因特网,它提供广泛的分布式计算基础设施和包含许多不同的网络。
[0053] 在家庭网络环境中,存在至少四个全异的网络传输媒体,它们每个可支持一唯一的协议,诸如电源线、数据(无线的或有线的两者)、语音(例如电话)和娱乐媒体(entertainment media)。大多数家庭控制设备诸如电灯开关和器具可使用电源线用于连接。数据服务可作为宽带(例如或者DSL或者线缆调制解调器)进入家庭,且在家庭中使用或者无线的(例如家用射频(HomeRF)8021.b)或者有线的(例如家用PNA(Home PNA)、5类线(Cat 5)甚至电源线)连接,数据服务是可访问的。语音业务可作为或者有线的(例如3类线(Cat 3))或者无线的(例如蜂窝电话)进入家庭,且可在家庭内使用3类配线分布语音业务。娱乐媒体可或者通过卫星或线缆进入家庭,且一般在家庭中使用同轴电缆分布娱乐媒体。IEEE1394和DVI也可作为用于媒体设备群的数字互连出现。所有这些网络环境和可作为协议标准出现的其它环境,可互联以构成一内部互联网,它可经由因特网连接到外部世界。简而言之,多种多样全异的源存在,用于存储和传输数据,并且因此,在前进中,计算设备将要求在数据处理流水的所有部分保护内容的方法。
[0054] ‘因特网(Internet)’一般指利用TCP/IP协议组的网络和网关的集合,在计算机网络领域中是众所周知的。TCP/IP是“Transport ControlProtocol/Interface Program(传输控制协议/接口程序)”的首字母缩写。因特网可被描述为在地理上分布式的由执行允许用户通过网络交互和共享信息的网络协议的计算机互连的远程计算机网络的系统。因为这样广泛的信息共享,远程网络诸如因特网因而已经很一般地卷入到开放系统中,对于这个系统开发者能在基本上没有限制的情况下,设计用于执行特殊的操作或服务的软件应用程序。
[0055] 这样,网络基础设施启用网络布局的主机诸如客户机/服务器、对等网络或混合结构。“客户机(client)”是一类或组的成员,使用与其无关的另一类或组的服务。这样,在计算中,客户是一过程,也就是说,约略地为一组指令或任务,它们请求由另一个程序提供的服务。客户过程在不必“了解”有关其它程序或服务本身的任何运行细节的情况下,使用所请求的服务。在客户机/服务器结构中,特别是一个网络化的系统,客户通常是访问由另一个计算机例如服务器提供的共享网络资源的计算机。在图2的实例中,计算机110a、110b等可被认为是客户机,而计算机10a、10b等可被认为是服务器,其中服务器10a、10b等维护在然后被复制到客户计算机110a、110b等中的数据。
[0056] 服务器一般是可通过远程网络诸如因特网访问的远程计算机。客户机过程可在第一计算机系统中激活,而服务器过程可在第二计算机系统中激活,通过通信媒体彼此通信,因而提供分布式功能且允许多个客户机利用服务器的信息收集能力。
[0057] 客户机和服务器使用由协议层提供的功能彼此通信。例如,超文本传输协议(HTTP)是一个和万维网(WWW)一起使用的普通协议。一般地,计算机网络地址诸如通用资源定位符(Universal Resource Locator)(URL)或互联网协议(IP)地址,被用于互相识别服务器或客户计算机。网络地址可被称为通用资源定位符地址。例如,可通过通信媒体提供通信。更具体地说,客户机和服务器可通过TCP/IP连接互相耦合用于高性能通信。
[0058] 这样,图2示出一典型的网络化的或分布式的环境,带有通过网络/总线与客户计算机通信的服务器,在其中可使用本发明。更详细地说,按照本发明,许多服务器10a、10b等可通过通信网络/总线14互相连接,网络/总线14可以是LAN、WAN、内部互联网、因特网等,带有许多客户机或远程计算设备110a、110b、110c、110d、110e等,诸如便携式计算机、手持计算机、瘦客户机、网络化的器具或其它设备,诸如VCR(录像机)、TV(电视机)、微波炉、电灯、取暖器等等。因而这是预期的,即本发明可应用任何计算设备,想要结合这些设备处理、存储或再现来自一受托源(trusted source)的安全内容。
[0059] 在通信网络/总线14为因特网的网络环境中,例如,服务器10可以是网络服务器,客户机110a、110b、110c、110d、110e等通过许多已知的协议诸如HTTP与其通信。服务器10也可用作为客户机110,可作为是分布式计算环境的特性。通信可以是有线的或无线的,只要适当。客户机设备110可通过或可不通过通信网络/总线14通信,且可具有与其关联的独立的通信。例如,在TV或VCR的情况下,可存在或可不存在网络化的方面以控制它们。每个客户计算机110和服务器计算机10可配备各种应用程序模块或对象135,并连接或访问各种类型的存储部件或对象,通过它们可存储文件或可将文件的部分下载或移动到它们中。这样,本发明能够被用在具有能够用计算机网络/总线14访问和交互的客户计算机110a、110b等,以及可与客户计算机110a、110b等和其它设备111及数据库20交互服务器计算机10a、10b等。
[0060] 数据权限管理(DRM)概述
[0061] 如已知的,且现在参考图11,在数字内容12方面,诸如数字音频、数字视频、数字文本、数字数据、数字多媒体等,在这样的数字内容要被分发至用户时,数据权限管理(DRM)和实施是可取的。在由用户接收时,这样的用户在合适的再现设备诸如在个人计算机14上的媒体播放器等等的帮助下再现或‘播放’数字内容。
[0062] 一般地,分发这样的数字内容12的内容所有者或开发者(在下文中‘所有者’)想要对用户能用这样被分发的数字内容12所做的进行限制。例如,内容所有者可能想要限制用户将这样的内容12拷贝和重新分发至第二个用户,或者可能想要允许被分发的数字内容12只被播放有限的次数、只播放某个总的时间、只在某种类型的机器上播放、只在某种类型的媒体播放器上播放、只由某种类型的用户播放等等。
[0063] 不过,在分发已经发生后,这样的内容所有者即使对数字内容12有控制,也只有非常少的控制。DRM系统10则允许任意形式的数字内容12的受控制的再现或播放,在其中这样的控制是灵活的且可由该数字内容的内容所有者定义。一般地,内容12以包13的形式经由任何合适的分发通道被分发到用户。如分发的数字内容包13可包括用对称加密/解密密钥(KD)(即(KD(内容))加密的数字内容12,以及标识内容的其它信息,如何获得用于这样的内容的许可证等等。
[0064] 基于信任的DRM系统10允许数字内容12的所有者指定许可规则,在这样的数字内容12被允许在用户的计算设备14上再现之前必须满足这些许可规则。这样的许可规则可包括前述时间要求,以及可被包含在数字许可证或者使用文档(在下文中‘许可证’)16内,用户/用户的计算设备14(在下文中,这样的术语是可互换的,除了在环境要求另外的情况下)必须从内容所有者或其代理人获得许可证。这样的许可证16还包括解密密钥(KD)用于解密数字内容,它可能是按照可由用户的计算设备解密的密钥加密的。
[0065] 一件数字内容12的内容所有者必须信任用户的计算设备14将遵守由这样的内容所有者在许可证16中所指定的规则和要求,即数字内容12将不会被再现,除非在满足许可证16内的规则和要求。然后最好,为用户的计算设备14提供可信的组件(trusted component)和机制18,它将不再现数字内容12,除了按照包含在与数字内容12关联的且由用户获得的许可证16中的许可规则之外。
[0066] 可信的组件18一般具有一许可证鉴别器(license evaluator)20,它确定许可证16是否是有效的,检查在这样的有效许可证16中的许可规则和要求,并基于所检查的许可规则和要求,确定请求的用户是否具有其中以寻找的方式再现所请求的数字内容12的权限。应该理解,许可证鉴别器20在DRM系统10中是可信的,以按照在许可证16中的规则和要求完成数字内容12的所有者的愿望,且用户应该不能够容易地为了任何不法的或其它的目的而改变这样的可信的单元。
[0067] 如应该理解的,在许可证16中的规则和要求能指定用户是否具有基于几个因素的任何因素再现数字内容12的权限,这些因素包括用户是谁,用户在什么地方,用户使用的是什么类型的计算设备,什么再现应用程序在调用DRM系统,日期,时间等等。此外,许可证16的规则和要求可限制许可证16为,例如,预定次数的播放,或预定的播放时间。
[0068] 可按照任何合适的语言和语法在许可证16中指定规则和要求。例如,该语言可简单地指定必须满足的属性和值(例如,日期必须比X晚),或者可要求按照一指定的脚本执行功能(例如,如果日期大于X,那么做...)。
[0069] 在许可证鉴别器20确定许可证16是有效的且用户满足在其中的规则和要求时,于是可再现数字内容12。更具体地说,要再现内容12,从许可证16获得解密密钥(KD),并将它应用于来自内容包13的(KD(内容)),以产生实际内容12,然后实际上再现实际内容12。
[0070] 发行数字内容
[0071] 图3是按照本发明的系统和方法的一实施例的功能方框图,用于发行数字内容。在这里所使用的术语“发行(publishing)”,指应用程序或服务依从的一个过程,以对于可信的实体(trusted entity)建立一组权限和条件,该实体能为那个内容发布这组权限和条件,以及那些权限和条件能对谁发布。按照本发明,发行过程包括加密数字内容和将它关联于一永久可实施的权限列表,永久可实施的权限是内容的作者想要用于内容的所有可能的用户的权限。这个过程可以安全的方法执行,以阻止对任何权限或对内容的访问,除非内容的作者想要。
[0072] 在本发明的一个实施例中,具体地说,可使用三个实体发行安全的数字内容:一个内容准备应用程序(content preparation application)302,在客户机300上执行并用于准备发行的内容,一个数据权限管理(DRM)应用编程接口(API)306,也驻留在客户机设备300上,以及一个DRM服务器320,以通信方式通过通信网络330连接到客户机300。在本发明的一个实施例中,通信网络330包括因特网,尽管应该理解,通信网络330可能是任何局域或广域网,例如一私有的内部互联网。
[0073] 内容准备应用程序302可以是任何产生数字内容的应用程序。例如,应用程序302可以是一个字处理器或其它发行物,它产生数字文本文件、数字音乐、视频或其它这样的内容。内容也可能包括流化的内容,诸如例如流化的实况或录制的事件的音频/视频。按照本发明,内容准备应用程序请求其用户使用用户提供的密钥加密内容。应用程序302使用这个密钥加密数字内容,因而形成加密的数字内容文件304。客户机应用程序也请求用户为数字内容文件304提供权限数据。权限数据包括用于每个具有数字内容中的权限的实体的相应的身份。
[0074] 这样的实体可以是,例如,个人、一类个人或设备。对于每个这样的实体,权限数据还包括一个那个实体在内容中具有的权限的列表,以及可被强加于那些权限的任何或全部的任何条件。这样的权限可包括对数字内容读、编辑、复制、打印等的权限。另外,权限可以是内含的或除外的。内含的权限表示一指定的用户具有在内容中指定的权限(例如,用户能够编辑数字内容)。除外的权限表示一指定的用户具有在内容中的全部权限,除了那些指定的(例如,用户能对数字内容做任何事,除复制它之外)。
[0075] 按照本发明的一个实施例,客户机API306可将加密的数字内容和权限数据传递至DRM服务器320。使用下面详细说明的过程,DRM服务器320确定它是否能够实施用户已经分配的权限,如果是,则DRM320签署权限数据以形成一签署的权限标签(signed rights label)(SRL)308。不过,一般而言,任何可信的实体能够签署权限数据,最好使用由DRM服务器320信任的密钥。例如,客户机能够使用由DRM服务器320为它提供的密钥签署权限数据。
[0076] 权限标签308可包括代表权限描述的数据、加密的内容密钥和在权限描述和加密的内容密钥上的数字签名。如果DRM服务器正在签署权限标签,则它将签署的权限标签308通过客户机API306传递回到客户机,API306将签署的权限标签308存储在客户机设备300上。内容准备应用程序302然后将签署的权限标签308与加密的数字内容文件304关联。例如,SRL308与加密的数字内容文件集中在一起以形成权限管理的内容文件310。
[0077] 不过,一般而言,权限数据不需要与数字内容结合。例如,权限数据可能被存储在一个已知的位置,而被存储的权限数据的参考可能与加密的数字内容结合。这个参考可能包括指示存储权限数据的位置(例如,包含这个权限数据的数据存储)的标识符,以及相应于那个特定的权限数据在那个特定的存储位置的标识符(例如,标识包含感兴趣的特定的权限数据的文件)。权限管理的内容310然后可被传送到任何人任何地方,且只有那些具有恢复内容的权限的实体能够恢复内容,且只按照它们被分配的权限。
[0078] 图4是按照本发明的典型方法400的流程图,用于发行权限管理的数字内容,在其中由DRM服务器签署权限标签。不过应该理解,这个实施例仅仅是示范的,且一般而言,可由任何可信的实体签署权限标签。一般而言,按照本发明用于发行数字内容的方法可包括:使用一内容密钥(CK)加密数字内容,生成与数字内容关联的权限描述,按照用于DRM服务器的公用密钥(PU-DRM)以产生(PU-DRM(CK)),并基于一相应于(PU-DRM)的私有密钥(PR-DRM)在权限描述和(PU-DRM(CK))上创建一数字签名。
[0079] 在步骤402,应用程序302生成一个被用于加密数字内容的内容密钥(CK)。最好,内容密钥(CK)是一个对称密钥,尽管一般而言,任何密钥可被用于加密数字内容。对称密钥算法,有时被称为“秘密关键码(secret key)”算法,在它们要加密一消息时使用同一密钥加密该消息。为了那个原因,最好将那个(CK)保密。在发送者与接收者之间的共用(CK)应该做得非常小心,以避免未经授权的窃听这样的(CK)。因为(CK)是在加密者和解密者之间共用的,(CK)最好在传输任何加密的消息之前被传送。
[0080] 在本领域中几个对称密钥生成算法是众所周知的。在一个实施例中,使用数据加密标准(Data Encryption Standard)(DES),尽管应该理解可使用任何对称算法。这样的对称密钥算法的实例包括,但不是限制,AES、Triple-DES(三重数据加密标准)、国际数据加密算法(International Data EncryptionAlgorithm)(IDEA)、Cast、Cast-128、RC4、RC5和SkipJack。
[0081] 在步骤404,应用程序302用对称内容密钥(CK)加密数字内容形成加密的数字内容304,它可使用符号(CK(content))书写。使用应用程序302的作者也可生成与数字内容关联的权限数据。这个权限数据可包括一个将授权恢复内容的实体列表,以及每个实体相对于内容所拥有的专用权限,连同可被强加于那些权限的任何条件。这样的权限例如可包括观看内容、打印内容等。应用程序302为API306提供权限数据。以XML/XrML格式的权限数据的实例作为附1附在这里。
[0082] 在步骤406,API306生成第二加密密钥(DES1),它可被用于加密内容密钥(CK)。最好(DES1)也是一个对称密钥。在步骤408,API306用(DES1)加密(CK)以产生(DES1(CK))。在步骤410,API306丢弃(CK),因为现在只能通过解密的(DES1(CK))得到(CK)的结果。要确保(CK(content))受中央DRM服务器320保护和在中央按照权限数据完成所有用于内容的“许可请求”,API306在步骤412,与所提供的DRM服务器320联系并取回它的公用密钥(PU-DRM)。在步骤414,API306用(PU-DRM)加密(DES1)以产生(PU-DRM(DES1))。这样,(CK)可受(PU-DRM)保护,以确保DRM服务器320是将来能够取得对(CK)访问的唯一的实体,如解密(CK(content))所要求的。在步骤416,API306用(DES1)加密权限数据(即,授权的实体列表和与在这个列表中每个授权的实体关联的相应的权限和条件),以产生(DES1(权限数据))。
[0083] 在一个可替换的实施例中,(CK)可被用于直接加密权限数据以产生(CK(权限数据)),且(PU-DRM)可被用于直接加密(CK)以产生(PU-DRM(CK)),因此完成前述的(DES1)的使用。不过,使用(DES1)加密权限数据和(CK)允许这样的(DES1)遵守可能服从DRM服务器的任何特定的算法,然而(CK)可能由一个与DRM服务器独立的实体指定且可能不服从DRM服务器。
[0084] 在步骤418,内容准备应用程序302可将(PU-DRM(DES1))和(DES1(权限数据))作为用于签署的权限标签提交给DRM服务器320。可替换地,客户机本身可签署权限数据。如果正在将权限数据提交至服务器用于签署,那么在步骤420,DRM服务器320访问权限数据并验证它能够实施在所提交的权限标签中的权限和条件。要验证它能够实施权限数据,DRM服务器320将(PR-DRM)应用于(PU-DRM(DES1))以产生(DES1),然后将(DES1)应用于(DES1(权限数据))以产生不用密码的权限数据。服务器320然后可进行任何政策检查以验证在权限数据中指定的用户、权限和条件是在由服务器320所实施的任何政策之内的。
服务器320原来提交的包括(PU-DRM(DES1))和(DES1(权限数据))的权限标签,以产生签署的权限标签(SRL)308,在其中签字是基于DRM服务器320的私有密钥(PR-DRM)的,并将SRL308返回至API306,API306然后将返回的SRL308提供给客户机应用程序302。
[0085] SRL308是以数字方式签署的文档,使它防篡改。另外,SRL308独立于用于加密内容的实际的密钥类型和算法,但与它正在保护的内容保持1-1关系。现在参考图4A,在本发明的一个实施例中,SRL308可包括关于内容的信息,它是SRL308的基础,有可能包括一个内容的ID(标识符);关于签署这个SRL308的DRM服务器的信息,包括(PU-DRM(DES1))和参考信息(referral information)诸如用于在网络上定位DRM服务器的URL及这个URL失败时的退回信息;描述SRL308本身的信息;(DES1(权限数据));(DES1(CK));和其中的S(PR-DRM)。用XML/XrML的实例SRL308作为附录2附在这里。
[0086] 通过确保可信的实体签署权限数据以创建签署的权限标签308,按照由发行人在权限标签308中的权限数据中所述的条款,DRM服务器声称它将发布用于内容的许可证。如应该意识到的,要求用户获得许可证以再现内容,尤其是因为许可证包含内容密钥(CK)。当用户想要获得用于加密内容的许可证时,用户可向DRM服务器320或其它许可证发布实体(license issuing entity)提供许可证请求,该请求包括用于内容的签署的权限标签308和验证用户的凭证的证书。许可证发布实体然后可解密(PU-DRM(DES1))和(DES1(权限数据))以产生权限数据,向许可证请求实体(license requesting entity)列出由作者准予的所有权限(如果有的话),并构造一个只具有那些特定权限的许可证。
[0087] 最好,在应用程序302接收SRL308时,这样的应用程序302将签署的权限标签308与相应的(CK(内容))304集中以构成权限管理的数字内容。可替换地,可将权限数据存储在一个已知的位置中,带有为加密的数字内容提供的那个位置的参考。这样,DRM允许的再现应用程序能够通过再现应用程序从正在试图再现的这件内容发现签署的权限标签308。这个发现触发再现应用程序发起一个对于DRM许可服务器320的许可证请求。发行应用程序302可存储一个指向DRM许可服务器320的URL,例如,或者DRM许可服务器320可将它自己的URL,在以数字方式签署权限标签之前作为一件元数据嵌入到权限标签中,因此由再现应用程序调用的DRM客户机API306能够识别正确的DRM许可服务器320。最好,在签署权限标签之前,将一个唯一的标识符,诸如全球唯一标识符(globally unique identifier)(GUID)放入权限标签中。
[0088] 在本发明的一个实施例中,简单对象访问协议(simple object accessprotocol)(SOAP)可用于内容准备应用程序302或再现应用程序和DRM服务器320之间的通信。另外,可提供API库诸如API306,因此不要求应用程序诸如应用程序302实现DRM协议的客户端,而是能够只进行本地API调用。最好,使用XrML,一种XML语言,描述用于数字内容的权限描述、许可证和权限标签,尽管应该理解,任何合适的格式能够被用于权限描述和其它数据。
[0089] 获得用于发行的内容的许可证
[0090] 图5是按照本发明的系统和方法的一个实施例的功能方框图,用于许可权限管理的数字内容。“许可(licensing)”,作为在此所使用的术语,指应用程序或服务遵守的请求和接收许可证的过程,许可证将使一个在许可证中指定的实体能够按照在许可证中所指定的条款恢复内容。许可过程的输入可包括与正在请求的许可证所用于的内容关联的签署的权限标签(SRL)308,和正在请求的许可证所用于的实体的公用密钥证书。注意,请求许可证的实体不需要必须是正在请求的许可证所用于的实体。一般地,许可证包括来自SRL308的权限描述,能够解密加密的内容的加密的密钥,和在权限描述和加密的密钥上的数字签名。数字签名断言所指定的实体和权限是合法的。
[0091] 一种用于应用程序302恢复权限管理的内容310的方法是,客户机API306将权限管理的内容310签署的权限标签308通过通信网络330传送到DRM服务器320。DRM服务器320的位置,例如可在SRL308中的参考信息中找到。在这样一个实施例中,DRM许可服务器320,通过下面详细描述的过程,可使用权限标签中的权限描述确定它是否能够发布许可证,如果能,则导出权限描述以包括许可证。
[0092] 如上所述,权限标签308包含按照DRM服务器320的公用密钥(PU-DRM)加密的内容密钥(CK)(即(PU-DRM(CK)))。在发布许可证的过程中,DRM服务器320安全地解密这个值以获得(CK)。然后它使用公用密钥证书中的公用密钥(PU-ENTITY)以重新加密(CK)(即(PU-ENTITY(CK))),公用密钥证书是在许可证请求中被向上传递的。重新被加密的(PU-ENTITY(CK))是服务器320放在许可证中的内容。这样,可在没有暴露(CK)的危险的情况下,将许可证返回给调用者,因为只有关联于私有密钥(PR-ENTITY)的持有者能够从(PU-ENTITY(CK))恢复(CK)。客户API306然后使用(CK)解密加密的内容以构成解密的数字内容312。客户应用程序302然后能够使用按照在许可证中所提供的权限的解密的数字内容312。
[0093] 可替换地,例如,诸如发行客户机的客户机,能够发布它自己的许可证以恢复内容。在这样一个实施例中,受保护的过程可在客户计算机上运行,为客户机提供在合适的环境下解密数字内容所需要的密钥。
[0094] 图6A和6B提供按照本发明的方法600的一个实施例的流程图,用于许可权限管理的数字内容。按照本发明,请求实体可提交一个代表一或多个可能的许可证持有人的许可证请求。请求实体可以是/可以不是可能的许可证持有人之一。可能的许可证持有人可以是一个人、一个组、一个设备或任何能够以任何方式恢复内容的其它实体。现在将参考一个实施例描述方法600,在这个实施例中,DRM服务器处理许可证请求,尽管应该理解,可在客户机上执行许可证请求处理,以及由客户机直接发布许可证。
[0095] 在步骤602,许可证发布实体诸如DRM服务器,例如,接收一个许可证请求。最好,许可证请求包括用于一或多个被请求的许可证持有人的每一个的公用密钥证书或者身份。
[0096] 在步骤604,认证请求实体(即产生许可证请求的实体)。按照本发明的一个实施例,许可证发布实体可被配置为使用协议(例如质询-应答(challenge-response))认证以确定请求实体的身份,或者它可被配置为不要求认证请求实体(也被称为“允许匿名认证(allowing anonymous authentication)”)。当要求认证时,可使用任何类型的认证方案(例如,上面提到的质询-应答方案,用户标识符和口令(user-id-and-password)方案诸如MICROSOFT.NET、PASSPORT、WINDOWS授权、x509等)。最好,既允许匿名认证,又支持由集成信息系统支持的任何协议认证方案。认证步骤的结果将是一个身份,诸如例如,一个“匿名”身份(对于匿名认证),或者一个个人帐户身份。如果因任何原因不能认证许可证请求,则返回一个错误并不准予许可证。
[0097] 在步骤606,授权认证的实体一即,确定在步骤608被认证的实体是否被允许请求许可证(或者为它自己或者代表另一个实体)。最好,许可证发布实体存储一个被允许(或者不被允许)请求许可证的实体列表。在一个实施例中,在身份列表中的一个身份是产生请求的实体的身份,而不是正在请求的许可证所用于的实体的身份,尽管它可能是任一个。例如,可允许个人帐户身份直接产生许可证请求,但是可信的服务器过程可代表这样一个实体产生许可证请求。
[0098] 按照本发明,许可证请求能够包括用于每个可能的许可证持有人的公用密钥证书或者身份。如果只为一个许可证持有人请求许可证,则只指定一个证书或身份。如果为多个许可证持有人请求许可证,则可为每个可能的许可证持有人指定证书或身份。
[0099] 最好,许可证发布实体具有用于每个有效许可证持有人的公用密钥证书。不过,应用程序302可能想要为给定用户生成许可证,但是应用程序302不能访问用于那个用户的公用密钥证书。在这样一种情况下,应用程序302可在许可证请求中指定用户的身份,并且结果,许可证发布实体可调用已注册的证书插件模块,该模块在目录服务中执行查找并返回合适的公用密钥证书。
[0100] 如果在步骤608,发布实体确定公用密钥证书没有被包括在许可证请求中,那么发布实体使用指定的身份在目录服务或数据库中查找合适的公用密钥证书。如果在步骤610,发布实体确定证书在目录中,那么在步骤612,取回证书。在一个实施例中,使用证书插件经由目录访问协议从目录服务取回公用密钥证书。如果或者在请求中或者在目录中,都不能为一给定的可能的许可证持有人找到证书,那么许可证服务器不为那个可能的许可证持有人生成许可证,且在步骤614,返回一个错误至请求实体。
[0101] 假定许可证发布实体具有用于至少一个可能的许可证持有人的公用密钥证书,那么在步骤616,发布实体验证许可证持有人证书的可信性。最好,用一组可信的证书发布者证书(trusted certificate issuer certificate)配置发布实体,并确定许可证持有人证书的发布者是否在可信的发布者列表中。如果在步骤616,发布实体确定许可证持有人证书的发布者不在可信的发布者列表中,那么对于那个许可证持有人的请求失败,且在步骤614产生一个错误。这样,可信的发布者没有发布其证书的任何可能的许可证持有人,将接收不到许可证。
[0102] 另外,发布实体最好对证书链中所有的数字签名执行数字签名验证,该证书链从可信的发布者证书到个人许可证持有人公用密钥证书。在一个链中验证数字签名的过程是一个众所周知的算法。如果没有证实用于一给定的可能的许可证持有人的公用密钥证书,或者没有证实在链中的一个证书,则可能的许可证持有人是不可信的,且因此不为那个可能的许可证持有人发布证书。否则,在步骤618,可发布证书。这个过程在步骤620重复,直到已经处理所有已经请求许可证的实体为止。
[0103] 如在图6B中所示,许可证发布实体进行至验证在许可证请求中所接收的签署的权限标签308。在一个实施例中,发布实体可使用权限标签插件和后端数据库,该数据库在服务器上存储由发布实体签署的每个权限标签的主拷贝。权限标签是由在发行时放入它们中的GUID标识的。在许可时间(在步骤622),发布实体解析在许可证请求中的权限标签输入并取回其GUID。然后它将这个GUID传递至权限标签插件,该插件向数据库发布一个查询以取回主权限标签的一个拷贝。这个主权限标签直到现在可能比在许可证请求中发送的权限标签的拷贝更多,并且它将是在下面的步骤中在请求中所使用的权限标签。如果基于GUID在数据库中找不到权限标签,发布实体在步骤624检查其政策,以基于在请求中的权限标签确定它是否还允许发布许可证。如果政策不允许这个,则许可证请求将在步骤626失败,且在步骤628将向API306返回一个错误。
[0104] 在步骤630,许可证发布实体验证权限标签308。验证在权限标签上的数字签名,且如果许可证发布实体不是权限标签的发布者(签署它的实体),那么许可证发布实体确定权限标签的发布者是否是另一个可信的实体(例如,一个使许可证发布实体能够与其共用密钥材料的实体)。如果权限标签没有证实,或者它不是由可信的实体发布的,那么在步骤626许可证请求失败,且在步骤628将向API306返回一个错误。
[0105] 在所有的验证已经发生后,许可证发布实体将权限标签308译成用于每个被批准的许可证持有人的许可证。在步骤632,许可证发布实体为要向每个许可证持有人发布的许可证生成一个相应的权限描述。对于每个许可证,发布实体对照权限标签中的权限描述所指定的身份,鉴定在那个许可证持有人的公用密钥证书中指定的身份。权限描述将一组身份分配给每个权限或权限组,该组身份能够行使在一许可证中的那个权限或那组权限。对于与这个许可证持有人的身份相关联的每个权限或权限组,那个权限或那组权限被复制到一个用于这个许可证的新数据结构中。最后得到的数据结构是在用于特定的许可证持有人的许可证中的权限描述。作为这个过程的一部分,许可证发布实体鉴定任何先决条件,它们可能与在权限标签的权限描述中的任何权限或权限组关联。例如,一个权限可具有与其关联的时间先决条件,它限制许可证发布实体在一指定的时间之后发布许可证。在这种情况下,发布实体将需要检查当前时间,且如果过了在先决条件中所指定的时间,那么发布实体将不能够向许可证持有人发布那个权限,即使那个许可证持有人的身份与那个权限关联。
[0106] 在步骤636,发布实体从权限标签308获得(PU-DRM(DES1))和(DES1(CK))并应用(PR-DRM)以获得(CK)。发布实体然后使用(PU-ENTITY)许可证持有人的公用密钥证书重新加密(CK)以产生(PU-ENTITY(CK))。在步骤638,发布实体将所生成的权限描述与(PU-ENTITY(CK))集中,并使用(PR-DRM)以数字方式签署最后得到的数据结构。这个签署的数据结构是用于这个特定的许可证持有人的许可证。
[0107] 当在步骤640发布实体确定没有更多的许可证要为特定的请求生成时,它将已经生成零或多个许可证。在步骤642将所生成的许可证返回至请求实体,连同与那些许可证关联的证书链一起(例如,服务器自己的公用密钥证书和发布其证书的证书等等)。
[0108] 在按照本发明的系统的一个实施例中,可使用多个许可证颁发者密钥。在这样一个实施例中,加密地通过权限标签308传播并到许可证持有人的内容密钥(CK),实际上可以是任何任意的数据。一个特别有用的变化是使用一组独立的、加密的、分别与权限描述中不同的权限或不同的原则关联的内容密钥(CK)。例如,在一歌集中歌曲的数据版本可全部用不同的密钥(CK)加密。可将这些密钥(CK)包括在同一权限标签中,但一个原则可具有播放歌曲中的一首的权限(例如,他可能只具有在他的许可证中取得一个密钥的权限),而第二个原则可能具有播放所有歌曲的权限(她可能具有在她的许可证中取得所有密钥的权限)。
[0109] 最好,按照本发明的系统使发行应用程序/用户能够在权限标签308中指定许可证持有人的组或类。在这样一个实施例中,许可证发布实体将鉴定在权限标签中指定的任何组/类,以确定当前的许可证持有人身份是否是那些组类的成员。如果在指定的组/类中找到成员资格,则发布实体可将与组/类关联的权限或权限组添加到用于许可证持有人的权限描述数据结构。
[0110] 在本发明的一个实施例中,在DRM服务器中的发行和许可协议接口(publish and license protocol interface)支持调用应用程序或用户的认证和授权,以及用于DRM服务器的管理控制台(administrative console)允许管理者为许可和发行接口两者生成一个访问控制列表。这使服务器的客户能够应用政策,通过政策允许用户/应用程序或者发行或者许可,或者两者。
[0111] 修改或重新发行签署的权限标签308
[0112] 在本发明的一个实施例中,可“再发行(republish)”SRL308,如果已经准予内容的用户有足够的许可这么做。也就是说,如果允许,则用户可改变在SRL308内的权限数据。注意,应该谨慎地和深思远虑地准予改变权限数据这样的许可,特别是因为具有改变权限数据的许可的用户基本上能够准予它自己相关于所关联的内容的宽广的权限。想象得到的,这样一个用户甚至能够准予它自己暴露内容和向世界传送同一内容的权限。
[0113] 这里,改变的许可是通过在SRL308中权限数据内包括一个一个标志表示的,这个标志表示特定的用户或用户类能够实际上改变或‘再发行’权限数据和权限标签308。当DRM服务器320接收带有与对许可证的请求有关的这样的许可的SRL308时,DRM服务器320在用户所请求的许可证内包括按照用户的公用密钥(即PU-ENTITY)加密的对称密钥(DES1),以产生(PU-ENTITY(DES1))。
[0114] 这样,要在SRL308内编辑权限数据,以及现在转到图7,用户从许可证取回(PU-ENTITY(DES1))(步骤701),对它应用(PR-ENTITY)以产生(DES1)(步骤703),从SRL308取回(DES1(权限数据))(步骤705),并对它应用(DES1)以产生权限数据(步骤707)。之后,用户按需要改变权限数据(步骤709),并以结合图4阐述的方式将改变的权限数据提交给DRM服务器320,以获得签署的权限标签308(步骤711)。当然,这里,签署的权限标签308实际上是一个再发行的SRL308,且因此一旦接收到SRL308(步骤713),用户剥去集中在关联的内容中的原来的SRL308(步骤715),并然后将再发行的SRL308集中到这样的内容中(步骤717)。
[0115] 这样,以及可意识到的,再发行SRL308使用户能够在不必改变所关联的内容的情况下,更新SRL308中的权限数据,包括权限、条件或用户。具体地说,再发行不要求用新的(CK)重新加密所关联的内容。而且,再发行不要求从零开始生成新的SRL,特别是因为原来的SRL308在其中具有许多条款,可将它们复制到新的SRL308。
[0116] 自发行签署的权限标签308
[0117] 在本发明的一个实施例中,可通过请求用户本身签署SRL308。因此,用户不需要联系DRM服务器320以获得用于一件关联的内容的SRL308。结果,自发行也可指离线发行。在这样的实施例中,可要求用户与DRM服务器320联系以请求一个基于这样一个自发行的SRL308的许可证。应该理解,可使发行实体能够发布它自己的许可证。
[0118] 具体地说,以及现在参考图8,在实施例中,首先通过从DRM服务器320接收一DRM证书为用户提供自发行,DRM证书包括一公用密钥(PU-CERT)和按照用户的公用密钥(PU-ENTITY)加密的相应的私有密钥以产生(PU-ENTITY(PR-CERT))。这个证书应该由DRM服务器320的私有密钥(PR-DRM)签署,因此DRM服务器320可验证完全一致,在下面将更详细地讨论。如可意识到的,DRM证书810授权用户自发行。如也可意识到的,密钥对(PU-CERT,PR-CERT)是与(PU-ENTITY,PR-ENTITY)分开的,且专门为自发行使用。注意,没有密钥对(PU-CERT,PR-CERT)也行,在这个情况下DRM证书810只包括用户的公用密钥(PU-ENTITY),并由DRM服务器的私有密钥(PR-DRM)签署,这样的DRM服务器320也可验证完全一致。
[0119] 自发行与如在图4中所示的发行不同,在于用户基本上取代DRM服务器320相关的在那里执行的步骤。值得注意,用户用如由DRM证书810获得的(PR-CERT)签署所提交的包括(PU-DRM(DES1))和(DES1(权限数据))的权限标签,以产生签署的权限标签(SRL)308。如应该意识到的,用户通过从这样的DRM证书810获得(PU-ENTITY(PR-CERT))并将(PR-ENTITY)应用于它,并从DRM证书810获得(PR-CERT)。注意,尽管用户不能验证DRM服务器320能够实施在所提交的权限标签中的权限,特别是因为用户不具有要应用于(PU-DRM(DES 1))的(PR-DRM)。因此,在基于自发行的SRL308请求许可证的时候,DRM服务器320本身应该执行验证。
[0120] 一旦用户自发行SRL308,用户将这样自发行的SRL308与使用的DRM证书810集中以产生与该内容相同的内容,以及将带有SRL308和DRM证书810的这样的内容分发至另一个用户。其后,其它用户实质上以如在图6A和6B中所示的相同的方式,从DRM服务器320请求和获得用于内容的许可证。这里,然而,许可证请求用户向DRM服务器提交作为集中于内容中的自发行SRL308和DRM证书810两者。DRM服务器320然后基于相应的(PU-DRM)验证在DRM证书810中的S(PR-DRM),且从DRM证书810获得(PU-CERT)。DRM服务器320然后基于获得的(PU-CERT)验证SRL308中的S(PR-CERT),且象以前一样继续。然而注意,由于用户没有验证DRM服务器320能够实施在SRL308中的权限,以如上面所阐述的,DRM服务器320本身应该在这时执行这个验证。
[0121] 权限模板
[0122] 如上所述,通过定义用户或用户类,定义用于每个被定义的用户或用户类的权限,且然后定义任何使用条件,在权限标签中为用户提供创建大多数任何种类的权限数据的自由。不过,值得注意,反复地为多个权限标签定义权限数据是讨厌的和重复的,特别是当为不同件内容反复地定义同一用户或用户类、权限和条件的时候。这样一个情况例如能发生在公司或办公室环境中,在用户反复地发行要由特定定义的用户团队共享的不同件内容的时候。于是,在这样一个情况下,且在本发明的一个实施例中,创建权限模板,在权限模板是已经包括预定义的用户组或用户类、用于每个定义的用户或用户类的预定义的权限和预定义的使用条件的时候,用户可在创建权限标签时反复地使用权限模板。
[0123] 在本发明的一个实施例中,且现在转到图9,权限模板900实质上具有与将在权限标签中的相同的权限数据。不过,由于(DES1)是不知道的,直到发行内容为止,权限数据不能按照这样的(DES1)加密,如在权限标签中的情况。在本发明的一个实施例中,然后,在图4的步骤416的用(DES1)加密权限数据的期间,提交带有未加密的权限数据的权限模板900,以产生(DES1(权限数据))。当然,在这样加密之前,从所提交的权限模板900取回权限数据。
[0124] 可以是或可以不是这个情况,即在构建权限模板的时候,DRM服务器320和它的公用密钥(PU-DRM)是已知的。另外,即使知道,可以是或可以不是这个情况,即存在多于一个DRM服务器320,每个具有其自己的(PU-DRM)。然而,在构建权限模板的时候DRM服务器320和其公用密钥(PU-DRM)是已知的情况下,以及在只使用一个DRM服务器320,或者只有一个DRM服务器320要结合权限模板900使用的情况下,这样的权限模板也可在其中包括关于DRM服务器的信息,该DRM服务器是要签署从权限模板900得到的权限标签,包括其公用密钥(PU-DRM)。尽管这样的(PU-DRM)出现在SRL308用作加密(DES1)以产生(PU-DRM(DES1)),要再次意识到(DES1)是不知道的,直到发行内容为止,并因此在权限模板900中的(PU-DRM)不能加密这样的(DES1),如在权限标签中的情况。然后,在本发明的一个实施例中,在图4的步骤414的用(PU-DRM)加密(DES1)期间,提交带有未加密的(PU-DRM)的权限模板900,以产生(PU-DRM(DES1))。当然,在使用之前,从所提交的权限模板900取回(PU-DRM)。
[0125] 还是在上述情况下,可被包括在权限模板中的关于DRM服务器的其它信息也可包括参考信息,诸如用于在网络上定位DRM服务器的URL,和如果URL失败时退回的信息。在任何情况下,权限模板还可在其中包括描述权限模板900本身的信息。注意,权限模板900也可为与被发行的内容相关的信息提供空间,诸如出现在与内容和/或加密的密钥(CK)和(DES1)有关的权限标签中的信息,尽管如果将权限模板的实例化实际地转换到权限标签中,这样的空间是不必要的。
[0126] 尽管如到现在为止所揭示的权限模板900主要是为了方便用户,也要意识到在某些环境中,用户不应该具有无限制的自由以在权限标签中定义权限数据,并且可使用权限模板900限制能创建的权限标签的范围或类型。例如,且特别是在公司或办公室环境的情况下,它可被预定义为一特定用户应该始终只向一类特定的用户发行内容或者该用户应该从不向一类特定的用户发行内容的政策。在任何情况下,以及在本发明的一个实施例中,这样的政策被作为权限数据包含在一或多个权限模板900中,且可在发行内容时限制用户使用这样的权限模板以创建权限标签。值得注意,使可用于用户为该用户指定发行政策的一个权限模板900或一组权限模板900,可在不脱离本发明的精神和范围的情况下,指定任何特殊类型的发行政策。
[0127] 要为受限制的用户等等指定权限模板900,以及现在转到图10,管理者等等实际上通过预定义的权限数据(步骤1001),以及定义可能是必需的和适当的任何其它数据,诸如相关与特定的DRM服务器320相关的信息(步骤1003),构建权限模板900。值得注意,要完成由受限制的用户等等使用的权限模板,必须使权限模板900为正式的。也就是说,权限模板900必须可被识别为一个受限制的用户等等可使用的权限模板。因此,在本发明的一个实施例中,如由管理者等等构建的权限模板被提交至DRM服务器320用于由其签署,在这里这样的签署使权限模板为正式的(步骤1005)。
[0128] 注意,如果这样的信息实际上真的存在于权限模板900中,签署的DRM服务器320是其信息在权限模板900中的DRM服务器320。还注意,DRM服务器320可只在进行任何必要的检查时,签署权限模板900,或者在根本没有任何检查的情况下可签署权限模板900。最后注意,来自DRM服务器320的模板签名S(PR-DRM-T)(在这时-T表示用于ORT(正式的权限模板)900的签名),应该基于至少在权限模板900中预定义的权限数据,但在不脱离本发明的精神和范围的情况下,还可以基于其它信息。如下面所述,将签名S(PR-DRM-T)合并到权限标签中,并且结合权限标签验证这个签名,且因此无论签名基于什么,应该将它以非改变的形式合并到权限标签中。
[0129] 在DRM服务器320签署权限模板900和将它返回至管理者等等的时候,管理者接收带有S(PR-DRM-T)的签署的和现在正式的权限模板900(步骤1007),并将正式的权限模板(0RT)900传送至使用它的一或多个用户(步骤1009)。因此,对于一个基于ORT900发行内容的用户,该用户取回ORT900(步骤1011),并通过提供任何需要的信息,诸如关于内容的信息;合适的密钥信息;由(DES1)加密以产生(DES1(权限数据))的来自ORT900的权限数据;以及任何来自ORT900的其它信息,基于ORT900来构建权限标签(步骤1013)。值得注意地,用户还用权限标签包括来自ORT900的签名S(PR-DRM-T)。
[0130] 其后,以及象以前一样,用户将权限标签提交至DRM服务器320用于签署(步骤1015)。这里,然而,DRM服务器320将不签署所提交的权限标签,除非在其中的S(PR-DRM-T)证实。也就是说,DRM服务器320通过拒绝签署所提交的权限标签,除非所提交的权限标签包括签名S(PR-DRM-T),实施用户必须将所提交的权限标签以ORT900为基础。具体地说,DRM服务器320从所提交的权限标签中,取回该S(PR-DRM-T)和该签名所基于的无论什么信息,然后基于(PU-DRM)验证这样的签名。注意,在所提交的权限标签中权限数据是按照(DES1)加密的(即(DES1(权限数据))。因此,DRM服务器320必须首先获得(DES1)并用它解密(DES1(权限数据)),如结合图7所述的,要能够验证基于在所提交的权限标签中的权限数据的签名。
[0131] 一旦被验证,DRM服务器320用S(PR-DRM-L)签署所提交的权限标签以产生SRL308,如前面一样(在这里一L表示签名是用于SRL308的)。这里,S(PR-DRM-L)可代替S(PR-DRM-T),或可以是附加于S(PR-DRM-T)。如果附加,则S(PR-DRM-L)可部分地基于S(PR-DRM-T)。注意,可使用(PR-DRM)产生S(PR-DRM-T)和S(PR-DRM-L)两者,或者可使用不同的(PR-DRM)用于S(PR-DRM-T)和S(PR-DRM-L)的每一个。在DRM服务器320签署权限标签和将SRL308返回至用户时,用户接收带有S(PR-DRM-L)的SRL308(步骤1017)并进行将前者集中到正在发行的内容上,如前面一样。
[0132] 如果ORT900的签名S(PR-DRM-T)是至少部分地基于在ORT900中预定义的权限数据的,那么这样的权限数据如出现在SRL308中时(在DES1(权限数据)中)不能被修改或改变。否则,S(PR-DRM-T)将不能证实。然而,在本发明的一个实施例中,在ORT900中的权限数据能够在也被包括在ORT900中的规定的规则内变化。例如,这些规则可指定要被包括在SRL308中的两个权限数据组中的一个,或者可允许从一组选择对象中选择。如可意识到的,在不脱离本发明的精神和范围的情况下,这些规则可以是以任何合适的语法阐述的任何特定的规则。这里,在创建权限标签的时候,由合适的规则解释器为用户解释规则。尽管权限数据可变化,但是规则不同样变化,且因此用于ORT900的模板签名S(PR-DRM-T)是至少部分地基于规则且不基于权限数据本身。结果,用ORT900包括的规则也必须用SRL308包括。
[0133] 在本发明的一个实施例中,在ORT900中预定义的权限数据是部分地固定的和不变的,以及是部分地可变的和规则驱动的,如上所述。这里,用于ORT900的模板签名S(PR-DRM-T)是至少部分地基于规则的固定的部分和基于用于权限数据的可变部分的规则。
[0134] 如可意识到的,如由用户拥有的ORT900可变成过时的或失效的。也就是说,ORT900通过在其中的权限数据可反映已经变成过时的、不相关的或简单地不可再应用的政策。例如,在ORT900的权限数据中指定的一或多个用户或用户类在政策环境内可能不再存在,或者在ORT900的权限数据中指定的一特定的用户或用户类在政策环境内可能不再具有同样的权限。在这样的情况下,可能是管理者已经发布一个修改的ORT900,但用户还使用先前的、失效的版本的ORT900。
[0135] 在这样的情况下,且在本发明的一个实施例中,然后,DRM服务器320在签署提交的权限模板900以创建一个ORT900时保留ORT900的一个拷贝,每个ORT900具有唯一的辨识标记,且基于一个在其中包括这样的ORT900的辨识标记的ORT900构建每个权限标签。因此,在诸如结合图10接收所提交的权限标签时,DRM服务器320找出在权限标签中ORT900的辨识标记,基于所找到的辨识标记取回这样的ORT900的最新的拷贝,从所提交的权限标签中删除权限数据,然后至少部分地基于所插入的权限数据签署权限标签。当然,DRM服务器还执行在如所述的过程中必需的和有义务的任何必需的加密和解密步骤,包括解密或重新加密(DES1(权限数据))。注意,如果DRM服务器自适应地替换所提交的权限标签中的权限数据,这样的权限标签和由其构建这样的权限标签的ORT900就不必要在其中包括权限数据。改为,权限数据只需要驻留在DRM服务器320上。不过,用权限标签和由其构建这样的权限标签的ORT900包括权限数据,对于用户可能是有用的,并因此在某些情况下是有用的。
[0136] 经由目录许可
[0137] 当为受保护的内容发布许可证时,许可证发布实体(在下文中‘许可证颁发者(licensor)’)从内容查阅所发送的SRL308,以确定要为哪个用户/组(group)/群(cluster)/部门(division)/平台(platform)/等(在下文中‘实体(entity)’)提供权限,以及查阅所发送的证书以识别许可证请求者。基于上面的,许可证颁发者确定要将在SRL308中所列出那些中哪些权限发布给请求者。概念地,许可证颁发者检查在SRL308中所列出的实体并将这样的实体与请求者比较。这样,如果SRL308指定一特定的组要接收许可证且请求者是这样的组的成员,则请求者被准予带有如在SRL308中为这个组所述的权限的许可证。同样,如果SRL308指定一特定的用户要接收许可证且请求者是这样的用户,则请求者被准予带有在SRL308中为这样的用户所述的权限的许可证。如可意识到的,特定的SRL308可列出用于它的几个实体和权限,且一特定的请求者可被准予基于是一或多个实体的成员的许可证。
[0138] 在本发明的一个实施例中,且如在图12中所看到的,在所发送的证书1202中经由标识符1204识别请求者,在这里标识符1204例如可以是一个别名,通过别名在一组织的目录1206中识别请求者。因此,SRL308在其中按照这样一个标识符1204列出每个被授权的实体。这样,且作为处理对许可证1208的请求的部分,许可证颁发者1210从证书1202获得请求者的标识符1204,并将所获得的标识符1204与如在所发送SRL308中所列出的所有标识符1204比较。如果找到一个匹配,则许可证颁发者1210向请求者发布带有在SRL308中为这样的请求者的标识符1204指定的权限的许可证。
[0139] 而且,在目录1206有效的情况下,许可证颁发者1210也可确定请求者是否是在SRL308中所列出的任何其它实体,假定目录1206包含适当的交叉引用信息,它能够反映在每个这样的其它实体中请求者的成员资格状态。一般地,目录1206为每个请求者不只是列出其标识符1204,还列出请求者其成员的每个组/群/部门/平台/其它实体/等的标识符1208。注意,目录1206可包括标识符1208,诸如邮件地址、可替换的邮件地址、ID(标识符)、可替换的ID、组成员资格、历史标识符和/或等等。
[0140] 有了从请求者接收的在其中带有其标识符1204的证书1202,以及有了来自从请求者接收的SRL308的权限数据,然后,以及现在参考图13,许可证颁发者1210以下列方式为请求者发布许可证1208。最初,许可证颁发者1210从所接收的证书1202获得标识符1204(步骤1301),并在目录1206中找到所获得的标识符1204(步骤1303)。之后,许可证颁发者1210基于被找到的标识符1204,在目录1206中找到请求者1204是其成员的每个成员的标识符1204(步骤1305)。这样,对于每个被找到的请求者标识符1204和所有被找到的实体标识符1204,许可证颁发者1210将这样的标识符1204与如在所发送的SRL308中列出的所有标识符1204比较(步骤1307)。再一次,如果找到匹配,许可证颁发者1210为请求者发布带有在SRL308中为所匹配的标识符1204指定的权限的许可证(步骤1309a)。
[0141] 注意,由于将多个标识符1204与SRL308的比较,可能的情况是,在SRL308中找到多个匹配的标识符1204。如果这样,许可证颁发者1210在SRL308中选择一个合适的匹配的标识符1204,并向请求者发布带有在SRL308中为所选择的匹配的标识符1204指定的权限的许可证(步骤1309b)。例如,许可证颁发者可选择向请求者传送最多权限的匹配标识符1204(步骤1309b-1)。注意,许可证颁发者可能能够确定哪个匹配的标识符1204传送最多的权限,或者可能必须依赖于在SRL308中的某种类型的优先标记。在后一种情况下,在SRL308中的每个匹配的标识符(用户)1204具有一相应的优先级标记1212,且较高标记1212例如表示较大范围的准予的权限。这样,如果许可证颁发者1210在SRL308中找到多个匹配的标识符1204,这样的许可证颁发者1210选择具有最高优先级标记1212的匹配标识符1204(步骤1309b-2)。
[0142] 注意,在参考目录1206以生成另外的相关于请求者的标识符1204时,许可证颁发者1210将增加找到匹配的可能性,即使在这样的情况下,例如,请求者的邮件地址或ID从创建SRL308时起已经改变。一般而言,目录1206提供从一个请求者的标识符1204映射到其它可能的请求者的标识符1204,由此就可使用所有的标识符1204试图找到一个与在SRL308中的标识符1204的匹配。
[0143] 对组的许可
[0144] 在本发明的一个实施例中,所发送的证书1202,如由请求者所提交的,可代表一组或群或一些其它的个人的集合(在下文中‘组’),在这里这样的组在目录1206中被适当地代表。这样的组可包括邮件激活的组诸如一分发列表或邮件别名,或一安全组诸如可结合网络操作系统等等定义的。因此,许可证颁发者1210在接收所发送的‘组’证书1202时,实际上如前面一样地进行。注意,然而,因为所发送的证书1202代表一特定的组,它可以是,明确地说,来自许可证颁发者1210所发布的许可证1208是用于在证书1202中识别的组而不是请求者。可替换地,许可证颁发者1210可从目录1206确定请求者是在证书1202中识别的组的部分,且如果是则所发布的1210是用于请求者的。
[0145] 在前一种情况下,所发布的许可证1208可包括按照组的公用密钥加密的内容密钥,且请求者因而需要获得相应的组的私有密钥。因此,请求者可具有带有这样的私有密钥的组成员资格证书,它有可能是按照请求者的公用密钥加密的且可按照请求者的私有密钥解密的。
[0146] 在后一种情况下,要将按照请求者的公用密钥加密的内容密钥包括在所发布的许可证1208中,许可证颁发者1210可附加地从请求者接收带有这样的公用密钥的证书。可替换地,许可证颁发者1210可以在文件上具有这样一个证书(见图6A和6B的步骤608-612),且在从目录1206确定请求者是在所发送的组证书1202中所识别的组的一部分时,使用在证书中的公用密钥。
[0147] 值得注意,在SRL 308中指定权限和按照组发布许可证1208在企业或组织环境中完成数据权限管理。例如,文档或电子邮件可以是受DRM保护的,因此一给定部门的所有成员具有读文档或电子邮件的权限。假定用这样一个部门的组(例如电子邮件别名)存在于组织的目录1206中,这是最经常的情况,文档或电子邮件的作者将基于组而不是个人准予权限。如可意识到的,这样的组级权限准予的好处包括对于作者在指定具有权限的个人的类时易于使用。另外,通过按照组指定权限,在新的个人加入组和老的个人离开组的时候所指定的权限不会变成‘失效的’。改为,组的所有当前的成员能够行使这些权限,只要直到现在这样的组的成员资格被保持在组织的目录1206中。
[0148] 在许可期间插入政策
[0149] 在本发明的一个实施例中,且如上面结合图9的ORT900间接提到的,当基于这样的SRL308发布许可证1208时,DRM服务器/许可证颁发者1210能自适应地修改或代替来自所提交的SRL308的权限数据。具体地说,在明确地忽略在所提交的SRL308中的权限数据时几种情况会发生,且当基于这样的SRL308创建许可证1208时,许可证颁发者1210改为代替或‘插入(inject)’一可替换的政策。注意,尽管在此所揭示的几个许可证颁发者1210将政策插入许可证1208的特定的情况,但是许可证颁发者1210在不脱离本发明的精神和范围的情况下,也可将政策插入在任何其它类型的情况中的许可证颁发者1208。
[0150] 在第一种情况中,且现在参考图14,许可证颁发者1208保存一个被授予特殊权限的特殊实体(用户、组等)的列表(图12)。例如,特殊的实体可包括在组织中某些高级别的个人,某些管理的个人,某些应该能够再现所有内容的个人,和前述的个人的组。这样的列表1214实际上被包含在组织的目录1206内,作为在目录中为每个特殊实体列出的辨识信息,或更简单地通过创建一或多个这样的特殊实体的组。这样,这样的特殊实体能再现内容,即使用于它们的SRL308相反将阻止这样的再现。
[0151] 在一实体提交SRL308作为对许可证1208的请求的部分时,然后,现在参考图14,许可证颁发者1210用目录1206以合适的方式检查,以确定所提交的实体是否被鉴定为一特殊实体(步骤1401),且如果是,则许可证颁发者1210为这个特殊实体创建带有不同于在所提交的SRL308中提供的权限数据的特殊权限的许可证1208(步骤1403)。注意,特殊权限可能是在不脱离本发明的精神和范围的情况下的任何权限。例如,特殊权限可以是来自一特定组的所有特殊实体能够完全访问和再现内容,一个特定的特殊实体接收增强的权限诸如更高的播放次数或在许可证1208期满前更长的时间等。注意,如果特殊权限对于个人或组是特定的,在目录1206中可在用于这个个人或组的目录项中指定这样的权限,这样的目录项可具有对一位置的合适的参考,该位置放置特殊的权限,许可证颁发者1210可基于这个个人或组的标识符1204在数据库找到这个特殊的权限,等等。
[0152] 在第二种情况中,现在转到图15,许可证颁发者1208保存一个对其要限制或拒绝权限的受限制的实体(用户、组等)的列表1216(图12)。例如,受限制的实体可包括已经离开组织的个人,在组织中不应该正常地具有对于任何内容的任何权限的个人,诸如维修和建筑人员,在组织中只具有有限的地位的个人,诸如接线员和临时职工,以及上述个人的组。象上述‘特殊的’列表1214,受限制的列表1216也可被包含在组织的目录1206中,作为在目录中为每个受限制的实体列出的辨识信息,或更简单地通过创建一或多个这样的受限制的组。这样,这样的受限制的实体被限制再现内容,即使用于它们的SRL308相反将允许这样的再现。
[0153] 在一实体提交SRL308作为对许可证1208的请求的部分,然后,仍参考图14,许可证颁发者1210用目录1206以合适的方式检查,以确定所提交的实体是否被鉴定为受限制的实体(步骤1405),且如果是,则许可证颁发者1210为受限制的实体创建带有与在所提交的SRL308中提供的权限不同的受限制的权限的许可证1208(步骤1407)。注意,受限制的权限可以是在不脱离本发明的精神和范围的情况下的任何权限。例如,受限制的权限可以是所有受限制的实体不能以任何方式访问和再现相应的内容,所有来自一特定组的受限制的实体只能以短暂的形式再现内容,一特定的受限制的实体只能打印一件内容的单一拷贝,等等。另外,受限制的权限可以是无论什么权限也不准予受限制的实体。如关于特殊权限一样,如果受限制的权限是特定于一个个人或组,则可在目录1206中为这个个人或组在一目录项指定这样的权限,这样的目录项可具有对于一位置的合适的参考,该位置放置受限制的权限,许可证颁发者1210可基于这个个人或组的标识符1204在数据库中找到受限制的权限,等等。
[0154] 在第三种情况中,许可证颁发者1208可将政策插入许可证1208中以指定最低程度的系统要求,这些要求是在计算设备14(图11)上要再现相应的内容所必需的(步骤1409)。这样的最低程度的系统要求一般涉及计算设备14的确实性和安全性,尽管在不脱离本发明的精神和范围的情况下,这样的要求可涉及任何其它内容。
[0155] 将关系到许可证颁发者1210的确实性和安全性的基本的实例是,计算设备14的可信的组件18或其安全部分是否是当前的。如可意识到的,这样的当前性可通过版本编号、建立日期等等代表,并反映可信的组件18或其部分的使用时间。如也可意识到的,随着这样的可信的组件18或其部分的使用时间,可信的组件18或其部分更易受到不法的实体的安全性攻击。因此,许可证颁发者1210可决定超过某个使用时间的可信的组件18或其部分应该是不可信的,且可将政策插入由它发布的许可证1208,要求在允许再现相应的内容之前,先更新这样的不可信的可信的组件18或其部分。
[0156] 关系到许可证颁发者1210的确实性和安全性的另一个实例是,要再现内容的应用程序事实上应该是可信的。如可意识到的,可以是这个情况,即一个应用程序可以是可信的,以通过不允许以不受保护的形式保存内容,在许可证颁发者1208的限制内再现内容,而另一个应用程序不能同样是可信的。因此,许可证颁发者1210可决定只有某个应用程序能够被使用,以再现相应的内容,并可将政策插入由它发布的许可证1208中,要求只使用这样的应用程序再现这样的内容。
[0157] 当然,其它政策插入情况是大量的。一般而言,可执行政策插入以增加附加的权限至SRL308的权限数据中,或者从SRL308的权限数据中删除权限,有可能基于请求者(步骤1411);且同样将条件添加到这样的权限数据中,或者从这样的权限数据中删除条件,再一次有可能基于请求者(步骤1413)。
[0158] 结论
[0159] 完成结合本发明执行的过程所需要的编程是相对直接的且对于相关的编程人员是显而易见的。因此,没有将这样的编程附在这里。于是,可使用任何特定的编程,在不脱离本发明的的精神和范围的情况下,以完成本发明。
[0160] 应该意识到,在不脱离其发明的概念的情况下,可对所述的实施例进行修改。值得注意地,尽管按照规定的领域诸如组织来描述本发明,但是还可以在为组织的子集或者包含多个组织的规定领域内使用本发明,所有在不脱离本发明的精神和范围的情况下。因此,应该理解,这个发明不是受限于所揭示的特定实施例,而是旨在覆盖在如由所附的权利要求书所定义的本发明精神和范围内的修改方案。
[0161] 附录1
[0162] 取样权利数据
[0163] Sample Rights Data
[0164] <?xml version=″1.0″?>
[0165]
[0166]
[0167]
[0168]
[0169] c43...
[0170] $$411$411name$411desc
[0171]
[0172]
[0173]
[0174]
[0175]
[0176]
[0177]
[0178]
[0179]
[0180]
[0181]
[0182]
[0183]
[0184]
[0185] test@company.com[0186]
[0187]
[0188]
[0189]
[0190]
[0191]
[0192]
[0193]
[0194]
[0195]
[0196]
[0197] test@company.com[0198]
[0199]
[0200]
[0201]
[0202]
[0203]
[0204]
[0205]
[0206]
[0207]
[0208] RSA PKCS#1-V1.5
[0209]
[0210] SHA1
[0211]
[0212] surface-coding[0213]
[0214] MwI...=
[0215]
[0216] Msi...=
[0217]
[0218]
[0219] 附录2
[0220] 经签名的取样权利标签(SRL)308
[0221] Sample Signed Rights Label(SRL)308
[0222] <?xml version=″1.0″?>
[0223]
[0224]
[0225] 2002-01-01_12:00L00
[0226]
[0227]
[0228]
[0229] $$409$...
[0230]
[0231]
[0232]
[0233]
[0234] {d81...}
[0235] Test DRM Server
[0236]
http://licensing.dev.com
[0237]
[0238]
[0239] RSA
[0240]
[0241] 65537[0242]
[0243]
[0244] NcO...=
[0245]
[0246]
[0247]
[0248] tFg...=
[0249]
[0250] [0251]
[0252]
[0253]
[0254] [0255] {OF4...}
[0256] DRM Server Cluster
[0257]
http://localhost/Licensing
[0258]
[0259]
[0260]
[0261]
[0262] FDB-1
[0263]
[0264]
[0265] PID
[0266]
[0267]
[0268]
[0269]
[0270]
[0271] PAB...
[0272]
[0273]
[0274] RSA PKCS#1-V1.5
[0275]
[0276] SHA1
[0277]
[0278] surface-coding[0279]
[0280] Prc...=
[0281]
[0282] EHd...=
[0283]
[0284]