具有数字权利管理系统的计算设备中的安全视频卡的制作方法

文档序号:6583014阅读:226来源:国知局
专利名称:具有数字权利管理系统的计算设备中的安全视频卡的制作方法
技术领域
本发明涉及强化数字内容的权利的结构。更具体地说,本发明涉及允许根据数字内容的用户获得的许可权规定的参数,访问加密数字内容的强化结构。甚至更具体地说,本发明涉及保证人们可以信赖计算设备中诸如视频卡之类,接收未加密数字内容的器件。
背景技术
与诸如数字音频、数字视频、数字文本、数字数据、数字多媒体之类的数字内容联系在一起的数字权利管理和强化是人们迫切需要的,其中要把这样的数字内容分配给用户。典型的分配模式包括像(软)磁盘、磁带、(压缩)光盘(CD)等那样的有形器件、和像电子布告牌、电子网络、因特网等那样的无形媒体。一旦被用户接收到,这样的用户就可以借助于诸如个人计算机等上的媒体播放器之类的适当再现设备再现或‘播放’数字内容。
通常,内容拥有者或权利拥有者,譬如,作者、出版者、广播电台等(下文称为“内容拥有者”)希望把这样的数字内容分配给以许可使用费或其它一些报酬为代价的用户或接受者。如果可以选择的话,这样的内容拥有者更希望对用户如何处置这样的分配数字内容施加限制。例如,内容拥有者至少希望限制用户把这样的内容复制和再分配给第二个用户,以至让内容拥有者无法从第二个用户那里获得许可使用费。
另外,内容拥有者可能还希望让用户灵活地用不同的许可使用费购买不同种类的使用许可权,而同时让用户遵守他实际购买某种许可权时应该遵守的条款。例如,内容拥有者可能希望让分配数字内容只播放有限次数,只在某段总时间内播放,只在某种类型的机器上播放,只在某种类型的媒体播放器上播放,只由某种类型的用户播放等。
但是,一经分配,这样的内容拥有者对数字内容的控制往往就力不从心了。鉴于如下事实,即,每台新的或最近的个人计算机几乎都包含了生成这样数字内容的精确数字拷贝,和把这样的精确数字拷贝下载到可写磁盘或光盘,或者在诸如因特网之类的网络上把这样的精确数字拷贝发送到任何目的地的软件和硬件,这个问题尤为严重。
当然,作为获得许可使用费的合法交易的组成部分,内容拥有者可以要求数字内容的用户承诺不要再分配这样的数字内容。但是,这样的承诺既容易答应,也容易被践踏。内容拥有者可能试图通过通常涉及到加密和解密的几种已知保密设备的某一种来防止这样的再分配。但是,防止受适当限制的用户解密加密数字内容,以未加密形式保存这样的数字内容,然后再分配这样的数字内容几乎是办不到的。
因此,存在着提供一种让任何形式的数字内容受控再现(render)或播放的强化结构和方法的需要,其中,这样的控制是灵活的,并且可以由这样数字内容的内容拥有者规定的。此外,还存在着提供有关个人计算机之类的计算设备的受控再现环境的需要,其中,再现环境至少包括这样强化结构的一部分。尽管数字内容要在不在内容拥有者控制之下的计算设备上再现,这样的受控再现环境也能让数字内容只按照内容拥有者规定的方式再现。
并且,还存在着对在计算设备上运行的可信部件的需要,其中,这样的可信部件强化内容拥有者对这种与数字内容片段相联系的计算设备的权利,甚至阻止这样计算设备的用户以内容拥有者不允许的方式访问这样的数字内容的尝试。另外,还存在着对在计算设备上的安全视频卡的需求,以防止内容盗窃者偷窃驻留在视频卡上/以视频卡为目的地的内容。

发明内容
通过数字权利管理的强化结构和方法,至少部分满足了上述需要,其中,该结构和方法强化了可在因特网、光盘等之类的媒体上获得的受保护(保密)数字内容的权利。为了使内容可供人们使用,该结构包括可在因特网等上以加密形式从中访问数字内容的内容服务器。内容服务器也可以供应加密数字内容,以便把它记录在光盘等上,其中,在光盘本身上就可以分配这样的加密数字内容。在内容服务器上,利用加密密钥加密数字内容,和公开/秘密密钥用于把数字内容与用户计算设备或客户机上的数字许可证联系在一起。
当用户试图在计算设备上再现数字内容时,再现应用程序调用在这样的用户计算设备上的数字权利管理(DRM)系统。如果用户第一次尝试再现数字内容,那么,DRM系统把用户引向许可证服务器,以便以检索的方式获得再现这样的数字内容的许可证,或者,在用户方无需任何必要的动作,就可以从这样的许可证服务器透明地获得这样的许可证。该许可证包括解密加密数字内容的解密密钥(KD);许可证授予的权利(播放、复制等)的描述和相关条件(开始日期、截止日期、播放次数等),其中,这样的描述是以数字可读形式的;和保证许可证诚实性的数字签名。
在没有从许可证服务器获得许可证的情况下,用户应该不能够解密和再现加密数字内容。获得的许可证存储在用户计算设备中的许可证存储器中。
重要的是,许可证服务器只把许可证发给‘可信’的DRM系统(即,本身可以验证的)。为了成为‘可信’的,DRM系统配备了为这样的DRM系统执行解密和加密功能的‘黑箱’。黑箱包括公开/秘密密钥对、版本号和唯一签名,所有这些均由经核准的证明机构提供。为了加密所发许可证的各个部分,使公开密钥可供许可证服务器使用,从而把这样的许可证与这样的黑箱联系在一起。为了解密用相应公开密钥加密的信息,秘密密钥只供黑箱使用,而不能供用户或任何其它人使用。DRM系统最初配备了带有公开/秘密密钥对的黑箱,并且,当用户首次请求许可证时,提示用户从黑箱服务器下载更新保密黑箱。黑箱服务器提供更新黑箱,以及唯一的公开/秘密密钥对。这样的更新黑箱是以只在用户计算设备上运行的独特可执行代码写成的,并且定期得到更新。
当用户请求许可证时,客户机把黑箱公开密钥、版本号、和签名发送到许可证服务器,和只有当版本号是最近的和签名是有效的时,这样的许可证服务器才发出许可证。许可证请求还包括为它请求许可证的数字内容的标识和标识与所请求数字内容相联系的解密密钥的密钥ID。许可证服务器利用黑箱公开密钥来加密解密密钥,和利用解密密钥来加密许可证各项,然后,将加密解密密钥和加密许可证项与许可证签名一起下载到用户计算设备。
一旦下载的许可证已经存储在DRM系统许可证存储器中,用户就可以根据许可证授予的和在许可证项中规定的权利再现数字内容。当作出再现数字内容的请求时,让黑箱解密解密密钥和许可证项,并且,DRM系统许可证评估器评估这样的许可证项。只有当许可证评估得出允许请求者播放这样的内容的结论时,黑箱才解密加密的数字内容。把解密内容提供给再现应用程序进行再现。
在本发明中,计算设备包括允许权利受保护的数字内容只根据在相应数字许可证中规定的权利在计算设备上再现的数字权利管理系统。内容包括要在与计算设备连接的监视器上显示的视频内容。计算设备还包括接收内容和根据接收内容生成要发送到监视器的视频信号的视频部分。视频部分包括存储接收内容的视频存储器,和视频存储器被配置成除了涉及到视频部分之外,对于其它部分是只写的。视频部分还包括验证设备,用于向DRM系统证明视频存储器是否被配置成除了涉及到视频部分之外,对于其它部分是只写的。
这样就建立起了保密计算环境,这种保密计算环境可以以计算设备上的其它软件部分都不能读取如此写入的数据这样一种方式把视频数据再现到输出设备上。视频部分通过提供就可以访问这样的视频部分的应用程序或操作系统来说只写的视频缓冲区,支持保密输出,或者,视频部分可以与本机处理器或远程实体建立加密连接,以便有效地隐藏发送的和再现的数据。
必须使数据的生产者确信,发送到视频部分的数据是真正发送到视频部分的,而不是发送到伪装成视频部分的恶意软件那里的。这样的确信可以通过密码验证来实现。


