美国专利申请No.10/185527(2002年6月28日归档委托备案号MSFT-1330)名称:“在数字权利管理系统中,获得对数字内容的签署的权利标示(SRL),及据此(SRL)获得相应于该内容的数字许可证”;
美国专利申请No.10/185278(2002年6月28日归档委托备案号MSFT-1333)名称:“在数字权利管理系统中,采用权利样板以获得对数字内容的签署的权利标示(SRL)”;
背景技术
现参照图1,如所周知,数字权利管理(DRM)和实施系统对于数字内容12分发到用户是十分需要的,数字内容12的例子如数字声频、数字视频、数字文本、数字数据、数字多媒体等等。用户得到数字内容后就要借助于适当的播放装置例如个人计算机14上的媒体演播器之类来播放或‘演播’或用别的方式访问该数字内容。
分发这类数字内容12的内容所有者通常希望对用户如何处理这种分发到的数字内容12加以限制。例如,内容所有者可能想限制该用户复制并再度分发此内容12到下一个用户,或者想让分发出去的数字内容12只能被演播有限次数,或限制其总的演播时间,或只限于在某种机器上演播,或只能用某种媒体演播器进行,乃至只能被某类用户来演播,等等。
然而,一旦分发出去后,内容所有者几乎没有多少办法去控制该数字内容12。数字权利管理(DRM)系统10能让任何形式的数字内容12的播放或演播得到控制,这种控制是灵活的、可由该数字内容的所有者定义的。数字内容12通常以打包13形式经合适渠道分发到用户。分发出去的数字内容包13所包含的数字内容12是已经用对称的加密/解密密钥(KD)加密过的,即所称为(KD(CONTENT)),该包内还包含标识该内容的信息、如何得到对该内容的许可证的信息等等。
基于信任的(trust-based)数字权利管理DRM系统10使得数字内容12的所有者规定许可证规则,在用户计算装置14上播放该数字内容12之前以及在使用该内容12期间这些规则必须得到满足。这些许可证规则可包括前述临时性要求,还可被包括在数字许可证16中,用户/用户的计算装置14(本文此后,这两个术语将可互换,除非另有规定的情形)必须从内容所有者或其代理人处得到该许可证。该许可证16是由发行者签署的,它还包含将数字内容(它可能是用用户可解密的密钥加密的)进行解密的解密密钥(KD)。由于内容12必须有许可证16才能够访问,这样一来内容12就可以自由分发了。重要的是,许可证16必须以某种方式直接或间接地捆绑到有待用来播放内容12的计算装置14。否则,就潜在可能将许可证16复制到无限数目的别的装置14上,从而也可在它们上面播放相应内容12了。
一件数字内容12的所有者必须要确信用户计算装置14会遵守该内容所有者在其许可证16中规定的规则和要求,即除非许可证16中的规则和要求得到满足,不得播放数字内容12。于是较好的办法为,向用户计算装置14中提供一个可信(trusted)组元或机制18以使之不播放该数字内容,除非按照用户得到的伴随数字内容12的许可证16所包括的许可证规则可以播放。
可信组元18通常具有一个许可证评估器20,用以确定:许可证16是否有效,如它有效则考察该许可证16的规则和要求,根据这一考察确定该用户是否有权以他请求的方式来播放该数字内容12以及其它事项。应该理解,许可证评估器20在DRM系统中可信以按许可证16中的规则和要求来执行数字内容12的所有者的意愿,不管出于什么恶意的或非恶意的的目的,用户应该不能轻易更改这种可信单元。必要的是要让可信组元18知道各种被信任来发出许可证的外部实体,并能验证诸如外部实体、用户、应用程序、以及机器等各种实体的身份。
应该理解,许可证16中的规则和要求可规定用户是否有权播放数字内容12所依据的几个因素,包括:用户是谁,用户所在地,用户所用计算装置的类型,用户启动DRM系统的播放程序,日期,时间,等等。此外,许可证16的规则和要求还限制许可证16只能有预定种类的用途,例如预定的演播数,或预定的演播时间。
可按任何合适的语言和句法来规定许可证16中的规则和要求。例如,该语言可简单规定必须满足的属性和值(例如:DATE必须晚于X),或者可要求按规定的语句来执行各种功能(例如:IF DATE大于X,THEN DO...)。
一旦许可证评估器20确定了许可证16有效,而且用户满足了其中的规则和要求,则数字内容12就可被播放。特别是,为播放数字内容12,从许可证16得到解密密钥(KD),将它应用于内容包13的(KD(CONTENT)),以便解密得到实际内容12,于是才真能播放该内容12。可信组元18也可能需要检验并跟踪计算装置14的环境中的动态方面,例如对进行内容播放的应用程序。
为执行与可信组元18相关的密码功能,包括上述应用(KD)到(KD(CONTENT))及所有其它的密码功能,通常在可信组元18中设有黑匣22。和许可证评估器20一样,黑匣22在DRM系统中也是受信任以按许可证16中的规则和要求来执行数字内容12的所有者的意愿,不管出于什么恶意的或非恶意的的目的,用户应该不能轻易更改这种可信单元。黑匣22也有作为许可证实施者的任务,特别是要保证只在用户计算装置14里内容12被解密并被交付适当的播放程序。
黑匣22通常既可执行对称的(单一密钥)也可执行不对称的(公共-私人密钥对)密码加密和/或解密。特别是,上述解密密钥(KD)通常是对称密钥,并由另一个对称密钥或公共密钥或私人密钥加密后以加密形式传输。于是,为了解密(KD(CONTENT)),例如(KD)是被公共密钥(PU)加密了的(即为(PU(KD))),黑匣22必须首先得到相应于(PU)的私人密钥(PR),不对称地应用私人密钥(PR)到(PU(KD))以便得出(KD),然后必须对称地应用(KD)到(KD(CONTENT))才能得出内容。
黑匣22带有一个秘密并被信任不会对任何人或任何物透露该秘密。因此,该秘密是直接或间接加密内容密钥(KD)的基础,而且只有作为该秘密的承载者的黑匣22才能解密该内容密钥(KD)。于是,具有以该秘密关联方式加密了的(KD)的许可证16也就被连接或称束缚到黑匣22。通常,所述的秘密就是密钥对(PU-BB,PR-BB)中的私人密钥(PR-BB),对黑匣22来说它是独特的或几乎是独特的,而黑匣22相应的公共密钥(PU-BB)被用来直接或间接加密(KD)。最为重要的是,黑匣22必须能隐藏并保护(PR-BB)和相关的密码代码不被察觉和窜改,故而这种代码都是嵌埋或封存在黑匣22里的,并以适当地模糊和自保护起来的。
为了防止不受限制地复制,黑匣22被连接到一个特定的硬件机器。为得到这种连接,通常是将机器特性用硬代码记入黑匣22并在运行时鉴定这种机器特性。黑匣22也被信任来密码鉴定别的软件组元,通常是验证软件组元所端出的数字签署,从而能保证用户计算装置14上的可信系统18的别的组元和诸如许可证16这样的端出项目未被窜改过。
通常每个黑匣22伴随有一个数字黑匣证书24(图1A),它承载着(PU-BB)、独特的ID、版本号、及其它可能的证书内容。黑匣证书24是通过(PU-BB)跟(PR-BB)的对应关系连接到黑匣22上。许可证16的发行者可以根据可信组元18的黑匣22的证书和其中的内容来决定是接受或者驳回来自可信组元18的对许可证16的请求。如果该请求被驳回,通常必须安装一个新的黑匣22后,请求才有可能被接受。当然,还有一些别的理由得安装新的黑匣22,它也许初始就安装了不过是与可信组元18的其余部分分开装的,或许它原来与可信组元的其余部分是一起安装的却一直没有活化,等等缘故。
与别的数字证书一样,黑匣证书24是由发证实体(issuing entity)用私人密钥(PR-ISSUER)签署的(该密钥是基于黑匣证书24的内容的至少一部分的散列的),并且采用相应的公共密钥(PU-ISSUER)来验证。如果内容更改了,该签名不会得到验证。通常,发行者发出的黑匣证书24包含一个链26的多个证书24它们导回到可信的根机构发出的根证书24,在这个链26上的每个证书24都包含一个公共密钥,这个公共密钥可用来验证沿链26的下一个证书的签名,而其中黑匣22/可信组元18是知道根证书24的公共密钥的。故而为了要验证黑匣证书24,黑匣22/可信组元18首先沿着链26从根证书24开始验证每个证书24直到黑匣证书24。此外,如果基于黑匣证书24发出进一步的证书24,即用(PR-BB)签署了,对这进一步的证书24的验证可继续沿上述链的验证过程下来到该进一步证书24。
更一般地说,应认识到,除了黑匣证书24外,在DRM系统10的范围内还存在别的证书24,此处每个证书24作为一个表明其对应的单元是真实可靠的的端出(proffer),并且每个证书24持有一个密钥,持有关于其对应单元的信息,及/或类似信息。例如,播放内容12的应用程序可伴随着一个应用程序证书24,并且一个由多个证书24形成的链26导回到黑匣22/可信组元18所认可的可信的根机构。类似地,加入DRM系统10的一个用户在此系统中可由用户证书24来代表而且也有由多个证书24形成的链26相伴并导回到可信的根机构。注意,许可证16也是证书24的一种形式。
类似地,计算装置14可有一个计算装置证书24和其伴随的证书链26,而且计算装置里的各种硬件单元(硬驱、处理器、显卡等)和软件单元(BIOS、操作系统、图像子系统等)的每个单元都可有其证书24和与之相伴的链26。此外,因为每个许可证16是由一发证实体签署并发出的,这种许可证16是证书24的一种形式,为了验证其签署诸目的,它确实也有一个相伴随的链26。
签发特定证书24的实体通常有权撤销该证书,例如通过将与该证书相关的公共密钥列进一个可访问的撤销列表中。黑匣22/可信组元18在验证任何特定证书24以便鉴定其相应的单元时,可从该证书的发行者得到相应的撤销列表加以考察,从而决定是否撤销该证书24,如果是的话,可拒绝承认证书24的效用,并且拒绝按此已撤销证书24来播放权利保护的内容12。然而该认识到,当验证/鉴定来自多个发行者多个证书24/单元时,正如图1A所示关于由多个证书24形成的多重链26的情况,要从所有这些发行者得到撤销列表并加考察,这种工作很快就变得极其繁琐,即使还不是负担过重。
因此,有需求建立一种系统和方法,让可信组元18、黑匣22、或别的查询实体在鉴定和验证证书24的过程中得以有效地得到并考察这类撤销列表。
具体实施方式
计算机环境
图1和下面的讨论是想要对本发明和/或其各部分可能实施的合适的计算环境提供一个简要的一般性的描述。尽管并非必要,仍从用计算机(例如客户工作站或服务器)执行计算机可执行指令(例如程序模件)这样一般意义上来描述本发明。一般来说,程序模件包括子程序、程序、对象、组件、数据结构之类,它们执行特定任务或实施特定抽象数据类型。此外,也应认识到本发明和/或其各部分还可工作在别的计算机系统结构,包括掌上计算机、多处理器系统、基于微处理器或可编程芯片的家电、网络PC、小型计算机、大中型计算机等类型。本发明还可工作在分布式计算环境,其中由用通信网络连接的远地处理装置来执行任务。在分布式计算环境,程序模件可存在本地和远地的存储器装置里。
图2为通用计算系统一例,包括常规个人计算机120之类,其中包括处理单元121,一个系统存储器122,以及将各个系统组件包括系统存储器连接到处理单元121的系统总线123,它可为几种总线结构之一,包括存储器总线或存储器控制器、外设总线、及采用几种总线架构之一的本机总线。系统存储器包括只读存储器(ROM)124和随机存取存储器(RAM)125。基本输入/输出系统(BIOS)126,它包含帮助个人计算机120里面各单元间传送信息的基本子程序(如在启动时用的),也存在ROM 124内。
个人计算机120还包括:硬盘驱动器127以读出和写进到硬盘(图中未画出)上,磁盘驱动器128以读出和写进到可撤出磁盘129上,光盘驱动器130以读出和写进到可撤出光盘131(例如CD-ROM或别的光媒体)上。硬盘驱动器127、磁盘驱动器128、和光盘驱动器130分别由硬盘驱动器接口132、磁盘驱动器接口133、和光盘驱动器接口134连接到系统总线123。这些驱动器与其相联系的计算机可读媒体为个人计算机20提供的永久性存储的计算机可读指令、数据结构、程序模件和别的数据不是无电源消灭型的。
虽然作为例子在此描述的计算机环境采用了硬盘、可撤出磁盘129、和可撤出光盘131,还应认识到,可以存储数据并可被计算机访问存取的别的类型的计算机可读媒体也可用于本操作环境,例如包括盒式磁带、磁卡、视频数字式磁盘、Bernoulli卡筒、随机存取存储器(RAM)、只读存储器(ROM)等类。
多个程序模件可存储在硬盘、磁盘129、光盘131、ROM 124或RAM 125上,包括操作系统135、一个或多个应用程序136、别的程序模件137、及程序数据138。用户可通过键盘140和屏幕指点装置142等输入装置来将其命令和信息输入计算机120。图中未画出的别的输入装置可包括拾音器、操纵杆、gamepad、satellite disk、扫描仪等类。这些和别的输入装置常通过与系统总线连接的串行端口接口146连到处理单元121,也可通过别的接口来连接,例如并行端口、游戏端口、或通用串行总线(USB)。监视器147或别种显示装置也通过接口(如视频适配器148)连到系统总线123。除了监视器147,个人计算机通常还包括别的外围输出设备,例如扬声器和打印机(未画出)。图2的示例系统也包括主适配器155、小计算机系统接口(SCSI)总线156、及一个连到SCSI总线156的外存储装置162。
个人计算机120可与一个或多个远方计算机逻辑连接从而工作于联网环境,例如图中联网到一个远方计算机149,它可以是另一个人计算机、一个服务器、一个路由器、一个网络PC、一个同等的装置(a peer device)、或别的共用网络节点,它通常包括上面关于个人计算机120所描述到的多个乃至所有这些单元,虽然图2中只画出了其中的存储器装置150。图2所示的逻辑连接有一个局域网(LAN)151和一个广域网(WAN)152。这种联网环境在办公室、企业范围的计算机网络、网际网和因特网的情形都是常见的。个人计算机120也可用作主机来连接一个客户机,例如另一个个人计算机120、或另一个更专门的装置如便携式放映器或便携式数字助理之类,这样主机可下载数据到客户机和/或自客户机上载数据,还可做别的工作。
当用于局域网环境,个人计算机120通过网络接口或适配器153连到LAN151。当用于广域网环境,个人计算机120通常采用调制解调器154或别的手段建立与广域网LAN 152,例如因特网,的通信。内置式或外置式的调制解调器154通过串行端口接口146连接到系统总线123。在联网环境中,关于个人计算机120所描述的程序模件或其中各部分可存储在远方存储器装置内。下面将会理解到图2所示的网络连接仅为示例性的,还可用别的手段来建立计算机之间的通信联系。
证书的撤销
如前所述,在数字权利管理DRM系统10中,可信组元18/黑匣22/及别的单元(下文中统称‘可信组元18’)实施对数字内容的密码功能,包括检验与各个实体联系的证书24以及证书的链接26以便鉴定这些实体,包括保证每个检验过的证书24没有被撤销,或换个说法,对于权利被保护的内容12的播放不会不可靠。通过经过相关签署的、且将证书24列入的撤销列表的建立、传布和实施来实现凭证24的撤销。经签署的这种撤销列表被递送到可信组元18,当检验证书24时就会参照该撤销列表。经由撤销列表确定了证书24已被撤销,只要该撤销列表是由有权撤销此证书24的实体所发出,可信组元18将不再用此已被撤销的证书24执行任何操作。
现有技术中,证书24只能由发出它的实体来撤销。证书撤销系统的现有技术的一个例子已由美国专利(No.5699431,1997年12月16日发)所陈述,全文引为参考。在本发明的一个实施例中,DRM系统10默认此种作法。就是说,只有由证书24的发行者签署并发出的撤销列表才能撤销证书24。因为该发行者可由其公共密钥(PU-ISSUER)来认定,撤销列表和被撤销的证书24二者都得由密钥(PU-ISSUER)发出,而由相应的私人密钥(PR-ISSUER)签署。
除了这种默认的作法之外,现在转到图3本发明的一个实施例,证书24可以给一个或几个被允许撤销此证书的实体明确指定一个公共密钥(图3中的PU-REVOKER1、PU-REVOKER2、PU-ISSUER)。此处有权撤销证书24的机构是由证书发行者向各个被指定的撤销实体来委派的。注意通过委派这种机构,发行者可以保留也可不保留它自己作为证书24的撤证机构。只有当一个撤销列表是由指定的撤销实体所发出(PU-REVOKER1、PU-REVOKER2、或PU-ISSUER)而且是由相应的私人密钥所签署(PR-REVOKER1、PR-REVOKER2、PR-ISSUER)的情况下,该撤销列表才能撤销证书24,除非在另一种情况下,证书24没有指定撤销实体,于是默认发行者用密钥(PU-ISSUER)发出的撤销列表有效。
此外,除规定一个或几个撤销实体外,在本发明的一个实施例中,证书24还可规定每当证书24被使用时要撤销它必须满足的撤销条件28。因为撤销条件28构成了证书24的一部分,条件28已被确立为可信的DRM组元18须实施的政策。可以理解,这种撤销条件28除了别的作用外还规定了:从每个撤销实体可以下载撤销列表30的地址,及新颖度条件,它指明撤销列表30的最大有效期,在该有效期后必须下载其新版本。当用户用规定了撤销条件28的证书24向其计算装置14上的可信组元18请求播放内容12时,可信组元18必须得到满足撤销条件28的撤销列表30。如果撤销列表尚未得到,或者这个列表30并不满足条件28的要求,就不能用证书24来实现播放的请求。
现在就可认识到,因为证书24可写成把一个撤证机构委派到规定的密钥(PU-REVOKER),发出相应许可证16的内容12的发布者可用一个与该许可证16相关的撤销列表30来定义一些不可靠的证书24,使之不得用于播放内容12。于是在本发明的一个实施例中,和特定证书24相关联的撤销列表30,无论是来自该特定证书24的发行者还是来自一个被委派的撤证机构,至少在该特定证书24使用范围内,可指定任何别的证书24为无效(即排除其使用)。
综上所述,在本发明中,发行者在发出特定的证书24时可把该证书写成只能被发行者自己来撤销,或只能被一个或几个委派的撤证机构来撤销,或能被发行者自己以及一个或几个委派的撤证机构来撤销。从而可想象这类证书24的撤销可能是由于列在了特定证书24发行者发出的撤销列表30上,或者可能是由于列在了由特定证书24所认定的被委派撤证机构发出的撤销列表30上。
对应地,如果特定证书24的撤销列表30,不论它是来自证书发行者或者来自委派的撤证机构,列举了任何别的证书24,这类别的证书24就被从该特定证书24联系的应用中排除了。然而,另一方面,这类被排除的证书24并未因此被撤销,因为只有这类被排除的证书24的发行者或其发行者委派的撤证机构才真正能够撤销这类被排除的证书24。注意,撤销和排除不仅适用于主要或末端实体证书24诸如对应于用户、单元、一件内容简介2、一个许可证16的那些证书,也对应于在伴随前述几个主要证书24中任何一个的多个证书24的链26上的任何证书24。最后要注意,撤销和排除是由用户计算装置14上的可信组元18来实施的,它得到发行者的信任来从事此任务。
以下陈述只能被委派的撤证机构撤销的证书24的一部分:
<BODY>
<ISSUER>
<PUBLICKEY>
<ALGORITHM>RSA</ALGORITHM>
<PARAMETER name=”public-exponent”>
<VALUE encoding=”integer32”>65537</VALUE>
</PARAMETER>
<PARAMETER name=”modulus”>
<VALUE encoding=”base64”size=”1024”>91p...
</VALUE>
</PARAMETER>
</PUBLICKEY>
</ISSUER>
<CONDITIONLIST>
<REFRESH>
<DISTRIBUTIONPOINT>
<OBJECT type=”Revocation”>
</OBJECT>
<PUBLICKEY>
<ALGORITHM>RSA</ALGORITHM>
<PARAMETER name=”public-exponent”>
<VALUE encoding=”integer32”>65537</VALUE>
</PARAMETER>
<PARAMETER name=”modulus”>
<VALUE encoding=”base64”size=”1024”>25q...
</VALUE>
</PARAMETER>
</PUBLICKEY>
</DISTRIBUTIONPOINT>
<INTERVALTIME/>
</REFRESH>
</CONDITIONLIST>
</BODY>
可以理解,这种证书24只能被与条件列表28里REFRESH条件相联系建立的公共密钥撤销,而这个公共密钥并非是ISSUER的公共密钥,因此属于被委派的撤证机构。并且此处空的INTERVALTIME条件规定了撤销列表30是不需要的。事实上,证书24并未提供必须从之得到撤销列表30的地址。REFRESH条件仅仅指明什么实体能撤销证书24,而并未真的要求可信组元18从该实体获取撤销列表30来考虑证书24。然而,一些别的证书24如要求有撤销列表30,而该撤销列表是被REFRESH条件里指定的公共密钥所对应的私人密钥签署的,则该撤销列表是能够撤销上述证书24的。
一个证书24也能被多个委派的撤证机构所撤销,如下所显:
<BODY>
<ISSUER>
<PUBLICKEY>
<VALUE>
AAA
</VALUE>
</PUBLICKEY>
</ISSUER>
<CONDITIONLIST>
<REFRESH>
<OBJECT type=”Revocation”>
</OBJECT>
<DISTRIBUTIONPOINT>
<PUBLICKEY>
<VALUE>
AAA
</VALUE>
</PUBLICKEY>
</DISTRIBUTIONPOINT>
<DISTRIBUTIONPOINT>
<PUBLICKEY>
<VALUE>
BBB
</VALUE>
</PUBLICKEY>
</DISTRIBUTIONPOINT>
<INTERVALTIME/>
</REFRESH>
</CONDITIONLIST>
</BODY>
可以理解,证书24的不值得注意的部分已被去掉或压缩。此处,发行者用公共密钥AAA,或委派的撤证机构用公共密钥BBB,二者都可撤销此证书24。现在该理解到,要使证书24不能被撤销,只能在REFRESH撤销条件中不列出任何公共密钥。
下列证书24要求从特定地址(http://server/revocation_list.xml)得到撤销列表30,该撤销列表30是由特定的公共密钥的所有者签署的,此处撤销列表的新颖度小于14天:
<CONDITIONLIST>
<REFRESH>
<DISTRIBUTIONPOINT>
<OBJECT type=”Revocation”>
<ADDRESS type=”url”>http://server/revocation_list.xml
</ADDRESS>
</OBJECT>
<PUBLICKEY>
<VALUE encoding=”base64”size=”1024”>ugi...
</VALUE>
</PUBLICKEY>
</DISTRIBUTIONPOINT>
<INTERVALTIME days=”14”/>
</REFRESH>
</CONDITIONLIST>
撤销列表30的一个例子如下:
<?xml version=”1.0”?>
<RevocationList>
<BODY>
<ISSUEDTIME>2001-11-01T08:07</ISSUEDTIME>
<DESCRIPTOR>
<OBJECT type=”Revocation-List”>
</OBJECT>
</DESCRIPTOR>
<ISSUER>
<OBJECT type=”Corporation”>
<NAME>ABC Corporation</NAME>
<ADDRESS type=”URL”>abct.com</ADDRESS>
</OBJECT>
<PUBLICKEY>
<VALUE>CCC</VALUE>
</PUBLICKEY>
</ISSUER>
<REVOCATIONLIST>
<!--revoke a principal by key-->
<REVOKE category=”principal”type=”principal-key”>
<PUBLICKEY>
<VALUE>DDD</VALUE>
</PUBLICKEY>
</REVOKE>
<!--revoke a license by id-->
<REVOKE category=”license”type=”license-id”>
<OBJECT>
<GUID>EEE</GUID>
</OBJECT>
</REVOKE>
<!--revoke a license by hash-->
<REVOKE category=”license”type=”license-hash”>
<HASH>FFF</HASH>
</REVOKE>
<!--revoke a license by issuer public key-->
<REVOKE category=”license”type=”issuer-key”>
<PUBLICKEY>
<VALUE>GGG</VALUE>
</PUBLICKEY>
</REVOKE>
<!--revoke by issuer id-->
<REVOKE category=”license”type=”issuer-id”>
<ID>HHH</ID>
</REVOKE>
<!--revoke content by content-id-->
<REVOKE category=”content”type=”content-id”>
<ID>III</ID>
</REVOKE>
<!--revoke a user by email address-->
<REVOKE category=”user”type=”email”>
<EMAIL>someuser@hotmail.com</EMAIL>
</OBJECT>
</REVOKE>
</REVOCATIONLIST>
</BODY>
<SIGNATURE>
</SIGNATURE>
</RevocationList>
注意撤销列表30可能被嵌埋在证书24中,例如许可证16或来自发行者的另一文件中,虽然这种撤销列表30也可分别发出。如是这样嵌埋的,那就可能是一种情况,用户请求许可证16,而嵌埋的撤销列表30虽未专门请求却被附加到后面。尽管如此,还可专门请求撤销列表30,这并不背离本发明的精神和范围。
将撤销列表30,或在此情况下的许可证16(撤销列表30是在其中找到的)中的ISSUEDTIME与当前系统时间对比就能确定其新颖度。撤销列表30的ISSUER就是执行撤销的实体。撤销列表30只能用来撤销证书24,它是ISSUER被允许撤销的。每个REVOKE结构根据类别、类型、和标识判据指定一个待撤销的证书24或别的项目。每个REVOKE结构包含有信息可识别规定要撤销的项目,例如公共密钥DDD、带有GUID EEE的许可证16、带有无用数据FFF的许可证16、由具有公共密钥GGG的发行者或发行者ID HHH发出的任何许可证、具有内容ID III的内容、具有特定email地址的用户等等。
现应理解,在撤销列表30中规定可能要排除的项目并不仅限于证书24,也并非仅可用公共密钥来识别。一种替代办法是,在撤销列表30中的这种项目可包含任何可识别成分或‘主体’,这并未背离本发明的精神和范围。当然,现应理解,只有那些已被构成得能识别撤销列表30的机构的主体才真的能被撤销列表所撤销。出现在撤销列表30上的所有别的主体只能被排除。
给定撤销列表30应包含ISSUEDTIME,还应用私人密钥签署。为验证撤销列表30上的签名,这种列表30也应伴有一个证书链26,该链导回到可信的根机构。现应理解,列表30有权撤销任何被特别指定可用公共密钥撤销的项目,所述公共密钥对应于签署证书24私人签署密钥。
为了在本发明的一个实施例中一个事务中采用证书24,其中该证书24可能已有与它相联系的撤销列表30,现转到图4,要检验证书24以确定其中是否存在撤销条件28(步骤401)。假定这种条件28事实上确实存在其中,就检验条件28(步骤403)。例如,如果条件28中的一个条件规定了一个地址,其中撤销列表30应该从这个地址那里该得到,那么实际上从该地址得到了撤销列表30(步骤405),或者可保证来自该地址的撤销列表30现已在此(present)而且这个当前撤销列表30的发出时间满足任何在证书24所述的撤销条件28中规定了的新颖度条件(步骤407)。
类似地,如果诸条件28之一规定了撤销列表30签署者的公共密钥,就要确定相应的撤销列表30是否现已在此(步骤409),如已在此就要用该撤销列表,假定该撤销列表30的发出时间满足证书24的条件28中规定了的任何新颖度条件(步骤411)。注意可能有这种情形,条件28之一要求得到一个特定的撤销列表30,即使相应的条件28并没有规定对应该撤销列表30的公共密钥。从而即使得到了撤销列表30,却不能和所讨论的证书24一起使用。相应地也可能有另一种情形,条件28之一规定了对应撤销列表30的公共密钥,即使相应的条件28并没有要求得到该特定的撤销列表30。如果该撤销列表30现已在此,就不必去获得它,而可和所讨论的证书24一起使用它。
注意使用了所讨论的证书24的事务可为任何不背离本发明的精神和范围的适当的事务。例如,该事务可关于播放内容12的请求,此处所讨论的证书24为对应内容12的许可证16或者处于伴随该许可证的多个证书24的链26中的一个。类似地,该事务可牵涉到对许可证16的请求,此处的请求包括从发行者收到所讨论的证书24,或者作为对发行者的鉴定,或者作为伴随鉴定发行者的证书24的多个证书24的链的一部分。
还需注意,别的一些证书24也可能和该事务一起起作用,这些证书可代表用户、计算装置14的操作系统、计算装置14本身等等,它们也形成一个链26。此外,用户采用特定的公共密钥,该机器具有一个ID,由特定公共密钥的所有者签署内容12等等,这些都可作为事务的一部分。应理解,虽然所讨论的证书24的撤销列表30只能撤销所讨论的这个证书24,该撤销列表30也可将单子30上所述的任何别的主体排除出该事务。也应理解,无论对一个事务必须的证书24是否被撤销,还是对一个事务必须的任何主体是否被从事务中排除,该事务都被禁止了。
于是,仍参照图4,需考察证书24牵涉到的每个撤销列表30,以确定它上面是否有任何主体牵涉到该事务(步骤413)。如果有的话,就禁止可信组元18执行该事务(步骤415)。如果没有,允许进行该事务(步骤417)。当然,即使对所讨论的证书的特定撤销列表30允许该事务进行,还很可能遇到这种情形,对所讨论的证书或者对另一个证书24的另一个撤销列表30阻止该事务的进行。因此,只有考查了对所有的证书24的撤销列表30之后,所有被考查的撤销列表30都没禁止该事务,才允许该事务的进行。
结论
虽然本发明在个人计算机之类的计算装置14上特别有用,在任何适当的装置上,例如服务器、智能电器、联网的便携式装置等,也可实施本发明,都不会背离本发明的精神和范围。所以,装置14应解释为包括任何具有DRM系统10或者参与DRM架构的适当的装置。
为贯彻本发明相关过程所须的编程是简明的,对相关的编程人员是显而易见的。所以就不在此附带这类程序。可用任何特殊编程来贯彻本发明而不会背离其精神和范围。
由以上描述可见,本发明所包含的新的有用的系统和方法,让可信组元18、黑匣22或任何别的查询实体,在鉴定和验证各证书24过程中,可有效地获得并考察各撤销列表30。应该理解,可对上述实施例作各种变动并不背离其中的发明概念。例如,虽然主要是用播放内容12来描述DRM系统,应该理解DRM系统10也可用于对内容12作任何种类的访问。因此该理解到,本发明并不限于所披露的特定实施例,而是要包括在本发明的精神和范围内的、由权利要求书所定义的各种修改。