用于制作保护光盘的信息拷贝保护系统及其方法 本发明涉及一个防止通过复制信息来制作一张被保护光盘的系统,这类光盘包括至少一个主螺旋轨线与一个保护区,该保护区具有大小相同的两个部分,其中至少有一个部分属于该主轨线。它也涉及一种相应的防护过程。
特别是最近几年来,已经研制了无数用于防止非法复制光盘的技术。其中最简单的一种是在该光盘生产过程中,在该光盘的预定位置烧制一个防复制保护码。这个预定的位置应当使众多复制技术无法复制该光盘上的这一位置。播放器应当制造得能拒绝在该正确位置上没有保护码的光盘。但是很明显,任何制造得或改进得能阅读光盘上全部数据的设备都能够复制该光盘,包括它的保护码,而且所得到的非法复制品与原始光盘完全相似。
另一种已知技术是SCMS方法(“串行拷贝管理系统”),按照这种方法,一张光盘包含授权复制或不授权复制的SCMS码。一张带有授权复制地SCMS码的光盘可以被复制,但是该复制设备将该SCMS码改变成一个禁止任何其他复制的代码。然而,明显的是,当该光盘上的全部数据被原样复制时,这项技术与前一项技术有同样的缺点。
其他相对复杂的技术也一直被认为能够补救这种非授权复制问题。它们中的大多数都涉及在该光盘上使用一个“签名”或专用的印记。这可以包括该光盘的某些刻制参数(譬如这些标记的形状——深度、宽度、长度)的变化、引入这些标记的不对称性、轨线以特定频率摆动等等。这些变化构成了需要加以搜索的签名,而且无法用标准刻录器(如CD-R刻录器)复制。然而,这些光盘播放器必须探测这些变化,而标准播放器一般无法做到。这种方法的一个变化形式能够产生模糊代码字,当该光盘在标准播放器中连续几次播放时,它们能被读成不同的值。
另一种不同的技术包括故意损坏或毁坏该原始光盘中其地址可以加密的圈或扇区,从而构成一个烧制到该光盘的识别代码。但是,这类技术的一个缺点是,它需要该光盘的用户由一个多少有些复杂的存取提示加以鉴别,该用户必须将这个提示作为一个密钥引入才能访问该光盘的内容。这个提示常常必须要从有资格的站请求。所以这项技术增加了明显的限制。这种识别损坏部分的方法的另一个缺点是,它只能够隐藏少量的数据,所以能够很容易地将这些数据合并到该软件整体中去。再一个缺点是,从结构上讲,刻录这种标记是在商业光盘刻录器的范围之内,而重新复制这些光盘的惟一障碍是控制这些刻录器的软件不适合于管理这些标记、错误或省略。但是,对控制软件功能中的一个方面(在用户处理器或该刻录器内部软件级别上)进行修改就足以做到重新复制这些光盘。这里应当注意,该光盘的损坏措施在最严重情况下可以包括完全省略某些扇区。
为了尝试补救这类缺点并提高带有隐含代码的反盗版系统的安全性,人们已经基于中断螺旋线或基于分离区域开发了许多技术,在这些区域之间的数据分布方式能够禁止连续录制可执行数据。不过,这些技术可能使该光盘的信息密度产生下降,或者有时候必须使用非标准播放器。
一个似乎更加有希望的途经可以概述为:提供一张包括一个连续主螺旋线或轨线的光盘,在它们的各圈之间插入了一个副螺旋线段,并维持一张传统光盘轨线的标准轨距或间隔。因而,鉴别方法就包括只通过确认不在该主轨线上的特定识别或地址代码来“识别”该副螺旋线。但是,这项技术不能有效地获得利用一个不易被标准刻录器复制的区域所带来的绝大部分主要好处。
最近,人们一直提议借助于识别一个两等分保护区的物理存在来补救这些缺点,并产生具有这样一个区域所带来的绝大多数好处,而这个区域能够淘汰利用标准刻录器进行的传统复制。
这种特别有用的解决方法构想出一个防止复制的光盘,这类光盘包括至少一个主螺旋轨线,分布在地址沿该轨线实际上顺序排列的扇区中的信息标记被烧制到该轨线,这类光盘还包括具有大小相同的两个部分的一个保护区,每个部分都包括对每个部分采用完全相同地址标记的一系列扇区,存储在这个区域中的信息分布在这两个部分的扇区之间,而且该区域的每一个扇区还包含表征该扇区所属部分的识别信息,这些部分中有一个部分至少属于该主轨线。
一个防护子程序能够检查上述保护区域的存在与组成,并能够使用存储在这个区域内的信息,上述子程序的信息元素被记录在该光盘中。
如果这两部分之一被安置到局部排列在该主轨线各圈之间的一个副轨线上,那么存在一个两等分保护区域的这项优点就变得特别重要。由于这样一来,一个标准刻录器不可能产生一张带有两条轨线的光盘,所以通过确认该被读光盘的物理结构就能使一张光盘的任何非法复制变得非常困难。而且,即使对制造光盘母盘的生产设备的控制电子电路进行改造也无法使这些光盘能被复制。
为了进一步改进对复制的防护,本发明的目的就是通过对上述光盘增加一个软件部分来完成对上述光盘的大多数物理修改,该软件部分允许一个客户机应用程序最有效地利用这些物理修改,同时使一个盗版者的工作变得大为复杂、而且必须对每个产品重复几乎所有这种防范工作。
所以本发明涉及一个用于生成这样一张被保护光盘的系统,其特征是该系统包括:
-一个保护生成软件组件,在试图被容纳在上述光盘内的应用程序的出版商处,它被用来根据上述软件组件中该出版商选定的保护原理(element)以及该出版商选择的数据与参数来生成一个保护文件;
-一个运送设备,它包括上述应用程序与上述保护文件,以及这些相应的被保护文件在该被保护光盘上的位置,它们符合该出版商确定的一个树;
-一个预控制软件组件,在该光盘复制商处,它被用来根据上述运送设备所含的信息来确定并生成上述被保护光盘的两个部分的内容;以及
-存储装置,用来分别存储该主轨线连同该保护区域的第一部分的信息以及这个区域的第二部分的信息,以供该复制商用来实现该被保护光盘的控制与复制的后续操作。
借助这个能实现一定数量的可变更软件保护原理的系统,就能防止制造一个普通“补丁”(或者说软件修正,但是单词“补丁”通常在专门的环境下使用,故而以后继续采用),而且能使对所实现的保护的分析与理解变得更复杂。本发明的其他特征将随后在该说明中加以定义。
根据本发明的另一个方面,提供了一种防止对录制在被保护光盘上的信息进行复制的过程,这类光盘包括至少一个主螺旋轨线,分布在地址沿该轨线实际上顺序排列的扇区中的信息标记被烧制到该轨线,这类光盘还包括实际上具有大小相同的两个部分的一个保护区域,每个部分都包括对每个部分采用完全相同地址标记的一系列扇区,该保护区域的每个扇区包括表征它所属部分的识别信息,而且这些部分中的一个部分至少属于上述主轨线,上述过程的特征是,它包括根据在生成一个保护文件的过程中选定的软件保护原理来生成上述保护文件,而且将上述文件记录到该光盘的该保护区域。
该过程的其他特征将随后在该说明中加以定义。
借助于下文的说明及所附例图,本发明会变得更易于理解,而且其他特征与优点会变得显而易见。这些例图为:
-图1是一张被保护光盘的螺旋轨线圈的直线形式表示方法;
-图2是生成一张被保护光盘的出版商与复制商之间的、符合本发明的系统的一幅示意图;
-图3是符合本发明的系统的软件组件的软件结构体系的一幅示意图;
-图4是编码/解码保护原理的一幅示意图;
图1所示为被保护光盘的一种首选形式,其中一个螺旋轨线的每圈(回线)用一条从该图最左方画到最右方的线段表示。类似地,该图下方标记的是一条主螺旋轨线1开始出发的内部,该轨线在该光盘的外部结束。
主轨线1是排列在该光盘整个有用部分的一条连续螺旋轨线,它的扇区按照传统方式具有沿这个轨线实际上顺序排列的地址。一条副轨线2被插在在该主轨线的相邻圈之间,其排列方式使该轨线的轨距实际在该光盘的所有区域保持不变,并等于传统光盘(譬如CD-ROM或DVD-ROM光盘)中通常所用的标准轨距。两条轨线共存、而且在这两个部分上采用相同地址A至A+Q的这两等分区域被称为“保护区域”ZDP。在主轨线1与副轨线2上分别具有相同地址的两个扇区的结合被称为一个“寄存器”。将来可以看出,该保护区域的每个扇区包括一项识别它所在轨线的信息。该保护区域中属于该主轨线的部分将被标记为pA,而该区域ZPD中属于该副轨线的部分将被标记为pB。
很明显,对一个始终处于相同条件的给定地址进行连续读取的一个标准播放器在统计意义上具有始终读取该相同部分的扇区的所有机会。所以,那种必须能够将一个双轨原始光盘与一个单轨复制品加以区分的该光盘的物理结构识别就包括从该主轨线中地址低于该搜索地址的一个ZSA区域对一个ZDP扇区进行一系列读取(这样就存在读取首先出现的副轨线上扇区的所有机会),然后从地址高于该搜索地址的一个ZSR区域对该相同地址进行一系列读取(这样就存在读取该主轨线上该扇区的所有机会)。因而,如果在这两个一系列读取之后已经发现了该ZDP区域的两个不同的识别信息,那么就能够由此得出结论:确实面临一张具有两个轨线pA与pB的原始光盘。
但是,这种防止复制的物理保护被认为是不充分的,为了区分一个原始光盘与一个复制品,应当以能获得绝大部分这类物理特点的软件保护加以补充。
应用程序(游戏、百科全书等)的软件保护是几类盗版者的攻击主体,盗版者类型取决于他们的行为是出于娱乐原因(借助他们的技能理解并“破译”一个软件,然后公开发表)、经济原因(伪造并压印去掉保护的光盘)或无政府主义原因(尽可能广泛地散布一个应用程序的补丁而对该方法不加解释)。
对于一个防复制系统的最危险的攻击是生成一个补丁并加以散布。现在很清楚,不可能防止对一个给定应用程序生成一个补丁;但是,可以使这个任务变得很昂贵、很困难。此外,如果对每个应用程序修改保护,使得他们必须重复所考虑的任务,那么也就不再可能自动生成能够防范该保护的补丁,而且也就不再可能自动压印去掉保护的光盘。
所以,本发明的目的是通过使该系统能够加以变更、并使该保护的分析与理解大为复杂化来防止制造一个普通的补丁。
为此,符合本发明的系统要根据两方面的原理:让应用程序的出版商确定他的保护政策以及将随机性引入该保护组合的结构。
符合本发明的保护系统既介入需要保护的一个应用程序的出版商处,又介入参加变换后数据刻录的光盘复制商或压印商处。图2是生成一张被保护光盘的保护系统以及它的实施方案的一幅总体示意图。
该出版商从它的功能应用程序12开始,并对他希望隐藏的敏感数据、应当采用的保护等级、在出现盗版复制品或未遂侵入的情况下需要施加的制裁类型以及用来在他的搜索中试图阻止及挫败盗版者的干扰/转移/欺骗情节作出决定。他在他的工作站中采用生成软件组件10提供的一系列软件工具来实现他的保护策略,这些软件工具能将这些保护插入他的应用程序、按照他选择的安全等级来自动产生用于保护该数据的算法与密码、将选择的数据隐藏到该保护区域而且植入并放置诱饵。
该出版商所作的策略选择的引入在图上用输入15表示。然后该系统生成一个实现这些选择的、代表该保护区域的保护文件。该出版商在他的工作站上自由使用他的文件来生成他的应用程序树,而且将该保护文件(在他规定的地方并以他规定的名称)加到这个树。如此植入并放置的、带有这些保护的应用程序被转移到一个运送或转移媒体CD-R1,这最好是一张可记录光盘。这个媒体被转送到该复制商/压印商,他再在他的工作站21上执行预控制操作,这种预控制操作包括根据一个预控制软件集合20来将该媒体CD-R1上的数据变换为控制与压印该最终被保护光盘所需的形式。举例来说,这些数据可以被记录在两个可记录光盘CD-R2与CD-R3上,它们分别包含需要刻录到该最终光盘的主轨线上与该副轨线上的数据。它们也可以由其他被保护的或未被保护的、用于存储与/或转移信息的设备来转移(譬如数据链接、带有或不带有加密的长途通信)。
符合本发明的系统的生成软件组件可以通过定义一定数量的保护原理并将这些原理排列到一起来加以描述。在生成一个保护文件(该保护文件代表该被保护最终光盘的保护区域ZDP的内容)的该出版商处内的生成期间、在该压印商处内的预控制期间、以及在该出版商的一个用户客户机使用该被保护应用程序期间,该软件组件都会参与其中。
该软件组件包括符合图3所示体系结构的一定数量的部件,这些部件能应用于该系统的任何客户机应用程序。
这些部件包括一个连接该客户机应用程序的接口100、一个按照扇区访问媒体13并访问该两等分保护区域的部件103、一个用于管理该轨线识别程序及进行数据格式化的部件102以及一个包含所有无保护算法(校验CRC——循环冗余代码——类型代码所用的计算、数据的矩阵变换、编码算法等等)的库101。这些部件由该出版商在他选择的地点并以他选择的名称复制到该应用程序树。
在符合本发明的系统的生成软件组件所能够提供的保护原理中,第一种原理包含识别该保护区域中的部分/轨线的信息的可变定位。这种保护原理包括一种用于计算每个扇区中的识别信息位置的功能,该位置被认为是该保护区域ZDP中该扇区的相对位置以及这个区域的绝对开始位置的函数。举例来说,可以设想从该扇区的绝对位置值到零与该扇区字节数N之间的一个值的各种变换规律,这就构成了该扇区的识别信息的位置或者包含它的字节的位置。
这种可变定位的一个显著优点是,一旦该保护区域的开始位置发生变化,该识别信息的位置就发生变化,在该光盘的内容发生变化(该出版商改变他的选择)时一定是这种情况。
另一种保护原理包含隐藏该出版商选择的数据,特别是他认为敏感的数据。具体地讲,其目的是使恢复该应用程序以外的数据的操作变得更加复杂。为此,该系统能够植入数据、在对它们进行变换后将它们分布到该保护区域的轨线pA与pB。举例来说,对该保护区域的每一个寄存器提取一个随机数k,以便按照下述方式实现所接收到的数据的矩阵变换:该初始数据被认为是大小为k加一个余数(如果有的话)的一个矩阵集合,而且在每个矩阵中将行与列交换并同时维持该余数(如果有的话)不变。然后将该数据的一半写到pA,一半写到pB,同时加入适当的轨线识别信息并将它们加到该希望的位置。
该生成软件组件还可以提议植入诱饵作为保护原理。一个诱饵的目的是使人相信该应用程序在尽可能长的时间内运行正常,以至于很难搜索该诱饵将会引起的异常影响的来源。一个诱饵的植入在一个寄存器的两个扇区进行,其方法应使读取该保护区域的一个单独部分/轨线至少在时间会明显地引起该应用程序的正确但不同的功能,甚至引起更坏的情况。
往往会使该保护区域内数据的恢复变得复杂的另一种保护原理是按照该出版商选择的安全等级来对数据进行编码/解码。事实上存在几个安全等级,该出版商必须在安全与速度之间作出正确的折衷,因为作为一个一般规则,一个算法越安全,它也越慢。最好,该第一等级包括直接加扰。对其他安全等级,该生成软件组件采用几种所需执行时间相当的算法,而且在选定的等级之内,它自己会随机选择一个算法。该相关的编码密钥由该系统产生,并由该应用程序管理。为了保护这些应用程序包密钥,该系统产生一个由它自己管理的专用编码密钥。一个编码模块包含该选定的安全等级、该编码/解码算法(或者更精确地说它的标识符)以及一个专用密钥。只有在编码/解码操作过程中从该模块装载/卸载它的应用程序才知道该应用程序包密钥。
这个过程被示意地画在图4中,从图中可以看出有一个模块30,它包含该专用密钥31以及相关算法32;应用程序包密钥42,它与该专用密钥在33处联合生成可变密钥34,该算法30需要用它来进行编码/解码操作35,从而能够从该应用程序的源数据40变为编码数据41,或者作相反变化。
另一种重要的保护原理包括一系列抗侵入措施。这些措施的目的基本是防止通过使用调试程序(譬如SoftICE,这是注册商标)来分析与理解该应用程序的运行方法,并核实该应用程序或它的数据尚未被修改。
一个第一措施包括一旦该应用程序开始运行就禁止使用已知的调试程序(譬如SoftICE)。这些措施另外还包括一种按照(来自该应用程序的)请求来探测调试程序存在的功能。其原理是在不同位置乘以核实次数,以便使防范复杂化。
还提供了一种借助计算CRC来校验这些代码完整性的功能。特别是,能够计算该原始系统的各种部件的CRC16,然后在装载这些部件时校验这些代码。还可以提供一种根据存储在该保护区域内的数据来校验该光盘的签名的功能。举例来说,它包括在生成一个光盘的过程中计算扇区的有用数据的CRC32以及在使用时校验这个值。
还提供一种对若干预定功能探测不正确执行时间的功能。
这些抗入侵措施就构成了在至少探测到一个异常情况时被触发的防范措施。这些防范措施包括根据所探测到的异常情况的性质及危险性使该系统处于不同的状态。如下事实表示不稳定状态:扇区的一次请求读取引起另一个扇区(不准确数据)的读取、或者因为已经离开了该保护区域而使读取失败、或者没有进行读取却返回了不一致的数据。在初始化期间探测到一个调试程序的存在或者在使用签名校验功能之后就可能不对该应用程序发出警告而触发这种不稳定状态。
在任何需要从该保护区域读数的随后操作中,不进行通知就暂停该系统表示临界状态。因为初始化未被充分执行或者按照请求进行探测的功能探测到一个调试程序的存在就可以引起这个临界状态。
不发出信息或通知就立即使该系统丧失功能表示失效状态。当该代码的完整性未得到保证或者出现不一致执行时间的情况下就引起该失效状态。
这些保护原理并不提供对该出版商处的安全缺陷的防护。因而要提供一个能自动保护的系统,而且要用一张由符合本发明的系统所保护的光盘本身来向该出版商供应一个生成软件组件。
如果该保护文件已经由该出版商生成并已被植入要转录到该运送光盘CD-R1的应用程序的一个树,那么就必须执行预处理操作来为光盘CD-R2与CD-R3重新写入该数据,以便使它们能分别出现在该被保护最终光盘的主轨线与副轨线。预控制软件组件的任务是生成这些光盘的数据的图像。这个组合特别包括一种计算该两等分保护区域开始位置的功能、一种计算该轨线识别信息位置的功能以及一种将上述识别信息放置到为上述扇区算得的位置上的扇区写入功能。
应当注意,该生成软件组件将会干预该预控制软件组件,该预控制操作中的一项操作是用一个使用软件组件来代替该生成软件组件,为了调用该使用模式中所需的生成组合功能,该使用软件组件包含有重新命名的类似部件,该使用模式允许该被保护应用程序使用该保护。
计算该保护区域开始位置的功能包括在从该运送光盘CD-R1的数据中读出的扇区内搜索主轨线pA上包含轨线pA的保护区域信息开始位置的一个扇区,随后立即搜索轨线pB上包含该第二部分的区域信息开始位置的一个扇区,还包括核实这些条件刚刚出现,而且核实保护区域的开始位置与该主轨线的开始位置与结束位置的距离大于预定的值。
至于计算该部分/轨线识别信息位置的功能,与前面对生成软件组件描述的类型相同。
用于携带预控制后所得数据的首选解决方案包括传统的可记录光盘CD-R2与CD-R3。
当然,上述的各种组合与功能可以与传统的初始化、数据刻录与读取、或者文件装载/卸载功能相互补充。
很明显,本发明最好应用于一张具有物理上分离的双轨的被保护光盘。但是,也不排除通过必要的改造而使保护区域在相同轨线上具有两个等分的解决方案。
而且也很清楚,上文的说明能够同时定义一个采用这些相同的保护原理来防止信息复制的相应过程。
当然,即使设想并添加其他保护原理,符合本发明的系统与过程的原理也仍然正确。