使用机器属性来制止企业环境中的软件盗版的系统和方法

文档序号:7950734阅读:93来源:国知局
专利名称:使用机器属性来制止企业环境中的软件盗版的系统和方法
使用机器属性来制止企业环境中的软件盗版的系统和方法 相关申请的交叉引用本申请是于2003年1月31日提交的题为"Systems And Methods For Deterring Software Piracy in a Volume License Environment"美国专利申请第10/356,225号的部分延续,该申请通过引用如在此处完全描述一般被包含于此。发明领域本发明涉及软件盗版制止领域,尤其涉及使用批量许可证密钥(VLK)的软 件批量许可领域。发明背景软件盗版是全球性的问题,它每年都花费软件厂商大量金钱。被称为随意复 制的一种形式的盗版是在多台计算机上共享并安装软件,这侵害了最终用户许可证 协议。产品激活是减少这种类型的盗版的一种方式。产品激活一般依赖于向软件厂商提交安装标识码和/或硬件标识符。软件厂商 作为响应返回激活确认码。在典型的产品激活零售应用中,每一经封装的软件包配 备唯一的产品密钥。 一般,在某一宽限期限(软件安装之后的一段时间,在此期间 软件将在没有被激活的情况下运行)之后,顾客必须联系软件厂商来激活其软件副 本。不这样做通常导致软件的停用或软件功能降级。 一般,使用该唯一产品密钥来 生成唯一产品标识码,它可与经散列的硬件相关值组合来生成其上运行该软件的机 器所专用的安装标识码。允许该软件运行的激活确认一般被返回给顾客。就这点而 言,激活确认也可以是许可证文件、或表示许可证的二进制数。每次登录时,经许 可的软件检查它是否正运行在其上激活该软件的基本上同一硬件上。如果检査失 败,则在软件再次运行之前要求重新激活。公司顾客一般购买批量许可证,因为对在其域中具有数百或数千机器的公司 顾客而言,为所安装的每一软件副本来联系软件厂商以接收机器专用激活码是不可 行的。从而, 一般批量许可证持有者不必联系软件厂商来激活其软件,因为当检测到批量许可证密钥时,软件将绕过激活需求。因此,在宽限期限期满之前或之后可 在众多不同的计算机上使用同一批量许可证密钥,其中任何一台都不需要激活来以 便于该软件运行。尽管这一特征使得批量许可证密钥更便于公司顾客安装软件,但 它也是盗版的攻击目标。从而,需要用于使得更难以盗版批量许可证密钥的机制。本发明满足这一需求。发明概述考虑前述缺点和不足,此处提供一种用于在批量许可证环境中制止软件盗版 的方法、系统和计算机可读介质。在该方法中,接收到嵌入在批量许可证文件内的 批量许可证密钥。批量许可证密钥具有从该环境的至少一个机器属性中导出的第一 数据。使用从该环境的至少一个机器属性导出的第二数据来认证批量许可证文件。 然后在该环境中的至少一个计算设备上激活与该批量许可证密钥相关联的软件包。在该系统中,提供了与嵌入在批量许可证文件内的批量许可证密钥相关联的 软件包。批量许可证文件具有从计算环境的机器属性导出的第一数据。提供认证例 程用于从计算环境的机器属性导出第二数据,以及将第二数据与第一数据进行比 较。此外,还提供了用于根据批量许可证密钥以及响应于认证批量许可证文件来激 活软件包的激活例程。附图简述当结合附图阅读时,以上概述以及以下优选实施例的详细描述将被更好地理解。为说明本发明起见,在附图中示出本发明的示例构造,,然而,本发明不限于所公开的特定方法和手段。附图中

