在数字权限管理系统中离线发布发行者使用许可证 相关申请交叉参考
以下美国专利申请揭示的主题是关于本当前申请的主题,而且它们完整地在此被结合作为参考。
美国专利申请No.10/185,527,归档于2002年6月28日代理摘要号MSFT-1330,标题为“在数字权限管理系统中为数字内容获取签署权限标签(SRL)和基于SRL获取的相应内容的数字许可证”;
美国专利申请No.10/185,278,归档于2002年6月28日代理摘要编号MSFT-1333,标题为“在数字权限管理系统中使用权限模板以为数字内容获取签署权限标签(SRL)
美国专利申请No.10/185,511,归档于2002年6月28日代理摘要编号MSFT-1343,标题为“为数字内容和服务发布使用许可证的系统和方法”;
美国专利申请No.____,归档于____代理摘要编号MSFT-1498,标题为“”根据数字权限管理(DRM)系统在一个组织内发行数字内容”;
美国专利申请No.____,归档于____代理摘要编号MSFT-1569,标题为“根据数字权限管理(DRM)系统在一个组织内发行数字内容”;以及
美国专利申请No.____,归档于____与目前申请同时的代理编号MSFT-1536,标题为“使数字权限管理(DRM)服务器加入/次加入DRM结构”。
【技术领域】
本发明相关于数字权限管理(DRM)系统,尤其是,本发明相关于使用一个DRM系统以在一个组织,例如一个办公室或公司或类似机构,中发行数字内容,从而可以按照相应的使用及许可条款约束在组织中再现和使用该内容。更尤其是,本发明相关于发行内容,而不用与服务器联系以得到批准并且自己发布发行者使用许可证来再现发行的内容,而不用与服务器联系以得到批准。
【发明背景】
数字权限管理和实施在联系数字内容(例如数字音频、数字频视、数字文本、数字数据、数字多媒体等等)方面是十分需要的,在此这样的数字内容将被分发给一个或更多个用户。数字内容可以是静态的,例如文本文件,或者是流式的,例如实况事件中的音频/视频流。分发的典型的模式包括有形的设备如磁(软)盘,磁带,光(小型)盘(CD)等等,而无形的媒体如电子广告板,电子网络,因特网等等。当用户接收到时,这些用户依靠适当的再现设备,例如在个人计算机中的媒体播放器或类似者的帮助再现或者“播放“”该数字内容。
在一种情景中,内容拥有者或权限拥有者(例如作者、发行商,广播商等等)希望分发这样的数字内容到很多用户或接收者中的每一个,以交换到许可证费用或其它回报。从而在这种场合中,内容可以是一首歌,一套歌曲,一部电影等等,而且分发的目的是为了产生许可证费用,这样的内容拥有者,给出选择,将更希望能约束用户对这些分发的数字内容能做些什么。例如,内容拥有者将希望能约束用户复制或再分发这样的内容给第二个用户,至少是发生这样的第二个用户拒绝支付内容拥有者许可证费用的情况。
另外,内容拥有者可能希望提供用户灵活性,以不同的许可证费用购买不同类型地使用许可证,而同时可以保持用户到事实上不论购买了何种许可证的条款。例如,内容拥有者可能希望被分发的数字内容仅仅被播放一个有限次的数量。仅仅对某个总时间,仅仅在特定类型的机器上,仅仅在特定类型的媒体播放器上,仅仅由特定类型用户使用等等。
在另一种场合中,内容部署者,例如组织的雇员或成员,希望分发这样的数字内容给组织内的一个或更多的其它雇员或成员,或者给组织外的其它个人,但又将希望阻止其它人再现此内容。这里,内容的分发更类似于基于组织的内容以机密或限止的方式共享,而与基于广播的分发相反以换取到许多许可证费用或其它的回报。
从而在这样的场合中,内容可以是文档表示,电子数据表单,数据库,电子邮件或类似物诸如可以在办公室框架内被交换的东西,而且内容部署者可能希望确保内容保留在组织或办公室框架内而且不被非授权的个人所再现,例如竞争者或对手。另外,这样的内容部署者希望限制接收者用这样分发的数字内容做什么。例如,内容拥有者将希望限制复制和再分发这样的内容给第二个用户,至少暴露内容到被允许再现内容的个人范围之外的人员的方式。
另外,内容部署者可能希望为各种接受者提供不同级别的再现权限。例如内容部署者可能希望被保护的数字内容对于某一类个人可以观看而不可打印,以及对于另一类个人可以观看和可以打印。
然而,在二种场合之中,分发发生之后,这样的内容拥有者/部署者具有即使有也是很小的对该数字内容的控制。特别有问题的是考虑到事实上在操作上每个个人计算机都包括必需的软件和硬件,它们用来制作这种数字内容的精确的数字拷贝和下载这种精确的数字拷贝到可写的磁盘和光盘,或者通过如因特网的发送这种精确的数字拷贝到任何目的地。
当然,在内容被分发时,作为交易的一部分,内容拥有者/部署者可能要求数字内容的用户/接受者允诺不再以不欢迎的方式分发这样数字内容。然而,这样的允诺很容易作出也很容易破坏。内容拥有者/部署者可能试图通过若干种已知的安全设备之一防止这样的再分发,一般会涉及加密和解密。然而,很可能有少量以下情况,即要防止确定为无恶意的用户解密已被加密的数字内容,以非加密的格式保存这样的数字内容,并且再分发它们。
从而存在一种要求,用于提供数字权限管理(DRM)和实施的结构和方法,它们允许数字内容的任意的格式的控制再现和播放,在此这种控制是灵活的和可由这种数字内容的内容拥有者/部署者定义的。尤其是存在一种要求用于这种结构,它允许并方便于这种受控制的再现,特别在办公室或组织或类似机构的环境中,那里文档在被规定的一组个人或几类个人之中是共享的。更尤其是,存在一种要求用于这种结构,它允许被发行的内容没有从服务器得到第一次的批准并且允许发行的个人自己发行使用许可证,以再现发表的内容而不用为了批准而联系服务器。
发明概述
上述要求至少在本发明中被部分地满足,在本发明中发行用户发行数字内容并且发布给自己相应的数字发行者许可证以允许自己再现发行的数字内容。发行用户得到由数字权限管理(DRM)服务器提供的发行证书,这里该发行证书具有一个公共密钥(PU-OLP)和一个相应的由公共密钥加密的私人密钥(PR-OLP)与发行用户(PU-ENTITY)相关联以形成((PU-E NTITY(PR-OLP))。
内容被部署并根据内容密钥(CK)被加密,并且权限标签被建立用于该以(CK)加密的内容,该(CK)由DRM服务器的公共密钥(PU-DRM)加密以形成(PU-DRM(CK))。PU-ENTITY(PR-OLP)从发行证书中重新得到相应于(PU-ENTITY)的私人密钥(PR-ENTITY)被用于(PU-ENTITY(PR-OLP))以得到(PR-OLP),并且建立的权限标签以(PR-OLP)签署以建立签署权限标签(SRL)。该建立的SRL和该发行证书然后被串接到加密的内容以形成一个可分发到另一个用户的内容数据包,该用户必须与DRM服务器联系以获得相应的带(CK)的许可证,以再现其中被保密的内容。明显地,只有这样的DRM服务器具有相应于(PU-DRM)的私人密钥(PR-DRM),并且有能力对(PU-DRM(CK))应用(PR-DRM)以获得(CK)。
相应于内容数据包的许可证数据也被建立,并且具有(CK)),它有(PU-ENTITY)加密以形成(PU-ENTITYCK),该建立的许可证数据是以(PR-OLP)签署以建立发行者许可证,并且发行证书附加到发行者许可证上。只有具有对应于(PR-ENTITY)的(PR-ENTITY的发行用户能对从发行证书中得到的(PU-ENTITY(CK))使用这样的(PR-ENTITY)以获得(CK)并因此解密该被加密的内容并以其用于再现。
特别是,发行用户基于证书链验证该发行证书以从该发行证书获得(PU-OLP),并且应用该获得的(PU-OLP)以验证发行证书的签名。然后,发行用户从验证了的发行许可证重新得到(PU-ENTITY(CK)),对(PU-ENTITY(CK)应用相应于(PU-ENTITY)的私人密钥(PR-ENTITY)以获得(CK),并且对(CK(内容))应用(CK)导出内容。然后该内容传递给再现应用程序以实际地再现内容。
附图的简要说明
前面的概述,和以下详细描述的本发明的实施例,当与附图结合阅读时将能更好地理解。为说明本发明的目的,在附图中展示有实施例,目前是较佳的。然而应该理解,本发明并不受限于所示的确切的安排和手段。在例图中:
图1是一个方框图,表示一个范例性的非限制的计算环境,在其中本发明可以被实现;
图2是一个方框图,表示一个范例性的具有各种计算设备的网络环境,在其中本发明可以被实现;
图3是一个相应用于发行数字内容的发明的方法和系统的较佳实施例的功能方框图;
图4是一个相应用于发行权限管理的数字内容的发明的方法的较佳实施例的流程图;
图4A是一个方框图,展示由图4的方法产生的签署权限标签的结构;
图5是一个相应用于许可权限管理的数字内容的发明的系统和方法较佳实施例方框图;
图6A和图6B是一个相应用于许可权限管理的数字内容的发明的方法的较佳实施例流程图;
图7是方框图,相应于本发明的一个实施例展示由DRM服务器发布给用户的证书,以允许用户实行离线发行;
图8是方框图,展示带有发行者许可证的图7的证书,该许可证允许发行用户离线再现发行的内容;
图9是流程图,相应于本发明的一个实施例,展示由发行用户获得图8的发行许可证所实行的关键步骤;
图10是流程图,相应于本发明的一个实施例,展示由发行用户使用图9中获得的发行许可证以再现相应内容所实行的关键步骤;
图11是方框图,展示一个基于信任系统例子的实施结构
图12是方框图,展示多个DRM服务器,例如存在于本发明的结构中,其中每个(进入的)DRM服务器是登记的或次级登记到由另一个登记的DRM服务器发布同样的登记证明的结构之中;
图13是一个方框图,展示带有担保证明的图12的登记证明,至少某些例子中由进入的DRM服务器向登记DRM服务器展现该担保证明;并且
图14和图15是流程图,展示由图13和图14的登记的和进入的DRM服务器对进入DRM服务器实行登记或次级登记的关键步骤。
发明的详细说明
计算机环境
图1和以下的讨论打算提供适合的计算环境的一般性简要描述,在该环境中本发明可被实现。然而应该理解,手持式、便携式、和其它所有种类的计算设备都被考虑结合本发明的使用。当通用目的计算机在以下讨论时,这只是一个例子,并且本发明只需要具有网络服务器互操作性和交互性的瘦客户机。这样,本发明可以在一个网络主机服务的环境中被实行,在其中极小或很少客户机资源被包含,也就是,在网络环境中客户机设备服务只不过如浏览器或与万维网的接口。
虽然并不要求,本发明可以通过应用程序接口(API)实行,由部署人员使用,并且/或者包括在网络浏览软件中,它将以计算机可执行指令的一般背景中进行描述,例如程序模块,由一台或更多的计算机执行,例如客户工作站、服务器、或者其它的设备。一般而言,程序模块包括例行程、程序、对象、组件、数据结构以及实现特别的任务或实行特殊的抽象数据类型的类似项。典型地,程序模块的功能性在各个实施例中按要求可能被组合或分散。还有,熟悉本领域的技术人员能理解本发明可以以其它的计算机系统配置来实践。其它熟知的计算系统、环境、和/或配置,也可能适合于本发明的使用,包括但不限于个人计算机(PC)、自动检票机、服务器计算机、手持的或膝上型设备、多处理机系统、基于微处理机的系统、可编程消费性电子产品、网络PC、小型机、大型机以及类似者。本发明也在实践于分布式计算环境,那里任务由远程处理设备完成,这些设备通过通信网络或其它数据传输媒介链接。在分布式计算环境中,程序模块可以定位在本地或者在远程计算机的包括内存储器设备的存储媒体中。
图1在此表示一个合适的计算系统环境例子100,在其中本发明可以实施,虽然如上已清楚该计算系统环境100只是适用的计算环境的一个例子,并且并不打算建议对作为本发明的使用及功能性的范围作任何的限制。计算环境100也并不被解释作为具有任何依赖性或者要求与任何在范例操作环境100中表示的组件的任何一个或它们的组合有关。
参照图1,完成本发明的范例系统包括以一个计算机110形式的通用目的计算设备。计算机100的组件可包括,但不限于,处理单元120,系统内存130,和系统总线121,它耦合各种系统组件包括系统内存到处理器120。系统总线121可以是几种总线结构中的一种,包括存储器总线及存储控制器,外围总线,和使用各种总线结构的任何一种的局部总线。作为例子,而不是限制,这样的结构包括工业标准结构(ISA)总线、微通道结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线、以及外围部件互连(PCT)总线(也称作为Mezzanine总线)。
计算机110典型地包括各种计算机可读取媒体。计算机可读取媒体可以是任何种类能由计算机110存取的媒体,并且包括易失的和非易失的媒体、可移动的和不可移动的媒体二者。计算机存储器媒体包括以下二者,易失的和非易失的、可移动的和不可移动的媒体,按任何方法或技术实行信息(例如计算可读取的指令)的存储、数据结构、程序模块或其它数据。
计算机存储媒体包括,但不限于,RAM、ROM、EEPROM、快闪存储器或者其它存储技术、CDROM、数字通用光盘(DVD)或者其它光盘存储器、盒式磁带、磁带、磁盘存储器或者其它磁性储存设备、或者任何其它的能存储所设定的信息并能由计算机110访问的媒体。通信媒体典型地体现为计算机可读指令、数据结构、程序模块或者其它在被调制数据信号,例如载波或其它传送机制中的数据并且包括任何信息递交的媒体。术语“被调制数据信号”意指具有一个或多个其特征按照在信号中编码信息的方式设置或改变的信号。作为例子,但非限制,通信媒体包括有线媒体例如有线网络或者直接连线连接,以及无线媒体例如超声的、RF、红外的和其它的无线媒体。以上各种的任何的组合也应包括在计算机可读媒体的范围之中。
系统存储器130包括易失和/或非易失存储器形式的计算机存储媒体,例如只读存储器(ROM)131和随机存取存储器(RAM)132。基本的输入/输出系统133(BIOS),包含帮助在计算110的元件之间传输信息的基本例行程序,例如在启动期间,典型地被存储在ROM 131中。RAM 132典型地包含数据和/或程序模块,它们可直接存取以使和/或马上由处理器120进行操作。作为例子,而非限制,图1表示操作系统134、应用程序135、其它程序模块136、和程序数据137。
计算机110还可以包括其它可移动的/不可移动的、易失的/非易失的计算存储媒体。只是作为例子,图1表示硬盘驱动器141,它读出或写入不可移动,非易失的磁媒体,磁盘驱动器151,它读出或写入可移动、非易失的磁盘152,以及光盘驱动器155,它读出或写入可移动的非易失的光盘156,例如CD ROM或其它的光媒体。其它的可移动的、不可移动的、易失的/非易失的计算机存储媒体可用于范例性的操作环境之中,包括(但不是限制)盒式磁带、快闪存储卡、数字通用光盘、数字视频磁带、固态RAM、固态ROM、以及类似者。硬盘驱动器141典型地通过不可移动的存储器接口(如接口140)连接到系统总线121,而且磁盘驱动器151和光盘驱动器155被典型地通过可移动存储器接口(如接口150)连接到系统总线121。
以上讨论的与计算机存储媒体关联的在图1中表示的驱动器提供了计算机可读取的指令的存储、数据结构、程序模块和其它用于计算机110的数据。在图1中,例如,硬盘驱动器141被表示为存储操作系统144、应用程序145、其它程序模块146、以及程序数据147。注意这些部件可以与操作系统134、应用程序135、其它程序模块136、以及程序数据137相同或者不同。操作系统144、应用程序145、其它程序模块146、以及程序数据147被给以不同的号码以表示至少它们是不同的拷贝。用户可以输入命令和信息到计算机110,通过输入设备例如键盘162和指点设备161,一般称作为鼠标,轨迹球或者触摸板。其它输入设备(未显示)可能包括话筒、游戏杆、游戏板、卫星式转盘、扫描仪,或类似者。这些和其它的输入设备往往通过与系统总线121耦合的用户输入接口160连接到处理器120,但也可以由其它接口和总线结构相连接,例如并行端口、游戏端口或者通用串行总线(USB)。
监视器191或者其它类型的显示设备也通过接口,例如视频接口190,连接到系统总线121。图形接口182,例如北桥(Northbridge)也被连接到系统总线121。北桥是与CPU或者主机处理器120通信的芯片组,并且还负责对加速图形端口(AGP)的通信。一个或多个图形处理部件(GPU)184可以与图形接口182通信。关于这点,GPU 184通常包括在芯片上的存储器,例如寄存器存储器,并且CPU184与视频存储器186通信。然而,GPU 184只是一个协处理器的例子,并且大量的协处理设备可以包括在计算机110中。监视器191或者其它类型的显示设备也通过接口(如视频接口190)连接到系统总线121,该接口可以轮流与视频存储器186通信。除监视器191之外,计算机还可以包括其它的外围输出设备,例如扬声器197和打印机196,它们可以通过输出外围接口195相连接。
计算机110可以在网络环境下操作,使用与一台或多台远程计算机的逻辑连接,例如远程计算机180。远程计算机180可以是一台个人计算机、一台服务器、一台路由器、一台网络PC、对等设备或者其他公共网络结点,并且典型地包括许多或所有与计算机110相关的以上描述的元件,尽管在图1中只有存储器设备181被表示。在图1中描述的逻辑连结包括局域网(LAN)171和广域网(WAN)173,但还可以包括其它的网络,这样的网络环境在办公室、企业范围计算机网络、企业内互联网和因特网等之中使很平常的。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接到LAN 171。当在WAN网络环境中使用时,计算机110典型的包括一个调制解调器172,或者其它的通信手段用于对WAN173(例如因特网)建立通信。调制解调器172可以是内置的或者外置的,可以通过用户输入接口160或者其它适当的机构连接到系统总线121。在网络环境中,描写成相关于计算机110的程序模块,或者其中的一部分被存储在远程存储器设备中。作为例子,而不是限制,图1表示远程应用程序185作为驻留在存储设备181中。可以理解网络连接的表示是范例性的,以及在计算机之间建立通信连接的其它手段可以被使用。
普通的熟悉本领域的技术人员能够理解,计算机110或者其它客户机设备可以被部署作为计算机网络的一部分。由此,本发明适用于任何的计算机系统,该系统具有任何数量内存或存储部件和任何数量应用程序和过程发出现在跨越任何数量的存储部件或卷上。本发明可以应用于在具有远程或本地的存储器的网络环境中部署的带有服务器计算机和客户机计算机的环境。本发明还可应用于独立的具有编程语言功能性、解释和执行能力的计算设备。
分布式计算通过直接在计算机设备和系统之间的交换,促进了计算机资源和服务的共享。这些资源和服务包括信息的交换、高速缓存,和用于文件的磁盘存储器。分布式计算采取了网络连接性的优点,允许客户机发挥他们集体的功效以利于整个企业。对此,各种设备可能具有应用程序、对象或者资源,它们可以互动以实现本发明内含的鉴别技术,以用于委托的图形管道。
图2提供范例性网络或分布式计算环境的原理图。该分布式计算环境包含计算对象10a、10b等以及计算对象或者设备110a、110b、110c等。这些对象可能包括程序、方法、数据存储、可编程逻辑等等。该对象可能包含同样的或不同设备的各个部分,例如PDA、电视机、MP3播放机、电视机、个人计算机等。每个对象可以用通信网络14的方法与另外的对象通信。这个网络可能本身包含其他的计算对象和计算设备对图2的系统提供服务。依照本发明的概念,每个对象10和110都可能包含应用程序,它可能要求本发明的鉴别技术用于委托的图形管道。
还能意识到一个对象,例如110c,可能作为另一台计算设备10或110的宿主。这样,虽然被描述的物理的环境可以展示作为计算机的相连的设备,这样的示例仅仅是范例性的,并且物理环境可以另外的方式被刻画或描述成包含各种数字设备,例如PDA、电视机、MP3播放器等、软件对象如接口、COM对象以及类似者。
有各种系统、组件、和网络配置,支持分布式计算环境。例如,计算机系统可能由有线的和无线的系统,由局域网络或广域的分布式网络连接在一起。当前,很多网络都和因特网耦合,这就提供了广域分布式计算的基础结构并且包含了许多不同的网络。
在家庭网络环境中,至少有四种全异的网络传输媒体,它们中的每一个支持唯一的一个协议,如电源线、数据(无线和有线两者)、语音(如电话)和娱乐媒体。大多数家庭控制设备如电灯开关和应用电器可能使用电源线以连接。数据服务作为广播波段(如DSL或电缆调制解调器)可能进入家庭并且在家中使用无线(例如Home RF或802.11b)或者有线(例如Home PNA,Cat 5,甚至Cat 3)连接就可访问。语音话务可以作为有线的(例如Cat 3)或者无线的(例如蜂窝电话)进入家庭并且可以在家中使用Cat 3连线进行分布。娱乐媒体既可通过卫星也可通过电缆进入家庭,并且典型的是使用电视电缆分布进入家庭。IEEE1394和DVI也作为数字连接用于各簇媒体设备。所有这些网络环境和其他都作为协议标准出现,可以相互连接形成企业内部网,并可以通过因特网与外部世界连接。简而言之,存在各种全异的资源用于存储和传送数据、并且顺序地向前移动,计算设备将要求在数据处理流水线的各部分保护内容的手段。
因特网通常指的是利用TCP/IP协议套件的网络和网关的集合体,该协议套件在计算机网络技术领域是熟知的。TCP/IP是“Transport ControlProtocol/Interface Program”的缩写。因特网可以描述成一个地域上分布的远程计算机网络系统,通过计算机执行的网络协议相互连接,允许用户通过网络交互和共享信息。由于如此广为传播的信息共享,如因特网的远程网络也就很普遍地进展成为一个开放系统,对此部署人员可以设计软件应用程序用于完成特殊的操作和服务,基本上没有约束。
这样,网络基础结构就能启用网络拓朴,例如客户机/服务器结构、对等结构、或者混合结构的主机。客户机是组和类的成员,他们使用与其不相关的其他的组和类的服务。这样,在计算中客户机是一个过程等,大致上是一组指令或任务,它请求其他程序提供的服务。客户机过程利用请求的服务而不需要“知道”其他程序或者服务自身的详细情况。在客户机/服务器结构中,特别是一个网络系统,客户机通常是一台计算机,它存取由另外的计算机(例如服务器)提供的共享的网络资源。在图2的例子中计算机110a、110b等能够考虑为客户机,而计算机10a、10b等被考虑为服务器,在此,服务器10a、10b等维护数据,这些数据然后将被复制进客户计算机110a、110b等中。
服务器典型地是一个远程计算机系统可以通过远程网络如因特网被存取。客户机过程可以在第一台计算机系统中活动,并且服务器过程可以在第二台计算机系统中活动,彼此通过通信媒体通信,以此提供分布式的功能并允许多个客户机得到服务器的信息聚集的性能的优点。
客户机和服务器利用协议层提供的功能彼此通信。例如,超文本传送协议(HTTP)是一个普遍的协议被结合到万维网(WWW)中。特别是,典型地,计算机网络地址如通用资源定位器(URL)或者网际协议(IP)地址被用于服务器和客户机的相互识别。网络地址可以被看作如地址。例如,可以通过通信媒体提供通信。特别是,客户机和服务器可以通过TCP/IP连接彼此相互耦合用于高容量的通信。
这样,图2表示一个网络或分布式环境的范例,带有和通过本发明可以在其中实施的网络/总线与客户计算机通信的服务器。更详细地,根据本发明,一些服务器10a,10b等通过通信网络/总线14(可以是LAN、WAN、企业内部网、因特网等)与一些客户机或远程计算设备110a、110b、110c、110d、110e等相互连接,这些设备是例如便携式计算机、手提式计算机、瘦客户机、网络应用电器或者其他的设备如VCR、TV、炉子、灯、加热器和类似物。这样可看到本发明可以用于任何计算设备,与其相连接可设计用于处理、存储、或者再现从一个信托源来的安全的内容。
在通信网络/总线14是因特网的网络的环境中,例如,服务器10可以是Web服务器,客户机110a、110b、110c、110d、110e等与该服务器通过一些已知的协议之一例如HTTP通信。服务器10可以用作为客户机110,就像在分布式计算环境中的特征。通信可以是有线的或无线的,只要适当。服务器设备110可以是也可以不是通过通信网络/总线14通信,而且此外可能具有独立的通信联系。例如,在TV和VCR的场合,可能有也可能没有网络的方面对其控制。每个客户计算机110和服务器计算机10可能被装备有各种应用程序模块或者对象135,并且带有对各种类型存储元件和对象的连接或访问,垮越在这些存储元件或对象上文件可以被存储或者对于它文件的部分可以被下载或被迁移。这样,本发明可以在一个计算机网络的环境中被利用,这个环境具有能对计算机网络/总线14访问和交互的客户计算机110a、110b等,以及具有能够与客户计算机110a、110b等交互的服务器计算机10a、10b等和其他设备111和数据库20。
数字权限管理(DRM)概述
正如所知,并参考图11,数字权限管理(DRM)和实施关于数字内容12是非常需要的,这些内容是例如数字音频、数字视频、数字文本、数字数据、数字多媒体等,在此这样的数字内容12将被发布到用户。当用户收到时,用户借助于恰当的再现设备如个人计算机14上的媒体播放器或类似者再现或“播放”该数字内容。
典型地,内容拥有者或部署者(以下成为“拥有者”)分发这样的数字内容12时,可能希望限制用户对分发的数字内容12做些什么。例如,内容拥有者可能希望限制用户复制和再分发这样的内容给第二个用户,或者可能希望允许被分发的数字内容12仅仅被播放一个有限的次数、仅仅在一个特定的总时间内播放、仅仅在特定的机器上播放、仅仅在特定类型的媒体播放机上播放、仅仅由特定的用户播放等等。
然而,分发发生之后,这样的内容拥有者即使有也只是极少能对数字内容12的控制。从而,一个DRM系统10允许对任意形式的数字内容12受控制地再现和播放,其中这样的控制是灵活的并且可以由这样的数字内容的内容拥有者所定义的。典型地,内容12按数据包13的形式通过任何一个相应的分发通道分发给拥护。被分发的数字内容数据包可能包含用对称加密/解密密钥(KD)加了密的内容12,(也就是(KD(CONTENT))),同时其他的标识内容的信息,如何对这样的内容得到许可证,等。
基于委托的DRM系统10允许数字内容12的拥有者指定许可证的规则,在用户的计算设备14上这样的数字内容12被允许再现之前规则必须被满足。这样的规则可以包括上述的时间要求,并且被具体表述在数字许可证或文档中(以下称“许可证”)16,用户/用户的计算设备14(以下,本术语可以互换,除非环境要求另外)必须从内容拥有者或者代理处获得该许可证。这样的许可证16还包括解码密钥(KD)用于解密数字内容,该内容多半按照可以由用户的计算设备解密的密钥被加密。
内容拥有者对于数字内容12的片段必须相信用户的计算设备14将遵守规则和要求,这些是规则和要求由这样的内容拥有者在许可证6中描述,也就是,数字内容12将不会被再现,除非在许可证6中的规则和要求被满足。从而,较佳地,该用户的计算设备14被提供有受托收托的部件和机制18,它不能再现数字内容12,除非根据具体在许可证16中的、与数字内容12相关连的许可证规则并且被用户得到。
委托部件18,典型地,具有一个许可证评估器20,评判许可证16是否有效,审查在有效的许可证16中许可规则和要求,并基于该审查的规则和要求确定申请的用户是否有权以所要求的方式再现申请的数字内容12,以及其他事情。应该理解,许可证评估器20在DRM系统10中是可信任的,以根据在许可证6中的规则和要求实施数字内容12拥有者的愿望,而且用户不可能简单地为任何目的、恶意的或其他方式改变这样的委托元件。
应该理解,在许可证16中的规则和要求能够基于任何的若干因素描述用户是否有权再现数字内容12,这些因素包括用户是谁、用户定位在哪里、用户正在使用哪种类型的计算设备、什么再现应用程序在调用DRM系统、日期、时间等等。另外,例如,许可证16的规则和要求可以限制许可证16一个预定的播放数目,或者一个预定的播放时间。
可以根据任何适当的语言和语法在许可证16中指定规则和要求。例如,该语言可以简单地描述必须满足的属性和数值(DATE必须比X迟,例如),或者根据描述脚本(IF DATE大于X,THEN DO…,例如)可能要求功能的表现。
当许可证评估器20判定许可证16是有效的并且在此满足了规则和要求时,数字内容能够被再现。特别是,为再现该内容12从许可证12得到解密密钥(KD)并且应用到从内容数据包13来的(KD(CONTENT))产生真实的内容12,并且该真实的内容然后实际上被再现。
发行数字内容
图3是发行数字内容的系统和方法的功能方框图。“发行”,作为这里使用的术语,表示应用或服务遵循的一个过程,以用委托实体建立一组权限和条件,它们可以由该实体为该内容发布,以及给可以发布这些权限和条件的人。根据该发明,发行的过程包括加密数字内容和相关联的一致的可实施的权限的清单,内容的作者打算以此用于所有可能的内容的使用者。这个过程可以以安全的方式进行,以防止对任何权限或内容的访问,除非内容的作者打算这样做。
三个特别的实体用来发行安全的数字内容:一个内容准备应用程序302,它在客户机300上执行并且准备发行的内容;一个数字权限管理(DRM)应用程序接口(API)306,它也驻留在客户设备300中;和一个DRM服务器320,通过一个通信网络330例如因特网、局域网、广域网、或者其组合通信耦合到客户机300。
内容准备应用程序302可以是任何产生数字内容的应用程序。例如,应用程序302可以是字处理程序或者其他的产生数字文本文件、数字音乐、视频或者其他此类内容的发行程序。该内容还可以包括流内容,例如实况的或者录像的事件的音频/视频流,或者样例。应用程序302被提供带有一个加密数字内容的加密密钥,因而形成一个加密的数字内容文件304,并且用户提供的权限数据被紧密地与在数字内容文件304中的加密内容相关联。权限数据包括每个在数字内容中具有权限的实体的身份,以及一组用于每个标识的实体的权限和条件。
这样的实体,例如,可以是一个个体、一类个体、或者一个设备。这样的权限可以包括对数字内容的读取、编辑、复制、打印等权限。条件可以包括最小的系统要求、日期和时间的限制、播放次数和类似项。
客户机API 306传递加密的数据内容和权限数据到DRM服务器320。使用一个以下将详细说明的过程,该DRM服务器320决定是否可以实施该权限数据,并且如果可以,DRM服务器320签署该权限数据以形成一个签署的权限标签(SRL)308。然而,一般地,任何委托实体可以签署该权限数据,最好使用一个由该DRM服务器320委托的密钥。例如,客户机可以使用一个由DRM服务器320提供给它的密钥签署权限数据。
权限标签308可以包括表示权限描述、加密的内容密钥、以及对权限描述和加密的内容密钥的的数字签名。如果该DRM服务器320正在签署权限标签,它传递签署的权限标签308通过客户机API306返回给客户机,该API306它在客户机设备300上存储该权限标签308。内容准备应用程序302然后将该签署权限标签308与加密的数字内容文件304相关联,例如,通过串接以形成一个受权限管理的内容文件310。但是,注意,该SRL308可以被存储在与内容文件304分离的一个已知的位置,这可通过将对SRL308的一个引用串接到内容文件304以构成内容文件310而达到。
现在参照图4,用于发行权限管理数字内容的一个方法被展示。在步骤402,应用程序302生成一个内容密钥(CK),它被用于加密该数字内容。该内容密钥(CK)典型地是一个对称密钥,尽管任何密钥可以被用来加密数字内容。如所知,对称密钥是由一个对称密钥算法来使用,既用于加密又用于解密。相应地,当在发送者和接收者之间共享时,(CK)应该被很好地隐藏。
在步骤404,应用程序302以(CK)加密数字内容以形成加密的数字内容304(即,(CK(内容)))。另外,相应于(CK(内容))的权限数据由内容的发行者或者由另一个实体生成。注意这样的权限数据可能是顾客权限数据或者如同从预定义的模板中获得的权限数据。如上所述,权限数据可以包括一个实体的清单,该实体将被授权享用该内容,实体中的每一个拥有关于它的内容的特定的权限,而且任何条件可以被加载在这些权限上。
在步骤406,该API306产生第二个加密密钥(K2),它被用来加密内容密钥(CK)。较佳地,(K2)也是一个对称密钥。在步骤408该API306用(K2)加密(CK)以形成(K2(CK))。在步骤410该API306丢弃(CK),因此该(CK)现在只能由解密的(K2(CK))得到。确保(CK(内容))被保护到中央DRM服务器320并且所有对内容的“许可证请求”根据权限数据集中地完成,该API306,在步骤412,联系该提供的DRM服务器320,并且重新得到该公用密钥(PU-DIM)。在步骤414,该API306用(PU-DIM)加密(K2)得到(PU-DIM(K2))。这样(CK)可以被保护到(PU-DRM))以确保当要求对(CK(内容))解密时,该DRM服务器320是仅有的实体,它将有能力达到对(CK)的访问。在步骤416,该API306用(K2)加密权限数据(例如,授权实体的清单和相应的每个在清单中的授权实体相关联的权限和条件)产生(K2(权限数据))。
在替换的实施例中,(CK)可以被用来直接加密权限数据以产生(CK(权限数据)),并且(PU-DRM)可以被用来直接加密(CK)以产生(PU-DRM(CK)),从而完全丢弃(K2)的使用。然而,使用(K2)加密权限数据和(CK)允许这样的(K2)遵从任何特殊的算法相,这种算法可能听从于DRM服务器,而(CK)可能由一个独立于DRM服务器的实体指定并且可能不听从于DRM服务器。
在步骤418,该内容保护应用程序302递交(PU-DRM(K2))和(K2(权限数据))给DRM服务器320作为用于签署的权限标签。作为替换的方法,客户机自己也可以按照以下阐述的方式签署该权限数据。如果权限数据正在递交给服务器签署,那么,在步骤420该DRM服务器320访问该权限数据并且验证它可以执行在递交的权限标签中的权限和条件。为验证它可以执行该权限数据,该DRM服务器320对(PU-DRM(K2))使用相应于(PU-DRM)的私人密钥(PR-DRM)以得到(K2),并且然后对(K2(权限数据))使用(K2)以得到明文的权限数据。服务器320然后就可以进行所有的政策检查以验证在权限数据中的用户、权限、和条件是在由服务器320行使的所有政策之中。服务器320签署原始的包括(PU-DRM(K2))和(K2(权限数据))的递交的权限以得到签署权限标签(SRL)308,这里签名是基于DRM服务器320的私人密钥(PR-DRM),并且返回该SRL308给API 306,它然后把返回的SRL 308提交给客户机应用程序302。
该SRL 308是一个数字签名的文件,它使它防止篡改。另外,该SRL 308是独立于加密内容用的实际的密钥类型和算法,但是保持对被保护的内容的1对1关系。现在参照图4A,在本发明的一个实施例中,SRL 308可能包括关于内容的信息,它是该SRL 308的基础,可能包括内容的ID;在关于签署SRL 308的DRM服务器的信息,包括(PU-DRM(K2))和参考信息如用于在网络上定位DRM服务器的URL和如果URL失效时的返回信息;描述SRL 308自身的信息;(K2(权限数据)):(K2(CK));以及数字签名(S(PR-DRM)),及其他。
通过确认受委托的实体签署该权限数据以建立签署权限标签308,DRM服务器320宣称它将按照发行者在权限标签308的权限数据中所描述的条目为内容发布许可证。如应该理解的,用户被要求获得一个许可证以再现内容,特别是因为许可证包含有内容密钥(CK)。当用户想得到许可证用于解密内容时,用户可以提交一个包括用于内容的SRL 308的许可证请求及一个证书,该证书验证用户对于DRM服务器320或者其他的许可证发布实体的凭证。然后许可证发布实体可以解密(PU-DRM(K2))和(K2(权限数据))以产生权限数据,为许可证请求实体列出所有的作者(如果有)同意的权限清单,而且构建一个只有这些特定权限的许可证。
如上所述,当应用程序302接收SRL 308时,这样的应用程序302把签署的权限标签308和相应的(CK(内容))相串接以形成受权限管理的数字内容。作为替换方式,权限数据被存储在已知的位置,加密的数字内容一起提供了对此位置的引用。这样,由DRM允许的再现应用程序可以通过再现应用程序试图再现的内容的片段来发现签署的权限标签308。这个发现触发再现应用程序启动对于DRM许可证服务器320的许可证请求。例如,发行应用程序302能够存储URL到DRM许可证服务器320,或者DRM许可证服务器320能够在数字签名之前把它自身的URL作为元数据片段嵌入到权限标签中去,从而由再现应用程序调用的DRM客户机API 306能够识别正确的DRM许可证服务器320。
为发行内容获取许可证
现在参照图5,用于许可受权限管理的数字内容的系统和方法被展示。“许可”在此用作为一个术语表示应用程序或服务应遵循的一个过程,以请求和接收一个许可证,该许可证将使在许可证中命名的实体能够按照许可证所描述的条款享用该内容。对许可过程的输入可以包括与正被请求许可证的内容关联的签署权限标签(SRL)308,以及正被请求许可证的实体的公共密钥证书。注意请求许可证的实体并不必须是要求得到许可证的实体。典型地,许可证包括从SRL308来的权限的描述、一个能够解密加密内容的加密密钥、以及一个对于权限描述和加密密钥的数字签名以维护合法性及防止篡改。
准备性地,客户机API 306通过通信网络330传递权限管理内容310的签署的权限标签308到DRM服务器320。如上所述,权限标签308包含按照DRM服务器320的公共密钥(PU-DRM)(即,(PU-DRM(CK))加密的内容密钥(CK)。然后,在发布许可证的过程中,DRM服务器320对(PU-DRM(CK))使用(PR-DRM)以得到(CK)。它然后使用已在许可证请求中传递来的公共密钥证书中的公共密钥(PU-ENTITY)再加密(CK)(即,(PU-ENTITY(CK)))。该新加密的(PU-ENTITY(CK))然后被放在许可证中。这样,许可证能够被返回给调用者而没有暴露(CK)的危险,因为只有与(PU-ENTITY)相对应的私人密钥(PR-ENTITY)的持有者才能从(PU-ENTITY(CK))中恢复(CK)。客户机API 306然后使用(CK)解密被加密的内容以形成解密的数字内容312。然后客户机应用程序302就能够根据在许可证中提供的权限使用解密的数字内容312。
作为替换,并且在以下将详细描述,例如,客户机诸如发行客户机能够发布使用许可证给自己以享用该内容。
转到图6A和6B,一种许可权限管理数字内容的方法被展示。在步骤602中,许可证发布实体如DRM服务器320接收一个许可证请求,该请求包含或者是公共密钥证书或者是对一个或多个所请求的每个许可证获取者的身份。假设,如果身份被指定,DRM服务器320能够从目录、数据库、或类似地方中获得相应的公共密钥证书,如果许可证请求只是对一个许可证获取者,只有一个证书或身份被命名。如果许可证请求是针对多个许可证获取者,证书或身份可以为每个可能的许可证获取者命名。在步骤604中,如果要求的话,请求实体(即,作出许可证请求的实体)被鉴别。在步骤606中,同样如果要求的话,该实体被判定是否允许请求许可证。
如果在步骤608中,该发布实体判定公共密钥证书没有被包含在许可证请求中,那么发布实体使用指定的身份实行对用于适当的公共密钥证书的目录服务或数据库进行查找。如果在步骤610中该发布实体判定证书在目录中,那么,在步骤612中证书被检索到。如果对于给定的潜在的许可证获取者的证书无论在请求中还是在目录中都找不到,那么许可证服务器不为该潜在的许可证获取者产生许可证,在步骤614,一个出错信息返回给请求实体。
假设DRM服务器320有至少是一个潜在的许可证获取者的公共密钥证书,那么在步骤616,这样的DRM服务器320证实每张许可证获取者证书是信任的。如果未被证实,DRM服务器320判定许可证获取者证书的发行者是不在可信任的发布者清单之中,然后对于该许可证获取者请求失败,并且在步骤614中产生出错信息。这样,任何证书没有被可信任的发布者发布的潜在的许可证获取者都没有收到许可证。
另外,DRM服务器320较佳地完成对证书链上所有实体的数字签名的验证,从被委托的发布者证书到个别的许可证获取者的公共密钥证书。验证在链中的数字签名的过程是一个熟知的算法。如果对于给定的潜在的许可证获取者的公共密钥证书没有被证实,或者在链中的证书没有被证实,潜在的许可证获取者不被信任,因此许可证没有发布给潜在的许可证获取者。否则的话,在步骤618许可证能够发布。过程在步骤20中重复,直到所有请求许可证的实体都被处理完。
如在图6B中所示,DRM服务器320继续验证在许可证请求中接收到的签署权限标签308。在一个实施例中,DRM服务器320有每个权限标签签署的一个主拷贝。 从而,在许可证时间(在步骤622),DRM服务器320可以检索到该主权限标签的拷贝。该主权限标签可以是比在许可证请求中发送的权限标签拷贝更加新的,并且因此权限标签将被使用来产生该要求的许可证。如果没有找到主权限标签,DRM服务器320在步骤624根据预定义的政策判定是否基于在请求中的权限标签发布一个许可证。如果政策不允许,在步骤626许可证请求失败,并且在步骤628一个出错信息返回给API 306。
在步骤630,DRM服务器320验证SRL 308且特别是对它的数字签名。如果SRL 308没有被证实,在步骤626许可证请求失败,并且在步骤628一个出错信息返回给API 306。
在所有的验证都完成后,DRM服务器为每个批准的许可证基于SRL 308构建一个许可证。在步骤632,DRM服务器320将被发布给每个许可证获取者的许可证生成各自的权限说明。对每个许可证获取者,DRM服务器320对照在权限标签的权限说明中命名的身份评估该许可证获取者的公共密钥中命名的身份。在步骤636,DRM服务器320从SRL 308中获取(PU-DRM(K2))和(K2(CK))并且应用(PR-DRM)以获取(CK)。然后发布实体使用从许可证获取者的公共密钥证书来的(PU-ENTITY)重新加密(CK)以产生(PU-ENTITY(CK))。在步骤638,DRM服务器320把产生的权限描述和(PU-ENTITY(CK))串接并且使用(PR-DRM)数字地签署结果数据结构(即,S(PR-DRM))。这样,签署的数据结构就是对这个特定的许可证获取者的许可证。
在步骤640,DRM服务器320判定没有更多的许可证要为特别的请求产生。然后产生的许可证返回给请求的实体,在步骤642,随同适当的绑有许可证的证书链回到被委托授权者。
自发行签署权限标签308
在本发明的一个实施例中,SRL 308可以是由请求/发行用户自己签署。相应地,这样的用户不需要与DRM服务器320联系以为相关联的内容的片段获取SRL 308。作为结果,自发行也可以被看作为是离线(off-line)发行。在这样的实施例中,发行者也还应该有能力给自身发布一个发行者许可证,尤其是,因为自身发行的内容现在是DRM保护的并且这样的发行者许可证被要求允许发行用户再现现在受保护的内容。还应该理解,发行用户可以有对其他用户发布许可证的能力。
特别是,现在参照图7,在该实施例中,离线发行用户首先通过从DRM服务器320接收一个离线发行(OLP)证书810,它包含一个公共密钥(PU-OLP)和一个根据公开密钥加密的相应的私人密钥(PR-OLP),该公共密钥(PU-ENTITY)可以直接或间接地由用户的委托组件18(图11)访问以产生(PU-ENTITY(PR-CERT))。注意该(PU-ENTITY)可以例如是委托组件18的公共密钥,或者可以是可委托组件18的公共密钥访问的用户的公共密钥。该OLP证书810应该由DRM服务器320的私人密钥(PR-DRM)签署,从而,这样的DRM服务器320能够验证这样的OLP证书,如以下将要更详细讨论的。
另外,OLP证书810应该包括从(PU-DRM)返回给委托授权者的证书链,该授权者是发行用户或其他用户的委托组件18所委托的,使得这样的委托组件18可以验证这样的OLP证书810和任何与这样的OLP证书相关联的其他的证书或许可证,以下将再讨论。简要地说,也应该理解,证书链起始带有一个由委托授权者的私人密钥签署的根证书和具有一个链中的下一个证书的公共密钥。然后,每一个链中的中间的证书由与链中的前一个证书的公共密钥对应的私人密钥来签署,并且具有在链中的下一个证书的公共密钥。最后,附加有链的证书或许可证由与链中最后一个证书的公共密钥对应的私人密钥签署。
这样,为验证附加了链的证书或许可证,与受委托的授权者的私人密钥对应的公共密钥的知识被得到,并且这样的受委托的授权者的公共密钥被用来验证在链中的根证书的签名。假设根证书的签名被证实,那么,从根证书来的公共密钥被获取和用于验证在该链中的第一个中间证书的签名。该过程被重复串行地穿过链直到每个签名被验证,并且然后获得从在链中的最后一个中间证书来的公共密钥,并且用来验证附加了链的证书或许可证的签名。
如应理解,OLP证书810在要被离线发行的内容304和将对内容304发布许可证的DRM服务器320之间建立一个信托链中的链接。该OLP证书810可以基于XML/XrML语言或者任何其他适当的语言建立。
又如应理解,OLP证书810和附加的证书链授权发行用户用户自发行。可进一步理解为,密钥对(PU-OLP,PR-OLP)分离于(PU-ENTITY,PR-ENTITY),并被特定用于自发行。注意可以没有密钥对(PU-OLP,PR-OLP),这样DRM证书810只包含用户的公共密钥(PU-ENTITY),并且由DRM服务器320的私人密钥(PR-DRM)签署,使得该DRM服务器320可同样地验证。
自发行不同于图4所示的发行,用户实质上取代了DRM服务器320的有关执行步骤。特别是,用户签署提交的权限标签包含(PU-DRM(K2))和(K2(权限数据))或者包含(PU-DRM(CK))和(CK(权限))(后者将在图7和图8中展示),它们带有如从DRM证书810获得的(PR-OLP)(即,S(PR-OLP))以产生签署权限标签(SRL)308。使用OLP证书810的委托组件18客户机典型地基于附加证书链验证同样内容。如应理解,用户的委托组件18通过从这种OLP证书810获取(PU-ENTITY(PR-OLP))和应用(PR-ENTITY)来从OLP证书810获取(PR-OLP)。然而,注意,发行用户不能验证DRM服务器320可以执行在自身发行的SRL308中的权限。相应地,在需要基于自身发行的SRL 308请求许可证时DRM服务器320本生应该执行验证。
一旦发行用户自身发行了SRL308,用户串接该自身发行SRL308和用以产生相同于内容304内容的OLP证书810,并且带有SRL308的该内容304和DRM证书810作为权限管理内容310被分发给另一个用户。然后其他用户按照本质上如同在图6A和图6B中展示的同样方式从DRM服务器320请求并获取对于内容304/310的许可证。这里,虽然,许可证请求用户对DRM服务器320递交了作为串接到内容304的自发行SRL308和OLP证书810两者。然后DRM服务器320基于相应的(PU-DRM)验证在OLP证书810中的S(PR-DRM),并且从DRM证书810获取(PU-OLP)。DRM服务器320然后基于获取的(PU-CERT)验证STL308中的S(PR-OLP),并且继续如前。然而,注意,由于发行用户并没有验证DRM服务器320能够执行在SRL308中的权限,并且如前所述,DRM服务器自身应该在这个时间实行验证。
并注意,DRM服务器320只需验证在OLP证书810中的S(PR-DRM),由于假设它确证自身。相应地,来自OLP证书810的关联的证书链并不必要随同该OLP证书810发送到DRM服务器320,当然除非该链是必要的,例如如果链本身至少是S(PR-DRM)的部分基础。
然而,重要的是,发行用户应该能够再现现在受保护的内容304/310而不需要到DRM服务器320获取许可证。换句话说,不用到DRM服务器320的离线发行内容304/310的发行用户基于OLP证书810应该也有能力按照离线的方式自身发布一个许可证而不用到DRM服务器320,因此这样的用户能够再现离线发行的内容304/310。相应地,发行用户能够继续带有自发行内容310工作而不用对DRM服务器320的任何连接。
在一个本发明的实施例中,然后,现在转至图8,发行用户自身发布一个离线的基于自发行SRL308由(PR-OLP)签署的发行者许可证820,并且包含OLP证书810和它的证书链。假定地,发行者许可证820准予发行用户对自发行内容310的完全访问,虽然较少量的访问也是准予的。发行者许可证820可以是以XM/XrML语言或其语言书写,如同其它DRM许可证那样。如应理解,发行者许可证820包含根据(PU-ENTITY)加密的内容密钥(CK),它可以是由用户计算设备14的委托组件18获取,以形成(PU-ENTIT(CK))。
用于发行者许可证820的链从该许可证820进入到OLP证书810并且然后从委托授权者返回到根证书,也许通过一个或多个中间的证书。由于用户的委托的组件18能够得到与委托授权者的被用于签署根证书的私人密钥对应的公共密钥,该委托的组件18能够通过证书链自身验证发行者许可证820,并且随着验证能够从中得到(PU-ENTITY(CK)),然后对它应用(PR-ENTITY)得到(CK),并且对(CK(内容))应用(CK)以产生再现为目的的内容304。结果,发行用户能够以离线发行的内容310继续工作并保持离线。
根据以上所述,然后,现在参照图9,发行用户按照以下方式离线发行内容304/310并发布给自身一个用于这样的内容304/310的离线发行者许可证820。
准备性地,如应理解,内容304是按适当的方式部署的并根据内容密钥(CK)加密的(步骤901),并且该发行用户以适当的信息{(PU-DRM(CK))和(CK(内容))等}为内容304建立权限标签(步骤903)。然后,该发行用户,它假设已经从DRM服务器320占有OLP证书810,获取这种OLP证书810(步骤905)并且基于其签名和证书链验证同样事物,该证书链导致返回到根授权者(步骤907)。如应理解,这样的验证实际上由在发行用户的计算设备14上的委托组件18实现。假设验证成功,那么该发行用户/委托组件18(以下称为‘发行用户’)从OLP证书810检索(PU-ENTITY(PR-OLP))(步骤909),对(PU-ENTITY(PR-OLP))应用(PR-ENTITY)以得到(PR-OLP)(步骤911),并且然后以该(PR-OLP)签署所建立的权限标签以建立一个SRL308(步骤913)。
然后,发行用户将该SRL308和OLP证书810串接,被用于产生相同于内容304的内容以构成自发行内容310(步骤915),该权限管理内容310从而能够被分发给其他用户。为了发行用户继续使用或再现内容310,然而,该发行用户必须给自身发布一个相应的离线发行者许可证820。
这样,发行用户通过为自己定义相应的权限数据而建立一个发行者许可证820并且按照内容密钥(CK)加密权限数据以产生(CK(权限数据))(步骤917)。注意这里该权限数据可以从内容310的SRL308中获得,可以是某些默认的权限数据的集合准予发行用户部分地或全部地对自发行内容310的访问,或者可以从另一个源导出。另外,发行用户根据(PU-ENTITY)加密内容密钥(CK)以构成(PU-ENTITY(CK))(步骤919)。该(CK(权限数据))和(PU-ENTITY(CK))被格式化为发行者许可证820(步骤921),该OLP证书810和证书链被附加(步骤923),而且该发行者许可证820基于如在步骤911中获取的(PR-OLP)被签署(步骤925)。注意这里该内容304(即,(CK(内容)))、发行者许可证820、和OLP证书以组合方式形成一数字条款的链830回到委托授权者。
为了发行用户再现发行内容310,然后,现转到图10,该发行用户不需要与DRM服务器320联系,而是要获取对应于委托授权者的私人密钥的公共密钥,该私人密钥被用于签署根证书(步骤1001)、验证该根证书(步骤1003),并然后通过对每个中间证书获取从前一个证书来的公共密钥以及应用它验证该证书的签名来验证在链中的每个中间证书(步骤1005)。然后,从在链中的最后证书来的(PU-DRM)被用于验证OLP证书810的签名(即,S(PR-DRM))(步骤1007),(PU-OLP)是从OLP证书810获取(步骤1009),以及该(PU-OLP)被用于验证发行者证书820的签名(即,S(PR-OLP))(步骤1010)。
一旦发行证书820被证实,然后(CK(权限数据))和(PU-ENTITY(CK))从它重新得到(步骤1011),(PR-ENTITY)被用于(PU-ENTITY(CK))以产生(CK)(步骤1013),并且(CK)被应用于(CK(权限数据))以产生权限数据(步骤1015)。如应理解,权限数据被发行用户的计算设备14的委托组件18审查以判定该权限数据允许以所求的方式再现(步骤1017),该委托的组件18对来自内容310的(CK(内容))应用(CK)以获得内容(步骤1019),并且该内容传递给相应的再现应用程序以真实地再现(步骤1021)。这样图10的步骤实际上遍历了从委托授权者到内容304的数字条款的链830。
注意委托组件18可能对(CK(内容))应用(CK)以产生内容而不用预先审查权限数据也不管这些权限数据允许或不允许什么,但是是委托的并且已被构建,以只是在审查权限数据和满足自身(即权限数据允许该内容的再现)之后实际产生内容。再一次,作为具有发行者许可证820的结果,发行用户能够继续用离线发布的内容310工作,并同时保持离线,因为至此DRM服务器320不需要被联系。
DRM服务器的登记和次级登记
在图3所见的结构中,只展现了单个DRM服务器320。然而,如将被理解,这样的结构能够而且经常是包含多个DRM服务器320。特别是,在本发明的一个实施例中,这样的结构包含DRM服务器320的分布式网络。 每一个这样的DRM服务器320可能具有某特殊的功能并且所有的DRM服务器320可能被按照任何适当的方式组织起来而没有脱离本发明的精神和范围。
例如,现在转到图12,一个特定的组织可能具有一个或多个用户级的DRM服务器320用于签署权限标签以产生SRL 308、发布许可证16、准予发行许可证820、对用户发布证书、对计算设备14发布证书,以及类似项。每个这样的用户级DRM服务器320可能按地域指派或可能基于功能或负载指派,例如。同样地,为了监管多个用户级的DRM服务器320,一个组织可能具有一个或多个管理DRM服务器320。这样的基于组织的DRM服务器320可能被安置在一个组织的防火墙之后,如果这样要求的话。
除了基于组织的DRM服务器320之外,还可能有贯穿-组织的DRM服务器320,它有利于交互-组织DRM功能。例如,这种贯穿-组织的DRM服务器320可能允许一对组织共享某种DRM内容12。而且,可能会有一个监管DRM服务器320,它能激活所有其他的DRM服务器320。例如,这样的监管DRM服务器320可能监督和维护所有其他的DRM服务器320并且为所有其他的DRM服务器320提供适当的联系返回到根或者委托授权者,这是前面所述的证书链的基础。这样的基于非组织的DRM服务器320往往没有被安置在组织的防火墙之后。
重要的是,每个在图12的结构中的DRM服务器320必须能够被证明是被信任的。这样,如同从以上关于证书链的讨论所应该理解的,每个DRM服务器320在进入该结构时都要提交一个登记证书1310,如在图13中所见。明显地,在本发明的一个实施例中,登记证书1310由另一个已在结构中的“登记”的DRM服务器320(以下称为“DRM-R服务器320”)提供对DRM服务器320的进入。同样明显地,附加在由从“登记”DRM-R服务器320提供的登记证书1310是包含了登记DRM服务器320的登记证书1310的证书链1320,DRM服务器320的登记证书1310登记了登记DRM-R服务器320,并且如此下去直到根DRM服务器320。这样的根DRM服务器320可能表示了该根或委托授权者。如现在可理介的,这样的登记证书1310和证书链1320以组合方式形成了证书链,它附加到由已登记的或进入的DRM-E服务器320提供的OLP证书810给一个发行用户,如在图8中所示。
在本发明的一个实施例中,由DRM-R服务器320提供给DRM-E服务器320的登记证书1310是一种如基于XrML 1.2的证书的形式。如可以被理解,这种类型证书1310并不独立于由任何第三方提供,这样,这种类型的证书1310并不代表由这样的证书1310持有者的第三方的任何种类的独立担保。
在本发明的一个实施例中,一个特定的DRM-E服务器320被登记到结构中去的方法依赖于登记DRM-R服务器320是否知道或具有理由去信任登记DRM-R服务器320。如果没有,该DRM-E服务器320应该要求对DRM-R服务器320证实它是委托的并且将实施该DRM结构。如果有,该DRM-E服务器320不应该被要求向DRM-R服务器320证明它是委托的,至少不是同一个级别h。这样,当一个可认识可信任的DRM-R服务器320“次级登记”一个DRM-E服务器320的时候,一个非信任/非认识的DRM-R服务器320“登记”一个DRM-E服务器320。
典型地,DRM-R服务器320认识/信任一个DRM-E服务器320如果二者都是由或为了同样的组利益被操作,虽然知道/信任也可能从另外不脱离本发明的精神和范围的情景而得到。这样,一个特定的DRM-E服务器320被登记到结构中去的方法典型地依赖于该在登记的DRM-R服务器320是否基于组织的或者不基于组织的。结果,一个不基于组织的DRM-R服务器320“登记”一个DRM-E服务器,而一个基于组织的DRM-R服务器320“次级登记”一个DRM-E服务器320。
登记
在本发明的一个实施例中,并现在转到图14,一个非认识/非信任的DRM-R服务器320按以下方式登记一个DRM-E服务器。
准备性地,可以理解,希望能由非认识/非信任的DRM-R服务器320登记的DRM-E服务器320通常对这样的DRM-R服务器320是不认识的。相应地,在本发明的一个实施例中,该DRM-E服务器320必须从愿意担保这种DRM-E服务器320的第三方获得一个担保证书1330(步骤1401)。典型地,这样的第三方是一个独立证书发布代理,它被该DRM-R服务器320委托以完成这样的担保,例如在加州Moutain view的VESIGN公司。这种担保证书1330可能如X.509证书的格式。注意,在依赖于委托的担保该DRM-E服务器320第三方的DRM-R服务器320中,这样的DRM-R服务器320对DRM-E服务器320的任何不良行为的责任被减轻。
如应理解和典型地,如在图13所见,担保证书1330在其中加入了公共密钥(PU-V)和相应的私人密钥(PR-V),由委托的第三方签署,并且可能伴随一个证书链引导到已知的根以用于验证的目的。仍然是典型地,在担保证书1330中的(PR-V)是以作为担保证书1330的基础的对DRM-E服务器320担保的可访问方式作为担保的。例如,在图13中所见,(PR-V)可以根据相应的公共密钥加密。
在DRM结构内,进入DRM-E服务器320必须有一个唯一的身份。这里可以理解DRM身份通常是可能与(PU-V,PR-V)不同,虽然DRM身份可能也与这样的(PU-V,PR-V)相一致而脱离本发明的精神和范围。相应地,为建立这样的身份,该DRM-E服务器320生成或获得一个新的公开/私人密钥对(PU-E,PR-E)(步骤1403)。而且,在DRM结构中,在登记的DRM-E服务器320应该决定哪个实体能够撤回其参与的授权。相应地,该DRM-E服务器320在一个清单中识别每个这样的撤回实体,可能通过公共密钥的手段(步骤1405)进行。
DRM-E服务器320应该能够对在登记的DRM-R服务器320确定该DRM-E服务器事实上拥有从步骤1401获得的担保证书1330。相应地,该DRM-E服务器320或者使用来自担保证书1330的(PR-V)以加密(PU-E)以得到作为所有者标记的(PU-V(PU-E))或者以(PR-V)签署(PU-E)以得到作为所有者所标记的(PU-E)S(PR-V)(步骤1407)。无论哪种情况,用(PU-V)解密(PU--E)或者验证签名以确定(PR-V)的占有和由此的担保证书1330。
至此,DRM-E服务器320具有担保证书1330、(PU-E)和(PR-E)、撤回的授权清单、和作为所有者标记的(PR-V(PU-E))或者(PU-E)S(PR-V)。然后,为请求登记,该DRM-E服务器320向DRM-R服务器320发送该担保证书1330、(PU-E)、撤回的授权清单、和作为所有者标记的(PR-V(PU-E))或者(PU-E)S(PR-V)(步骤1409),并且DRM-R服务器320进而登记该在请求的DRM-E服务器320。注意该请求或请求的一部分是按由(PR-E)签署的证书的格式。
特别是,该DRM-R服务器320是基于由委托的第三方对担保证书的签名和引导到已知根的证书链来验证担保证书1330(步骤1411)。这样,DRM-R服务器320确定该DRM-E服务器320是被担保了的。而且,该DRM-R服务器320通过使用来自请求的(PU-V)验证所有者的标记,以或者解密(PU-E)或者验证签名,这样来确定(PR-V)的占有和在请求中的担保证书1330(步骤1410)。另外,明显地,该DRM-R服务器320实现任何决定是否承诺该请求所必须的定制的逻辑(步骤1413)。这样的定制逻辑可能是任何适当的没有脱离本发明的精神的范围的逻辑,并且例如可能包括对DRM-E服务器320和/或它的操作员的背景的检查、确定DRM-E服务器320是否具有当前委托的组件18和/或操作系统以及类似项、确定DRM-E服务器320是否是在一个撤回清单上或其它的观察清单上、以及等等。
假设定制逻辑允许该请求被授予,那么在本发明的一个实施例中,DRM-R服务器320为DRM-E服务器320产生一个登记证书1310(步骤1415)。特别地,可见图13,DRM-R服务器320在登记证书1310中加入了:
—DRM-R服务器320的身份,诸如它的公共密钥,即(PU-R);
—DRM-E服务器320的身份,例如(PU-E);
—从担保证书1330来的识别标记,包括发布它的被委托的第三方,从担保证书1330来的序列号,和如在担保证书1330中的识别的发行者;
—任何有效的范围信息,该信息指定了登记证书1310在其中是有效的范围,例如日期的范围;
—撤回的授权清单;
—基于相应于(PU-R)的DRM-R服务器320的私人密钥(PR-R)的签名;
—和任何其它适当的信息;
这样的其它适当的信息可能包括,但不限于:证书发布的时间;指示一个已登记的服务器被允许去实行哪些DRM活动,例如所有的活动、仅仅计账活动、仅仅签署权限标签、仅仅发布内容许可证,以及其组合;和允许实行DRM活动的时间范围。注意该允许的时间范围不同于有效范围,在其中当前时间必须在有效范围内以授予包括在证书链中的登记证书1310的任何证书。相反,子证书的发布时间必须落在实行DRM活动的复证书的允许时间范围之内。
如应理解,在生成登记证书1310中,DRM-R服务器320可以首先生成证书信息并然后允许定制逻辑以生成附加信息或修改已存在的信息,这样的定制逻辑可能如确保DRM-R服务器320包括相应的信息,或者可能实行预定义的DRM结构政策。当然登记证书1310的签名是在任何这样的定制逻辑被完成之后。如应理解,DRM-R服务器320附加证书链1320到已产生成的登记证书1310中,该证书链1320引导返回到委托的根授权,从而所生成的登记证书1310可能是基于这样的证书链1320而被验证。
特别注意,由担保证书1330中来的识别标记因放置于登记证书1310环境中,将一直随同该登记证书1310一同运转并充当通往担保证书1330桥梁。这样,再一次,该识别标记表明,DRM-R服务器320是依赖于担保证书1330的委托的第三方发行者来担保DRM-E服务器320,并且该DRM-R服务器320可能会减轻其对产生的不良行动的责任。
一旦DRM-R服务器320成功地生成了带有附加的证书链1320的登记证书1310,该DRM-R服务器320然后返回它给请求的DRM-E服务器320(步骤1417),并且该当前登记了的DRM-E服务器320将它存储在一个适当的位置供将来使用(步骤1419)。如上暗示的,在登记证书1310中的(PU-E)和相应的(PR-E)是公开/私人密钥对,DRM-E服务器320在签署权限证书以产生SRL308时将使用它们作为(PU-DRM)和(PR-DRM),发布OLP证书810,和另外加入到DRM结构之中。相应地,这样的登记证书1310和证书链1320以组合方式形成证书链,该证书链被附加到这样的OLP证书810和类似证书中。
次级登记
在本发明的一个实施例中,现在转到图15,一个认识/信任的DRM-R服务器320以下述方式次级登记一个DRM-E服务器320。
预备性地,将理解希望由一个认识/信任的DRM-R服务器320次级登记的DRM-E服务器320仍然应该被要求对这样的DRM-R服务器320验证自身,因为这样的认识或信任可能没有被完成。然而,这样的验证要求并不需要达到由委托的第三方提供的级别,因为作为DRM-R服务器320已具有某些该DRM-E服务器的认识/信任。相应地,在本发明的一个实施例中,该DRM-E服务器320获取或被提供某种凭证1340(图13),它可由DRM-R服务器识别和期望被授予,并且识别该DRM-E服务器320满足DRM-R服务器320(步骤1501)。
如果DRM-R和DRM-E服务器320二者都是在同样的组织中,这样的凭证1340可能是基于组织的凭证,例如如果二个服务器在一个共同网络中时的网络ID,如二个服务器320共享一个共同的域名时的域名ID,或者类似情况。如果二者DRM-R和DRM-E服务器320不是在同一个组织中,这样的凭证1340仍然可以是网络ID,只要二个服务器是在一个共同的网络中,可以是域名ID只要二个服务器320共享一个共同的域名,或类似情况,或者是其它的凭证例如由第三方发布并由DRM-R服务器R识别的凭证。
注意在目前情况下,DRM-R服务器320并不依赖于委托的第三方来为DRM-E服务器320担保,并且因此该DRM-R服务器320对任何DRM-E服务器320的不良行为的责任是不减轻的。不过,该DRM-R服务器320愿意承受这样的危险基于对DRM-E服务器320的认识或信任,它事实上不会实行这样的不良行为。
如前所述,在DRM结构中,进入DRM-E服务器必须有唯一的身份。在此要理解DRM身份通常是在凭证1340之外,虽然该DRM身份也可能符合凭证1340而没有脱离本发明的精神和范围。相应地,为建立该身份,该DRM-E服务器320生成或获取一个新的公开/私人密钥对(PU-E,PR-E)(步骤1503)。再次如前所述,在DRM结构之中,该次级登记DRM-E服务器320应该决定哪个实体能够撤回其对参与的授权。相应地,该DRM-E服务器320识别在清单中的每个这种撤回实体,多半以公共密钥作为手段进行(步骤1505)。
至此,DRM-E服务器320具有凭证1340、(PU-E)和(PR-E)、和撤回授权清单。然后,为请求次级登记,该DRM-E服务器320发送凭证1340、(PU-E)、和撤回授权清单给DRM-R服务器320(步骤1507),并且该DRM-R服务器320进而次级登记该在请求的DRM-E服务器320。注意如前所述该请求或请求的一部分可能是具有由(PR-E)签署的证书的形式。
特别是,DRM-R服务器320验证凭证1340,它基于无论什么逻辑或者资源是必须的并且可用于对这样的验证(步骤1509)。这样,该DRM-R服务器320基于被验证的凭证1340确定DRM-E服务器320是被信任的以授予或服从该DRM结构。此外,如前所述,DRM服务器执行任何的必须的定制逻辑以决定是否授予该请求(步骤1511)。
假设定制逻辑允许请求被授予,那么,在本发明的一个实施例中,该DRM-R服务器320为DRM-E服务器320产生一个次级登记证书1310(步骤1513)。特别是,如图13中所见,该DRM-R服务器320在次级登记证书1310之中加入了:
—DRM-R服务器320的身份,例如其公共密钥(PU-R);
—DRM-E服务器320的身份,例如(PU-E);
—该凭证1340或它的一个引用;
—任何有效的范围信息,指定了该次级登记证书1310在其中是有效的范围,例如日期范围;
—撤回授权的清单;
—基于相应于(PU-R)的DRM-R服务器320的私人密钥(PR-R)的签名;
—和任何其他适当的信息。
如前所述,在产生次级登记证书1310中,DRM-R服务器320首先产生证书信息并且然后允许定制逻辑产生附加的信息或修改存在的信息。再一次,在任何这样的定制逻辑被完成之后次级登记证书1310的签名被建立。如前说述,该DRM-R服务器320附加了证书链1320,它导致返回到被委托的根授权以产生次级登记证书1310,从而基于这样的证书链1320所产生的子登记证书1310被验证。
注意这里该凭证1340或者此处的参照并不认为是特别必需的,但是为了完整可能仍然被包括。再注意次级登记证书1310不包含从担保证书1330得到的识别标记,因为当前的次级登记情景中没有担保证书被要求。
一旦DRM-R服务器320成功地生成了具有附加的证书链1320的次级登记证书1310,该DRM-R服务器然后返回它给在请求的DRM-E服务器320(步骤1515),并且当前次级登记的DRM-E服务器320把它存储在适当的位置供将来使用(步骤1517)。如前一样,在次级登记证书1310中的(PU-E)和相应的(PR-E)是公开/私人密钥对,DRM-E服务器320将在签署权限标签时使用它们作为(PU-DRM)和(PR-DRM),以产生SRL308、发布OLP证书810、和以其它方式参与到DRM结构之中。相应地,这样的次级登记证书1310和证书链1320组合以形成证书链,它附加于该OLP证书810和类似情况。
结论
为完成实现本发明所必须的程序设计相对地可直接实行并且显然该相关的程序设计是普通的。因而,这种程序设计并不附加于此。然后任何特定的程序设计可能被用于实现本发明而没有脱离其中的精神和范围。
在本发明中,数字权限管理DRM和执行的结构与方式允许控制再现或播放任意形式的数字内容,这里这种控制是灵活的并可由这种数字内容的内容拥有者/部署者定义。该结构允许和方便这样的受控制的再现,特别是在办公室或组织环境或类似情况中,那里文件在定义的一组个体内部或几类个体内部被共享。该结构允许要被发行的内容没有首先从服务器获得认可并且允许发行的个体自己发布使用许可证以再现被发行的内容而不用为获得批准而联系服务器。
应该理解,可以对以上描述的实施例作出改变而没有脱离发明的概念。例如,如果一个许可证或权限标签基于其中的权限数据被签署,这里,这样的权限数据并不必需要被加密。类似地,在请求和构建登记或次级登记证书1310中,撤回的授权清单和其它类似的信息不是必需要被使用。从而,应该理解,本发明并不限于所揭示的特定实施例,但在本发明的精神和范围之内可以包括各种修改,如同所附的权利要求书所定义。