用于允许软件产品试用期使用的方法和装置的制作方法

文档序号:6409003阅读:412来源:国知局
专利名称:用于允许软件产品试用期使用的方法和装置的制作方法
技术领域
本发明总体上与使软件对象的存取安全化的技术有关,尤其与暂时加密及限制存取软件对象的技术有关。
软件产品的生产和销售为具有创新产品的公司创造了巨大的财富,尤其是由于随着时间的推移消费者正变得更懂计算机,这种趋势将继续下去。由于潜在的用户很少有机会浏览能得到的各种产品,计算机软件难于走向市场。典型地,软件产品放在包好密封的盒子中,潜在的顾客在购买软件前很少有或根本没有机会实际交互使用或体验一下软件。这引起消费者对软件产品相当大的不满,因为消费者常常被迫连续购买多个软件产品直到找到一个可接受的软件。这或许是在我们的经济生活中发生大量软件盗版的一个重要原因。潜在的软件买主常常从朋友或商业伙伴那里“借”一盒软盘,说是打算暂时使用一下该软件,这种暂时使用常常延续很长的时间而潜在的消费者可能再也不买该软件的拷贝了,他可能依赖于那份借来的拷贝。
由于不存在提供软件产品货样的公共渠道,诸如影剧院里的电影预告片和电视上的商业广告,软件制造商被迫依靠印刷出版物和直接邮寄广告来发布新产品广告和征求新消费者。不幸的是,印刷出版物常常不能提供产品的精确描述,因为用户与产品的交互操作不能以静态的印刷格式来描述。如果顾客在作出是否购买软件产品前能获得这种产品,并且如果此举不会带来非法使用软件的风险,那么计算机软件制造商和顾客两者都很好地被满足了。
分发经过加密的软件是软件销售商可用来在潜在用户购买前把软件分发给他们的一种机制;然而,必须分发一个允许用户使用该软件产品的密钥。这样,销售商被迫完全依赖潜在顾客的诚实和正直。无耻和不诚实的个别人可能把密钥给他们的朋友和商业伙伴从而允许未经授权使用软件。也可能那些无耻的个别人把密钥公布在大家都能访问的公告牌上而使许多人成为未经授权的用户。典型地,这些类型的安全上的缺口不易被阻止,因此销售商们对于把软件产品分发给潜在的用户预使用有些犹豫。
本发明的一个目的是提供一种方法和装置用于从制造商那里把软件分发给潜在的用户,这种方法和装置给用户一段暂时试用期而不使软件产品在超过试用期后蒙受盗版或未经授权使用的不必要的风险。最好通过与文件管理程序一起在计算机可存取存储介质上提供一个软件对象来完成,最好通过一个或多个特殊的加密操作,软件对象被可逆功能限制。利用惯常的邮寄和投递服务,计算机可存取存储介质从制造商那里送到用户手中,收到后,潜在用户把文件管理程序装入用户控制数据处理系统中并且把它和数据处理系统的操作系统联合起来。然后,利用用户控制数据处理系统读取计算机可存取存储介质。文件管理程序由用户控制数据处理系统执行并且用于限制在一个预定的和暂时的试用期对软件对象的访问。在暂时试用操作模式期间,通过反转可逆功能限制使软件对象暂时可用。这最好通过当软件对象被用户控制的数据处理系统的操作系统调用时对经过加密的软件进行解密来完成。文件管理程序最好阻止拷贝操作,这样,经过加密的软件在被操作系统调用时暂时被解密。如果用户决定购买该软件,则进入永久使用模式,软件对象的功能限制被永久反转,允许潜在用户不受限制地使用软件。这便于浏览操作,这些操作允许潜在用户审查软件并确定它是否适合他的或她的需要。
文件管理程序不间断地监视用户控制的数据处理系统的操作系统的操作系统输入调用和输出调用。文件管理程序识别何时用户控制数据处理系统的操作系统调用用于试用期浏览的软件对象,然后,文件管理系统取出与软件对象相关的暂时存取密钥,检查暂时存取密钥以确定它是否有效。接着,文件管理程序反转软件对象的功能限制,将它传送给数据处理系统处理。
本发明的另一个目的是提供一种方法和装置用于从制造商那里分发软件给用户,这里,软件对象用长寿命加密密钥进行加密,并由制造商寄给用户。经加密的软件对象安装到具有特殊系统配置的用户控制数据处理系统上。这样得到一个至少部分基于用户控制数据处理系统的特殊配置的数字机器标识,接着,得到一个至少部分基于数字机器标识和长寿命加密密钥的暂时密钥。提供一个长寿命密钥发生器用于接收暂时密钥并产生长寿命加密密钥。暂时密钥允许用户产生用于指定时间的长寿命加密密钥以便存取软件对象。这些操作原则上由可以多种模式操作的文件管理程序完成。这些操作模式包括建立操作模式,机器识别操作模式和暂时密钥导出操作模式,在建立操作模式期间,文件管理程序被安装到用户控制数据处理系统上并且与用户控制数据处理系统的操作系统相关联。在机器识别操作模式期间,文件管理程序被用来得到至少基于用户控制数据处理系统属性的数字机器标识。在暂时密钥导出操作模式期间,得到一个至少部分基于数字机器标识的暂时密钥。文件管理程序还允许一个试用操作模式,在该模式中,通过与用户控制数据处理系统一起执行文件管理程序,文件管理程序被用来在暂时密钥所定义的时间内限制存取软件对象,在此期间长寿命密钥发生器被用来在用户控制数据处理系统中提供长寿命密钥以响应收到至少一个包含暂时密钥的输入。
本发明的另一个目的是在数据处理系统中提供一种方法和装置用于安全地存取存储于计算机可存取存储介质中的特殊文件。文件管理程序被提供来用作数据处理系统的一个操作系统组成部分。多个文件被存储在计算机可存取存储介质中,包括至少一个经加密的文件和至少一个非加密文件。对于每个加密文件,一个预选定的部分被记录在计算机存储器中,生成含有可以用来解密文件的信息的解密块,解密块并入文件中以代替记录于计算机存储器中另一处的预选定部分。文件管理程序用于监视对存储于计算机可存取存储介质中的被调文件的数据处理操作调用。文件管理程序确定被调文件是否有一个相关解密块。根据被调文件是否有相关解密块,文件管理程序以特殊的方式处理被调文件。解密块的并入不改变加密文件的大小,因此防止了某些类型的处理错误。在试用期,加密文件保持在加密条件下,不能被拷贝。如果用户决定购买该软件产品,则提供一个永久密钥,它导致文件预选定部分的替换品代替解密块。一旦解密块被移走,加密文件就被解密从而允许用户不受限制地使用软件。最好是,文件管理程序用于在操作系统调用文件时截取它们,利用解密块导出密钥文件名并读取被调文件。每个加密文件的解密块包括一个确认段,该确认段由文件管理程序解密并且与为被调文件选定的段相比较以确定密钥能否解密特定文件。如果被解密的确认段与一个已知明文确认段相匹配,那么在文件被送去进一步处理时被动态地解密。
本发明的另一个目的是在数据处理系统中提供一种方法和装置用于安全地存取存储于计算机可存取存储介质中的特殊文件。提供一个文件管理程序作为数据处理系统的操作系统组成部分。在数据处理系统可得到的计算机可存取存储介质中,保存至少一个加密文件和一个非加密文件。加密文件与至少部分由可执行代码构成的非加密安全存根相关。文件管理程序用于监视数据处理系统对存储于计算机可存取存储介质中的被调文件的调用,确定被调文件是否有一个相关非加密安全存根,根据被调文件是否有一个相关非加密安全存根以特殊的方式处理被调文件。尤其是,如果确定被调文件没有相关非加密安全存根,那么被调文件被允许处理。然而,如果确定被调文件有相关非加密安全存根,那么在决定是否允许处理被调文件之前必须检查它。首先,检查非加密安全存根以得到允许执行解密操作的信息。然后,执行解密操作,最后,被调文件允许送去进一步处理,被调文件最好是在送给操作系统处理时动态解密。而且,非加密安全存根在被调文件执行前从被调文件中分离出来。然而,如果非加密安全存根碰巧仍然附着在被调文件上,那么必须停止处理操作且必须发布一条消息以阻止处理机被锁住。
本发明的另一个目的是提供一种方法和装置用于从制造商那里分发软件对象给用户,计算机可存取存储介质从制造商那里分发给潜在的用户。它包括一个用预定加密手段加密的软件对象和一个长寿命密钥。提供一个便于制造商和用户交流的界面程序,界面程序包括机器标识模块,该模块使用至少一个用户控制数据处理系统的预定属性来生成机器标识。界面程序还包括一个长寿命密钥发生器,该发生器接收至少一个暂时密钥作为输入并且产生一个长寿命密钥作为输出。提供一个确认模块检测暂时密钥以确定它的有效性。软件制造商维护一个暂时密钥发生器,该发生器接收至少一个机器标识作为输入并产生暂时密钥作为输出。界面程序安装到用户控制数据处理系统上。机器标识模块用于检查至少一个用户控制数据处理系统的预定属性并生成机器标识。在制造商和用户交流期间,机器标识通过一个非可靠的通信渠道传送。在软件制造商那里,用机器标识(和其它信息)作为暂时密钥发生器的输入来生成暂时密钥,在制造商和用户间相互交流期间,传送暂时密钥,典型地是通过一个非可靠的通信渠道。接着,确认模块被用于确认暂时密钥的有效性。然后,长寿命密钥发生器被用来接收暂时密钥并产生长寿命密钥以解密并暂时获得对软件对象的存取。还提供给用户一个输入模块和一个输出模块,这两个模块允许使用便携存储介质把加密软件对象、密钥文件以及机器标识文件从分布式数据处理系统中的一台机器上传递到分布式数据处理系统的另一台机器上,并允许暂时密钥允许对软件对象的暂时试用存取。
上面以及另外的本发明的目的,特色和优点在下面的详细书面叙述中将变得显而易见。
被认为是本发明特征的新特性在后面所附权利要求中陈述。然而,通过结合附图参阅以下一个用作说明用的实施例的详细叙述,本发明本身以及较佳使用方式、进一步的目的和由此而来的优点将得到最好的理解,其中