图1是可在其中实现本发明的各方面的示例计算环境;图2A是根据本发明的一个实施例示出用于制止软件盗版的示例强制硬件绑定系统的框图;图2B是可结合本发明的一个实施例使用的示例客户机数据的框图; 图3是根据本发明的一个实施例示出用于制止软件盗版的示例离线系统的框 图;以及图4是根据本发明的一个实施例用于在强制硬件绑定系统中制止软件盗版的示例方法的流程图。
说明性实施例的详细描述详细描述本发明的主题来满足法定要求。然而,描述本身不旨在限制本专利 的范围。相反,发明人构想了所要求的主题可结合其它目前或将来的技术按照其它 方式来具体化,以包括不同的步骤或类似于本文档中所描述的步骤的步骤的组合。而且,尽管术语"步骤"可在此处用于指示所采用的方法的不同方面,但除非当明 确描述了各个步骤的顺序时,否则该术语不应被解释为暗示此处公开的各个步骤之 间的任何特定顺序。示例计算环境图1示出了可在其上实现本发明的合适的计算系统环境100的一个示例。计 算系统环境100只是合适的计算环境的一个示例,并不旨在对本发明的使用范围或功能提出任何限制。也不应该把计算环境ioo解释为对示例操作环境100中示出的任一组件或其组合有任何依赖性或要求。本发明可用众多其它通用或专用计算系统环境或配置来操作。适合在本发明 中使用的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、 服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子产品、网络PC、小型机、大型机、包含上述系统或设备中的任一个的分布式计算机环境等。本发明可在诸如程序模块等由计算机执行的计算机可执行指令的通用语境中 描述。 一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行 特定任务或实现特定抽象数据类型。 一般,在各个实施例中可按需组合或分布程序 模块的功能。本发明也可以在分布式计算环境中实现,其中任务由通过通信网络链 接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储 设备在内的本地和远程计算机存储介质中。参考图l,用于实现本发明的一个示例系统包括计算机iio形式的通用计算设 备。计算机110的组件可以包括,但不限于,处理单元120、系统存储器130和将 包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。系统总 线121可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、 外围总线和使用各种总线体系结构中的任一种的局部总线。作为示例,而非限制, 这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总 线、扩展的ISA (EISA)总线、视频电子技术标准协会(VESA)局部总线和外围 部件互连(PCI)总线(也被称为Mezzanine总线)。计算机110通常包括各种计算机可读介质。计算机可读介质可以是能够被计 算机110访问的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动 介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。 计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据 结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。 计算机存储介质包括,但不限于,RAM、 ROM、 EEPROM、闪存或其它存储器技 术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存 储或其它磁性存储设备、或能用于存储所需信息且可以由计算机110访问的任何其 它介质。通信介质通常具体化为诸如载波或其它传输机制等已调制数据信号中的计 算机可读指令、数据结构、程序模块或其它数据,且包含任何信息传递介质。术语 "已调制数据信号"指的是这样一种信号,其一个或多个特征以在信号中编码信息 的方式被设定或更改。作为示例,而非限制,通信介质包括诸如有线网络或直接线 连接的有线介质,以及诸如声学、RF、红外线和其它无线介质的无线介质。上述 中任一个的组合也应包括在计算机可读介质的范围之内。系统存储器130包括易失性或非易失性存储器形式的计算机存储介质,诸如 只读存储器(ROM) 131和随机存取存储器(RAM) 132。基本输入/输出系统133(BIOS)包含有助于诸如启动时在计算机110中元件之间传递信息的基本例程, 它通常被存储在ROM 131中。RAM 132通常包含处理单元120可以立即访问和/ 或目前正在操作的数据和/或程序模块。作为示例,而非限制,图1示出了操作系 统134、应用程序135、其它程序模块136和程序数据137。计算机110也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介 质。仅作为示例,图1示出了从不可移动、非易失性磁介质中读取或向其写入的硬 盘驱动器140,从可移动、非易失性磁盘152中读取或向其写入的磁盘驱动器151, 以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘156中读取或向其 写入的光盘驱动器155。可以在示例性操作环境下使用的其它可移动/不可移动、易 失性/非易失性计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能 盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器141通常由诸如接口 140 等不可移动存储器接口连接至系统总线121,磁盘驱动器151和光盘驱动器155通 常由诸如接口 150等可移动存储器接口连接至系统总线121。
以上描述和在图1中示出的驱动器及其相关联的计算机存储介质为计算机 110提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块 146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程 序模块136和程序数据137相同或不同。操作系统144、应用程序145、其它程序 模块146和程序数据147在这里被标注了不同的标号是为了说明至少它们是不同的 副本。用户可以通过输入设备,诸如键盘162和定点设备161 (通常指鼠标、跟踪 球或触摸垫)向计算机20输入命令和信息。其它输入设备(未示出)可以包括麦 克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常由 耦合至系统总线的用户输入接口 160连接至处理单元120,但也可以由其它接口或 总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器191 或其它类型的显示设备也经由接口,诸如视频接口 190连接至系统总线121。除监 视器以外,计算机也可以包括其它外围输出设备,诸如扬声器197和打印机196, 它们可以通过输出外围接口 l卯连接。计算机UO可使用至一个或多个远程计算机,诸如远程计算机180的逻辑连 接在网络化环境下操作。远程计算机180可以是个人计算机、服务器、路由器、网 络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机IIO描述的 许多或所有元件,尽管在图1中只示出存储器存储设备181。图1中所示逻辑连接 包括局域网(LAN) 171和广域网(WAN) 173,但也可以包括其它网络。这样的 联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。当在LAN联网环境中使用时,计算机110通过网络接口或适配器170连接至 LAN 171。当在WAN联网环境中使用时,计算机IIO通常包括调制解调器172或 用于在诸如因特网等WAN173上建立通信的其它装置。调制解调器172可以是内 置或外置的,它可以通过用户输入接口 160或其它合适的机制连接至系统总线121。 在网络化环境中,相对于计算机110描述的程序模块或其部分可以存储在远程存储 器存储设备中。作为示例,而非限制,图1示出了远程应用程序185驻留在存储器 设备181上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建 立通信链路的其它手段。示例分布式计算框架或体系结构考虑到个人计算和因特网的交汇,已经开发且正在开发各种分布式计算框架。
个人和企业用户同等地拥有用于应用程序和计算设备的可无缝互操作且启用web 的接口,使得计算活动变得日益面向web浏览器或网络。例如,MICROSOFT⑧的.NET平台包括服务器、诸如基于web的数据存储等 构件块服务、以及可下载的设备软件。 一般而言,.NET平台提供(1)使整个范围 的计算设备一起工作并在所有计算设备上自动更新和同步用户信息的能力、(2) 通过允许对XML而非HTML的更大量使用而增加的web站点的交互能力、(3) 以自中央起始点至用户的对产品和服务的自定义访问和传递为特征的在线服务,它 用于管理诸如电子邮件等各种应用程序或诸如Office.Net等软件、(4)集中数据 存储,这将增加信息访问以及用户与设备之间信息同步的效率和简易性、(5)集 成诸如电子邮件、传真和电话等各种通信介质的能力、(6)供开发员使用的创建 可重用模块的能力,从而增加了生产力并减少了编程错误的数目、以及(7)以及 众多其它跨平台集成特征。尽管此处结合驻留在计算设备上的软件描述了示例实施例,但本发明的一个 或多个部分也可经由操作系统、API或协处理器与请求对象之间的中间软件来实 现,使得可经由所有.NET语言和服务以及在其它分布式计算框架中来执行、支持、 或访问服务。示例实施例图2A是根据本发明的一个实施例的用于制止软件盗版的强制硬件绑定分发 系统的框图。服务器204或厂商202可经由诸如WAN、 LAN (有线或无线)、内 联网、因特网等网络被连接至一个或多个客户机206或208。在图2A中,虚线示 出本发明的替换实现,它示出服务器204因其作用是初始许可证文件发现而不是实 现本发明所必需的而是可任选的。软件厂商可在诸如但不限于CD-ROM等某些介质上或直接经由诸如以上所述 的网络向批量许可证持有者提供经批量许可的软件212的副本。软件212可附带企 业专用或批量许可证持有者专用VLK 222。在本发明的一个实施例中,VLK 222 可被嵌入在被称为许可证文件224的相对较大的文件内。许可证文件224可基于例 如批量许可证持有者以及向该持有者许可的产品的标识来构造,且可包括诸如经散 列的域控制器(DC)名、现用目录(AD)等环境绑定信息。此外,在一个实施例中,许可证文件224可包括基于例如一个或多个机器属 性260和/或270的硬件绑定信息。例如,许可证文件224可包含分别来自一台或
多台客户机206或208的机器属性260或270。机器属性可以是标识与客户机206 或208相关联的硬件设备的任何类型的数据。例如,机器属性可以是处理器ID等。 在许可证文件224中使用的机器属性260或270可被散列或以其它方式处理成许可 证文件224。因此,许可证文件224实际上可包含根据顾客的客户机206和/或208 网络内所包含的硬件的顾客的计算环境的映像。可以理解,在许可证文件224中包括无论作为散列值还是其它的机器属性260 或270阻止潜在软件盗版者复制软件212的合法副本的顾客环境。例如,如果顾客 拥有名为"客户机1"、"客户机2"和"客户机3"的三台客户计算机,则软件盗版者可试图将该软件复制到具有例如相同的客户机名的第二网络内。通过结合来 自客户计算机中的一台或多台的机器属性来将硬件绑定信息结合在许可证文件224内,创建了可用作一种类型的密钥的计算环境映像。如将在以下描述的,当客 户机206或208试图认证软件212时,使用该计算环境内的客户机的机器属性来创 建计算环境的第二映像。然后可将该映像与初始映像进行比较来确定软件212是否 被安装在正确的计算环境中。因此, 一实施例提供了一种用于验证软件212可在其 中操作的计算机环境是否是对其授权了软件212的实际环境的机制。结果,可以理 解,因为一实施例使用了硬件专用数据来对软件212授权,所以试图重新创建经授 权的环境的盗版努力可能会失败。除包括机器属性260和/或270以外,根据一实施例,许可证文件224可包含 当收集机器属性260或270时创建的时戳。许可证文件224也可包括签名或其它这 样的认证机制。可以理解,包括与机器属性260和/或270相关联的时戳有助于保 护软件免受"重放"攻击等,因为机器属性260和/或270所促成的硬件绑定被认 为是最新的。结合图2B示出了根据一实施例可从客户机206收集的示例客户机数 据的图形表示。现在参考图2B,示出了可从例如客户机206发出以便被结合到许 可证文件224内的数据266的示例。在一个实施例中,数据266包括一个或多个机 器属性260、时戳262和签名264。可使用签名来验证许可证文件224的完整性等。现在回到图2A,注意到在一个实施例中,许可证文件224可以是相对较大的 系统文件。所选的特定文件类型可以是任何一类文件类型,包括但不限于,映像或 音频文件格式。VLK 222可被嵌入到数据中的任何地方,在一个实施例中然后可 使用私钥来签署该数据以生成许可证文件224。在本发明的一个实施例中,许可证 文件224的大小大于1.44兆字节(MB),诸如例如2MB以防止将许可证文件224 复制到软盘等上。在本发明的一个实施例中,可在仅包含许可证文件224且其巻标
不同于包含相关联软件212的CD-ROM的巻标的CD-ROM上提供许可证文件224。 现在参考上述环境,其中许可证持有者的软件212在客户机206、 208等之间 分发,在登录时,驻留在客户机206、 208等上的激活码读取许可证文件224的内 容以验证该许可证文件224未被篡改。如此处所利用的,激活指的是用于确认软件 许可证数据、网络环境绑定、硬件绑定以及允许软件在一段时间内起效而不需进一 步绑定确认的过程。就这点而言,在软件安装过程期间,VLK 222和/或许可证文 件224可例如经由服务器204发送给客户机208或客户机206。从服务器位置接收 许可证文件是可任选的。验证过程可包括针对许可证中所定义的绑定或策略来检查本地机器上的许可 证。例如,在由以上结合硬件绑定描述的顾客的计算环境制成的映像的上下文中, 试图验证软件212的客户机206或208可再次使用如上所述的机器属性260或270, 并且可对这些属性与许可证文件224中所包含的属性是否匹配作出判断。如果否, 则失配可指示正试图将软件212安装到未经授权的计算机和/或环境上。可以理解, 顾客可将客户机206或208替换或添加至己经存在的计算环境。如果许可证文件 224不允许映像文件224中所包含的环境映像与当认证软件212时创建的环境映像 之间存在变化,则顾客不能在没有从厂商202获得新许可证文件224和/或重新创 建许可证文件并在计算环境中的所有客户机206和208上对软件212重新认证的情 况下将软件212添加到新添加的客户机206、 208。因此, 一实施例提供可允许在当为环境创建许可证文件224时创建的映像与 在要在特定客户计算机上认证软件212时创建的映像之间存在某些差异的硬件绑 定容许度。该容许度例如可由厂商202等设定,且可被选来影响任何安全性级别。 可以理解, 一般而言,所选的容许度越大,提供的安全性越小,因为允许计算环境 中更大的改变。然而,较大的容许度也允许按照顾客在不重新申请新许可证文件 224的情况下可对计算环境作出的硬件改变方面的更大的顾客灵活性。因此,可以 理解,这样的容许度的水平可能需要基于诸如例如盗版可能性、顾客需求等因素来 决定。可通过检查许可证文件224的签名来验证该文件的完整性。如果许可证文件 224未被篡改,即验证了完整性,则该软件被允许运行。如果许可证文件224被篡 改,则软件可在减少功能模式中运行。软件的大范围部署一般花费太过高昂且消耗太多时间,以至于管理员不能亲 自设置大量机器。此外,管理员一般不想要最终用户亲自激活其机器。因此,这样
的安装从而一般是自动化的,使用无人操作或远程进程。对经批量许可的软件的激活可在设置期间执行,或可在稍后执行。无人操作的应答文件(answer file)是结合软件设置例程来使用以绕过正常设置提示的文本 文件。无人操作文件例如可以通过目标机器的局域网(LAN)或经由因特网来自 动输入VLK、代表最终用户配置代理设置并自动激活系统。也可在设置之后使用 命令行脚本来执行激活。当在客户机206、 208等上安装经批量许可的软件时,可借助于无人操作文件 来准备安装映像。无人操作文件是执行无人操作安装的专门脚本。可通过执行脚本 将软件212安装在客户机206、 208等上。脚本将许可证文件224的位置设为已知 的位置列表,包括服务器204。或者,如果许可证文件224是安装映像的一部分, 则该文件可被复制到客户机上。在登录时,读取许可证文件224,认证数据且激活 客户机206、 208等。如果当系统连接时不能验证许可证文件224中指定的环境特 征,则该系统可继续在宽限期中工作。超过宽限期,则系统可在减少功能模式中工 作,或者最终用户可向软件厂商202请求延期。如果当系统断开时不能验证许可证 数据,则软件可继续仅使用断开特征来工作,直到系统再次接入网络。图3是根据本发明的一个实施例用于制止软件盗版的强制硬件绑定离线系统 250的框图。在该离线系统中,企业接收VLK 222以及软件厂商202供应的安全 硬件设备252。硬件设备252能够执行签署操作以生成格式上与许可证文件224完 全相同的许可证文件225。客户机206和208上经批量许可的软件的安装、激活过 程、以及许可证确认过程与图2中所述的相同,图2中VLK许可证文件也被签署 并来自软件厂商。与图2A—样,在图3中,虚线示出本发明的替换实现。图4是使得更难以在强制硬件绑定系统中进行软件盗版的方法的流程图。在 步骤402处,接收企业专用VLK及其相关联的许可证文件。在步骤403处,可准 备相关联的经批量许可的软件的安装映像,以便安装在一台或多台客户机上。可以 理解,这样的映像准备可涉及收集如上结合图2A-B所述的机器属性和其它数据。 在步骤404处,可将硬件专用或批量许可证持有者专用许可证文件存储在中央服务 器上或部署到客户机D硬件专用或批量许可证持有者专用许可证文件可能不能由与 服务器相关联的客户机自由访问。可准备执行无人操作安装的专门脚本。在步骤406处,将该软件安装在一台或多台客户机上。在步骤408处,脚本 将许可证文件位置设置在系统的己知位置列表中,这或者如被部署在客户机上或者 例如经由windows管理接口 (WMI)或经由硬编码注册表项将许可证文件的位置 发布给客户机。在步骤410处,在登录时,激活例程检索许可证文件的位置。在许 可证文件位于远程服务器上的情况中,脚本可任选地例如通过比较互联网协议(IP)地址来验证许可证文件的位置。在步骤412处,激活例程从许可证文件读取数据、验证该数据是真实的、验证许可证文件中所指定的机器属性特征、并激活该软件。 如果在系统连接时许可证文件中所指定的机器属性特征不能被验证,则系统可继续在宽限期中工作。在一实施例中,也可在步骤412处作出关于许可证文件是否处于 如以上结合图2A描述的许可证文件中所指定的机器属性特征的预定容许度之内的 判断。如果是,则该软件可被激活。超过宽限期,则系统可在减少功能模式中工作, 或最终用户可向软件厂商请求延期。如果在系统断开时许可证数据不能被验证,则 软件可继续仅使用断开的特征来工作,直到系统被再次接入网络。注意到,仅出于解释的目的提供了前述示例,它们决不应该被解释为对本发 明的限定。也注意到,存在实现本发明的各种方式,例如适当的API、工具箱、驱 动程序代码、动态链接库(DLL)、操作系统、控件、单机或可下载软件对象等, 它们允许应用程序和服务获得根据本发明的许可信息。本发明构想了从API (或其 它软件对象)的立场、以及从与此处所述的VLK许可技术连接通信的软件或硬件 对象来使用本发明。因此,此处所述的本发明的各种实现可具有完全使用硬件、部 分使用硬件部分使用软件、以及使用软件的各方面。如上所述,结合各种计算设备和网络体系结构描述了本发明的的示例实施例, 其底层概念可被应用于期望在其中制止盗版的任何计算设备或系统。因此,根据本 发明的用于编码/解码数据的技术可被应用于各种应用程序和设备。例如,本发明 的算法和硬件实现可被应用于计算设备的操作系统,作为设备上的单独对象、另一对象的一部分、可重用控件、可从服务器下载的对象、设备或对象与网络之间的"中 间人"、分布式对象、硬件来提供、位于存储器中、或任何前述的组合。尽管此处 选择了示例程序设计语言、名称和示例作为各种选择的代表,但这些语言、名称和 示例不旨在为限定性的。对于涉及使用控件来实现本发明的实施例,本发明不限于 提供.NET控件,而应在根据本发明实现盗版制止目的的任何软件(和/或硬件)的 宽泛上下文中考虑。本领域的普通技术人员可以理解,存在提供实现本发明的各个 实施例所实现的相同、类似或等效功能的目标代码和术语的众多方式。本发明也可 结合在线拍卖或竞价来实现。如上所述,可结合硬件或软件或其适当的组合来实现此处所述的各种技术。 因此,本发明的方法和装置或其某些方面或部分可采用包含在诸如软盘、CD-ROM、 硬盘驱动器、或任何其它机器可读存储介质等有形介质中的程序代码(即,指令) 的形式,其中当将程序代码加载到诸如计算机等机器中并由其执行时,该机器成为 实现本发明的装置。在程序代码在可编程计算机上执行的情况中,计算设备一般包 括处理器、该处理器可读的存储介质(包括易失性和非易失性的存储器和/或存储 元件)、至少一个输入设备以及至少一个输出设备。可例如通过使用数据处理API、 可重用控件等来利用本发明的盗版制止技术的一个或多个程序优选地以高级过程 或面向对象编程语言实现来与计算机系统通信。然而,如果需要,可以使用汇编或 机器语言来实现该程序。在任何情况中,该语言可以是编译或解释语言,且与硬件 实现相结合。本发明的方法和装置也可以经由通过诸如电线或电缆、光纤或任何其它形式 的传输等某些传输介质传输的程序代码的形式具体化的通信来实现,其中,当程序代码由诸如EPROM、门阵列、可编程逻辑器件(PLD)、客户计算机、录影机等、 或具有如在以上示例实施例中描述的信号处理能力的接收机器等机器接收、加载并 执行时,该机器成为用于实现本发明的装置。当在通用处理器上实现时,程序模块 结合处理器来提供操作来调用本发明的功能的独特装置。此外,结合本发明使用的 任何存储技术可总是硬件和软件的组合。尽管结合各个附图的优选实施例描述了本发明,但是可以理解,可以使用其 它类似的实施例,或可以对所述实施例进行修改或添加,来用于实现本发明的相同 的功能而不与之背离。例如,尽管在诸如对等联网环境等联网环境的上下文中描述 了本发明的示例网络实施例,但是本领域的技术人员可以认识到,本发明不限于此, 且如在本申请中所述的方法可应用于无论是有线还是无线的任何计算设备或环境, 诸如游戏控制台、手持式计算机、便携式计算机等,且可应用于经由通信网络连接 并跨该网络交互的任何数目的这样的计算设备。而且,应该强调,尤其随着无线联 网设备的数目持续增长,此处构想了各种计算机平台,包括手持式设备操作系统和 其它应用程序专用操作系统。此外,本发明可在多个处理芯片或设备中或跨这些芯 片或设备来实现,并且存储可类似地跨多个设备实现。从而,本发明不应该限于任 何单个实施例,而应根据所附权利要求书的宽度和范围来解释。
权利要求
1.一种用于在批量许可证环境中制止软件盗版的计算机实现的方法,包括接收嵌入在批量许可证文件内的批量许可证密钥,其中所述批量许可证密钥具有从所述环境的至少一个机器属性中导出的第一数据;使用从所述环境的至少一个机器属性中导出的第二数据来认证所述批量许可证文件;以及在所述环境中的至少一个计算设备上激活与所述批量许可证密钥相关联的软件包。
2. 如权利要求l所述的方法,其特征在于,所述机器属性是硬件标识符。
3. 如权利要求1所述的方法,其特征在于,所述认证步骤还包括确定所述第 二数据在预定容许度内与所述第一数据匹配。
4. 如权利要求1所述的方法,其特征在于,还包括收集所述环境的至少一个 机器属性,并对所述机器属性进行散列以形成所述第一数据。
5. 如权利要求4所述的方法,其特征在于,还包括收集指示收集所述机器属 性的时间的时戳。
6. 如权利要求l所述的方法,其特征在于,所述第一数据还从所述计算环境 的多个机器属性中导出。
7. 如权利要求l所述的方法,其特征在于,所述批量许可证密钥和批量许可 证文件与所述软件包相关联以便在包括所述至少一个计算设备的多个计算设备上 安装。
8. —种包括用于实现如权利要求1所述的方法的计算机可执行指令的计算机 可读介质。
9. 一种用于在计算环境中制止软件盗版的系统,包括与嵌入在批量许可证文件内的批量许可证密钥相关联的软件包,其中所述批量许可证文件具有从所述计算环境的机器属性中导出的第一数据;用于从所述计算环境的机器属性中导出第二数据,并将所述第二数据与所述第一数据进行比较的认证例程;以及用于根据所述批量许可证密钥以及响应于认证所述批量许可证文件来激活所 述软件包的激活例程。
10. 如权利要求9所述的系统,其特征在于,所述认证例程还确定所述第二 数据在预定容许度内与所述第一数据匹配。
11. 如权利要求9所述的系统,其特征在于,所述第一数据具有从所述机器属性中导出的散列值。
12. 如权利要求11所述的系统,其特征在于,所述第一数据还具有对应于何 时导出所述第一数据的时戳。
13. 如权利要求9所述的系统,其特征在于,所述第一和第二数据是从多个 机器属性中导出的。
14. 一种含有用于执行在批量许可证环境中制止软件盗版的方法的计算机可 执行指令的计算机可读介质,所述方法包括接收嵌入在批量许可证文件内的批量许可证密钥,其中所述批量许可证密钥 具有从所述环境的至少一个机器属性中导出的第一数据;使用从所述环境的至少一个机器属性中导出的第二数据来认证所述批量许可 证文件;以及在所述环境中的至少一个计算设备上激活与所述批量许可证密钥相关联的软 件包。
15. 如权利要求14所述的计算机可读介质,其特征在于,所述机器属性是硬 件标识符。
16. 如权利要求14所述的计算机可读介质,其特征在于,所述认证步骤还包 括确定所述第二数据在预定容许度内与所述第一数据匹配。
17. 如权利要求14所述的计算机可读介质,其特征在于,所述方法还包括收 集所述环境的至少一个机器属性,并对所述机器属性进行散列以形成所述第一数 据。
18. 如权利要求17所述的计算机可读介质,其特征在于,所述方法还包括收 集指示收集所述机器属性的时间的时戳。
19. 如权利要求14所述的计算机可读介质,其特征在于,所述第一数据还从 所述计算环境的多个机器属性中导出。
20. 如权利要求14所述的计算机可读介质,其特征在于,所述批量许可证密 钥和批量许可证文件与所述软件包相关联,以便在包括所述至少一个计算设备的多 个计算设备上安装。全文摘要
一种用于在批量许可证环境中制止软件盗版的方法、系统和计算机可读介质。接收嵌入在批量许可证文件内的批量许可证密钥。该批量许可证密钥具有从环境的至少一个机器属性中导出的第一数据。使用从环境的至少一个机器属性中导出的第二数据来认证该批量许可证文件。然后在环境中的至少一个计算设备上激活与该批量许可证密钥相关联的软件包。
文档编号H04L9/00GK101156166SQ200580048741
公开日2008年4月2日 申请日期2005年8月1日 优先权日2005年3月24日
发明者R·W·米勒, X·谭 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1