背景技术
越来越多的内容以数字形式在例如内部网和互联网这样的专用和公用网络上在线传输。对于用户,数据形式可以提供更加复杂的内容,以及在线传输提高及时性和方便性。对于出版商,数字内容还减少传输成本。不幸的是,在损害出版商的利益的情况下,在线信息传输使得获得原始数字内容相对比较容易并且容易盗版该内容,在出版商的头脑中这样的缺点总是超过所获得的优点。
数字内容,特别是在线数字内容的盗版还不是一个很大的问题。可以在网络上获得的最有价值的内容也是价值较低的,因此临时性和有组织的盗版者目前还不认为窃取并转售该内容是有利可图的行业。现在可以在网上获得书籍和音像制品,并且随着带宽的增加将开始出现视屏内容。随着在线数字内容的价值增加,对有组织和临时性的偷窃者的吸引力增加。
内容的与众不同的特性在于出版者(或者销售者)把该内容给予或销售给客户,但是即使当该内容完全在客户的实际控制下仍然继续限制使用该内容的权利。例如,出版商一般保留对作品的版权,从而客户在没有得到许可的情况下不能够复制或出版该作品。出版商还根据客户是否要制作永久复本或者仅仅是当该内容被传送之后在线地浏览该内容而调节价格。这些情况揭示了一种特殊的方案。拥有该数字比特的用户通常不具有使用它的全部权利;而是提供者至少保留一些权利。在非常实际的意义下,计算机的合法用户可以是数据或内容提供者的对方当事人。
因此,如果在线商务继续高速发展,则“数字权管理”很快变为一个中心的需求。内容提供者和计算机工业必需快速地解决用于保证数字内容被根据出版商所授予的权利而适当地处理的技术问题和协议。如果没有采取措施,则传统的内容提供者可能会被广泛地盗版而导致破产,并且很可能完全拒绝在线地传输内容。
传统的安全系统不能完全解决这些问题。现在存在有用于加密在网络上的数据、认证用户、废除证书以及安全地存储数据这样的高度安全的方案。图1示出一种代表性的现有系统20具有内容制造商/提供者22,其产生原始内容(例如,声音、视频图像)以及把该内容通过网络24发布到客户机26。内容制造商/提供者22具有存储原始内容的数字数据流的内容存储器30以及把该内容通过网络24(例如,互联网)传输的发布服务器32。该发布服务器32包括编码器34,其在通过网络发布之前加密并压缩该数据。按照这种方式,该数据在公共网络24上的路径中得到保护。
客户机26具有处理器40、存储器42以及一个或多个媒体输出设备44(例如,监视器、显示器、声卡、扩音器等等)。处理器40运行各种工具,以处理数据流,例如对该数据流解压缩、对该数据解密、过滤内容并且进行控制(音调、音量等等)的工具。操作系统50存储在存储器42中并且在处理器40上执行。操作系统50实现媒体播放器52,其能够播放流媒体内容,包括声音和视频图像数据。媒体播放器52具有解码器54,其提供由处理器40所运行的工具,以对该内容解压缩和解码。
一旦该内容存储在该机器上,则存在有被设计为限制购买之后的权利的产品。例如,来自Liquid Audio(www.liquidaudio.com)的产品使内容提供者能够限制内容仅仅在一台机器上播放。该产品通过在盘上保存内容的加密副本并且在其它地方安全地保存一个解密密钥,从而保证原始材料的安全。
尽管这种体系结构安全地保护从提供者22到客户机26的内容,并且在该内容存储于客户机上时提供一些保护,但是它不能够解决在该内容被传送到客户机的操作系统之后保证内容的安全。最终,有用的内容必须在客户机中组装用于显示或音频输出,在这一点该数据会被盗窃。
图2示出客户机方的部件,以说明原始数据位如何被盗窃,即使在内容的传输和存储中进行保护。在通信端口60从网络接收加密和压缩的数据。该数据被传送到媒体播放器52,其采用解密和解压缩工具54来对该内容流解密和解压缩。媒体播放器52输出脉冲编码调制(PCM)数据流,其基本上是没有压缩和加密的数字化样本的原始序列。
该媒体播放器52调用操作系统API(应用程序接口)层62来把PCM数据提交给混合器64(或者其它处理部件)。该混合器例如可以使用ACM(音频压缩管理器)或者来自微软公司的DirectX技术来实现。混合器64用其它资源处理该PCM,以产生所需的输出。在这一点,所处理的数据传送到驱动器66(软件和/或硬件),其把数据输出到媒体输出设备44,例如声卡和扩音器、或者显示器。
利用这种传统体系结构,在整个客户机设备的操作系统软件和硬件中数据不被保护。与上游加密和压缩无关,该数据最终以能够被盗用的明文(未加密)形式传送到下游软件和硬件。例如,攻击者可以引入一个虚假驱动器72,以接收来自混合器64的数据,并且在存储介质74上存储原始数据,用于这不是内容提供者所期望的非法用途(例如,重新发布、多次播放,等等)。例如假设,该媒体播放器是用DirectX API层来实现的,DirectX是一种开放的标准,其使得软件应用程序能够读取声音和视频图像数据。软件包(例如,“整体录音机(Total Recorder)”软件包)可以向声卡驱动器(即,虚假驱动器72)一样安装,并且流进该虚拟声音驱动器的声音或视频图像可以被捕获到标准声音文件中(例如,以“.wav”格式)。
相应地,需要一种体系结构,其能够在把数据位交给操作系统之后对该数据位提供保护。还需要该体系结构与来自微软公司的运行在Windows操作系统上称为“DirectX”的现有的多媒体处理系统相集成。该DirectX体系结构确定如何使用称为滤波器的模块部件来控制和处理多媒体数据流。滤波器的例子包括用于音频和视频数据类型的压缩器、解压缩器、渲染器(renderer)、混合器、分析器、分配器以及调谐器。滤波器具有输入或输出端子,或者两者兼有,并且在所谓的滤波器图表(filter graph)的结构中相互连接。应用程序使用称为滤波器图表管理器的对象来组装滤波器图表,并且通过它来移动数据。滤波器图表管理器提供一组组件对象模型(COM)接口,从而应用程序可以访问滤波器图表。应用程序可以直接呼叫滤波器图表管理器接口,以控制媒体流或者检索滤波器事件,或者它们可以使用媒体播放器控制来播放媒体文件。读取器被指向微软的网址Microsoft.com,以及关于“directx”的文件路径,用于获得更多关于DirectX的背景信息、滤波器图表和各个滤波器。
DirectX体系结构的一个主要吸引人的特征是它是模块化并且可扩展的。不幸的是,这些相同的优越属性可能被用于不正当的用途。例如,窃贼可能把“T”插入到滤波器图表中以把被压缩或未压缩的数据调出到盘中。
一种可能的方法是仅仅使用被认证的组件来保证滤波器表图和设备驱动器的安全。这种方法的缺点是增加为组件获得证书以及在使用过程中对它们进行认证的负担。
另一个方法是保持该数据被加密,直到它到达驱动器层66为止。该方法具有一个缺点在于由于当所加密的数据随后被解密时,来自滤波器的一些处理结果不能够通过解密算法而清楚地传输,这可能导致较差质量的输出,通常使得该数据不能够被恢复。例如,考虑一个加密的MPEG流。它将会丢失MPEG传输层组帧,并且滤波器图表将不能够被处理。另一个例子是PCM音频数据。如果加密的音频数据与其它信号(例如,来自邮件程序的“叮”)相混合,则不可能进行解密。作为最后一个例子,把加密的音频位流乘以一个常数的音量控制使得加密的流不能够被恢复。
因此,需要一种体系结构,其能够保护在计算机的操作系统和硬件组件中的数据并且与DirectX体系结构相集成,而在播放时不会使信号的质量下降。
具体实施方式
基于客户机的体系结构
图3示出一种客户机方的体系结构100,其保护在客户计算机中的数据流(例如,声音和视频数据)。为了讨论的目的,客户机可以被用作为具有处理器、易失性存储器、非易失性存储器以及操作系统的通用计算单元(例如,台式机、便携机等等)。它还可以被用作为其它设备,例如同轴电缆调制解调器、机顶盒、声频/视频应用程序等等。
图3示出在客户计算机上实现的软件/硬件体系结构100。假设客户机采用防窜改软件应用程序来购买、存储和播放内容,该应用程序使用SSL(加密套接字协议层)或者其它保密和被认证的连接来连接到内容提供商的服务器。该防窜改软件防止攻击者容易地更改该组件或提取密钥。但是,在一些时段中,该音频数据必须交给操作系统来播放。
该体系结构100包括通过网络接收来自服务器的加密和压缩数据的通信层或端口60。该数据一般使用公知的算法(例如,RSA)来加密并且使用公知的加缩技术(例如,AVI,MPEG,ASF,WMA,MP3)来压缩。该数据被传送到媒体播放器102,其最好是来自微软公司的“Windows媒体播放器:该“Windows媒体播放器”使用DirectX API(应用程序接口)层来实现,该DirectX API是由微软公司所设计的一组技术,以使得基于Windows的计算机成为一个用于运行和显示例如真彩图像、视频图像、三维动画和环绕声这样的丰富的多媒体元素的适合平台。
媒体播放器102采用解密/解压缩工具104来对该内容流进行解密和解压缩。在这一阶段,该内容采用脉冲编码调制(PCM)数据流的形式,该数据流基本上是没有压缩和加密的数字化样本的原始序列。为了防止在滤波器进行处理时该原始数位被盗窃,媒体播放器102还采用加扰器106来对PCM数据进行加扰。该加扰器106把该数据改变到这样的程度,使得该数位即使被盗窃也基本上是没有用的。例如,加密的音频数据可能具有使声音变差并且不能够被消除的大量噪声,从而使得被盗的数据没有任何价值。然而同时,声音或视频数据的加扰版本对于在滤波器图表中的滤波器来说基本上与真实的声音或视频数据相同,使得通常未更改的解码器或信号处理组件工作良好。因此,该加扰内容看起来”与未更改的内容相同,但是却能够防止盗窃。
加扰的PCM数据通过操作系统API层62传送到滤波器图表108,其通过添加一个或多个其它信号、调节音量或音调等等来处理PCM数据。该滤波器图表108处理该加扰PCM数据,就好象该数据是原始未加扰的PCM数据那样。该滤波器图表108具有一个或多个滤波器,例如处理PCM数据的混合器、音量、音调、编码器、渲染器等等。请注意,滤波器图表108被示出用于讨论的目的,但是其它类型的信号处理技术可以代替该滤波器图表。
所处理的数据被传送到可以用软件和/或硬件实现的驱动器110。该驱动器110实现一个解扰器112,用于对加扰的PCM数据解扰,并且把该PCM数据恢复到加扰之前的状态,作为滤波器图表处理的结果而进行更改。该解扰器112把解扰的更改后的PCM数据输出到媒体输出设备44。
加扰器106和解扰器112利用一个或多个密钥114来产生添加到PCM数据中的加扰信号。密钥114可以在媒体播放器102和驱动器110之间通过频带内信道与加扰数据一同传输,和/或通过与数据路径相分离的频带外信道(例如,在DirectX中的IOCTL设备I/O控制信道)传输。媒体播放器102和驱动器110的一个实施例以及用于加扰和解扰PCM数据的密钥在下文中参照图4更加详细地描述。
加扰体系结构在内容被操作系统和低级别硬件组件所处理时保护该内容。希望使用虚假驱动器72从滤波器图表108中调出原始数位的攻击者会接收到从记录或重新发布方面来看没有价值的加扰数据,从而消除了窃贼在经济方面的动机。另外,如果不知道该密钥114则非常难以对该数据解扰。
加扰技术
存在有不同的方式来在客户机实现加扰体系结构,来对PCM数据加扰。一个方式是把噪声添加到该信道中。在音频数据的情况下,一种噪声添加方案是使用会话密钥来产生一组语音、音乐或类似噪声的函数,并且在时域或者频域或子波域中直接把这些函数添加到该信号中。根据密钥发生器选择函数、幅度、相位和放大因子。每秒钟添加几十个噪声脉冲使得该信号对于攻击者来说没有价值,并且即使攻击者知道噪声的主要成份,该攻击者必须执行“搜索”以消除噪声的空间是相当大的。但是,给定该密钥(并且假设没过载),则该噪声信号能够被完全地消除,以返回未加扰状态。
另一种用于现有技术中的方法是采用时域和频域加扰。在时域加扰中,时间被分为帧(例如,2或3秒),并且每一帧被分为几个片段。在每个帧中,片段被改变序列和重新组合。一般来说,每个帧使用不同的排列。密钥控制排列的次序。在频域加扰中,信号被分为重叠帧(例如,50毫秒)然后它被通过FFT滤波器组映射到频域上。该频带被重新排列并且通过合成滤波器组而发送。在此,密钥控制排列的次序。频域加扰比时域加扰更加难以破解,但是其优点是增加用于分析和合成滤波器组的额外计算。
时域和频域加扰的主要特点是被加扰的信号不能通过混合器(例如,图3中的108这样的滤波器图表混合器),由于在解扰之后,混合的信号将仍然被加扰。下面描述基于噪声添加的加扰解决该问题:混合到加扰的音频信号中的信号的音频信号在解扰之后保持不变。
基于噪声添加的加扰的例子
图4示出当内容被在客户计算机的操作系统和硬件组件中处理时采用基于噪声添加的加扰处理来保护内容的客户机方组件。更加具体来说,图4示出在媒体播放器102中的加扰器100以及在驱动器110的解扰器112的实现例子。另外参照图5的流程图来描述加扰处理。这些步骤由图4中所示的各种软件和/或硬件组件所执行。
该处理以在媒体播放器102接收加密和被压缩数据流(例如,音频、视频数据)为开始。该媒体播放器利用工具104来对该数据流解密和解压缩,得到PCM数据流(步骤204)。加扰器106通过把噪声添加到数据中而对PCM数据加扰(步骤206)。该加扰器106具有用于产生同步音调的音调脉冲发生器和调制器120以及用于产生随机信号的密码伪随机数发生器(PRNG)122。同步音调和随机信号都被添加到PCM数据中,以产生噪声或加扰的PCM数据。
音调脉冲发生器120和PRNG 122使用两级密钥来创建同步音调和随机信号:(1)“频带内”密钥124,以及(2)“频带外”或“会话”密钥126。音调脉冲发生器120和PRNG 122都使用频带内密钥124,而仅仅PRNG 122使用频带外密钥126。该密钥例如可以具有较大的数位长度,例如56位或者128位密钥。
音调脉冲发生器和调制器120使用频带内密钥来产生可以容易在解扰器处识别的音调脉冲组合(在图5的步骤S208)。音调模式被周期性地添加到PCM数据信号,例如每隔100毫秒。
图6示出具有交替正/负数值的脉冲的确定模式的示例同步音调300。该脉冲可以具有两个不同的幅度中的一个幅度,例如+0.5/-0.5或+1/-1。调制每个脉冲模式的幅度使得加扰器在每个脉冲序列解码一个数位或一块信息。例如,一个音调脉冲302的序列利用+1/-1来表示第一二进制数值(例如,1),以及音调脉冲304的一个不同序列利用+0.5/-0.5来表示第二二进制数值(例如,0)。该频带内密钥124被嵌入到声调脉冲序列的组合中,作为数位集合,以把该密钥与数据一同传送到该驱动器。该频带内密钥可以随着每个音频/视频剪辑、剪辑组、或者甚至在剪辑内而改变。
同步音调300具有为原始信号的采样频率的一半的频率。对于具有44.1kHz的采样频率的音频数据,该音高脉冲发生器120产生22.05kHz的同步音调。该音调容易被解扰器所检测和除去。另外,即使该解扰器没有完全除去该同步音调,用于该驱动器或声卡中的模-数转换器将除去该音调频率。
再次参见图4和5,该密码PRNG 122使用频带内密钥和频带外会话密钥产生伪随机信号(在图5中的步骤210)。图7示出具有+1或-1幅度的数据值的随机模式的示例随机序列400。PRNG 122被使用以提供相等机率的+1或-1输出,总体平均年龄,以避免把直流偏移导入该原始数据信号。
当把频带内密钥124嵌入到音调同步信号中时,会话密钥126保持数据的独立并且在与数据路径相分离的信道128上传送。会话密钥126使用密码密钥交换(例如,Diffie-Hellman交换和认证)来保护,以保证密钥126安全地从媒体播放器102通过信道128(其例如可以是在DirectX中的IOCTL设备控制器)传输到驱动器110。相应地,加扰器106或媒体播放器102具有加密和发信功能,与加密和发送用于安全传输的会话密钥到驱动器110和解扰器112。
加扰器106通过加法器130添加同步音调脉冲和随机信号到该PCM数据,以对该数据加扰(在图5中的步骤212)。如果需要的话,原始信号(即,PCM数据)和随机信号可以被标准化,以把复合信号返回到该滤波器图表108所预期的范围。例如,该PCM数据可以乘以因子0.75,并且该随机信号可以在加上两个信号之前乘以因子0.25,以对所获得的复合信号标准化。
加扰的PCM数据被传送到滤波器图表108,在此被处理并且与其它资源混合(在图5中的步骤214)。该滤波器图表可以具有一个或多个处理该数据的滤波器。作为一个例子,该滤波器图表可以调节信号的音量,或者可以增加任意延迟,这作为一个处理步骤的一部分。滤波器对噪声数据进行操作,就好象该数据是原始PCM数据那样。该滤波器图表把更改的噪声数据输出到驱动器110。
在图5的步骤216中,在驱动器110的解扰器112通过从该数据中除去噪声成份而对该更改的噪声PCM数据解扰。该解扰器112具有音调检测器和解调器140、密码PRNG 142以及硬件接口144。音调检测器和解调器140检测在复合信号中的同步音调,测量任何音量和由滤波器图表108所导入的延迟,并且对该音调解调以恢复频带内密钥124(在图5中的步骤218)。音调检测器140把所恢复的频带内密钥124传送到PRNG 142。
解扰器112还接收来自频带外信道128的会话密钥126,对它进行解密和认证,并且把该密钥126给予PRNG 142。该解扰器具有解密和认证装置,用于对来自媒体播放器102的会话密钥进行解密和认证。PRNG 142采用与媒体驱动器PRNG 122中所用相同的算法。给定相同的频带内密钥124和会话密钥126,PRNG 142重新创建与以前添加到媒体播放器的PCM数据中的随机信号相同的随机信号(在图5中的步骤220)。
解扰器112通过减法器146从该噪声PCM数据中减去同步音调和随机信号,以除去噪声(在图5中的步骤222)。PCM数据通过硬件接口144传送到输出设备(例如声卡、显示器),该处理结束(步骤224和226)。
图8示出在解扰器112中采用的音调检测器和解调器140的一个例子。音调检测器和解调器具有匹配滤波器500,用于检测在噪声PCM数据中的同步音调。该匹配滤波器500具有该纯同步音调的一个有限长度的时间逆转副本,作为脉冲响应h(n)。因此匹配滤波器的输出y(n)由下式给出:
其中x(n)是更改的噪声数据信号,以及2L+1是音调脉冲的长度。当音调模式h(n)的位置与信号中的音调成份相对齐时,y(n)具有最大值。第一最大值的位置确定延迟506,通过该延迟应当及时地移动该音调和PRNG噪声模式,使其适当地与更改的噪声数据相对齐。
延迟量和噪声数据被传送到峰值搜索模块502,估计由滤波器图表108所作的任何音量改变。该模块估计通过搜索处理的适当增益508(在减法146之前应当把该增益乘以恢复的音调脉冲和PRGN噪声),其中增益估计被迭代地细化,直到在音调减法之后的信号能量最小。恢复的同步音调与正确的增益和延迟一同在模块510中产生。
频带内密钥的检测由幅度解调模块512所执行。对于每个音调脉冲,该模块把脉冲幅度与以前几个时间间隔上的平均音调脉冲幅度测量值相比较。如果该幅度大于该平均值(例如,所述幅度等于1.0并且该平均值等于0 75),则该密钥的数值被解调为具有一个二进制数值(例如,“1”)。如果该幅度小于该平均值(例如,该幅度等于0.5,并且该平均值等于0.75),然后该密钥的一个数值被解调为具有另一个二进制数值(例如,“0”)。该处理对后续的音调脉冲重复执行,直到频带内密钥124的所有数位被恢复。然后,该频带内密钥124可以由密码PRNG 142所使用,以恢复要从该加扰信号中减去的随机噪声序列。
在上述实施例中,通过添加同步音调和随机信号而把噪声导入到该内容中。另外,可以通过把至少一部分内容与由PRNG 122所产生的随机位流之间执行异或运算而对该内容加扰。例如,对于16个音频数据,13个最低有效位与由PRNG 122所产生的数位进行异或运算。这样有效地对该内容加扰,并且具有不会使表示声音的整数“溢出”的额外特性。为了对该内容解扰,再次把较低数位与相同的随机位流进行异或运算。
结论
该加扰体系结构的优点在于保护在计算机的操作系统和硬件组件中的数据内容。另一个优点是该体系结构与现有的DirectX技术良好地集成。尽管本发明已经用具体结构特征和/或方法步骤进行描述,但是应当知道在权利要求书中所限定的本发明不一定限于所述的具体特征或步骤。而是,该具体特征和步骤被公开作为实现所要求保护的发明的优选形式。