图1是一个独立数据处理系统,一部电话以及在允许软件产品试用期使用的较佳技术的实现过程中均可用到的各种计算机可存取存储介质的图示;图2是可使用允许软件产品试用期使用的本发明的技术的一个分布式数据处理系统的图示;图3是数据处理系统属性的框图,根据本发明,这些属性可用于生成机器标识;图4是用于加密软件对象的程序的框图;图5是根据本发明的说明,在制造商(软件销售商)和用户(顾客)之间的信息交换的图示;图6是根据本发明,建立用户界面外壳所用的一般步骤的流程图;图7是根据本发明销售商和顾客交流的流程图;图8、9、10a和10b根据本发明描述了便于试用期操作的用户界面屏幕;图11描述了用于初始化暂时存取密钥的用户界面;图12是生成机器标识的较佳技术的框图;图13是根据本发明,用于加密机器标识的加密操作的框图;图14是根据本发明,生成产品密钥的较佳技术的框图;图15是用暂时产品密钥生成可用于解密一个或多个软件对象的实际密钥的较佳技术的框图;图16和17描述了确认实际密钥的较佳技术,实际密钥根据图15的框图得到;图18是加密密钥文件的较佳程序的框图,密钥文件含有包括暂时产品密钥在内的信息图19是根据本发明,处理加密文件中的加密头的较佳技术的框图;图20以框图的形式描述了使用用户控制的数据处理系统中的多个输入来得到可用于解密经过加密的软件对象的实际密钥的技术;
图21描述了使用由图20得到的实际密钥的解密操作;图22是用于确定实际密钥的有效性的比较操作的框图;图23描述了使用经确认的实际密钥的解密操作;图24、25、26、27、28描述了根据本发明对加密头的使用;图29是为加密软件对象提供使用试用期的较佳技术的流程图;图30和31描述了可用于在分布式数据处理系统中执行试用期使用操作的输出和输入操作;图32和33提供了图30和31所描述的输入和输出操作的另一种意见;图34和35提供了用于执行输出/输入操作的另一种技术的框图。
用于允许软件产品试用期使用的本发明的方法和装置可用于诸如图1所描述的独立PC中,或用于诸如图2所描述的分布式数据处理系统中。在任一情况下,暂时试用期存取一个或多个软件产品依赖于在具有特殊数据处理系统属性的特殊数据处理系统上的试用产品的使用。这通过用基于一个或多个数据处理系统属性的暂时存取密钥加密试用软件产品来完成。图3用图形描述了多个系统配置属性,这些属性可用于开发暂时存取密钥,下面将对之作更详细的叙述。作为开头,先详细叙述图1的独立数据处理系统和图2的分布式数据处理系统的环境,跟着叙述图3所示的特殊系统配置属性。
现参看附图,尤其参看图1,它描述了根据本发明来设计的数据处理系统10。正如所看到那样,数据处理系统10包括处理机12(最好含图形处理器),存储设备以及中央处理器(没有画出)。连到处理机12的是视频显示器16,它以本技术中众所周知的方式由一台彩色或单色监视器来实现。键盘14也连到处理机12。键盘14最好由一个用电缆连到处理机上的标准计算机键盘构成。图形指示设备也连到处理机12,比如鼠标20。鼠标20以本技术中众所周知的方式(如通过电缆)连到处理机12。如图所示,鼠标20包括左按钮24和右按钮26,每个按钮可被按下(或“揿击”)用以提供命令和控制信号给数据处理系统10。虽然所提示的本发明的实施例使用鼠标,但本技术的专业人员会懂得诸如光笔或触摸屏的任何图形指示设备可用于实现本发明的方法。参考前面所述,本技术的专业人员会懂得数据处理系统10可用所谓的个人计算机来实现,比如Armonk,New York的国际商用机器公司(IBM)所生产的Model 80PS/2计算机。
虽然本发明可用于独立数据处理系统中,但它也可用于分布式数据处理系统中,只要本发明的输入和输出程序通过便携存储介质(比如软磁盘或磁带)在分布式数据处理系统内的特殊数据处理单元之间用来传递一个或多个加密文件,它们的加密密钥文件和相关的文件管理程序。虽然下面将更详细地叙述本发明的输入和输出程序,但叙述并理解基本的分布式数据处理系统还是很重要的。
图3提供了多个数据处理系统属性的框图。这些属性可用来唯一地识别一个特殊数据处理系统(一个独立数据处理系统或分布式数据处理系统中的一个节点),并进一步用来生成用于得到或生成暂时存取产品密钥的机器标识值,暂时存取产品密钥用于在一段特殊预定试用期内存取加密产品。一个数据处理系统包括一个特殊系统总线60体系结构,一个特殊存储器控制器74,总线控制器76,中断控制器78,键盘鼠标控制器80,DMA控制器66、VGA视频控制器82,并行控制器84,串行控制器86,软盘控制器88和硬盘控制器82。另外,多个空的或被占用的槽106可用于识别特殊数据处理系统,每个特殊数据处理系统具有可从RAM70,ROM68或CMOS RAM 72中得到的属性。诸如打印机96,监视器94,鼠标92,键盘90,软盘100或硬盘驱动器104这样的终端设备可用来得到数据处理系统的一个或多个属性,这些属性用预定的方式进行处理以碍到机器标识直。下面将更详细地叙述得到机器标识值的过程。本发明针对的是分发软件程序给用户的方法,这种方法给用户提供一个手段以便在获得(通过购买)使用软件许可之前试用软件程序。根据这一概念,存放在诸如软盘或CD-ROM这样的计算机可存取存储介质上的全部的程序被分发给潜在用户。这一概念要生成允许用户从分发的介质上存取程序的密钥,在这种环境下,文件管理程序提供允许用户浏览不同产品的多个界面。这些界面允许定购和解锁存于分发的介质上的软件产品。软件产品的解锁通过暂时存取(解密)密钥的接收、确认和记录来完成。
文件管理程序驻留在用户控制数据处理系统中并成为用户计算机上的操作系统的一部分。这样的驻留程序(在PC DOS环境下)的一个例子是驻留程序TSR(表示“终止及暂停驻留”操作),它截取并处理DOS文件输入和输出操作,当暂时存取密钥提供给用户时,检查系统文件以查看该文件以前是否用于试用操作模式。如果产品从未用于试用操作模式,则保存暂时密钥。一旦存在试用操作模式密钥,只有由文件管理程序启动,被加密应用程序才可运行。文件管理程序会识别应用程序已被加密以及存在用于特殊操作的有效试用操作模式密钥。有效试用应用程序模式密钥是没有到期的密钥。试用操作模式可由计时器或计数器定义。计时器用来倒计时一个特殊预定时期(比如30天);另外,计数器用来递减在试用操作模式期间所允许进行的试用“对话期”的预定次数。如果密钥有效,文件管理程序直接与TSR通信并允许一特殊加密应用程序进入试用操作模式。然后文件管理程序分离加密应用程序。驻留在用户控制数据处理系统的操作系统中的代码维持对操作系统的控制。它监视试用操作模式密钥的使用以允许文件被解密并被装载到存储器中,但阻止加密文件被解密并拷贝到介质。这通过使用操作系统来确定哪个应用程序正试图存取数据和只允许具有存取数据许可的应用程序存取数据来完成。
图4是用于加密软件对象的程序的框图。
构成软件对象201的二进制字符作为输入提供给加密工具205。在加密工具205中,实际密钥203用作加密密钥。加密工具205的输出是加密软件对象207,加密工具205可以是任何惯用的加密操作,比如公开且著名的DES算法;另外,加密工具205可以是一个对软件对象201进行随机化的“异或”操作。
图5是制造商209(软件销售商)和用户211(潜在顾客,根据本发明的说明)之间信息交换的图示。制造商209和用户211间的箭头代表销售商209和用户211之间对象或信息的交流。在流213的交换中计算机可存取存储介质从制造商209邮寄给用户211。这个传递可通过美国邮件投递,信使投递,特快服务投递或诸如书和杂志等印刷出版物的投递来产生。另外,使用电子邮件或其它传输技术,电子文件可以从制造商209传递到用户211。在流215中,用户特有的信息,最好包含一个标识用户211的数据处理系统的唯一的机器标识号,通过一个非可靠的通信渠道从用户211传到制造商209;典型地,该信息通过电话来交换,但也可以用电子邮件或其它通信技术传递。在流217中,制造商209提供一个产品密钥给用户211。产品密钥允许包含在存储介质中的产品在一规定且预定的时期内被暂时存取。这个时间被认为是一个“试用”期,在此期间用户可以熟悉软件并决定他或她是否愿意购买该软件产品。用户211必须又与制造商209通信以获得永久存取软件产品。产品密钥允许用户211在一个特殊预定的时期内或在一个预定“对话期”的特殊次数内存取软件产品。随着时间流逝,用户时钟倒计时或计数器倒计数。在试用期结束时,进一步的存取被拒绝。因此,用户211必须采取肯定的步骤和制造商209联系并购买永久密钥,它被送给用户211并永久地解锁软件产品以允许不受限制地存取软件产品。
用户界面便于制造商209和用户211间的通信。在图6中以流程图的形式描述了界面的创建。过程在软件块219开始,在软件块221继续,这里制造商209进行语言和现场选择,该选择将确定便于实现软件产品试用期使用的界面所采用的语言和通用选项。多个软件产品可以一起放在一个计算机可存取存储介质上交给用户211。所以,根据软件块223,制造商209必须确定,就程序而言,在试用的基础上哪些是在计算机可存取存储介质上可得到的,并且根据软件块223完成适当的字段。接着,根据软件块225,程序在功能上被限制或被加密。然后,根据软件块227,外壳与计算机程序产品一起装到计算机可存取存储介质上,比如软盘或CD ROM。该过程在软件块229结束。
图7是根据本发明销售商和顾客交流的流程图。流程在软件块231开始,在步骤233继续,这里,计算机可存取存储介质被分发给用户在试用与购买的试用期内使用。然后,根据步骤235,文件管理程序从计算机可存取存储介质安装到用户控制数据处理系统上执行,文件管理程序包括多个界面屏幕,这些界面屏幕便于销售商和顾客间的交流并在以后设置顾客可得到的选项。因此,根据步骤237文件管理程序允许浏览和显示适当的用户界面。接着,根据步骤239,顾客和销售商交流,典型地通过电话或电子邮件,以便让销售商收集关于顾客的信息和分发暂时密钥,该暂时密钥允许存取存放在计算机可存取存储介质上的在一个预定的试用期内使用的一个或多个软件产品,典型地,试用期由内部时钟定义,或由跟踪潜在用户与某一或多个特殊软件产品的对话数的计数器来定义,步骤241表示允许试用期使用,然后,根据软件块243,文件管理程序监视并检查数据处理系统中所有的输入和输出调用以阻止未经授权而使用存放在计算机可存取存储介质上的加密软件产品。在本发明的较佳实施例中,文件管理程序监视对加密文件的调用,然后在文件被送去作进一步处理前确定是否允许或拒绝存取。顾客可以存取软件产品并确定他或她是否愿意购买该产品。如果作出决定购买软件产品,那么顾客须再次与销售商交流。销售商须给顾客一个永久密钥,如下面在步骤245所做的一样。用户收到永久密钥,解密他或她购买的一个或多个软件产品并被允许正常地不受限制地存取软件产品,这时过程结束。
图8、9、10a和10b根据本发明描述了便于试用期操作的用户界面屏幕。图8描述了当用户从另一窗口选择“查看订购”选项时显示的订购单用户界面249。订购单用户界面249包括标题条251,它标识软件销售商并提供一个电话号码以便于潜在顾客和销售商之间交流。提供一个订购单字段255,它标识在操作试用期期间要查看的一个或多个软件产品。提供多个子段,包括数量子段259,项目子段257,描述子段260和价格子段253。删除按钮261允许潜在顾客从订购单字段中删除项目。总计字段263提供所订购软件的总计价。付款方法图标265标识可接受的付款方式。当然,潜在用户可以利用电话号码直接与销售商联系并购买一个或多个软件产品;另外,用户可为试用期操作模式选择一个或多个软件产品,在此期间查看软件产品以确定是否适用。在订购单界面249的最下面提供多个功能图标。它们包括关闭图标,传真图标,邮寄图标,打印图标,解锁图标和帮助图标。用户可利用图形指示设备用惯用的指示与揿击操作来选择一个或多个这些操作。传真图标利于用传真机或传真卡与销售商交流。打印图标允许用户生成与软件销售商交流的纸张档案拷贝。顾客,计算机可存取存储介质以及顾客使用的计算机系统由介质标识269,顾客标识273和机器标识271来表示。在运到潜在用户那里之前,介质标识就被分配给计算机可存取存储介质。它是固定的,不能更改。顾客标识273从潜在顾客与销售商之间的交流中得到。顾客最好提供在电话交谈中选择的问题的答案,销售商提供顾客标识273,它对于一个特殊用户来说是唯一的。机器标识利用驻留在计算机可存取存储介质上的文件管理程序自动得到,它对于潜在用户使用的特殊数据处理系统来说是唯一的。潜在用户提供机器标识给销售商,典型地通过电话交流,虽然也可能用传真交流或常规邮寄交流。
图9表示订购单对话界面275。该界面便于得到唯一地标识潜在顾客的信息,这些信息包括姓名字段277,地址字段279,电话号码字段281,传真号码字段283,付款方法字段235,运送方法字段287,账号字段289,截止日期字段291,增值税标识字段293,订购信息对话界面275还包括打印按钮295和取消按钮297,它们允许潜在用户从这些字段中删除信息或打印界面屏幕的纸张拷贝。
图10a和10b描述解锁对话界面屏幕301、303。用户使用图形指示设备来选择一项或多项,这些项由解锁列表305的组成部分--内容项号码字段307和叙述字段309来标识。界面还包括顾客标识字段313和机器标识字段315。销售商最好在通过电话,传真或邮寄的交流中向顾客提供顾客标识。顾客最好在通过电话,传真或邮寄交流期间向销售商提供机器标识字段315中的机器标识。一旦交换了信息,除了试用操作期所需的产品标识以外,还提供位于密钥字段311中的暂时存取密钥。密钥用来暂时解锁由顾客标识和选择的产品。在该界面屏幕上还提供关闭按钮319,保存按钮317以及帮助按钮321以利于用户交互。
图10b描述了单一产品解锁界面屏幕303。该界面屏幕只包括机器标识字段315,顾客标识字段315和密钥字段311。被解锁的产品无须在该界面中标识,因为对话只是有关一个产品的并假设用户知道该产品要求一个暂时试用操作期。在该界面内还提供保存按钮317,取消按钮319和帮助按钮321以便与操作者交互。
图11描述用于为了开始试用期操作模式而解锁一个或多个加密产品的用户界面屏幕。在选择了图10a或图10b的解锁对话中的“保存”按钮后,显示图11的起始日期对话。用户将被提示以确认日期字段310中提供的正确起始日期。用户通过指示并揿击“继续”按钮312,“取消”按钮314或“帮助”按钮316来响应该请求。显示在字段310中的日期从用户控制数据处理系统的系统时钟中得到。用户可能必须修改系统时钟以使日期对应于正式的或规定的试用操作期开始日期。
试用期操作可采用两种形式一种形式是功能被禁止的产品,它允许用户试用所有的特性,但不允许象打印或保存数据文件这样的关键功能。另一种类型的试用期是完全功能产品,它可用有限的时间。这要求存取保护,并允许顾客免费或付出微不足道的费用试用产品的所有功能。典型地,根据本发明,存取产品通过“定时”密钥来控制,使用产品的试用期是由销售商确定的一个固定时期,当密钥发布时试用期开始。根据本发明,在试用操作期被预观的产品只能从顾客外壳内运行,解密驱动器不允许加密产品以明文形式被拷贝,它也不允许产品在顾客的外壳之外运行。在另一个实施例中,试用期由一个计数器来定义,随着顾客与产品的每次对话该计数器递增或递减。在不再允许用暂时密钥解密之前,这样可以给予顾客一个预定的产品使用次数。
暂时存取密钥的限制被加入到密钥的“控制矢量”当中。典型地,控制矢量包括密钥的简短叙述,机器标识号码,以及包括试用期数据(比如时钟值或计数器值)的格式化文本串。不破解密钥便不能更改控制矢量。当运行被保护的软件产品时,使用数据必须被更新以加强试用操作期的限制。为了保护时钟或计数器不被篡改,它的值被记录在许多位置,典型地在多个加密文件中。在本发明的较佳实施例中,试用期信息(时钟值与/或计数器值)被拷贝到下面将更详细地叙述的“密钥文件”,下面将讨论的机器标识文件,还有一个系统文件中,当请求存取加密程序时,检查所有这些位置以确定时钟与/或计数器的值是否相同,一个普通的用户不可能具有成功地篡改所有三个文件的技术。在较佳实施例中,时钟和计数器结合起来用于阻止延长使用备份和用以复位系统时钟的恢复操作。虽然每次请求试用时可能复位PC的时钟,但通过跟踪系统上某些文件的日期/时间记号以及使用文件日期/时间记号和系统时钟之中的最近日期,这也能被探测到。如上所述,保存计时器与/或计数器信息的三个位置之一是系统文件。当在OS/2操作系统中工作时,时间和使用数据可以保存在系统数据文件中,比如OS/2操作系统中的OS2,INI。用户不得不不断地备份和恢复这些文件以复位试用和使用数据。这些文件含有对用户系统的操作至关重要的其它数据。漫不经心的用户可能由于把其它应用程序文件恢复成旧的版本而丢失这些应用程序的重要数据。在本发明中,这些保护技术极大地阻碍了不诚实的用户试图在授权期过后延长试用期使用。
总而言之,在本发明中,销售商安装多个加密软件产品到计算机可存取存储介质上,比如CD ROM或软磁盘。文件管理程序也被安装到计算机可存取存储介质上,文件管理程序执行多项功能,这些功能包括提供多个便于软件销售商和软件顾客交流的用户界面屏幕。计算机可存取存储介质被安装到用户控制数据处理系统上,而文件管理程序被安装用于执行。文件管理程序向软件顾客提供多个用户界面屏幕,这些用户界面屏幕收集有关顾客的信息(姓名,地址,电话号码和账单信息)并接收希望试用的软件产品的顾客选择。信息在软件销售商和顾客之间交换,包括顾客标识号码,产品标识号码,介质标识号码和机器标识号码。销售商按照顾客标识号码的内部保留记录生成顾客标识号码。软件销售商代表最好从软件顾客那里收集信息并将该信息打印在制定的空表格上以标识潜在软件顾客。另外,软件销售商也可以接收填好的订购信息对话界面屏幕275(图9的)的传真或邮件。分发的存储介质(比如CD和软盘)还包括文件管理程序,它用于至少部分地根据用户控制数据处理系统的一个属性生成唯一的机器标识。机器标识最好是在一次性建立过程期间创建的随机8-bit位数。8个随机bit位最好由用系统时钟作为“种子”的基本随机数发生器产生。校验位最好加入到最后结果中,这些校验位对于定购系统是至关重要的,因为定购人必须插入顾客在电话上所读出的机器标识。校验位允许立即确认机器标识而不须要顾客重复该号码。最好在用户控制数据处理系统上维护一个包含机器标识的明文和机器标识的被加密体的主文件。
当软件顾客定购软件产品的暂时试用时,他或她口头上将机器标识传达给软件销售商的电话代表。作为回报,电话代表给软件顾客一个产品密钥,该产品密钥起计算机可存取存储介质上的加密软件产品的暂时存取密钥和顾客标识号码的作用。产品密钥最好是机器标识,顾客号码,程序或定购的程序的实际密钥以及控制数据块的函数。通过把产品密钥与顾客号码以及相同控制数据块相结合以产生实际密钥,软件顾客可以确认产品密钥。该密钥然后用于解密被加密的确认段,允许比较操作,如果加密确认段与已知确认段明文(clear text)相同,那么用户文件管理程序确定该产品密钥是好产品密钥并可用来暂时存取软件产品。所以,如果相匹配,那么该密钥存放在用户控制数据处理系统上的密钥文件内。密钥文件最好包含产品密钥,顾客密钥(由顾客号码和内部密钥生成密钥所生成),以及包含在机器标识中的明ASCll串,所有三项须未被改变以便解密工具得到实际密钥。为了进一步把密钥文件与特殊用户控制数据处理系统相连,用从系统参数得到的密钥加密同一密钥文件。这些系统参数可以从数据处理系统的配置中得到。
概括地说,在本发明中暂时密钥(典型地是通过电话口头给出)由一个算法产生,该算法利用加密将实际密钥和顾客号码,机器标识号码,和其它预定的明文结合在一起。因此,密钥只对一台机器有效,即使把密钥给另一个人,它也不能解锁在别人的机器上的程序。这允许软件销售商通过分发计算机可存取存储介质(比如软盘或CD ROM)上的完整的程序,在市场上销售软件,而不会冒失去许可收入的重大风险。
一些可用于加密操作的较佳唯一系统属性包括硬盘序列号,硬盘大小和格式,系统模式号,硬件接口卡,硬件序列号以及其它配置参数。该技术的结果是机器标识文件只能在用户控制数据处理系统的相同系统上被解密。这种相同的系统很难获得,因为大多数数据处理系统具有不同的配置,而这些配置通过相当的努力才能被匹配。下面的书面叙述中将详细描述这些特性。
现在参看图12,文件管理程序接收分发的,存有加密软件产品和文件管理程序的计算机可存取存储介质。文件管理程序存取用户控制数据处理系统的配置,如图12的步骤351中所表示。数据处理系统的用户特有属性在步骤353中得到,并被作为输入提供给机器标识发生器355,机器标识发生器最好是一个随机数发生器,它接收多个二进制字符作为输入并产生一个表示机器标识357的伪随机输出。机器标识发生器355所使用的过程可以是任何惯用的伪随机数发生器,它接收作为输入的二进制字符并根据预定算法产生多个伪随机二进制字符作为输出。
现在参看图13,机器标识357也以加密的形式在文件管理程序中维护。机器标识357作为输入提供给加密工具359以产生加密机器标识361作为输出。加密工具359可以包含任何惯用的加密程序,比如DES算法。密钥363也作为输入提供给加密工具359,并以惯用的方式影响加密操作。密钥363从系统属性选择器365中得到。候选的系统属性类型包括系统属性列367,它包括硬盘序列号,硬盘大小,硬盘格式,系统模式号,硬件接口卡,硬件序列号或其它配置参数。
根据本发明,明文机器标识357和加密机器标识361在存储器中维护。同样,根据本发明,文件管理程序自动把明文机器标识357放置到适当的用户界面屏幕上,然后用户把机器标识告知软件销售商,在软件销售商那里该机器标识按照图14的框图被使用。如图所示,产品密钥加密工具375在软件销售商的控制下维护。该产品密钥加密工具375接收下列信息作为输入机器标识357,顾客号码369(根据软件销售商的内部保留记录分配给顾客),实际密钥371(用于解密放在软件顾客保管的计算机可存取存储介质上的软件产品),控制块文件373(可以是任何预定文件的部分),以及试用期数据374(比如定义使用试用期的时钟与/或计数器值)。产品密钥加密工具产生产品密钥377作为输出。产品密钥377通过一个非可靠的通信渠道告知软件顾客,这不会冒泄漏实际密钥371的风险。实际密钥371通过加密操作被掩盖,而且因为产品密钥377只能被用于这样的数据处理系统,它的配置与用于得到机器标识357的配置相同,对加密软件产品的存取维护在一种安全状态下。
当收到产品密钥377时,驻留在用户控制数据处理系统中的文件管理程序利用实际密钥来接收多个输入,包括产品密钥377,顾客号码369,控制块文本373,机器标识357以及试用期数据374。实际密钥发生器产生导出实际密钥381作为输出。
下面的专利申请叙述了用来执行产品密钥加密工具375和实际密钥发生器379(图14和15)的操作的加密和解密算法并为之提出了权利要求,该专利申请为共同未决美国专利申请序号07/964,324,1992年10月21日提交,标题为“用于多媒体存取控制允许的方法和系统“,在此它就象完全叙述了一样结合到本说明中。
接着,如图16和17所描述的那样,测试导出实际密钥381以确定由软件销售商提供的产品密钥377的有效性和真实性。如所示,导出实际密钥381作为输入提供给加密工具385。预定加密确认数据段383作为另一个输入提供给加密工具385。加密工具提供导出明文确认文本387作为输出。然后,按照图17,在比较器389中,导出明文确认文本387与已知明文确认文本391相比较。比较器389简单地执行导出明文确认文本387和已知明文确认文本391-bit位一bit位的比较,如果导出明文确认文本387与已知明文确认文本391相匹配,则按照步骤393创建一个密钥文件但是,如果导出明文确认文本387与已知明文确认文本391不匹配,则按照步骤395,向用户控制数据处理系统发布一条警告。
现在转看图18,密钥文件397被描述成包括暂时产品密钥,顾客密钥(顾客号码的加密体),明文形式的机器标识号码以及试用期数据(比如时钟与/或计数据值)。该密钥文件作为输入提供给加密工具399,密钥401也作为输入提供给加密工具399。密钥401得自唯一系统属性403,比如那些用来得到机器标识号码的系统属性。加密工具399提供加密密钥文件405作为输出。
图19,20,21,22和23描述了在暂时存取密钥被接收,确认以及记录在密钥文件397(图18)后文件管理程序的操作。
图19是当用户控制数据处理系统调用加密软件产品来处理时被执行的步骤的框图。取出加密文件405,并且“头”部407被用户控制数据处理系统读取。头有许多组成部分,包括密钥文件的位置。按照步骤409。密钥文件的位置用来取出密钥文件。头还包括加密确认文本411。加密确认文本也由用户控制数据处理系统读取。如上所述(并如图18所示),密钥文件包括产品密钥419,顾客密钥417以及机器标识415。这些将输入到解密工具413。解密工具413提供实际密钥421作为输出。在实际密钥421用来解密分发的存储介质上的加密软件产品之前,它被测试以确定其有效性。图21是有效性测试的框图。包含在“头”中的加密确认文本423作为输入提供给解密工具425。实际密钥421(在图20的操作中得到)也作为输入提供给解密工具425。解密工具425提供明文确认文本427作为输出。如图22中的框图所说明的一样,明文确认文本427作为输入提供给比较器429。已知明文确认文本431也作为输入提供给比较器429。比较器429确定导出明文确认文本427是否匹配已知明文确认文本431。如两文本匹配,那么软件对象按步骤433被解密;然而,如果确认文本部分不匹配,那么按步骤435发布警告。图23是图22的步骤433的解密操作的框图,加密软件对象437输入到解密工具439。被确认的实际密钥441也作为输入提供给解密工具439。解密工具439提供解密软件对象443作为输出。
提供加密头以允许当文件与明文文件一起存放时确认该文件是否被加密。在为加密文件提供加密头时,重要的是文件大小不被改变,因为在安装期间文件大小可能作为确认步骤的一部分被检测(决不与本发明的概念相关)。所以,使文件变大可能在软件安装期间引起操作困难。加密头还是必须的,因为与加密软件产品相连的文件名不能被修改以反映文件被加密的事实,这是由于可能正在存取加密产品的其它软件应用程序要用原始文件名存取那些文件。因此,变更文件名以表明文件被加密将阻止加密软件产品和其它或许是相关的软件产品之间有益的和所需的通信。例如,电子表格应用程序通常搬运部分电子表格到相关字处理程序中以允许财务信息结合到打印文件中。改变字处理程序的硬编码原始文件名将阻止这些软件产品之间有益的通信。本发明的文件头通过维护加密文件处于其名义上的文件长度以及通过以未修改的格式维护软件产品的文件名来解决这些问题。
图24图示带加密头451的加密文件。加密头451有多个代码段,这些代码段包括唯一标识部分453,密钥文件名部分455加密确认段457,加密类型459,副文件偏移量461以及加密文件数据463。当然,这样看来,加密文件数据463表示了加密软件产品,比如字处理程序或电子表格。提供加密头451来代替通常包含部分加密软件产品的加密数据。加密头被替换到加密软件产品的首部。为了在加密文件数据463的加密软件产品的头部放置加密头451,部分加密文件数据须被拷贝到另一位置。副文件偏移量461标识包含被移走的文件数据的副文件位置。
图25图示加密文件目录与副文件的关系。如所示,加密文件目录465包括文件aaa,文件bbb,文件ccc,文件ddd,直到文件nnn。每个文件代表一个特殊加密软件产品的目录名。每个加密软件产品与一个包含文件首部的副文件相关联,该文件首部被移走以容纳加密头451而不改变文件大小以及文件名。文件aaa与副文件AAA相关联,软件产品bbb与副文件BBB相关联。加密软件产品ccc与副文件CCC相关联。加密软件产品ddd与副文件DDD相关联。加密软件产品nnn与副文件NNN相关联。在图25中,目录名467,469,471,473,475被描述为与副文件477,479,481,483和485相关联。副文件的目的是为了允许用加密头标记每个加密软件产品而不改变文件大小。
加密头451的加密类型段459标识用来加密加密软件产品的加密类型。许多惯用加密技术的任何一种均可用来加密该产品,不同加密类型可用来加密存放在同一存储介质上的不同软件产品。加密类型段459保证适当的加密/解密程序被调用以使加密软件产品可以被解密,只要暂时存取密钥有效且没有过期。加密头451的密钥文件名段455提供密钥文件的地址(典型地,一硬盘驱动器位置)。如上所述(联系图18),密钥文件包括产品密钥,顾客密钥以及明文机器标识。为了生成实际密钥(根据图20),需要所有这三条信息。加密确认段457包括用于图21中所述的程序的加密确认文本,该程序生成可用图22的程序与已知明文确认文本相比较的导出明文确认文本。只有导出明文确认文本精确地匹配已知明文确认文本,上述过程才能继续根据图23的程序用导出且被确认的实际密钥来解密加密软件产品。然而,在执行图23的解密操作前,相应的副文件的内容必须被代回到加密软件产品中以代替加密头451。这保证在解密操作开始前加密软件产品是完整的。
每次用户控制数据处理系统的操作系统调用文件来处理时,驻留在操作系统中的文件管理程序截取输入/输出请求并检查文件首部以确定解密块标识(比如唯一标识453)是否存在于特殊已知位置。对于最佳实现,如图24中所示,该位置一般在文件的开头。如果文件管理程序确定该文件具有解密块,那么TSR把该块读入存储器中,分析该块,通过从加密块中拷贝指定含有密钥文件并连有密钥文件名的驱动器和目录的环境变量来建立一个完整的经检定的密钥文件名。TSR然后试图打开密钥文件。如果密钥文件不存在,TSR返回存取拒绝作为对试图打开加密文件的应用程序的响应。如果确定密钥文件存在,那么TSR打开密钥文件。读入密钥(产品密钥,顾客密钥和机器标识)并生成实际密钥。该实际密钥用来解密解密块确认数据。如上所述,比较操作确定解密操作是否成功。如果比较失败,密钥文件被确定为“无效”,TSR向试图打开加密软件产品的应用返回“存取拒绝消息”。然而,如果比较成功,文件管理程序就准备按在解密头中获得的解密类型解密文件。TSR然后返回一个有效文件句柄给调用应用程序以表明文件已被打开。当应用程序从加密文件中读数据时,TSR在把数据传回应用程序前读取并解密数据。如果需要的数据是存放在副文件中的被移开的数据的一部分,TSR将读副文件并返回适当的被解密的块给调用应用程序而调用应用程序并不知道数据来自一个分离文件。
图24和25描述了加密头的一般概念,图26,27和28描述了创建加密文件的更特殊的方面。图27和28描述两种类型的数据文件。图27描述一个非执行数据文件,而图28描述一个执行数据文件。图26描述头499,它包括特征段501,头长度503,副文件索引505,副文件长度507,加密类型标识509,确认数据511以及密钥文件名518。如图27中所示,软件产品开始是明文文件,然后按照特殊加密程序加密成加密文件523。头499的加密类型段509标识用来把明文文件521变成加密文件523的加密类型。接着,加密文件523的首部被拷贝到副文件527,它由头499的副文件索引505和副文件长度507标识。另外,确认数据的明文的拷贝也包含在副文件527中。然后,头499被拷贝到加密文件523的首部以形成被修改的加密文件525。相似的过程用于执行文件,如图28所示。软件产品的明文拷贝(表示为明文文件531)按惯用的程序加密,形成加密文件533。加密文件533的首部被拷贝到副文件539使得加密文件的覆盖数据被保护,还有,副文件539包括确认数据的明文的拷贝。然后,通过将可执行存根537和头599覆盖到加密文件533的首部来修改加密文件533。
现在叙述图28的可执行存根537的目的。个人计算机的DOS操作系统试图执行一加密应用程序。这可能导致系统“挂起”或不利行为。图28的执行文件的可执行存根357用来保护用户不试图执行加密的应用程序如果他或她试图执行一个加密文件,将会冒挂起他的系统或格式化驱动器的相当大的风险。可执行存根被附在加密软件产品的首部,使得无论何时应用程序在没有安装TSR或从TSR没有监视的驱动器上运行,该存根都被执行。该存根发布一个消息给用户解释应用程序为何没能运行。除了提供消息,可执行存根可用于执行复杂的动作,比如(1)重复TSR功能并在又一次开始应用前建立动态加密;(2)打开暂时存取密钥并又一次开始应用;(3)与TSR通信并告知TSR查看运行应用的驱动器。
可执行存根象下面那样被保存或拷贝到加密程序(1)应用被加密;(2)为该程序创建解密块;(3)预先建立的可执行存根应附到解密块的前端;(4)确定混合解密头和可执行存根的长度;(5)等于该长度的位于可执行文件前面的字节然后被读入存储器,最好读进一个预定的副文件位置;以及(6)加密头和可执行存根然后被写到可执行代码的领头的字节上。
通过在“已知大小”的可执行存根以外搜寻解密块部分,TSR可以确定一个可执行文件是否被加密,当TSR解密可执行存根时,它存取副文件以读入由存根和头部所移开的字节。
图29提供在试用期期间操作的流程图,它开始于软件块601,按照软件块603,位于用户控制数据处理系统的操作系统中的文件管理程序连续监视对存储介质的输入/输出调用。然后根据软件块605,对于每个输入/输出调用,截取被调文件,根据软件块607操作系统被拒绝存取被调文件直到文件管理程序能确定是否允许存取为止。根据软件块609,被调文件放有解密块的一部分被读取。以便根据软件块611得到密钥文件地址。根据软件块613,得到的地址用来去取密钥文件。根据判断块615,如果不能找到密钥文件,过程在软件块617结束;然而,如果在判断块615中确定能找到密钥文件,根据软件块619得出密钥。根据软件块621,导出密钥然后用来解密位于加密头中的确认段。在判断块623中,解密确认段与解密确认段的明文相比较;如果确定解密段与已知明文段不匹配,那么过程在软件块625结束;然而,如果在判断块623中确定解密确认段与已知明文确认段匹配,那么过程在软件块627继续,在此允许存取被调文件,然后,根据软件块629从解密头中读取解密类型,根据软件块633当被调文件被送去由用户控制数据处理系统的操作系统处理时,根据软件块631动态地解密被调文件。过程在软件块635终止。
如果试图未经授权执行加密文件,可执行存根会至少暂时拒绝存取并发布一条消息到系统,但可执行存根能以上面列举的多种复杂的方式来处理问题。
根据本发明的较佳实施例,在试用期期间,或在试用期结束时,未来的买主可能与销售商联系以安排购买计算机可存取存储介质上的一个或多个软件产品的拷贝。最好使用CD ROM或软盘把产品运给潜在的用户。计算机可存取存储介质最好包括每个用于试用期的产品的两个加密拷贝。一个加密拷贝可用文件管理程序和销售商传送给买主的暂时存取密钥来解密。另一个加密拷贝不提供给试用期操作模式使用,而是用来作为永久拷贝,一旦软件产品被购买,该拷贝就被解密和使用。总而言之,用户选择软件产品用于试用期操作模式,从销售商那里获得暂时存取密钥,该密钥允许用户在一个预定的时间内存取产品(通过文件管理程序)。在试用期结束之前或之后,通过用传真,电子邮件或电话与销售商联系,用户可以从销售商那里购买软件产品的永久拷贝。一旦收到付款,销售商就给用户一个用来解密软件产品的第二个加密拷贝的永久存取密钥。该加密软件产品可用惯用的加密程序来加密,比如DES算法,永久密钥允许解密软件产品用于不受限制的使用。由于在一次交易中可以购买软件产品的多个拷贝本发明装备了提供可移动存取密钥的技术,下面将联系图30到35讨论它。在本发明的较佳实施例中,用来加密和解密软件产品的第二个拷贝的加密算法与用于试用期操作模式的加密算法相似。
本发明包括在试用期结束以后允许分发永久存取密钥的输出/输入功能。典型地,办公室管理员或数据处理系统管理员在试用期结束后将购买加密软件产品拷贝选定的份数。组织中的某些个人然后将被授予永久密钥允许不受限制地且永久存取加密软件产品。在计算设备没有连到分布式数据处理网络中的办公室或工作环境中,永久存取密钥必须从办公室管理员或数据处理管理员那里给将接受加密软件产品拷贝的组织中选定的个人。永久密钥允许永久存取软件产品,由于特殊软件产品的拷贝不是给组织中所有的雇员,销售商希望对软件产品的分发尽少超出或不会超出销售协定或许可协定的范围。由于产品被加密,它们可以加密形式自由地分发。在本发明中,被保护的是允许不受限制地存取产品的密钥。为了阻止在电子邮件或印刷物上分发密钥,本发明包括一驻留在源计算机上的输出程序和一个驻留在目标计算机上的输入程序,目标计算机允许通过可拆卸存储介质(比如软盘)分发存取密钥。这保证避免疏忽或偶然分发或泄露密钥。有两个完成该目标的主要实施例。
在第一个实施例中,维护在源计算机上的一个或多个加密文件首先被解密,然后用加密算法和对可运输存储介质来说是唯一的加密密钥(比如软盘序列号)加密该文件。密钥文件然后用软盘运到目标计算机,在这里用目标计算机与可传递存储介质交互得到的密钥来解密密钥文件。然后立即用受控于从目标计算机的唯一系统属性中得到的密钥的加密操作加密密钥文件。
在另一个实施例中,可传递存储介质被安装到目标计算机上以便从目标计算机输入文件中获得传递密钥,该密钥唯一与目标计算机相关并可以从目标计算机的一个或多个唯一系统属性中得出。存储介质然后送到源计算机,在此一个或多个密钥文件被解密,然后用传递密钥来加密。然后存储介质被送到目标计算机,在此传递密钥被生成并被用于解密操作中以解密一个或多个密钥文件。最好立即用加密操作加密密钥文件,该加密操作受控于与目标计算唯一相关的并得自于一个或多个唯一计算机配置属性的密钥。在此联系图30,31,32和33讨论第一个实施例。联系图34和35讨论第二个实施例。
图30和31以框图的形式描述了输出和输入操作,这些操作允许授权用户用一个“输出”工具把他的永久密钥移到另一个数据处理系统上,该“输出”工具产生被允许用于输入到另一系统的存取密钥的唯一磁盘图像。根据本发明,由软件销售商通过电话传给顾客的存取密钥长度少于40个字节。被生成的密钥文件长度多于2000个字节。提供输出工具用来把密钥文件和机器标识文件拷贝到磁盘上。然后用经修改的磁盘序列号加密这两个文件以阻止这些文件被拷贝到任何人都可以使用的公开场所。在另一个系统中提供的输入工具解密这些文件并把产品密钥和机器标识从磁盘添加到输入系统主文件的输入产品密钥和机器标识表中,并把密钥文件拷贝到输入系统硬盘上。象上面所提示的那样,密钥文件在输入系统上被加密。
图30是根据本发明的较佳实施例的输出操作的框图。如图所示,源计算机651包括密钥文件653和机器标识文件655。密钥文件653包括产品密钥,顾客密钥,用于源计算机651的机器标识的明文,试用期数据(比如定义试用期的时钟与/或计数器),以及一个输出计数器,它执行两种操作,一种操作是定义允许用于特殊保护软件产品的最大输出操作数,另一种操作是跟踪已完成的输出操作的总数。机器标识文件包括机器标识号码和试用期数据(比如定义试用期的时钟与/或计数器)。密钥文件653和机器标识文件655两者都用任何惯用的加密操作来加密(比如DES算法),该加密操作受控于得自源计算机651的唯一系统属性的密钥。在输出操作开始时,密钥文件653和机器标识文件655被解密。密钥文件653作为输入提供给受控于密钥659的解密操作657。同样,机器标识文件655作为输入提供给受控于密钥661的解密操作663。解密操作657,663生成密钥文件653和机器标识文件655的明文体。一旦获得了明文,根据块661修改包含在密钥文件653中的输出计数器。例如,如果这是10次可允许操作中的第7次被允许的输出操作,计数器可能读作“7∶10”。密钥文件653的明文作为输入提供给加密操作669。加密操作669可以是任何惯用的加密操作(比如DES算法),该加密操作受控于对于连到源计算机651的存储介质来说是唯一的存储介质属性655,该属性将被修改器667修改。例如,唯一磁盘序列号可用作对存储介质677来说是唯一的“存储介质属性”。根据修改器667,磁盘序列号被修改以将其作微小的更改,并把它作为输入提供给加密操作669。对于机器标识文件655的明文执行同样的操作。唯一存储介质属性671被修改器673修改并用作加密操作675的密钥,该加密操作可以包含任何惯用的加密操作,比如DES操作。最后,加密操作669和675的输出作为输入提供给拷贝操作679,681,它们把加密密钥文件653和机器标识文件655拷贝到存储介质677上。
图31是输入操作的框图。(图30的)存储介质677从(图30的)源计算机651拆卸下来并搬到(图31的)计算机707上;另外,在分布式数据处理系统中,这种传送可以不用拆卸存储介质677来进行。现在参看图31,根据块683,目标计算机的机器标识被拷贝到存储介质677以维护有关哪个特殊目标计算机接收了密钥文件和机器标识文件的记录。然后,根据块685,693,加密密钥文件653和机器标识文件655从存储介质被拷贝到目标计算机707。加密密钥文件653作为输入提供给受控于密钥687的解密操作689。解密操作689反转块669的加密操作,并提供密钥文件653的明文作为输出。同样,机器标识文件655作为输入提供给受控于密钥695的解密操作697。解密操作697反转加密操作675的加密并提供机器标识文件655的明文作为输出。根据块691,源计算机651的机器标识被检索并记录在密钥文件653的明文中。接着,密钥文件653的明文作为输入提供给加密操作699。加密操作699是惯用的加密操作(比如DES操作),它受控于目标计算机唯一属性,比如目标计算机707的机器标识或经修改的机器标识。机器标识文件655的明文作为输入提供给加密操作703。加密操作703是任何惯用的加密操作,比如DES加密操作,受控于唯一目标计算机属性,比如目标计算机707的机器标识或经修改的机器标识。加密操作699的输出产生加密密钥文件709,它包括产品密钥(与源计算机651的密钥文件653的暂时产品密钥相同),顾客号码(与源计算机651的密钥文件653的顾客号码相同),明文机器标识(用于目标计算机707的机器标识,不是源计算机651的机器标识),试用期数据(与源计算机651的密钥文件653的试用期数据相同),以及源计算机651的机器标识的标识。加密操作703的输出定义机器标识文件711,它包括目标计算机707的机器标识(不是源计算机651的机器标识),以及试用期数据(与源计算机651的机器标识文件655的机器标识相同)。
图32和33提供图30和31中所描述的输入和输出操作的另一表示,并强调本发明的几个重要特性。如图所示,源计算机801包括用系统属性密钥加密的机器标识文件803,该密钥对源计算机801来说是唯一的。机器标识文件包括机器标识文件号码和每个受保护软件产品所允许的输出数的计数,以及已使用的输出总数的计数,例如,第一次输出操作带有计数“1∶10”,它表示发生了10次被允许的输出操作当中的一次输出操作。在下一次输出操作中,计数器增加到“2∶10”,表示发生了总共10次被允许的输出操作当中的两次。接收输出操作结果的每个目标计算机用该特殊计数器值标记,以表示它接收特殊的输出操作。例如,一个源计算机系统可能带有计数器值“1∶10”,这表示它接收10次被允许的输出操作当中的第一次输出操作。但另一个目标计算机可能带有计数器值“7∶10”,它表示该特殊目标计算机接收总共10次被允许的输出操作当中的第7次。在这种方式下,目标计算机维护所使用的输出操作总数的计数,而每个源计算机带有不同的计数器值,该值表示它接收来自于源计算机多次被允许的输出操作当中的一次的机器标识文件和密钥文件。
注意在源计算机801中,机器标识文件803和密钥文件805用加密算法加密,该算法用对源计算机801来说是唯一的系统属性作为密钥;然而,一旦机器标识文件803和密钥文件805被传给存储介质,比如输出密钥磁盘807,那么用任何惯用的加密操作来加密机器标识文件809和密钥文件811,该加密操作使用唯一磁盘属性(比如磁盘序列号)作为加密密钥。这使得机器标识文件809与/或密钥文件811被拷贝到另一磁盘或其它存储介质上并被用来未经授权地存取软件产品的可能性变得最小。这也是因为,为了有效地传递机器标识文件809和密钥文件811到目标计算机,目标计算机必须能从输出密钥磁盘807上读取并使用唯一磁盘属性。只有当机器标识文件809和密钥文件811放在拷贝有这些项的磁盘上被交给目标计算机时,才能进行有效的传递,把机器标识文件809和密钥文件811放在并非输出密钥磁盘807的磁盘上交给潜在的目标计算机将导致传递无意义的信息,因为目标计算机需要输出磁盘807的唯一属性(比如磁盘序列号)以成功地完成解密操作。
如图33所示,输出密钥磁盘807被交给目标计算机813。当然,机器标识文件809和密钥文件811是加密形式。在从输出密钥磁盘807到目标计算机813的传递中,用目标计算机813的机器标识以及使用输入的计数值更新机器标识文件809的内容在完成到目标计算机813的传递时,建立机器标识文件815,它包括许多项,比如目标计算机813的机器标识,顾客信息,以及源计算机801的机器标识号码表。机器标识文件815和密钥文件817两者都利用惯用的加密操作来进行加密,该加密操作使用目标计算机813的唯一属性作为密钥。这就将机器标识文件815和密钥文件817与特殊目标计算机813连到一起。
通过使用输出/输入计数器来跟踪授权输出/输入操作的总数以及所用输出/输入操作的总数,本发明创建一个检查线索,它可用来在试用期期间跟踪软件产品的分配。每个源计算机带有已执行的输出操作的总数的记录。每个源计算机带有关于使用了哪个特殊输出/输入操作传递一个或多个受保护软件产品到目标计算机的记录。用来完成该传递的存储介质(比如一个磁盘,或一组磁盘)带有用于所有输出/输入操作的源计算机和目标计算机两者的机器标识号码的记录。实现输出和输入操作的过程保证受保护软件产品决不会招致不必要的风险。当机器标识文件和密钥文件从源计算机传给输出磁盘时,用输出磁盘的唯一属性加密它们,这阻止或限制拷贝输出磁盘或把它的内容放到公告牌上从而非法分发密钥。在输入操作期间,用对目标计算机来说是唯一的系统属性加密机器标识和密钥文件以保证以与源计算机安全性相一致的方式维护软件产品,除了那些软件产品用对目标计算机来说是唯一的属性进行加密以外,因此阻止非法拷贝和把密钥放到公告牌上。
在图34和35中以框图的形式描述输出/输入功能的第二个实施例。总而言之,存储介质1677首先用来与目标计算机1707交互以从目标计算机1707获得传递密钥,该密钥对目标计算机1707来说是唯一的并且最好得自目标计算机1707的一个或多个唯一系统属性。传递密钥可以是目标计算机1707的机器标识的修改值。接着,存储介质1677用来与源计算机1651在输出操作模式下交互,在此模式下密钥文件1653和机器标识文件1655首先被解密,然后用传递密钥加密。
图34是根据本发明的较佳实施例的输出操作的框图。如图所示,源计算机1651包括密钥文件1653和机器标识文件1655。密钥文件1653包括产品密钥,顾客密钥,源计算机1653的机器标识的明文,试用期数据(比如定义试用期的时钟与/或计数器),以及执行两种功能的输出计数器,一种功能是定义对特殊软件产品所允许的输出操作的最大数目,另一种功能是跟踪已完成的输出操作总数。机器标识文件包括机器标识号码和试用期数据(比如定义试用期的时钟与/或计数器)。用任何惯用的加密操作(比如DES算法)将密钥文件1653和机器标识文件1655二者加密,该加密操作受控于得自源计算机1651的唯一系统属性的密钥。在输出操作开始时,密钥文件1653和机器标识文件1655被解密。密钥文件1653作为输入提供给受控于密钥1659的解密操作1657。同样,机器标识文件1655作为输入提供给受控于密钥1661的解密操作1663。解密操作1657,1663生成密钥文件1653和机器标识文件1655的明文体。一旦获得明文,根据块1661修改包含于密钥文件1653中的输出计数器。例如,如果这是10次可允许的操作当中的第七次允许的输出操作,计数器可能读作“7∶10”。密钥文件1653的明文作为输入提供给加密操作1669,加密操作1669可以是任何惯用的加密操作(比如DES算法),该操作受控于先前得到的传送密钥1665。对机器标识文件1655的明文执行相同的操作。传递密钥1671用作加密操作1675的密钥,该加密操作可包含任何惯用的加密操作,比如DES操作。最后,加密操作1669和1675的输出作为输入提供给拷贝操作1679,1681,它们将加密密钥文件1653和机器标识文件1655拷贝到存储介质1677。
图35是输入操作的框图。(图34的)存储介质1677从(图34的)源计算机1651上拆下来并装到(图35的)计算机1707上;另外,在分布式数据处理系统中,进行这种传递不用拆卸存储介质1677。现在参看图35,根据块1683,目标计算机的机器标识被拷贝到存储介质1677以维护有关哪一个特殊目标计算机接收密钥文件和机器标识文件的记录。然后,根据块1685,1693,加密密钥文件1653和机器标识文件1655从存储介质被拷贝到目标计算机1707。加密密钥文件1653作为输入提供给受控于密钥1687的解密操作1689。解密操作1689反转块1669的加密操作,并提供密钥文件1653的明文作为输出。同样,机器标识文件1655作为输入提供给受控于密钥1695的解密操作1697。解密操作1697反转加密操作1675的加密并提供机器标识文件1655的明文作为输出。根据块1691,源计算机1651的机器标识被检索并记录在密钥文件1653的明文中。接着,密钥文件1653的明文作为输入提供给加密操作1699。加密操作1699是惯用的加密操作,比如DES操作,它受控于目标计算机唯一属性,比如目标计算机1707的机器标识或被修改的机器标识。机器标识文件1655的明文作为输入提供给加密操作1703。加密操作1703是任何惯用的加密操作,比如DES加密操作,它受控于唯一目标计算机属性1705,比如目标计算机1707的机器标识或被修改的机器标识。加密操作1699的输出产生加密密钥文件1709,它包括产品密钥(与源计算机1651的密钥文件1653的暂时产品密钥相同),顾客号码(与源计算机1651的密钥文件1653的顾客号码相同),以及明文机器标识(目标计算机1707的机器标识,不是源计算机1651的机器标识),试用期数据(与源计算机1651的密钥文件1653的试用期数据相同),以及源计算机1651的机器标识的标识。加密操作1703的输出定义机器标识文件1711,它包括目标计算机1707的机器标识(不是源计算机1651的机器标识),以及试用期数据(与源计算机1651的机器标识文件1655的试用期数据相同)。
虽然参考较佳实施例特殊地图示并叙述了本发明,但是本技术的专业人员会明白在不背离本发明的精神和范围的条件下,可以对它作形式和细节上的各种改变。
权利要求
1.从生产者那里分发软件对象给潜在用户的方法,包括下面的方法步骤提供软件对象;提供计算机可存取存储介质;提供文件管理程序;可反转功能限制所述软件对象;记录所述软件对象到所述计算机可存取存储介质;从所述生产者把所述计算机可存取存储介质运到所述潜在用户;安装所述文件管理程序到用户控制数据处理系统上并将其与所述用户控制数据处理系统的操作系统相联;读所述用户控制数据处理系统的所述计算机可存取存储介质;通过与所述用户控制数据处理系统一起执行所述文件管理程序来使用文件管理程序以限制存取所述软件对象。
2.根据权利要求1分发软件对象的方法,其特征在于,当由所述用户控制数据处理系统执行所述文件管理程序时,文件管理程序可工作于多种操作模式下,包括以下操作模式(a)暂时试用期操作模式,在这种模式下通过反转所述软件对象的所述可逆功能限制暂时允许的所述软件对象;(b)永久使用操作模式,在这种模式下所述软件对象的所述功能限制被永久地反转,允许所述潜在用户不受限制地使用所述软件对象。
3.根据权利要求2分发软件对象的方法,其特征在于,所述多种操作模式还包括下面的操作模式(c)浏览操作模式,在这种模式下所选信息通过便于所述潜在用户选择的方式被提供给与所述软件对象有关的所述潜在用户。
4.根据权利要求1分发软件产品的方法,其特征在于,所述功能限制包含至少部分所述软件对象的加密。
5.根据权利要求1分发软件对象的方法,其特征在于,所述的功能限制包括不提供所述软件对象的重要功能部分。
6.根据权利要求1分发软件对象的方法,其特征在于,所述功能限制包括在时间上限制对所述软件对象的无限制使用。
7.根据权利要求1分发软件对象的方法,其特征在于,所述功能限制包括预定的被限制的允许使用软件对象的次数。
8.根据权利要求1分发软件对象的方法,其特征在于,还包括记录所述文件管理程序到所述计算机可存取存储介质上;以及把所述计算机可存取存储介质从所述生产者运到所述潜在用户,该存储介质包括所述软件对象和所述文件管理程序两者。
9.根据权利要求1分发软件对象的方法,其特征在于,所述文件管理程序被附到所述用户控制数据处理系统的所述操作系统上。
10.根据权利要求1分发软件对象的方法,其特征在于,所述文件管理程序包括便于(a)试用和(b)订购所述软件对象的顾客界面。
11.根据权利要求10分发软件对象的方法,其特征在于,所述顾客界面至少包括一个显示屏幕,该显示屏幕有用于接收潜在用户输入到所述用户控制数据处理系统的信息的多个活动数据字段。
12.根据权利要求11分发软件对象的方法,其特征在于,所述顾客界面还包括多个用户可选传输选项,用于把包含在所述数据字段中的信息传输给所述生产者。
13.根据权利要求1分发软件对象的方法,其特征在于,所述文件管理程序执行多个操作,包括(a)连续监视所述用户控制数据处理系统的所述操作系统的操作系统输入调用和输出调用;(b)识别何时所述用户控制数据处理系统的所述操作系统调用所述软件对象;(c)取出与所述软件对象相关的暂时存取密钥;(d)检查所述暂时存取密钥以确定它是否有效;(e)反转所述软件对象的所述功能限制;(f)把所述软件对象传给所述数据处理系统处理。
14.根据权利要求13分发软件对象的方法,其特征在于,所述功能限制包括加密至少部分所述软件对象;以及反转所述软件对象的所述功能限制的所述步骤包括解密所述软件对象的加密部分。
15.根据权利要求2分发软件对象的方法,其特征在于,使用暂时存取密钥允许所述暂时试用操作模式。
16.根据权利要求15分发软件对象的方法,其特征在于,所述暂时存取密钥与在所述暂时试用操作模式开始时被初始化的软件时钟相关联。
17.根据权利要求15分发软件对象的方法,其特征在于,所述暂时存取密钥与在所述暂时试用操作模式期间对于所述软件对象的每次使用都被修改的计数器相关联。
18.根据权利要求15分发软件对象的方法,其特征在于,所述永久使用操作模式由所述软件对象的所述功能限制的永久拆除来启动。
19.根据权利要求15分发软件对象的方法,其特征在于,使用所述暂时存取密钥来完成在所述暂时试用操作模式期间存取所述软件对象,该所述暂时存取密钥在所述试用操作模式时进行时被修改并且被存放在所述数据处理系统中的多个位置以增强安全性。
20.用于从生产者那里分发软件对象给潜在用户的装置,包括计算机可存取存储介质;记录在所述计算机可存取存储介质上的可逆功能限制软件对象;记录在所述计算机可存取存储介质上的文件管理程序;所述文件管理程序可在多种操作模式下操作,这些操作模式包括(a)暂时试用操作模式,在这种模式下所述文件管理程序限制存取所述软件对象;以及(b)永久使用操作模式,在这种模式下所述文件管理程序不限制存取所述软件对象。
21.根据权利要求20分发软件对象的装置,其特征在于,所述多种操作模式还包括以下操作模式(c)浏览操作模式,在这种模式下,通过便于所述潜在用户选择的方式把所选信息提供给与所述软件对象有关的所述潜在用户。
22.根据权利要求20分发软件对象的装置,其特征在于,所述文件管理程序执行多个操作,包括(a)连续地监视用户控制数据处理系统的操作系统的操作系统输入-输出调用。
23.根据权利要求20分发软件对象的装置,其特征在于,使用在所述试用操作模式进行时被修改的暂时存取密钥来限制在所述暂时试用操作模式期间存取所述软件对象。
24.根据权利要求20分发软件对象的装置,其特征在于,所述文件管理程序被附到用户控制数据处理系统的操作系统上。
25.根据权利要求20分发软件对象的装置,其特征在于,所述文件管理程序包括便于(a)试用和(b)订购所述软件对象的顾客界面。
26.根据权利要求20分发软件对象的装置,其特征在于,所述顾客界面包括至少一个显示屏幕,该显示屏幕含有用于接收所述潜在用户输入到所述用户控制数据处理系统中的信息的多个活动数据字段。
27.根据权利要求26分发软件对象的装置,其特征在于,所述顾客界面还包括用于传输包含于所述数据字段中的信息给所述生产者的多个用户可选传输选项。
全文摘要
提供一种方法和装置用于从生产者那里把软件对象分发给潜在用户。软件对象是可逆功能限制,最好通过加密,并与文件管理程序一起被安装到计算机可存取存储介质上,从生产者那里将计算机可存取存储介质运给潜在用户。文件管理程序被安装到用户控制数据处理系统中并且与用户控制数据处理系统的操作系统相关联。利用用户控制数据处理系统读计算机可存取存储介质。文件管理程序用来限制存取软件对象。
文档编号G06F21/24GK1115059SQ9510420
公开日1996年1月17日 申请日期1995年4月14日 优先权日1994年4月25日
发明者T·E·库帕, R·F·普赖耶 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1