本发明涉及用于在设备上访问内容的方法,被布设为执行这样的方法的设备,和用于这样的方法的计算机程序。
背景技术:
公知的是,保护内容项和控制内容项的使用,内容项被递送(或传送/传输)到终端用户(或到由终端用户使用的设备)。然而,由于移动数据处理设备(诸如智能电话、平板计算机、便携式计算机,等等)正在变得越来越盛行并且与非用户偏好的设备相比更常用,所以重要的是能够将内容项递送到这样的移动数据处理设备(从而满足用户需求),而同时保证高安全级别(从而满足内容提供者和内容分发者的要求)。这鉴于如下而是尤其真实的:目前可用的这样的设备的非常大的数量和新设备进入市场的速度,加上这样的设备运行的操作系统和软件的范围,所有这些使内容的保护成为艰难的挑战。
技术实现要素:
根据本发明的第一方面,提供了一种用于在设备上访问内容的方法,其中设备被布设为执行drm系统的数字版权管理(drm)客户端,并且其中设备被布设为接收包括用于内容项的内容的多个加密的部分的广播信号,每个加密的部分是采用条件访问系统的格式封装的并且是使用对应的解密密钥而可解密的,其中该方法包括在设备上执行的应用程序执行以下步骤:
针对一个或多个的加密的部分中的每个:
将所述加密的部分从采用条件访问系统的格式进行封装转换到采用drm系统的格式进行封装;
向drm客户端提供采用drm系统的格式封装的所述加密的部分;和
或者(a)向drm客户端提供根据drm系统的版权对象或者(b)触发drm客户端获得根据drm系统的版权对象;
其中版权对象通过包括用于由drm客户端使用以获得对应于所述加密的部分的解密密钥的解密密钥数据从而对应于所述加密的部分。
在一些实施例中,方法包括drm客户端:通过使用解密密钥数据获得对应于所述加密的部分的解密密钥;和通过使用获得的解密密钥解密所述加密的部分的一些或全部。
在一些实施例中,应用程序与drm客户端是分开的。在一些实施例中,drm客户端在设备的受信赖的执行环境中执行,并且应用程序没有在受信赖的执行环境中执行。
在一些实施例中,方法包括,针对所述的加密的部分的一个或多个的每个,设备通过数据网络接收对应于所述加密的部分的版权对象。方法于是可以包括:标识将由drm客户端解密的接下来的加密的部分并且通过数据网络发出针对对应于所述接下来的加密的部分的版权对象的请求,其中对应于所述接下来的加密的部分的版权对象是响应于请求接收的。请求可以由应用程序发出。在一些实施例中,方法包括应用程序:响应于请求而接收版权对象;和向drm客户端提供所接收的版权对象。在一些实施例中,所述发出包括应用程序执行所述触发drm客户端,和drm客户端响应于所述触发发出请求。
在一些实施例中,方法包括:通过数据网络发出请求,其中,针对所述的加密的部分中的一个或多个的每个,对应的版权对象是响应于请求接收的;和在设备上的数据存储中存储接收的版权对象以使drm客户端能够随后获得所存储的版权对象。
在一些实施例中,方法包括:通过数据网络发出请求,其中,针对加密的部分中的所述一个或多个的每个,对应的版权对象是响应于请求接收的;加载每个接收的版权对象到drm客户端中;和在设备上的数据存储中存储与对应的加密的部分的标识关联的每个接收的版权对象的标识;其中所述触发包括:或者(i)基于要被提供到drm客户端的加密的部分的标识从数据存储中获得与该加密的部分对应的版权对象的标识并且向drm客户端提供所述获得的版权对象的标识或者(ii)向drm客户端提供要被提供到drm客户端的加密的部分的标识以使drm客户端能够从数据存储中获得对应于该加密的部分的版权对象的标识。加密的部分的标识可以基于对应于该加密的部分的密码有效期(crypto-period)的标识。加密的部分的标识可以由设备在广播信号之中接收。
在一些实施例中,设备是如下中的一个:(a)移动通信设备;(b)移动电话;(c)平板计算机;(d)移动数据处理设备。
在一些实施例中,由条件访问系统使用来生成多个加密的部分的加密算法与由drm系统使用的内容加密算法相同。
根据本发明的第二方面,提供了一种被布设为执行根据第一方面(或其任何的实施例)的方法的设备。
根据本发明的第三方面,提供了一种用于使设备能够访问内容的方法,其中设备被布设为执行drm系统的数字版权管理(drm)客户端,设备是根据第二方面的设备,该方法包括:经由广播网络传输广播信号,广播信号包括用于内容项的内容的多个加密的部分,每个加密的部分是采用条件访问系统的格式封装的并且是使用对应的解密密钥而可解密的;和针对加密的部分中的一个或多个的每个提供对应的版权对象,其中所述版权对象通过包括用于由drm客户端使用以获得对应于所述加密的部分的解密密钥的解密密钥数据从而对应于所述加密的部分。
根据本发明的第四方面,提供了一种被布设为执行根据第三方面的方法的系统。
根据本发明的第五方面,提供了一种计算机程序,其在由一个或多个处理器执行时引起所述一个或多个处理器执行根据第一方面(或其任何的实施例)或第三方面的方法。计算机程序可以存储在计算机可读介质上。
附图说明
现在将仅仅以示例方式参照随附附图来描述本发明的实施例,在附图中:
-图1示意性图解示例条件访问系统;
-图2示意性图解图1的条件访问系统的头端(head-end)系统的操作;
-图3示意性图解示例数字版权管理系统;
-图4示意性图解计算机系统的示例;
-图5示意性图解示例版权对象;
-图6示意性图解根据本发明的实施例的系统;
-图7示意性图解示例版权对象;
-图8示意性图解转换模块的示例操作;
-图9是图解根据本发明的实施例的方法的流程图;
-图10是图解根据本发明的实施例的方法的流程图;
-图11示意性图解根据发明的实施例的系统;
-图12是图解根据本发明的实施例的方法的流程图;
-图13是图解根据本发明的实施例的方法的流程图;和
-图14是图解根据本发明的实施例的方法的流程图。
具体实施方式
在随后的描述和各图中,描述了本发明的某些实施例。然而,将被领会的是,本发明并不限制于所描述的实施例并且一些实施例可能没有包括以下描述的所有特征。然而将明显的是,在此可以在不脱离如在所附权利要求中阐述的本发明的更宽的精神和范围的情况下作出各种修改和改变。
本发明的实施例涉及内容项和用于控制对这样的内容项的访问(或控制该内容项的使用,或帮助防护或保护该内容项)的方法和系统。在此,术语“内容”涉及任何类型的媒体(诸如音频数据,视频数据,图像数据,多媒体数据,等等),并且内容项可以包括(或表示或编码)一个或多个不同类型的这样的媒体。保护内容项和控制其使用的两个已知的方法是:(a)被称作“条件访问”(或ca)系统的使用;或者(b)被称作“数字版权管理”(或drm)系统的使用。
1–ca系统
在图1中示意性图解示例ca系统100。ca系统100包括头端系统120,其经由网络140可通信地耦合到用户设备(或接收机)130。头端系统120经由网络140向设备130提供内容项110。
内容项110向设备130的提供可以像广播那样执行,从而内容项110被作为广播信号的一部分传输,在此情况下网络140可以包括卫星通信网络或地面广播网络—在这种情况下,通信可以是单向的,即,在没有返回信道的情况下从头端系统120到设备130。内容项110向设备130的提供可以如单播或多播传输那样执行,在此情况下,网络140可以包括线缆分配网络(cabledistributionnetwork)或数据通信网络,诸如因特网。
设备130可以是适合于从头端系统120接收内容项110的任何设备。设备130也可以被布设为呈现(例如,经由显示器或一个或多个扬声器输出)接收的内容项110。例如,设备130可以是电视机、机顶盒、个人计算机,等等。设备130包括,或使用或执行,网络接口132,解多路复用器(demultiplexor)134,ca模块136和解密模块138。这些可以每个是(或者这些可以由以下实现)硬件部件,由设备130的处理器执行的软件部件,或硬件和软件部件的组合。它们将在下面被更加详细地描述。
头端系统120包括多路复用器122,内容加密模块124,cw生成器125,ecm生成器126和emm生成器128。这些可以每个是(或者这些可以由如下实现)硬件部件,由头端系统120的处理器执行的软件部件,或硬件和软件部件的组合。它们将在下面被更加详细地描述。
头端系统120使用称为控制字(cw)的一个或多个加密密钥加密内容项110。为了增加安全性,cw被周期性地改变,从而单个cw仅仅被用来加密内容项110的对应的部分p。该部分p可以是内容项110的单个连续的区段(或块或部分),但这不需要是必须为此情况。在其期间cw被用于加密的时段/间隔被称为对应的密码有效期(cp)。每个cp典型地为大约2-10秒长。因此,头端系统针对或关于内容项110标识(或指定)多个cp(或cp的序列)(cpi针对i=1,2,…),生成(使用cw生成器125)对应的cw(cwi针对i=1,2,…)并且利用对应的cw(cwi针对i=1,2,…)加密(使用内容加密模块124)内容项110的对应的部分(pi针对i=1,2,…),以生成包括加密的部分
设备130将需要cwi以便能够解密对应的加密的部分
设备130将需要k以便能够解密包含在接收的ecm中的加密的cw(即,{cwi}k)。因此,头端系统120(使用emm生成器128)生成针对或目标在于或定址于设备130(或者针对或目标在于或定址于设备130所属于的一组设备)的所谓的授权管理消息(emm)。emm生成器128从ecm生成器126接收密钥k。emm生成器128加密密钥k以生成加密的密钥{k}w。为此,emm生成器128可以使用对应于由ca模块136存储的私有密钥w的公共密钥来加密密钥k,或者可以使用在头端系统120和ca模块136之间共享的秘密对称密钥w加密密钥k。当ca模块136被初始地创建时,公共密钥或秘密密钥可以已经被建立并且提供给头端系统120,从而头端系统120可以存储与对应的ca模块136的标识关联的公共密钥或秘密密钥用于稍后使用。emm包括密钥k的加密的版本,即{k}w。头端系统120经由网络140向设备130提供emm。
头端系统120因此通过网络传送emm,ecm和加密的部分(即,
加密的部分(即,
在设备130处,网络接口132从头端系统120接收通信/传输。网络接口132可以例如包括用于经由卫星网络140或者经由地面广播网络140接收信号广播的天线、解调器/调谐器和用于从接收的广播信号获得和生成数字信号的模数转换器。网络接口132可以包括用于接收通过线缆网络140或通过数据网络140发送的通信/信号的接口。
解多路复用器134被布设为标识在接收的信号中的不同的分量并且选择涉及想要的/选择的服务/节目的那些分量。例如,如果设备130的用户希望看/听/录该具体的内容项110,则解多路复用器134可以在接收的信号中标识涉及该内容项110的emm和ecm并且将它们传递给ca模块136,并且相似地,可以标识涉及该内容项110的加密的部分
ca模块136可以是硬件智能卡,或者可以被实现为使用一个或多个软件保护技术(诸如软件混淆(softwareobfuscation))的软件模块。
虽然已经在每个内容部分pi是使用它自己的对应的cw(也就是cwi)而被加密的情况下描述了以上的ca系统100,但是在一些ca系统100中,该部分pi可以被视为多个分开的(子)部分pi,1,pi,2,…,其每个都是使用相同的cw(也就是cwi)加密的,从而每个对应于针对该cw的cp的一部分(也就是cpi)。因此,头端系统120可以向设备130传送加密的(子)部分(即,
以上阐述的ca系统100的各种修改是已知的。例如,虽然以上讨论的ca系统100使用牵涉密钥w和k的所谓的“密钥梯级(key-ladder)”,但是可以使用具有不同数量或排列的密钥及对应的加密的数据的其它的密钥梯级,以便最终地向设备130提供cw。然而一般而言,所有的ca系统都牵涉生成和传输emm(用于对一个或多个具体的设备控制对内容的访问),ecm(用于向各设备提供cw,如果它们已经经由emm被准许访问的话)和对应的加密的内容部分
2-drm系统
在图3中示意性图解示例drm系统300。drm系统300包括drm提供者320,其经由网络340可通信地耦合到用户设备(或接收机)330。drm提供者320经由网络340向设备330提供内容项110。
网络340可以是任何数据通信网络,drm提供者320可以经由该数据通信网络将数据传送给设备330并且设备330可以经由该数据通信网络将数据传送给drm提供者320。例如,网络340可以包括如下的一个或多个:局域网络,广域网络,城域网络,因特网,无线通信网络,有线或线缆通信网络,等等。
设备330可以是适合于从drm提供者320接收内容项110的任何的设备。设备330也可以被布设为呈现(例如,经由显示器或一个或多个扬声器输出)接收的内容项110。例如,设备330可以是电视机、机顶盒、个人计算机,等等。设备330包括或使用或执行,网络接口332和drm客户端334。这些可以每个是(或者这些可以由如下实现)硬件部件,由设备300的处理器执行的软件部件,或软件和硬件部件的组合。它们将在下面被更具体地描述。
drm提供者320包括加密密钥生成器322,内容加密模块324,内容数据库或存储库326,版权对象(ro)生成器328,ro数据库或存储库329,和控制模块321。这些可以每是(或者这些可以由如下实现)硬件部件,由drm提供者320的处理器执行的软件部件,或软件和硬件部件的组合。它们将在下面被更具体地描述。
控制模块321负责drm提供者320的整体控制/操作—例如,控制模块321可以控制内容项110的加密、加密的内容项{110}向设备330的提供、ro的生成和ro向设备330的提供,如果该设备330(或该设备330的用户)被授权访问或使用内容项110的话。为了这个目标,控制模块321可以处理从设备330接收的用于访问内容的请求,处置支付/订阅细节的处理,等等,如在本技术领域中已知的那样。因为这样的细节对理解本发明不重要,所以在此将不更详细地描述drm提供者320的这样的功能。
加密密钥生成器322生成一个或多个密钥ki(针对i=1,2,…)以用于加密内容项110。内容加密模块324使用该一个或多个密钥ki来加密内容项110以形成加密的内容项{110}。加密的内容项{110}可以被存储在内容数据库326中。加密的内容项{110}可以随后从内容数据库326访问并且经由网络340传送给设备330(例如,响应于drm提供者320从设备330或者从设备330的用户接收针对内容项110的请求)。附加地或替换地,内容加密模块324的输出可以提供给设备330而不必必须首先被存储在内容数据库326中。
设备330将需要所述一个或多个密钥ki以便能够解密对应的加密的内容项{110}以由此访问原始的内容项110。因此,drm提供者320生成(使用ro生成器328)版权对象(ro)350。在图5中示意性图解ro350的性质。ro350是包括解密密钥数据352的数据对象,解密密钥数据352是如下的数据:drm客户端334可以从该数据获得所述一个或多个密钥ki。例如,解密密钥数据352可以包括采用加密形式的所述一个或多个密钥ki,其中drm客户端334具有对用于解密这些加密的一个或多个密钥ki的对应的解密密钥的访问,以由此获得所述一个或多个密钥ki。ro350也可以包含内容元数据354,其可以包括任何元数据,诸如标识内容项110的数据,指定内容项110的特性(例如数据格式,比特率,等等)的数据,指定涉及内容项110的其它的数据(例如,标题,演员,(多个)创建/发行日期,等等)的数据。ro350也可以包含使用数据356,其指定与内容项110关联的一个或多个使用权限或条件或特权或授权(诸如,内容项110可以在设备330上使用的次数的数字和/或内容项100可以在其期间在设备330上使用的一天中的时间和/或内容项100是否可以由设备330记录和/或复制和/或再分配;等等)。ro350的数据的一些或全部可以采用被保护的形式(例如,加密的和/或数字地签名的)存储在ro350中以防止对该数据的未授权的访问和/或修改。drm客户端334可以因此被布设为解密和/或验证ro350的数据的一些/全部的真实性,和/或验证ro350的来源的真实性,其中这样的解密和/或验证使用对于drm客户端334已知或由其可访问的一个或多个密码密钥。这样的密码技术和ro一般而言是公知的并且将不会在此更详细地描述。将被领会的是,ro也可以采取其它的形式。
ro350可以存储在ro数据库329中。ro350可以随后被从ro数据库329访问并且被经由网络340传送给设备330(例如,响应于drm提供者320从设备330或从设备330的用户接收到针对内容项110的请求)。附加地或替换地,从ro生成器328输出的ro350可以提供给设备330(而不必必须首先存储在ro数据库329中)。
在设备330处,网络接口332经由网络340从drm提供者320接收加密的内容项{110}和ro350。特别是,设备330(或者设备330的用户)可以已经向drm提供者320(其可能已经牵涉使用drm客户端334)发出请求以从drm提供者320请求内容项110。响应于该请求,drm提供者320可以经由网络340向设备330传送加密的内容项{110}和ro350,如以上所讨论的那样。这可能牵涉,例如,控制模块321核实设备330的用户的(或设备330的或drm模块334的)身份和核实设备330的用户(或者设备330或者drm模块334)是否被授权以接收内容项110(例如,凭借已经作出的支付或存在中的有效订阅),和只有在身份和授权被成功核实的情况下才向设备330提供加密的内容项{110}和ro350。加密的内容项{110}和ro350可以被一起接收。替换地,可能的是,设备330可以已经(或先前地)从drm提供者320获得或下载加密的内容项{110}(例如,响应于drm提供者320从设备330接收第一请求),在此情况下,设备330(或设备330的用户)可以向drm提供者320(其可能牵涉使用drm客户端334)发出第二请求,以请求(和响应于请求接收)对应于已经获得的加密的内容项{110}的ro350。相反地,可能的是,设备330可能已经(或先前地)从drm提供者320获得或下载对应于加密的内容项{110}的ro350(例如,响应于drm提供者320从设备330接收第一请求),在此情况下,设备330(或设备330的用户)可以向drm提供者320(其可能牵涉使用drm客户端334)发出第二请求,以请求(和响应于请求接收)对应于已经获得的ro350的加密的内容项{110}。
drm客户端334可以使用接收的ro350访问或获得所述一个或多个密钥ki,并且对接收的加密的内容项{110}执行解密操作以便获得明文内容项110。drm客户端334可以依照在ro350之中包含的任何使用数据356来控制随后的内容项110的输出或呈现或使用。
由drm提供者320生成的加密的内容项{110}将采用drm系统300的格式。例如,drm客户端334可能需要能够解析加密的内容项{110}以标识加密的数据在构成加密的内容项{110}的实际数据对象中位于何处,这此情况下,加密的内容项{110}之中的加密的内容数据可以定位在加密的内容项{110}之中的某些预先限定的位置处。加密的内容项{110}可以包括除了实际的加密的内容数据之外的数据,诸如一个或多个报头,其包含用以在drm客户端334的对加密的内容项{110}的处理中对drm客户端334进行协助的数据—这样的数据可以包括例如:标识加密的内容项{110}的数据;到drm提供者320的链接或drm提供者320的地址,从而drm客户端334知道从其来请求和获得ro350的位置;对应的ro350的标识;描述内容项110的元数据(例如,标题,数据格式,(多个)创建/发布日期,等等)。用于加密的内容项{110}的特定的格式将取决于使用的特定的drm系统300,该格式可以例如是专用的格式或标准化的格式。
将被领会的是,虽然drm提供者320在图3中已经被示出为单个系统,但是drm提供者320可以由两个或更多的不同的(子)系统构成,其可以位于同一地点或者可以被分开。例如,第一(子)系统可以包括加密密钥生成器322,内容加密模块324和内容数据库326;第二(子)系统可以包括版权对象(ro)生成器328和ro数据库或存储库329;同时第三(子)系统可以包括控制模块321。以这种方式,负责生成加密的内容项{110}的实体可以被与负责生成、管理和提供ro的实体分开。
3–示例计算机系统或数据处理系统
图4示意性图解计算机系统400的示例。系统400包括计算机402。计算机402包括:存储介质404,存储器406,处理器408,接口410,用户输出接口412,用户输入接口414和网络接口416,其全部通过一个或多个通信总线418链接在一起。
存储介质404可以是任何形式的非易失性数据存储设备,诸如一个或多个硬盘驱动器,磁盘,光盘,rom,等等。存储介质404可以存储用于处理器408执行的操作系统以便计算机402运转。存储介质404也可以存储一个或多个计算机程序(或软件或指令或代码)。
存储器406可以是适合于存储数据和/或计算机程序(或软件或指令或代码)的任何随机存取存储器(存储单元或易失性存储介质)。
处理器408可以是适合于执行一个或多个计算机程序(诸如存储在存储介质404上的和/或在存储器406中的那些)的任何数据处理单元,计算机程序中的一些可以是根据本发明的实施例的计算机程序或者当由处理器408执行时引起处理器408执行根据本发明的实施例的方法并且将系统400配置为根据本发明的实施例的系统的计算机程序。处理器408可以包括单个数据处理单元或者并行地、分开地或相互协作地操作的多个数据处理单元。处理器408在执行用于本发的明实施例的数据处理操作中可以向存储介质404和/或存储器406存储数据,和/或从存储介质404和/或存储器406读取数据。
接口410可以是用于向计算机402的外部的或从计算机402可移除的设备422提供接口的任何的单元。设备422可以是数据存储设备,例如,一个或多个的光盘,磁盘,固态存储设备,等等。设备422可以具有处理能力—例如,设备可以是智能卡。接口410因此可以依照它从处理器408接收的一个或多个命令从设备422访问数据或者向设备422提供数据或者与设备422进行交互作用。
用户输入接口414被布设为从系统400的用户或操作员接收输入。用户可以经由系统400的一个或多个输入设备(诸如的鼠标(或其它指点设备)426和/或键盘424)提供该输入,所述一个或多个输入设备连接到用户输入接口414或者与用户输入接口414通信。然而,将被领会的是,用户可以经由一个或多个附加的或替代的输入设备(诸如触摸屏)向计算机402提供输入。计算机402可以在存储器406中存储经由用户输入接口414从输入设备接收的输入以用于处理器408随后进行访问并且处理,或者可以将它直接传给处理器408,从而处理器408可以相应地响应用户输入。
用户输出接口412被布设为向系统400的用户或操作员提供图像/视觉和/或音频输出。像这样,处理器408可以被布设为指令用户输出接口412形成表示想要的图形输出的图像/视频信号,并且向连接到用户输出接口412的系统400的监视器(或屏幕或显示单元)420提供该信号。附加地或替换地,处理器408可以被布设为指令用户输出接口412形成表示想要的音频输出的音频信号,并且向连接到用户输出接口412的系统400的一个或多个扬声器421提供该信号。
最后,网络接口416提供用于计算机402从一个或多个数据通信网络下载数据和/或向一个或多个数据通信网络上传数据的功能。
将被领会的是,在图4中图解的并且以上描述的系统400的架构仅仅是示例性的,并且具有不同架构的其它的计算机系统400(例如,与图4中示出的相比具有更少的部件或者与图4中示出的相比具有附加的和/或替换的部件)可以在本发明的实施例中使用。例如,计算机402可以包括触摸屏,其提供键盘424和监视器420两者。作为示例,计算机系统400可以包括一个或多个的:个人计算机;服务器计算机;移动电话;平板计算机;便携式计算机;电视机;机顶盒;游戏控制台;其它的移动设备或消费电子设备;等等。
返回参考图4的ca系统100,头端系统120可以是或者可以包括一个或多个图4的计算机系统400(诸如一个或多个服务器)。相似地,设备130可以是或者可以包括一个或多个图4的计算机系统400—例如,设备130可以是机顶盒或个人计算机。返回参考图3的drm系统300,drm提供者320可以是或者可以包括一个或多个图4的计算机系统400(诸如一个或多个服务器)。相似地,设备330可以是或者可以包括一个或多个图4的计算机系统400—例如,设备330可以是个人计算机。
4–用于广播内容的组合的ca和drm
图6示意性图解根据本发明的实施例的系统600。系统600包括头端系统620,其经由广播网络640和经由数据通信网络641可通信地耦合到用户设备(或接收机)630。
头端系统620被布设为经由广播网络640向设备630提供(或传送或传输)采用加密(或加扰(scrambled))的形式的内容项110。广播网络640可以是用于广播内容项的任何的网络并且可以,例如,包括卫星通信网络或地面广播网络。
头端系统620包括多路复用器122,内容加密模块124,cw生成器125,ecm生成器126和emm生成器128,其以与如以上参照图1的ca系统100所描述的和如参照图2所讨论的相同的方式操作。因此,头端系统620的这些部件的性质和操作将不再次描述。至于图1的ca系统100,多路复用器122,内容加密模块124,cw生成器125,ecm生成器126和emm生成器128可以每个是(或者可以由如下实现)硬件部件,由头端系统620的处理器执行的软件部件,或者硬件和软件部件的组合。
然而总之,头端系统620针对或关于内容项110标识(或指定)多个cp(或者cp的序列)(cpi针对i=1,2,…),生成(使用cw生成器125)对应的cw(cwi针对i=1,2,…)并且利用对应的cw(cwi针对i=1,2,…)加密(使用内容加密模块124)内容项110对应的部分(pi针对i=1,2,…)以生成包括加密的部分
如以上所描述那样,加密的部分(即,
因此,头端系统620被布设为向设备630提供或传输/传送广播信号,其中广播信号包括内容的多个加密的部分
头端系统620被布设为经由数据通信网络641向设备630提供一个或多个版权对象(ro)。数据通信网络641可以是任何数据通信网络,经由该数据通信网络头端系统620可以向设备630传送数据并且经由该数据通信网络设备630可以向头端系统620传送数据。数据通信网络641可以例如包括一个或多个的:局域网络,广域网络,城域网络,因特网,无线通信网络,有线或线缆通信网络,等等。数据通信网络641可以是例如ip数据可以经由其传送的ip网络。设备630和头端系统620可以被布设为经由数据通信网641经由任何适合的数据通信协议相互传送。例如,当数据通信网络641是因特网时,数据通信协议可以是http,tcp/ip,等等。
为了能够向设备630提供一个或多个版权对象(ro),头端系统620包括版权对象(ro)生成器628,ro数据库或存储库629,和控制模块621。这些可以每个是(或者可以由如下实现)硬件部件,由头端系统620的处理器执行的软件部件,或者硬件和软件部件的组合。
版权对象(ro)生成器628以与drm系统300的ro生成器328相似的方式操作,除了ro生成器628被布设为基于由cw生成器125生成的cw生成ro而不是基于由drm提供者320使用的所述一个或多个密钥ki生成ro之外。
特别是,ro生成器628被布设为接收由cw生成器125生成的cw。ro生成器628生成一个或多个ro650,其中每个ro650包括用于由设备630的drm客户端334使用以获得一个或多个cw的解密密钥数据。在图7中示意性图解ro650的性质,并且其是与图5中图解的ro350相似的。ro650是包括解密密钥数据652的数据对象,它是drm客户端334可以从其获得一个或多个cw的数据。例如,解密密钥数据652可以包括采用加密的形式的一个或多个cw,其中drm客户端334具有对用于解密这些加密的一个或多个cw的对应的解密密钥的访问以由此获得所述一个或多个cw。ro650也可以包含内容元数据654,其可以包括任何元数据,诸如标识内容项110的数据,指定内容项110的属性(例如,数据格式,比特率,等等)的数据,指定涉及内容项110的其它的数据(例如,标题,演员,(多个)创建/发行日期,等等)的数据,等等。ro650也可以包含使用数据656,其指定与内容项110关联的一个或多个使用权限或条件或特权或授权(诸如,内容项110可以在设备630上被使用的次数的数字和/或内容项110可以在其期间在设备630上使用的一天中的时间和/或内容项110是否可以由设备630记录和/或复制和/或再分配;等等)。ro650的数据的一些或全部可以采用受保护的形式(例如,加密的和/或数字地签名的)存储在ro650中以防止未授权的访问和/或修改。drm客户端334可以因此被布设为解密和/或验证ro650的数据的一些/全部的真实性,和/或验证ro650的来源的真实性,其中这样的解密和/或验证使用drm客户端334已知的或由drm客户端334可访问的一个或多个密码密钥。将被领会的是,ro也可以采取其它的形式。
ro650可以被存储在ro数据库629中。ro650可以随后被从ro数据库629访问并且经由数据通信网络641向设备630传送(例如,响应于头端系统620从设备630接收请求)。附加地或替换地,从ro生成器628输出的ro650可以被提供给设备630(而不必必须首先存储在ro数据库629中)。
控制模块621协调ro650的生成和提供。例如,控制模块621可以被布设为响应于从设备630接收的请求引起ro生成器528针对内容项110的对应的部分p生成对应于特定的cp或一个或多个特定的cw的ro650,并且经由数据通信网络641向设备630提供生成的ro650。相似地,控制模块621可以被布设为响应于从设备630接收的请求,针对内容项110的对应的部分p从ro数据库629取回(或访问或获得或读取)对应于特定的cp或一个或多个特定的cw的ro650,并且经由数据通信网络641向设备630提供取回的ro650。控制模块621也可以执行其它的drm功能,诸如:确定设备630是否被授权接收ro或访问内容项110(并且只有在该设备被如此授权的情况下才向设备630提供ro);处置支付/订阅细节的处理;等等。
在这个意义上,在头端系统620被布设为生成和提供ro的限度内,头端系统620(或者至少以上提及的在图6中的短划线之中的头端系统620的部件)充当drm系统300的drm提供者320的至少部分。
头端系统620可以是或者可以包括一个或多个图4的计算机系统400(诸如一个或多个服务器)。虽然在图6中头端系统620被示出为单个实体,但是可能的是,头端系统620的不同部分可以被实现为分开的(子)系统—例如,头端系统620的ca部分(也就是点划线中的那些)可以经由一个或多个计算机系统实现,而头端系统620的drm部分(或ro部分)(也就是在短划线中的那些)可以经由一个或多个计算机系统实现。
设备630可以是适合于从头端系统620接收内容项110的任何的设备。设备630也可以被布设为呈现(例如,经由显示器或一个或多个扬声器输出)接收的内容项110。例如,设备630可以是电视机、机顶盒、个人计算机,等等。设备630包括,或使用或执行广播网络接口632,在设备630的处理器上执行的访问应用程序660,drm客户端334和数据网络接口332。这些可以每个是(或可以由如下实现)硬件部件、由设备630的处理器执行的软件部件、或硬件和软件部件的组合。设备630可以是或可以包括一个或多个图4的计算机系统400。
特别是,在设备630包括数据网络接口332和可以以与如以上参照图3阐述的相同的方式操作的drm客户端334的限度内,设备630初始地可以与图3的drm系统300的设备330相同。因此,它们将不会被进一步详细地描述,除了在对理解本发明的实施例来说必要的情况下。
为了适配图3的设备330以能够接收由广播信号分发的受保护的内容项110(诸如经由广播网络640由头端系统620采用加密的形式分发的内容项110),设备包括广播网络接口632。广播网络接口632可以例如包括用于经由卫星网络640或经由地面广播网络640接收信号广播的天线,解调器/调谐器和用于从接收的广播信号获得和生成数字信号的模拟到数字转换器。广播网络接口632可以包括例如dvb-t接收机。为了能够处理接收的受保护的内容项110,将可能的是,在设备630上安装用于由设备630的处理器执行的软件应用程序,其执行解多路复用器134、ca模块136和在图1的ca系统100中的设备130的解密模块138的操作。然而,由于移动数据处理设备(诸如智能电话、平板计算机、便携式计算机,等等)正变得越来越盛行并且与非用偏好的设备相比更常用,所以重要的是能够向这样的移动数据处理设备递送内容项(由此满足用户需求),而同时保证高安全级别(由此满足内容提供者和分发者的要求)。这鉴于如下而是尤其真实的:当前可用的这样的设备的特别巨大的数量和新设备进入市场的速率,加上这样的设备运行的操作系统和软件的范围,所有这些使内容保护成为艰难的挑战。简单允许这样的设备的用户在其可能是容易受到攻击的不被信任的或被包括的设备或操作系统上安装这样的应用程序造成潜在的安全风险。
因此,为了能够以更安全的方式处理经由广播网络接口632接收的受保护的内容项110,设备630被布设为在设备630的处理器上执行如以下阐述的访问应用程序660。与drm客户端334结合的访问应用程序660使设备630能够(如果被授权的话)取得对经由广播网络接口632以受保护的/加密的形式在广播信号中接收的内容项110的访问。如图9中所示出那样,访问应用程序与drm客户端334分开(即,它们像两个分开的应用程序或模块那样运行或执行)。
访问应用程序660包括(或被布设为当被执行时提供)解多路复用器634和转换模块636。
解多路复用器634被布设为标识由广播网络接口632接收的信号中的不同分量并且选择涉及想要的/选择的服务/节目的加密的部分
转换模块636被布设为把加密的部分
图8示意性图解转换模块636可以如何把根据ca系统100的格式封装为一定量的数据200i的加密的部分
•加密的部分
•如以上所描述那样,该一定量的数据200i可以除了加密的部分
•如以上所描述那样,该一定量的数据200i可以除了加密的部分
•如以上所描述那样,该一定量的数据200i可以除了加密的部分
•转换模块636可以在数据对象800i之中包括不基于该一定量的数据200i之中的任何的数据的数据806。例如,数据806可以包括为头端系统620提供链接或地址的数据。
重要地,转换模块636被布设为在不解密加密的部分
图9是图解根据本发明的实施例的方法900的流程图。
在步骤902,设备630经由广播网络640在广播网络接口632处接收作为来自头端系统620的广播信号的部分的加密的部分
在步骤904,访问应用程序660使用它的解多路复用器634以从接收的广播信号获得(或提取)加密的部分
在步骤906,访问应用程序660使用它的转换模块636以把由解多路复用器634获得的加密的部分
在步骤908,访问应用程序660向drm客户端334提供(或传送或发送或使如下可用)采用drm系统300的格式的加密的部分
在步骤910,访问应用程序660向drm客户端334提供ro650(其是根据drm系统300的ro)。在ro650包括基于对应于加密的部分
在一个实施例中,为了能够向drm客户端334提供ro650,访问应用程序660可以标识一个或多个接下来在下面将由drm客户端334解密的加密的部分
因此,由于drm客户端324需要ro350以便能够解密在步骤904获得的加密的部分
在步骤912,drm客户端334从接收的或访问的ro650获得对应于在步骤904获得的加密的部分
在步骤914,drm客户端334使用所获得的cwi解密该加密的部分
在步骤916,drm客户端334输出部分pi的至少部分(即,步骤914的结果)。部分pi的该至少部分可以例如被传给一个或多个随后的处理模块以用于对应的随后的处理。例如,如果部分pi是采用压缩的格式(例如,mpeg2或h.264),则随后的处理模块中的一个可以酌情执行对应的数据解压缩。相似地,随后的处理模块中的一个可以被布设为对部分pi的至少部分执行错误校正或错误检测。部分pi的至少部分可以(跟在这样的随后的处理之后)最终被输出或呈现给用户,例如经由输出接口412(例如,至设备630的监视器420和/或至设备630的一个或多个扬声器421)。附加地或替换地,部分pi的至少部分可以(或者在这样的随后的处理之前或者跟在这样的随后的处理之后)被存储在存储介质(诸如存储介质408或设备422)上。
可以针对可能由头端系统620作为广播信号的部分传送的一个或多个的加密的部分的每个来执行步骤902-916。
图10是图解根据本发明的实施例的方法1000的流程图。这与图9的方法900相同,除了方法900的步骤910已经由步骤1010和1020替换。对于与方法900的对应地编号的步骤相同的方法1000的其它的步骤而言,以上针对方法900的那些步骤的描述同样地应用于方法1000。
在步骤1010,访问应用程序660触发drm客户端334获得或访问ro650(其是根据drm系统300的ro)。在ro650包括基于对应于加密的部分
在步骤1020,drm客户端334响应于被访问应用程序660触发而访问或获得ro650。
步骤1010和1020可以是以与图9的步骤910相同的方式执行的,除了是drm客户端334生成和发出针对ro650的请求而不是访问应用程序660生成和发出请求。方法1000因此特别地适合于如下的实施例:在该实施例中头端系统620(并且特别是控制模块621)被布设为仅仅处理从drm系统300的对应的drm客户端334接收的针对ro的请求(在此情况下,方法900将不工作,因为请求是在步骤910从访问应用程序660发出的)。
在步骤1010的触发可以简单地包括访问应用程序660向drm客户端334发送信号或消息(诸如中断),以便drm客户端334生成和发出请求,如以上阐述的那样。替换地,步骤1010可以牵涉访问应用程序660以上面针对步骤910所讨论的方式生成或获得针对加密的部分
ro650然后可以或者由drm客户端334或者由访问应用程序660接收。如果ro650由访问应用程序660接收,则访问应用程序660将接收的ro650传给drm客户端334。
在方法900中,一旦加密的部分
同样的情况类似地应用于方法1000。特别是,在方法1000中,一旦加密的部分
图11示意性图解图6的系统600,其中设备630附加地包括ro数据库或存储库1100。以上的图6的描述类似地应用于图11。下面阐述ro数据库1100的使用。
以上所描述那样方法900和1000的实施例依赖于设备630能够经由数据通信网络641而或者在接收对应的加密的部分
图12是图解根据本发明的实施例的方法1200的流程图。方法1200与以上所描述那样方法900相同,除了(a)方法1200具有在步骤902之前的附加的步骤1202,1204,和(b)步骤910在该实施例中被与以上描述的实施例不同地执行。
特别是,步骤1202包括访问应用程序660或drm客户端334向头端系统620发出请求(经由数据网络接口332和数据通信网络641)。该请求可以标识内容项110。头端系统620的控制模块621可以响应于该请求向访问应用程序660或drm客户端334提供涉及内容项110的一组的一个或多个ro650(经由数据通信网络641和数据网络接口332)。如以上所讨论那样,ro650的该提供可以包括控制模块621从ro数据库629访问ro650或者可以包括控制模块621指令ro生成器628生成ro650。ro650的提供可以包括控制模块621核实设备330(或设备330的用户或drm客户端334或访问模块660)被授权访问内容项110(例如,如果已经针对该内容项作出支付或订阅的话)—如果有授权,则控制模块621可以向访问模块660或向drm客户端334发送ro650;如果没有授权,则控制模块621可以不向访问模块660或向drm客户端334发送ro650。
在步骤1204,该组ro650由访问应用程序660或由drm客户端334接收,并且这些ro650被存储在ro数据库1100中。ro650可以以由针对ro650所涉及的对应的(多个)加密的部分
在一些实施例中,该组ro650是使drm客户端334能够访问内容项110的全部的一组ro。
因此,在步骤910,代替针对ro650向头端系统620发出请求(经由数据网络接口332和数据通信网络641),访问应用程序660可以从ro数据库110获得ro650,其中该获得的ro650对应在步骤902接收的加密的部分
图13是图解根据本发明的实施例的方法1300的流程图。方法1300与以上描述的方法1000相同,除了(a)方法1300具有在步骤902之前的附加的步骤1202,1204,如以上已经参考图12描述的那样,和(b)步骤1020在该实施例中与以上描述的实施例不同地被执行。
在步骤1020,代替针对ro650向头端系统620发出请求(经由数据网络接口332和数据通信网络641),drm客户端334可以从ro数据库110获得ro650,其中该获得的ro650对应于在步骤902接收的加密的部分
图14是图解根据本发明的实施例的方法1400的流程图。方法1400与以上描述的方法1000相同,除了(a)方法1400具有在步骤902之前的附加的步骤1202,1402,和(b)步骤1020在该实施例中与上面描述的实施例不同地被执行。
在方法1400中的步骤1202以与方法1200和1300中的步骤1202同样的方式被执行。
在步骤1402,由访问应用程序660或由drm客户端334响应于在步骤1202发出的请求而接收该组ro650。如果该组ro650由访问应用程序660接收,则访问应用程序660将该组ro650传给(或传送/传递)给drm客户端334。该组ro650被加载到drm客户端334的存储器中而不是将接收的该组ro650存储在ro数据库1100中(如在方法1200,1300中的步骤1204所做的那样),从而它们稍后(也就是针对步骤912)是由drm客户端334可访问的。
访问应用程序660或drm客户端334然后可以在ro数据库1100中存储针对接收的ro650的每个的标识符,其中每个ro标识符与一个或多个加密的部分
在一个实施例中,步骤1010然后包括访问应用程序660获得针对将由drm客户端334解密的加密的部分
在另一个实施例中,步骤1010包括访问应用程序660触发drm客户端334(例如,向drm客户端发送消息或信号,其指示另一个加密的部分
在方法1000,1300和1400的一些实施例中,触发是简单地凭借访问应用程序660在步骤908把加密的部分
在方法1200,1300,和1400的一些实施例中,可以获得关于多个内容项100的一组ro650。这些组的ro(或针对这些ro的标识符)然后可以被存储在ro数据库1100中。这意味着即使当设备630不具有对数据通信网络641的访问时设备630的用户也可以执行频道/服务改变来取得对多个频道/服务的访问。
在一些实施例中,drm客户端334在设备630的受信赖的执行环境(tee)中执行,而访问应用程序660不在tee中执行。tee是公知的,并且在此将不更详细地描述。然而,将被领会的是,通过不让访问应用程序660对所接收的受保护内容执行任何解密,从而在设备处提供的安全性上不存在劣化。因此,安全性可以维持在由drm客户端334(和tee,如果drm客户端334在tee中执行的话)提供的级别。
5–修改
将被领会的是,描述的方法已经被作为以特定的顺序执行的各个步骤示出。然而,本领域技术人员将领会这些步骤可以被组合或以不同的顺序执行,同时仍然实现想要的结果。
将被领会的是,本发明的实施例可以使用各种不同的信息处理系统实现。特别是,虽然其各图和讨论提供示例性的计算系统和方法,但是这些仅仅是为了在讨论本发明的各个方面中提供有用的参考而提出的。本发明的实施例可以在任何合适的数据处理设备(诸如个人计算机,便携式计算机,个人数字助理,移动电话,机顶盒,电视机,服务器计算机,等等)上执行。当然,为了讨论的目的,已经简化了系统和方法的描述,并且它们仅仅是可以用于本发明的实施例的许多不同类型的系统和方法中的一个。将被领会的是,各逻辑块之间的界限仅仅是例示的并且替换的实施例可以合并逻辑块或元件,或者可以对各个逻辑块或元件强加替换的功能性的分解。
将被领会的是,以上提及的功能性可以被实现为作为硬件和/或软件的一个或多个对应的模块。例如,以上提及的功能性可以被实现为用于由系统的处理器执行的一个或多个软件部件。替换地,以上提及的功能性可以被实现为硬件,诸如一个或多个现场可编程门阵列(fpga)、和/或一个或多个应用专用集成电路(asic)、和/或一个或多个数字信号处理器(dsp)、和/或其它的硬件装置。在此所包含的或如以上描述的流程图中所实现的方法步骤可以每个由对应的相应的模块实现;在此所包含的或如以上所描述的流程图中所实现的多个方法步骤可以由单个模块来一起实现
将被领会的是,在本发明的实施例由计算机程序实现的限度内,那么存储或承载计算机程序的一个或多个存储介质和/或一个或多个传输介质构成本发明的方面。计算机程序可以具有一个或多个程序指令或程序代码,其当由一个或多个处理器(或一个或多个计算机)执行时执行本发明的实施例。如在此使用的术语“程序”可以是被设计用于在计算机系统上执行的指令的序列,并且可以包括子例程、功能、过程、模块、对象方法、对象实现、可执行的应用程序、小程序(applet)、小服务器程序(servlet)、源代码、目标代码、字节代码、共享库、动态链接库、和/或其它的被设计用于在计算机系统上执行的指令的序列。存储介质可以是磁盘(诸如硬驱动器或软盘)、光盘(诸如cd-rom,dvd-rom或蓝光盘)、或存储器(诸如rom、ram、eeprom、eprom、闪速存储器或便携式/可移动存储器设备),等等。传输介质可以是通信信号、数据广播、两个或更多个计算机之间的通信链路,等等。