当与附图结合在一起阅读时,可以更好地理解上面的概述,以及如下本发明实施例的详述。为了举例说明本发明,在附图中显示了当前优选的实施例。但是,应该明白,本发明不限于所示的确切配置和手段。在附图中图1是显示根据本发明一个实施例的强化结构的方块图;图2是根据本发明一个实施例的、图1所示的结构的创作工具的方块图;
图3是根据本发明一个实施例的、与图1所示的结构结合在一起使用的、含有数字内容的数字内容软件包的方块图;图4是根据本发明一个实施例的、图1所示用户计算设备的方块图;图5A和5B是显示根据本发明一个实施例,与图4所示的计算设备的数字权利管理(DRM)系统结合在一起再现内容所执行的步骤的流程图;图6是显示根据本发明一个实施例,与图4所示的DRM系统结合在一起确定任何有效的、允许的许可证是否存在所执行的步骤的流程图;图7是显示根据本发明一个实施例,与图4所示的DRM系统结合在一起获取许可证所执行的步骤的流程图;图8是根据本发明一个实施例的、与图1所示的结构结合在一起使用的数字许可证的方块图;图9是显示根据本发明一个实施例,与图4所示的DRM系统结合在一起获取新黑箱所执行的步骤的流程图;图10是显示根据本发明一个实施例,与图4所示的DRM系统结合在一起验证许可证和一段数字内容和再现内容所执行的密钥事务处理步骤的流程图;图11是显示根据本发明一个实施例的、与许可证的数字权利许可(DRL)和用于翻译DRL的语言引擎一起的、图4所示的许可证评估器的方块图;图12是代表可以把本发明的某些方面和/或它的某些部分包含在其中的通用计算机系统;和图13是显示根据本发明一个实施例的、在图1所示的计算设备上的视频卡和图4所示的DRM系统和再现应用程序的方块图。
具体实施例方式
参照附图细节,其中自始至终相同的标号用于表示相同的单元,图1所示的是根据本发明一个实施例的强化结构10。总的说来,强化结构10使数字内容12的拥有者能够规定在让这样的数字内容12在用户计算设备14上再现之前必须满足的许可规则。这样的许可规则具体体现在用户/用户计算设备14(在下文中,除了环境要求另当别论之外,这样的术语可相互替用)必须从内容拥有者或他们的代理商那里获得的数字许可证16中。数字内容12以加密形式分配,也可以自由广泛地分配。最好,解密数字内容12的解密密钥(KD)包含在许可证16中。
计算环境图12和如下的讨论意在提供本发明和/或本发明的某些部分可以得以实现的适当计算环境的概括性描述。尽管并非要求这样做,但是,下面将在由客户工作站或服务器那样的计算机执行的、像程序模块那样的计算机可执行指令的一般背景下,对本发明加以描述。一般来说,程序模块包括执行特定的任务或实现特定的抽象数据类型的例程、程序、目标代码、组成部件、数据结构等。此外,应该认识到,本发明和/或本发明的某些部分也可以用其它计算机系统配置来实施,这些计算机系统配置包括手提式设备、多处理器系统、基于微处理器的或可编程的家用电器、网络PC、小型计算机、大型计算机等。本发明也可以在各种任务由通过通信网络链接的远程处理设备完成的分布式计算环境下实施。在分布式计算环境下,程序模块可以位于本地和远程两者的存储器存储器件中。
如图12所示,示范性的通用计算系统包括传统个人计算机120等,个人计算机120包括处理单元121、系统存储器122、和将包括系统存储器在内的各种系统组件与处理单元121相耦合的系统总线123。系统总线123可以是几种总线结构的任何一种,这些总线结构包括利用各种各样总线结构格式的任何一种的存储器总线或存储器控制器、外围总线、和局域总线。系统存储器包括只读存储器(ROM)124和随机存取存储器(RAM)125。基本输入/输出系统(BIOS)126存储在ROM124中,它包含有助于,譬如在启动期间,在个人计算机120内部的各个单元之间传递信息的基本例程。
个人计算机120还可以包括从硬盘(未示出)读取和写入硬盘的硬盘驱动器127、从可移式磁盘129读取和写入可移式磁盘129的磁盘驱动器128、和从可移式光盘131读取和写入可移式光盘131的光盘驱动器130,例如,CD-ROM或其它光介质。硬盘驱动器127、磁盘驱动器128、和光盘驱动器130分别通过硬盘驱动器接口132、磁盘驱动器接口133、和光盘驱动器接口134与系统总线123相连接。驱动器和与它们相关的计算机可读介质为个人计算机20提供了计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。
尽管这里所述的示范性环境应用了硬盘、可移式磁盘129和可移式光盘131,但是,应该认识到,可以存储可由计算机访问的数据的其它类型计算机可读介质也可以用在示范性的操作环境中。这样的其它类型介质包括盒式磁带、闪速存储卡、数字视频盘、伯努利(Bernoulli)盒式磁盘、随机存取存储器(RAM)、只读存储器(ROM)等。
大量的程序模块可以存储在硬盘、磁盘129、光盘131、ROM124或RAM125中,包括操作系统135、一个或多个应用程序136、其它程序模块137和程序数据138。用户可以通过诸如键盘140和点击设备142之类的输入设备把命令和信息输入个人计算机120中。其它输入设备(未示出)还包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备往往通过与系统总线耦合的串行端口接口146与处理器121相连接,但是,也可以通过其它接口,譬如,并行端口、游戏端口、或通用串行总线(USB)相连接。监视器147或其它类型的显示设备也通过视频适配器148之类的接口与系统总线123相连接。除了监视器147之外,个人计算机通常还包括诸如扬声器和打印机之类的其它外围输出设备(未示出)。图12所示的示范性系统还包括主适配器155、小型计算机系统接口(SCSI)总线156、和与SCSI总线156相连接的外部存储器件162。
个人计算机120可以在利用与一个或多个远程计算机,譬如远程计算机149,的逻辑连接的分布式环境下运行。远程计算机149可以是另一个个人计算机、服务器、路由器、网络PC、对等设备、或其它公共网络节目,并且,尽管在图12中只显示了一个存储器存储器件150,但是,它通常包括与个人计算机120相关的如上所述的单元的许多个或全部。图12所描绘的逻辑连接包括局域网(LAN)151和广域网(WAN)152。在整个办公室、企业的计算机网络、内部网络和因特网中,这样的联网环境是司空见惯的。
当用在LAN联网环境中时,个人计算机120通过网络接口或适配器153与LAN151相连接。当用在WAN联网环境中时,个人计算机120通常包括用于在因特网之类的广域网152上建立通信的调制解调器154或其它装置。可以内置也可以外置的调制解调器154通过串行端口接口146与系统总线123相连接。在联网的环境中,基于个人计算机120或它的某些部分描写的程序模型可以存储在远程存储器存储器件中。应该认识到,所示的网络连接是示范性的,也可以利用其它手段在计算机之间建立通信链路。
结构再参照图1,在本发明的一个实施例中,结构10包括创作工具18、内容密钥数据库20、内容服务器22、许可证服务器24、和黑箱服务器26,以及上述的用户计算设备14。
结构-创作工具18创作工具18由内容拥有者用来把一段数字内容12打包成适合于与本发明的结构10联系在一起使用的形式。具体地说,内容拥有者把数字内容12、伴随着数字内容12的指令和/或规则、和有关如何打包数字内容12的指令和/或规则提供给创作工具18。然后,创作工具18生成含有根据加密/解密密钥加密的数字内容12、和伴随着数字内容12的指令和/或规则的数字内容数据包12p。
在本发明的一个实施例中,向创作工具18发出指令,让它以串行的方式生成几种不同的数字内容12数据包12p,每一个含有根据不同加密/解密密钥加密的相同数字内容12。应该明白,拥有相同数字内容12的几种不同数据包12p也许对跟踪这样数据包12p/内容12(在下文中,除了环境要求另当别论之外,简单地称为“数字内容12”)的分配有用。这样的分配跟踪通常没有必要,但是,在数字内容12已经被非法销售或广播的情况下,可以供调查机构使用。
在本发明的一个实施例中,加密数字内容12的加密/解密密钥是对称密钥,这是因为加密密钥也是解密密钥(KD)。对于这样的数字内容12,这样的解密解密(KD)作为许可证16的组成部分,以隐藏的形式传送到用户计算设备14,以后再对此作更详细讨论。最好,每段数字内容12都配备一个内容ID(或每个数据包12p都配备一个数据包ID),每个解密密钥(KD)含有一个密钥ID,和创作工具18让每段数字内容12(每个数据包12p)的解密密钥(KD)、密钥ID和内容ID(或数据包ID)存储在内容密钥数据库20中。另外,与要为数字内容12发放的许可证16的类型有关的许可证数据和有关每种类型许可证16的条款和条件可以存储在内容密钥数据库20中,也可以存储在其它数据库(未示出)中。最好,许可证数据可由内容拥有者在以后按照环境和市场条件所要求的那样加以修改。
在使用过程中,除了其它信息之外,把包括下列各项的信息供应给创作工具18要打包的数字内容12;如果有的话,要使用的水印和/或指纹的类型和参数;
如果有的话,要使用的数据压缩的类型和参数;要使用的加密的类型和参数;如果有的话,要使用的串行化的类型和参数;和伴随着数字内容12的指令和/或规则。
众所周知,水印是加入数字内容12中作为标识符的隐藏、计算机可读信号。指纹是对于每个样本都是不同的水印。应该明白,一个样本是数字内容12的唯一版本。任何样本都可以拷贝许多次,任何一个拷贝都是一个具体的样本。当数字内容12的特定样本被非法销售或广播时,调查机构根据加入这样数字内容12中的水印/指纹也许能够识别出嫌疑犯。
数据压缩可以根据不偏离本发明精神和范围的任何适当压缩算法进行。例如,可以应用.mp3或.wav压缩算法。当然,数字内容12可以已经处在压缩状态下,在这种情况下,就无需再加以压缩了。
实际上,伴随数字内容12的指令和/或规则可以包括不偏离本发明精神和范围的任何适当的指令、规则、或其它信息。这样的伴随指令/规则/信息主要由用户和用户计算设备14用来获取再现数字内容12的许可证16,以后再对此加以讨论。于是,这样的伴随指令/规则/信息可以包括适当格式化的许可证获取脚本等,以后再对此作更详细讨论。另外,或者,可替换地,这样的伴随指令/规则/信息可以包括为用户预览数字内容12而设计的‘预览’信息。
借助于所供应的信息,创作工具18接着生成与数字内容12相对应的一个或多个数据包12p。然后,把每个数据包12p存储在内容服务器22中,供向所有人分配之用。
现在参照图2,在本发明的一个实施例中,创作工具18是接收可以对其加以规定和进行操作的输入参数的动态创作工具18。于是,这样的创作工具18可以迅速地为多段数字内容12生成数据包12p的多种变型。最好,如图所示,输入参数以词典28的形式体现出来,其中,词典28包括如下参数含有数字内容12的输入文件29a的名称;要发生的编码的类型;要使用的加密/解密密钥(KD);要与数字内容12一起打包在数据包12p中的伴随指令/规则/信息(‘首标信息’);要发送的多路复用的类型;和要写入基于数字内容12的数据包12p的输出文件29b的名称。
应该明白,这样的词典28可由创作工具18的操作者(人或机器)容易迅速地加以修改,因此,由创作工具18进行的创作的类型同样可以以动态的方式容易迅速地加以修改。在本发明的一个实施例中,创作工具18包括可为操作人员显示在计算机屏幕上的操作者界面(未示出)。于是,这样的操作者可以通过这个界面修改词典28,并且,在通过这个界面修改词典28的过程中,适当地帮助和/或限制这样的操作者。
从如图2可以看出,在创作工具18中,源过滤器18a从词典28接收含有数字内容12的输入文件29a的名称,从这样的输入文件中检索这样的数字内容12,并且把数字内容12放入像RAM等那样的存储器29c中。然后,编码过滤器18b对存储器29c中的数字内容12进行编码,根据词典28中规定的编码类型,把文件从输入格式转换成输出格式(即,.wav到.asp,.mp3到.asp等),并且把编码数字内容12放入存储器29c中。如图所示,以诸如.wav或.mp3格式之类的压缩格式接收要打包的数字内容12(例如,音乐),将其转换成诸如.asp(活动流协议)格式之类的格式。当然,应用其它输入和输出格式也不偏离本发明的精神和范围。
此后,加密过滤器18c根据在词典28中规定的加密/解密密钥(KD),加密存储器29c中的编码数字内容12,并且把加密数字内容12放入存储器29c中。然后,首标过滤器18d把在词典28中规定的首标信息加入存储器29c中的加密数字内容12中。
应该明白,随情况而定,数据包12p可以包括按时间排列的数字内容12的多种流(图2显示了一种流),其中,这样的多种流是多路复用的。于是,多路复用过滤器18e根据在词典28中规定的多路复用的类型,对存储器29c中的首标信息和加密数字内容12进行多路复用,并且,把结果放入存储器29c中。然后,文件写过滤器18f从存储器29c中检索这个结果,并且把这样的结果写入在词典28中规定的输出文件29b中,作为数据包12p。
应该注意到,在某些环境下,要进行的编码的类型通常是不改变的。由于多路复用的类型通常是基于编码的类型的,因此,同样会出现多路复用的类型通常也不改变的情况。如果正好是这种情况,那么,词典28不需要有关编码的类型和/或多路复用的类型的参数。而唯一必要的是,把编码的类型‘硬连接(hardwired)’到编码过滤器中和/或把多路复用的类型‘硬连接’到多路复用过滤器中。当然,如环境需要,创作工具18可以不包括所有上述过滤器,或者可以包括其它过滤器,和所有包括的过滤器可以是硬连接的,或者可以根据在词典28中规定的参数执行它的功能,所有这些均不偏离本发明的精神和范围。
最好,创作工具18通过适当的软件在适当的计算机、处理器、或其它计算机器上实现。根据这里所公开的内容,这样机器和这样软件的结构和操作应当是显而易见的,因此,在本公开中无需作任何详细的讨论。
结构-内容服备器22再参照图1,在本发明的一个实施例中,内容服务器22分配创作工具18生成的数据包12p,否则的话,使创作工具18生成的数据包12p变成适合于检索的。这样的数据包12p可以通过不偏离本发明精神和范围的任何适当信道,按照内容服务器22所请求的那样分配。例如,这样的分配信道可以是因特网或其它网络、电子布告牌、电子邮件等。另外,可以应用内容服务器22把数据包12p拷贝到磁或光盘,或其它存储器件上,然后,就可以分发这样的存储器件。
应该认识到,内容服务器22分配数据包12p不涉及到任何信赖或保密问题。正如下面所讨论的那样,处理这样的问题涉及到许可证服务器24和这样的许可证存储器24与用户计算设备14之间的关系。在本发明的一个实施例中,内容服务器22把含有数字内容12的数据包12p自由地发放和分配给请求它的任何被分配者。但是,内容服务器22也可以以不偏离本发明精神和范围的受限制方式发放和分配这样的数据包12p。例如,内容服务器22在分配之前,可以首先要求支付预定分配费用,或者,可以要求被分配者声明自己的身份,或者,可以真正地确定是否根据被分配者的身份进行分配的。
另外,可以通过控制创作工具18,让内容服务器22用于进行目录管理,事先生成大量不同的数据包12p来满足预期要求。例如,服务器可以根据同一数字内容12生成100个数据包12p,并且分发每个数据包12p 10次。当数据包12p的供应量减少到,例如,20时,内容服务器22可以接着指令创作工具18再次生成,例如,80个另外的数据包12p。
最好,在结构10中的内容服务器22含有作为评估许可证16和获得解密相应数字内容12的解密密钥(KD)的处理过程的组成部分应用的唯一公开/秘密密钥对(PU-CS,PR-CS),下面将对此作更详细说明。众所周知,公开/秘密密钥对是非对称密钥,这是因为用密钥对中密钥之一加密的东西只能用密钥对中另一个密钥解密。在公开/秘密密钥对加密系统中,可以让所有人都知道公开密钥,但是秘密密钥应当只能让这样秘密密钥的拥有者秘密地保管。于是,如果内容服务器22用它的秘密密钥(PR-CS)加密数据,那么,为了解密的目的,它可以将加密数据与它的公开密钥(PU-CS)一起发送给的所有人。相应地,如果外部设备想要把数据发送到内容服务器22,以便只有这样的内容服务器22可以解密这样的数据,那么,这样的外部设备必须首先获得内容服务器22的公开密钥(PU-CS),然后,必须用这样的公开密钥加密数据。于是,内容服务器22(和只有内容服务器22)接着可以用它的秘密密钥(PR-CS)解密这样的加密数据。
与创作工具18一样,内容服务器22通过适当的软件,在适当的计算机、管理器或其它计算机器上实现。根据这里所公开的内容,这样机器和这样软件的结构和操作应当是显而易见的,因此,在本公开中无需作任何详细的讨论。此外,在本发明的一个实施例中,创作工具18和内容服务器22可以驻留在单个计算机、处理器、或其它计算机器上,每一个处在独立的工作空间中。此外,还应该认识到,在某些环境下,内容服务器22可以包括创作工具18和/或执行如上所讨论的、创作工具18的各种功能。
数字内容数据包12p的结构现在参照图3,在本发明的一个实施例中,如内容服务器22所分配的数字内容数据包12p包括如上面所讨论的、用加密/解密密钥(KD)加密的数字内容12(即,(KD(CONTENT)));这样数字内容12(或数据包12p)的内容ID(或数据包ID);解密密钥(KD)的密钥ID;最好以未加密形式的许可证获取信息;和通过内容服务器22的秘密密钥(PR-CS)签名的、加密内容服务器22的公开密钥(PU-CS)的密钥KD(即,(KD(PU-CS)S(PR-CS)))。
就(KD(PU-CS)S(PR-CS))来说,应该明白,这样的项目要与验证数字内容12和/或数据包12p联系在一起使用,下面将对此加以说明。与带有签名的证明书不同(见下面),密钥(PU-CS)对了解KD(PU-CS)是没有用的。而是,仅仅通过应用解密密钥(KD)获得(PU-CS)。一旦如此获得,就可以将这样的密钥(PU-CS)用于测试签名(S(PR-CS))的有效性。
还应该明白,对于这样由创作工具18构造的的数据包12p,这样的创作工具18必须已经拥有许可证获取信息和(KD(PU-CS)S(PR-CS)),推想起来,也许像词典28供应的首标信息那样。此外,推想起来,创作工具18和内容服务器22必须相互作用,以构造(KD(PU-CS)S(PR-CS))。这样的相互作用可以包括,例如,下列步骤内容服务器22把(PU-CS)发送到创作工具18;创作工具18利用(KD)加密(PU-CS),生成(KD(PU-CS));创作工具18把(KD(PU-CS))发送到内容服务器22;内容服务器22用(PR-CS)签名(KD(PU-CS)),生成(KD(PU-CS)S(PR-CS));和内容服务器22把(KD(PU-CS)S(PR-CS))发送到创作工具18。
结构-许可证服备器24再次参照图1,在本发明的一个实施例中,许可证服务器24执行如下功能从用户计算设备14接收与一段数字内容12联系在一起的许可证16的请求,确定是否可以信赖用户计算设备16已经荣幸地获得了发放的许可证16,协商这样的许可证16,制作这样的许可证16,和把这样的许可证16发送给用户计算设备14。最好,这样发送的许可证16包括解密数字内容12用的解密密钥(KD)。以后再更详细地说明这样的许可证服务器24和这样的功能。最好,像内容服务器22那样,结构10中的许可证服务器24含有作为评估许可证16和获得解密相应数字内容12用的解密密钥(KD)的处理的组成部分应用的唯一公开/秘密密钥对(PU-LS,PR-LS),下面将对此作更详细说明。
与创作工具18和内容服务器22一样,许可证服务器22通过适当的软件,在适当的计算机、管理器或其它计算机器上实现。根据这里所公开的内容,这样机器和这样软件的结构和操作应当是显而易见的,因此,在本公开中无需作任何详细的讨论。此外,在本发明的一个实施例中,创作工具18和/或内容服务器22可以与许可证服务器24一起,驻留在单个计算机、处理器、或其它计算机器上,每一个处在独立的工作空间中。
在本发明的一个实施例中,在发放许可证16之前,许可证服务器24和内容服务器22达成代理协议等,其中,至少对于内容服务器22分配的数字内容12的一部分来说,许可证服务器24在效力上等同于许可证发放机构。应该明白,一个内容服务器22可以与数个许可证服务器24达成代理协议等,和/或一个许可证服务器24可以与数个内容服务器22达成代理协议等,所有这些都不偏离本发明的精神和范围。
最好是,许可证服务器24可以向所有人显示它事实上的确拥有为内容服务器22分配的数字内容12发放许可证16的权力。为此,最好,许可证服务器24把它的公开密钥(PU-CS)发送给内容服务器22,然后,内容服务器22把包含(PU-LS)的数字证明书作为由内容服务器22的秘密密钥签名的内容(CERT(PU-LS)S(PR-CS))发送给许可证服务器24。应该明白,在这样的证明书中的内容(PU-CS)只能利用内容服务器22的公开密钥(PU-CS)来访问。还应该明白,一般来说,基础数据的数字签名是这样数据的加密形式,并且,如果这样的数据已经被伪造了,或否则已经被修改了,那么,当解密时,将与这样的数据不匹配。
作为与一段数字内容12联系在一起的许可证发放机构,和作为许可证发放功能的组成部分,许可证服务器24必须能够访问这样数字内容12的解密密钥(KD)。于是,最好,许可证服务器24能够访问含有这样数字内容12(或数据包12p)的解密密钥(KD)、密钥ID、和内容ID(或数据包ID)的内容密钥数据库20。
结构-黑箱服备器26仍然参照图1,在本发明的一个实施例中,黑箱服务器26执行安装和/或升级用户计算设备14中的新黑箱30的功能。黑箱30为用户计算设备14执行加密和解密功能,以后再对此作更详细讨论。黑箱的目的是起保密作用和免遭攻击,以后也对此作更详细讨论。通过黑箱服务器26把黑箱30升级成所需的新版本,至少部分地提供了这样的安全性和保护性,以后再对此作更详细讨论。
与创作工具18、内容服务器22、和许可证服务器22一样,黑箱服务器26通过适当的软件,在适当的计算机、管理器或其它计算机器上实现。根据这里所公开的内容,这样机器和这样软件的结构和操作应当是显而易见的,因此,在本公开中无需作任何详细的讨论。此外,在本发明的一个实施例中,许可证服务器24、创作工具18和/或内容服务器22可以与黑箱服务器26一起,驻留在单个计算机、处理器、或其它计算机器上,每一个处在独立的工作空间中。然而,请注意,为了安全起见,把黑箱服务器26安装在独立的机器上是明智的。
结构-用户计算设备14现在参照图4,在本发明的一个实施例中,用户计算设备14是个人计算机等,含有包括键盘、鼠标、屏幕、处理器、RAM、ROM、硬盘、软驱、CD播放器等的各种单元。但是,除了这些之外,用户计算设备14还可以是像电视机或监视器那样的专用视频设备、像立体声或其它音乐播放器那样的专用音频设备、专用打印机等,所有这些均不偏离本发明的精神和范围。
一段数字内容12的内容拥有者必须信赖用户计算设备14会遵守这样内容拥有者规定的规则,即,如果用户没有获得允许以检索方式再现的许可证16,那么,就不让再现数字内容12。最好,然后,用户计算设备14向内容拥有者提供满足如下条件的可信部件或机构32,这个条件就是,除非遵守体现在用户获得的和与数字内容12相联系的许可证16中的许可规则,这样的计算设备14不能再现数字内容12。
这里,可信部件31是数字权利管理(DRM)系统32,当用户请求再现一段数字内容12时,启动这样的DRM系统32,它确定用户是否拥有以检索方式再现数字内容12的许可证16,如有必要,获取这样的许可证16,根据许可证16确定用户是否拥有播放数字内容12的权利,和如果根据这样的许可证16,用户实际上已经拥有这样的权利,那么,为了再现的目的,解密数字内容12。下面描述在用户计算设备14上的和与结构10联系在一起的DRM系统32的内容和功能。
DRM系统32DRM系统32与这里所公开的结构10一起执行四种主要功能(1)内容获取、(2)许可证获取、(3)内容再现、和(4)黑箱30安装/更新。尽管公认一些功能需要获取数字内容12,但是,最好在任何时候都可以执行任何一种功能。
DRM系统32-内容获取用户和/或用户计算设备14获取数字内容12通常是一件相对直截了当的事情,一般涉及到把含有加密数字内容12的文件放置在用户计算设备14上。当然,为了利用这里公开的结构10和DRM系统32,有必要使加密数字内容12处在适合于这样的结构10和DRM系统32的形式之下,譬如,如下所述的数字数据包12p。
应该明白,可以以任何方式从内容服务器22获取数字内容12,直接地或间接地,这都不偏离本发明的精神和范围。例如,可以从因特网之类的网络上下载这样的数字内容12,在获取的光盘或磁盘等上找到它,作为电子邮件消息等的一部分来接收它,或者从电子布告牌等中下载它。
一旦获得这样的数字内容12,就以使获得的数字内容12可由在计算设备14上运行的再现应用程序(如下所述)、和可由DRM系统32访问的方式存储数字内容12。例如,可以把数字内容12作为文件放置在用户计算设备14的硬盘(未示出)上,或者,放置在计算设备14可访问的网络服务器(未示出)上。在在光盘或磁盘等上获得数字内容12的情况下,也许,唯一必要的是把这样的盘放入与用户计算设备14耦合的适当驱动器(未示出)中。
在本发明中,可以预想,没有什么特别工具是从作为直接分配源的内容服务器22中或从作为间接分配源的一些中间体中获取数字内容12所必需的。也就是说,最好,获取数字内容12与获取其它任何数据文件一样容易。但是,DRM系统32和/或再现应用程序34可以包括为帮助用户获取数字内容12而设计的接口(未示出)。例如,接口可以包括为搜索数字内容12而特别设计的万维网浏览器、到已知作为数字内容12的源的预定因特网网站的链路等。
DRM系统32-内容再现,第1部分现在参照图5A,在本发明的一个实施例中,假设已经把加密数字内容12分配给用户,用户已经接收到加密数字内容12,并且,由用户把加密数字内容12以存储文件的形式放置在计算设备14上,通过执行再现命令的一些变体,用户尝试再现数字内容12(步骤501)。例如,这样的再现命令可以具体化成‘播放’或‘打开’数字内容12的请求。在一些计算环境下,例如,在微软公司(MICROSOFT Corporation,Redmond,washington)开发的“视窗”操作系统下,这样的播放或打开命令简化成‘点击’代表数字内容12的图标。当然,也可以应用这样再现命令的其它实施例,这不偏离本发明的精神和范围。一般来说,可以认为,每当用户命令打开、运行、执行等含有数字内容12的文件时,就执行这样的再现命令。
另外,重要的是,这样的再现命令可以具体化成把数字内容12拷贝成另一种形式,譬如,打印形式、视频形式、音频形式等的请求。应该明白,同一数字内容12可以先以一种形式再现,譬如,在计算机屏幕上,然后再以另一种形式再现,譬如,作为打印文件。在本发明中,只有当用户拥有这样做的权利时,才进行每种类型的再现,下面将说明这种情况。
在本发明的一个实施例中,数字内容12以含有以扩展名结束的文件名的数字文件的形式,和计算设备14可以根据这样的扩展名确定是否启动特定类型的再现应用程序34。例如,如果文件扩展名指示数字内容12是文本文件,那么,再现应用程序34就是由微软公司开发的、诸如“MICROSOFT WORD”之类的、某种类型的字处理器。类似地,如果文件扩展名指示数字内容12是音频、视频、和/或多媒体文件,再现应用程序34就是也由微软公司开发的、诸如“MICROSOFT MEDIA PLAYER”之类的、某种类型的多媒体播放器。
当然,也可以应用不偏离本发明精神和范围的其它确定再现应用程序的方法。仅举一例来说明,数字内容12可以包含未加密形式的元数据(即,上述首标信息),其中,元数据包括有关再现这样数字内容12所需的再现应用程序34的类型的信息。
最好,这样的再现应用程序34检查与文件名相联系的数字内容12,并且确定这样的数字内容12是否以权利保护形式加密(步骤503,505)。如果没有保护,那么,可以立即再现数字内容12(步骤507)。如果有保护,那么,再现应用程序34从加密数字内容12中确定DRM系统32是否是播放这样的数字内容12所需的。于是,这样再现应用程序34命令用户计算设备14在其上运行DRM系统32(步骤509)。然后,这样的再现应用程序34调用这样的DRM系统32,以解密数字内容12(步骤511)。事实上,只有当用户拥有这样数字内容12的有效许可证16和根据有效许可证16中的许可规则播放数字内容12的权利时,DRM系统32才解密数字内容12,以后再对此作更详细讨论。最好,一旦DRM系统32已经被再现应用程序34调用,这样的DRM系统32就从再现应用程序34那里接管控制,至少为了确定用户是否拥有播放这样数字内容12的权利的目的(步骤513)。
DRM系统32部件再次参照图4,在本发明的一个实施例中,DRM系统32包括许可证评估器36、黑箱30、许可证存储器件38、和状态存储器件40。
DRM系统32部件-许可证评估器36除了别的之外,许可证评估器36定位与所请求数字内容12相对应的一个或多个许可证16,确定这样的许可证是否有效,检查在这样有效许可证16中的许可证规则,和根据检查的许可证规则,确定正在请求的用户是否拥有以检索方式再现所请求数字内容12的权利。应该明白,许可证评估器36是DRM系统32中的可信部分。在本公开中,‘可信’指的是许可证服务器24(或任何其它信任单元)相信可信单元将根据许可证16中的权利描述实现数字内容12的拥有者的愿望,和用户不能为了任何目的,无论是恶意的还是其它的,轻易更改这样的可信单元。
许可证评估器36必须是可信的,以便保证这样的许可证评估器36实际上将适当地评估许可证16,和保证用户不会为了绕过对许可证16的真正评估而伪造,要不然修改这样的许可证评估器36。于是,许可证评估器36以受保护或屏蔽的环境下运行,以便拒绝用户访问这样的许可证评估器36。对于许可证评估器36,当然也可以采取不偏离本发明的精神和范围的其它保护措施。
DRM系统32部件-黑箱30正如上面所讨论的,在DRM系统32中,黑箱30主要执行加密和解密功能。具体地说,作为许可证评估功能的一部分,黑箱30与许可证评估器36一起工作,解密和加密某些信息。另外,一旦许可证评估器36确定用户事实上的确拥有以检索方式再现所请求数字内容12的权利,就把这样数字内容12的解密密钥(KD)提供给黑箱30,黑箱30根据这样的解密密钥(KD),执行解密这样数字内容12的功能。
黑箱30也是DRM系统32中的可信部件。具体地说,许可证服务器24必须信任黑箱30将只根据许可证16中的许可规则执行解密功能,并且还信任这样的黑箱30,万一被用户出于绕过对许可证16的真正评估的恶意目的而伪造或修改,就不进行操作。于是,黑箱30也在受保护或屏蔽的环境下运行,以后拒绝用户访问这样的黑箱30。并且,对于黑箱30,还可以采取不偏离本发明精神和范围的其它保护措施。最好,像内容服务器22和许可证服务器24那样,DRM系统32中的黑箱30含有作为评估许可证16和获取解密数字内容12用的解密密钥(KD)的处理的组成部分应用的唯一公开/秘密密钥对(PU-BB,PR-BB),以后再对此作更详细讨论。
DRM系统32部件-许可证存储器件38许可证存储器件38为相应数字内容12存储DRM系统32接收的许可证16。许可证存储器件38本身不需要是可信的,因为许可证存储器件38只存储许可证16而已,它们的每一个已经拥有在其中建立起来的可信部件,下面将对此加以讨论。在本发明的一个实施例中,许可证存储器件38只不过是诸如硬盘驱动器或网络驱动器之类的驱动器的子目录。但是,许可证存储器件38也可以以不偏离本发明精神和范围的任何其它形式具体实现,只要这样的许可证存储器件38执行把许可证16存储在对DRM系统32来说相对方便的位置中的功能即可。
DRM系统32部件-状态存储器件40状态存储器件40执行保存与当前或以前在许可证存储器件38中的许可证16相对应的状态信息的功能。在必要的时候,这样的状态信息由DRM系统32创建,并且存储在状态存储器件40中。例如,如果特定的许可证16只允许再现一段相应的数字内容12预定次数,那么,状态存储器件40就保存对于这样的许可证16,实际上已经再现了多少次的信息。状态存储器件40继续保存不再在许可证存储器件38中的许可证16的状态信息,以避免要不然有利于从许可证存储器件38中删除许可证16,并且试图从状态存储器件40中删除相应的状态信息而获取相同许可证16的情况。
状态存储器件40还必须是可信的,以便存储在其中的信息不被重新设置成更有利于用户的状态。于是,状态存储器件40同样在受保护或屏蔽的环境下运行,以便拒绝用户访问这样的状态存储器件40。况且,对于状态存储器件40,也可以采取不偏离本发明精神和范围的其它保护措施。例如,状态存储器件40可以由计算设备14上的DRM系统32以加密方式来存储。
DRM系统32-内容再现,第2部分再次参照图5A,再次讨论本发明一个实施例中的内容再现,一旦DRM系统22已经从正在调用的再现应用程序34那里接管了控制,这样的DRM系统32接着开始确定用户是否拥有以检索方式再现数字内容12的权利的处理。具体地说,DRM系统32在许可证存储器件中定位有效的、授权许可证16(步骤515,517),或者尝试从许可证服务器24中获取有效的、授权许可证16(即,执行如下所讨论的和如图7所示的许可证获取功能)。
现在参照图6,作为第一步骤,这样DRM系统32的许可证评估器36检验许可证存储器件38中是否存在一个或多个与数字内容12相对应的接收许可证16(步骤601)。尽管认为许可证16也可以采取不偏离本发明精神和范围的其它形式,但是,通常,许可证16是数字文件的形式,下面将对此加以讨论。尽管同样认为可以接收不偏离本发明精神和范围的含有相应许可证16的数字内容12,但是,通常,用户接收不含这样许可证16的数字内容12。
正如上面结合图3所讨论的,每段数字内容12处在带有标识这样数字内容12(或数据包12p)的内容ID(数据包ID)、和标识解密加密的数字内容12的解密密钥(KD)的密钥ID的数据包12p。最好,内容ID(或数据包工D)和密钥ID是非加密形式。于是,具体地说,根据数字内容12的内容ID,许可证评估器36在许可证存储器件38中查找包含对这样内容ID的适用性的标识符的任何许可证16。请注意,可以找到多个这样的许可证16,尤其在数字内容12的拥有者已经规定了这样数字内容12的几种不同类型的许可证16,和用户已经获得了多个这样的许可证16的时候。如果许可证评估器36事实上在许可证存储器件38中没有找到与所请求数字内容12相对应的任何许可证16,那么,DRM系统32可以执行如下所述的许可证获取的功能(图5中的步骤519)。
现在假设已经请求DRM系统32再现一段数字内容12,和在许可证存储器件38中存在一个或多个与之对应的许可证16。在本发明的一个实施例中,然后,DRM系统32的许可证评估器36着手对每个这样的许可证16确定这样的许可证16是否是有效的(图6中的步骤603和605)。尤其是,每个许可证16最好包括基于许可证16的内容28的数字签名26。应该明白,如果内容28已经被伪造了,或已经被修改了,那么,数字签名26将不与许可证16相匹配。因此,许可证评估器36可以根据数字签名26,确定内容28是否处在从许可证服务器24接收的形式下(即,是有效的)。如果在许可证存储器件38中没有找到有效许可证16,DRM系统32可以执行如下所述的许可证获取功能,以获得这样的有效许可证16。
假设找到了一个或多个有效许可证16,对于每个有效许可证16,DRM系统32的许可证评估器36接着确定这样的有效许可证16是否给予用户以所需方式再现相应数字内容12的权利(即,是否授权了)(步骤607和609)。具体地说,许可证评估器36根据每个许可证16中的权利描述和根据用户试图对数字内容12做些什么,确定正在请求的用户是否拥有播放所请求数字内容12的权利。例如,这样的权利描述可以让用户把数字内容12变成声音,但是不能变成解密的数字拷贝。
应该明白,在每个许可证16中的权利描述根据几个因素的任何一个,包括用户是谁、用户处在什么地方、用户正在使用什么类型的计算设备14、什么样的再现应用程序34正在调用DRM系统32、日期、时间等,规定用户是否拥有播放数字内容12的权利。另外,权利描述还可以用,例如,预定播放次数、或预定播放时间等来限制许可证16。在这样的情况下,DRM系统32必须参照有关许可证16的任何状态信息(即,数字内容12已经再现了多少次、数字内容12已经再现了多长时间等),其中,这样的状态信息存储在用户计算设备14上的DRM系统32的状态存储器件40中。
于是,DRM系统32的许可证评估器36审查每个有效许可证16的权利描述,以确定这样的有效许可证16是否把检索的权利授予用户。这样做时,许可证评估器36也许不得不参照位于用户计算设备14上的其它数据,以进行用户是否拥有检索权利的确定。从图4可以看出,这样的数据可以包括用户计算设备(机器)14和它的特定方面的标识符42、用户和他的特定方面的标识符44、再现应用程序34和它的特定方面的标识符、系统时钟46等。如果没有找到把以检索方式再现数字内容12的权利提供给用户的有效许可证16,那么,如果这样的许可证16事实上可以获得的话,DRM系统32就可以执行如下所述的许可证获取功能,以获得这样的许可证16。
当然,在某些情况下,由于这样数字内容12的内容拥有者实际上已经命令不授予这样的权利,因此,用户不能获得以所请求方式再现数字内容12的权利。例如,这样数字内容12的内容拥有者可能已经命令不授权任何许可证16,让用户打印文本文件,或把多媒体播放复制成未解密形式。在本发明的一个实施例中,数字内容12包括当购买了许可证16时可得到什么权利的数据、和可用许可证16的类型。但是,应该认识到,一段数字内容12的内容拥有者可以在任何时候通过改变适合于这样数字内容12的许可证16,来改变当前适合于这样数字内容的12的权利。
DRM系统32-许可证获取现在参照图7,如果事实上许可证评估器36在许可证存储器件38中没有找到任何一个与所请求数字内容12相对应的有效、授权许可证16,那么,DRM系统32就执行许可证获取功能。如图3所示,每段数字内容12都被打包成含有与如何获得再现这样数字内容12的许可证16有关的、采取未加密形式的信息(即,许可证获取信息)。
在本发明的一个实施例中,这样的许可证获取信息可以包括(除了别的之外)可用许可证16的类型、和一个或多个适当许可证服务器24可以访问的一个或多个因特网网站或其它网站信息,其中,每个这样的许可证服务器24事实上都能够发放与数字内容12相对应的许可证16。当然,也可以采用不偏离本发明精神和范围的其它方式获得许可证16。例如,可以在电子布告牌上、甚至可以以磁盘或光盘等上的文件的形式人为地或通过常规邮件,从许可证服务器24获得许可证16。
假设获得许可证16的位置事实上是网络上的许可证服务器24,那么,许可证评估器36根据网站或其它网络信息建立与这样许可证服务器24的网络连接,然后,从这样连接的许可证服务器24发送有关许可证16的请求(步骤701,703)。具体地说,一旦DRM系统32已经与许可证服务器24取得联系,这样的DRM系统32就把适当的许可证请求信息36发送到这样的许可证服务器24。在本发明的一个实施例中,除了别的之外,这样的许可证16的请求信息36可以包括DRM系统32的黑箱30的公开密钥(PU-BB);DRM系统32的黑箱30的版本号;来自证明黑箱30的证明机构的、带有数字签名的证明书(其中,证明书事实上可以包括上述公开密钥和黑箱30的版本号);标识数字内容12(或数据包12p)的内容ID(或数据包ID);标识解密数字内容12用的解密密钥(KD)的密钥ID;请求再现数字内容12的再现应用程序类型;所请求的许可证16的类型(如果实际上有许多种类型适用的话);等等。
当然,数量更多一些或更少一些的许可证16的请求信息36都可以由DRM系统32发送到许可证服务器24,这都不偏离本发明的精神和范围。例如,有关再现应用程序34的类型的信息可能是没有必要的,而有关用户和/或用户计算设备14的附加信息可能是必要的。
一旦许可证服务器24已经从DRM系统32接收到许可证16的请求信息36,许可证服务器24就可以接着进行有关信任/验证和其它目的的几种检验。在本发明的一个实施例中,这样的许可证服务器24用证明机构的数字签名检验证明书,以确定这样的证明书是否已经被伪造了,或已经被修改了(步骤705,707)。如果确是这样的话,许可证服务器24根据请求信息36,拒绝授予任何许可证16。许可证服务器24也可以保存已知‘坏’用户和/或用户计算设备14的列表,和可以根据来自列表上任何这样坏用户和/或坏用户计算设备14的请求,拒绝授予任何许可证16。可以以不偏离本发明精神和范围的任何适当方式汇编这样的‘坏’列表。
根据接收的请求和与之相关的信息,尤其根据许可证请求信息中的内容ID(或数据包ID),许可证服务器24可以查询内容密钥数据库20(图1),并且定位与作为请求要素(basis)的数字内容12(或数据包12p)相对应的记录。如上面所讨论的,这样的记录包含这样数字内容12的解密密钥(KD)、密钥ID、和内容ID。另外,这样的记录还包含与要为数字内容12发放的许可证16的类型和每个类型许可证16的条款和条件有关的许可证数据。或者,这样的记录可以包括到含有这样附加信息的位置的指针、链路、或参考点。
如上所述,可能有多种类型的许可证16可供使用。例如,对于相对少的许可使用费,可以获得允许再现有限次数的许可证16。对于相对多的许可使用费,可以获得允许在截止日期之前无限再现的许可证16。对于再多一点的许可使用费,可以获得允许无任何截止日期地无限再现的许可证16。实际上,许可证服务器24可以设计和发放含有任何种类许可条款的任何类型许可证16,这不偏离本发明的精神和范围。
在本发明的一个实施例中,对许可证16的请求是借助于从许可证服务器24发送到用户计算设备14的网页等完成的。对于作为许可证16的请求要素的数字内容12,这样的网页最好包括与可从许可证服务器24获得的所有类型许可证16有关的信息。
在本发明的一个实施例中,在发放许可证16之前,许可证服务器24检验黑箱30的版本号,以确定这样的黑箱30相对来说是否是最近的(步骤709,711)。应该明白,黑箱30的目的是起保密作用和免遭用户不怀好意的攻击(即,在没有许可证16的情况下,或者在相应许可证16的条款之外,不适当再现数字内容12)。但是,应该认识到,实际上没有系统和没有软件设备完全抵挡得了这样的攻击。
还应该明白,如果黑箱30相对来说是最近的,即,相对来说是最近获得或更新的,那么,这样的黑箱30被这样的恶意用户成功攻击过的可能性就会更小一点。就信任来说,最好,如果许可证服务器24接收到带有请求信息36的许可证请求,而这样的请求信息36包括了相对来说不是最近的黑箱30版本号,那么,在相应黑箱被升级成最近版本之前,这样的许可证服务器24拒绝发放所请求的许可证16,下面将对此加以讨论。简而言之,在这样的黑箱30相对来说是最近的之前,许可证服务器24不信任这样的黑箱30。
在本发明的黑箱30的情况中,术语‘最近的’或‘相对来说最近的’可以含有与根据黑箱30的使用时间或使用情况提供黑箱的信任度的功能相一致的、不偏离本发明精神和范围的任何适当含义。例如,‘最近的’可以根据使用时间来定义(例如,使用时间不到一个月)。作为另一个例子,‘最近的’可以根据黑箱已经解密了数字内容12的次数来定义(例如,小于200个解密样本)。此外,‘最近的’还可以基于每个许可证服务器24所设定的政策,其中,除了别的以外,一个许可证存储器24可以把‘最近的’定义得与另一个许可证存储器24所定义的不一样,和许可证服务器还可以依照为其请求许可证16的数字内容12,或依照所请求的许可证16的类型而不同地定义‘最近的’。
假设许可证服务器24根据黑箱30的版本号或它的其它标记,相信这样的黑箱30是最近的,那么,许可证服务器24着手与用户协商许可证16的条款和条件(步骤713)。或者,许可证服务器24先与用户协商许可证16,然后,根据黑箱30的版本号,使自己相信这样的黑箱30是最近的(即,先执行步骤713,再执行步骤711)。当然,协商的数量依照要发放的许可证16的类型、以及其它因素而改变。例如,如果许可证服务器24只发放已付清款项的无限期使用许可证16,那么,就不需要什么协商。另一方面,如果许可证16要依赖于诸如可变值、滑动量(sliding scale)、断点之类的条款、和其它细节,那么,在可以发放许可证16之前,在许可证服务器24与用户之间需要弄清楚这样的条款和细节。
应该明白,依环境而定,许可证协商可能要求用户向许可证服务器24提供进一步的信息(例如,有关用户、用户计算设备14等的信息)。重要的是,除了别的以外,许可证协商还可以要求用户和许可证服务器24确定相互可接受的支付手段(贷方帐户、借方帐户、邮寄支票等)和/或支付方法(马上付清款项、延续一段时间等)。
一旦许可证服务器24和用户双方已经协商好和同意许可证16的所有条款(步骤715),就由许可证服务器24生成数字许可证16(步骤719),其中,如此生成的许可证16至少部分基于许可证请求、黑箱30的公开密钥(PU-BB)、和从内容密钥数据库20获得的、用于作为请求要素的数字内容12的解密密钥(KD)。从图8可以看出,在本发明的一个实施例中,生成的许可证16包括许可证16应用于它的数字内容12的内容ID;数字权利许可(DRL)48(即,以许可证评估器36可以查询的预定方式写下来的许可证16的权利描述或实际条款和条件),或许,用解密密钥(KD)加密的DRL(即,KD(DRL));在许可证请求中接收到的、用黑箱30的公开密钥(PU-BB)加密的、数字内容12的解密密钥(KD)(即,(PU-BB(KD)));基于(KD(DRL))和(PU-BB(KD))的和用许可证服务器24的私人(秘密)密钥加密的、来自许可证服务器24(没有任何附带的证明书)的数字签名(即,(S(PR-LS)));和许可证服务器24以前从内容服务器22获得的证明书,这样的证明书指示许可证服务器24拥有来自内容服务器22的、发放许可证16的权力(即,CERT(PU-LS)S(PR-CS)))。
应该明白,上述单元,或许还有其它单元被打包成数字文件或其它一些适当的形式。还应该明白,万一许可证16中的DRL48或(PU-BB(KD))被伪造了,或被修改了,许可证16中的数字签名(S(PR-LS))将不匹配,因此,不能证实这样的许可证16。由于这个原因,DRL48不需要非要采取加密形式不可(即,上述的(KD(DRL)),尽管在某些情况下这样的加密形式可能是所希望的,并且应用这样的加密形式也不偏离本发明的精神和范围。
一旦准备好数字许可证16,就把这样的许可证16发送给请求者(即,用户计算设备14上的DRM系统32)(图7中的步骤719)。最好,通过与作出请求的路径相同的路径(即,因特网或另一个网络)上发送许可证16,尽管应用另一条路径也不偏离本发明的精神和范围。一旦接收到,正在请求的DRM系统32最好自动地把接收的数字许可证16放置在许可证存储器件38中(步骤721)。
应该明白,用户计算设备16有时可能会出现故障,和存储在这样用户计算设备14上DRM系统32的许可证存储器件38中的许可证16可以不可逆地丢失了。于是,最好,许可证服务器24保存已发放许可证16的数据库50(图1),和如果用户实际上有资格获得补发件,这样的许可证服务器24就把已发放许可证16的副本或这样的补发件(下文称为‘补发件’)提供给用户。在上述许可证16不可逆地丢失了的情况中,也有可能出现存储在状态存储器件40中的、与这样的许可证16相对应的状态信息也丢失了的情况。当补发许可证16时,应该考虑到如此丢失的状态信息。例如,如果经过了相对短的时间间隔,那么,以按比例分配(pro-rated)的方式合理地补发再现一定次数的许可证16,如果经过了相对长的时间间隔,那么,根本就不补发再现一定次数的许可证16。
DRM系统32-黑箱30的安装/升级正如上面所讨论的,作为获取许可证16的功能的组成部分,如果用户计算设备14含有其中的黑箱30相对来说不是最近的,即,具有相对旧的版本的DRM系统32,那么,许可证服务器24可以拒绝来自用户的对许可证16的请求。在这样的情况中,最好,升级这样DRM系统32的黑箱30,以便许可证获取功能可以继续执行下去。当然,在其它时间升级黑箱30也不偏离本发明的精神和范围。
最好,作为在用户计算设备114上安装DRM系统32的处理的组成部分,提供黑箱30的非专用‘试用(lite)’版本。然后,在再现一段数字内容12之前,把这样的‘试用’黑箱30升级成专用正规版本。应该明白,如果在每个DRM系统32中的每个黑箱30都是专用的,那么,利用任何其它黑箱30都不能容易地复制进入一个黑箱的安全缺口。
现在参照图9,通过从黑箱服务器26等(如上面所讨论的和如图1所示的)请求专用黑箱30,DRM系统32获得专用黑箱30(步骤901)。通常,这样的请求通过因特网作出,尽管应用其它访问手段也不偏离本发明的精神和范围。例如,与黑箱服务器26的连接可以是直接连接,本地的或远程的。DRM系统32也可以在任何时间请求从一个专用非试用黑箱30到另一个专用非试用黑箱30的升级,例如,正如上面所讨论的,在许可证服务器24认为黑箱30不是最近的时候。
此后,黑箱服务器26生成新的专用黑箱30(步骤903)。从图3可以看出,每个新黑箱30配备了版本号和来自证明机构的、带有数字签名的证明书。正如上面结合许可证获取功能所讨论的那样,黑箱30的版本号指示它的相关使用时间和/或使用情况。也是上面结合许可证获取功能所讨论的、来自证明机构的、带有数字签名的证明书是许可证服务器24应该信任黑箱30的、来自证明机构的担保或作证机制。当然,许可证服务器24必须信任证明机构为事实上值得信赖的黑箱30发放这样的证明书。事实上,可能还有一种情况,那就是许可证服务器24不信任特定的证明机构,并且拒绝承认这样证明机构发放的任何证明书。例如,如果发现特定的证明机构正从事着不正当地发放证明书的勾当,就会出现这样的不信任。
正如上面所讨论的那样,最好,黑箱服务器26包括与新生成专用黑箱30一起的新专用公开/秘密密钥对(PU-BB,PR-BB)。最好,黑箱的秘密密钥(PR-BB)只可由这样的黑箱30访问,对于这个世界的其余部分,包括含有附带这样黑箱30的DRM系统30的计算设备14、和它用户来说,是隐藏起来的,和不能被访问的。
总的来说,应用任何一种隐藏方案都不偏离本发明的精神和范围,只要这样的隐藏方案事实上执行使秘密密钥(PR-BB)不被大家所知的功能即可。仅举一例,可以把秘密密钥(PR-BB)分解成几个子元,专门加密每个子元,并且将其存储在不同的地方。在这样的情况中,最好永远都不要把这样的子元完全组装在一起,形成完整的秘密密钥(PR-BB)。
在本发明的一个实施例中,根据基于代码的加密技术加密这样的秘密密钥(PR-BB)。具体地说,在这样的实施例中,把黑箱30的实际软件代码(或其它软件代码)用作加密密钥。于是,如果黑箱30的代码(或其它软件代码)被,例如,用户出于恶意的目的伪造了,要不然就是修改了,那么,就不能解密这样的秘密密钥(PR-BB)。
尽管每个新黑箱30与新公开/秘密密钥对(PU-BB,PR-BB)一起传送,但是,最好也把这样的新黑箱30设成可以访问以前从旧黑箱30传送到用户计算设备14上的DRM系统32的旧公开/秘密密钥对(步骤905)。于是,升级的黑箱30仍然可以把旧密钥对用于访问较旧的数字内容12和根据这样的旧密钥对生成的相应较旧许可证16,以后再对此作更详细讨论。
最好,由黑箱服务器26传送的升级黑箱30与用户计算设备14密切地联系在一起。于是,不能在多个计算设备14之间为了恶意的目的或其它的目的可操作地传送升级黑箱30。在本发明的一个实施例中,作为对黑箱30的请求的组成部分(步骤901),DRM系统32把专用于这样的DRM系统32和/或专用于用户计算设备14的硬件信息提供给黑箱服务器26,和黑箱服务器26部分根据如此提供的硬件信息,为DRM系统32生成黑箱30。然后,把如此生成的升级黑箱30传送到和安装在用户计算设备14上的DRM系统32中(步骤907,909)。如果在那时升级黑箱30不知何故被传送到另一个计算设备14,那么,传送的黑箱30认识到这样的其它计算设备14并不是它的目的地,因此,不允许在这样的其它计算设备14上进行任何请求的再现。
一旦把新黑箱30安装在DRM系统32中,这样的DRM系统32就可以继续进行许可证获取功能或继续进行任何其它功能。
DRM系统32-内容再现,第3部分现在参照图5B,并且,现在假设许可证评估器36已经找到了至少一个有效许可证16和至少一个这样的许可证16把以检索方式再现相应数字内容12所需的权利提供给用户(即,授权),许可证评估器36接着选择要进一步使用的、这样的许可证16之一(步骤519)。具体地说,为了再现所请求的数字内容12,许可证评估器36和黑箱30结合在一起从这样的许可证16中获得解密密钥(KD),和黑箱30把这样的解密密钥(KD)用于解密数字内容12。正如上面所讨论的那样,在本发明的一个实施例中,从许可证16中获得的解密密钥(KD)是用黑箱30的公开密钥(PU-BB(KD))加密的,和黑箱30用它的秘密密钥(PR-BB)解密如此加密的解密密钥,以生成解密密钥(KD)(步骤521,523)。但是,应用其它获得数字内容12的解密密钥(KD)的方法也不偏离本发明的精神和范围。
一旦黑箱30拥有数字内容12的解密密钥(KD)和再现数字内容12的、来自许可证评估器36的权限,就可以把控制返还给再现应用程序34(步骤525,527)。在本发明的一个实施例中,接着,再现应用程序34调用DRM系统32/黑箱30,把至少一部分加密数字内容12引向黑箱30,根据解密密钥(KD)进行解密(步骤529)。黑箱30根据数字内容12的解密密钥(KD)解密数字内容12,然后,黑箱30把解密的数字内容12返还给再现应用程序34进行实际再现(步骤533,535)。再现应用程序34可以把一部分加密数字内容12或整个数字内容12发送到黑箱30,根据这样数字内容12的解密密钥(KD)进行解密密钥,这不偏离本发明的精神和范围。
最后,当再现应用程序34把数字内容12发送到黑箱30进行解密时,黑箱30和/或DRM系统32验证这样的再现应用程序34,以保证它事实上就是最初请求DRM系统32运行的再现应用程序34(步骤531)。否则的话,存在着根据一种再现应用程序34的再现请求不适当地获得再现许可,而事实上用另一种再现应用程序34再现的可能性。假设验证是成功的和数字内容12由黑箱30解密,接着,再现应用程序34可以再现解密的数字内容12(步骤533,535)。
密钥事务处理的顺序现在参照图10,在本发明的一个实施例中,进行一系列密钥事务处理,以获得解密密钥(KD)和评估所请求的一段数字内容12的许可证16(即,执行图5A和5B的步骤515-523)。大体上,在这样的序列中,DRM系统32从许可证16中获得解密密钥(KD),利用从许可证16和数字内容12中获得的信息验证或保证两者的有效性,然后确定许可证16事实上是否提供了以检索方式再现数字内容12的权利。如果是这样,就可以再现数字内容12。
请记住,从图8可以看出,数字内容12的每个许可证16包括许可证16应用于它的数字内容12的内容ID;或许用解密密钥(KD)加密的数字权利许可(DRL)48(即,KD(DRL));用黑箱30的公开密钥(PU-BB)加密的、数字内容12的解密密钥(KD)(即,(PU-BB(KD)));基于(KD(DRL))和(PU-BB(KD))的和用许可证服务器24的秘密密钥加密的、来自许可证服务器24的数字签名(即,(S(PR-LS)));和许可证服务器24以前从内容服务器22获得的证明书,(即,CERT(PU-LS)S(PR-CS))),并且,还请记住,从图3可以看出,含有数字内容12的数据包12p包括这样数字内容12的内容ID;用KD加密的数字内容12(即,(KD(CONTENT)));未加密的许可证获取脚本;和通过内容服务器22的秘密密钥(PR-CS)签名的、加密内容服务器22的公开密钥(PU-CS)的密钥KD(即,(KD(PU-CS)S(PR-CS))),在本发明的一个实施例中,对数字内容12的特定一个许可证16进行密钥事务处理的特定顺序如下1.根据来自许可证16的(PU-BB(KD)),用户计算设备14上DRM系统32的黑箱30用它的秘密密钥(PR-BB)来获取(KD)(步骤1001)。(PR-BB(PU-BB(KD))=(KD))。请注意,重要的是,黑箱30在那时可以马上转到用(KD)来解密数字内容12,而不用进一步地忙乱(ado)但是,同样重要的是,许可证服务器12信任黑箱30不会这样做。这样的信任是在这样的许可证服务器24根据来自为这样的黑箱30值得信赖作证的证明机构的证明书发放许可证16的时候建立起来的。于是,尽管黑箱在开始步骤不同于在最后步骤获得解密密钥(KD),但是,DRM系统32继续执行如下所述的所有许可证16的核实和评估功能。
2.根据来自数字内容12的(KD(PU-CS)S(PR-CS)),黑箱30用新获得的解密密钥(KD)来获得(PU-CS)(步骤1003)。(KD(KD(PU-CS))=(PU-CS))。另外,黑箱30可以再次把(PU-CS)用作签名(S(PR-CS)),使自己相信这样的签名和这样的数字内容12/数据包12p是有效的(步骤1005)。如果无效,就停止处理,并且拒绝对数字内容12的访问。
3.根据来自许可证16的CERT(PU-LS)S(PR-CS)),黑箱30应用新获得的内容服务器22的公开密钥(PU-CS),使自己相信证明书是有效的(步骤1007),表示发放了许可证16的许可证服务器24拥有这样的做的、来自内容服务器22的权力,然后,检查证明书内容,以获得(PU-LS)(步骤1009)。如果无效,就停止处理,并且拒绝根据许可证16对数字内容12的访问。
4.根据来自许可证16的S(PR-CS),黑箱30应用新获得的许可证服务器24的公开密钥(PU-LS),使自己相信许可证16是有效的(步骤1011)。如果无效,就停止处理,并且拒绝根据许可证16对数字内容12的访问。
5.假设所有核实步骤都是成功的,许可证16中的DRL48事实上是用解密密钥(KD)加密的,然后,许可证评估器36把已经获得的解密密钥(KD)应用于从许可证16中获得的(KD(DRL)),以便从许可证16中获得许可证条款(即,DRL48)(步骤1013)。当然,如果许可证16中的DRL48事实上不是用解密密钥(KD)加密的,那么,可以省略步骤1013。接着,许可证评估器36评估/查询DRL48,并且确定用户计算设备14是否拥有根据许可证16中的DRL48以检索方式再现相应数字内容12的权利(即,DRL48是否是授权的)(步骤1015)。如果许可证评估器36确定不存在这样的权利,就停止处理,并且拒绝根据许可证16对数字内容12的访问。
6.最后,假设对许可证16的评估得出肯定的结论,即用户计算设备14拥有根据DRL48条款以检索方式再现相应数字内容12的权利,许可证评估器36告知黑箱30这样的黑箱30可以根据解密密钥(KD)再现相应数字内容12。此后,黑箱30应用解密密钥(KD),解密来自数据包12p的数字内容12(即,(KD(KD(CONTENT))=(CONTENT))(步骤1017)。
重要的是,注意到上面特定的一系列步骤代表许可证16和数字内容12之间的交互关系或‘来往关系’。这样的来往关系保证了数字内容12与许可证12紧密地联系在一起,因为只有当数字内容和许可证16两者以适当发放和有效方式存在时,才可以进行核实和评估处理。另外,由于需要相同的解密密钥(KD)来以解密方式获得来自许可证16的内容服务器22公开密钥(PU-CS)和来自数据包12p的数字内容12(也许,还要以解密方式获得来自许可证16的许可条款(DRL48)),这样的条款也是紧密相关的。签名核实还保证了数字内容12和许可证16分别处在与内容服务器22和许可证服务器24所发放的形式相同的形式下。于是,即使并非不可能,但是通过绕过许可证服务器24来解密数字内容12也是非常困难的,和即使并非不可能,但是,想改变、然后解密数字内容12或许可证16也是非常困难的。
在本发明的一个实施例中,进行签名核实,尤其是许可证16的签名核实可以用如下的步骤替代。不是含有从图8看到的、由许可证服务器16的秘密密钥(PR-LS)加密的签名,而是,每个许可证16含有用秘密根密钥(PR-R)加密的签名(未示出),其中,每个DRM系统32的黑箱30包括与秘密根密钥(PR-R)相对应的公开根密钥(PU-R)(也未示出)。秘密根密钥(PR-R)只让根实体知道,和如果许可证服务器24已经安排用根实体发放许可证16,那么,这样的许可证服务器24只能发放许可证16。
具体地说,在这样的实施例中1.许可证服务器24把它的公开密钥(PU-LS)提供给根实体;2.根实体把用秘密根密钥(PR-R)加密的许可证服务器公开密钥(PU-LS)返还给这样的许可证服务器24(即,(CERT(PU-LS)S(PR-R)));和3.然后,许可证服务器24发放带有用许可证服务器秘密密钥加密的签名(S(PR-LS))的许可证16,并且把来自根实体的证明书(CERT(PU-LS)S(PR-R))附在许可证上。
至于DRM系统18核实如此发放的许可证16,接着,DRM系统181.把公开根密钥(PU-R)应用于所附的证明书(CERT(PU-LS)S(PR-R)),以获得许可证服务器公开密钥(PU-LS);和2.把获得的许可证服务器公开密钥(PU-LS)应用于许可证16的签名S(PR-LS)。
重要的是,应该认识到,就像根实体通过把证明书(CERT(PU-LS)S(PR-R))提供给许可证服务器24,允许这样的许可证服务器发放许可证16那样,这样的许可证服务器24也可以把相似的证明书提供给第二个许可证服务器24(即,(CERT(PU-LS2)S(PR-LS1))),从而使第二个许可证服务器也可以发放许可证16。现在,显而易见,第二个许可证服务器发放的许可证16将包括第一证明书(CERT(PU-LS1)S(PR-R))和第二证明书(CERT(PU-LS2)S(PR-LS1))。同样,顺着经过第一和第二证明书的链条可以核实这样的许可证16。当然,可以增加和切断该链条中的另外链路。
上述签名核实处理的一个优点是,根实体可以定期地改变秘密根密钥(PR-R),从而要求每个许可证服务器24同样定期地获取新证明书(CERT(PU-LS)S(PR-R))。重要的是,作为获取这样新证明书的要求,可以要求每个许可证服务器自我升级。与黑箱30一样,如果许可证服务器24相对来说是最近的,即相对来说是最近升级的,那么,许可证服务器24被成功攻击的可能性就更小一点。于是,就信任来说,最好要求每个许可证服务器24通过像签名核实处理那样的适当升级触发机制定期升级。当然,应用其它升级机制也不偏离本发明的精神和范围。
当然,如果秘密根密钥(PR-R)发生了改变,那么,每个DRM系统18中的公开根密钥(PU-R)也必须要改变。这样的改变可以,例如,在常规黑箱30升级期间进行,或者,实际上可以要求进行黑箱30升级。尽管改变的公开根密钥(PU-R)可能潜在地与根据旧秘密根密钥(PR-R)发放的旧许可证16的签名核实发生冲突,但是,通过要求升级黑箱30记住所有旧公开根密钥(PU-R),可以使这样的冲突达到最小。或者,通过要求对许可证16的签名核实只进行一次,例如,DRM系统18的许可证评估器36首次评估这样的许可证,可以使这样的冲突达到最小。在这样的情况中,应该汇编有关签名核实是否已经发生的状态信息,并且应该把这样的状态信息存储在DRM系统18的状态存储器件40中。
数字权利许可48在本发明中,许可证评估器36评估作为许可证16的权利描述或条款的数字权利许可(DRL)48,以确定这样的DRL48是否允许以检索方式再现相应的一段数字内容12。在本发明的一个实施例中,DRL48可以由许可人(即,内容拥有者)以任何DRL语言写成。
应该明白,存在着许多种规定DRL48的方式。于是,在任何DRL语言中,必须考虑到高度灵活性。但是,在特定的许可证语言中规定DRL48的所有方面是不切实际的,并且,这样一种语言的作者能够理解特定数字许可人所希望的所有可能许可方面也是非常不可能的。此外,高级复杂的许可证语言也许是没有必要的,甚至是许可人提供相对简单的DRL48的障碍。尽管如此,在如何规定DRL48方面,也不应该多余地限制许可人。同时,许可证评估器36应该总是能够从DRL48中找到大量具体许可证问题的答案。
现在参照图11,在本发明中,虽然可以以任何许可证语言规定DRL48,但是,DRL48应该包括语言标识符或标记54。然后,评估许可证16的许可证评估器36执行审查语言标记54以识别这样的语言的预备步骤,接着,为用如此识别的语言访问许可证16选择适当的许可证语言引擎52。应该明白,这样的许可证语言引擎52必须存在,并且可由许可证评估器36访问。如果不存在,语言标记54和/或DRL48最好包括获得这样语言引擎52的位置56(通常是网站)。
通常,语言引擎52采取驻留在用户计算设备14的存储器,譬如,硬盘中的一个或一组可执行文件的形式。语言引擎52帮助许可证评估器36直接查询DRL48,许可证评估器36通过用作中介的语言引擎52等间接查询DRL48。当被执行时,语言引擎52在用户计算设备14的存储器,譬如,RAM中的工作空间中运行。但是,应用任何其它形式的语言引擎52都不偏离本发明的精神和范围。
最好,任何一种语言引擎52和任何一种DRL语言至少支持如下所讨论的、许可证评估器36希望通过任何DRL48回答的大量具体许可证问题。于是,许可证评估器36不与任何具体的DRL语言联系在一起;DRL48可以用任何适当的DRL语言写成;和在新许可证语言中规定的DRL48可以由现有许可证评估器36通过让这样的许可证评估器36获得相应的新语言引擎52来使用。
DRL语言下面提供在各种DRL48中具体实现的、两个DRL语言实例。第一个‘简单,DRL48是用规定许可证属性的DRL语言写成的,而第二个‘脚本’DRL48是用可以根据在DRL48中规定的脚本执行各种功能的DRL语言写成的。虽然是用DRL语言写成的,但是,根据它们的语言学和/或如下的属性描述图表,每行代码的含义应该是显而易见的简单DRL 48<pre listing-type="program-listing"><![CDATA[   <LICENSE>   <DATA>   <NAME>Beastie Boy′s Play</NAME>   <ID>39384</ID>   <DESCRIPTION>Play the song 3 times</DESCRIPTION>   <TERMS></TERMS>   <VALIDITY>   <NOTBEFORE>19980102 232014Z</NOTBEFORE>   <NOTAFTER>19980102 232014Z</NOTAFTER>   </VALIDITY>   <ISSUEDDATE>19980102 232014Z</ISSUEDDATE>   <LICENSORSITE>http//www.foo.com</LICENSORSITE><CONTENT>  <NAME>Beastie Boy′s</NAME>  <ID>392</ID>  <KEYID>39292</KEYID>  <TYPE>MS Encrypted ASF 2.0</TTYPE>  </CONTENT>  <OWNER>  <ID>939KDKD393KD</ID>  <NAME>Universal</NAME>  <PUBLICKEY></PUBLICKEY>  </OWNER>  <LICENSEE>  <NAME>Arnold</NAME>  <ID>939KDKD393KD</ID>  <PUBLICKEY></PUBLICKEY>  </LICENSEE>  <PRINCIPAL TYPE==AND=>  <PRINCIPAL TYPE==OR=>  <PRINCIPAL>  <TYPE>x86Computer</TYPE>  <ID>3939292939d9e939</ID>  <NAME>Personal Computer</NAME>  <AUTHTYPE>Intel Authenticated Boot PC SHA-1DSA512</AUTHTYPE>  <AUTHDATA>29293939</AUTHDATA>  </PRINCIPAL>  <PRINCIPAL>  <TYPE>Application</TYPE>  <ID>2939495939292</ID>  <NAME>Window=s Media Player</NAME>  <AUTHTYPE>Authenticode SHA-1</AUTHTYPE><AUTHDATA>93939</AUTHDATA>  </PRINCIPAL>  </PRINCIPAL>  <PRINCIPAL>  <TYPE>Person</TYPE>  <ID>39299482010</ID>  <NAME>Arnold Blinn</NAME>  <AUTHTYPE>Authenticate user</AUTHTYPE>  <AUTHDATA>\\redmond\arnoldb</AUTHDATA>  </PRINCIPAL>  </PRINCIPAL>  <DRLTYPE>Simple</DRLTYPE>[the language tag 54]  <DRLDATA>  <START>19980102 232014Z</START>  <END>19980102 232014Z</END>  <COUNT>3</COUNT>  <ACTION>PLAY</ACTION>  </DRLDATA>  <ENABLINGBITS>aaaabbbbccccdddd</ENABLINGBITS>  </DATA>  <SIGNATURE>  <SIGNERNAME>Universal</SIGNERNAME>  <SIGNERID>9382ABK3939DKD</SIGNERID>  <HASHALGORITHMID>MD5</HASHALGORITHMID>  <SIGNALGORITHMID>RSA128</SIGNALGORITHMID>  <SIGNATURE>xxxyyyxxxyyyxxxyyy</SIGNATURE>  <SIGNERPUBLICKEY></SIGNERPUBLICKEY>  <CONTENTSIGNEDSIGNERPUBLICKEY></CONTENTSIGNEDSIGNERPUBLICKEY>  </SIGNATURE>  </LICENSE>]]></pre>
脚本DRL48<pre listing-type="program-listing"><![CDATA[  <LICENSE>  <DATA>  <NAME>Beastie Boy’s Play</NAME>  <ID>39384</ID>  <DESCRIPTION>Play the song unlimited</DESCRIPTION>  <TERMS></TERMS>  <VALIDITY>  <NOTBEFORE>19980102 232014Z</NOTBEFORE>  <NOTAFTER>19980102 232014Z</NOTAFTER>  </VALIDITY>  <ISSUEDDATE>19980102 232014Z</ISSUEDDATE>  <LICENSORSITE>http//www.foo.com</LICENSORSITE>  <CONTENT>  <NAME>Beastie Boy′s</NAME  <ID>392</ID>  <KEYID>39292</KEYID>  <FYPE>MS Encrypted ASF 2.0</TTYPE>  </CONTENT>  <OWNER>  <ID>939KDKD393KD</ID>  <NAME>Universal</NAME>  <PUBLICKEY></PUBLICKEY>  </OWNER>  <LICENSEE>  <NAME>Amold</NAME>  <ID>939KDKD393KD</ID>  <PUBLICKEY></PUBLICKEY>  </LICENSEE><DRLTYPE>Script</DRLTYPE>[the Ianguage tag 54]  <DRLDATA>  function on_enable(action,args)as boolean  result=False  if action=″PLAY″then  result=True  end if  on_action=False  end function  ...  </DRLDATA>  </DATA>  <SIGNATURE>  <SIGNERNAME>Universal</SIGNERNAME>  <SIGNERID>9382</SIGNERID>  <SIGNERPUBLICKEY></SIGNERPUBLICKEY>  <HASHID>MD5</HASHID>  <SIGNID>RSA128</SIGNID>  <SIGNATURE>xxxyyyxxxyyyxxxyyy</SIGNATURE>  <CONTENTSIGNEDSIGNERPUBLICKEY></CONTENTSIGNEDSIGNERPUBLICKEY>  </SIGNATURE>  </LICENSE>]]></pre>在上面规定的两个DRL48中,所列的属性具有如下的描述和数据类型



方法正如上面所讨论的,最好,任何一种语言引擎52和任何一种DRL语言至少支持数字许可证评估器36希望通过任何DRL48回答的大量具体许可证问题。在认识到如此支持的问题可以包括不偏离本发明精神和范围的、和与在上面两个DRL48实例中应用的术语相一致的任何问题之后,在本发明的一个实施例中,如此支持的问题或‘方法’包括如下的‘访问方法’、‘DRL方法’和‘允许使用方法’访问方法访问方法用于为了顶层属性而询问DRL48。
VARIANT QueryAttribute(BSTR key)有效关键字包括License.Name、License.Id、Content.Name、Content.Id、Content.Type、Owner.Name、Owner.Id、0wner.PublicKey、Licensee.Name、Licensee.Id、Licensee.PublicKey、Description(描述)、和Terms(条款),每一个都返回BSTR变量;和Issued(发布的)、Validity.Start(有效开始)和Validity.End(有效结束),每一个都返回日期变量。
DRL方法如下DRL方法的实施因DRL48的不同而不同。许多DRL方法包含标成‘data(数据)’的可变参数,其目的是用于与DRL48通信更高级的信息。它主要是为了未来的可扩展性而存在的。
Boolean IsActivated(Variant data)这种方法返回指示是否启用DRL 48/许可证16的Boolean。启用许可证16的一个例子是在首次播放时只有48小时有效的有限操作许可证16。
Activate(Variant data)这种方法用于启用许可证16,一旦许可证16被启用,就不能停用。
Variant QueryDRL(Variant data)这种方法用于与更高级的DRL48通信。它主要与设置的DRL48特征的未来可扩展性有关。
Variant GetExpires(BSTR action,Variant data)这种方法返回许可证16与合格(pass-in)动作有关的截止日期。如果返回值是‘NULL’(空的),那么,认为许可证16永不到期,或者由于还没有开始使用,因此,没有截止日期,等。
Variant GetCount(BSTR action,Variant data)这种方法返回合格动作还剩下的操作次数。如果返回‘NULL’(是空的),那么,可以进行无限次数的操作。
Boolean IsEnabled(BSTR action,Variant data)这种方法表示许可证16当前是否支持所请求的动作。
Boolean IsSunk(BSTR action,Variant data)这种方法表示是否已经为许可证16付费了。预先付费的许可证16将返回‘TRUE’(真值),而没有预先付费的许可证16将返回‘FALSE’(假值),例如,如其所用托收费用的许可证16。
允许使用方法这些方法用于使许可证16能够用在解密内容之中。
Boolean Validate(BSTR key)这个方法用于核实许可证16。合格密钥是用在核实许可证16的签名之中的、通过相应数字内容12的解密密钥(KD)加密的黑箱30公开密钥(PU-BB)(即,(KD(PU-BB)))。返回值‘TRUE’表示许可证16是有效的。返回值‘FALSE’表示许可证16是无效的。
int Openlicense16(BSTR action,BSTR key,Variant data)这个方法用于作好访问解密允许比特的准备。合格密钥是上述的(KD(PU-BB))。返回值‘0’表示成功了。可以定义其它返回值。
BSTR GetDecryptedEnablingBits(BSTR action,Variant data)Variant GetDecryptedEnablingBitsAsBinary(BSTR action,Variantdata)这些方法用于访问处在解密形式下的允许比特。如果对于许多理由的任何一条,这都是不成功的,那么,返回空字符串或空变量。
void CloseLicense(BSTR action,Variant data)这种方法用于为了执行合格动作,解锁对允许位的访问。如果对于许多理由的任何一条,这都是不成功的,那么,返回空字符串。
试探法正如上面所讨论的,如果对于同一段数字内容12,存在着多个许可证16,必须选择许可证16之一,供进一步使用。利用上面方法,可以实施如下的试探法来作出这样的选择。具体地说,为了对一段数字内容12执行动作(譬如说,APLAY@),可以执行如下步骤1.获得应用于一段特定数字内容12的所有许可证16;2.通过对这样的许可证16调用IsEnabled函数,删除不能使能动作的每个许可证16;3.通过对这样的许可证16调用IsActivated函数,删除没有启用的每个许可证16;4.通过对这样的许可证16调用IsSunk函数,删除没有预先支付的每个许可证16;5.如果还留下什么许可证16,就使用它。在使用有限播放次数的许可证16之前,使用无限播放次数的许可证16,尤其是在无限播放次数的许可证16含有截止日期的时候。无论如何,都应该让用户选择已经获得的特定许可证16,即使这样的选择并非那么合算。于是,用户可以根据对DRM系统32来说也许不那么显而易见的准则,选择许可证16。
6.如果没有留下什么许可证16,那么,就返回指示这种情况的状态信息。然后,让用户作出如下选择如果存在的话,使用没有预先支付的许可证16;如果存在的话,启用许可证16;和/或从许可证服务器24中获取许可证。
内容保护技术-视频卡在本发明的DRM结构10中,以加密方式传送权利受保护内容,并且只能按照在相应许可证16中规定的权利解密权利受保护内容。应该意识到,要采取许多预防措施来保证以解密形式的内容10是不可获得的,当然,除了根据许可证16许可的之外,因此,例如,可以应用路径验证来保证可以信任接收解密内容12的每个模块负责任地工作,并且不会把这样的解密内容12提供给诸如‘内容盗贼’之类的不道德之辈。2000年3月15日提交的、名称为“把解密数字内容发布到经验证路径上(RELEASING DECRYPTEDDIGITAL CONTENT TO AN AUTHENTICATED PATH)”的美国专用申请第09/525,510号对这样的路径验证作了更全面描述,特此引用,以供参考。
但是,应该体会到,解密内容12或它的至少一部分有必要按照再现这样解密内容12的正常路线存储在缓冲区和其它存储器件中。更具体地说,内容盗贼不费吹灰之力就可以获得在这样缓冲区中的解密内容12。
尤其在诸如视频内容之类的内容12的情况下,从图13可以看出,这样的内容12一旦被解密,最后就存储在视频卡60中。具体地说,可以意识到,视频数据被解密和/或解压缩之后,在被视频卡60用来生成要发送到监视器60等的视频信号之前,被写入视频卡60上的视频RAM(VRAM)62中。视频卡的操作对于本领域的普通技术人员来说是已知的,或应该是显而易见的,因此,在这里无需再作任何详细的讨论。重要的是,虽然视频数据在视频卡60的VRAM62上,但是,内容盗贼通过把硬件和/或软件用于从这样的VRAM62读取这样的视频数据,这样的视频数据易于被内容盗贼盗走。因此,这样的VRAM62是内容盗贼与核心DRM系统32的能力无关地盗走优质视频数据的运输工具。
内容保护技术-视频卡-只写VRAM于是,在本发明的一个实施例中,除了与视频卡60本身有关之外,视频卡60上的VRAM62被配置成只写的。因此,视频卡60之外的任何实体,譬如,内容盗贼,都不能读取这样在VRAM62上的视频数据。这样的配置只可以与DRM系统32和由此控制的受保护内容12相关地应用,或者,也许与受保护的或没有受保护的所有内容相关地应用。
在前一种情况中,受保护内容12可以由适合于视频卡60和VRAM62的信号伴随着,以实现只写功能。这样的信号可以是,例如,来自DRM系统32或再现应用程序34的硬件或软件信号,并且,对于本领域的普通技术人员来说是已知的,或应该是显而易见的,因此,在这里无需再作任何详细的讨论。于是,应用任何适当的信号都不偏离本发明的精神和范围。在后一种情况中,所得的副产品是,任何人或任何程序都一点也不能从视频卡上的VRAM62上读取,即使这样的人或程序完全出于好意。
在本发明的一个实施例中,通过创建寄生在VRAM62中的一个或多个只写缓冲区,在视频卡60中实现只写VRAM62。在最简单的情况中,可以把每个只写缓冲区位映射到显示在主要表面上的次要视频表面。重要的是,可以把位映射数据写入每个缓冲区中,而读取数据则返回黑色、不同色彩的标记、无意义的东西、噪声等。
为了成为只写的,本发明的视频卡60必须不能提供任何其它读取组成受保护屏幕区的像素的方法。例如,必须没有提供对受保护屏幕区的访问的独立读像素操作。或者,用于读取像素的现有机制应该返回黑色、不同色彩的标记、无意义的东西、噪声等。
另外,通过把在释放时清除每个只写缓冲区的内容或使每个只写缓冲区的内容变成零所需的功能给予视频卡60,在视频卡60中实现只写VRAM62。因此,不能在释放之后,但在盖写之前通过攻击读取这样的只写缓冲区。
本方案可同等应用于其它视频处理结构,而不偏离本发明的精神和范围。例如,如果视频卡60支持解压加速,那么,相似的规则也适用。具体地说,与这样视频卡60上的视频加速器通信的每个缓冲区是只写的,往那里再现的视频不能通过其它手段读取。
内容保护技术-视频卡-验证当然,DRM系统32必须能够使自己相信在上面的视频卡60和VRAM62是值得信赖的,因为根据本发明,在这样视频卡60上的这样VRAM62是只写的。因此,视频卡60必须能够向这样的DRM系统32证明自己拥有只写VRAM62。
可以推测,通过不时的回读检验和其它标准的反调试技术,DRM系统32可以提供VRAM62/视频缓冲区的确是只写的良好保证。但是,这样的校验不能否定受保护视频数据可以通过其它一些机制,例如,双映射存储器、位转换成不受保护的存储器、读像素命令等获得的可能性。
与验证联系在一起所遇到的一个困难是,视频卡制造者未必想要实现这样的验证。具体地说,如果视频数据事实上可让内容盗贼等通过制造者的视频卡获得,那么,这样的视频卡会更加吸引人,更有市场。然后,可以想象得到,遵照本发明方案,因此实现内容保护的合法和正直视频卡制造者就会把市场份额和地位拱手让给不那么合法的和不服从的视频卡制造者。因此,尽管存在这样的困难,也必须进行验证。
下面是允许这样的验证的几种机制合法设备在本发明的一个实施例中,视频卡60通过拥有受一种或多种知识产权(专利、版权、商标、商业秘密等)合法保护的一个或多个单元65,以一般来说被动的方式向DRM系统32证明自己,其中,每个单元65必须包含在视频卡60中。因此,想要制造附带权利保护单元65的视频卡60的制造者必须获得这样做的许可证,并且,在制造附带权利保护单元65的视频卡60的过程中,除了别的之外,必须同意遵守某些预定的许可方面的规则,其中最重要的是,按照上面所讨论的方式,在上面的VRAM62是只写的。可以意识到,在这样的实施例中,DRM系统32没办法有把握确定相关的视频卡60是循规蹈距的。
在本发明的类似实施例中,视频卡60通过拥有包含在其中的受一种或多种知识产权(专利、版权、商标、商业秘密等)保护的一个或多个上述单元65,以更主动的方式向DRM系统32证明自己,但是,其中单元65采取一旦请求或一旦请求适当的令牌67,就向计算系统14上的DRM系统32、再现应用程序34、和/或其它实体展示的方式。
因此,受保护的主题可以是展示数字信号的硬件或软件,或者是本身就要展示的软件结构。想要制造附带单元65的视频卡60的制造者必须获得这样做的许可证,并且,在制造附带单元65的视频卡60的过程中,除了别的之外,必须同意遵守某些预定的许可方面的规则,其中最重要的是,按照上面所讨论的方式,在上面的VRAM62是只写的。作为回报,制造者接收要合并到视频卡60中的单元65,或者被授权把这样的单元65合并到视频卡60中。非许可的制造者也可以把单元65合并到它的视频卡60中,但是,这样做会使非许可制造者面临着违犯与单元65相关的知识产权的起诉。
技术设备在本发明的一个实施例中,通过密码验证方案,视频卡以一般来说主动的方式向DRM系统32证明自己。这里,视频卡60带有可以展示给DRM系统32、再现应用程序34、或其它请求实体看的、诸如数字证明书66等之类的密码证明书,以便证明视频卡60是可信赖的。然后,通过与可接受和/或不可接受证明书66等的定期或不定期更新表相对照,可以在计算设备14上审查所展示的数字证明书,并且,据此,至少部分据此,作出是否信任视频卡60的决定。请注意,在这样的实施例中,视频卡60必须配备以非易失性方式保留证明书66和按照要求把证明书66展示给适当的请求实体这两者的功能。
最好,一旦制造者在制造视频卡60的过程中,同意遵守某些预定的许可方面的规则,就把适当的证明书66提供给视频卡60的制造者。其中最重要的是,按照上面所讨论的方式,在上面的VRAM62是只写的。然后,由制造者在制造过程中把如此提供的证明书66适当地合并到视频卡60中。如果制造者违背了协议,例如,制造出带有可读VRAM62的视频卡60,那么,就把证明书66放在上述不可接受的列表68中。合并和提供证明书66,把列表68提供给计算设备14,和更新计算设备14上这样的列表68对于本领域的普通技术人员来说都是已知的,或应该是显而易见的,因此,在这里无需再作任何详细的讨论。因此,应用合并和提供证明书66和提供和更新列表68的任何方法都不偏离本发明的精神和范围。
请注意,在使用数字证明书66的过程中,视频卡需要小型的密码处理器,要不然就是在计算设备14的处理器上运行的密码代码、和专用证明密钥70。计算设备14上的DRM系统32、再现应用程序34或其它实体可以对视频卡60进行诸如密码询问/回答之类的验证,看一看卡签名密钥70是否被适当地证明是在可接受列表68上的和/或不是在不可接受列表68上的。
请注意,证明书66和密钥70的使用使非许可制造者不能伪装成许可制造者。此外,如果证明书66泄密了,那么可以更新列表68把泄密证明书66标记成不可接受的。
在使用过程中的验证在最简单的实施例中,视频卡60上VRAM62的至少一部分永远是只写的,不能配置成其它的。在这种情况下,视频卡60在验证过程中足以让计算设备14确信它的类型(即,在地址范围X上含有永久性只写VRAM的可信视频卡)。此后,在计算设备14上的验证实体知道,可以把数据写入地址范围X中,和如此写入的数据只可由可信视频卡60读取。
但是,如果可以把视频卡配置成拥有几种模式(例如,只写对读写),那么,让视频卡60自我验证是不够的。如果这样的配置可以由不可信实体来设置,那么,攻击者可能等到原创数据的作者已经验证和配置了视频卡上的只写缓冲区之后,把缓冲区重新配置成读写的,然后,在将数据写入VRAM62中时读取这样的数据。在当今多任务操作系统的背景下,这个问题尤其值得关注,其中多任务操作系统允许任意多批进程并行地在同一个计算设备14上运行。这个问题可以用许多种方法来解决1.已验状态检验可以不加限制地重新配置视频卡60。但是,这样的视频卡60使主计算设备14上的进程以验证方式询问它的配置/状态。也就是说,正像初始验证让视频卡60向主设备14保证它是类型XYZ的可信视频卡和在地址范围ABC上已经分配了只写缓冲区那样,附加的验证让视频卡60保证在过去的Y分钟等内配置并没有发生改变。
2.已验配置改变这要求视频卡60验证正在请求配置改变的实体。从原理上来讲,这种验证可以完全独立于视频卡60通过计算设备14的验证。这里,来自设备14、有关只写缓冲区的初始请求可以描述允许谁重新配置缓冲区和以哪些方式重新配置缓冲区的政策。例如,该政策可以采取许可证16等的形式。
在验证视频卡60的过程中,主计算设备14上的进程可以调用像下列那样的函数GetWriteOnlyBuffer(int buffersize);和
ReconfigureBuffer(configuration description),并且,可以应用公开密钥-秘密密钥加密,从而,视频卡60含有秘密密钥和把相应的公开密钥放入来自可信实体的证明书中。因此,使附带公开密钥的证明书可由主设备14上的内容源(CS)获得,和CS通过,例如,核实数字签名和/或鉴定截止日期或失效期,检验证明书的有效性。
然后,作为VRAM62的初始配置的组成部分的CS(即,与上面的GetWriteOnlyBuffer函数相联系),生成随机数Z(一个临时值(nonce)),用来自证明书的公开密钥加密Z,得出PU(Z),然后将PU(Z)发送到视频卡60。视频卡60利用秘密密钥解密PU(Z),因此得出Z,然后将消息(Z,M,S)发送到CS,其中M是任意消息文本,和S是用秘密密钥做的、在X、M上的数字签名。在本例中,M文本的大意是“地址a和b之间的存储范围已经被配置成只写的(The memory range between addresses a and b has beenconfigured as write-only)”。可以推测,视频卡60事实上就是这样配置的。
然后,重新配置(与上面ReconfigureBuffer函数相联系)的验证是基于Z的知识的。也就是说,请求视频卡60重新配置VRAM62的调用程序必须展示Z的知识,要不然,视频卡60就拒绝请求。可以推测,只有CS知道Z,因此,没有有关Z的知识的攻击者注定是要失败的。
这样的验证可以包括,例如,CS把消息(M,m)发送到视频卡60,其中,M是大意是“请按照如下所述配置缓冲区a...b(Please configue thebuffer a...b as follows...)”的消息,和m是计算消息验证码m=MAC(M,Z)的结果。于是,视频卡60利用它自己的Z的副本来核实MAC。具体地说,只有MAC被核实时,视频卡60才兑现重新配置请求。
除了利用只写VRAM62之外,作为一种可替代方法,CS可以加密视频数据,以便它只可以被视频卡60解密。与只写VRAM62的情况一样,这要求让CS核实对于可信视频卡60来说数据是加密的验证。通常,验证机制使CS和视频卡建立起共享秘密(会话密钥)Z。因此,为了把数据发送到视频卡60,CS根据Z加密数据,和视频卡根据Z解密数据。
结论实现与本发明联系在一起执行的进程所需的编程对于本领域的普通技术人员来说,是相当直截了当的,和应该是显而易见的。因此,不把这样的编码附在这里。把任何特定的编码应用于实现本发明都不偏离本发明的精神和范围。
在前面的描述中,可以看出,本发明包括了新的和有用的强化结构10,它使任何形式的数字内容12得到受控再现或播放,其中,这样的控制是灵活的,并且是可以由这样数字内容的内容拥有者规定的。此外,本发明还包括了新的和有用的受控再现环境,尽管数字内容12要在不在内容拥有者控制之下的计算设备14上再现,但这样的受控再现环境也能让数字内容12只按照内容拥有者规定的方式再现。并且,本发明还包括了在计算设备14上的保密视频卡60,以防止内容盗贼偷走存放在视频卡60上的内容。
应该意识到,可以对上述的实施例作出各种各样的改变而不偏离本发明的精神和范围。主要有,应该明白,本发明无需仅限于视频卡60。而是,本发明意在涵盖像,例如,声卡那样的、含有存储解密数据的存储器的任何类型器件。同样,应该明白,本发明不限于像上面结合图1-11公开的DRM系统32那样的DRM系统。而是,本发明意在涵盖包括维持安全环境或为防止数据被非法使用和/或访问而提供保密模块的任何系统的任何类型DRM系统。
本发明的中心内容是除了设备之外,存储器是只读的,和该设备可以证明自己是值得信赖的。这些概念可应用于任何类型的内容12和设备,只要内容流是单向的即可(即,单向CPU/主存储器到含有存储器的设备到其它设备(例如,监视器、扬声器等))。因此,应该明白,本发明不限于所公开的特定实施例,而是,意在涵盖在所附权利要求书规定的本发明的精神和范围内的所有变型。
权利要求
1.一种计算设备,该计算设备包括使该计算设备上的受保护数字内容得以再现的系统,该内容包括要在与计算设备耦合的相应再现设备上再现那种类型的内容,该计算设备还包括以非受保护形式接收那种类型的内容的部分,该部分包括存储所接收的内容的存储器,该存储器被配置成除了与该部分有关的之外,是只写的。
2.一种计算设备,该计算设备包括使该计算设备上的受保护的数字内容得以再现的数字权利管理(DRM)系统,该内容包括要在与计算设备耦合的监视器上显示的视频内容,该计算设备还包括接收内容和根据所接收的内容生成要发送到监视器的视频信号的视频部分,该视频部分包括存储所接收的内容的视频存储器,该视频存储器被配置成除了与该视频部分有关的之外,是只写的。
3.根据权利要求2所述的计算设备,其中,视频部分是视频卡。
4.根据权利要求2所述的计算设备,其中,视频部分以外的任何实体都不能读取存储在视频存储器中的接收的内容。
5.根据权利要求2所述的计算设备,其中,视频存储器是视频RAM。
6.根据权利要求2所述的计算设备,其中,视频存储器被配置成只对于允许被DRM系统再现的权利保护数字内容来说是只写的。
7.根据权利要求6所述的计算设备,其中,内容被一个到达视频部分的信号伴随着,以实现内容的只写配置。
8.根据权利要求6所述的计算设备,其中,只写配置是通过在视频存储器中建立至少一个只写缓冲区,在这样的视频存储器中实现的。
9.根据权利要求8所述的计算设备,其中,每个只写缓冲区是要显示在主表面上的位映射次级视频表面。
10.根据权利要求8所述的计算设备,其中,一旦释放只写缓冲区,视频部分就清除每个只写缓冲区。
11.根据权利要求2所述的计算设备,其中,视频存储器被配置成对于允许被DRM系统再现的权利保护数字内容以及其它数字内容来说是只写的。
12.根据权利要求2所述的计算设备,其中,视频部分还包括验证设备,用于向DRM系统证明视频存储器被配置成除了与视频部分有关的以外,是只写的。
13.根据权利要求12所述的计算设备,其中,验证设备包括由于受控制实体控制的知识产权而得到合法保护的特征部件,从而,想要制造视频部分的制造者必须从控制实体获得履行合法保护特征部件的许可证,并且,作为许可条件,必须同意视频部分配备上配置成除了与视频部分有关的以外,是只写的的视频存储器。
14.根据权利要求13所述的计算设备,其中,合法保护特征采取可以向DRM系统展示的形式。
15.根据权利要求13所述的计算设备,其中,合法保护特征采取可以把令牌展示给DRM系统的形式。
16.根据权利要求12所述的计算设备,其中,验证设备包括要展示给DRM系统的、从验证实体中获得的令牌,从而,想要制造视频部分的制造者必须从验证实体获得令牌,并且,作为条件,必须同意视频部分配备上配置成除了与视频部分有关的以外,是只写的的视频存储器。
17.根据权利要求16所述的计算设备,其中,展示的令牌是证明书,并且由DRM系统对照定期更新的证明书列表加以审查,和其中DRM系统至少部分地据此决定是否信任视频部分,从而,如果制造者违背了协议,制造出带有非只写存储器的视频部分,那么,更新证明书列表,把审查的证明书不被DRM系统认可的情况反映出来。
18.计算设备上的一个部分,该计算设备包括使该计算设备上的受保护数字内容得以再现的系统,该内容包括要在与计算设备耦合的相应再现设备上再现那种类型的内容,该计算设备的该部分以非保护形式接收那种类型的内容,该部分包括存储接收内容的存储器,该存储器被配置成除了与该部分有关的之外,是只写的。
19.计算设备上的一个视频部分,该计算设备包括使该计算设备上的受保护数字内容得以再现的数字权利管理(DRM)系统,该内容包括要在与计算设备耦合的监视器上显示的视频内容,该视频部分用于接收内容和根据接收的内容生成要发送到监视器的视频信号,该视频部分包括存储接收内容的视频存储器,该视频存储器被配置成除了与该视频部分有关的之外,是只写的。
20.根据权利要求19所述的视频部分,包括视频卡。
21.根据权利要求19所述的视频部分,其中,视频部分以外的任何实体都不能读取存储在视频存储器中的接收内容。
22.根据权利要求19所述的视频部分,其中,视频存储器是视频RAM。
23.根据权利要求19所述的视频部分,其中,视频存储器被配置成只对于允许被DRM系统再现的权利保护数字内容来说是只写的。
24.根据权利要求23所述的视频部分,其中,视频部分接收一个信号,作为内容的伴随物,以实现内容的只写配置。
25.根据权利要求23所述的视频部分,其中,只写配置是通过在这样的视频存储器中建立至少一个只写缓冲区,在该视频存储器中实现的。
26.根据权利要求25所述的视频部分,其中,每个只写缓冲区是要显示在主表面上的位映射次级视频表面。
27.根据权利要求25所述的视频部分,其中,一旦释放只写缓冲区,视频部分就清除每个只写缓冲区。
28.根据权利要求19所述的视频部分,其中,视频存储器被配置成对于允许被DRM系统再现的权利保护数字内容以及其它数字内容来说是只写的。
29.根据权利要求19所述的视频部分,还包括验证设备,用于向DRM系统证明视频存储器被配置成除了与视频部分有关的以外,是只写的。
30.根据权利要求29所述的视频部分,其中,验证设备包括由于受控制实体控制的知识产权而得到合法保护的特征部件,从而,想要制造视频部分的制造者必须从控制实体获得履行合法保护特征部件的许可证,并且,作为许可条件,必须同意视频部分配备上配置成除了与视频部分有关的以外,是只写的的视频存储器。
31.根据权利要求30所述的视频部分,其中,合法保护特征采取可以向DRM系统展示的形式。
32.根据权利要求30所述的视频部分,其中,合法保护特征采取可以把令牌展示给DRM系统的形式。
33.根据权利要求29所述的视频部分,其中,验证设备包括要展示给DRM系统的、从验证实体中获得的令牌,从而,想要制造视频部分的制造者必须从验证实体获得令牌,并且,作为条件,必须同意视频部分配备上配置成除了与视频部分有关的以外,是只写的的视频存储器。
34.根据权利要求33所述的视频部分,其中,展示的令牌是证明书,并且由DRM系统对照定期更新的证明书列表加以审查,和其中DRM系统至少部分地据此决定是否信任视频部分,从而,如果制造者违背了协议,制造出带有非只写存储器的视频部分,那么,更新证明书列表,把审查的证明书不被DRM系统认可的情况反映出来。
全文摘要
计算设备包括使该计算设备上的受保护数字内容得以再现的数字权利管理(DRM)系统。该内容包括要在与计算设备耦合的监视器上显示的视频内容。该计算设备还包括接收内容和根据接收的内容生成要发送到监视器的视频信号的视频部分。该视频部分包括存储接收的内容的视频存储器,和该视频存储器被配置成除了与该视频部分有关的之外是只写的。该视频部分还包括验证设备,用于向DRM系统证明视频存储器被配置成除了与视频部分有关的以外是只写的。
文档编号G06F12/14GK1393783SQ0212478
公开日2003年1月29日 申请日期2002年6月25日 优先权日2001年6月27日
发明者保罗·英格兰, 马库斯·佩纳多, 马孔德·桑卡拉纳拉扬 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1