用于连续控制和保护媒体内容的方法和装置的制作方法

文档序号:7962354阅读:757来源:国知局
专利名称:用于连续控制和保护媒体内容的方法和装置的制作方法
技术领域
本发明一般地说涉及计算机和/或电子安全性。更具体地说,这项发明涉及用于保护呈数据流格式的信息的系统和方法。
本发明现有技术注流数字媒体(streaming digital media)通常是由数个在数据包的“信息流”中接收的并且预定供显示即再现的数字信息序列组成的。实例包括作信息流发送的音频内容、作信息流发送的视频信息等。
数字媒体信息流(digital media stream)正在变成越来越重要的内容传输手段,并且形成几种沿用的、建议采用的或实际采用的标准的基础。但是,对这种格式的认可受到阻滞,因为数字媒体信息流可能因此容易被拷贝和被非法散播的;招致内容业主反对允许通过注流数字装置分配重要的特性。因此,需要一种能够保护数字媒体信息流的方法。
本发明概述与本发明一致,这份说明书介绍一种新的体系结构用于保护按数据流格式提供的信息。这种体系结构是按类似于信息按照MPEG-4技术规范(ISO/IEC14496.1)编码内容的系统(虽然带有一些修正)的一般系统的背景加以描述的,条件是所介绍的系统可以在某些方面不同于MPEG-4标准。介绍了各种各样不同的实施方案,包括MPEG4的实施方案和为了传递按照MP3技术规范(ISO/IEC TR 11172)编码内容而设计的系统。
依据本发明的一个方面,这种体系结构涉及多个系统设计特性和多个信息格式特性。系统设计特性包括将内容保护功能、控制功能和反馈“启动”控制功能相适应监视该系统的活动。信息格式特性包括将规则/控制信息合并到信息流中以及通过诸如加密和水印之类的机制提供的内容保护。
与本发明一致的系统和方法完成内容保护和数字权限管理。与本发明一致的注流媒体播放器包括为接受数字位流而设计的端口。该数字位流包括至少部分加密的内容以及一包括为控制该内容的使用而设计的控制信息安全槽,其中包括至少一个适合至少为一部分内容解密的密钥。该媒体播放器还包括一套控制装备,该控制装备包括用于打开安全槽并取出密钥的装置和用于为内容的加密部分解密的装置。
附图简要说明并入这份说明书并且成为其组成部分的附解说明本发明的实施方案,并且与说明部分一起解释本发明的优点和原理。在这些附图中,

