用于数据载体的复制保护系统 【技术领域】
本发明涉及用于防止或限制数据复制的方法、软件和格式,尤其是当以数字形式记录在如光盘介质的载体上时。在本说明书中,光盘介质要包括压缩光盘(CD)、CD-ROM与数字通用盘(DVD)及可以利用可视范围以外的电磁射线读取的类似介质。
背景技术
CD音频磁盘包括至少遵循众所周知的“红皮书”进行格式化的第一段,“红皮书”又称为标题为“Compact Disc Digital AudioSystem”(Geneva,Switzerland,1987)的国际电子技术委员会(IEC)地标准908。
CD-ROM包括遵循“黄皮书”标准及通常还有其扩展“系统描述CD-ROM XA”进行格式化的一个或多个段,该标准包括基于ISO 9660的数据检索结构。“黄皮书”标准包括了“红皮书”标准,因此CD数据驱动器可以播放音频数据,还可以读取非音频数据。多段CD-R和CD-RW磁盘遵循橙皮书标准。
在该说明书中,将在只需要能读取遵循红皮书标准的CD的“音频CD播放器”与能够读取遵循黄皮书标准,通常还有橙皮书标准的CD的“CD-ROM驱动器”之间进行区分。尽管音频CD播放器可以与其它设备集成,但它们通常是除音频复制外没有其它功能的独立设备。CD-ROM驱动器是通用计算机或其它能够装载并运行用户选择的应用程序的类似设备的外围设备。
可记录CD(CD-R)的出现使其通常很容易制作音频CD和CD-ROM的未授权复制,而且不贵;例如通过将音频CD的全部内容复制到计算机硬盘上,然后再将其写入CD-R。由于这种行为对录制公司造成的可能收入损失是可观的,而且实际上其影响已经感觉到了。因此,需要防止这种未授权复制。
遵循红皮书的CD包含许多不必单纯用于播放音频轨道而且可以被大多数只播放音频的播放器忽略的信息。因而,一种防止未授权复制的方法是以被音频CD播放器忽略的方式不遵循红皮书,但这种方法在CD-ROM驱动器中会造成错误。
这种方法的例子在WO 00/74053中进行了描述,其中选定的控制数据被再现成不精确的或不正确的;内容表(TOC)可以将音频轨道识别为数据轨道,或者可以不正确地识别导出部分。在本申请的优先权日期之后发表的WO 02/075735公开了当第一段确实包括音频轨道时将其识别为CD-ROM数据。在本申请的优先权日期之后发表的EP 1239472也公开了在TOC中将音频轨道识别为数据轨道的思想。
但是,运行在连接有CD-ROM驱动器的计算机上的CD复制应用可以被编程成忽略不精确或不正确的控制信息,如不精确的TOC条目。
上面提到的技术目的在于防止CD-ROM驱动器读取音频轨道,从而防止轨道存储在计算机上,及随后在某种其它介质上的记录或分发。但是,有些用户喜欢在他们的计算机上播放音频CD。因而,还需要以一种可以在CD-ROM驱动器上播放但不能被转录或分发的方式提供音频轨道。
这个问题的一种解决办法是在CD-ROM驱动器不能读取的第一段中提供音频轨道,在第二段中提供音频轨道的加密版本。加密的轨道只能由通过将其转换成音频信号来播放音频数据的播放器程序解密和播放。
但是,在利用通用加密密钥或密钥组的系统中,一旦密钥被发现,则利用该通过密钥加密的所有内容就可以被解密了。如果对每种载体使用不同的密钥,则必须设计某种分发适于每种载体的密钥的方式。
【发明内容】
根据本发明的一方面,轨道是以包括表示轨道起始地址的导入和在轨道起始地址之后的有效负荷起始地址改变状态的子通道的格式记录在压缩光盘上。记录在轨道起始地址的数据包括不可恢复的数据。
在轨道是音频轨道的地方,音频CD播放器不会忽略轨道起始地址,而是从轨道起始地址开始顺序搜索,直到它检测到子通道改变状态,并从那一点复制音频轨道。另一方面,CD-ROM驱动器从轨道起始地址开始复制数据。当读到不可恢复的数据时,读操作中止,因为它显示数据已被破坏。这种操作不能很容易地回避,因为忽略坏的CD-ROM数据通常是不可接受的。
优选地,记录在轨道起始地址的数据还包括可恢复的数据,包括指向存储在压缩光盘上的播放器程序的指针。可能有指向对应多个播放器程序的多个指针,根据该CD-ROM驱动器连接到的设备的操作系统选择一个应用。
优选地,轨道的内容没有任何不正确或不精确信息地记录。
本发明的另一个重要方面是在CD-ROM驱动器上播放压缩光盘的能力。这是通过压缩并加密轨道,然后将结果数据记录到磁盘的第二,数据段实现的。
第二段数据以下述方式记录:数据首先分成满足“黄皮书”(IEC)标准CD扇区(也称为逻辑块)的逻辑块。然后,这些块中每一块都利用从其逻辑块地址(LBA)或磁盘位置得到的加密密钥加密。然后,利用传统的控制和记录方法将从这种处理得到的数据写到磁盘这个位置(LBA)。这种压缩的数据是传统播放器软件不能访问的。
通过在第二段中包括可以由计算机执行的播放器程序,使数据变得计算机可以访问。播放器程序具有定位、解密和解压数据的能力,但防止数据被转录或分发。
【附图说明】
现在参考附图描述优选实施方式的详细说明,其中:
图1是本发明一种实施方式中包括封装数据的轨道格式的图;
图2是显示封装数据中指向第二段数据的指针的图;
图3是说明用于第二段数据的加密策略的图;
图4a是应用与CD-ROM驱动器之间驱动器链的图;
图4b是显示在该驱动器链中插入监控程序的图;及
图5是说明根据该实施方式的压缩光盘制造阶段的图。
【具体实施方式】
在本发明的一种实施方式中,除了偏离下述标准,依赖于其内容是音频还是数据,压缩光盘(CD)携带遵循红皮书或黄皮书标准的第一段。
根据该标准,第一段包括导入、包含一条或多条轨道的程序区及导出。轨道可以全部是根据红皮书标准的音频轨道或根据黄皮书标准的数据轨道。导入包括内容表(TOC),包含每条轨道与导出开始的绝对时间(ATIME)并标识每条轨道的类型(即,音频或数据)。
红皮书和黄皮书标准CD的数据格式是众所周知的,但为了便于理解,在这里还是对相关部分进行讲述。在CD上被调制和记录的每一帧数据都包括一个子码字节。子码字节的每一位对应于标号为从P到W的一条不同的子码通道。P-通道简单地指出每条轨道的开始和结束。Q通道包括时间码、轨道类型和目录信息,在导入中还包括TOC。时间码包括从段开始的绝对时间ATIME,及在轨道之间的间隙中减少的PTIME。每条轨道前面都有一个暂停,通常为2秒钟。
数据封装
在本发明的这种实施方式中,TOC指出了轨道开始的绝对时间位置ATOC,它具有图1所示的格式。轨道以一个暂停或间隙G开始。在由ATOC指示的位置是包括多个CD-ROM数据扇区的封装数据ED,其中至少有一个部分扇区包含不可恢复的数据。
不可恢复的数据可以有一种或多种破坏成数据不可恢复的同步信息、检错码(EDC)或纠错码(ECC)。可选地,不正确的ATIME值可以写入每个扇区的头,而EDC和ECC指示这个值是正确的。
封装数据ED后面按顺序在绝对时间位置AP跟着有效负荷数据PD,PD完全遵循用于相关轨道类型的适当红皮或黄皮书标准。轨道类型在TOC指示为数据。
P通道位在位置ATOC保持为高,但在位置AP变低。在这一点,PTIME的值开始递增,索引IDX从00(表示暂停)变到01(表示轨道)。控制通道CTRL最初值为4,表示数据轨道,在AP后使其值变得适合于有效负荷数据PD的轨道类型。在这种情况下,有效负荷数据是音频数据,因此CTRL变成值0。贯穿这个阶段,轨道号TNO都保持相同(在图1中表示为值XX)。这种格式可以应用到段内的每条轨道,或者只应用到一些轨道。
当轨道由CD-ROM驱动器播放时,驱动器从TOC读出位置ATOC并在那个位置开始读取。当读到不可恢复的数据时,产生错误情况并且数据读取操作被中止。
当轨道由音频CD播放器播放时,播放器开始寻找位置ATOC的轨道,还检查其它的控制数据,如P通道和索引IDX,以便确定轨道的起始位置。因此,播放器从时间AP开始读取轨道,从而避免封装数据ED并且作为正常音频轨道来播放轨道。
通过这种方法,CD-ROM驱动器在数据本身而不是控制信息中遇到错误。该方法不能简单地通过忽略所有数据错误来回避,因为在CD上某个地方可能会有不能被忽略的无意数据错误。
有效负荷数据可以是音频、视频、游戏软件或其它数据。在每种情况下,专用播放器都能找到有效负荷起始位置AP并忽略封装数据ED,但CD-ROM驱动器将试图读取封装数据ED并报告数据错误。
封装的第二段
另一方面,期望使CD-ROM播放器能够以一种使轨道不能被转录或分发的方式播放轨道。在该实施方式中这是通过一个或多个包含在封装数据ED的一个或多个可恢复扇区内的指针实现的,指针指示CD上能够播放包含在CD第二段内的轨道的播放器程序的位置。这在图2中说明,其中第一段中的一组轨道每一条都包含封装数据ED,ED包含指向第二段SS中播放器程序PP存储位置的指针EDP。指针是存储在与每条轨道起始位置相关的扇区16-18中的ISO 9660主卷号描述符(PVD)次卷号描述符(SVD)及卷号设置终止符(VST)变量的复制。
第二段SS遵循用于多段的IEC“黄皮书”标准和IEC“橙皮书”标准。这一段包含可以由计算机操作系统访问和/或执行的播放器程序与任何相关文件,还有包含轨道的加密数据文件,后面这些文件除了播放器程序是不能访问或播放的。例如,当PC文件管理器查看受保护的磁盘时,只有播放器程序及任何与该程序直接关联的文件是可见的。
现在参考图3描述加密方法。数据D划分成分配到相应扇区SEC1至SECn的片段SEG1至SEGn,其中扇区SEC1至SECn在磁盘的第二段区域中具有相应的逻辑扇区地址LBA1至LBAn。对于每个扇区,有一个算法用于从那个扇区开始的逻辑扇区地址LBAi得出加密密钥Ki。优选地,为每个扇区得出不同的加密密钥。对应的片段SEGi是利用各自的加密密钥Ki加密的,压缩并记录在那个扇区SECi中。
磁盘上的每个扇区通常都包含2048个字节连续的加密数字数据,每个扇区利用不同的密钥加密。块大小是由黄皮书标准规定的,但原则上说,数据可以利用任何方便的块大小加密。利用太大的块大小是不期望的,因为它将导致加密中的较少变化;这应当避免。对应于每条轨道开始的逻辑扇区地址LBA1是播放器程序已知的,这个数据隐藏在播放器程序代码中或在磁盘上播放器程序已知的位置。播放器代码还包括编译形式的算法。
数据D可以分布在几个连续的扇区SEC1至SECn上。一条特定的轨道通常包括磁盘上好几千个连续的扇区。因此,当一条轨道被选定时,播放器程序就知道了起始逻辑扇区地址LBA1并能得出密钥K1,从而允许来自第一扇区SEC1的数据被解密。读出第一扇区后,播放器程序就知道了在第一扇区SEC1的最后一个LBA之后连续的LBA2开始的下一个扇区。知道了LBA2,播放器程序就能够利用算法得出新密钥K2,从而解密第二扇区SEC2中的数据。以这种方式,播放器程序能够解密连续的扇区,每次得出一个新密钥。在一种可选的实施方式中,扇区可以随机寻址,但这就需要明确地知道每个扇区的起始地址。
这种实施方式中的加密系统比已知系统有多个好处。如果未授权复制者发现了LBA1和K1,则这只允许第一扇区SEC1被恢复。下一连续扇区SEC2的密钥K2通常是完全不同的。用于得出密钥的算法是编译过的,在播放器程序中或者可以由播放器程序访问,而且不能很容易地分析。
此外,如果通过某种方式连续的加密片段被复制到例如硬盘上,而且播放器程序运行并指向第一扇区,则它将为每个扇区产生错误的密钥,因为它需要知道被复制材料的原始扇区地址。复制到硬盘上的扇区几乎肯定不同于原始压缩光盘上的那些扇区。因而,被复制的材料将不能由播放器程序解密。
每一片段SEG都优选地在记录到对应扇区SEC之前利用适当的压缩算法进行压缩。在音频数据的情况下,这有利地减少了第二段SS所需的空间,从而允许更多的轨道同时包括在第一和第二段中。在第一和第二段之间轨道不需要完全相同;例如,节目轨道可能在一个段中可用,但在另一段中不可用。
监控程序
优选地,根据该实施方式生产出的磁盘包含当计算机操作系统首先访问磁盘时被激活的隐藏软件;这可以利用操作系统的“自动运行”功能自动完成。该软件用具体例证说明了一个监控对受保护磁盘进行访问的内存驻留监控程序。当磁盘被除去后,该监控程序也从PC的内在中除去。该监控程序还设计成监控磁盘的行为,包括磁盘速度和磁盘访问类型(数字或音频),并确保磁盘内容的可靠重放。
监控程序将其本身或本身的一部分插入操作系统驱动器链。如图4a所示,驱动器链是计算机操作系统的特征,其中应用APP与该链的较高级HL通信。这个较高级HL与较低级LL通信,而较低级LL与CD-ROM驱动器通信。驱动器链向应用程序APP展现用于与大量硬件设备通信的标准应用程序接口API。如图4b所示,监控程序SP通过修改下一个最高和最低级中的链指针将其自己插入到驱动器链中,从而可以监控从应用程序APP到CD-ROM驱动器的所有通信。监控程序SP执行命令监控和磁盘监控功能。
命令监控
命令监控功能截取由应用APP发送到CD-ROM驱动器的命令,如SCSI或ATAPI命令,并确定该命令是否表示未授权行为,如由不是播放器程序的应用从磁盘读数据。如果检测到未授权行为,则相关命令被监控程序阻塞,而且不能继续沿驱动器链下行到CD-ROM。命令响应是由监控程序产生的,并沿驱动器链上行返回到应用。响应可以看起来是源自CD-ROM驱动器并阻止应用执行期望操作的错误消息或哑数据。
磁盘监控
磁盘监控功能涉及监控由CD-ROM读出并沿驱动器链传送到应用的数据。如果检测到未授权行为,则读操作被阻止。
监控程序SP可以例如计算被尝试的读操作的平均数据传输速率、磁盘速度或类型。当磁盘在计算机中利用播放器程序播放时,磁盘的平均重放速度是非常低的,因为压缩数据是从第二段实时读出的。典型地,数据是以大约10∶1的比率压缩的;因此当播放相同时间段的压缩数据时,平均数据速率是这种情况下的大约1/10。
压缩数据可以高速度(突发传输速率)按块从磁盘中读出,后面跟着很长一段时间的休止状态。突发传输速率实际上可以高达并包括CD-ROM驱动器的最大读速度,但只有很短的时间。另一方面,CD复制软件一般试图以对持续不变时间段可能的最高速度进行复制。监控程序在预定的时间段上,例如10秒,监控平均数据读速度。如果平均速度超过一个阈值,则读操作被阻止。
监控程序可以监控CD-ROM读头的位置,从而识别出第一还是第二段被访问。如果第一段被访问,则监控程序阻止读操作。
读操作可以通过阻塞数据到达应用来阻止。弹出命令也可以发送到CD-ROM。
监控程序与播放器程序交互以阻止未授权行为。如果播放器程序没有打开,或者当磁盘还在CD-ROM驱动器中时被用户关闭,则监控程序向CD-ROM驱动器发送弹出命令。同样,如果受保护磁盘不再出现在CD-ROM驱动器中,则监控程序自己关闭。
在不同驱动器中同时有多于一个计算机可访问的受保护磁盘的地方,当由受保护磁盘的插入启动的时候,监控程序确定是否有其自己的另一实例已经在运行。如果有,则包含新磁盘的驱动器被加到由另一实例监控的启动器列表。如果没有,则使用监控程序的新实例。一旦所有被监控的驱动器都不再包含受保护磁盘,监控程序就从系统中除去自己。
总的来说,监控程序设计成检测除访问第二段的播放器程序之外对受保护磁盘的任何访问。如果磁盘是以任何其它方式访问的,则行为将被判定为未授权的,而且将由监控程序采取干涉行为。监控程序通过确认构成磁盘格式结构一部分的签名识别受保护的磁盘,而且不阻止普通磁盘的复制或干扰计算机的总体性能和/或行为。
CD生产
生产根据本发明一种实施方式进行格式化的CD需要在控制过程中使用专用软件,这在图5中说明。用于一条或多条轨道的源数据D在其本身可以是可记录CD或数字磁带的载体上提供。源数据由软件格式化(S10),以便产生上述格式的第一段和第二段,包括用于在CD上记录的播放器程序和监控程序。格式化数据利用如将数据写到有涂层的玻璃母版上的激光束记录器记录(S20)到CD母版上。玻璃母版开发(S30)成产生金属化的玻璃母版M。母版可以通过电铸成形方法(S40)用于产生一个或多个压模S。CD是由压模方法(S50)从压模S大批量生产的。在一种适于小批量生产的可选实施方式中,可记录CD可以直接利用格式化数据进行记录。
格式化数据可以作为设置成在随后的时间输入到记录器的数据记录。
本发明的实施方式包括格式化数据和/或控制记录过程从而产生具有根据本发明一种实施方式的格式的一张或多张CD的CD生产软件。实施方式还包括具有如上定义结构的格式化数据。
该生产软件可允许从扇区地址得出密钥的算法对每个生产的母版变化。有利地,用于制造给定母版M的算法中的常规变化会导致对于给定的扇区地址得出完全不同的密钥。该生产软件修改也记录在磁盘上的播放器程序的代码,因此它包含用于加密步骤的算法,从而允许播放器程序解密数据段。
以上实施方式纯粹是作为例子提供的。不过,对阅读本说明书的技术人员来说很明显的可选方式也可属于由权利要求书定义的本发明范围之内。