专利名称:用于受保护内容的可缩放分发的方法和系统的制作方法
技术领域:
本发明涉及用于受保护内容的可缩放分发的方法和系统。
背景技术:
数字内容分发非常受欢迎,特别是在因特网和其他网络上内容的流传输中。大多数内容生产者期望某种版权管理,因此内容分发系统通常使用数字版权管理(DRM)技术来控制内容的使用。例如,可能要求客户端从服务器获得许可用以成功地访问加密内容流,其中许可包含内容密钥。遗憾地是,许可服务器的使用并不总是理想的。为了向客户端安全地提供许可和内容密钥,许可服务器不仅必须授权客户端使用内容,还必需以不危害内容发发系统的DRM的方式进行配置。支持这样的许可服务器或从外部提供者获得许可服务器的计算资源可能对于内容提供者是显著的物流问题。
发明内容
一种计算机化设备可以实现内容播放器以使用网络接口来访问内容流,该内容流包括加密内容和根据可由内容播放器访问的全局密钥加密的内容密钥。内容播放器可以确定是否存在满足授权条件的令牌(token),并且仅在存在满足授权条件的令牌时使用全局密钥来解密内容密钥。可以在客户端处并且至少部分基于内容流中所包括的数据来评估授权条件。例如,授权条件可以在许可中指定或在内容流中指定作为令牌参数。授权条件的例子包括存在具有与在内容流中所包括的数据中的相应内容ID相匹配的内容ID的令牌;存在根据在内容流中所包括的数据中标识的数字签名而签名的令牌;存在与执行授权过程的机器的设备ID匹配的令牌;和/或存在未过期的令牌,其中基于令牌中的存活时间指示符来评估过期。不限于本主题而是为了提供简要介绍而讨论所例示的实施方式。附加的实施方式包括体现内容播放器的计算机可读介质,以及用于基于对令牌是否满足一个或多个授权条件的评估来访问具有嵌入许可的加密内容流的计算机实现的方法。附加的实施方式包括用于分发令牌和许可以供这样的客户端使用的服务器侧设备、方法和计算机可读介质。以下在
具体实施方式
中描述这些和其他实施方式。在阅读说明书和/或实践根据这里所教导的一个或多个方面而配置的实施方式之后,可以确定本主题的目标和优点。
在说明书的剩余部分中更具体地陈述了完整和能够实现的公开。说明书参考以下附图。图I是示出包括实现被配置为处理具有嵌入许可数据的内容流的内容播放器的一个或多个客户端的内容分发系统的示图;图2是示出被缩放以服务多个客户端的内容分发系统的例子的示图;图3是示出被配置为处理具有嵌入许可数据的内容流的内容播放器的示例性架构的示图;图4示出了在基于对令牌进行验证而处理具有嵌入许可数据的流方面由内容播放器执行的示例程序流;图5是示出用于处理内容流的例示性计算机化方法的流程图;以及图6是示出由内容提供者执行的例示性方法的流程图。
具体实施例方式这里公开的实施方式包括体现用于实现可缩放内容分发系统的代码的计算机可读介质、计算机系统和方法。例如,如图I中所示,内容分发系统100包括实现内容播放器104的一个或多个客户端102。每个内容播放器104包括全局密钥106或具有对全局密钥106的访问。一个或多个令牌108也可以存在于客户端102并且由客户端102使用带外机 制来获得(即独立于内容的下载而获得)。内容服务器110提供内容流112,内容流112包括具有加密内容116的嵌入许可114。加密内容116可通过使用许可114中所包括的内容密钥来访问。内容密钥自身被加密以使用全局密钥106可访问。内容播放器104被配置为仅在存在满足一个或多个授权条件的令牌时使用全局密钥106来解密内容密钥。如果存在满足条件的令牌,则可以使用解密的内容密钥来解密内容。由于对客户端是否被允许使用在播放器104处出现的内容的确定(以下被称作“客户端侧内容授权”),内容提供者可以免除部署诸如在内容被消费时对客户端授权的许可服务器之类的基础设施的麻烦。相反,内容提供者仅仅需要提供用于将令牌108中继到客户端的某种机制,而内容密钥利用内容自身进行安全地解密和分发,无需许可工作流。现在将详细参考多种示例实施方式和备选示例性实施方式并且详细参考附图。通过解释的方式而不作为限制提供每个例子。对于本领域技术人员来说应当理解可以进行修改和变化。例如,作为一个实施方式的一部分而例不或描述的特征可以在另一实施方式上使用以产生进一步的实施方式。在以下详细描述中,陈述许多具体细节以提供对主题的透彻理解。然而,本领域技术人员将理解,可以没有这些具体细节而实践主题。没有详细描述本领域技术人员将知晓的其他实例、方法和装置以便不使主题难以理解。如上所述,图I是示出计算设备102的例子的示图。计算设备102可以备选地被称作数据处理系统、计算机化设备或简单地被称作“计算机”。计算设备102表示桌面、膝上、平板或任何其他计算系统,诸如移动设备(PDA、智能电话、媒体播放器、游戏系统等)或嵌入式系统(例如车辆、电器、电视或其他设备中的嵌入式系统)。在图I中所示的例子中,计算设备102具有包括经由内部总线122、连接等互连的一个或多个处理器118和计算机可读介质(存储器120)的数据处理硬件元件。总线122还连接到I/O组件124,诸如通用串行总线(USB) ,VGA,HDMI或其他显示适配器、串行连接器、和/或到计算系统的其他硬件的其他I/O连接。另外,I/O组件124包括到网络连接126的一个或多个网络接口。网络连接126可以包括有线连接(例如因特网、光纤、有线电视)和/或无线连接(例如IEEE 802. 11,802. 16、蓝牙、经由GSM、CDMA, UMTS, LTE或其他无线标准的无线电通信等)。
硬件还包括一个或多个显示器128和输入设备130(例如键盘、小键盘、鼠标、触摸屏接口等)。应当理解,计算设备102可以包括其他元件,诸如存储设备和诸如扬声器、麦克风等之类的其他I/O组件。计算机可读介质120可以包括RAM、ROM或其他存储器。在该例子中,计算机可读介质120体现了用于内容播放器104的程序逻辑,并且存储了包括全局密钥106和令牌108的数据元素。在实际中,全局密钥106可以集成到内容播放器104中。例如,定义全局密钥106的值可以被硬编码到内容播放器104中而不是作为分离的文件被参考。作为另一例子,全局密钥106可以被定义为对在执行期间由内容播放器104的程序逻辑可访问的硬件元件的参考。在一些实现中,在提供或维护内容播放器104的一方的控制之下执行的独立化或其他过程期间定义全局密钥106。例如,内容播放器104可以连接到用于独立化过程的服务器,在所述独立化过程期间全局密钥106被提供给内容播放器104。一般而言,内容播放器104使得计算设备102接收包括这里所述的嵌入许可114和加密内容116的流112。内容播放器104检查满足一个或多个授权条件的恰当的令牌108 的存在。如果满足条件,则内容播放器104使得计算设备102使用全局密钥106来解密许可114中所包括的内容密钥,并且使用解密的内容密钥来访问加密内容116。内容播放器104可以如该例子中所示的那样以软件实现,或可以使用由数据处理元件可访问或作为数据处理元件的部分(例如作为专用集成电路(ASIC)或可编程逻辑设备(例如PLA、FPGA等))的硬件来实现。内容播放器104的使用可以允许用于DRM保护内容的分发的可缩放系统。图2是用于分发内容的系统101的例子。如这里所示的那样,多个客户端(102-1、102-2、102-3、102-4)中的每个实现内容播放器104的实例,每个实例具有对相同的全局密钥106的访问。内容提供者可以使用许可部署服务器111和多个内容服务器110-1、110_2、110-N。如这里所示,每个内容服务器110提供基于从许可部署服务器111提供的加密数据、内容和许可的内容流112。内容、许可和加密数据可以在服务器110处被组装成流112,或许可部署服务器可以生成包括加密内容和许可数据的分组,并且部署该分组以供服务器110流传输。取决于具体的许可参数,可以提供相同的内容流112 ;或者如112’处所示,内容流可以包括对于不同的客户端102来说不同的嵌入许可。例如,内容流可以适配于特定的客户端设备或特定的设备类型或分类。另外,应当理解在实际中客户端的数目可以是数百或数千的数目。其他内容提供者实体可以使用其自身的内容服务器,或多个不同的内容提供者实体可以使用相同的内容服务器。例如,在一些实现中,内容提供者可以维护许可部署服务器111,然后从服务器111向用于向客户端进行流传输的内容递送网络(CDN)部署受保护的内容。每个客户端102使用受限于嵌入在内容流112(112’)中的许可114中所指定的条件的相同全局密钥106来访问内容密钥。在实际中,可以使用不同的全局密钥106,诸如对于不同的设备、不同分类的设备、不同版本的内容播放器104或对于其他目的的不同全局密钥。因为在客户端102处理内容授权,所以内容提供者不需要作为流传输过程的一部分实现服务器侧许可和客户端验证工作流。相反,提供者110仅提供具有包括对应内容密钥的嵌入许可114、以及指定授权条件的数据(在许可中或分离地体现在内容数据中)的加密内容116。这允许非常可缩放的方案,这是因为可以部署内容和嵌入许可/授权数据,而无需在所部署的内容/许可数据由客户端使用时支持服务器侧内容授权活动。可以在许可获取/使用过程之外验证客户端,例如在分发在客户端侧内容授权过程期间所使用的令牌中可以使用相对轻量的基础设施。在一些实现中,可以使用从San Jose,California的AdobeSystem Incorporated可获得的Flash 媒体令牌验证方案。图3是示出内容播放器104的示例性架构300的示图。可以使用任何合适的技术来实现内容播放器104。例如,在一些实现中,内容播放器104被实现为Adobe Flash .或AIR 应用。然而,内容播放器104可以被实现以供在另一运行时环境中使用或在操作系统内执行。作为另一例子,内容播放器104可以被实现为单机应用的部分,诸如web浏览器中可以访问和呈现流传输的内容的应用。UI和文件控制模块302表示用于提供用户接口和提供内容输出的程序代码或硬 件逻辑。例如,模块302可以提供窗口或其他接口并且使用一个或多个编解码器在恰当时呈现音频、视频和/或音频视频内容。模块302可以进一步打开恰当的网络连接,并且使用诸如动态HTTP流传输连接之类的合适的流传输技术来获取内容流112。作为具体的例子,可以使用由San Jose,California的Adobe System Incorporated提供的实施消息传输协议(RTMP)。模块302还可以向负责分析指示授权条件的数据和解密内容的组件传递许可114和内容116。令牌获取模块304表示内容播放器104通过其获得令牌108以供在访问受保护内容中使用的代码或逻辑。客户端102可以经由带外机制以任何合适的方式实际地获取令牌108。“带外机制”意指与访问流112分离的数据处理工作流或会话。当然,可以使用用于获得内容的相同网络硬件来获得令牌。与发布许可相比,令牌的生成轻量得多(即使用较不复杂的计算基础设施)。如前所述,它将通常不需要任何特殊硬件或服务器装置,并且可以容易地并入到诸如用户验证服务器的基础设施之类的现有基础设施中。换言之,在一些实现中,内容播放器104被配置为访问流112而无需与服务器协商内容的权限。内容播放器104可以进行任何所需的工作流以获得对服务器的权限(例如,例程握手、一般服务器登录(如果需要)),但流被简单地提供给内容播放器104而无需针对流传输的内容的权限进行进一步的授权检查。相反,内容分发系统取决于经由令牌108进行的客户端侧内容授权,这有助于内容服务器104使用许可和全局密钥106。可以在任何时间获得令牌108,包括在访问流112之前或紧接在访问流112之前。用于获得令牌的工作流可以由播放器104中所包括的客户端102的令牌获取组件来处理、或被实现为分离的组件(例如web浏览器或消息传输程序)。例如,客户端可以访问与内容提供者110相关联的web站点或服务,并且在登入、付费等之后获得一个或多个令牌108。然后web站点或服务可以将客户端重新定向至特定的URL/URI以访问对应的流112。作为其他例子,令牌108可以与播放器104 —同提供、可以使用硬件来分发或者可以由客户端设备102在网络126上以某种其他方式接收。注意,令牌108是数据元素而不是许可,并且以其自身不能用于解密诸如加密内容密钥或加密内容自身之类的受保护的内容。如这里所示出的,内容播放器104还包括令牌验证器模块306和解密模块308。这些模块在虚线框中示出,以指示至少对应于这些模块的程序代码/硬件逻辑是以安全的方式实现的。例如,可以使用任何合适的技术来加固内容播放器104以避免恶意方获得对全局密钥106的访问或更改内容播放器104的逻辑以获得对受保护的内容的访问,即使用于访问受保护内容的条件尚未满足。一般而言,验证器模块306确定是否存在满足授权条件的令牌,同时解密模块308处理解密内容密钥的细节然后处理加密的内容。仅在令牌位于诸如由播放器104定义的存储位置之类的预期位置时令牌可以“存在”。例如,令牌可以存储在安全的存储库中或可以以其他方式受保护以避免篡改。下面将与图4 一同讨论操作图3的令牌验证器模块306和解密模块308的例子,图4示出了由内容播放器104执行的示例程序流400。最初,UI模块302从合适的资源(例如,经由与存放来自图I的内容提供者110的内容的服务器的因特网连接)获得内容流112,并且使得流可用于内容播放器104的其他组件,包括令牌验证器模块306。令牌验证器模块306包括用于标识指定必须满足以使内容播放器104执行解密过程的授权条件的数据的代码或硬件逻辑。 在该例子中,条件被指示为令牌参数114A,并且在流程400中,在401处示出了标识授权条件的步骤。在该例子中,参数114A指引令牌验证器306定位和验证令牌108,如402处所示。虽然令牌参数114A在该例子中被示为嵌入许可的部分,但它们可以位于内容流中的其他地方。在该例子中,令牌108包括存活时间指示符108A、内容ID 108B和设备ID 108C。该例子的第一授权条件是令牌108是否被有效地签名,因此令牌验证器模块306首先进行检查以确定令牌108是否有效。例如,参数114A可以标识令牌108必须匹配的数字签名,如果令牌108未被恰当地签名,则令牌108将被视为无效。该例子的第二授权条件是令牌是否过期。例如,存活时间指示符108A可以简单地标识过期日期/时间,因此通过评估该指示符来检查该授权条件而无需参考嵌入的许可中所包括的参数。备选地,令牌验证器模块306可以检查以确定作为许可中的参数而指定的时间/日期是否已经过去,或存活时间指示符是否在嵌入许可中所指定的阈值时间段内。该例子中的第三授权条件是令牌是否用于流112中的特定内容。例如,可以检查内容ID 108B以确定它是否与许可参数114A中所包括的对应内容ID匹配。该例子还说明了第四授权条件,该第四授权条件基于确定令牌108中所包括的设备ID 108C是否与客户端102的设备ID匹配。在一些实现中,参数114A可以包括指示客户端102必须具有与客户端102的设备ID匹配的令牌108的条件;然而,设备ID的验证可以默认地发生,而无需参数114A指定执行设备ID匹配过程。检查设备ID或其他合适的标识符可以避免在不恰当的客户端处基于从恰当的客户端复制或窃取的令牌108而执行授权。为了支持设备ID的验证,内容提供者可以实现响应于来自客户端102的请求而提供令牌108的令牌分发系统。可以通过这样的方式来生成令牌,使得该令牌基于请求中所包括的设备ID和/或基于请求中所包括的并且由内容提供者用于生成唯一的设备ID的其他信息(例如硬件细节)而绑定到客户端102。不是所有内容提供者都可选择将令牌绑定到特定的设备,因此将理解,出于示例而非限制的目的而示出设备ID 108Co除了设备ID绑定之外或替代设备ID绑定,也可以使用到特定内容播放器104实例或版本的绑定。如果令牌108有效,则如403处所示,令牌验证器模块306向解密模块308提供命令,如404处所示,解密模块308获得嵌入许可114中所包括的内容密钥114B。如上所述,内容密钥是根据全局密钥106加密的。由此,如405处所示,解密模块308使用全局密钥106来解密内容密钥114B。然后,如406和407处所示,加密内容116可以通过使用内容密钥114B而被访问、解密,并且作为解密内容流输出。例如,内容流可以被提供到Π和文件控制模块302以输出音频、视频或音频视频内容。在该例子中,UI和文件控制模块302是关于回放音频、视频或音频视频内容而被讨论的。可以在实现内容播放器104的设备处直接回放内容(例如使用图I的显示器128和音频输出组件)或内容可以由模块302中继到另一设备以供实际输出。另外,这里所讨论的原理可以应用于对其他作为包括许可的流而分发的受保护的内容的访问。例如,可以以流传输格式与嵌入许可设置条件一同提供游戏或其他应用的内容以供在播放器104中使用。
图5是示出由诸如实现内容播放器104的客户端102之类的客户端执行的示例性处理方法500中步骤的流程图。块502表示从一个内容提供者或多个内容提供者获得一个或多个令牌。如上所述,可以使用带外机制(即通过与接收内容的事务或工作流分离的事务或工作流)来获得令牌。例如,可以使用web浏览器或其他应用来从许可服务器或代表内容提供者操作的其他安全设备获得一个或多个令牌。例如,终端用户可以访问web页面或其他资源以在合适的验证过程、付费等之后下载一个或多个令牌,其中该web页面或其他资源将终端用户的设备重新定向到用于执行接收内容的事务/工作流的恰当的资源(例如内容服务器)。附加地或备选地,可以完全与访问内容独立而获得一个或多个令牌。例如,可以在内容播放器104被下载或以其他方式获得时获得令牌。因为块502可以与访问受保护内容的流分离地执行,所以它由虚线连接到块504,据此,应当清楚,在实际中方法500可以在假定已经获得令牌的情况下在块504处开始。块504表示访问具有嵌入许可的加密内容的流。例如,播放器104可以向恰当的网络资源(例如流传输服务器110)提交请求并且使用上述RTMP协议或其他流传输协议来获取流。在块506处,该方法标识必须满足的授权条件。例如,这可能要求标识嵌入许可中或内容流中其他地方包括的一个或多个参数。许可例如可以嵌入在流的特定部分(例如整个流的首标(header))中或可以散布在流的多个部分中。可以通过监视流并且一旦首标或其他部分已到达即提取许可数据来获得嵌入许可。作为具体例子,流最初可以包括基本首标和握手数据,随后是一旦连接建立后的一个或多个对象。对象可以包含嵌入许可,然后可以跟随有包括加密内容数据的一个或多个对象。可以基于预期的文件结构或句法来标识实际的许可参数。块508表示检查客户端是否具有与嵌入许可中所指定的参数匹配和/或以其他方式满足用于访问内容的授权条件的令牌。如图5中所示,如果不存在匹配的令牌,则该方法完成。作为例子,匹配处理可以包括确定本地存储在内容播放器104中的令牌是否满足以下准则中的一些或全部
I.令牌被利用令牌参数中所指定的数字签名来签名;和/或2.令牌包括与实现内容播放器104的计算设备的设备ID匹配的设备ID ;和/或3.令牌包括嵌入许可中所指定的内容ID。除了上述准则之外或替代上述准则,块508可以表示检查在许可参数中或内容流中的其他地方未指定的一个或多个条件。例如,内容播放器104可以被配置为检查令牌的存活时间指示符以保证令牌没有过期。即使存在具有正确的签名并且与其他参数匹配的令牌,如果该令牌过期则它也将是不匹配的。如果在块508处定位到匹配的令牌,则执行块510和512。块510表示使用客户端104中所包括的全局密钥来解密嵌入许可中所包括的内容密钥。然后,解密的内容密钥被用于访问来自内容流的加密内容。本领域技术人员应当理解解密内容的细节。应当理解,可以使用任何合适的密钥技术,并且当块508、510和512被执行时,应当小心避免对未加密内容/未加密密钥的未授权访问,并且避免黑客破坏令牌验证过程。 图6是示出由内容提供者执行的例示性方法600中的步骤的流程图。例如,可以使用诸如图2中所示的许可部署服务器111之类的一个或多个计算机化设备来执行该方法。在以下例子中,作为单个实体而讨论许可部署服务器,但应当理解,该功能可以分布在多个计算机化设备上。块602表示在计算机化设备中存储将内容项与至少一个授权条件相关联的数据。例如,可以选择上述授权条件中的一个或多个,诸如令牌匹配设备ID、内容ID、数字签名和/或满足过期条件(例如当在播放器处被考虑时未过期)的要求。块604表示向内容播放器(例如内容播放器104)提供令牌,令牌包括当在客户端设备处评估时满足一个或多个授权条件的数据。例如,令牌可以经由网络连接被下载到请求的客户端。作为另一例子,令牌可以被存储到被使用离线机制中继到客户端的硬件设备或计算机可读介质。该数据可以是当被客户端评估时将满足授权条件的数据。例如,令牌可以基于来自内容播放器的请求中所提供的信息来包括内容ID、存活时间指示符和/或设备ID中的至少一个。另外,令牌可以根据与内容提供者相关联的签名而被数字签名。块606表示提供(以必要的程度)指定将要被包括在内容流中的一个或多个授权条件,所述内容流将还包括内容项的加密版本。例如,可以在将要嵌入到内容流中的许可中指定所述条件。作为另一例子,可以在要包括在内容流中其他地方(诸如内容首标对象中)的令牌参数中指定所述条件。例如,所述条件可以包括标识所要求的数字签名、内容ID和/或所要求的存活时间指示符的值的数据。如前所述,一些授权条件(例如未过期令牌的存在、具有与执行授权过程的客户端的设备ID匹配的设备ID的令牌的存在)可以直接由内容播放器评估。然而,在这些特征不被默认使能的情况下,许可/授权条件可以包括数据以如内容提供者所期望的那样触发这些条件的客户端侧评估。在一些实现中,内容提供者使用计算设备仅向恰当的客户端分发令牌。由此,可以在令牌被提供到客户端处的内容播放器之前,执行合适的验证的过程以保证客户端和/或内容播放器的身份。如果要求付费,则还可以在该验证过程期间处理付费细节。定义许可和授权条件的数据可以被提供到分离的计算过程,该分离的计算过程处理到将访问流的内容播放器的内容的实际流。通常(虽然并非必要),该分离的过程可以由与分配令牌和指定令牌的授权参数的设备分离的计算机化设备(例如内容服务器110)提供。许可部署服务器111可以处理根据内容密钥加密内容项和根据全局密钥加密内容密钥的细节,或对于这样的任务可以取决于服务提供者。例如,第三方提供者可以向多个客户端102分发内容播放器104,并且以安全的方式维护关于全局密钥106的数据。内容提供者可以根据内容密钥加密内容项,并且取决于第三方提供者来以可以由内容播放器104的实例访问的方式加密内容密钥。附加地或备选地,内容提供者可以取决于分离的实体以维护内容服务器110和分发内容流。例如,内容提供者可以取决该数据以生成到内容递送网络(CDN)的内容流112以供使用合适硬件的广泛分发。然而,CDN不需要从事支持特定于内容的授权例程,并且内容提供者也不需要作为内容分发流的一部分而支持内容授权。
全局密钥106可以是跨许多设备可访问的,诸如跨特定内容播放器104的全部实例。内容播放器104可以被足够地加固以减少全局密钥106的可访问性;以减少来自嵌入许可的内容密钥的未加密版本的可访问性;以及避免黑客绕过令牌验证逻辑。例如,可以采取措施以避免可能揭露可用于获得验证期间使用的标记/变量、全局密钥106和内容密钥的未保护版本的数据的反编译/调试操作。然而,即使在攻破的情况下,内容分发系统可以自适应。例如,在攻破发生之后,内容提供者可以简单地改变为分发使用新的内容密钥(如果该内容密钥已经变为可获得)加密的内容和/或使用被推送到内容播放器104的新的全局密钥106来加密内容密钥。上面说明了授权条件的若干例子,但这些例子不旨在限制性的。例如,对于由内容播放器104进行的评估可以自然地或通过参考在许可参数中列举的或包括在内容流中其他地方的授权条件而指定任何合适的条件。一般考虎就存储在诸如计算机存储器之类的计算系统存储器内的数字比特或二进制数据信号上的操作的算法或符号表示而言呈现了详细描述的一些部分。这些算法描述或表示是数据处理领域中普通技术人员用于向该领域中其他技术人员传达他们的成果的实质的技术的例子。算法在这里并且通常被视作产生期望的结果的操作的自洽序列或类似的处理。在此上下文中,操作或处理涉及物理量的物理操纵。通常但并非必需地,这样的量可以采取能够被存储、转移、组合、比较或以其他方式被操纵的电或磁信号。主要出于公共使用的原因,有时将这样的信号称作比特、数据、值、元素、符号、字符、术语、数字、标号等被证明是便利的。然而,应当理解,全部这些和类似的术语应当与恰当的物理量相关联并且仅仅是便利的标签。除非具体地相反陈述,如从前述讨论中明显的那样,应当理解在本说明书全文中,利用诸如“处理”、“计算”、“运算”、“确定”等之类的术语的讨论指操纵或变换被表示为计算平台的存储器、寄存器或其他信息存储设备、传输设备或显示设备内的物理电或磁量的数据的诸如一个或多个计算机和/或类似的电子计算设备之类的计算平台的动作或过程。这里所讨论的多种系统不限于任何特定的硬件架构或配置。计算设备可以包括提供以一个或多个输入为条件的结果的任何合适的元件布置。合适的计算设备包括访问软件的多用途的基于微处理器的计算机系统,该软件将该计算系统从一般用途计算装置编程或配置为实施本主题的一个或多个实施方式的特殊计算装置。在编程或配置计算设备中将使用的软件中,任何合适的编程、脚本或其他类型的语言或语言的组合可以被用于实施这里所包含的教导。计算设备可以访问体现计算机可读指令的一个或多个非暂时性计算机可读介质,该计算机可读指令当被至少一个计算机执行时导致该至少一个计算机实施本主题的一个或多个实施方式。当利用软件时,该软件可以包括一个或多个组件、过程和/或应用。除软件之外或备选软件,计算设备可以包括使得设备操作以实施本主题的一个或多个方法的电路。计算设备的例子包括但不限于服务器、个人计算机、移动设备(例如平板、智能电话、个人数字助理(PDA)等)、电视、电视机顶盒、便携式音乐播放器和诸如照相机、摄像机和移动设备之类的消费者电子设备。计算设备可以被集成到例如“智能”电器、汽车、售货亨等的其他设备中。 这里所公开的本发明的实施方式可以在计算设备的操作中执行。以上例子中所呈现的块的顺序可以改变,例如,块可以被重新排序、组合、和/或分解为子块。特定的块或过程可以并行地执行。任何合适的非暂时性计算机可读介质可以用于实施或实践这里公开的主题,该计算机可读介质包括但不限于软盘、驱动器、磁存储介质、光存储介质(例如CD-ROM、DVD-ROM及其变形)、闪存、RAM、ROM和其他存储设备。这里对“适配为”或“配置为”的使用意为不排除适配为或配置为执行附加的任务或步骤的设备的开放和包含性语言。另外,对“基于”的使用意为开放和包含性的,其中“基于”一个或多个所陈述的条件或值的过程、步骤、计算或其他动作在实际中可以基于超出所陈述的条件或值的附加的条件或值。这里所包括的标题、列表和编号仅仅为了解释的便利并且不旨在限制性的。虽然已经参考本主题的
具体实施方式
详细描述了本主题,但应当理解,本领域技术人员在获得对以上内容的理解之后可以容易地产生对这样的实施方式的变更、变化和等效物。据此,应当理解,出于示例而非限制的目的而呈现了本公开,并且本公开不排除对本主题的这样的修改、变化和/或添加的包含,如本领域普通技术人员将容易清楚的那样。
权利要求
1.一种计算机化设备,包括 网络接口 ;以及 数据处理硬件元件; 其中所述数据处理硬件元件实现内容播放器,所述内容播放器被配置为使用所述网络接口来访问内容流,所述内容流包括加密内容和嵌入许可,所述许可包括根据所述内容播放器可访问的全局密钥而加密的内容密钥,以及 其中所述内容播放器被配置为确定是否存在满足授权条件的令牌,并且仅在存在满足所述授权条件的所述令牌的情况下使用所述全局密钥来解密所述内容密钥。
2.如权利要求I所述的计算机化设备, 其中所述内容流包括指定数字签名的数据,以及 其中确定是否存在满足授权条件的令牌包括确定是否存在根据所述数字签名而被签名的令牌。
3.如权利要求2所述的计算机化设备,其中确定是否存在满足授权条件的令牌进一步包括确定是否存在包含与所述计算机化设备的设备ID相匹配的设备ID的令牌。
4.如权利要求3所述的计算机化设备,其中确定是否存在满足授权条件的令牌进一步包括评估包括在所述令牌中的存活时间指示符以确定所述令牌是否过期。
5.如权利要求I所述的计算机化设备,其中所述数据处理硬件元件还实现令牌获取组件,所述令牌获取组件被配置为独立于访问所述内容流而获得所述令牌。
6.如权利要求I所述的计算机化设备,其中所述数据处理硬件包括处理器,并且所述内容播放器包括包含在所述处理器可访问的存储器设备中的程序组件。
7.如权利要求I所述的计算机化设备,其中所述内容播放器进一步被配置为使用解密的内容密钥来解密所述加密内容,并且提供基于所述解密的内容的输出。
8.如权利要求I所述的计算机化设备,其中所述全局密钥与所述内容播放器的多个实例可访问的全局密钥相同,所述内容播放器的每个实例在不同的计算机化设备处实现。
9.一种计算机实现的方法,包括 存储将内容项与至少一个授权条件相关联的数据; 经由网络连接向内容播放器提供令牌,所述令牌包括在客户端处被评估时要满足所述至少一个授权条件的数据; 提供指定至少一个授权条件的数据,所述数据将被嵌入在包括所述内容项的加密版本的内容流中。
10.如权利要求9所述的计算机实现的方法,进一步包括确定与所述内容播放器相关联的设备ID以及将所述设备ID包括在所述令牌中,以及 其中所述授权条件包括与所述内容播放器应用相关联的所述设备ID的匹配。
11.如权利要求10所述的计算机实现的方法, 其中所述授权条件包括数字签名的匹配,以及 其中所述方法包括数字化地签名所述令牌,以及将指定数字签名的数据包括在将要嵌入内容流的数据中。
12.如权利要求11所述的计算机实现的方法,其中所述授权条件包括存在未过期令牌,并且所述方法包括将存活时间指示符包括在所述令牌中。
13.如权利要求12所述的计算机实现的方法, 其中所述内容播放器被配置为访问内容流,所述内容流包括加密内容项和根据所述内容播放器可访问的全局密钥而加密的内容密钥,以及 其中所述内容播放器被配置为(i)基于所述存活时间指示符确定所述令牌是否过期,以及(ii)在使用所述全局密钥来解密所述内容密钥之前,验证所述令牌与在所述许可中指定的内容ID、设备ID和数字签名相匹配。
14.如权利要求13所述的计算机实现的方法,其中提供所述许可包括从第一计算设备向被配置为向所述内容播放器提供所述内容流的分离的计算设备提供所述许可。
15.一种计算机程序产品,其包括包含程序代码的非瞬态计算机可读介质,所述程序代码包括 用于使用计算设备的网络接口访问内容流的程序代码,所述内容流包括加密内容和嵌入许可,所述嵌入许可包括根据全局密钥而加密的内容密钥; 用于确定是否存在满足授权条件的令牌的程序代码;以及 用于仅在存在满足所述授权条件的所述令牌的情况下使用所述全局密钥来解密所述内容密钥的程序代码。
16.如权利要求15所述的计算机程序产品,其中用于确定是否存在满足授权条件的令牌的程序代码包括用于确定是否存在根据内容流中所指定的数字签名而被签名的令牌的代码。
17.如权利要求15所述的计算机程序产品,其中用于确定是否存在满足授权条件的令牌的程序代码包括用于确定是否存在包含与所述计算设备的设备ID相匹配的设备ID的令牌的代码。
18.如权利要求15所述的计算机程序产品,其中用于确定是否存在满足授权条件的令牌的程序代码包括用于评估包括在所述令牌中的存活时间指示符以确定所述令牌是否过期的代码。
19.如权利要求15所述的计算机程序产品,进一步包括 用于使用与所述内容流的访问分离的带外机制来从第一计算系统请求所述令牌的程序代码。
20.如权利要求15所述的计算机程序产品, 其中用于访问的程序代码包括用于建立与内容服务器的连接并且获得所述内容流而不执行特定于所述内容的授权例程的代码。
全文摘要
本发明涉及用于受保护内容的可缩放分发的方法和系统。具体地,涉及一种计算机化设备,其可以实施实现内容播放器以使用网络接口访问内容流,该内容流包括加密内容和嵌入的许可,该许可包括根据由该内容播放器可访问的全局密钥而加密的内容密钥。该内容播放器确定是否存在满足授权条件的令牌,并且仅在这样的令牌存在时使用该全局密钥来解密该内容密钥。可以至少部分基于内容流中所包括的数据来评估该授权条件。该授权条件可以包括存在具有与该许可中对应的内容ID匹配的内容ID的令牌;存在具有正确设备ID的令牌;存在根据在该许可中标识的数字签名而签名的令牌;和/或存在未过期的令牌,其中基于令牌中的存活时间指示符来评估过期。
文档编号G06F21/00GK102682233SQ201110461379
公开日2012年9月19日 申请日期2011年12月28日 优先权日2011年1月13日
发明者K·沙, S·阿格拉沃 申请人:奥多比公司