条件访问系统 背景技术
典型的数字本地网络包括多个设备,例如无线电接收机、调谐器/译码器、CD播放器、一对扬声器、电视机、VCR、磁带机等等。这些设备通常互联以允许一种设备(例如电视机)控制另一种设备(例如VCR)。诸如调谐器/译码器或者机顶盒(STB)之类的设备通常是中央设备,用于在其他设备之上提供中央控制。控制按钮和开关通常位于调谐器的前端,同时还位于手持遥控装置上。用户可以通过中央设备或者遥控单元来控制所有的设备。
随着这些设备变得越发通用且越发复杂,简单的人工控制已经无法再满足。此外,随着越来越多的设备可以利用,所以它们之间的互用性开始成为一个问题。许多供应商使用他们自己的通信协议来允许他们的设备交互,但是来自于不同供应商的设备无法进行交互。为了克服这些问题,已经定义了多个互用性标准,这些互用性标准允许不同设备交换消息和信息,并且允许不同设备互相控制。一种众所周知的标准是本地音频/视频互用性(Home Audio/VideoInteroperability,HAVi)标准,其1.0版本在2000年1月问世,并且能够以地址http://www.havi.org/在互联网上获得。其他众所周知的标准有家用数字总线(domestic digital bus,D2B)标准、以IEC1030描述的通信协议以及通用的即插即用(Universal Plug andPlay)(http://www.upnp.org)。
在依照这种标准的系统中,设备使用诸如IEEE 1394串行通信总线的标准总线在网络中互联,并且依照所述标准经由此网络来交换信息,所述信息诸如像消息、数据和命令。诸如HAVi之类的标准定义了用于这种交换的协议,其允许来自于不同供应商的设备进行交互。用户可以向网络添加新的设备,并且它们立即可为其他设备所利用。用于“发现”这种新设备的协议也得到标准化。
在本地内数字网络(KDN)中的一些设备可以具有外部连接。利用这种连接,内容可以使用宽带传输或者通过从互联网下载而进入网络。内容还可以通过从诸如数字化多用途盘(DVD)或者硬盘的存储介质中将其读出来进入网络。
存在于此文献的解决方案所致力于解决的难题是:在保持端对端控制并且在不引入大量复杂性的情况下、如何通过此系统来实现内容地安全传输。
【发明内容】
依照本发明的第一方面,提供了一种条件访问系统,所述系统包括在网络中互联的多个设备,将所述设备分组成第一组和第二组,第一组的设备依照第一安全框架操作,而第二组设备依照第二安全框架操作,每个设备利用特定的中间件层操作,将所述中间件层设置为验证另一个设备的另一个中间件层,所述中间件层由设备操作所依照的安全框架来验证。
网络中的所有设备都执行安全框架。利用这个框架,这些设备可以互相验证,并且安全地分配内容以及访问由安全系统管理的内容。这样做可以防止未保护的内容“泄漏”到未被授权的设备。为此,所述设备必须彼此信任,并且必须相信他们自己的中间件层以及另一个设备的安全框架。本发明避免了安全框架必须验证系统中的每个中间件层并且必须支持专用于所有不同中间件层的各种中间件。
在一实施例中,来自于第一组的设备通过对来自于第二组的设备的中间件层进行远程过程调用(RPC)可以执行第二安全框架的功能。此实施例允许安全框架互相定位以及进行通信,并且独立于HN-MW以及网络技术。
在进一步的实施例中,将RPC经由安全验证通道(secureauthenticated channel,SAC)发送到来自于第二组的设备中。这样允许想要相互通信的安全框架安全地执行此操作。当多个安全设备存在于网络中时,可以将它们之间的SAC集合看作为虚拟专用网络(VPN)。
在进一步的实施例中,所述设备被允许依照目的的特定类来访问内容,定义了这种类的集合,每个类都包括多个条件访问操作或者目的。所述中间件将处理在所述类范围内的这些内容的内容。
优选的是,来自于所述集合的第一类包括操作RENDER(显示)、MOVE(移动)和COPY(复制)。此外优选的是,来自于所述集合的第二类包括操作STORE(存储)、RENDER(再现)、EDIT(编辑)、DELETE(删除)和PROCESS(处理)。在进一步的实施例中,优选的是,PROCESS操作独立于对与所述内容相关联的权限的任何限制而被授权。所述PROCESS操作允许网络中适应的设备访问受保护内容,以便在不改变所述权限的情况下、执行不改变有关内容的权限的操作。这种操作的例子是:内容和比特率代码转换、需要支持特技播放的处理、图像改善。
依照本发明的第二方面,提供了一种用于允许设备有条件地访问一条内容的方法,其中所述设备被允许依照目的的特定类来访问内容,定义了这种类的集合,每个类包括多个条件访问操作或者目的。
在一实施例中,来自于所述集合的第一类包括操作STORE(存储)、RENDER(显示)、EDIT(编辑)、DELETE(删除)和PROCESS(处理)。在进一步的实施例中,PROCESS(处理)操作独立于对与内容相关联的权限的任何限制而被授权。
【附图说明】
本发明的这些及其他方面将通过参照附图中所示的例证性的实施例的阐明而更加显而易见,其中:
图1示意性地举例说明了依照本发明的本地内网络的优选布局,其包括一个源、一个汇点(sink)以及两个存储介质;
图2举例说明了权限管理与保护(RMP)的优选安全框架的基本结构;
图3描述了从一个安全框架发送到另一个安全框架的消息;
图4举例说明了如何利用RPC调用对OPIMA OVM的公共接口进行调用。
图5举例说明了如何实现分布式内容访问;以及
图6举例说明了如何优选地管理RPC调用。
贯穿整个附图,相同的参考标记表示相同或相应的特征。附图中表示的一些特征通常以软件来实现,并且照此表示软件实体,诸如软件模块或者对象。
【具体实施方式】
本地内(IN-HOME)网络体系结构
图1示意性地举例说明了依照本发明的本地内网络的优选布局,包括一个源、一个汇点以及两个存储介质S1和S2。将网络在概念上按照条件访问(CA)域和复制保护(CP)域来分隔。
大多数的内容进入本地内网络的CA域中,所述内容通常包括像音乐、歌曲、电影、TV节目、图像等等的东西。所述源可以连接到宽带电缆网络、互联网联接、卫星下行链路等等。可以将用这种方式接收的内容存储在存储介质S1中,从而稍后可以读出并且显示在汇点上。所述存储介质S1可以是某些类型的个人数字记录器(PDR),例如DVD+RW记录器。源还可以是DVD播放器,其中可以插入DVD盘,从而可以从所述盘中读取内容。
显示内容项的确切方式取决于汇点类型以及内容类型。举例来说,在无线电接收机中,显示包括产生音频信号并且将它们馈送到扩音器。对于电视接收机来说,显示包括产生音频与视频信号并且将它们馈送到显示屏幕以及扩音器。对于其他类型的内容来说,必须采取相似的适当动作。显示还可以包括诸如译码或者去扰所接收的信号、使音频与视频信号同步等等的操作。
举例来说,汇点可以是电视系统或者音频回放设备。通常,所述汇点位于CP域。这样可以确保当向汇点提供内容时,由于CP域中适当位置上的复制保护而不可以产生内容的未被授权的副本。所述CP域包括存储介质S2,在所述存储介质S2上可以依照复制保护规则来存储内容的(临时)副本。
用于实现安全框架的本地内网络中的所有设备都依照实施要求来这样做。利用此框架,这些设备可以互相验证,并且安全地分配内容以及访问由安全系统管理的内容。这样做可以防止未保护的内容“泄漏”到未被授权的设备。
安全框架
图2说明了用于权限管理与保护(RMP)的优选安全框架的基本结构。此安全框架依照TV Anytime Call For Contributions(CFC)来定义,参见位于http://www.tv-anytime.org/cfcs/的TV Anytime网站。在图2中,描述了以下元件:
-应用程序API:允许应用程序依照共同操作的方式与RMP系统进行通信。
-应用程序:能够使用户依照RMP条件访问内容和PDR特征的软件和/或服务。
-基线RMP系统:所述功能遵循TV Anytime RMP基线规范。
-专有RMP系统:经由RMP服务API与TVA RMP基线系统接口的专有内容保护系统。
-RMP信息管理器:判定对内容允许什么样的动作,例如播放、复制、移动等,并且可以将密钥传递到安全工具。
-RMP服务API:允许RMP系统依照能共同操作的方式与RMP基线安全功能进行通信。
-RMP系统功能层:实现基线系统的功能集合。
-RMP系统管理器:管理基线系统的操作。
-安全工具:尽可能地包含:解扰器、水印检测器/嵌入器、签名检验器等等。
-对TVA基线RMP系统的标准化增强:对TVA RMP基线系统的可选TVA标准化扩展。
-TVAF RMP基线设备接口:TVA适应设备之间的安全通信层。
此文献提供了以下系统元件的解决方案:
-应用程序API
-RMP服务API
-设备间通信
应用程序API
当必须开发来自于第三方的软件时需要标准化的API。因此,只对具有此需求的平台要求标准化的应用程序API。这种平台的例子有支持下载的应用程序的平台。只有对这种设备,才需要应用程序API。
DAVIC CA-API(DAVIC(Digital Audio-Visual Council),于1998年提出的DAVIC 1.4规范,http://ww.davic.org/)被推荐为应用程序API。DAVIC CA API提出使用来自于应用程序的受保护内容所需要的大多数功能。然而,可能需要一些扩展来寻址与存储器和网络相关的出口。
RMP服务API
RMP服务API允许RMP系统依照能共同操作的方式与RMP基线安全功能进行通信。所述RMP服务API应该包括来自于OPIMA的方法的子集,如在这一节里所给出的。在以后几节里,用于RMP API的OPIMA方法依照功能而被分组。对于OPIMA来说,参见OPIMA(Open PlatformInitiative for Multimedia Access),1.1,2000规范版本,网址为:http://www.cselt.it/opima/,将这部分内容引入于此,以供参考。
内容访问
这一部分反映了‘抽象(Abstract)内容访问’接口的接口定义、OPIMA标准的3.3.4.7节。经由这个接口,应用程序可以表明对内容所要求的动作。
在OPIMA中,当RMP决定不再允许访问内容时(例如,因为内容规则在访问权限方法发生改变),RMP系统在内容的停止动作上不具有控制。对于RMP系统可用的唯一机制在于:向OPIMA虚拟机(OVM)发送错误解密密钥。此举是否会导致系统崩溃,取决于OVM的实现。作为另外的方法,更加适度地停止内容访问是必要的。
应该将以下方法用于内容访问:
-installCallbackContentAccess
-AbstractContentAccess
-replyToContentAccess
可选择的是,可以使用以下附加的方法:
-stopContent(ContentId)
访问规则/密钥
这一部分反映了‘规则抽象访问’接口的接口定义、OPIMA标准的3.3.4.8节。经由这个接口,RMP系统可以表明其希望接收的规则/权限数据。
应该将以下方法用于用户交互:
-obtainUserRules
-obtainContentRules
-newRules
-updateContentRules
可选择的是,可以使用以下附加的方法:
-addContentRules
智能卡
这一部分反映了‘智能卡’接口的接口定义、OPIMA标准的3.3.4.6节。所述RMP系统可以通过此系统来访问智能卡,并且发送/接收标准ISO 7816 APDU。
应该将以下方法用于智能卡交互:
-addCTListener
-removeCTListener
-cardInserted
-cardRemoved
-getSlotId
-isCardPresent
-openSlotChannel
-closeSlotChannel
-getATR
-reset
-sendAPDU
加密与解密
这一部分反映了‘加密与解密引擎’接口的接口定义、OPIMA标准的3.3.4.3节。所述RMP系统可以经由这个接口来控制内容加密以及对杂项数据的加密动作。
应该将以下方法用于加密与解密:
-queryEncryptionAlgorithms
-encrypt
-initEncryption
-updateEncryptionKeys
-stopEncryption
-decrypt
-intiDecryption
-updateDecryptionKeys
-stopDecryption
签名
这一部分反映了‘签名引擎’接口的接口定义、OPIMA标准的3.3.4.4节。经由这个接口,RMP系统可以检验并且产生内容上的签名以及杂项数据上的签名两者。
应该将以下方法用于签名:
-querySignatureAlgorithms
-verifySignature
-verifyContentSignature
-generateSignature
-generateContentSignature
水印
此部分反映了‘水印引擎’接口的接口定义、OPIMA标准的3.3.4.5节。经由此接口,RMP系统可以检测并且将水印嵌入内容中。
应该将以下方法用于水印:
-queryWatermarkAlgorithms
-extractWatermark
-stopWatermarkExtraction
-insertWatermark
-stopWatermarkInsertion
RMP访问
这一部分反映了‘OPIMA对等抽象访问’接口的接口定义、OPIMA标准的3.3.4.9节。经由这个接口,基线系统可以彼此交互。
应该将以下方法用于RMP系统之间的交互:
-openConnection
-colseConnection
-addConnectionListener
-sendMessage
-newConnection
-receiveMessageFromPeer
用户交互
这一部分反映了‘用户接口’的接口定义、OPIMA标准的3.3.4.1节。经由这个接口,用户可以与RMP系统交换信息。
应该将以下方法用于用户交互:
-sendMessageToUser
-receiveMessageFromPeer
所述receiveMessageFromPeer方法只允许在RMP系统和用户之间传输字符串。所述RMP系统不能控制信息的格式化和显示。为了在receiveMessageFromPeer方法中支持这种格式化,消息文本值应该依照作为CENELEC EN 50221:1997标准化的公用接口高级MMI消息,用于条件访问的公用接口及其他数字视频译码器应用程序;以及CENELEC R 206-001:1997,DVB 15译码器应用程序的公用接口的实现和使用的方针。
应用程序交互
这一部分反映了‘应用程序抽象访问’的接口定义、OPIMA标准的3.3.4.10节。这个接口定义了应用程序和RMP系统之间的透明的位通道。
在DVB框架中,可以存在多个应用程序和多个RMP系统。因此,采用一些特定的方法将会增强这个接口,以便能够进行应用程序和RMP系统之间、对一些基本功能的互用性。
应该将以下方法用于应用程序交互:
-installCallbackApplication
-replyMessage
-receiveMessageFromApplication
以下扩展是可选的:
所述receiveMessageFromApplication方法应该包含附加的消息类型‘QUERY_ENTITLEMENT’。作为此消息类型的响应,RMP系统应该经由标准的‘replyMessage’返回当前用户可得到的权限的列表。
生存期控制
这一部分反映了‘生存期控制’接口的接口定义、OPIMA标准的3.3.4.11节。
应该将以下方法用于生存期控制:
-initialize(初始化)
-terminate(终止)
-update(更新)
-remove(移除)
TVAF RMP基线设备接口
所述设备接口应该提供TVA适应设备之间的安全通信层。与这个接口相关的元件包括安全框架与其他系统元件的关系,所述其他系统元件类似于本地网络中间件(例如UPnP、HAVi和Jini)。此外,这些设备之间的适应设备和安全通信的验证通过基线设备接口来寻址。已经将所述设备接口定义为OPIMA对本地网络的扩展。
基线RMP系统
所述基线RMP系统为TVA系统提供标准化复制保护系统。因为其是标准化的并且在实现框架的每个设备中是强制性的,所以实现基线RMP系统的任何设备都可以访问由这个RMP系统保护的内容。此外,非常重要的是,基线系统很简单并且易于实现。由于基线系统还必须由小型廉价的移动装置来支持,所以这是最重要的。
类似于任何RMP系统的基线RMP系统包括两个部分:密钥管理和内容加密。使用在下一节中说明的系统,其允许专有的RMP系统使用基线内容加密方案来实行端对端控制。虽然没有建议基线RMP系统,但是建议的任何RMP系统都应该与OPIMA RMP服务API兼容。
简单的基线系统应该支持至少所述内容规则:copy_free、copy_one_generation、copy_no_more。由于此基线RMP系统将会出现于每个适应的设备中,所以内容加密算法应该低廉、可易于访问并且稳固。由于AES满足所有这些必要条件,所以优选的是使用先进的加密标准(AES)作为基线内容加密方案。
基线设备接口
在先前的节中,介绍了OPIMA系统。OPIMA为应用程序和数字权限管理(DRM)系统提供了安全框架以便共同操作。在本节中,扩展OPIMA系统以便在本地网络内操作。对于在本地网络中使用DRM的介绍,可以参见IBC 2001商业出版社出版的、由F.L.A.J.Kamperman,S.A.F.A.van den Heuvel,M.H.Verberkt所著的Digital RightsManagement in Home Networks,Philips Research,The Netherlands中的第I卷,第70-77页。
本地网络可以被定义成一组设备,所述设备使用某种网络技术进行互联(例如以太网、IEEE 1394、蓝牙,802.11b,...)。虽然网络技术允许不同的设备进行通信,但是这不足以允许设备共同操作。为了能够这样做,需要设备能够发现并且寻址网络中其他设备上存在的功能。这种互用性由本地网络中间件(HN-MW)提供。本地网络中间件的例子有Jini、HAVi、UPnP、AVC。
网络技术以及HN-MW的使用将一组个体设备改变为一个大容量的虚拟设备。根据HN-MW观点,可以把网络看作为一组可以使用并且连接的功能。这种系统向用户提供能力以便从本地网络中的任何地方寻址任何内容或者服务。
可以将HN-MW定义成提供两种服务的系统。它允许网络中的应用程序定位网络中的设备与功能。此外,几种远程过程调用机制(RPC)定义了如何使用这些功能。
根据HN-MW观点,与处理安全内容相关的系统以多种方式出现。网络中确定的功能需要访问受保护的内容。网络中的其他功能提供可以由网络中处理内容安全的元件使用的功能。此外,类似于OPIMA的安全框架可以使用HN-MW来一共同操作的方式互相定位以及进行通信。
安全框架和本地网络
这段讨论此最后的选项:如何使用本地网络中间件来在安全框架之间进行定位以及通信。在该情况下,可以将安全框架表示为本地网络中的功能。这允许安全功能来定位以及寻址网络中的其他安全功能。
使用此方法,我们可以定位其他安全框架并且使用它们的功能。这对于常规应用程序来说足够了。在应用程序寻址安全内容的情况下,人们要求内容保持安全状态,并且保护内容的秘诀无法被侦听。此外,需要另一个安全设备可以被信任的证据。
优选的是,通过安全验证通道(SAC)来提供这种功能。当创建SAC时,双方互相验证,并且创建加密消息的安全通道。这样允许想要相互通信的安全框架安全地执行此操作。当多个安全设备存在于网络中时,可以将它们之间的SAC集合看作虚拟专用网络(VPN)。
在这种VPN内,此外的设备与功能需要被定位以及寻址。因此,需要本地网络中间件(HN-MW)在VPN内进行操作。当这种功能已经存在于系统(用于定位安全设备的HN-MW)时,可以在VPN范围内再次使用它。
为了这样做,安全框架将能够发送和接收消息,并且应该实现允许使用HN-MW技术将消息发送给它的方法(参见附录E)。
为了更详细地解释这一点,图3描述了从一个安全框架发送到另一个安全框架的消息。在此图中,在左边的灰色块表示消息报头,白色块表示消息体。所述网络消息包含HN-MW消息,所述HN-MW消息是对安全功能的远程过程调用(RPC)。
远程过程调用的数据是待由SAC处理的消息体。虽然可以为每个HN-MW标准定义SAC,但是我们建议为所有HN-MW标准使用一个SAC,优选的是SSl(RFC 2246)。SAC的数据元是再次的远程过程调用,但是这次是有关安全功能的功能。在该情况下,它是OPIMA函数调用。然后将所述HN-MW消息并入网络消息,并且经由本地网络发送。
所述解决方案允许安全框架互相定位以及进行通信,并且独立于HN-MW以及网络技术。当然,还可以将SAC并入HN-MW或者网络技术。在这种情况下,图像将会有少许改变,但是功能将会保持。
验证和信任
为了设备能够以安全的方式使用受保护的内容,网络中的RMP系统与安全框架需要互相信任。可以期待信任的设备在按标准的参数集内工作。为了做到这一点,信任的第三方需要在提供验证所需密钥以前先检验设备。
这是使用两步法来实现的:RMP系统验证TVAF,然后TVAF互相验证。这样避免了RMP系统必须验证系统中的每个TVAF,并且避免了必须支持各种特定HN-MW。
当将RMP系统嵌入设备时,由于它们能互相信任,可以不需要验证安全框架。这样做有下列好处,即:可以跳过由RMP系统执行的安全框架的验证(费时的)。
使用远程工具
如上文所释,在有关安全框架以及本地网络上的节中,在TVAF之间创建VPN。可以把它看作为一个大的TVAF。所述VPN可用于本地提供远程TVAF的工具。在这种情况下,使用对另一个TVAF的公共接口的RPC调用来进行调用。在OPIMA OVM(可以用作TVAF)环境中的这种调用的例子在图4中示出。在设备2上,将调用和返回经由OVM路由,以代表提取并且调用了具有SAC的RPC。
用于提供网络中其它地方执行的工具的TVAF的另一个选项是提供直接地可以在HN-MW上可利用的工具。这种工具的最好的例子大概是智能卡阅读器。与智能卡的通信已经受到RMP系统的保护,并且可以经由未保护的通道访问。
此配置允许TVAF提供HN-MW中的工具以及VPN中其他TVAF上可以利用的工具。根据性能观点,当可以利用本地工具时,建议使用本地工具。利用常规的OPIMA API来呈现网络化的工具。当然,可以选择TVAF实现方式来提供网络化的工具,但是决不是非得这样做。
内容译码、流以及HN-MW
当在网络化的环境中访问内容时,所述内容可能待从源流入/传送到其他设备。在大多数情况下,这样需要一些来自网络的QoS支持。在网络中配置连接的方式以及管理器QoS的方式严重依赖于网络技术。通常,使用在HN-MW中所定义的机制来创建并且停止这种流。
由于可以在设备接口上始终侦听内容,所以离开TVAF的任何内容都应用受到保护。通常,使用几种加密方法来执行这一点。所述RMP系统通过控制允许解扰内容的访问密钥来保持对内容的控制。内容只应当留下受到几种RMP系统保护的TVA设备的域。此外,从一个RMP系统到另一个RMP系统的内容的每次传输都由RMP系统控制。以这种方式,RMP系统保持对内容的控制。
分布式内容访问
使用本地网络中间件的另一方式是:使用在其他设备上实现的元件来实现内容访问。可以在图5中看到如何实现这种分布式内容访问的例子。在此例子中,可以区别以下角色:
-源,内容的源。
-汇点,内容的汇点。
-处理,可以出现于流路径中的一个或多个处理功能。处理功能是其中对内容执行一些操作的功能。
-应用程序,连接不同HN-MW功能并且启动内容访问的应用程序。注意,此‘应用程序’实际上是DVB-MHP API(或者任何其他相似的API)的实现方式。
-RMP,控制内容的RMP系统。
在分布式内容访问中,这些角色的每一个都可以位于不同的设备上。
HN-MW和OPIMA隔离间(compartments)
存在大量的内容格式以及RMP系统。为避免必须建模以及支持每个可能的选项,OPIMA使用隔离间原理。依照OPIMA,隔离间是OPIMA类,其能够使设备共享它们RMP接口和/或结构部件中的一些公共元件。例如,可以将DVB认为成隔离间,其也包含由特定RMP系统定义的其他隔离间。隔离间可以是分级的。也就是说,隔离间可以包含子隔离间。
隔离间定义不同的系统元件以及在此隔离间内可利用的工具。当RMP系统在隔离间范围内操作时,它知道它期待什么工具以及系统。在隔离间范围内定义的元件的例子是加密算法和规则过滤器。
在HN-MW范围内,使用隔离间定义IHDN中可用的网络功能,该IHDV将使用HN-MW互联。在隔离间中定义了这些安全功能,并且可以作为具有HN-MW的独立功能来实现,或者可以将它们并入另一功能(例如,调谐器可以支持规则过滤器、显示器、解扰器)。使用隔离间安全功能能够以这样一种方式定义,所述方式为:内容只可以在受到几种RMP系统保护的设备接口上获得。
受保护的内容和元数据
为了访问内容,保护内容的RMP系统必须是已知的。在传统的配置过程中,在设备中内容是可用的,所述设备还支持安全部件。在网络中,不再是这种情况。因此,应用程序需要装置确定使用什么样的RMP系统来保护内容。这是在已经存在的像内容格式这样的元数据之上需要的辅助信息。
在理想的世界中,往往只在显示内容时,才必须处理所述内容。然而有时,RMP系统可能需要一些将要对内容执行的操作。这种操作的例子有密钥置换以及重新加密。这些操作取决于对内容需要并且应该为应用程序所知的操作。这种场合的例子是当被复制时,与内容相关联的规则可以改变(copy_one_generation->copy_no_more)。只有当应用程序知道确定操作需要一些操作时,才可以将这些操作并入流路径(streaming path)。其他元件应该并入流路径特殊的规则过滤器。
因此,应用程序将必须知道将哪个安全功能并入流路径。所述应用程序可以根据元数据获悉这些功能。所述内容元数据将包含应该包括的操作的每个内容访问类型列表。
需要的安全功能取决于内容需要的访问类型。换言之,它们取决于内容访问的目的。在OPIMA内,定义了目的集合。根据网络观点,此集合已经被扩展以便适合内容访问的全部集合。
定义了目的的三个主类。在下面的附录B中给出了目的的全部列表。
-RELEASE(释放),此目的类管理从一个RMP系统到另一RMP系统的内容传输。紧接于所述目的类,另一个RMP系统中的内容目的被表示。
-RECEIVE(接收),此目的类表示从另一RMP系统接收内容。
-ACCESS(访问),所述目的类处理对一个RMP系统中的内容的访问。紧接于所述目的类,更详细地表示了该目的。
当将内容的权限从RMP系统传输到另一RMP系统时需要释放内容,通常,这需要改变内容中的规则并且还可能重新加密。像内容(格式)代码转换、特技播放的访问以及图像改进处理不改变所述内容,并且应该允许在RMP系统的范围内。这种功能往往通常是处理功能的一部分。
因此,与RMP系统相关的元数据应该保持以下信息:
-隔离间定义(参见附录C)。
-RMP定义(参见附录C)。
-具有对于每个目的来说需要的安全功能的URN的目的列表。
-可能的一些隔离间专用信息。
为了识别出现于HN-MW内的功能中的安全功能,HN-MW中的每个相关函数将实现表示这一点的方法。
安全功能和框架
就此,可以创建保持所有需要的安全功能的流动图,因此,可以启动此特殊的内容对话。可以链接一个或多个这种对话,以便涉及所有需要访问该内容的元件。
在OPIMA中,这种对话由所谓的ContentId表示,其唯一地识别TVAF中的流之一。在网络环境中,能够依照使每个ContentId唯一的定义来定义这种ContentId已经变得十分重要。这一点通过采用包含以下值的结构替换OPIMA ContentId来执行,所述值为:
-tvafId,TVAF的唯一标识符。
-contentAccessId,在此TVAF范围内识别此对话的唯一标识符。
-streamId,表示所提及的此对话内的流的数目。
在附录C的C.1.5中,以IDL(ContentSessionId)表示此结构。
tvafId和contentAccessId的组合唯一地标识了此对话。使用此信息,网络中的安全功能的TVAF可以用主TVAP注册以接收与此内容访问相关的消息。因此,必须创建第一新的对话。附录A包含定义内部方法的例子,所述方法可用于创建对话。
使用tvafId和ContentAccessId,涉及此内容访问的安全功能可以用TVAF注册它们自己,其中启动内容访问(主TVAP)。对安全功能的HN-MW API、使用attachToContentAccess方法来执行这一点。当调用此方法时,安全功能的TVAF将用主TVAF注册它自己。
当注册时,主TVAF将调用注册TVAF,证实注册并且表明与此内容访问相关联的目的。所述TVAF将在此目的范围内处理这些内容访问的内容。
当注册了所有安全功能时,可以启动对话。所述对话通过启动本地网络中的流开始,然后表明需要访问内容。因为位于其他设备的规则过滤器而不是源设备需要访问内容,所以应该首先启动流。这需要待启动的流。为支持专有的扩展,在任一点,应用程序可以直接与RMP系统进行通信(参见附录A的A.3和A.4)。
就此,可以启动对话。所述TVAF将联系RMP系统,规则将被过滤,并且将允许或者拒绝访问内容。
分布式内容访问和RPC
在RMP系统中,应该以相同的方式来处理本地及分布式内容访问。为了使用无关网络访问的OPIMA API,需要一些对RPC处理的方针(guideline)。依照图6中表明的系统来管理RPC调用。
以“Call”显示的所有RMP系统调用由主OVM路由至利用对话注册的所有OVM。合并所有调用的响应,并且在对RMP系统的调用返回中表明返回值。
可以确定两个类型(远程过程)的调用,其与内容访问以及正在使用工具的调用相关。内容访问涉及的调用使用ContentId来涉及内容访问。正常的情况下,如果可利用的话,则不本地调用关于工具的内容访问涉及的调用,否则就远程调用。内容访问涉及的调用使用以下方针处理:
1.如果所述调用是RPC,那么本地处理它并且返回结果。
2.如果所述调用是本地的,并且如果此调用的内容访问是本地的,那么对所有寄存的TVAF(如果此TVAF是流的一部分,那么也可以本地)调用功能。
3.如果所述调用是本地的,但是此调用的内容访问不是本地的,那么调用保持内容访问的主TVAF。
由于不同的TVAP不是必须知道哪个功能位于什么样的TVAF,这种解决方案的主从本性简化了通信。
附录A:应用服务API
在此文献范围内,所述DAVIC CA API充当应用程序API。为了实现此API,在集合(hosting)此API的设备内部中,必须将一些专用信息传递到TVAF。使用不需要被指定的内部专有API来执行这一点。以下(提供消息的)方法给出了用于启动、停止和控制内容访问的方法的例子。
attachToContentAccess
此方法用管理所示内容访问的TVAF注册它的TVAF,因此它将接收任何涉及的RPC。当启动内容访问时,由TVAF表明所有值。
A.1应用服务
A.1.1 createContentRelease
以向另一RMP系统释放内容为目的,利用TVAF来创建对话。输入参数值SourceRMP保护内容的RMP的URL字符串(RMP系统的TVAF URL)。TargetRMP将释放给内容的RMP的URL。字符串(RMP系统的TVAF URL)。Purpose访问内容的目的的标识符。输出参数值ContentAccessId此TVAF范围内的此对话的唯一标识符。正整数值返回变量值Result连接的标识符或者误码整数值。如果Resul=0,则成功如果Resul<0,则失败
A.1.2 createContentAccess
以访问内容为目的、依照TVAF创建对话。输入参数值PMP保护内容的RMP的URL字符串(RMP系统的TVAF URL)。Purpose访问内容的目的的标识符。输出参数值ContentAccessID此TVAF范围内的此对话的唯一标识符。正整数值返回变量值Result连接的标识符或者误码整数值如果Resul=0,则成功如果Resul<0,则失败
A.1.3 creatContentReceive
以接收来自于另一RMP系统的内容为目的,利用TVAF来创建对话。输入参数值SourceRMP保护内容的RMP的URL字符串(RMP系统的TVAF URL)。TargetRMP将释放给内容的RMP的URL字符串(RMP系统的TVAF URL)。Purpose访问内容的目的的标识符输出参数值ContentAccessID此TVAF范围内的此对话的唯一标识符。正整数值返回变量值Result连接的标识符或者误码整数值如果Result=0,则成功如果Result<0,则失败
A.1.4 startContentSession
启动这一对话输入参数值ContentAccessId此TVAF范围内的此对话的唯一标识符。正整数值Listener传送TVAP响应到应用程序的调用返回函数方法地址返回变量值Result或者连接的标识符或者误码32位整数,或者是正的或者是负的。正值表明可以由应用程序使用以匹配来自于TVAF的随后的异步响应。负值表明出现的错误和故障的原因异步响应值StartContentSessionResponse表明此内容对话是否是可能的。
A.1.5 stopContent
停止内容访问、释放或者接收。输入参数值TVAFId调用TVAF的TVAF的唯一标识符。正整数值ContentAccessId调用TVAF请求附属的内容对话的唯一标识符正整数值返回变量值Result连接的标识符或者误码整数值如果Result=0,则成功如果Result<0,则失败
A.2应用服务收听器
A.2.1 startContentSessionResponse
此异步响应由TVAP发送到应用程序,以便通知出现了确定事件;它可以用于同步目的。输入参数值SessionID由TVAF提供的标识符,TVAF涉及响应的动作通过startContentSession先前返回的相同值Status表明成功或者失败,以及失败原因如果状态=0,则SUCCESS如果状态<0,则ErrorCodeMessage待由应用程序解释的RMP特定字符串。解释状态的RMP特定字符串。
A.3应用程序RMP服务
A.3.1 queryRMPSystems
此方法允许应用程序向RMP系统发送消息并且接收应答,所述RMP系统安装在TVAF处。输入变量值Listener将TVAF响应传送到应用程序的调用返回方法方法地址返回变量值Result整数值。如果Result=0,则成功如果Result<0,则失败异步响应值IndicateRmpList为此TVAF所知的RMP系统的列表URN(字符串)的阵列
A.3.2sendMessageToRMP
此方法允许应用程序向RMP系统发送消息并且接收应答,所述RMP系统安装在TVAF处。输入参数值RMPsystemID消息被编址到的RMP系统的标识符包含由注册机构指定的唯一ID的字节阵列消息类型消息类型的标识符内容询问RMP系统所有权NULL消息(由于消息接收器没有实际发送任何消息,允许应用程序注册自己)在IDL定义中给出的值的表。MessageURL(内容询问消息的情况)传送到RMP部件的数据。Listener将TVAF响应传送到应用程序的调用返回方法方法地址返回变量值Result32位整数,可以是正的或者是负的。正值表明可以由应用程序使用以匹配来自于TVAF的随后的异步响应的对话。负值表明出现的错误以及失败的原因。异步响应值内容查询响应-不可利用的内容。-向最终用户显示的字符串-数据
A.4应用程序RMP服务收听器
A.4.1 msgFromRMP
此异步响应由TVAP发送到应用程序,以通知出现确定事件;它可以用于同步化目的。输入参数值SessionID由TVAF提供的标识符,TVAF涉及响应的动作由任一sendMessageToRMP返回的先前的相同值状态(Status)表明成功或者失败,以及失败原因如果状态=0,则SUCESS如果状态<0,则ErrorCode消息(Message)待由应用程序解释的RMP特定字符串要么-RMP特定字符串(答复sendMessageToRMP的请求)或者-内容所需的RMP系统的可选集合列表,以便TVAF能执行所希望的“目的”,所述目的与TVAF(存在/未命中)中它们的当前状态的标识符相关联。RMP系统由RMP系统ID来标识,如上所定义的那样(答复查询TVAF请求)。
A.4.2 indicateRmpList
此异步响应由TVAF发送到应用程序以便通知可利用的RMP系统的列表。输入参数值SessionID由TVAF提供的标识符,TVAF涉及响应的动作由creatContentAccess,creatContentRelease,creatContentReceive,getRMPSyatem,sendMessageToRMP或者queryTVAF中任一个返回的先前的相同值。RMPsystemList为此TVAP所知的RMP系统列表URN(字符串)的阵列Result表明成功或者失败,以及失败原因如果状态=0,则SUCESS如果状态<0,则ErrorCode
附录B:目的(PURPOSE)
以下目的已经定义。目的类子类说明RELEASERENDER将内容释放到另一个RMP系统,只允许在设备(没有存储器)上显示。MOVE将此内容完全发送到另一个RMP系统。COPY将此内容的副本发送到另一个RMP系统。RECEIVE接收来自于另一个RMP系统的内容。ACCESSSTORE在一些存储设备上存储此内容。RENDER显示内容EDIT制作内容的副本并编辑它。DELETE删除内容PROCESS在不改变权限(例如比特率或者内容的代码转换)的情况下处理内容。OTHER在隔离间中定义的其他访问
附录C:涉及HN-MW使用的TVAF API
C.1 TVAF网络服务
C.1.1 getTVAFId
返回此TVAF的TVAF id。输出参数值tvafld此TVAF的唯一的标识符。正整数值返回变量值Result连接的标识符或者误码整数值。如果Result=0,则成功如果Result<0,则失败
C.1.2 registerWithContentSession
注册具有所示内容对话的调用TVAP输入参数值tvafId调用TVAP的唯一的标识符。正整数值ContentSessionId调用TVAF请求附属的内容对话的唯一标识符。正整数值返回变量值Result连接的标识符或者误码整数值。如果Result=0,则成功如果Result<0,则失败
C.1.3 unRegisterWithContentSession
不注册具有所示内容对话的调用TVAF输入参数值TYAFId调用TVAP的唯一的标识符。正整数值ContentSessionId不再感兴趣的调用TVAF的内容对话的唯一标识符。正整数值返回变量值Result连接的标识符或者误码整数值。如果Result=0,则成功如果Result<0,则失败
C.1.4 contentSessionRegistered
由主TVAP的注册确认。表明与此内容访问相关目的的目的。所述TVAF应该在此目的范围内处理内容。输入参数值TVAFId主TVAF的唯一标识符。正整数值ContentSessionId在此主TVAF内的内容对话的唯一标识符。正整数值Purpose在此主TVAF内的内容对话的唯一标识符。返回变量值Result连接的标识符或者误码整数值。如果Result=0,则成功如果Result<0,则失败
C.1.5 contentSessionStopped
指示已经停止内容对话的其他TVAF。输入参数值TVAFId主TVAF的唯一标识符。正整数值ContentSessionId在此主TVAF内的内容对话的唯一标识符。正整数值返回变量值Result连接的标识符或者误码整数值。如果Result=0,则成功如果Result<0,则失败
C.2 IDL
先前方法的IDL代码是:
//通用结构
enum Purpose{RELEASE_RENDER,RELEASE_MOVE,RELEASE_COPY,RECEIVE,ACCESS_STORE,ACCESS_RENDER,ACCESS_EDIT,ACCESS_DELETE,ACCESS_PROCESS,OTHER};
typedef sequence<octet,16>TvafId;
struct Content Id
TvafId tvafId;
long contentSessionId;
long streamId
};
//TVAF网络涉及的接口
interface TvafNetworkServices{
long getTvafId(out TvafId tvafId);
long registerWithContentSession(in TvafIdtvafId,in long contentSessionId);
long unRegisterWithContentSession(in TvafIdtvafId,in long contentSessionId);
long contentSessionRegistered(in TvafIdtvafId,in long contentSessionId,Purpose p);
}
附录D:TVAF URLS以及URNS
D.1统一资源定位器(URL)定义
供TVAF之用,给出以下URL定义:
-RMP系统
tvaf:://<network_address>/<TVAFid>/ipmp/<rmp_id>
-应用程序
tvaf:://<network_address>/<TVAFid>/app/<app_id>
-工具
tvaf:://<network_address>/<TVAFid>/tool/<tool_id>
在这些uRL中,不同的字段具有以下含义:
tvaf::,表明将消息经由SAC发送。
<network_address>,集合TVAF的设备地址。
<TVAF_id>,TVAF的id。
<RMP_id>,RMP模块的id。
<app_id>,应用程序的id
<tool_id>,工具的id
例子:
tvaf:://130.130.120.4/34535/ipmp/1213
tvaf:://130.130.120.4/34535/app/113
tvaf:://130.130.120.4/34535/tool/12234
D.2统一资源名(URN)定义
将TVAF系统URN定义为:
-隔离间:
tvaf:://<compartment_source>/compartment
-安全函数:
tvaf:://<compartment_source>/compartment/<function>
在这些URN中,不同的字段具有以下含义:
<compartment_source>,定义的隔离间体的名称(互联网格式)。
<function>,在此隔离间中此特定函数的名称。
例子:
tvaf:://org.dvb/mpeg2
tvaf:://org.dvb/mpeg2/sink
tvaf:://org.dvb/mpeg2/receive
tvaf:://org.dvb/mpeg2/source
tvaf:://org.dvb/mpeg2/processor
附录E:关于HN-MW方法的方法
E.1 TVAF API
按照独立的方法在HN-MW表示TVAF。对这种函数以下方法是可利用的。
E.1.1newMessage
已经接收用于此TVAF的新消息。输入参数值Messag发送给此TVAF的消息。包含SAC消息的字节阵列。返回变量值Result连接的标识符或者误码整数值。如果Result=0,则成功如果Result<0,则失败
E.2安全函数API
在支持安全函数的HN-MW中,对函数应该可利用以下方法。
E.2.1 getSecurityFunctions
此方法表明安全函数(附录D)的URN,所述安全函数由此HN-MW函数支持输出参数值SecurityFunctionUrns由此HN-MW函数支持的隔离间的安全函数的URN字符串(URN)阵列。返回变量值Result或者连接的标识符或者误码整数值。如果Result=0,则成功如果Result<0,则失败
E.2.2 attachTocontentAccess
此方法用管理所示的内容访问的TVAF来注册其TVAP,以便它将接收任何相关RPC。当启动内容访问时,由TVAF表明所有值。输入参数值TVAFId管理此内容访问的整数值。ContentAccessId在TVAF内此内容访问的唯一ID,所述TVAF管理此内容访问。整数值。返回变量值Result连接的标识符或者误码整数值。如果Result=0,则成功如果Result<0,则失败
附录F:缩写
下面是用于此文档的缩写,以及它们所指的含义。
AES 先进的加密标准
APDU 应用程序协议数据单元
API 应用编程接口
CFC 基值要求(Call for Contribution)
DAVIC 数字音频与视觉理事会
DVB 数字视频广播
HAVi 本地音频视频互用性
HN-MW 本地网络中间件
ISO 标准化国际组织
MMI 人机接口
MPEG 运动图像专家组
OVM OPIMA虚拟机
QoS 服务质量
RMP 权限管理以及保护
RPC 远程过程调用
SAC 安全验证通道
TLS 传输层安全协议
TTP 信任的第三方
TVA TV-随时(TV-Anytime)
TVAF TV-随时框架
UPnP 通用的即插即用
VPN 虚拟专用网络
应该注意的是,上述实施例是举例说明,而非限制本发明,并且在不脱离所附权利要求的范围的情况下,本领域技术人员将能设计许多可替代的实施例。举例来说,虽然在上文中使用了OPIMA,但是其他安全框架当然也可以使用。例如,可以依照相同的方式使用MPEG-4 IPMP扩展。
在权利要求书中,不应该将置于括号内的所有参考标记看作是对权利要求的限制。词语“包括”不排除存在不同于权利要求所列的那些元件或者步骤。元件之前的单词“一”或者“一个”不排除存在多个这种元素。本发明可以通过包括多个不同元件的硬件、并且通过适当地编程计算机来实现。
在列举了多个装置的设备权利要求中,部分这些装置可以由完全一样的硬件项来实现。在互相不同的从属权利要求中记载的确定测量值仅仅是这样一个事实,其不表示这些测量值的组合无法用于优点。