图1展示与本发明一致的一般系统;
图2展示与本发明一致的示范性Header(标题)201;图3展示与本发明一致的通用编码格式;图4图解说明与本发明一致的一种储存工作表达式的方式;图5展示控制消息格式的实例;图6是流程图,它图解说明路由图1所示功能块所产生的诸步骤的一个实施方案;图7图解说明可用于在Control Block(控制模块)13中储存控制信息的形式;图8展示与本发明一致的MPEG-4系统801;图9展示消息格式的实例;图10图解说明与本发明一致的IPMP表;图11图解说明与本发明一致的系统;图12图解说明DigiBox格式的一个实施方案;图13展示Real Networks(实时网络)文件格式(RMFF)的一个实例;图14展示与本发明一致的RNPFF格式;图15图解说明在与本发明一致的体系结构中数据在RealNetworks文件格式方面的变化趋势;图16图解说明标准的Real Networks体系结构;
图17展示一种示范体系结构,在这种体系结构中委托插入软件(trust plugin)在整个Real Networks体系结构范围内运行。
图18展示与本发明的原理一致的位流格式;图19展示对MP3格式施加保护的一个实施方案;图20图解说明为处理和传递被保护的内容而设计的MP3播放器的一个实施方案;图21图解说明其中可以形成与本发明一致的受保护的MPEG-4文件的一个实施方案中的数据流;图22图解说明一个实施方案中的数据流,其中可以依据本发明将控制并入现有的MPEG-4数据流;图23展示与本发明的原理一致的系统;图24展示与本发明的原理一致的系统;图25展示与本发明一致的聚集流的实例;图26图解说明与本发明一致的Header CMPO 2601;图27展示与本发明的原理一致的示范Content ManagementProtection Objects(内容管理保护对象);图28展示与本发明的原理一致的示范CMPO Data Structure(CMPO数据结构)2801。
本发明的详细描述现在将详细提供在用附解说明与本发明的原理一致的实现的参考文献。
下面的美国专利和专利申请(它们已被转让给本申请的受让人)在此整体用作参考Ginter等人1997年11月4日申请的美国专利申请第08/964,333号“用于安全交易管理和电子权限保护的系统和方法(Systems and Methods for Secure Trasaction Management andElectronic Rights Protection)”(“Ginter 333”);Ginter等人1996年8月12日申请的美国专利申请第08/699,712号“用于安全电子商务、电子交易、商务处理控制自动化、分布式计算和权限管理的委托基础支持系统、方法和技术(Trusted Infrastructure SupportSystems,Methods and Techniques for Secure Electronic Commerce,Electronic Trasaction,Commerce Process Control Automation,Distributed Computing,and Rights Management)”(“Ginter 712”);Van Wie等人1996年8月12日申请的美国专利申请第08/689,606号“在不可靠的通信信道上安全地传送电子数字权限管理信息的密码技术(Stegano-graphic Techniques for Securely Delivering ElectronicDigital Rights Management Information Over Insecure CommunicationsChannels)”(“Van Wie”);Ginter等人1996年8月30日申请的美国专利申请第08/706,206号“软件的抗干扰性和安全通信(Software Tamper Resistance and Secure Communi-cation)”(“Ginter206”);Shear等人1997年5月15日申请的美国专利申请第08/848,077号“在关闭的和连通的器具中用于存储媒体电子权限管理的加密方法、装置和系统(Cryptographic Methods,Apparatus and Systems for Storage Media Electronic RightsManagement in Closed & Connected Appliaces)”(“Shear”);Collberg等人1998年6月9日申请的美国专利申请第09/095,346号“用于提高软件安全性的模糊化技术(Obfuscation Techniques forEnhancing Sofhware Security)”(“Collberg”);1989年5月2日授权给Shear的美国专利第4,827,508号“数据库的使用计量和保护系统及方法(Database Usage Metering and protection System andMethod)”(“Shear专利”)。
图1图解说明Media System(媒体系统)1,该系统能够完成鱼贯而行的多媒体内容的验收、解码和移交。这是一个一般内系统,但是它包括基于MPEG-4技术规范的要素。Media System 1可以包括软件模块、硬件(包括集成电路)或它们的组合。在一个实施方案中,媒体系统1可以包括在“Ginter333”申请中介绍的那种Protected Processing Environment(受保护的处理环境)(PPE)。
在图1中,Bit Stream(位流)2代表System(系统)1接收的输入信息。Bit Stream 2可以通过连接外部网络(如Internet互联网、有线联播、来自卫星转发器的无线电发射等)加以接收,或者接收自便携式存储设备(如DVD播放器)。
Bit Stream 2是由一组相关的信息流组成的,其中包括Organization Steam(组织信息流)3、Audio Stream(音频信息流)4、Video Stream(视频信息流)5、Control Stream(控制信息流)6和InfoStream(信息流)7每个这些信息流均经过编码形成总Bit Stream 2。其中每个信息流代表一个信息流范畴,以致(举例说)Video Stream5可以由许多独立的Video Stream组成。
这些信息流通常对应于按MPEG-4格式描述的数据流,对应关系如下Organization Steam 3通常对应于BIFS信息流和OD(对象描述符(Object Descriptor)信息流;Audio Stream 4和Video Stream 5通常分别对应于Audio和Video信息流;
Control Stream 6通常对应于IPMP信息流。
Audio Stream 4包括压缩的(并且可能加密的)数字AudioStream音频信息。这种信息被用于形成由Media System(媒体系统)1传递和输出的声音。Media System 1可以代表多重音频信息流。这些多重信息流可以一起发挥作用组成音频输出,或者可以代表可替换音频输出。
Video Stream 5包括压缩的(并且可能加密的)数字视频信息。这种信息被用于形成Media System 1传递和输出的图象或视频信号。Video Stream 5可以代表多重视频信息流。这些多重信息流可以一起发挥作用组成视频输出,或者可以代表可替换的视频输出。
Organization Steam 3包括组织信息与待传递作品相关的和元数据。这种信息可以包括把音频数据流和视频数据流分成若干个对象的树型或其他组织设备。这种信息还可以包括与整个作品、各个对象或各自的信息流相关联的元数据。
Control Stream 6包括控制信息,该控制信息通常被分成标题信息和消息。标题信息包括每个离散消息的标识符。消息的内容(下面将进一步介绍)可以包括用于管理内容使用的密钥和规则。
Info Stream 31携带与Bit Stream 2的其它组成部分中的内容相关的附加信息,包括但不限于代表包封技艺的图形、诗歌词文、编码活页乐谱或其它符号、独立的广告内容、演奏会信息、追星族俱乐部信息等等。Info Stream 31还可以携带系统管理和控制信息和/或组成部分,例如对Media System 1中软件或固件的更新、用于内容专用函数(如水印等)的算法实现。
这些信息流中每一个都是由信息数据包组成的。在一个示范实施方案中,每个数据包的长度是32个字节。由于单一的通信信道(例如电缆、总线、红外或无线电连接)包含来自每个信息流的数据包,因此需要识别这些数据包对特定的信息流的归属。在优选实施方案中,这是通过包括一个标识某个特定的信息流并且规定作为那个信息流一部分的后继的数据包数量的标题来完成的。在另一个实施方案中,每个数据包都可以包括各个别的信息流信息。
图2展示示范Header(标题)201。这种标题通常被用于Organization Steam、Audio Stream和Video Stream。用于ControlStream的标题下面将予以介绍。Header 201包括Field(字段)202,该Field包括作为首标标识Header 201的位模式。Field 203识别信息流的特定类型(例如Audio Stream、Organization Steam、ControlStream等)。Field 204包含用于识别特定的信息流的ElementaryStream Identifier(基本数据流)标识符(ES-ID),并且可以在可能同时遇到同一特定信息流类型的多重信息流的情况下使用。Field 207包含时间标记,该标记供系统来使各种各样的信息流同步,包括信息流的传递。例如,Composite Block(合成模块)11可以保存从开始传递算起逝去的时间的记录。Time Stamp(时间标记)207可以供Composite Block 11用来确定每个对象应该在何时移交。所以,时间标记207可以规定从移交始点算起逝去的时间,而合成模块11可以使用那个逝去的时间确定何时传递相关的对象。
Field 205包含Governance Indicator(管理方式指示符)。Field 206识别作为被识别的信息流的一部分的后继的数据包的数目。在任何情况下,相关信息都是用二进制格式编码的。例如,Field 202或许包括一个被认定为首标指示的任意的位序列,而Field 203或许包括二信息位,借此允许为四种不同的信息流类型编码。
返回到图1,System 1包括Demux(多路分用模块)7,它接受Bit Stream 2作为输入,并且为各个信息流(有时称之为Elementarystreams即ES)确定到达该系统的适当功能块的路由。
Bit Stream2可以按照图3图解说明的格式编码。在这张图中,Header 301是在位流中遇到的,后面跟着数据包302至308。
当多路分用模块7遇到Header 301时,Demux 7把Header 301作为首标来识别并且使用该首标信息去识别Packet 302-305作为组织信息流的数据包。Demux 7利用这个信息确定这些数据包到达Organization 8的路由。Demux 7以类似的方式处理Header 306,使用其中内含的信息确定Packet 307-308到达AV(“Audio Video”)Block 9的路由。
AV Block 9包括Decompressor(解压缩器)10,它接受来自AudioStream 4和Video Stream 5的Elementary Stream并且为这些信息流解压缩。在解压缩时,该数据流的信息按照允许它被控制和输出(通过电视录放机、扬声器等)的格式放置。如果有多重信息流存在(例如两个视频信息流,每个信息流描述视频信号序列的一个方面),那么AV Block 9将使用ES-ID把每个数据包分配给适当的信息流。
Organization Block 8储存识别包含在特定对象中的特定音频信息流和视频信息流的指针信息以及元数据信息,例如,描述该对象在什么位置、它何时被显示(例如与该对象相关的时间标记)和它与其它对象的关系(例如一个视频对象是在另一个视频对象的前面还是后面)。这个组织可以按层次结构保存,其中在最低层次表示各个信息流、在较高的层次将信息流编组形成对象、在更高的层次上是完整的事件、在最高级别的是整个作品。
图4图解说明组织模块8可以用来储存某项作品的表达式的一种方式。在这张图中,Tree(树)401代表整个视听作品。Branch(树枝)402代表该作品的高层组织。例如,这可以包括所有的视频信号或可能与某个特定场景相关的音频信号和视频信号。
Sub-Branch(小树枝)403代表一组相关的视频对象。各个这样的对象可包括整个屏幕,或者屏幕内的各个实体。例如,Sub-Branch403可以代表从一个镜头到下一个镜头不发生相当大的变化的背景。如果图象在两个基准点之间移动(例如对话,摄像机的视点从一张脸变化到另一张脸),那么Sub-Branch 404可以代表在第二视点中使用的第二背景。
Node(节点)405和406可以代表包含在相关组内的特定视频对象。例如,Node 405可能代表远方的山脉区域,而Node 406代表就在一个人物身后的一棵树。
每个节点规定或包含一个特定的ES-ID,该ES-ID代表着包含那个节点使用的信息的信息流。例如,Node 405包含ES-ID 407,该标识符识别包含代表山脉区域的压缩的(可能还是加密的)数字信息的特定的视频信息流。
Composite Block 11接受来自Organization Block 8和AV Block9的输入。Composite Block 11使用来自Organization Block 8的输入确定哪些专用的视听要素将在任何给定时刻是需要的以及确定那些要素的组织关系。合成模块Composite Block 11接受来自AVBlock 9的解压缩的视听对象并且象来自Organization Block 8的信息所规定的那样把那些对象组织起来。然后,Composite Block 11把组织好的信息传送给Rendering Device(传递设备)12,该传递设备或许是电视荧屏、立体声扬声器等。
Control Block 13储存控制消息,该消息通过Control Block 6可以被接收和/或可以作为水印加到其它信息流中或按密码图在其它信息流中编码,其中包括Audio Stream 4和Video Stream 5。图5图解说明一种展示Control Massage 501的控制消息格式。ControlMassage 501是由Header 502和Massage 503构成的。标题502由作为首标包括标识后继信息的位组合模式的Field 508、供组织信息流作为首标标识这个消息的Stream Type Field 509、标识这个特定的控制消息的ID Field 504、标识哪些受这个消息控制的ES的PointerField 505、标识该信息流中受这个控制消息控制的特定部分TimeStamp Field 507(这可以指出该数据流全部是受控的)以及规定Message 503的长度(按字节计算)的Length Field 506组成。Message503可以包括跟在Header 502后面的数据包,通常采用图3所示的格式。在展示的实例中,Control Stream 501携带在ID字段504中编码的独一无二的ID 111000。正象Pointer Field 505指出的那样,这个控制消息控制ES 14和95。正象Length Field 506指出的那样,相关的消息包含1024字节。
在替代实施方案中,控制与内容相关联可以在OrganizationBlock 8中进行,Organization Block 8可以与与数据流、对象等相关联的元数据一起储存一些特定控制消息的指针。但是,这可能是有害的,即人们可能还希望保护这种关联以免被用户发现和窜改。由于Control Block 13在任何情况下都必将受到保护,所以,在这个模块中储存这种关联可以使保护Organization Block 8变得不那么必要。
Control Block 13通过Control Line 14、15和16对System1系统上实现控制,它分别控制着Organization Block 8、AV Block 9和Composite Block 11的方方面面。这些控制线都允许双向通信。
Control Line 14和15被表示成正在与AV Block Stream FlowController 18和Organization Block Stream Flow Controller 17通信。这些信息流流动控制器包含受Control Block 13控制的功能。在图示的实施方案中,数据流流动控制器被表示成二级流水作品中的第一级,其中信息先通过信息流流动控制器进行处理,然后被传送到相关联的功能块。这允许把控制功能与系统的内容操作和显示功能功能隔离,并且允许在不变更模块的基础功能的情况下增添控制。在另一个实施方案中,信息流流动控制器可以被直接集成到相关联的模块中。
Stream Flow Controller 17和18分别包含Cryptographic Engines(加密引擎)19和20。这些加密引擎在Control Block 13的控制下操作以便为收自Demux 7的加密包信息流解密和/或通过密码予以证实(例如,执行安全散列法、消息鉴别代码和/或数字签名功能)。按照对信息流的保护要求,解密和证实可以是有选择的或非必选的。
Cryptographic Engines 19和20可能是比较复杂的,例如,它可以包括用于完成加密散列、消息鉴别代码计算和/或其它密码确认处理的确认计算器。此外,就象下面将要进一步介绍的那样,也可以使用其它类型与管理办法相关的处理。在一个替代实施方案中,可以把一个信息流流动控制器用于Organization Stream 3 Audio/VideoStream 4-5两者。这样可以减少System 1的成本和它占用的空间。这种减少是重要的,因为System 1可能包含多重AV模块,每个模块并行处理分开的音频或视频信息流。但是,这样的变更将增大在实时系统中难以接收的待时开销。
如果信息流流动控制器被集中在一个模块里,它们可以被直接合并到Demux 7中,这样在确定信息流至功能块的路由之前就可以调配处理的管理办法。这样的实施方案将使得有可能在确定信息流至各个别功能块的路由之前对Bit Stream 2的完整性作受控解密或确认。不把信息流控制模块并入多路分用模块7,位流2的整体加密(与之相反的是针对各个ES逐个加密)或许是困难的或不可能的,因为Demux 7或许没有能力检测或读出对于确定信息流至功能块的路由必不可少的标题信息(那个标题信息大概是加密的)。
正象前面陈述的那样,包含在Bit Stream 2中的个别信息流个个都可以单独加密。加密的信息流可以用该信息流标题中的特定的指示符来识别,在图2中被表示成Governance Indicator 205。
在标题被Demux 7传送给适当的功能块时,与那个模块相关联的信息流流动控制器读出该标题并且确定尾随的数据包究竟是加密的还是受别的方式管理。如果此标题指明没有使用管理,信息流流动控制器就把该标题和数据包不加变更地传送给功能块。Governance Indicator 205可以这样设计,以使按常规编码的内容(例如未加保护的MPEG-4内容)被看成是没有Governance Indicator,所以允许通过以便进行正常的处理。
如果信息流流动控制器检测到设定的管理指示符,它把与那个信息流相关联的ES-ID和与当前的数据包相关联的时间标记沿着Control Line 14或15传送给Control Block 13。然后,Control Block 13使用ES-ID和时间标记信息来识别哪个控制消息与该ES相关联。然后,在相关联的消息可以用于管理目的时调用它们并且可能对它们进行处理。
简单管理的情况是用图6图解说明的,该图展示使用图1所示的功能块时发生的各个步骤。在步骤601中,Demux 7遇到标题并且确定该标题是AV信息流的一部分。在步骤602中,AV StreamController 18读出该标题并且确定管理指示符被设定,借此触发进一步沿着路径604进行处理。在步骤605中,AV Stream Controller 18从该标题获得ES-ID和时间标记并且沿着Control Line 15把这些信息发送给Control Block 13。在步骤606中,Control Block 13查找该ES-ID并且确定该ES-ID与特定的控制消息相关联。在步骤611,如果有另一个控制消息与一特定ES相关联,Control Block 13即利用时间标记信息在控制消息中加以选择。在步骤607中,Control Block13存取适当的控制消息并且获得用于解密和/或确认的密钥。在步骤608中,Control Block 13沿着Control Line 15把密钥传送给AVStream Controller 18。在步骤609中,AV Stream Controller 18把该密钥用作Cryptographic Engine 20的输入,该加密引擎在从Demux 7接收数据包时完成对尾随该标题的那些数据包的解密和/或确认。在步骤610中,解密的数据包被传送到AV Block 9,该模块按常规方式完成对这些数据包的解压缩和处理。
时间标记信息在人们希望改变可应用于特定的ES的控制消息时可能是有用的。例如,对用不同的密钥给信息流的不同部分编码可能是有用的,因为即使一黑客破解了一个密钥(或甚至破解了许多密钥)也不能使用该内容。这可以通过使许多控制消息与同一信息流相关联来完成,其中每个控制消息仅在特定的周期内才是有效的。然后,用时间标记来选择在特定的时间使用的控制消息(密钥)。另外,也可以使用一个控制消息,但通过控制信息流传入更新的信息,这种更新由新的时间标记和新的密钥组成。
在替代实施方案中,Control Block 13可以通过使用时间标记信息提前把一些适当的密钥发送给适当的信息流流动控制器,以便确定何时需要密钥。这可以减少总的等待时间。
一旦来自Organization Block 8和AV Block 9的信息被传送到Composite Block 11,图1中的Control Line 16将开始起作用并且准备通过Rendering Device 12传递完成的工作。当Composite Block 11把对象发送给Rendering Device 12时,Composite Block 11把开始消息发送给Control Block 13。这一消息识别该对象(包括任何相关联的ES-ID)并且规定显示(或其它方式移交)那个对象的开始时间。当一个对象传递完毕时,Composite Block 11把结束消息发送给Control Block 13,以指出该对象的传递已经结束以及结束的发生时间。特定对象的多重拷贝可以同时传递。因此,Composite Block 11发送的开始和结束消息可以包括指定的范例ID,该范例ID规定对象的哪个范例将被传递。
Control Block 13可以储存涉及特定对象的开始和终止时间的信息,和/或可以通过Port 21把这个信息传送给外部设备(例如External Server 30)。这个信息允许Control Block 13不仅保存已被解密的对象的踪迹而且保存实际上已被使用的对象的踪迹。这是可以使用的,因为系统1可以针对比实际使用的对象多得多的对象完成解密、确认和/或解压缩。Control Block 13还可以确定诸对象的使用时间以及哪些对象已被一起使用。这个类型的信息可以用于复杂的记帐和审计系统,下面将进一步介绍。
Control Line 16还被用于控制Composite Block 11的操作。具体地说,Control Block 13可以储存指定传递特定对象的生效时间的信息并且可以跟踪对象已被传递的次数。如果Control Block 13确定正在非法传递某个对象(即违反控制规则的传递),那么Control Block13可以终止Composite Block 11的操作,或者强制性地删除非法对象。
在替代实施方案中,Control Line 16所提供的控制水平至少可以部分地在不需要那条线存在的情况下被提供。代之以由ControlBlock 13储存当前对Organization Block 8有效的组织信息的散列。这个散列可以是通过Control Stream 6接收的,也可以是ControlBlock 13根据在Organization Block 8中包含的信息另外产生的。
Control Block 13可以定期地生成当前驻留在Organization Block8中的信息的散列并且将它与储存的散列进行比较。两者的差异可以表明对Organization Block 8中的信息已经做了未经批准的变更,借此有可能允许用户以某种违规方式传递信息。在这样的事件中,Control Block 13可以采取适当的动作,包括删除当前驻留在Organization Block 8中的信息。
如果System 1是这样设计的,以使Organization Block 8控制Composite Block 11对内容的使用,以致那个内容除了组织信息所规定的之外都不能被传递,那么Control Block 13通过证明当前组织模块的内容与Control Block 13收到的散列相匹配或许能够控制信息的传递,借此忽略至少一个Control Line 16存在的理由。
Control Block 13还可以通过密码确认手段(例如安全散列法、消息验证代码和/或数字签名)被用来安全地认证收到的内容的始端、完整性、可靠性或其它性质。
System 1还可以包括权限介入点(Inter-Rights Point),用IRP 22表示。IRP 22是一个受保护的处理环境(例如PPE),在该环境中可以对规则/控制进行处理,并且可以储存敏感的信息,例如密钥。IRP22可以被合并在Control Block 13范围内,也可以是独立的组件。如所示IRP 22可以包括CPU23(它可以是任何类型的处理单元)、Cryptographic Engine 24、Random Number 25、Real Time Clock 26和Secure Memory 27。在特定的实施方案中,这些要素中有一些可以省略,而补充功能部件可以被包括进去。
管理规则Control Block 13储存的控制消息可能是非常复杂的。图7图解说明在Control Block 13中控制消息的储存形式,它是由Array 717组成的。Column(列)710是由控制息的存储地址组成的。Column 702是由每个控制消息的标识符组成的。这一功能可与Column 701功能相结合,借助利用Column 701的存储单元信息作为标识符,或借助将消息存储在对应于此标识符的存储单元中来实现。Column 703是由受该控制讯息控制的每个数据流的ES-ID组成的。列704是由消息本身组成的。因此,储存在位置1的控制消息具有ID 15并且控制数据流903。
在简单案例中,该消息可以包括用于对与受此消息控制的信息流相关联的内容解密的密钥。这是通过图7中的Cryptographic Key705予以图解说明的。密钥和/或确认值也可以被包括在内,以便允许对信息流的完整性或起源的密码确认。
在较复杂的案例中,该消息可以包括为管理访问和使用被管理内容而设计的一种或多种规则。这些规则可以落在许多范畴中。
这些规则可以要求在被管理的内容被解密或使用之前对系统1的特定方面或System 1的用户进行鉴定。例如,System 1可以包括储存供该系统使用的独一无二的标识符的System ID28。在控制消息中包含的特定规则可以规定特定的信息流只能在系统ID28包含特定值的系统中被解密。这是用图7中的行2予以图解说明的,其中消息被表示成由规则和命令组成。规则可以是隐含的,所以可以不直率地储存在表格中(例如,表格可以只储存规则、规则和由规则调用的特殊函数(命令)、或只储存各种函数)。
在这种情况下,当Stream Controller 18遇到信息流2031的包含设定的管理指示符的标题时,Stream Controller 18把相关联的ES-ID(2031)传送给Control Block 13。然后,Control Block 13使用这个ES-ID识别管理信息流2031的Control Message 20。Control Message20包括规则706,该规则包括(或调用)Commands 707和AuthorizedSystem ID 708。Authorized System ID 708可以是作为ControlMessage 20的一部分或者作为另一个控制消息(例如ControlMessage 9)被系统1接收的,后者是Control Message 20为访问Authorized System ID要加以引用的。这样的情况或许存在,例如,在一有线用户预订了一特级表演时。该有线系统可以承认那个登记并且把对应于该System ID的ID发送给该用户从而批准该用户观看表演。
在调用Rule 706时,对应的Commands 707访问System ID28并且获得该系统ID的号码。然后,这些命令将那个号码与Rule 706指定的Authorized System ID708进行比较。如果两个号码匹配,Commands 707把Cryptographic Key 709释放给数据流控制模块18,该数据流控制模块使用Cryptographic Key 709给对应于ES-ID2031的信息流解密。如果两个号码不匹配,Commands 707不释放Cryptographic Key,以致Stream Controller 18不能给该信息流解密。
为了完成这些功能,在一个实施方案中,Control Block 13包括处理单元和存储器或者可以访问它们。该处理单元优选能够执行任何可以被任何规则包括或调用的命令。存储器将储存那些规则和相关联的信息(控制消息的ID和任何被管理的ES的ID)。
由于Control Block 13正在处理的功能是敏感的并且涉及有价值的内容的管理,所以Control Block 13可以用阻止窜改和观察的屏障部分地或完全地保护起来。如上所述,处理单元、安全的存储器以及各种与管理相关的要素都可以包含在IRP 22中,其中IRP 22既可以包括在Control Block 13中也可以独立。
Control Block 13还可以完成更复杂一些的操作。在一个实例中,控制消息可能要求来自System 1的信息不仅可以被访问和与期望的信息进行比较,而且可以被储存起来供以后使用。例如,控制消息允许给信息流解密,但必须在System ID28已被下载并且被储存在Control Block 13中之后。这将允许控制消息规则地针对SystemID 28检验储存的System ID,或许在每次试图再次观看某个特定的信息流时就要作这种检验,借此允许控制消息保证该信息流只在一个系统上演示。
Control Block 13还可以动态地获得信息。例如,System 1可以包括User Interface 29,该界面可以包括任何类型的用户输入功能(例如,硬件按钮、显示在电视荧屏上的信息)。来自控制讯息的特定的规则可以要求用户在允许数据流解密或使用之前输入信息。例如,那个信息可以是口令,然后规则可以针对储存的口令对它进行检验以保证该特定用户被授权传递该信息流。
从用户那里获得的信息可能是错综复杂的。例如,规则可能要求在允许释放密钥之前要用户输入支付信息或个人资料。举例说,支付信息可能包括信用卡或签帐卡的号码。个人资料可能包括用户的姓名、年龄、地址、电子邮件地址、电话号码等。然后,键入的信息可以通过Port 21发送给External Server 30以便验证。在收到来自External Server 30的验证消息之后,规则将批准释放密钥。另外,Control Block 13可以被设计成在“脱机”模式下运行,先储存信息而后连接外部设备(或网络)。在这种情况下,Control Block 13或许要求按周期间隔进行连接,或者暂挂建立外部连接限制可以获得的授权数量。
在更复杂一些的情况下,控制消息可以包括条件规则。一个特定的实例是用图7所示表格中行4图解说明的,其中Control Message700被表示成控制信息流49-53。Control Message 700进一步有Rule710、Commands 711和Cryptographic Key 712-716。当然,可能有许多补充密钥储存在该信息中。
在这个案例中,规则710规定同意支付一定数量的费用(或提供一定数量的信息)的用户可观察Stream 49,但要求所有其它用户可观察Stream 50或Stream 49和50的组合。在这个案例中,Stream49可以代表影片和电视节目,而Stream 50代表广告。在一个实施方案中,Stream 49的不同部分可以用不同密钥解密,例如第一部分是用Key 712解密的、第二部分是用Key 713解密的、第三部分是用Key 714解密的等等。Rule 710可以包括所有用于为整个Stream49解密的密钥。当用户最初试图访问在Stream 49中编码的视频信号时,Rule 710可能提供信息,询问用户究竟宁愿使用付款观看模式还是宁愿使用广告模式。如果用户选择付款观看模式,Rule 710可以储存(或发送)付款信息并且把Cryptographic Key 712传送给Stream Controller 18。Stream Controller 18将使用Cryptographic Key712给第一信息流解密直到收到表明需要不同的密钥为后继的数据包解密的标题为止。在Stream Controller 18提出请求时,ControlBlock 13将通过检验确定是否已经付款,然后释放用于为后继的数据包解密的Cryptographic Key 713,依此类推。Rule 710还可以额外地释放与对应于没有广告的视频信号的Organization Stream 52相对应的Cryptographic Key 716。
另一方面,如果用户选择广告模式,Rule 710将把CryptographicKey 712释放给Stream Controller 18以允许给Stream 49解密。Rule710还可能批准给包含广告的Stream 50解密。Rule 710可能进一步把Cryptographic Key 715释放给Organization Block 8。CryptographicKey密钥715与Organization Stream 51相匹配。Organization Stream51引用来自Stream 49的视频信号,但也引用来自Stream 50的广告。Rule 710将拒绝释放与对应于没有广告的视频信号的OrganizationStream 52相对应的Cryptographic Key 716。
在操作时,Control Block 13可以监视在Control Line 16上来自的Composite Block 11的信息。那个信息可以包括被实际传递的每个对象的标识以及移交的开始和终止时间。Control Block 13可以使用这个信息来确定在释放用来给来自Stream 49的视频信号的第二部分解密的Cryptographic Key 713之前已被实际传递的广告。这个反馈循环允许Control Block 13确信广告不仅被解密了而且还正在显示。这可能是必要的,因为Composite Block 11受到的保护可能比较少,因此允许不拘小节的用户在观看之前删除广告。
各种追加的比较复杂的情况是可能的。例如,来自Control Block13的规则可能是专门为特定的地理位置或特定的观众类型编制的程序,通过使用与该位置或观众有关的信息来控制有条件的解密或使用。这种信息可以储存在系统1中或者由用户输入。
在另一个实例中(如图Array 717的行5所示),Rule 719可以规定Budget 718,该预算可以包括与该用户可利用的使用次数、该用户必须花费的金钱数量等有关的信息。在操作时Rule 719可以要求Budget 718被安全地储存并且在每次纳入预算的活动发生(例如,每播放玩相关的作品)时被递减。一旦预算达到零,Rule 719可以规定不可以再播放那种作品,或者显示消息告知用户他可以获得额外的预算,例如通过键入信用卡的号码或口令,或者与外部服务器联系。
在另一个实例中,规则控制可用户把某一作品往另一台设备上拷贝的能力。例如,该规则可以规定用户被授权可以在不止一台设备上使用被管理的作品但在任何时候都只有一种使用是有效的。该规则可以规定安全地储存关于用户是否已“校验”该作品的指示。如果用户把该作品拷贝到另一台设备上(例如通过Port 21),那么该规则可以要求仅仅以加密形式传输该作品并且把相关的控制消息与它一起传输。该规则还可以进一步要求安全地设定一个指示符并且每当用户试图使用或拷贝该作品时都将检验该指示符。如果设定了该指示符,该规则或许将要求该作品不准解密或使用,因为用户只有同时在一台设备上使用该作品的权力,而指示符确定该作品当前正对另一台设备进行“校验”并且尚未进行逆向登记。
接收设备可以包括同一类型的指示符,并且只要指示符未被设定就可以允许用户使用该作品。如果用户希望在原来的设备上使用该作品,那么这两台设备可以利用该指示符在第二台设备中被设定而在第一台设备中复位来进行通信。这允许该作品被储存在两个位置中,但只能在一处使用。
在另一个实施方案中,可以得到同样的结果,其方法是把相关的控制讯息从一台设备拷贝到另一台设备上,然后在原来的设备上将它删除。因为该控制讯息包括用于解密的密钥,所以这将保证该作品每次只在一台设备上使用。
在一个实施方案中,这项技术可以被用于把来自个人计算机的数字媒体文件(例如音乐、录象等)传递给顾客的电子设备而无需允许用户就同时使用问题作出多重选择。因此,更大、更复杂的设备(例如个人计算机)可以把一份文件下载到缺乏在个人计算机中存在的某些功能的便携式设备(例如手持音乐播放器)中,然后“校验”该文件。
规则还可以被用于规定最初的用户可以把文件转移给另一个用户,但是只能通过放弃对该文件的控制。这种规则在操作上类似于上述的把文件从一台设备转移到另一台的技术,或者可能要求在转移之后把原来的文件从原来的设备中整个删除。
Control Block 13中的规则可以通过至少两个信道被增添或更新。新规则可以通过Control Stream 6获得。如果控制消息包含一个与已经在Control Block 13中存在的控制消息相对应的指示符,那么该控制消息(包括所包含的规则)可以重写原来的控制消息。例如,新规则可以与现有规则相同,但是有新的时间标记和新的密钥,借此允许为用多重密钥加密的信息流加密。System 1可以这样设计,以使某些规则不可以被重写。这种可以通过指定Array 717中某些位置作为不可重写位置或通过提供表示特定的规则不能被重写或变更的标志或指示符就可以强制性地做到。这将允许考虑某些类型的超级分配模型(superdistribution models),包括允许下游分配器添加一些规则而不允许下游分配器去除或变更上游分配器添加的规则。
此外,新规则可以以水印或密码编码的形式被编码进Organization Stream 3、Audio stream 4或Video Stream 5中。
新规则还可以通过Port 21获得。Port 21可以与外部设备(例如li灵通卡、便携式存储器等)连接或者与外部网络(例如ExternalServer 30)连接。规则可以以特定的方式或作为Control Block 13发送的请求的结果通过Port 21获得。例如,Control Message 14(图7,行6)可以包括一种规则,该规则规定将从特定的URL下载并被用于管理Stream 1201的新规则。
包括规则在内的控制讯息可以利用安全传输格式(例如DigiBoxes)保密。DigiBoxes是一种用于传递一组商务规则、内容描述信息、内容解密信息和/或内容确认信息的保密箱装置。可以把一个或多个DigiBoxes放进媒体内容的标题中或放进媒体内的数据流中。
图12图解说明DigiBoxes格式和把该格式并入控制讯息的方式的一个实施方案。控制讯息1201是由Control Message Header1202和Control Message Contents 1203组成的。正象在其它地方介绍的那样,Control Message Header1202可以包括Demux 7(图1)用来为该讯息适当地确定至Control Block 13的路由的信息。
Control Message 1201的Control Message Content 1203由DigiBox 1204组成,还可能包含附加信息。DigiBox 1204由DigiBoxHeader 1205,Rules 1206和Data 1207组成.Rules 1206可包括一或多个规则。Data 1207可以包括各种类型的数据,包括ES-ID1208、Cryptographic Key 1209和Validation Data 1210。Data 1207还可以包括加密信息,例如加密算法的技术规范、与该算法一起使用的链接模式、供解密和链接使用的密钥和初始向量。
Data 1207内包含的初始向量类似于密钥,它们组成对原始加密过程的输入,所以就解密而言是必不可少的。在一个众所周知的现有技术的实施方案中,初始向量可以这样产生,即以基础初始向量(一个64位的随机数)为起点,然后对内容项在帧数或开始时间上进行“异或”运算。
在Data 1207内包含的Validation Data 1210可以包括加密的数值或鉴定值、用于计算关键字或鉴定值(例如消息鉴定代码)的密钥、数字签名和/或在确认数字证书时使用的公开关键字凭证。
因此,DigiBox可以把上述信息作为控制消息的一部分合并,其中包括规则、信息流ID、密钥和值。
在替代实施方案中,DigiBox Header 1205可以这样设计,以使Demux 7能够读出它并且为它确定至Control Block 13的路由。在这样的实施方案中,DigiBox 1204本身将组成控制消息,因此不需要在控制消息1201内嵌套的DigiBox 1204。
DigiBox 1204的一部分或全部内容通常是加密的。这可以包括Rules 1206和Data 1207并且还可能包括一些或全部Header 1205。System 1可以这样设计,以使DigiBox只准在受保护的环境(例如IRP22)中被解密(打开)。在另一个实施方案中,Control Block 13可以直接把IRP22的功能包括进去,以使DigiBox可以在ControlBlock 13中打开而不必为了处理为DigiBox确定至IRP22的路由。在一个实施方案中,用于为DigiBox 1204解密的密钥可以储存在IRP22(或Control Block 13)中,以致数码框只能在受保护的环境中被打开。
Rule 1206是管理访问或使用DigiBox Data 1207的规则。在一个实施方案中,这些规则不直接控制受管理的信息流。但是,由于只能通过与规则1206相符才能访问和使用Cryptographic Key 1209,所以Rule 1206实际上直接控制信息流,因为那些信息流只能通过使用只有在与规则相符时才能获得的密钥来解密。在另一个实施方案中,Data 1207可以包括追加的规则,这些规则可以从DigiBox中提取并且可以储存在表格(例如图7的Array 717)中。
管理访问和使用DigiBox的规则可以伴同DigiBox发生(如图12所示),也可以被单独传输,此事件中Rule 1206将包含对用于访问Data 1207的规则的指针或引用。在收到DigiBox时,ControlBlock 13可以通过Control Stream单独接收各种规则,或者可以通过Port 21请求和接收规则。
流水作品的实现图1图解说明的系统的一个潜在的不足在于下述事实,即该系统把复杂性和反馈引入为实时地传递内容而设计的流水作品系统。传递流水作品通常由Demux 7、Organization Block 8、AV Block 9、Composite Block 11和Rendering Device 12组成。由于内容是按信息流方式接受的并且必须被实时地传递,所以流水作品处理必须在严密的时间限制下以非常有效的方式发生。在可利用的时间内处理失败或许意味着提供给Rendering Device 12的输出可能被中断,或者可能意味着输入的Bit Stream 2可能溢出可利用的缓冲区,因此使输入数据的某些部分丢失。
System 1的另一个实施方案是为解决这些问题而设计,但是是以可能牺牲采用标准系统组件和可能牺牲整个系统安全性为代价的。这个替代实施方案用展示System 1101的图11予以图解说明。
System 1101在许多方面类似于图1所示的System 1。它接收由Organization Steam 1103、Audio Steam 1104、Video Stream 1105和Control Stream 1106组成的Bit Stream 1102。这些信息流是通过Demux 7接收的,该Demux把Organization Steam 1103传送给Organization Block,把Audio Steam 1104和Video Stream 1105传送给AV Block 1109。Organization Block 1108和AV Block 1109在操作方面类似于在图1中它们相对应的模块,并且把信息传送给Composite Block 1110,该合成模块把这些信息组织成协调的整体并把它传送给Rendering Block 1111。发送给Organization Block 1108的信息流是通过Stream Flow Controller 1112解密和/或确认的,而发送给AV模块1109的信息流是通过Stream Flow Controller 1113解密和/或确认的。
但是,System 1101不同于System 1,其中控制和反馈是分布式的并且被直接集成到处理和传递流水线中。因此,System 1101缺少独立的控制模块,而且缺少从Composite Block 1110返回的反馈路径。
在System 1101中,控制是直接在Organization Block 1108和AV Block 1109处实施的。象在System 1中那样,密钥是通过ControlStream 1106接收的(在另一个实施方案中,密钥可以被直接合并到Organization Stream 1103或Audio/Video Stream 1104和1105中的标题或其它信息中)。那些密钥被包括在数据格式中,它包括与加密内容的信息流类型有关的信息,并且如果有可能有多种信息流类型,它将包括用于特定的受控信息流的识别符。
当Demux 1107在Control Stream 1106中遇到密钥时,它将读出有关信息流类型的信息,并且将为该密钥前往适当的信息流控制器确定路由。例如,如果Demux 1107遇到为Organization Stream 1103的解密和确认而设计的密钥,它将为那个密钥前往Stream FlowController 1112确定路由。
Stream Flow Controller 1112在Storage Location 1114中储存收到的密钥。Storage Location 1114除了储存密钥之外还储存受控信息流ID的指示符。
Stream Flow Controller 1112包括Cryptographic Engine 1115,该加密引擎使用收到的密钥将Organization Stream 1103的加密和/或受保护部分加密和/或使之得到确认。为了提供某种程度的保密性,密钥本身也可以是加密形式的。在这种情况下,Stream FlowController可以使用各种技术为该密钥解密,其中包括使用作为密钥或作为密钥种储存的信息。例如,那种储存信息可以构成通过BitStream 1102或通过独立端口较早提供的“元密钥”。
与AV Block 1109相关联的Stream Flow Controller 1113包含相应的Storage Location 1116和Cryptographic Engine 1117,并且其操作在方式上类似于针对Stream Flow Controller 1112介绍的操作。
这种配置避免了待时的不利后果,而这种后果在必须有信息流控制器与独立的控制模块之间的通信时可能是固有的。
这种替代配置还可以省略来自合成模块的反馈信道(图1,Control Line 16)。这个反馈信道可能为了保证正在从CompositeBlock 11往Rendering Device 12传送的内容是已被批准传递的内容而被采用的。在图11所示的替代配置中,这个反馈信道不存在。取而代之的是这种配置依靠下述事实,即Composite Block 1110依据来自Organization Block 1108的信息确定将要发送给RenderingDevice 1111的信息的精确结构。Composite Block 1110不能以违背Organization Block 1108所规定的组织方式合成信息。
在一个实施方案中,Organization Block 1108的这种控制可能足以排除对任何反馈的需要,因为Organization Block 1108可以这样设计,以使它只通过Stream Controller 1112接受信息,而StreamController 1112可以这样设计,以使它只在储存在Storage Location1114中的规则的控制下对信息实施解密或确认。
在这样的实施方案中,安全性可以通过把Secure Memory 1118并入Organization Block 1108得到进一步的增强。Secure Memory1118可以存储被Stream Controller 1112有效解密并且当前在MainOrganization Block Memory 1119中用的组织树的副本或散列。Organization Block 1108可以被用于定期地把储存在MainOrganization Block Memory 1119中的组织树与储存在安全存储器1118中的树进行比较。如果识别出不符,这可能表明入侵者已经更改储存在组织模块主存储器1119中的组织树,因此可能在违反适用规则的情况下传递内容。在这种情况下,Organization Block 1108可以采取保护措施,包括用Secure Memory 1118的内容代替MainOrganization Block Memory 1119的内容。
MPEG-4的实现上述的一般系统可以象展示MPEG-4 System 801的图8所图解说明的那样用MPEG-4系统来体现。
MPEG-4 System 801接受MPEG-4 Bit Stream 802作为输入。MPEG-4 Bit Stream 802包括BIFS Stream 803、OD Stream 804、AudioStream 805、Video Stream 806和IPMP Stream 807。这些信息流被传送到Demux 808,检验标题信息并且为适当的数据包传送到BIFS809、AVO810、OD811或IPMP System 812确定路由。
IPMP System 812通过IPMP Stream 807接收IPMP消息。那些消息可以包括标识特定消息的标题信息以及相关的IPMP消息。如上所述,IPMP消息可以包括可以将密钥包括在内的控制信息、确认信息和/或复杂的管理规则。
Stream Controller 813、814和815的作用是分别对传送给BIFS809、AVO810和OD811的信息流实施解密、确认和管理。
OD811保存对象描述符,该描述符包含描述特定对象的元数据。这种元数据包括特定的Elementary Stream的标识符或包括该对象的信息流的标识符,并且还可以包括管理该对象的特定的IPMP消息的指针。另外,IPMP消息与特定对象或信息流之间的关系可以以表格或其它形式储存在IPMP System 812内。
IPMP System 812可以通过Control Line 816、817、818和819对其它功能块实施控制,其中每条控制线都可以传送来自IPMPSystem 812的控制/管理信号和把来自其它功能块的信息或请求传送给IPMP系统812。信息请求可以包括可供IPMP System 812用来确定应当使用哪个特定的消息(例如密钥)和何时使用的ES-ID和时间标记。
在替代实施方案中,IPMP System 812可以通过接收当前有效的BIFS树的散列(可能通过IPMP信息流807)和定期地以储存在BIFS809中的BIFS树为基础校验该散列对Composite和Render 821实施控制。因为BIFS 809控制Composite和Render 821传递信息的方式,如果IPMP System 812确认当前的BIFS树与通过BIFS Stream 803接收的特许树相同,IPMP System 812即使在没有收到直接来自Composite和Render 821的反馈也能确认正在传递适当的内容。这可能是必要的,因为BIFS 809可以与允许用户把信息插入BIFS 809的Port 822通信,因而形成用户插入越权的BIFS树并借此获得对内容的越权访问的可能性。
在信息流控制器接收加密的或以其它方式管理的信息时,它可以把ES-ID和时间标记直接传送给IPMP System 812。另外,它可以把这个信息发送给可以用管理那个对象或信息流的IPMP消息的ID应答的OD 811。然后,信息流控制器可以使用那个IPMP消息ID去请求来自IPMP System 812的解密、确认和/或管理。另外,OD 811可以把IPMP ID传送给可以与适当的信息流控制器开始接触的1PMP System 812。
IPMP System 812可以通过两个信道而非IPMP Stream 807获得IPMP信息。这两个信道中的第一信道是Port 820,它可以直接接连设备或存储器(例如灵通卡、DVD盘)或外部网络(如因特网)。IPMP讯息可以包含指向通过Port 812可获得的信息的指针,例如URL、DVD盘上的地址等。那个URL可以包含该IPMP消息所需要的特殊控制,或者可以包含辅助需要的信息,例如与特定用户的预算相关的信息。
IPMP System 812还可以通过OD信息流804中包含的OD更新获得IPMP信息。OD信息流804包含识别特定对象的元数据。特定的OD消息可以采用图9所示的格式。在这张图中,OD Message901包括Header 902,该标题标识尾随的数据包作为OD数据流的一部分并且指明数据包的数量。OD Message 901进一步由包括一系列Pointer 904和相关的Metadata 905的Message 903组成。每个Pointer 904识别一个特定的Elementary Stream,而相关的元数据适用于那个信息流。最后,OD Message 901可以包含IPMP Pointer 906,这个指针识别特定的IPMP消息。
在聚集中,OD Message 901中包含的信息组成对象描述符,因为它不仅识别并描述组成该对象的每个基本信息流而且识别管理该对象的IPMP消息。OD Message 901可以与其它消息一起储存在OD 811中,每个组成一个对象描述符。
储存在OD 811中的对象描述符可以通过OD Stream 804被更新,该信息流可以传送对应于同一对象的新对象描述符。然后,新对象描述符重写现有的对象描述符。这种机制可以用于通过使用等同于现有的对象描述符的新对象描述符来改变控制特定对象的IPMP消息,IPMP指针除外。
OD Stream 804还可以携带IPMP-DescriptorUpdate消息。每个这样的消息都可以具有与IPMP信息流携带的IPMP消息相同的格式,包括IPMP ID和IPMP消息。
IPMP-DescriptorUpdate消息可以储存在表格OD 811的阵列中,或者可以被传送给IPMP Stream 812,在此它们重写当前储存的IPMP讯息,或者可以添加给储存的消息。
由于IPMP信息可以单独通过OD信息流或IPMP信息流传送,所以MPEG-4System 801可以这样设计,以使它仅通过这两个信道之一接受信息。
在另一个实施方案中,这两个信道的存在可以被用于允许多极分配,在后面的诸级添加管理,但没有后面的变更超越在前级添加的管理的风险。
这样的系统是用图10图解说明的。在这张图中,IPMP System812包括具有可容纳256条IPMP消息的槽的IPMP Table 1002。这张表把IPMP ID隐式地储存在Column 1103所示的信息存储位置。例如,与IPMP-ID 4相关联的IPMP讯息被储存在IPMP Table 1002的槽4处。
在1002中每个位置包括Valid Indicator 1004和Source Indicator1005。Valid Indicator 1004是在IPMP消息被储存在某个特定位置时为那个特定位置设置的。这允许IPMP System 812识别未被填充的槽,这用别的方法是困难的,因为在开始时这些槽可能是用随机信息填充的。这还允许IPMP System 812识别不再有效和可以替代的消息。Valid Indicator 1004可以把时间标记信息储存一段时间,即在那段时间内该讯息是有效的,IPMP System 812是通过对当前的有效时间校验被储存的时间标记信息确定其有效性的。
Source Indicator 1005是根据相关的IPMP消息究竟收自IPMPStream807还是收自OD Stream 804设定的。
这些指示符允许IPMP System 812建立消息的分层结构和控制添加和更新消息的方式。IPMP System 812可以是为一旦收到对应于某个特定位置的消息就评估那个位置的指示符而设计的。如果有效性指示符被设定为无效,IPMP System 812可以是为了自动地把IPMP消息写入那个槽而设计的。如果有效性指示符被设定为有效,那么IPMP System 812就是为了校验源指示符而设计的。如果源指示符表明相关的讯息是通过OD Stream 804接收的,那么IPMP系统1812可能是为了用新消息重写现有的消息而设计的。但是,如果源指示符表明相关的消息是通过IPMP System 807接收的,那么IPMP System 812可能是为了校验新消息的来源而设计的。那种校验可以通过查验与新消息相关的标题来确定新消息究竟是ODStream 804的一部分还是IPMP Stream 807的一部分得以完成。另外,IPMP System 812可以通过确定该消息究竟是直接从Demux 808接收的还是通过OD 811接收的来推演这个信息。
如果新消息来自IPMP Stream 807,那么IPMP Stream 812可能是为了把该新消息储存在Table 1002中以重写现有的消息而设计的。另一方面,如果新消息来自OD Stream 804,那么IPMP System812就可能是为了拒绝新消息而设计的。
这种消息分层结构可以被用于考虑控制的分层结构。例如,电影制片厂可以按MPEG-4格式给影片编码。该电影制片厂可以把IPMP消息储存在IPMP信息流中。那些消息可以包括一要求,即IPMP System 812要求在显示该正片电影之前显示来自同一电影制片厂的另一部影片的预告片。IPMP System 812可以被用于监视映出该预告片的起点和终点(利用通过Control Line 819的反馈)以保证放映完整预告片和用户不能通过快速前进甩掉它。
电影制片厂可以给各种各样的基本信息流(包括IPMP信息流)加密。然后,电影制片厂可以把该电影提供给分配器,例如有线电视频道。电影制片厂可以把使分配器能够将OD信息流解密(即能使OD信息流被解密)的密钥和把新消息插入那个信息流的能力提供给分配器。例如,该有线电视频道可以在OD信息流中包括一条规则,该规则规定IPMP系统通过校验确定用户是否已为佣金观看付款,如果已为佣金观看付款则将该电影解密,如果没有付款则插入广告(并且要求映出这些广告)。
所以,有线电视频道将有能力把它自己的规则添加到MPEG-4位流中,而且不存在有线电视频道删除或变更电影制片厂所使用的规则(例如,把电影制片厂正在促销的影片的预告片变成该有线电视频道正在促销的与之匹敌的影片预告)的风险。电影制片厂的规则可以规定允许通过OD信息流的新规则的类型,借此为电影制片厂提供高度控制。
同样的机制可以用于允许内容有可能从一个用户到另一个用户的超级分配。用户或许可以得到能够将消息插入OD信息流的可编程界面。例如,某个用户或许插入一条讯息,要求在看电影之前支付1.00美元到该用户的帐户。然后,该用户可以把影片提供给另一个用户(或通过拷贝不受控制的媒体(例如因特网)分配它)并且仍然收费。但是,因为该用户的规则不能超越电影制片厂的规则,所以电影制片厂可以确信它的规则将被遵守。那些规则或许包括规定允许用户添加的规则类型的规则(例如限制用于再分配的价格)。
MPEG-4 System 801还可以是为了包括特定类型的IPMP系统而设计的,而这种类型的系统可以是与可以被设计成其它MPEG-4系统的IPMP系统不兼容的。这或许是可能的,因为MPEG-4标准没有规定包含在IPMP信息流中的信息的格式,因此允许不同的内容供应商以不同的方式给信息编码。
在MPEG-4 System 801中IPMP System 812可以是为其中存在不同的IPMP格式的环境而设计的。那种系统可以扫描IPMP信息流寻找与IPMP System 812兼容的标题。所有其它的标题(以及相关联的数据包)都可以被丢弃。这种机制将允许内容供应商将多种格式的相同IPMP消息合并,而不必担心遇到不熟悉的格式将引起IPMP系统失败。具体地说,IPMP标题可以包括IPMP系统类型标识符。那些标识符可以通过中央授权分派,以避免两个不兼容的系统选择同一标识符的可能性。
IPMP System 801或许是为与多种格式兼容而设计的。在这种情况下IPMP System 801可扫描诸标题以便确定包含与IPMP System801兼容的IPMP系统标识符的第一标题。然后,IPMP System 801可以仅仅选择对应于那个IPMP系统标识符的标题,摒弃所有其它的标题,包括结合有也被该IPMP系统承认的替换IPMP系统标识符的标题。
这样一种设计将允许内容供应商提供多种格式并且将它们从最先优选的到最后优选地排成队,最先优选的排第一,第二优选的排第二,依此类推。由于IPMP System 801自动跟踪它发现的第一个兼容格式,所以在IPMP System 801中的这种排序将保证该IPMP系统将选择内容供应商最希望的格式。
即使使用不同的IPMP格式,内容也将可能利用单一的算法编码(和加密),因为发送多种版本的内容将大大加重带宽负担。因此,通常采用公认的通用加密方案给内容加密将是必要的。一种这样的方案在输出反馈模式中可能采用DES算法。
这种筛选IPMP标题并自动跟踪特定格式的方法也可以用于定制适应特定的MPEG-4系统的功能能力的MPEG-4位流。能够传递MPEG-4内容的系统可以覆盖相当大范围的功能性,从高端家庭影院到手持设备。适合一类系统的可选管理可以是与其它系统毫不相干的。
例如,MPEG-4 System 801可以包括通过Port 820与因特网的连接,而第二MPEG-4系统(例如类似于随身听的手持设备)可能没有这种连接。内容供应商可能或许想把某选项提供给某个观众,以便以提供关于观众的信息为条件允许在该观众免费观看内容。内容供应商可以插入一条规则,询问用户是否愿意以某种代价观看该内容或者愿意键入识别信息。然后,该规则可以通过端口把信息发送给因特网和规则中规定的URL。然后,在那个URL站点评估该用户信息并且下载以该特定用户为对象的广告。
虽然这或许对内容供应商而言是有价值的选项,但是就不一定要与因特网连接的设备而言显然是没有意义的。把这样的选项提供给不联网设备的用户将是没有意义的,因为即使那个用户键入信息,该规则也无法把该信息提供给外部的URL或下载广告。在这种情况下,内容供应商或许最好要求用户观看包含在原始MPEG-4位流中的预选广告。
IPMP信息流中标题信息可以被用于为特定的设备定制MPEG-4位流。象IPMP System Type信息那样,IPMP Header信息可以包括多种MPEG-4 System Type。这些可以包括8或16位值,以位映象表述特定特征。因此,例如,在位置2存在一个位信息则可能表示设备与因特网有持久的连接。
然后,IPMP系统可以评估这些标题并且自动跟踪说明功能性小于或等于包含在有IPMP系统嵌入的MPEG-4设备中的功能性的第一标题。如果该标题对于MPEG-4设备的功能性构成完全的匹配,那么该IPMP系统可能停止搜寻。如果该标题构成不完全的匹配(例如,某个已有因特网连接但缺乏数字输出端口的系统的标题,在该系统包括两者时),那么IPMP系统可以自动跟踪那个标题并且继续寻找更接近的匹配,如果和在找到一个时则自动跟踪更接近的匹配。
用特定的标题识别的IPMP讯息将是那些适合该MPEG-4设备的特定的功能性的消息并且将有可能为那种功能性定制MPEG-4位流。在前面给出的实例的意义上来说,用于包含因特网连接的MPEG-4设备的IPMP系统将自动跟踪特定的标题并且将下载由那个标题描述特征的IPMP讯息。那些讯息将提醒用户输入信息、将那些信息提供给URL并且批准将影片解密并传递影片而在适当的点插入广告。
另一方面,在MPEG-4设备不与因特网连接的情况下,该IPMP系统将自动跟踪一组缺乏因特网连接指示位的标题,并且将下载与那个标题相关的规则。那些规则或许不把任何选项提供给用户。这些规则或许允许将内容解密,但还将规定把来自MPEG-4信息流的补充ES解密。那个补充ES将包含广告,并且该IPMP系统将要求对广告解密和传递,校验Control Line 819以肯定这一切已经发生。但是,在该系统与因特网连接的情况下,将决不装入允许为包含广告的ES解密并要求传递该ES的规则,因为那些规则将被包含在被错误类型的标题识别的消息内。所以,广告ES将决不被解密并且将被MPEG-4设备忽略。
图21图解说明一种形成受保护的MPEG-4文件的方式。在这张图中,CreateBox 2101代表接受密钥和规则的DigiBox创建实用程序。在一个实施方案中,CreateBox 2101可以把这些密钥和规则传送给IRP 2102并且接受来自IRP 2102的钥2103。在另一个实施方案中,IRP2102可以被并入接受密钥和规则并且输出DigiBox 2103的CreateBox 2101。
DigiBox 2103包含管理规则、初始向量和密钥。DigiBox 2103将从CreateBox 2101传送到BifEncoder 2104。BifEncoder 2104可以是常规的,但为接受和处理象DigiBox 2103那样的DigiBox的设计除外。BifEncoder 2104还接受包含场量图的.txt文件和初始对象描述符命令。
BifEncoder 2104输出包含场量图信息流(以压缩的二进形式)的.bif文件和包含初始对象描述符命令的.od文件、对象描述符信息流和DigiBox 2103。
BifEncoder 2104把.bif文件和.od文件传送给Mux 2105。Mux2105还接受压缩的音频和视频文件以及包含信息流说明的.scr文件。Mux 2105创建IPMP信息流、描述符和消息,给内容信息流加密,解析收到的信息流并且输出由Initial Object Descriptor 2107和Encrypted Content 2108组成的MPEG-4 Content File 2106。InitialObject Descriptor 2107包含DigiBox 2103以及其它信息。EncryptedContent 2108可以包括场量图信息流(即BIFS信息流)、对象描述符信息流、IPMP信息流和加密内容信息流。
如果DigiBox 2103包含传递全部内容必不可少的所有的密钥和规则,那么Mux 2105创建任何IPMP信息流即可无必要。如果就至少一部分内容而言补充的密钥或规则可能是必要的,那么Mux 2105可以把那些规则和密钥合并成一个或多个补充DigiBox中并且把那些DigiBox组合在IPMP信息流或OD更新信息流中。
图22图解说明一种把控制并入现有的MPEG-4信息流的方式。在这张图中,未受保护的MPEG一4Content File 2201包括InitialObject Descriptor 2202和Content 2203。该内容可以包括场量描述信息流(或BIF信息流)、对象描述符信息流、视频信息流、音频信息流以及可能的补充内容信息流。
未受保护的MPEG-4 Content File 2201被传送给也接受密钥和规则的Repackager 2204。Repackager 2204把密钥和规则传送给IRP2205并且在回过来接收包含密钥、规则和初始向量的DigiBox2206。在替代实施方案中,IRP 2205可以被直接并入Repackager2204。
Repackager 2204多路分配未受保护的MPEG-4 Content File2201。它把DigiBox 2206插入Initial Object Descriptor并且给各种内容信息流加密。如果有必要(包括如果补充DigiBox是必要的),Repackager 2204还增添IPMP信息流。
Repackager 2204输出由Initial Object Descriptor 2208(包括2206)和Encrypted Content 2209(由各种信息流组成,如有必要包括IPMP信息流)组成的受保护的MPEG-4 Content File 2207。
实时网络的实现在一个实施方案中,上述的诸要素可以与按照Real NetworksInc.所建立的格式编码的信息。
Real Networks File Format(实时网络文件格式,RMFF)如图13图解说明。这种格式包括在起始位置的标题模块(Header 1301)、尾随在后面的内容数据包的集合(Content 1302)和再尾随在后面的用于寻找和转到操作的索引(Index 1303)。每份文件都可以包含几个不同类型的信息流。就每个数据流而言,有用于描述媒体内容格式(例如压缩格式)和提供信息流特定信息(例如用于解压缩的参数)的“Media Properties Header”(1304)。
Real Network信息流可以通过在Header 1301中插入DigiBox和给Content 1302中包含的数据包加密而得到保护。替代格式是用图14图解说明的,该图展示包括Media Properties Header 1402和1403的Header 1401,其中标题1402和1403依次分别包含DigiBox 1404和1405。该格式还包括加密的Content 1406和Index 1407。
在一个实施方案中,数据的呈报类型从标准Real Network格式变成新的类型(例如“RNWK-Protected”)。然后把旧类型保存起来。改变类型迫使Real Network播放器装载“Trust Plugin”,因为这个Plugin是作为唯一能够处理“RNWK-Protected”的信息流的解码器模块注册的。这个Trust Plugin打开DigiBox,如果需要的话从用户那里得到认可,确定原始内容的类型,为该原始内容装载解码器插件,然后对该内容实施解密和/或确认,再把它传送给内容解码器插件以便解压缩和提交给用户。
在一个实施方案中,对Real Network文件格式所做的特殊变更如下
●增加预滚动时间以迫使重放时缓冲区更大。在当前的实施方案中采用3秒的增量。需要更大的缓冲区是因为将内容解密所需要的额外步骤。
●修改每个特殊数据流的标题,其方法是把摹拟表演型(mime type)变成“RNWK-Protected”,把原来的摹拟表演型保存在解码器专用信息中,然后把内容标识符和DigiBox添加到解码器专用信息中。该DigiBox包含密钥、初始向量(IV)、版本信息和水印指令。密钥、IV和内容标识符是自动生成的,或者可以作为命令行的参数提供。同样的密钥、IV和内容标识符被用于每个信息流。
●有选择地给内容数据包加密。在一个实施方案中,按毫秒计起始时间在每个5秒的第一个半秒中(即起始时间%5000<500)的内容数据包被加密。这将给大约1/10的内容加密(从而降低了加密和解密的成本)并且造成足以防止转卖的内容损伤。加密算法可以是利用输出-反馈模式的DES或任何类似的算法。初始向量是针对每个数据包通过数据包的起始时间按毫秒计求信息流的IV的“异或”加以计算的。一些该信息流特有的信息也应该被异或到IV中。在一个实施方案中,只要两个或多个信息流具有起始时间相同的数据包,就把同样的IV用于多个数据包。这通常适合每个信息流中第一个数据包,因为它们的起始时间通常为0。除了第一数据包之外,两个数据包具有相同的起始时间的情况是罕见的。
在一个实施方案中,这些Real Network文件格式的变化是象图15所示的那样完成的。如图所示,RMFF文件1501是按标准的RealNetwork RMFF格式格式化。将这份文件传送给Packager 1502。Rights File 1503也传送给Packager 1502。Packager 1503产生Protected RMFF File 1504,该文件包括被罗列在图15中的上述的各种变化,包括将一个或多个DigiBox并入标题、给内容加密、修改摹拟表演类型等。
在一个实施方案中,上述的委托插入软件(trust plugin)是用图16和图17图解说明的。图16图解说明标准Real Network的分层结构。File 1601(例如按Real Network格式作信息流式的音频文件)被提供给Real Network G2 Client Core 1602。File 1601可以由Server 1603或通过Direct Connection 1604提供给Real Network G2Client Core 1602。
收到File 1601时,Real Network G2 Client Core 1602根据从与File 1601相关的标题获得的信息访问适合于File 1601的传递插入软件(rendering plugin)。图中展示了Rendering Plugin 1605和1606。如果File 1601是不能用Rendering Plugin 1605或Rendering Plugin1606传递的那种类型的文件,Real Network G2 Client Core 1602可以尝试访问适当的插入软件,例如通过请求用户帮助或通过访问与特定的文件类型相关联的站点。
Rendering Plugin 1605或1606以常规方式处理File 1601。这种处理很可能包括File 1601的解压缩,并且可能包括其它类型的对传递该内容有用的处理。一旦完成这种处理(记住该内容是呈信息流式的,所以处理可以在传递一组数据包的同时在另一组数据包上发生),File 1601就被传送回Real Network G2 Client Core 1602,然后它把该信息传送给Rendering Device 1607。例如,Rendering Device1607可以是一组立体声扬声器、电视接收机等。
图17图解说明在整个Real Network总分层结构范围内委托插入软件的操作方式。图17所示的大部分分层结构是与图16所示的分层结构相同的。因此,File 1701通过Server1703或通过DirectConnection 1704提供给实时网络G2客户核心1702(Real NetworkG2 Client Core 1702)。该文件由Real Network G2 Client Core 1702利用插入软件(包括Rendering Plugin 1705和1706)进行处理,然后传送给Rendering Device 1707。
图17不同于图16之处在于它把Trust Plugin 1708与1709合并以及它的IRP1710。在最初用Real Network G2 Client Core 1702注册时,Trust Plugin 1708和1709通知Real Network G2 Client Core 1702它们能处理RNWK-Protected的内容。无论何时Real Network G2Client Core 1702遇到这种类型的信息流,它都能够创造一种委托插入软件的范例(例如Trust Plugin 1708)来处理该信息流。然后,它把该信息流传送给该委托插入软件。
被传送给Trust Plugin 1708的信息流可能是采用图14所示的格式。在这种情况下,Trust Plugin 1708从Media Properties Header 1402中提取DigiBox 1404。它还从Media Properties Header 1402中提取内容ID和原始摹拟表演的类型。该委托插入软件首先继续校验看看是否有具有相同内容标识符的任何其它信息流已被打开。如果有,DigiBox 1404不被进一步处理。取而代之的是使用来自这个其它数据流的数码框的密钥和IV。这节省了打开第二个数码框花费的时间。再者,这保证即使有多重受保护的信息流存在也只要求用户付一次款。通过共享诸内容ID、诸密钥和诸IV,可以在用户只付一次款的情况下播放几份文件。这在把SMIL作为单一表述用于播放几份RMFF文件时是有用的。
在可能更安全的替代实施方案中,即使另一个具有该内容标识符的信息流已经被打开也不进行这种校验而是使用来自当前的数码框的密钥和IV。
如果用同样的内容标识符未识别出其它信息流,Trust Plugin1708把DigiBox 1404传送给IRP 1710。IRP 1710可以是一种在与Real Network G2Client Core和Trust Plugin 1708相同的计算机上运行的处理软件。IRP 1710可以在受保护的环境中运行或者可以包括为了提供抗攻击的IRP 1710而设计的抗干扰技术。
IRP 1708可以处理DigiBox 1404并且从中提取密钥和IV,然后把它们传送给Trust Plugin 1708。然后,Trust Plugin 1708可以使用这个信息将Encrypted Contents 1406解密。
Trust Plugin 1708使用从Media Properties Header 1402中提取的原始摹拟表演型信息生成用于该内容的传递插入软件的范例(例如Rendering Plugin 1705)。一旦完成这项任务,Trust Plugin 1708对Real Network G2 Client Core 1702的作用就象普通传递插入软件一样,其中Real Network G2 Client Core 1702把呈信息流的信息传送给Trust Plugin 1708,该软件将该信息解密并把它传送给RenderingPlugin 1705。从Real Network G2 Client Core 1702方面看,TrustPlugin 1708构成适当的传递插入软件,而该核心并不了解该信息正被Trust Plugin 1708传送到第二插入软件(例如Rendering Plugin1705)。
类似地,依据Rendering Plugin 1705的观点,Trust Plugin 1708的作用就象Real Network G2 Client Core 1702一样。因此,虽然Rendering Plugin 1705接收来自Trust Plugin 1708的解密的流信息,但是Rendering Plugin 1705完全象该信息直接收自Real Network G2Client Core 1702一样地操作。在这种方式中,为Rendering Plugin1705格式化的内容可以首先由Trust Plugin 1708处理,而不需要对Real Network G2 Client Core 1702或Rendering Plugin 1705作任何变动。
Trust Plugin 1708还可以完成对安全性有利的其它处理。例如,Trust Plugin 1708可以在解密文件传送给Rendering Plugin 1705之前给该文件加水印,请记住水印算法必须是这样的,即它在文件被Rendering Plugin 1705解压缩之后仍然将保存完好。
MP3实施方案上述技术也可以应用于MP3呈信息流的内容。
MP3的技术规范没有定义标准文件格式,但定义了图18所示的位流。在图18中,MP3 Bit Stream 1801包括Content 1802。Content1802被分成数帧,如Frame 1803、Frame 1804和Frame 1805所示。在Frame之间的点表示如下事实,即Content 1802可以包括大量的Frame。
每帧包括它自己的小标题,在图18中被表示为Header 1806、1807和1808。
许多MP3播放器支持ID3 V1技术规范所定义的小尾部,如Trailer 1809所示。这是一个128字节的尾部,用于携带象艺术家、题目和年份之类的字段如Field 1810、1811和1812所示。ID3 VI尾部被并非为读出这样的尾部而设计的播放器忽略,因为它似乎不是有效的MP3数据。
图19展示对MP3格式施加保护的一个实施方案。这种受保护格式构成File 1908并且包括下述项目●未加密的MP3 Content 1912。这是播放器遇到的第一个信息并且将被任何标准的MP3播放器传递。它可以包括提供给用户的消息,该消息表明该内容是受保护的并且提供怎样才能访问该内容的指令(例如,用于委托插入软件的URL、关于付款机制的指令等)。未加密的MP3 Content可以包括由免费提供的该内容的初始部分组成的“诱人的广告”(例如30秒),借此使用户能在决定购买它之前对该内容进行采样。
●加密的MP3 Content 1901,它可以包括成千上万个MP3帧。在一个实施方案中,每32帧中的前8帧被加密。因此,诸帧中有1/4是不能使用的,除非播放器能够将它们解密。在实践中,这可以传递不能出售的或不能使用的内容,同时不征收过多的加密或解密费用。为了进一步减少加密和解密的费用,在每帧中只有32个字节是加密的。在当前的实施方案中,这些是在标题和CRC信息之后的头32个字节。在不同的实施方案中,可以在每帧中给不同的32个字节加密。在当前的实施方案中,该内容是利用采用算法输出-反馈模式用DES加密的。用于该文件的初始IV是随机产生的,然后与帧号作“异或”运算,产生用于每帧的独特的IV。可以有许多替代实施方案,包括给更多或更少的信息加密和利用不同的加密算法。
●包括128个字节的ID3 V1 Trailer 1902。
●包括16个字节的Content ID 1903。这是供播放器应用程序使用的,以避免打开已被打开的DigiBox。
●DigiBox 1904,它可以包括大约18K字节。它包括Key1909、IV 1910、和Watermarking Instruction 1911。Watermarking Instruction 1911可以在给相关内容进行加水印处理时使用。
●Address 1905,它包含Content ID 1903的文件中的地址由4个字节组成。
●Trust ID 1905,它识别这个受托MP3文件由16个字节组成。
●ID3 V1 Trailer 1907,它是Trailer 1902的复制品。
常规MP3播放器遇到File 1908将不能传递Content 1901,因为那个内容中至少有一部分是加密的。这样的播放器将很可能一直读到Trailer 1902并且在那个点中止处理。搜寻ID3尾部信息的常规播放器将寻找该末端并找到它。
图20图解说明为处理和传递受保护的内容而设计的MP3播放器的一个实施方案。这张图展示MP3 Player 2001,它包括缓冲器2006和Decompressor 2007并且把内容传递给Rendering Device2008。在一个实施方案中,这是由Sonique分销的播放器的改进型。
Player 2001通过任何标准接口获得Protected MP3 File 2002。Protected MP3 File可以具有图19所示的格式。
在要求Player 2001播放Protected MP3 File 2002时,Player 2001首先调用Trust Plugin 2003,该软件包括Approval Function 2009和Decrypt Function 2009。Trust Plugin 2003调用Approval Function2009以确定Protected MP3 File 2002是否是受保护的以及是否已批准播放该文件。Approval Function 2009首先得到一个指向ProtectedMP3文件2002的指针。然后,它校验Protected MP3 File 2002是否有Trust ID1906。如果没有找到委托ID1906,Approval Function 2009将返回一个该文件未受保护的指示符。然后,Player 2001继续进行,以便把该文件作为正常的MP3文件传递。
如果找到了Trust ID 1906,Approval Function 2009校验ContentID 1903,看看它是否与已经打开的某份文件的Content ID匹配。
如果Protected MP3 File尚未被打开,DigiBox 1904经ApprovalFunction 2002检索后被传送到IRP 2004,它可以包括在受保护环境中运行的或具有抗干扰性的软件。IRP 2004试图用与DigiBox相关的规则相符的方法打开该DigiBox 1904。例如,一种这样的规则可以要求用户表示同意为使用该内容付款。如果DigiBox 1904不能被打开(例如,用户拒绝付款),一个数值被返回到Approval Function2009,以表明该文件是受保护的并且不可以被播放。
如果用与适用规则相符的方法打开了DigiBox 1904,那么密钥和IV将被检索并且被传送到Decrypt Function 2005。该密钥和IV将与内容ID一起被储存起来供稍后再用,而Decrypt Function 2005将被初始化。这可以提高整个系统的性能,因为它减少了必须打开DigiBox的次数。每个这样的动作都可能带来相当长的等待时间。
另一方面,在不受保护的存储器中储存这个信息可能降低总系统的安全性。采用下述办法可以提高安全性,即不储存这个信息(这样就要求打开每个DigiBox,即使相应的文件借助另一个DigiBox已经被打开也依然如此),或者用受保护的形式储存这个信息或把这个信息储存在安全的位置。
被储存的密钥、IV和内容ID在Approval Function 2009首先校验Content ID 1903被引用来确定它是否与已被打开的文件的Content ID匹配时被定位。如果新的Content ID与储存的Content ID相匹配,Decrypt Function 2005将利用对应于该匹配的内容ID的储存密钥和IV重新初始化,并且一个表明批准播放这份受保护的文件的值将返回到Approval Function 2009。
一旦Protected MP3 File 2002被打开,每当Player 2001需要数据包时,Player 2001就把它读到缓冲区2006中,剔除标题和CRC之后把剩余的数据和帧号传送给Decrypt Function 2005,它将该帧解密(如果必要的话)然后送回Player 2001。
在当前的实施方案中,虽然音频内容是加密的,但是标题和尾部不加密。这允许Player在没有来自Approval Function 2009或Decrypt Function 2005的干预的情况下处理标题和尾部中的信息。这允许Player 2001把诸如播放时间、艺术家和题目之类的信息放进播放表显示并且将Decompressor 2007初始化,而不需要来自TrustPlugin软件2003的动作。
商务设备(Commerce Appliance)的实施方案这节将介绍一个包括为了允许持续控制零售电子器具中的数字作品而设计的Commerce Appliance的分层结构的实施方案。虽然这是作为独立的实施方案介绍的,但是应当理解这个实施方案的特点可以与在这份说明书中的其它地方提供的任何实施方案的特点相结合或者取而代之。
在一个实施方案中,这节将介绍为了支持常驻规则和控制与MPEG-4内容以及对于使用这种内容的Commerce Appliance必不可少的诸要素相关联而设计的对MPEG-4标准的修改。但是,这仅仅企图作为一个实例。
在一个实施方案中(如图23所示),每个Commerce Appliance2301包括CMPS(“Content Management and Protection”(内容管理和保护系统))2302。每个CMPS都能够对管理受控内容的使用起作用,包括将该内容解密和保证该内容仅仅在得到相关规则允许时被用。每项受管理的数字作品都与一个或多个CMPO(ContentManagement Protection Object(内容管理和保护对象))相关联,例如CMPO 2303。每个CMPO可以规定一些管理该数字作品的规则并且可以包括用于给该作品解密的密钥。
CMPO可以按照分层结构的方式组织。在一个实施方案中,内容聚集器(例如,电缆信道、网站等)可以规定Channel CMPO(CCMPO),该CCMPO被用于使某些全局规则与那个信道上存在的所有内容相关联。每项独立的作品可以依次具有相关的MasterCMPO(MCMPO),它被用于使可应用于该作品的各项规则作为一个整体相关联起来。每个对象(即MPEG-4中的ElementaryStream)可能业已与某个包含管理该特定对象的规则的CMPO相关联。
在一项示范应用中,Commerce Appliance 2301可以是包含CMPS2302的MPEG-4播放器。在收到播放特定作品的用户命令时,CMPS2302可以下载与该作品相关的MCMPO并且获得各种规则,这些规则可以包括解密和查看该作品所需要的各种条件。如果这些规则得到满足,CMPS2302可以使用来自MCMPO的密钥将任何Elementary Stream(ES)解密并且可以把解密的ES传送到缓冲区中。然后,可以按照MPEG-4标准继续进行该MPEG-4作品的合成和传递,不同之处在于任何可以包含不带密码的作品的储存位置或总线必须是安全的,以及CMPS 2302可以具有管理下游处理和获得关于为了观看实际释放哪些AVO的信息的能力。
在变型中,获取和管理该作品的处理可以包括下载应用规则管理这项和其它作品的CCMPO。如果包含在该CCMPO中的规则得到满足,CMPS2302可以获得将用于给与待观看的特定作品相关联的MCMPO解密的密钥。
在另一种变型中,CMPO可以与每个ES相关联。在这个变型中,MCMPO将把一个或多个密钥应用于每个CMPO的解密,而每个CMPO可以依次把密钥应用于相关的ES的解密。
Commerce Appliance 2301是内容传递设备,它包括支持分布式对等管理与权限有关的内容的能力,它通过安全地应用规则和控制来管理内容的使用。Commerce Appliance 2301可以包括致力于获取和受管理地传递内容的通用功能(例如,DVD(和/或其它光盘格式)播放器能够播放DVD(和/或其它光盘格式)盘并且把内容输出给电视)。Commerce Appliance 2301可以使用任何装置来保护和使用大容量光盘上的数字内容,其中一个非限制性实例是在上述的Shear专利申请中介绍的DVD盘。
Commerce Appliance 2301还包括与内容功能的其它管理和保护有关的专用功能。这些专用功能可以得到一个或多个内装的或以单一CMPS的形式或协作式CMPS系统的形式包括的CMPS 2302的支持并且可以包括为了把涉及控制的信息显示给用户和/或为了接收来自用户的涉及控制的信息和命令而设计的用户界面。Commerce Appliance 2301还可以这样设计,以致它可以与其它Commerce Appliance(例如,被连接在DVD播放器和数字电视上的置顶盒)和/或其它设备(例如,也可以包括一个或多个CMPS的计算机系统)联网。
Commerce Appliance的一种重要形式专门预先考虑与计算机管理的对接环境(例如本身可能是Commerce Appliance的独立计算机或其它计算机管理的设备)周期或连续地安全耦合,其中CommerceAppliance的一个或多个CMPS与对接环境彼此协作形成单用户系统,其在某些功能上的实现和/或某些内容利用事件至少部分地通过Commerce Appliance的诸CMPS和内容使用管理信息与对接环境的置信环境能力(例如,进一步的一种或多种CMPS和内容使用管理信息,如通过使用CI提供的信息)之间的合作而成为可能。
示范Commerce Appliance可以是为了履行用于视频或其它类型信息的格式化、多路复用、传输、合成和传递MPEG-4标准而设计的。
Commerce Appliance 2301可以是任何计算设备,其中一个非限制性实例是包括用于传递内容的MPEG-4软件(和/或硬件)的个人计算机(PC)。按照本发明,该个人计算机还可以使用一个或多个文中介绍的CMPS。
Commerce Appliance功能不只限于呈信息流信道内容,而是可以包括由聚集起来的复合内容(例如,静物的形象描述、文本、合成的和天然的视频信号和音频信号以及功能性内容(如小应用程序、特技模型等))组成的各种各样浏览器型应用程序。这些设备包括浏览器、置顶盒等。
内容管理和保护系统(CMPS)每个Commerce Appliance包括一个或多个CMPS(例如CMPS2303)。CMPS能够对启用和应用规则和控制(包括使用规则和控制来管理受控内容的使用方式)作出反应。
CMPS 2302的特定功能包括(A)识别和解释规则。CMPS 2302必须确定哪项规则是将要施加的,而且必须确定根据现有的状态信息将怎样解释那些规则。在一个实施方案中,这需要CMPS 2302获得一个或多个与某项作品相关联的CMPO 2303并且将它们解密。
(B)识别与特定规则相关联的内容。CMPS 2302必须确定哪项内容受特定的一种或多种规则管理。这可以通过从一个或多个CMPO 2303和/或其它CI获取信息得以完成。在一个实施方案中,CCMPO可以识别一组作品,MCMPO可以识别特定的作品,而CMPO可以识别特定的ES或Auclio Visual Object(AVO)。
(C)在得到规则允许时将内容解密。CMPS 2302可以这样设计,以使所有的内容在再次插入为相关的标准所需要的数据流之前都通过CMPS确定用于解密的路由。例如,在MPEG-4的情况下,Demux 2305的输出可以被送入CMPS 2302。然后,CMPS 2302可以将内容解密,如果相关的规则和控制得到满足,则将该内容送入MPEG-4缓冲器。从此,与该内容相关联的数据流可以作为MPEG-4所描述的数据流。
(D)根据规则控制内容。CMPS 2302可以在最初的解密之后被用于控制内容的使用,例如,通过使用在被结合的Ginter 333专利申请中所描述的安全的事件管理。在MPEG-4系统的情况下,这可能需要CMPS2302对完成下述功能的硬件和/或软件实施控制,其中所述功能包括多路分用(由Demux完成);解压缩/缓冲/解码成AVO(由Scene DescriptorGraph 2306、AVO Decode 2307和Object Descriptors2308完成);场景传递(在Composite and Render2309完成)。CMPS 2302还可以被用于控制使用和后果,其中将按照(1)代与代之间的拷贝保护规则(例如CGMS和/或SGMS标准);(2)各种Conditional Access控制方法(例如,在MPEG-4文件M2959、DAVIC“Copyright Control Framework”文件和其它出版物中所描述的由NDS建议和/或实现的那些方法);(3)Rights Management Language,例如在Ginter333专利申请中建议的和/或授权给Stefik等人的美国专利第5,638,443号所描述的那些语言;(4)象Blaze、Feigenbaum和Lacy所描述的那样,按照AT&T的Policy Maker描述的使用政策;(5)由DVD Copy Protection TechnicalWorking Group的DTDG小组规定的和/或通过Hitachi、Inter、Matsushita、Sony和Tochiba公司建议的标准(下文中称之为“五公司建议”)实现的用于IEEE 1394串行总线传输的CCI层位;(6)利用任何保密箱技术(例如,IBM Cryptolope)传送的控制;(7)任何规定使用规则和后果的其它手段。
(E)监视内容的使用。CMPS 2302可以被用于监视内容,以便(1)保证规则得到遵守;(2)保证当前没有试图窜改该系统或受保护内容;(3)记录按规则使用的信息,包括就付款而言所需要的使用信息。
(F)更新用户预算。CMPS 2302可以被用于更新用户或其它人的预算以反映使用情况。
(G)流出信息(exhaust information)。CMPS 2302可以被用于把付款信息和使用信息(“流出信息”)输出到外部过程,包括一个或多个Commerce UtilitySystems。
(H)硬件识别和配置。
(I)通过外部处理获得新的、补充的和/或增添的规则,其中一个非限制性实例是在被结合的Shear专利申请中所描述的“Right and PermissionClearinghouse”。
(J)接收来自认证管理机构、调度经理、清算所和/或其它委托基础设施服务的密钥、数字凭证(如证书)和/或管理信息。
(K)安全地发送和/或接收用户和/或器具仿形和/或属性信息。
(L)安全地识别请求使用内容和/或CMPO和/或CMPS的用户和/或一类用户的成员。
(M)安全地验证或保证申请代码的可靠性,例如,在CMPO2301和/或CMPS2302内验证包含规则和/或其它申请信息(例如,用Java代码编写的以便在Commerce Appliance内条件执行的信息)的和/或至少部分地在CMPO 2301和/或CMPS 2302外面执行的申请代码尚未被更改和/或已被承保方(例如受托方)递交。
(N)象被所结合的Ginter333专利申请所描述的那样,安全地处理被单独递交的CI,以便完成在商务价值链中保护两个以上独立方的权益的内容使用控制。
(O)安全地完成添加水印(例如,包括添加指纹)的功能,例如象在这里被结合的Ginter333专利申请中所描述的那样,例如包括解释水印信息以控制内容的使用和/或发布事件消息,其中这样的事件消息可以报告回到远程管理机构,例如MCMPO权限清算所的管理位置。
CMPS 2302可以被用于识别和记录Commerce Appliance和任何被连接的设备的当前硬件配置(例如,哪个扬声器可利用的,并联监视器的识别,包括特定监视器是否有数字输出口等)。如果附属设备(例如扬声器)也包括CMPS,那么该CMPS可以被用于实现协调目的的通信(例如,在置顶盒中的CMPS和/或扬声器装置可以与下游数字电视或其它显示设备中的CMPS通信,以便确定哪个CMPS将通过虚拟权限处理对协同管理的管理或性质是负责,其中所述处理可选地涉及权限管理机构服务器,该服务器可以寻找、定位、提供、集聚、分配和/或管理权限处理,例如上述的Shear专利申请所描述的,例如,为了把两个以上CMPS用到一个用户的内容处理和使用设备上)。
本发明包括在一个或多个用户位置上组成两个以上CommerceApplianc和/或CMPS的配置,其中非限制性实例包括至少可以不时地相互通信并且可以组成为了保证最佳的商业灵活性和效率以及商务价值链参与者的权限的实施(其中包括提供者经济和版权上的权益、器具提供者的基本权益、政府和/或社会团体的社会权益和包括消费者在内的各方的隐私权)至少部分地通过这些CMPS的运用以逻辑上协作的方式运行的虚拟网络的家庭、公寓、阁楼、办公室和/或运载工具,例如汽车、卡车、运动型实用车辆、小艇、船舶或飞机。在价值链参与者的这种网络当中与相互作用有关的信息(包括内容的使用审计、内容的使用后果和CI的技术规范)可以至少部分地通过这些CMPS的运用被安全且易变地报告给有权获得这种信息的各方,例如,在有关VDE节点的信息报告功能的上述的Ginter的712号专利申请中所介绍的。
在一个实施方案中,如图24所示,CMPS 2401由专用硬件和常驻软件即固件组成。这些包括(A)一个或多个处理器或微控制器,例如CPU 2402。CPU2402控制CMPS 2401的全部处理,包括执行任何必要的软件。
(B)一个或多个外部通信口,例如Port 2403。Port 2403与外部网络2404通信,该网络可以包括LAN、WAN或分布式网络(如因特网)。外部通信口还可以包括一个或多个IEEE 1394串行总线接口。
(C)Memotry 2405。可以用于存储器2405所包括的存储器类型以及它们可储存的信息实例如下(I)ROM 2406。ROM 2406可以包括任何永久储存在CMPS 2401中的信息,例如,(1)CMPS操作系统2407和/或CMPS BIOS 2408;(2)永久地储存在CMPS中的Rule/Controls2409;(3)可以用于建立规则或控制的ControlPrimitives 2410;(4)与该CMPS相关联的Key 2411,包括Public/Private Key Pair;(5)一个或多个为了识别CMPS2401和/或该设备而设计的包括版本信息的Certificates 2412;(6)用于检查干扰的Hardware SignatureInformation 2413(例如,反映该设备被期望的硬件状态的散列签名)。
(II)RAM 2414。RAM 2414可以保存CMPS 2401所需要的当前状态信息以及为了随后使用CMPS 2401临时储存的信息。RAM 2414中储存的信息可以包括(1)当前在CPU 2402中执行的Sofrware 2415;(2)当前活动的诸CMPO 2416;(3)那些当前活动的内容对象的Object Identification 2417,(例如,在MPEG-4系统中这将构成诸活动的AVO的标识);(4)当前活动的各项Rule 2418;(5)关于当前内容使用状态的StateInformation 2419,包括任何较高级组织的标识(在MPEG-4系统中这将构成场景描述符树和当前合成与传递状态的标识);(6)为外部传输设计的有关使用和/或用户的StoredExhaust Information 2420;(7)Update BudgetInformation 2421;(8)Content 2422;(9)Active Content Class Information 2423;以及(10)Active User Identification 2424,包括标识特征信息。
(III)NVRAM 2425(例如,快速存储器)。这种类型的存储器可以保存持续但可变更的信息,其中至少包括(1)Budget Information2426;(2)User Information 2427,例如标识、信用卡号码;优选的清算所和其它Commerce Utility System;(3)UserPreferences 2428,例如,偏好、提问档和/或属性信息;(4)Appliance Information 2429,例如归属和/或状态信息。
上述储存在CMPS Mamory 2405中的各种类型的信息可以用上述类型的存储器的替代者来储存,例如,某些预算信息可以放在ROM中,关于特定的一个或多个清算所的信息可以储存在ROM中,某些活动的信息可以被移到NVRAM中,等等。
预算信息可以包括被储存的预算,例如,该预算包括(1)电子货币;(2)预先授权的使用(例如,根据预付款用户有权看12小时的节目);(3)涉及反映异常的和/或未授权使用的模式的担保预算,例如,在被结合的Shear专利中所描述的,其中这种预算禁止和/或报告某种累计的使用行为;(4)电子信贷,包括来源于使用事件的信贷,诸如关注促销材料和/或播放来自一个或多个作品类别的多种作品(例如某个出版商的工作)而激发的信贷或现金偿付事件和/或今后播放这个出版商的一项或多项作品(例如这个出版商提供的其它作品)时的折扣。
就一个或多个被授权的CommerceAppliance用户而言,用户信息可以包括下述类型的信息(1)姓名、地址、电话号码、社会保障体系号码或其它标识符;(2)用于鉴别该用户的信息,这种信息可以包括用户选定的口令和/或生物测量学数据,诸如指纹、视网膜数据等;(3)用户的公开的/私人的密钥对;(4)用户的属性和/或提问档信息。
(IV)Removable Memory 2430。这可以包括任何类型的可拆装的存储设备,例如灵通卡、软盘或DVD盘。如果Commerce Appliance被设计来显示在可拆装存储设备上接收的内容(如-DVD播放器),该项能力即可被用于CMPS。
Memory 2405可以包括受保护的数据库,其中某些控制、预算、审计、担保和/或密码信息被储存在安全存储器中,而整体信息以加密形式储存在不保密的存储器中。
(D)Encryption/Decryption Engine 2431。CMPS 2401必须包括为收到的信息(包括内容和诸CMPO和/或其它信息)解密的设施。CMPS 2401还可以包括如果要将信息传输出CMPS 2401的安全边界之外对这样的信息加密的设施。这可以包括被传送到清算所或其它外部的存储库的流出信息和通过不保密的总线传送的供使用的内容(例如,在IEEE1394 Serial Bus 2432上发送给计算机中心处理装置或观看设备(如监视器)的内容),其中负责接收的CMPS可以被用于控制这个内容的使用,例如,包括在适当的时候给这个内容解密。Encryption/Decryption Engine2431可以包括用于形成可用来识别和保证CMPS的唯一性并支持打开在这种保密内容控制安全加密/解密装置之间的保密通信信道的打开的密钥或密钥对的Random NumberGenerator 2433。
(E)Secure Clock/Calendar 2434。CMPS 2401可以包括为了提供关于每天日期和时钟时间的绝对信息、关于逝去的绝对时间的信息和/或用于确定该系统完成操作所消耗的时间的相对计时信息而设计的SecureClock/Calendar 2434。Secure Clock/Calendar 2434可以包括Battery Back Up 2435。它可以进一步包括与外部计时信息同步的Sync Mechanism 2436,用于恢复电源丧失事件中的正确时间和/或检查干预。
(F)对用于内容传递和显示的模块的Interface 2437。这个接口被用于根据规则控制传递和显示、获取可用于预算目的或向外部服务器提供信息的反馈信息(例如,关于实际显示哪种内容的信息、关于用户曾调用哪种选择的信息等)。在图23展示的MPEG-4播放器的情况下,这可以包括对Commerce Applicance电路系统的控制,例如,它负责处理缓冲、场景描述符图、AVO解码、对象描述符以及合成与传递(例Control Line2310、2311和2312)。
来自Composite and Render Block 2309的Feedback Path 2313可以允许CMPS2302确定内容是否已实际被释放以及何时释放给观众。例如,Composite and Render Block 2309在AVO对象被释放以便观看时可以把一个启动事件发送给CMPS 2302,而在不再看该AVO对象时可以把一个停止事件发送给CMPS 2302。
来自Composite and Render Block 2309的反馈还可以用于通过允许CMPS 2302将实际释放出来以供观看的对象的标识与被授权释放的对象的标识相校量来直接检测干状。起始和结束时间也可以与期望的流逝时间进行比较,不相符可能表明发生了未授权的事件。
在一个实施方案中,下述约定可以被用于反馈数据
start<id>,T,<instance number><clock time><rendering option>
如果在SD图中基本信息流<id>在时刻T而不是在时刻T-1是可达的即被发送。
end<id>,T,<instance number><clock time><rendering option>T构成表示时间,clock time构成壁钟时间,包括双历信息,而rendering option可以包括象QoS和播放速度(例如,快速前进)那样的信息。
如果在SD图中基本信息流<id>在时刻T-1而不是在时刻T是可达的则被发送。如果在为了显示更新遍历SD图期间传递模块遇到SD图更新信息流<id>形成或修改的节点,那么SD图信息流即是可达的。这意味着树中所有节点都需要一份更新史一览表。这种一览表不需要与数据流的数目一样多。进而,它可以为表明该CMPS是否将注视着信息流而被加上标记,如果没有标记,它将不记录它们。如果AV基本信息流的内容被传递,那么该信息流就是可达的。
就SD图更新数据流而言,对象事例号码是被忽略的。就AV信息流而言,事例号码可以被用于使显示器同时显示同一数据流的两个或多个事例的情况意义分明。事例号码不必统计。在这种情况下,它们仅仅是允许CMPS将起始事件与结束事件相匹配的唯一的ID。
在第二实施方案中,CMPS 2302可以包括一些与同时供该设备的其它功能使用的通用硬件结合的专用硬件。在这个实施方案中,必须保证不管是否使用通用硬件都将以安全的抗干扰的方式实现CMPS的商业信托功能。上述的每个要素都可以包括专用的CMPS功能和通用的设备功能
(A)CPU/微控制器。这可以包括一个或多个器件。如果包括不止一个器件(例如,CPU和DSP、数学协处理器或商务协处理器),那么这些器件可以被包括在同一个可以被抗干扰地传递的数据包内,或者这些器件可以在安全总线上通信。CPU可以包括两种模式保密的CMPS模式和不保密的通用模式。保密的CMPS模式可以允许确定在通用模式中对于该处理器不可利用的安全内存位置的地址。这是可以实现的,例如,通过电路系统重新映射一部分可利用的存储器空间,以使CPU在不保密的模式中不能确定安全内存位置的地址。
(B)外部通信口。如果设备(例如Commerce Appliance)能够通过通信口(例如,电缆连接、因特网连接)接收内容或其它信息,那么这个通信口可能是供CMPS使用的。在这种情况下,CMPS对外部通信口的访问优选地设计为避免在接收内容时干扰这种口的使用或使这种干扰最小而设计。
(C)存储器。在某些应用和实施方案中,有可能在没有NVRAM的情况下操作Commerce Appliance,其中将为本要使用NVRAM的CMPS操作可能需要的信息按需要装载进RAM。ROM、RAM和NVRAM可以是在CMPS用途与一般用途之间共享的。这可以通过下述的任何途径或这些途径的组合得以实现(1)某些存储器空间可以被划为一般用途的禁区,例如通过重新映射;(2)整个存储器可能都是保密的,以致只要不采用保密的和被批准的方式即使该存储器中的部分被用于非保密的目的也不能被观察或改变;(3)可以以加密方式储存CMPS信息,尽管这要求至少一部分RAM是保密的,因为该CMPS将要求直接访问储存在RAM中的未加密的信息。
(D)加密/解密引擎。加密和解密功能(包括生成密钥)可以通过在通用处理器装置(具体地说,例如浮点处理器或DSP装置)上运行的专用软件进行处理。那个处理器装置还可以被用于解压缩和显示内容的目的,和/或被用于处理水印/指纹的插入和/或读出。另外,该设备还可以包括本机的加密和解密功能。例如,各种新兴的标准可能至少要求,对被设计是为要在设备(例如DVD播放器)之内和之间的非保密总线上传输的内容某种程度的加密和解密,例如“五公司建议(fivecompany proposal)”和与发端相关的其它IEEE 1394。为完成这样的加密和解密而设计的电路系统对于CMPS应用程序也可能是有用的。
(E)安全时钟/日历。基础设备可能早已要求至少一些时钟信息。例如,MPEG-4要求把时钟信息用于ElemenlaryStreams的同步。安全的CMPS时钟也可以用于这样的目的。
在第三实施方案中,CMPS 2302可能主要是为了在通用设备上运行而设计的软件,该软件可以包括某些与最低限度的安全性有关的特征。在这种情况下,CMPS 2302可以用与内容相同的信道接收,或者用边频带信道接收。I-CMPO和/或其它的CI可以规定Commerce Appliance 2301必须具有或获得(例如从I-CMPO所规定的位置下载)的特定类型的CMPS,或者CMPS 2302可以被包括在内,例如带有I-CMPO。
软件CMPS在Commerce Appliance的CPU上运行。这种途径的安全性可能固有地低于使用专用硬件。如果Commerce Appliance包括安全硬件,软件CMPS则可以构成为特定类型的商务应用程序定制硬件的可下载的OS和/或BIOS。
在一个实施方案中,软件CMPS可以使用一种或多种能够使软件显著“硬化”的软件抗干扰措施。这些措施包括软件模糊化技术,这类技术利用算法手段使反向工程某些或全部CMPS变得非常困难,进而使通过逆向操纵给定的一个或多个CMPS的反向工程难以得出结论。这种模糊化最好独立于源代码而目标代码可以对于不同的CMPS和不同平台是不同的,从而进一步增加作用的复杂性和分离。这种模糊化可以“独立地”用于两者,即CI(例如CMPO)和CMPS本身的一部分或全部,从而使处理环境和用于处理的可执行程序两者变得难以理解。这种方法还可以被应用于上述的将软件和硬件集成在一起实现CMPS的装置。其它抗干扰措施也可以使用,其中包括使用“藏身地”把某些状态信息储存在隐秘的出乎意料的位置(例如在用于其它目的的NV存储器中的某些位置)和使用数据隐匿技术(例如作水印/指纹)。
CMPS与Commerce Appliance的联系CMPS可能被持久地被安装在特定的设备上,也可能是部分地或全部地可拆装的。可拆装的CMPS可以包括被安全地转载进Commerce Appliance的软件和/或可拆装的硬件。可拆装的CMPS可以体现到一个或多个特定用户,包括用户密钥、预算信息、偏好等,借此在不混淆预算和/或其它权限等的情况下允许不同的用户使用同一Commerce Appliance。
CMPS可以是为了与某些类型的内容一起运行和/或为了与某些类型的商务模型一起运行而设计的。Commerce Appliance可以包括多种类型的CMPS。例如,为了接收和显示遵从不同标准的内容而设计的Commerce Appliance可以为每种类型的格式包括一个CMPS。此外,Commerce Appliance可以包括由特定的供应商提供为优先显示某些类型的内容和为通过特定的信道优先给这种内容记帐(例如,对一种或多种特定的信用卡记帐和/或使用特定的一个或多个清算所)而设计的CMPS。
规则的来源CMPS必须辨别那些将被应用于特定内容的规则。这样的规则可以依据所用的特定的实施方案通过CMPS收自不同的来源(A)CMPO。这些规则可以被包括在CMPO(例如,CMPO2303)和/或其它CI之内。该CMPO和/或其它CI可以被包括在内容对象或数据流之内(例如,关于MPEG-4 ES的标题),和/或可以被结合在根据基础标准(例如,MPEG-4 CMPO ES)编码和接收的专用内容对象或信息流之内,和/或可以是在正常的内容信息流之外收到的,在该事件中它可能不是按照基础标准编码的(例如,作为加密的对象通过边频带收到的CMPS)。
(B)CMPS。这些规则可以被持久地或持续地储存在CMPS之内,例如Rule 2409。CMPS可以包括为处理某些情况(例如没有收到CMPO和/或其它必要的CI(例如,在未结合CMPO的早期版本标准(包括第一个MPEG-4版本)下编码的内容))而设计的默认规则。储存在CMPS之内的完整的规则可以被CMPO或其它CI直接或间接调用。这可能是由于CI通过某个指针符识别一些特定的规则而发生的,和/或由于CI识别它自己和它需要的控制的一般类别而发生的,随后该CMPS将应用专门针对那个CMPS的特定的规则。规则“基元”也可以储存在CMPS之内(例如,ControlPrimitives 2410)。CMPO和/或其它CI可以通过包括一个宏指令型命令序列来调用这些基元,其中每个命令触发一个CMPS基元序列。
(C)用户。用户可以获得生成与特定用户的偏好有关的规则的能力。这样的规则通常将得到允许进一步限制内容的使用,但不把内容的使用扩展到将否则会允许的范围之外。实例包括(a)为了要求某些类型的内容(例如,成年人电影)仅仅在键入口令之后和/或仅对某些CMPS用户(例如,成年人、儿童不宜,例如父母和/或社会团体(例如官方机构)规定的儿童不宜)才可以访问而设计的规则;(b)为了要求只有特定的用户被允许调用要求付款超过某个限制和/或累计付款超过某个数量的操作而设计的规则。
用户可以得到允许建立诸规则的模板,就象在上述的Ginter的333号专利申请中介绍的那样在此被加以结合。此外,CMPS装置(和/或特定的CMPO和/或其它CI)可以限制允许用户规定的规则。例如,CI可以规定用户可以拷贝某项作品但不能对该工作添加某些规则限制接收人追加拷贝的能力(或者可以看但对于基本用户只能在付款之后)。用户补充的一项或多项规则可以管理付款、审计、提问档、偏好和/或任何其它种类(包括涉及隐私限制的)信息的使用(例如,作为使用CMPS装置(例如,包括保密内容的使用)的后果而产生的信息)。这种用户补充的一项或多项规则可能与用户和/或在用户装置中的一个或多个Commerce Appliances是相关联的,无论该信息是否是按照一种或多种判据聚集的,也无论用户和/或器具的标识信息在汇集和/或随后的报告、分配、或任何其它种类的使用期间是否被清除。
允许用户制定规则的能力允许CMPS归类(并借此取代)V-芯片,因为双亲可以使用内容评价信息精确地规定每个观众将被允许观看什么类型的信息(例如,暴力内容只能在键入一定加口令和/或其它标识符(包括插入用户拥有的可拆装的硬件卡(灵通卡或权限卡)))之后才被显示。
(D)外部网络源。规则可以储存在外部服务器上。如果有必要,CMPS可以确定规则的地址并下载(例如,CMPO和/或其它CI和/或CMPS都包含某些规则所在位置的指针,例如一个或多个URL)。此外,内容供应商和/或清算所可以广播为一般适用范围设计的规则。例如,内容供应商或许把一套提供折扣的规则广播给参与推销活动的任何用户(例如,通过提供某种用户信息)。这样的规则可能被所有被连接的设备接收,可能被内容供应商感性趣而识别的某些设备接收(例如最近收看某个特定节目的全体观众,这是通过CMPS提供给清算所和/或具有某种身份特征的全体成员(例如,是一个或多个类别的成员)的流出信息识别的)和/或可能在中心位置被公布。
示范实施方案在一个实施方案中,一套MPEG-4 Elementary Stream可以构成一项作品。诸Elementary Stream可以是加密的并一起被多路复用以形成聚集信息流。一个或多个CMPO可以存在于这样的信息流中,或者可以与该数据流相关联。选项如下
1.内容可以被作成信息流的,或者可以是作为静态数据结构接收的。
2.Work可以由单一的信息流或数据结构组成,或者由许多可分开编址的信息流或数据结构组成,其中每个信息流或数据结构可以构成一个Object。
3.如果Work是由可分开编址的信息流或数据结构组成的,那些信息流或数据结构可以被多路复用一起形成Aggregate Stream,或者可以被单独接收。
4.如果信息流或数据结构被多路复用一起形成AggregateStream,那么这些信息流或数据结构可以在多路复用之前被加密。Aggregate Stream本身可以是加密的,无论基础信息流或数据结构是否是加密的。所以,存在下述的可能性(A)各个信息流/数据结构是不加密的(明文),Aggregate Stream也是不加密的;(B)各个信息流/数据结构在多路复用之前是不加密的,而AggregateStream在多路复用之后是加密的;(C)各个信息流/数据结构在多路复用之前是加密的,而Aggregate Stream在多路复用之后是不加密的;或者(D)各个信息流/数据结构在多路复用之前是加密的,而Aggregate Stream在多路复用之后也是加密的。
5.CMPO可以与信道(CCMPO)、作品(MCMPO)或各个别对象(CMPO)相关联。
6.CMPO可以在受控数据之前被接收,可以与该数据同时被接收,或者可以在该数据之后被接收(在该事件中使用该数据必须等到收到CMPO之后)。
7.CMPO既可以作为Aggregate Stream的一部分被接收,也可以被单独接收。
8.如果CMPO作为Aggregate Stream的一部分被接收,那么它可以与各个别信息流或数据结构一起被多路复用,或者可以构成一个独立的信息流或数据结构。
9.如果CMPO在Aggregate Stream内被多路复用,那么它可以是加密的或者是未加密的。如果是加密的,它可以是在多路复用之前加密的,和/或在多路复用之后加密的,如果整个AggregateStream都被加密的话。
10.如果CMPO是作为Aggregate Stream的一部分被接收的,那么它可以是(A)保存内容(例如标题)的信息流或数据结构的一部分;(B)按照与保存内容的信息流或数据结构(例如,MPEG-4ES)相同的格式编码的独立的信息流或数据结构;或者(C)按为CMPO设计的不同格式编码的独立的信息流或数据结构。
11.如果CMPO是作为保存内容的信息流或数据结构的一部分被接收的,它可以是(A)一旦被接收就被持久保存用来控制该内容的标题;(B)在该信息流或数据结构内按规律间隔接收的标题;或(C)分布在整个信息流或数据结构上的数据。
这些各不相同的情况对CMPO的多路分用和解密产生不同的要求。图25图解说明下述实施方案1.Aggregate Stream是由多路复用的诸ES(例如ES2502和2503)组成的。这些ES合并组成一作品。Aggregate Stream 2501是通过电缆聚集器生成的并由作为众多信道之一的用户置顶盒接收的。
2.对应于每个信道的诸CCMPO 2504沿着该电缆在Header2505中被定期地发送(例如每秒一次)。在置顶盒被接通时,它查询每个信道并且下载当前所有的CCMPO。这些CCMPO被持久保存并且仅仅在收到不同于以前的CCMPO的新CCMPO时才被更改。
3.当用户选择某个信道时,置顶盒确定相关的CCMPO的地址。例如,该CCMPO可以规定这个特定信道中的内容只能被该信道的订户访问。置顶盒内的CMPS访问永久地储存在NVRAM中的用户提问档并且确定该用户是一个订户。CMPS认为CCMPO规则已被满足。
4.CMPS获得用于与当前正在该信道上作信息流传输的作品(视频信号)相关的MCMPO的标识符和用于该MCMPO的密钥。如果作品是在该信道(例如,一次提供一项作品的电视信道)上串行地接收的,所接收的MCMPO识别符可能包括有不比关心位以使得它能寻址当前信道上的任一MCMPO。
5.该CMPS开始多路分用Aggregate Stream 2501(这可以与前项步骤平行地发生)并且获取通过编码成为在Aggregate Stream内被多路复用的ES的MCMPO(例如,MCMPO 2506)。虽然每个ES在Aggregate Stream 2501内都已被加密,但是Aggregate Stream2501在多路复用之后不是加密的。这允许该CMPS多路分用Aggregate Stream 2501,而不需要将整个Aggregate Stream解密。
6.该CMPS识别构成该MCMPO的ES(例如,ES 2503)。该CMPS把MCMPO 2506的一个完整的范例下载到内部的缓冲区并且用收自CCMPO2504的密钥将MCMPO2506解密。
7.该CMPS确定哪个规则是被MCMPO 2506施加的。例如,MCMPO或许包括一条规则说明用户可以少花钱看带广告的相关的工作,但是要看不带广告的工作必须支付较高的费用。
8.该CMPS产生一个选项菜单并且把那个菜单显示在用户的荧光屏上。该菜单规定一些选项,包括用于每个非项的费用。可以规定追加选项,包括付款类型。
9.用户使用指向设备的远程控制选择以较低的费用观看带广告的工作。用户规定费用可以由储存在CMPS中的电子现金预算支付。
10.CMPS从永久储存在NVRAM中的预算中减去规定的数额并且产生一个给与该电缆相关的服务器的消息并且给该消息加密。该消息把需要的预算转移到该服务器,通过转移电子货币或通过授权财务清算所把该总额从用户的帐户转移到电缆供应商的帐户。这个消息可以立即发送,也可以被缓冲,以便以后发送(例如,在用户把设备连接到因特网上时)。这个步骤可以与内容的解密同时进行。
11.CMPS从MCMPO 2506获取一套用于给与该作品相关的Elementary Streams(例如ES 2502)解密的密钥。该CMPS还获得即将使用的各个特定的ES的标识符。由于用户业已指出广告将被包括在内,所以MCMPO识别与广告相关的诸ES并且识别包括广告的Scene Descriptor Graph。不包括广告的Scene Descriptor Graph不被识别,也不被该CMPS传送。
12.该CMPS把解密的诸ES传送给MPEG-4缓冲区。然后,发生MPEG-4解码、合成和传递的正常处理。Composite and Render模块输出每个释放出来以供观看的对象的Start and Stop事件。该CMPS监视这个信息并且把它与期望的事件进行比较。具体地说,该CMPS进一步证实广告已被释放以供观看,以及每个操作已近似地占用了期望的时间。
在另一个实施方案中,包含CMPS(例如,来自图23的CMPS2302)的置顶盒可以具有电缆输入(例如,传送M4 Bit Streams 2314和CMPO 2303)。电缆可以有多个信道,每个信道由两个子信道组成,一个子信道传送MPEG-4ES(例如,M4 Bit Streams 2314),而另一个子信道传送CMPO(例如,CMPO 2303)。传送CMPO 2303的子信道可能直接通往CMPS 2302,而ES信道通往解密模块(在CMPS控制下运行的,例如CR&D 2315),然后通往MPEG-4缓冲区(例如,与Scene Descriptor Graph 2306、AVO Decode 2307和Object Descriptors 2308相关联的各缓冲区)。在这种情况下,如果诸ES未被加密,它们通过解密模块进入缓冲区仍然保持不变。这是可能发生的,例如,如果正在免费播出诸ES而且没有任何限制,和/或它们是公用信息,和/或它们是在MPEG-4标准中包括CMPO之前形成的话。
这样的实施方案或许在CMPO子信道中包括定时同步信息,以致诸CMPO可以与相关的ES同步。
把两个分开的信息流(一个由控制信息组成并且直接与CMPS连接,而另一个由诸ES组成)合并的概念可以支持这样的高级模块化,以致CMPO的格式以及特定类型的CMPS可以在不改变基础ES格式的情况下得以改变。例如,改变CMPO的格式而不必重定内容ES的格式或许是可能的。以另一个实例为例,有可能通过包括一个新的或不同的CMPS使Commerce Appliance升级而不必对为多路分用、合成和传递内容ES而设计的任何电路系统作任何更改。用户可能得到一个在灵通卡或其它可拆装的设备上的CMPS,然后把那个设备插进Commerce Appliance。这样做可能是为了给特定的应用程序或特定的内容定制Commerce Appliance。
CMPS对CE器件的接口CMPS可以是为了在客户电子器件的通用功能与任何相关的CMPS和/或其它CI和受保护内容之间提供标准化的接口而设计的。例如,CMPS可能是为了接受CI和加密的ES和把解密的ES输出到设备的缓冲区而设计的。在这种情况下,该设备的制造商将能够按技术规范(例如,MPEG-4)设计器具中的器件,而无需顾及该标准有关商务的扩展,这种扩展或许因供应商不同而有所不同。所有这样的扩展都将由该CMPS处理。
初始化1.CMPS的初始化CMPS可以被用于识别内部装有CMPS的Commerce Appliance的容量。与特定的Commerce Appliance永久地相关的CMPS可以具有在最初安装该CMPS时专为它设计的信息(例如,储存在图24所示的ROM 2406中)。可拆装的CMPS可以被用于运行初始化操作,以便获得有关设备能力的信息。这种信息可以按储存在NVRAM中的数据结构储存。另外,每当设备启动时,这种信息的一部分或全部可以被集中储存在RAM 2414中。
例如,DVD播放器可以包含或不包含对外部服务器和/或处理的连接。储存在被插入DVD(或任何其它格式的光盘)播放器的DVD盘(或任何其它格式的光盘)上的CMPO和/或其它CI可以包括关于把信息输出给服务器的可能性的预测规则(例如,如果用户标识信息被输出,则内容是免费的),或者可以要求直接连接,例如为了下载用于将内容解密的密钥。在这种情况下,CMPS装置可以确定该CMPO所期望或需要的硬件功能性并且将它与实际存在的硬件进行比较。如果CMPS确定该CMPO或其它CI要求网络连接,而DVD播放器不包括这样的连接,那么该CMPS可以采取各种各样的步骤,包括(1)如果网络连接仅仅对于某些选项是需要的而其他的并不要,则仅把那些可能的选项显示给用户;(2)通知用户缺少必要的硬件;或者(3)引起得体地拒绝该磁盘,包括通知用户拒绝的原因。
以另一个实例为例,CMPO和/或其它CI可以包括允许用户在质量等级(或给定作品的其它变化形式,例如,更长的长度和/或更大的选择范围)当中进行选择的商务模型,其中如果用户选择比较高级的质量,就要负担比较高的费用(例如,可以以低清晰度免费播放音乐,但是要以比较高的清晰度播放就需要付款)。在这种情况下,该Commerce Appliance可能不包括那个以比较高的清晰度输出声音的扬声器。该CMPS装置优先识别这种形势,然后取消作为提供给用户的非必选项的高清晰度输出或者通知用户这个非必选项费用比较高但由于该Commerce Appliance当前的功能性或由于Commerce Appliance未在提供高质量扬声器的用户装置中该Commerce Appliance未被对接它将不提供更多的利益。
如果这个Commerce Appliance可以与外部设备(例如扬声器、显示器等)连接,该CMPS将需要一些识别和登记这样的设备的机制。每个可以被用于产生在任何时候都可利用的标准ID和能力信息,借此允许该CMPS定期地查询所有被连接的设备,例如,包括在一个或多个这样连接的设备内逐一鉴别CMPS装置。利用另一种途径,所有的设备可能在加上电源后都被用于输出CMPS标识信息,稍后连接的设备被用于建立连接时输出的这种信息。这种标识信息可以采取这样的形式,例如,按照“五公司配置(five companyarrangement)”提供的鉴别信息的形式,在此将这些鉴别方法结合作为参考。
象在前面讨论的那样,一个Commerce Appliance可以与多个设备连接,每个设备包含它自己的CMPS装置(例如,一台DVD播放器可以连接一台数字电视)。在这种情况下,诸CMPS必须能够启动安全通信(例如,使用类似于用于IEEE 1394串行总线的“五公司建议”那样的方案)和确定在诸CMPS之间的内容通信方面并在某些实施方案中考虑这样的内容的协作管理(如在所结合的Shear的专利申请中介绍的)时诸CMPS将怎样交互作用。在一个实施方案中,待接收内容的第一CMPS装置可通过下载最初的CMPO和/或其它CI来管理该控制过程,并且把一项或多项规则显示给用户。第二CMPS装置可能判明无论是鉴于两个CMPS装置之间通信还是由于第一CMPS装置它为内容解密,并可能已使得能进行多路分用,组合和传递等所产生的内容信息流的变化结果它都没有进一步的任务要处置。
如果一台设备处理MPEG-4传递的某些方面,而其它设备处理其它方面,那么上游的CMPS装置与下游的CMPS装置之间的关系或许是错综复杂的。例如,DVD播放器可能处理多路分用和缓冲,把诸原始ES转移到数字电视,然后,该数字电视处理合成和传递,以及显示。在这种情况下,或许没有从合成传递模块到上游的CMPS装置的反向信道。诸CMPS装置优选地为了处理孤立案例(一种DVD(或任何其它光盘)播放器,其中CMPS装置被连接在没有CMPS的无声电视上)、为了其中一个CMPS装置控制全部处理的多重CMPS装置案例(一种DVD(或任何其它光盘)播放器,该播放器通过合成和传递处理每件事情并且把视频信息流输出给数字电视(在一个非限制性实例中,借助IEEE 1349串行总线)(那个输出信息流将根据“五公司建议”加密,以防止利用IEEE 1394串行总线传输进行拷贝))和/或为了在与一些或(在某些案例中)全部这样的处理有关的两个或多个CMPS装置之间共用处理而设计的装置。
2.特定的内容信息流的初始化CMPS可以这样设计,以致它能够接受使该CMPS针对特定的内容信息流或信道初始化的初始化信息。这个可能是CMPO和/或其它CI的标题可以包括被CMPS用来确定特定的内容信息流以及与那个信息流相关的CI的位置和/或解释它们的信息。这个最初的标题可以通过边频带信道被接收,或者作为CIES(如CMPO ES)被接收。
在一个如图26所示的实例中,Header CMPO 2601可以包括下述信息(A)数据流/对象/CMPO ID 2601,它识别受Header CMPO2601和/或与每个这样的内容信息流或对象相关的CMPO的标识管理的内容信息流/对象。
在一个实施方案中,Header CMPO 2601识别其它包含与特定的内容信息流相关的规则和密钥的CMPO。在另一个实施方案中,Header CMPO 2601通过结合与这样的信息流相关的密钥和规则直接控制所有的内容信息流。在后一种情况中,可能不使用其它的CMPO。
在一个实施方案中,Header CMPO 2601可以是一个或多个CMPO、CCMPO、MCMPO和/或其它CI。
(B)用于给每个被识别的CMPO解密的一个或多个CMPOKey 2603。
(C)Work-Level Control 2604,它由与作为一个整体的那项作品相关的基本控制信息组成并因此潜在地可应用于构成该作品的所有内容信息流。这个基本控制信息可以包括把该作品作为一个整体进行管理的各种规则,包括将要提供给用户的各种选项。
(D)在这个实施方案的一个实施例中,标题CMPO可能是可更新的,以便包含关于当前被授权使用某种内容的特定的用户或站点的User/Site Information 2605以及用于批准用户具有这种授权的一种或多种规则。与当前正在观看的作品相关的标题CMPO可能被储存在RAM或NVRAM中。这可以包括被更新的信息。在一个实施方案中,该CMPO还可以储存以前观看过的某些作品的标题CMPO。
在一个实施方案中,标题CMPO可以储存在不保密的存储器中,而信息足以识别和鉴别每个标题CMPO尚未被改变。
在这个实施方案的一个这样的标题CMPO实施例中,标题CMPO的操作如下(A)标题CMPO被CMPS装置接收。在以前不曾收到的内容现在业已变得可用的情况下,该标题CMPO可以在输入口接收。在内容已经可用但当前并未使用的情况(例如,一个有500个信道的置顶盒,其中在任何给定的时刻都正在显示0或1),用于每个信道的CCMPO可以通过在用户调用特定内容时可能使用的CMPS得以缓冲(例如,切换到某个特定信道)。
在两种情况中的任何一种情况下,该标题CMPO都必须包括允许CMPS装置把它识别为标题CMPO的信息。
(B)该CMPS获得用明文保存在标题CMPO中的商务模型信息。举例说,商务模型信息可以包括一个如果包括广告对可以免费观看内容的语句,或者如果用户认可Nielson型信息、用户和/或观众测量信息,内容可以被输出到服务器或被拷贝一次,但仅仅在很大的代价时。
(C)如果用户授权CMPS装置接受某种类型的商务模型(例如,用户业已给CMPS装置编程允许接受带广告的免费播放),该CMPS装置将接受该商务模型,如果用户业已指令总要拒绝该特定的模型,该CMPS装置就拒绝该商务模型;或者,向用户显示该商务模型(例如,通过在荧屏上提交选项)。
(D)如果一商务模型已被接受,该CMPS装置则将标题CMPO中剩余部分解密。如果该Commerce Appliance包含有效地输出给外部服务器的连接(例如,因特网连接、置顶盒上的反向信道等)而且如果待时问题也得到处理,那么这些密钥的解密可以通过与外部服务器通信、双方彼此相互确认、建立安全信道和接收来自服务器的密钥得到处理。如果该Commerce Appliance不是至少不时地被连接到外部服务器上,则可能不得不根据储存在CommerceAppliance中的一个或多个密钥完成解密。
(E)一旦标题CMPO已被解密,该CMPS装置就获得了用于识别包含该内容的数据流并将其定位的信息以及用于给与该内容相关的CMPO解密或给该内容本身解密的密钥。
(F)在这个标题实施方案的一个实施例中,标题CMPO可以包含用于CMPS装置添加的信息的储存的数据结构。这样的信息可以包括(1)用户和/或Commerce Appliance和/或CMPS装置的标识。在这个实施方案中,这样的信息可以储存在标题CMPO中,以便在转移该作品(包括标题CMPO)的事件中提供检查追踪(这仅仅在以可写入形式转移标题CMPO时才起作用)。这样的信息可以用于允许用户把该作品转移到该用户所拥有的其它Commerce Appliance上,如果这样的转移得到与该标题CMPO相关的规则信息的允许,则不必支付额外的开支。例如,用户可以预订用户预先付款的特定的有线服务。当CMPS装置通过那项有线服务下载标题CMPO时,该CMPS装置可以把用户的标识储存在该标题CMPO中。然后,该CMPS装置可能要求在拷贝或转移该内容时包括被更新的标题CMPO。该标题CMPO可能包括一项规则说明一旦用户信息被填入,相关的内容就可以仅仅被那个用户和/或那个用户相关的CommerceAppliance观看。这将允许该用户对那项规则进行多次拷贝和在多个Commerce Appliance上显示该作品,但是那些拷贝不能被未核准的用户和/或在未核准的Commerce Appliance上显示或使用。标题CMPO还或许包括一项规则说明用户信息只能由被核准的用户更改(例如,如果用户1把该作品转移给用户2,用户2的CMPS装置可以更新在标题CMPO中的该用户信息,借此允许用户2观看该作品,但是只有在用户2也是该有线信道的订户时才可以)。
(2)管理使用的特定规则选项的标识。被包括在诸标题CMPO中的数套规则可以包括非必选项。在某些情况下,特定的非必选项的运用可能防碍以后运用不同的选项。例如,或许要用户选择付一种价钱观看未变更的作品,或付更高的价钱更改某项作品和观看更改后的作品。一旦用户决定更改该作品和观看更改后的作品,这个选择就被优选储存在该标题CMPO中,此后以较低的价钱观看未经更改的原始作品的选项已不再可利用。该用户可能已经进一步获得该权力,或者现在可得到适合该权力的选项,来进一步以费用加价的方式分配该经更改的作品,从而导致第三方的派生收入和使用信息流向该用户和原始的作品的利益获取者。
(3)历史使用信息。标题CMPO可以包括关于使用的数量和类型的信息。例如,如果基础作品被拷贝,该标题CMPO可以被更新,以反映已进行拷贝这一事实,因为与该作品相关的规则或许仅允许一份拷贝(例如,为了备份和/或时间迁移的目的)。以另一个实例为例,用户或许获得了观看一次或一定次数某项作品的权力。于是,标题CMPO将被更新,以便反映每次这样的使用。
使用信息可以用于确定追加使用是否得到与标题CMPO相关的规则的批准。这样的信息还可以用于审计目的。这样的信息还可以作为使用信息流出报告给外部服务器。例如,一项规则可以规定某项作品可以免费观看,但仅仅在历史使用信息被下载到服务器才可以。
内容管理和保护对象(CMPO)Content Management and Protection Object(“CMPO”)是一种数据结构,该数据结构包括CMPS用于管理某项内容的使用的信息。CMPO可以被格式化成某个特定的标准所规定的数据结构(例如,MPEG-4ES),也可以被格式化成并非由该标准定义的一种数据结构。如果CMPO被格式化成该标准规定的数据结构,那么它可以在该标准所使用的信道中收到(例如,作为合成MPEG-4信息流的一部分),或者可以通过某种其它的边频带方法接收。如果CMPO被格式化成并非由相关标准定义的数据结构,那么它是利用某种边频带方法提供和解码的,其中所述方法可以包括通过与被格式化内容相同的端口口接收和/或可以包括通过单独的端口口接收。
内容可以实际上被控制在任何量化度水平。在本文中将讨论三个示范水平“信道”、“作品”和“对象“。
“信道”代表数项作品的集合。这些作品可能是可供用户选择的(例如,网站或录象库)或者可能被串行接收的(例如,有线电初频道)。
“作品”代表企图由被用户作为一个集成整体消费(观看、阅读等)的一项音频-视频的、文本的或其它的作品。例如,作品可以是影片、歌曲、杂志文章、多媒体产品(例如复杂的影视竞技游戏)。一项作品可以结合有数项其它作品,例如,在多媒体作品中就结合有歌曲、录象、文本等。在这种情况下,权限可能是相互关联的。
“对象”代表可分开寻址的作品的一部分。例如,对象可能是个别的MPEG-4 AVO、场景描述符图、对象描述符、电影的声迹、视频游戏中的武器或任何其他可作逻辑定义的部分。
内容可以被控制在其中的任何水平(以及文中未讨论的中间水平)。用于这种控制的优选实施机制是CMPO或CMPO配置(后者由一个或多个CMPO组成,并且如果是两个以上,那么这是两个以上协同操作的CMPO)。CMPO和CMPO配置可以按分层结构组织,其中Channel CMPO配置把适用的规则强加给所包含的全部工作,MCMPO或SGCMPO把适用的规则强加给某项作品内的所有对象,而CMPO配置把适用的规则强加给某个特定的对象。
在一个实施方案中(如图27所示),CMPS可以下载CCMPO2701。CCMPO2701可以包括一项或多项可适用于该信道中全部内容的规则2702以及一个或多个用于将一个或多个MCMPO和/或SGCMPO解密的Key 2703。MCMPO可以包括可适用于单项作品和/或数项作品、一个或多个类别和/或多个用户和/或用户类别的Rule2705,而且还可以包括用于将CMPO解密的Key 2706。CMPO2707可以包括可适用于个别对象的规则2708以及用于该对象解密的Key 2709。
只要所有的对象都在某个水平受到控制,就不需要对每个对象单独实施控制。例如,CCMPO可以规定一项观看其信道中所包含的内容的规则(例如,内容只供订户观看,随后,该订户可以任意再分配该内容,而对该内容供应商没有任何进一步的义务)。在这种情况下,规则将不一定要用于MCMPO(例如Rule 2705)、SGCMPO或CMPO(例如Rule 2708)。在一个实施方案中,MCMPO、SGCMPO和CMPO可能是不必要的,而CMPO 2701可能包括用于给全部内容解密的所有的密钥,或规定可能找到这些密钥的位置。在另一个实施方案中,CCMPO2701将提供给MCMPO 2704解密时使用的Key 2703。MCMPO 2704或许包括给CMPO解密时使用的密钥(例如,Key 2706),但或许不包括补充Rule 2705。CMPO 2707可包括用于给某个对象解密的Key 2709,但或许不包括补充Rule2708。在某些实施方案中,SGCMPO可以不存在。
CMPO可以包含在相关标准规定的内容数据结构内(例如,CMPO可以在MPEG-4ES中作为标题的一部分)。CMPO可以包含在相关标准规定的它自己专用的数据结构内(例如,CMPO ES)。CMPO可以包含在并非任何内容标准规定的数据结构内(例如,CMPO被包含在DigiBox内)。
CCMPO可以包括下述要素(A)ID 2701。这可以采用如下形式<信道ID><CMPO类型><CMPO ID><版本号>。在采用分层结构的CMPO组织(例如CCMPO控制MCMPO,而MCMPO控制CMPO)时,CMPOID 2711可以包括一个字段用于该分层结构的每一层次,借此允许CMPO2711规定任何特定的CMPO在该组织中的位置。例如,用于CCMPO的ID 2710可能是123-000-000,用于那个信道内某项作品的MCMPO的ID 2712例如可能是123-456-000,借此允许1000个MCMPO的技术规范受标识为“123”的CCMPO控制。又如,用于与特定作品内某个对象相关的CMPO的CMPO ID 2711可能是例如123-456-789,借此允许1000个CMPO的技术规范与每个MCMPO相关。
这种规定CMPO ID的方法借此转达任何CMPO在CMPO分层结构内的精确位置。就分层结构中不存在较高层次的情况(例如,MCMPO没有相关的CCMPO)而言,与该分层结构的那个层次相关的数字可以被定义为零。
(B)规则2702可适用于该信道中所有内容。这些规则可能是自持规则,或者可能是能在别处获得的规则的指针。规则在这个层次是可选的。
(C)Information 2713为在用户不能遵守规则的事件中的显示设计(例如,用广告屏通知用户可以以某种价钱预订,并且包括一张在该信道上可利用的内容一览表)。
(D)Key 2703用于将受这个CCMPO控制的每个MCMPO解密。在一个实施方案中,该CCMPO包括一个或多个密钥,这些密钥将所有的MCMPO解密。在替代实施方案中,该CCMPO包括一个或多个供每个MCMPO使用的专用密钥。
(E)CMPS Type(2714)的详细说明和/或在使用与这个信道相关的内容时必不可少的或合乎需要的硬件/软件的详细说明。
MCMPO的内容可以类似于CCMPO的内容,但是MCMPO可以包括适用于单项作品的规则并且可以识别与每个对象相关的CMPO。
各CMPO的内容可以类似于MCMPO的内容,但是CMPO可以包括可用于单一对象的规则和密钥。
SGCMPO的内容可以类似于CCMPO的内容,但是MCMPO可以包括只适用于一个或多个确凿的权限类别、一个或多个确凿的作品类别和/或一个或多个确凿的用户和/或用户装置类别(例如,CMPO装置和/或它们的设备)的规则。
在另一个实施方案中(如图28所示),CMPO Data Structure 2801可以定义如下CMPO Data Structure 2801由数个要素构成。每个要素包括一个自持信息项。CMPS分析CMPO Data Structure的句法,每次一个要素。
Type Element 2802识别作为CMPO的数据结构,借此允许CMPS把它与内容ES区分开。在一个示范实施方案中,这个要素可以包括4位,每位均可以被设置为“1”,以指出该数据结构是CMPO。
第二个要素是CMPO Identifier 2803,该标识符被用于识别这个特定的CMPO和传达该CMPO是否是诸CMPO分层结构组织的一部分,如果是,则传达这个CMPO贴合在那个组织中的什么地方。
CMPO Identifier 2803被分成4个子要素,每个子要素3位。这些子要素被表示为子要素A、B、C和D。第一子要素(2803A)标识CMPO类型并且表明该CMPO是否受任何其它CMPO管理或控制100这是顶级CMPO(与某个信道或诸项作品的集合相关)而且不受任何其它CMPO控制;010这是中级CMPO(与某项特定作品相关)而且不受任何其它CMPO控制;
110这是中级CMPO而且受顶级CMPO控制;001这是低级CMPO(与某项作品内的某个对象相关)而且不受任何其它CMPO控制;这种情况将是罕见的,因为低级CMPO原本将是受至少一个级别比较高的CMPO控制的。
011这是低级CMPO,它受中级CMPO控制,但不受顶级CMPO控制;111这是低级CMPO,它既受低级CMPO控制又受中级CMPO控制。
CMPO ID2803的第二个子要素(子要素B)标识顶级CMPO。在顶级CMPO的情况下,这个标识符由该CMPO的创造者指定。在中级或低级的CMPO受顶级CMPO控制的情况下,这个子要素包含完成这种控制的顶级CMPO的标识。在中级或低级的CMPO不受顶级CMPO控制的情况下,这个子要素包含数个零。
CMPO ID2803的第三个子要素(子要素C)标识中级CMPO。在顶级CMPO的情况下,这个标识符包含数个零。在中级CMPO的情况下,这个子要素包含特定的CMPO的标识。在低级CMPO受某个中级CMPO控制的情况下,这个子要素包含完成这种控制的中级CMPO的标识。在低级CMPO不受中级CMPO控制的情况下,这个子要素包含数个零。
CMPO ID2803的第四个子要素(子要素D)标识低级CMPO。在顶级或中级CMPO的情况下,这个标识符包含数个零。在低级CMPO的情况下,这个子要素包含特定的CMPO的标识。
表明该CMPO数据结构规模的Size Element 2804跟在上述标识符要素之后。这个要素包含在该数据结构中到最后一个要素的要素(或字节)的数目。这个要素在更改CMPO时可以被重写。CMPS可以使用这个规模信息来确定该要素是否在没有得到允许的情况下已被修改,因为这样的修改可能会导致不同的规模。就这个目的而言,CMPS可以把包含在这个要素中的信息储存在受保护的数据库中。这个信息还可能被用于在试图继续进行处理之前确认完整的CMPO已被接收并且是可利用的。
继Size Element 2804之后是一个或多个包含所有权和控制信息链的Ownership/Control Element(例如,Ownership/Control Element2805、2806和2807)。在第一个这样的要素(2805)中,CMPO的创造者可以包括与那个创造者相关的特殊的标识符。追加的参与者也可以在随后的要素(例如,2806、2807)中识别。例如,Element2805可以识别该CMPO的创造者,Element 2806可以识别相关作品的发布者,而Element 2807可以识别该作品的作者。
专用的末端Element 2808序列(例如0000)指出主权要素链的末端。如果这个序列在第一个要素中遇到,这表明不存在主权信息链。
如果与CMPO2801相关的规则允许添加主权信息链,则可以实施这种添加。例如,如果某个用户购买与CMPO2801相关的作品,那么该用户的标识可以作为一个新要素被添加到主权信息链中(例如,新要素跟在2807后面,但在2808之前)。这可以在购买点作出,或者可以在CMPS一经遇到CMPO2801和CMPS确定用户已经购买相关的作品之后由该CMPS来完成。在这样的情况下,CMPS可以从该CMPS储存在NVRAM中的数据结构获得该用户的标识符。
跟在主权要素链后面的是指明处理链的一个或多个HandlingElement(例如,2809、2810)。这些要素可以包含任何具有已被下载和解码的CMPO2801的CMPS的标识,和/或可以包含与任何这样的CMPS相关的任何用户的标识。这样的信息可以用于审计目的,以便在某项作品被确定已被不正当地传播时跟踪处理。这样的信息还可以作为流出信息报告给清算所或中心服务器。处理信息链优选地在被报告之前长期保存。如果这种信息所需要的要素数目超过规定量(例如20个独立用户标识符),那么CMPS可以拒绝,以允许进一步处理CMPO2801或相关的作品,直到该CMPS被连接到外部服务器上报告该处理信息链为止。
在处理要素链中最后一个要素(例如,2811)指明这组要素的末端。这个要素的内容举例说可以全是零。
跟在处理要素链后面的可以是包含或指向与这个CMPO相关的数字证书的一个或多个Certificate Element(例如2812、2813)。这种数字证书可以被CMPS用来确认CMPO。在数字证书链中最后一个要素全都是零(2814)。如果没有数字证书被提交,那么在这个位置存在一个全零的单一要素。
跟在Certificate Element后面的可以是一组规定可能受CMPO2801管理或与之相关的一个或多个内容对象和/或CMPO的Governed Object Element(例如,2815、2816、2817、2818)。每个这样的管理对象和CMPO都是通过特殊的标识符和/或通过可以找到这样的对象或CMPO的位置识别的(例如,这些可能被储存在位置2815和2817中)。跟在每个这样的标识符后面的可以是一个或多个用于将这样的CMPO或对象解密的密钥(例如储存在位置2816和2818中)。这组标识符/密钥以全部由零组成的终止要素(2819)作为结束。
跟在这组规定标识符和/或密钥的要素后面的可以是一组规定与使用在Governed Object链(例如,地点2815和2817)中识别的内容对象和/或CMPO相关的规则/控制和条件的Rules Element(例如,2820、2821、2822)。下面介绍几个示范规则。诸要素可以包含明确的规则或者可以包含指向以其它地方储存的规则的指针。条件可以包括使用相关内容对象或满足某些规则必不可少的特定的硬件资源,或者对于使用相关内容对象必不可少的或优选的CMPS的特定类型。
跟在诸规则/控制和条件要素后面的可以是一组包含由CMPO的创造者规定的信息的Information Element 2823。在其它内容当中,这样的信息可以包括内容或指向内容的指针、程序设计或指向程序设计的指针。
该CMPO以最后Final Termination Element 2824作为结束。
在一个实施方案中,包含在CMPO 2801的Rules Element2820-2822中的诸规则例如可以包括下述操作(1)Play(播放操作)。这种操作允许用户不受限制地播放该内容(但不准拷贝)。
(2)Navigate(导向操作)。这允许用户实现某些类型的导向功能,包括快速前进/后退、停止和搜索。搜索可以被加以索引,也可以不加以索引。
(3)Copy(拷贝操作)。只要不违反规则或超出其他规则范围(包括相关的预算),拷贝可以得到允许一次(例如,时间迁移、存档),可以允许在规定的次数范围内和/或可以在限定的时间周期内得到允许,或者可以在不受限制的时间周期内得到允许。CMPS装置可以这样设计,以致拷贝操作可以引起更新相关的CMPO(例如,包括相关内容已被拷贝的指示识别拷贝的日期和负责做出拷贝的站点),但不引起任何适用的内容对象的任何变化,尤其是,不要求相关的内容对象被多路分用、解密或解压缩。例如,在MPEG-4的情况下,这可能需要下述的多阶段多路分用过程(I)该CMPS装置接收来自用户或标题CMPO的Copy指令;(II)在多路分用的第一阶段将待拷贝的与该MPEG-4信息流相关的CMPO ES从内容信息流中分离出来;(III)诸CMPO被CMPS装置解密和更新。然后,这些CMPO与彼此从未被多路分用过的内容ES再次多路复用,并且在不进一步变更的情况下确定把完整的数据流传送至输出口的路由。
这个过程允许拷贝操作发生,但不要求将内容信息流多路分用和解密。它要求CMPS装置包括两个输出一个输出被连接到数字输出口(例如,图23中连接至Digital Output Port 2317的连线2316),另一个输出被连接到MPEG-4缓冲区(例如,图23,线2310、2311、2312),带有一个开关(例如,开关2319),该开关是为了把内容发送给一个输出或另一个输出(或两者,如果内容要同时被观看和拷贝)而设计的。开关2319可能是至Digital Output Port 2317的唯一路径,借此允许CMPS 2302对那个口实施直接控制和保证只要控制不批准就决不朝那个端口发送内容。如果Digital Output Port 2317也是连接数字显示设备的接线器,那么即使拷贝操作未得到批准,CMPS 2302也不得不批准将内容发送给那个端口。
在一个示范实施方案中,通过Digital Output Port 2317接收信息的接收设备可能不得不用发送设备(例如,CMPS 2302)鉴定。鉴定可能是针对该设备的任何特征和/或与那个设备结合使用的一个或多个CMPS。因此,发送器具可能不把内容发送给缺乏可兼容的CMPS的储存设备。
在另一个非限制性实例中,CMPS2302可以包括对话加密功能部件(例如,“五公司装置”),该功能部件建立一条从发送接口至一个或多个外部设备接口(例如,数字式监视器)的安全信道,并且只要接收接口已用发送设备鉴定,就给该内容加密,以致它只能通过一个或多个经鉴定的设备接口解密。在那种情况下,CMPS2302将校验适当的IEEE 1394串行总线接口,并且将仅仅在下述情况才允许内容流向Digital Output Port 2317(A)被核准的播放操作已被调用,连接该设备的安全信道已被建立,并且该内容已是对话期加密的,或者(B)被核准的拷贝或再次传送操作已被调用,并且该内容已根据前面的陈述处理过(即CMPO已被多路分用、改变和再次多路复用,而该内容从未被解密或多路分用过)。
只有在诸CMPO早期多路分用阶段可单独识别时这才是可能的,这多半要求把它们储存在分开的CMPO ES中。如果诸CMPO作为标题储存在内容ES中,那么在对整个信息流进行全面多路分用和解密操作之前识别这些CMPO或许是不可能的。
(4)Change(变更操作)。用户可以被批准更改该内容。
(5)Delete(删除操作)。这个命令允许用户删除储存在Consumer Appliance的存储器中的内容。这种操作对整项作品运行。如果用户希望删除作品的一部分,则必须使用变更操作。
(6)Transfer(转移操作)。用户可以得到批准把一作品转移给第三方。这不同于拷贝操作,在于用户不保留内容或对该内容的任何权力。转移操作可以通过拷贝操作与删除操作合并得以完成。Transfer可能需要更改与该工作相关的标题CMPO(例如,添加或更改Ownership/Control Element,例如图28中的Element2805-2807),以便使对该作品的权限与第三方相关。
这些基本操作可以被修改,这种修改可以包括(I)Payment(付款)。诸操作对某种类型的用户付款可能是有限制的。Payment可以采取对供应商现金支付的形式(例如,信用卡,从预算中扣除),或者把规定的信息发送给外部站点(例如,Nielson型信息)。
(II)Quatily of Service(服务质量)。诸项操作可以规定特定的服务参数的质量(例如,通过规定MPEG-4中所需要的QoS),包括所需要的解压缩水平、所请求/需要的显示类型、传递设备(例如,质量较高的扬声器、特定类型的游戏控制器)。
(III)Time(时间)。操作可能有这样的条件限制,即该操作仅仅在某个特定时间之后从得到允许,或者该操作的价钱与时间紧密相连(例如,以某个价钱获得实时信息,以较低的价钱或免费获得滞后的信息,例如,在某个特定日期之后才能允许受控的拷贝)。
(IV)显示特定类型的内容。操作可能对于用户授权显示某种内容是有限制的(例如,如果用户同意允许显示广告,那么播放操作可能是免费的)。
在所有的这些情况中,某项规则可能被一项或多项其它规则修改。某项规则可能规定它可以被其它规则修改,或者可能规定它是不能修改的。如果某项规则是可以修改的,那么该规则可以被来自其它来源的规则修改。那些规则可能是被用户单独接收的,也可能是聚集后被用户一起接收的。
可以在MPEG-4示范实施方案中使用的数据类型可以包括(A)CMP Data Stream。
CMP数据流是一个新的基本信息流类型,它具有基本信息流的全部性质,包括它自己的CMPO和在对象描述符中的基准。每个CMP数据流都具有一个或多个CMP Message系列。CMP Message有4个部分1.Count(计数)这个IP ES支持的[1...n]CMPS类型。数个Multiple CMPS系统可以得到支持,每个系统用一个独特的类型标识。(可能不得不有一个类型的中央登记。)2.CMPS-type-identifiers(CMPS类型标识符)[1...n]标识符,每个都带一个在信息流中的修正值和一个长度。该修正值对准CMPO中的一个字节,在该字节中可以找到适合那个CMPS类型的数据。该长度是用这个数据的数个字节表示的长度。
3.Data segments(数据段)一个数据段用于按该CMPS供应商有专利权的格式编码的n个CMPS类型中每一个。
4.CMP-Message-URL(CMP消息统一资源定位符)它引用另一个CMP-Message。(这与将诸URL用于指向诸信息流的标准一致。)(B)CMPOCMPO是一种数据结构,被用于把详细的CMP控制附加到各个别基本信息流上。每个CMPO包含1.CMPO-ID一个用于受控内容的标识符。这个标识符必须唯一地识别一个基本信息流。
2.CMPO-count这个CMPO支持的CMPS类型[1...n]。
3.CMPS-type-identifiers(CMPS类型标识符)[1...n]标识符,每个都带一个在信息流中的修正值和一个长度。该修正值对准CMPO中的一个字节,在该字节中可以找到适合那个CMPS类型的数据。该长度是用这个数据的数个字节表示的长度。
4.Data segments(数据段)n个数据段,每个数据段都按照该CMPS供应商有专利权的格式。
5.CMPO-URL(CMPO统一资源定位符)任选的URL,它引用一把信息添加到这个CMPO中的信息上的附加的CMPO。(这与一种动态添加对新的CMPS的支持的途径。)(C)Feedback Event(反馈事件)反馈事件以两种形式出现开始和结束。每个反馈事件包含3段信息1.EIementary-stream-ID(基本信息流ID)2.Time(时间)按呈现时间计3.Object-instance-number(对象范例号)User Interface(用户界面)Commerce Appliance 2301可以包括User Interface 2304,该用户界面是为了把与控制有关的信息转达给用户和接收来自用户的命令和信息而设计的。这个界面可以包括专用显示(例如,在当前的动作需要付款时一开始明亮的部分)、专用按钮(例如,表示接受显示内容所要求的付款或其它要求的按钮)和/或在荧光屏上提交的视觉信息。
在MPEG-4涵意中的操作实例1.用户选择特定的作品或信道。例如,用户可以使用遥控设备把数字电视调谐到特定的信道。
2.信道选择被传送到某个CMPS装置,该CMPS装置使用该信息下载CCMPO或识别以前下载的CCMPO(例如,如果该CMPS装置被包含在置顶盒中,该置顶盒可以自动下载它有可能获得的每个信道的CCMPO)。
3.该CMPS装置使用这个CMPO识别与在这个信道上找到的所有内容相关的规则。例如,该CCMPO可以规定内容只供订户观看,或者可以规定如果该用户不是订户则应当推出广告屏显以征求该用户预订。
4.一旦CCMPO规定的规则得到满足,该CCMPO就规定与在该信道上可利用的特定作品相关的MCMPO的位置。该信道CMPO还可以提供一个或多个用于MCMPO解密的密钥。
5.该CMPS装置下载这个MCMPO。在MPEG-4实施方案的情况下,该MCMPO可能是一个Elementary Stream。这个ElementaryStream必须是可以在MPEG-4解码过程的早期阶段识别的。
6.该CMPS装置将这个MCMPO解密并且确定用于访问和使用该内容的规则。该CMPS装置把一组选项提供给用户,其中包括免费观看带广告的节目的能力,或付款观看没有广告的节目。
7.用户选择免费观看带广告的节目,例如,利用遥控设备在荧光屏上选择某个选项使它增亮。
8.CMPS装置从MCMPO获得一个或多个密钥并且使用那些密钥为与该视频信号相关的ES解密。该CMPS装置识别两种场量描述符图(Scene Description Graph),一种带广告,另一种不带广告。该CMPS装置传送带广告的Scene Description Graph,而截断另一种Scene Description Graph。
9.CMPS装置监视合成与传递模块并且通过校验确定广告AVO实际上是否已被释放以供观看。如果该CMPS装置确定那些AVO尚未播出,那么它将发出错误或警告消息并且终止进一步解密。
在供应商和分配链中CMPS的权限管理除了消费者的装置之外,在其它实施方案中,一个或多个CMPS可被用于进行创作、拍摄、修改、扩大、制作动画、编辑、摘录、提取、镶嵌、增强、校正、取指纹、添加水印和/或传递数字信息,以便使规则与数字信息相关和迫使那些规则遍及整个的创作、生产、分配、显示和/或执行诸过程。
在一个非限制性实例中,CMPS(其中一个并不详尽的实例至少可以象在上述的Ginter等人的专利说明书中所描述的那样包括VDE节点中的安全部分)被结合在数字摄像机、拾音器、录音设备、回放设备、编辑设备、降噪设备和/或任何其它数字设备中。可以利用至少一个CMPS和/或至少一个CMPO来拍摄、记录和持久保护图象、视频和/或音频信号或任何其它相关的数字信息。诸CMPS可以与压缩/解压缩硬件、加密/解密硬件、DSP硬件、数模转换硬件、模数转换硬件和通信硬件和/或这些设备的软件部分交互作用。
在另一个非详尽实例中,计算机动画制作、特殊效果、数字编辑、较色、降噪和任何其它创作和/或使用数字信息的应用程序都可以利用至少一个CMPS和/或至少一个CMPO保护和/或管理与数字信息相关的规则。
另一个实例包括使用CMPS和/或CMPO来管理至少一个数字程序库、资源储备、影片和/或声音资料库、数字金库和/或任何其它数字内容的存储和管理设施中的数字资源。
按照本专利申请,CMPS和/或CMPO可以被用于管理与数字作品的公开显示和/或运行结合的各项规则。在一个非详尽实例中,平板荧光屏、显示器、监视器、投影电视、LCD投影仪和/或任何显示数字信息的其它装置可以组合至少一个控制数字作品的使用的硬件和/或软件CMPS范例。CMPS可能只允许与一种或多种数字凭证结合使用,其中的一个实例是保证该数字信息将按适合公开显示和/或执行的设定、位置和/或其它境况中生成的数字证书。所述境况的非限制性实例包括剧场、酒吧、夜总会、电子广告牌、公共场所中的电子显示器或在飞机、轮船、火车和/或其它旅客运输工具上的电视。这些凭证可以由受委托的第三方(如认证权威)颁发,其中不详尽的实例是在上述的Ginter712号专利申请中介绍的。
Additional MPEG-4 Embodiment Information(辅助MPEG-4实施例信息)下文以Systems Committee Draft(CD)(第一版)中的MPEG-4说明书(当前正在发展的MPEG-4标准的最完整的说明)为基础。
这一节将提出对MPEG-4播放器体系结构的结构姓修改并且讨论数据行和伴生的功能变化。图23表明原始MPEG-4播放器的功能部件。内容被打包成串行信息流(例如,MPEG-4Bit Stream2314)抵达Player 2301。经由一系列三阶段的多路分用(例如Demux2305)它被多路分解成基本信息流。基本信息流有三种基本类型AV Object(AVO)、Scene Descriptor Graph(SDG)和Object Descriptor(OD)。这些信息流被送入各自的处理单元(例如,AVO Decode2307、Scene Descriptor Graph 2306、Object Descriptor 2308)。AVO是多媒体内容信息流,例如音频信号、视频信号、合成图象等。它们是通过播放器的压缩/编码系统处理的。Scene Description Graph信息流被用于建立Scene Description Graph。这将告诉Composite andRender 2309怎样构成场量并且可以被认作是“脚本”。对象描述符包含关于更新AVO和SD图更新的描述信息。
为了有效地调节CMPS(例如,CMPS 2302)和保护内容,播放器结构必须在下述几个方面得到改进●某些数据路径必须重新确定往来CMPS的路由;●在SDG、AVO Decode和Object Descriptor模块中的某些缓冲区必须是安全的;●从用户单元和合成与传递单元至CMPS的反馈路径必须添加。
为了使CMPS与MPEG-4单元通信和使它有效地管理内容,我们必须规定CMPO的结构和关联协议,我们还必须定义在反馈系统(来自合成单元和用户单元)上的通信协议。
对播放器所作的结构修改示于图23。主要变化是●所有的基本信息流都采用新路由通过CMPS;●在Demux 2305和CMPS2302之间有直接通信路径;
●在CMPS 2302中有所需要的“Content Release andDecrypt”模块2315;●添加从合成与传递模块2309至CMPS 2302的反馈回路(例如,线2313);●通过Line 2316用户直接与CMPS 2302发生双向的交互作用。
进而,就M4v2P而言,CMP对象优选地与所有的基本信息流相关联。作者选择不予以保护的基本信息流仍然注明“不受保护的内容”CMPO。CMPO是把规则附加到内容上的基本手段。在本文中内容不仅是指AVO,而且还指Scene Description Graph。SceneDescriptor Gaph可能具有很大的值,因此将需要受到CMPS 2302的保护和管理。
直接从Demux 2305到CMPS 2302的路径被用于传送CMPS专用标题,该标题潜在地包含商务模型信息,它在用户对话开始时传递商务模型信息。这个标题可以被用于启动用户标识和鉴定、传输规则和结果以及启动前期的与规则人机对话(选择服务质量(QoS)、记帐等)。用户与CMPS 2302之间的通信可以通过非标准化的信道(例如,Line 2316)进行。CMPS的设计者可以提供独立的API来组织这些人机对话。
来自Composite and Render 2309的Feedback Path 2313为重要的目的服务。该路径被用于交叉校验该系统曾把给定的场量提交给用户。基本信息流经过它们各自的模块处理后不必提交给该用户。此外,存在几种欺诈情况,其中包括入侵者可能只付一次钱,而看多次。在这里反馈路径允许CMPS 2302交叉校验传递情况并借此完成更精确的统计。这种反馈是通过迫使Composite and Render 2309发出一“Start event(开始事件)”以信号通知启动一给定对象的传递,在终止此传递时以一“Stop event(停止事件)”结束来实现的。传送反馈信号的过程可通过提供CMP通告标记来作成可选的,该标记可以被触发来指出是否应当通知CMPS 2302。所有的CMPO可能都需要携带这种标记。
对该结构最后的改进是要求在AVO、SDG和Object Descriptor处理器内以及在Composite and Render中的明文缓冲区是安全的。这是为防止由这些缓冲器盗窃内容的非法翻制。事实上,这可能是困难的,因为窜改这些结构可能破坏这些信息流的同步。但是,安全性的高级状态将由于把这些缓冲区放进受保护的处理环境而出现。
CMPS 2302与下述协调地管理播放器2301的功能●在CMPS 2302与该MPEG-4播放器之间(借助CMPO)的通信机制;●内容释放和解密子系统;●版本鉴定子系统;●足够的运行性能,不致干扰MPEG-4部件中的信息流处理。
CMPS 2302可能有双向副波信道,该信道对于MPEG-4播放器是外部信道,它还可以被用于交换CMP信息。此外,CMPS的设计者可能选择提供用户界面API,该接口把与信息流管理的内容和权限管理一侧通信的能力(例如,通过Line 2316)提供给用户。
作为与受保护内容相关规则的功能和用户与CMPS 2302人机对话的结果,加密内容将借助CMPS 2302解密和释放。未加密的内容将通过CMPS 2302传送并且受相关的规则和用户与CMPS 2302人机对话的管理。作为这些规则和用户人机对话的后果,CMPS 2302可能需要与SDG和AVO的编码模块如2310,2311协调来改变场量结构和/或QoS等级。
最后,CMPS设计者可以选择由CMPS 2302产生可经CMPSSide Channel Port 2318传送给清算所当局或可作为加密内容被包含在MPEG-4位流中的审计跟踪信息。
MPEG-4 vl System CD宽松地使用术语“对象”。在这份文件中,“对象”被用于特指一种沿着图23中的一条或多条数据路径流动的数据结构。
利用多重SD图的更新信息流,每个有其自己的CMPO,允许作者把专用控制任意的应用于该SD图。例如,在SDG上的每个节点可以借助独立的SDG更新信息流来形成或修改。这些信息流中每个均将具有截然不同的CMPO和ID。因此,CMPS可以逐一将每个节点的建立和修改释放和解密,并且可以逐一接收提供给每个节点的反馈信息。控制释放和实现后果的实际意义应当可以相当于SD图的每个节点上都有CMPO,且不因每个SD图节点上都有CMPO而增加成本。
与本发明一致的原理可以用下述实例予以说明在第一个实例中,有一个带英语和法语声迹的双语录象。用户在回放期间既可以选择听英语也可以选择听法语。基本放映费用是1美元。如果提供法语声迹,收取0.5美元的附加费用。如果用户在一次放映期间在放映和英语之间来回切换,将只收取一次0.5美元的附加费用。
在这个实例中将有4个基本信息流Scene Description Graph Update信息流将有一个CMPO。该CMPO将意味着与使用该内容相关的费用为1.00美元。SceneDescription Graph显示视频信号、英语伴音和一个按钮,该按钮允许用户切换到法语。如果该用户点击该按钮,英语停止,于是从这个时刻开始法语伴音,该按钮变成“切换到英语”按钮。(可能在开始时可选择地存在一个小对话框以允许用户选择最初的语种,这在SD图中全都是易于实现的。)带这个CMPO的Video Stream将表明如果上述的SceneDescription Graph的更新信息流被释放它才能被释放。
English Audio Stream将类似于该Video信息流。
French Audio Stream将类似于该Video信息流,但如果在反馈信道中看到它将增收0.5美元费用。(如果用户在一次放映该节目的过程中在两种语言之间切换,该CMPS不得认为是两次。)重要的要求是用于SD图更新信息流的ID出现在Feedback Path(例如反馈路径2313)中。这使CMPS 2302了解放映何时停止和结束,以使CMPS 2302能够正确地为法语伴音记帐。
管理释放视频和音频信息流的规则可以包括一些变化。例如,用于这些信息流的规则可以陈述象“如果你在反馈信道中没看见用于Scene Description Graph Update信息流的ID就停止释放这个信息流”等等。如果主要图象不在显示器上,那么视频信号应当没有。这就把视频信号限制到这样一幅图象上。在某种其它图象中使用该视频信号将要求访问原始视频信号,而不仅仅是这个受保护的版本。
在第二个实例中,作者想要有一种图象,该图象带有吸引力的免费序列或“预告片”。如果用户点击正确的按钮,该系统移入被编排成一组“动作”的收费图象。
多重Sd图更新信息流可以更新场量描述图。多重SD图更新信息流可以同时打开。在该信息流中对ALU的时间标记被用于同步和协调之目的。
预告片和每个动作是用具有各自的CMPO的独立的SD图更新信息流表达的。可能有附加的SD图更新信息流存在,该信息流形成看不见且无声的简单的根节点。这个节点在需要时引入该图象的其它组成部分。
为了图解说明,上文业已介绍了关于本发明的实现。这份说明不是周密的而且不把本发明局限于所揭示的精确形式。按照上述教导的观点,改进和变化是可能的,或者可以从本发明的实践中获得这些改进和变化。例如,所介绍的装置包括软件,但本发明可以作为硬件和软件的结合予以实现,或者单独用硬件实现。这项发明可以用面向对象的和非面向对象的编程系统两者来实现。本发明的范围是由权利要求书及其等价物定义的。
附图文字说明图11媒体系统Media System;2位流Bit Stream;7多路分用模块Demux;8组织模块0rganization Block;9AV模块AV Block;11合成模块Composite Block;28系统IDSystem ID;12传递设备Rendering Device;29用户界面User Interface;30外部服务器External Server图2202标题标识符202 Header Identifier;203信息流类型203 Stream Type;207时间标记207 Time Stamp;205管理指示符205 Governance Indicator;206数据包长度206 Packet Length图3301标题301 Header;组织信息流Organization Stream;时间标记Time Stamp;4个数据包4 Packets;302数据包ID302 Packet ID;数据Data;303数据包ID303 Packet ID;304数据包ID304 Packet ID;305数据包ID305 Packet ID;306标题306 Header;
音频信息流Audio Stream;2个数据包2 Packet;307数据包ID307 Packet ID;308数据包ID308 Packet ID图5502标题502 Header;503消息503 Massage;508标题标识符508 Header Identifier;509信息流类型509 Stream Type;507时间标记507 Time Stamp图6601多路分用模块读标题601 Demux Reads Header;AV信息流AV Stream;602将信息流传送给AV模块602 Pass Steam to AVBlock;603管理指示符被设定?603 Governance Indicator set?;是Yes;605ES-ID和时间标记发送给控制模块605 ES_ID andTime Stamp to Control Block;606校验ES-ID606Look up ES_ID;611查找时间标记611 Look up Time Stamp;607获得控制消息(密钥)607 Obtain Control Message(Cryptographic Key);608把密钥传送给信息流控制器608 Cryptographic Keyto Stream Controller;609为信息流解密609 Decrypt Stream;610对数据包进行去压缩和处理610 Decompress andProcess Packets;其它信息流类型Other Stream Type
图7703受控的信息流703 Controlled Streams;704消息704 Message;705密钥705 Key;706规则706 Rule;707命令Commands;708特许系统ID708 Authorized Sys.ID;718预算718 Budget;图8802MPEG-4位流802 MPEG-4 Bit Srteam;808多路分用模块808 Demux;820端口820 Port;821合成和传递Composite and Render;移交设备Rendering Device图9标题Header;OD消息OD Message图10IPMP表IPMP Table图111102位流1102 Bit Stream;1107多路分用模块1107 Demux;1108组织模块1108 Organization Block;1109AV模块1109 AV Block;1110合成模块110 Composite Block;1111传递设备1111 Rendering Device图12控制消息标题Control Message Header;数码框标题DigiBox Header;规则Rule;数据Data;
1209密钥1209 Key;1210确认数据1210 Validation Data图13实时网络文件格式Real Networks File Format;标题Header;1304媒体性质标题1304Media Properties;内容Content;索引Index图14实时网络/受保护文件的格式Real Networks/ProtectedFile Format;标题Header;1304媒体性质标题1304Media Properties;内容Content;索引Index图151501RMFF文件1501 RMFF file;1503权限文件1503 Rights File(.rmf);1502打包模块1502 Packager;1504受保护的RMFF文件1504 Protected RMFF file;标题中的数码框DigiBox in header;加密内encrypted content;经修改的摹拟表演类型modified mime type图161603服务器1603 Server;1604直接连接1604 Direct connection;1602实时网络G2核1602 Real Networks G2 Core;1605、1606传递插入软件1606 Rendering Plugin;1607传递设备1607 Rendering Device
图171703服务器1703 Server;1704不用服务器的直接连接1704 Direct connectionwithout server;1702实时网络G2核1702 Real Networks G2 Core;1708、1709信托插入软件Trust Plugin;1705、1706传递插入软件Rendering Plugin;1707传递设备1707 Rendering Device;1710IRP、每个信息流一个One per stream图19受保护的MP3格式Protected MP3 Format;1912音频警告MP3未加密1912 Audio Warning MP-3unencrypted;1901加密内容1901 Encrypted Content;1902 ID 3尾部(128字节)1902 ID 3 trailer(128 bytes);1903内容ID(16字节)1903 Content ID(16 bytes);1904数码框(1909密钥;1910IV;1911水印指令)1904 DiGiBox(1909 Key,1910 IV,1911Watermarking Instructions);1905内容ID的地址(4字节)1905 Address of ContentID(4bytes);1906信托ID(16字节)1906 Trust ID(16bytes);1907 ID 3尾部(128字节)1907 ID 3 Trailer(128 bytes)图20文件指针file pointer;“肯定”“否定”“不介意”“yes ”“no”“don’t care”;加密内容encrypted content;内容content;2009核准功能2009 Approval Function;2005解密功能2005 Decrypt Function;
图21形成新的MPEG-4文件Creating New MPEG-4 File;密钥、规则Keys,Rules;2101创建框(创建框是数码框形成实用程序)2101CreateBox(CreatBox is DigiBox creation utility);2103(数码框包含管理规则;初始向量、密钥)(DigiBox contains_Governance_Initialization Keys);.txt文件(.txt文件包含信息图(以文本形式)、初始对象描述符Cmds).txt file(.txt file contain_Scene Graph(in text)_Initial Object Descriptor cmds);2104 Bif编码模块2104 Bif Encoder;.bif文件(.bif文件包含_情景图信息流(以压缩的二进制形式)).bif file(.bif file contains_Scene Graph Stream(in compressed binary));.od文件(.od文件包含_初始对象描述符Cmds_对象描述符信息流_数码框2103).od file(.od file contains_Initial Object Descriptor Cmds_Object Descriptor Stream_DigiBox 2103);.scr文件(.scr文件包含_信息流描述).scr file(.scr filecontains_Stream Description);压缩的音频文件Compressed Audio File;压缩的视频文件Compressed Video File;2105多路复用模块(形成IPMP信息流、描述和消息;给内容信息流加密;根据访问单元交错所有的信息流)2105 Mux(_CreateIPMP streams,descriptions,& messages _Encrypt contentstreams_Interleave all streams based on access unit);2107初始对象描述符2107 Initial Object Descriptor;
2108加密内容(加密内容场景信息流、对象描述符信息流、IPMP信息流、加密的视频信息流、加密的音频信息流、其它的加密内容信息流)Encrypted content(Encrypted content_Scene Graph Stream_ObjectDescriptor Stream_IPMP Streams_Encrypted VideoStreams_Encrypted Audio Stream_Other encrypted contentstreams);2106受保护的MPEG-4内容文件2106 ProtectedMPEG-4 Content File图22将现有的MPEG-4文件重新打包Repackaging ExistingMPEG-4 Files;2201未受保护的MPEG-4内容文件2201 UnprotectedMPEG-4 Files;2202初始对象描述符2202 Initial Object Descriptor;2203内容(内容组成场景描述信息流、对象描述符信息流、视频信息流、音频信息流、其它内容信息流)Content(Content consists of_Scene Description Stream_Object Descriptor Stream_Video Stream_Audio Stream_Other Content Streams);2204二次打包模块(用打包程序变换MPEG-4文件,所述打包程序给内容加密并且将数码框嵌入初始对象描述符,它还添加IPMP信息流、描述符和消息)Repackager(MPEG-4 File is transformed with a packaging,programwhich encrypts the content and embeds DigiBox in theInitial Obiect Descriptors,it also adds the IPMP streams,descriptors,and messages);2206(数码框包含管理规则、初始向量、密钥)2206(DigiBox containa_Governance Rules_InitializationVectors Key);
2208初始对象描述符2208 Initial Object Descriptor;2209加密的内容(加密内容场景描述信息流、对象描述符信息流、IPMP信息流、加密的视频信息流、加密的音频信息流、其它的加密内容信息流)2209 Encryptedcontent(Encrypted content_Scene Description Stream_Object Descriptor Stream_IPMP Streams_EncryptedVideo Stream_Encrypted Audio Stream_Other encryptedcontent streams);2207受保护的MPEG-4内容文件2207 ProtectedMPEG-4 Content图232314M4位流2314 M4 bit stream;2305多路分用模块2305 Demux;加密的内容Encrypted content;2306场景描述符图2306Scene Descriptor Graph;2307AVO解码模块2307 AVO Decode;2308对象描述符2308 Object Descriptors;2309合成与传递模块2309Composite and Render;反馈Feedback;传递设备Rendering Device;2304用户接口2304User Interface;2317数字输出口2317 Digital Output;2318端口2318 Port图242404外部网络2404 External Network;2432串行端口2432 Serial Port;2434时钟/日历2434 Clock/Calendar;2431加密/解密引擎Encryption/Decryption Engine;2409规则/控制2409 Rules/Controls;2410控制基元2410 Control Primitives;2411密钥,P/K
对2411 Keys P/K Pair;2412证书2412 Certificates;2413硬件签名信息2413 Hardware Signature Information;2437接口2437 Interface;2415在用的软件2415 Active Software;2416在用的CMPO2416 Active CMPOs;2417内容对象标识Content Object Identification;2418在用的规则2418 Active Rules;2419状态信息2419 State Information;2420被储存的流出信息2420 Stored ExhaustInformation;2421被更新的预算信息2421 Updated BudgetInformation;2423在用的内容类别2423 User Information;2424用户IDUser ID;存储器Memory;2426预算信息2426 Budget Information;2427用户信息User Information;2428用户偏好2428 User Preferences;2429器具信息2429 Appliance Information;可读的存储器Readable Memory图25集聚信息流Aggregate Stream;2505标题2505 Header图262602信息流/对象/CMPO ID2602 Stream/Object/CMPOID;2603CMPO密钥2603 NMPO Key;2604作品级控制2604 Work-Level Control;2605用户/站点信息2605 User/Site Information
图272702适用于信道的规则2702 Rules Applicable toChannel;2713信息2713 Information;2703用于MCMPO/SGCMPO的密钥2703 Keys forMCMPOs/SGCMPOs;2714CMPS类型2714 CMPS Type;2705适用于作品/用户的规则2705 Rules Applicable toWork/User;2706用于CMPO的密钥Key for CMPOs;2708适用于对象的规则2708 Rules Applicable to Object;2709用于对象的密钥2709 Keys for Object图28CMPO结构CMPO Structure;类型Type;规模Size;主权/控制Ownership/Control;处理Handling;证书Certificate;管理对象(对象、密钥、对象、密钥)GovernedObject(Object Key Object Key);规则Rules;信息Information;终止Termination
权利要求
1.一种提供内容保护和数字权限管理的注流数字媒体播放器,所述注流媒体播放器包括端口,设计用于接收至少数字位流,所述数字位流包括数字内容,以及一个或多个用于对所述数字内容解密的密钥;以及一种或多种规则,用于对数字内容的访问或者其他使用进行管理;控制模块,包括用于从所述数字位流中提取所述一个或多个密钥的装置;用于利用所述一个或多个密钥对所述数字内容解密的装置;以及用于按照所述一种或多种规则对所述数字内容的访问和其他使用进行管理的装置;以及输出口,用于将所述数字内容提供给所述注流媒体播放器的用户。
2.根据权利要求1所述的注流媒体播放器,其中,所述一种或多种规则包括在所述数字位流中。
3.根据权利要求1所述的注流媒体播放器,其中,所述规则包括在与所述数字位流分开的保密数字箱中。
4.根据权利要求1所述的注流媒体播放器,其中,所述一种或多种规则包括用于指定对所述数字内容的授权使用的规则。
5.根据权利要求1所述的注流媒体播放器,其中,所述一种或多种规则包括包含被授权使用所述数字内容的系统的标识符的规则。
6.根据权利要求5所述的注流媒体播放器,其中,所述控制模块用于(i)执行(a)所述注流媒体播放器的识别符和(b)所述被授权使用所述数字内容的系统的标识符之间的比较,以及(ii)至少部分地基于所述比较选择性地允许使用所述数字内容。
7.根据权利要求1所述的注流媒体播放器,其中,所述数字位流包括至少两个被一起多路复用的支流,所述支流中的至少一个包括压缩信息;其中,所述注流媒体播放器还包括多路分用器,用于分离和发送所述支流;解压缩单元,用于对所述支流中的至少一个解压缩,所述解压缩单元和所述多路分用器通过用于传送信息的路径相连接;以及传递设备,用于处理解压缩的数字内容以便传递。
8.根据权利要求1所述的注流媒体播放器,其中,所述控制模块可抵抗所述注流媒体播放器的用户的干预。
9.根据权利要求1所述的注流媒体播放器,其中,所述控制模块还包括用于在将所述数字内容传送给第二装置之前或过程中通过所述注流媒体播放器禁止所述数字内容的传递的装置。
10.一种注流媒体播放器,用于与网络一起使用,并用于提供内容保护和数字权限管理,所述媒体播放器包括(a)端口,用于接收数字位流,所述数字位流包括来自多个混和在一起的支流的信息的数据包,所述多个支流包括内容信息流,包括包含内容的内容数据包,所述内容至少部分地被压缩或被加密,组织信息流,包括包含组织信息的组织数据包,所述组织信息与待传递作品相关,以及控制信息流,包括具有保密箱的控制数据包,所述保密箱包括用于控制所述内容的使用的控制信息,包括至少一个适于对所述内容的至少一部分解密的密钥;(b)多路分用器,用于分离和发送所述数据包;(c)控制单元,用于打开保密箱以及提取密钥;(d)解密单元,用于利用密钥对所述内容数据包解密;(e)解压缩单元,用于对所述内容数据包解压缩以及解密,并用于输出解压缩的对象以便传递;(f)组织单元,用于接收来自所述多路分用器的组织数据包,并输出用于指定对象的组织和关系的组织信息以便传递;(g)合成模块,用于根据从所述组织单元输出的组织信息来组织从所述解压缩单元输出的解压缩的对象,所述信息指定发送的对象的组织和关系,从而将所述解压缩的对象传递至所述作品中;以及(h)从所述合成模块到所述控制单元的反馈路径,用于允许所述控制单元接收来自所述合成模块与所述解压缩的内容信息相关的信息,其包括待传递或已传递的对象的识别符。
11.根据权利要求10所述的播放器,还包括信息流控制器,可操作地连接至所述解压缩单元,所述信息流控制器包括解密单元;以及在所述控制单元和所述信息流控制器之间以使得所述控制单元能够将至少一个密钥传送至所述信息流控制器以便用于所述信息流控制器的解密功能。
12.根据权利要求10或11所述的播放器,其中,所述控制单元包含规则或规则集,用于控制与至少一个支流或对象的部分管理相关的内容的使用。
13.根据权利要求12所述的播放器,其中,所述规则或规则集由外部源传送。
14.根据权利要求13所述的播放器,其中,所述规则和规则集作为所述数字位流的一部分传送。
15.根据权利要求12所述的播放器,其中,所述规则指定所述管理的支流或对象可以被解密的条件。
16.根据权利要求12所述的播放器,其中,所述规则和规则集管理被管理的支流或对象的访问和使用的至少一个方面。
17.根据权利要求16所述的播放器,其中,所述管理的方面包括对被管理的支流或对象进行复制。
18.根据权利要求16所述的播放器,其中,所述控制装置包括管理相同的被管理的支流或对象的访问或使用的至少两种规则。
19.根据权利要求16所述的播放器,其中,所述管理的方面包括提供检查信息支流的要求。
20.根据前述任一项权利要求所述的播放器,其中,所述控制装置包括抗干扰单元。
全文摘要
本发明揭示了一种新颖的保护作成信息流的媒体内容的方法和装置。该装置包括用于管理内容信息流或对象的控制装置、用于在所述控制装置的控制下为内容信息流或对象解密的解密装置和用于跟踪内容信息流或对象的实际应用的反馈装置。控制装置可以按照作为作成信息流的内容的一部分或通过边频带信道接收的规则操作。这些规则可以规定内容被容许的应用,包括是否容许拷贝或转移该内容、是否和在何种环境下被接收的内容可以是被“测试出”一台设备而被用在第二台设备上。规则还可以包括或规定预算和收集审查信息和/或将其传递到外部服务器的要求。该装置可以包括为调用插入件以协助传递内容操作而设计的媒体播放器。“委托插入件”及其应用也被揭示,以致为了与不受保护的内容一起使用而设计的媒体播放器可以传递受保护的内容,不必要求该媒体播放器作任何改变。作成信息流的内容可以有许多不同的格式,包括MPEG-4、MP3和RMFF格式。
文档编号H04N7/24GK1874508SQ20061008668
公开日2006年12月6日 申请日期1999年3月16日 优先权日1998年3月16日
发明者塔拉尔·G·谢莫恩, 拉尔夫·D·希尔, 克里斯·D·雷德克里夫, 约翰·P·华 申请人:联信技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1