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

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

Info

Publication number
CN101156166B
CN101156166B CN2005800487416A CN200580048741A CN101156166B CN 101156166 B CN101156166 B CN 101156166B CN 2005800487416 A CN2005800487416 A CN 2005800487416A CN 200580048741 A CN200580048741 A CN 200580048741A CN 101156166 B CN101156166 B CN 101156166B
Authority
CN
China
Prior art keywords
volume license
software
environment
data
machine attribute
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2005800487416A
Other languages
English (en)
Other versions
CN101156166A (zh
Inventor
X·谭
R·W·米勒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101156166A publication Critical patent/CN101156166A/zh
Application granted granted Critical
Publication of CN101156166B publication Critical patent/CN101156166B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/107License processing; Key processing

Abstract

一种用于在批量许可证环境中制止软件盗版的方法、系统和计算机可读介质。接收嵌入在批量许可证文件内的批量许可证密钥。该批量许可证密钥具有从环境的至少一个机器属性中导出的第一数据。使用从环境的至少一个机器属性中导出的第二数据来认证该批量许可证文件。然后在环境中的至少一个计算设备上激活与该批量许可证密钥相关联的软件包。

Description

使用机器属性来制止企业环境中的软件盗版的系统和方法
相关申请的交叉引用
本申请是于2003年1月31日提交的题为“Systems And Methods For DeterringSoftware Piracy in a Volume License Environment”美国专利申请第10/356,225号的部分延续,该申请通过引用如在此处完全描述一般被包含于此。
发明领域
本发明涉及软件盗版制止领域,尤其涉及使用批量许可证密钥(VLK)的软件批量许可领域。
发明背景
软件盗版是全球性的问题,它每年都花费软件厂商大量金钱。被称为随意复制的一种形式的盗版是在多台计算机上共享并安装软件,这侵害了最终用户许可证协议。产品激活是减少这种类型的盗版的一种方式。
产品激活一般依赖于向软件厂商提交安装标识码和/或硬件标识符。软件厂商作为响应返回激活确认码。在典型的产品激活零售应用中,每一经封装的软件包配备唯一的产品密钥。一般,在某一宽限期限(软件安装之后的一段时间,在此期间软件将在没有被激活的情况下运行)之后,顾客必须联系软件厂商来激活其软件副本。不这样做通常导致软件的停用或软件功能降级。一般,使用该唯一产品密钥来生成唯一产品标识码,它可与经散列的硬件相关值组合来生成其上运行该软件的机器所专用的安装标识码。允许该软件运行的激活确认一般被返回给顾客。就这点而言,激活确认也可以是许可证文件、或表示许可证的二进制数。每次登录时,经许可的软件检查它是否正运行在其上激活该软件的基本上同一硬件上。如果检查失败,则在软件再次运行之前要求重新激活。
公司顾客一般购买批量许可证,因为对在其域中具有数百或数千机器的公司顾客而言,为所安装的每一软件副本来联系软件厂商以接收机器专用激活码是不可行的。从而,一般批量许可证持有者不必联系软件厂商来激活其软件,因为当检测到批量许可证密钥时,软件将绕过激活需求。因此,在宽限期限期满之前或之后可在众多不同的计算机上使用同一批量许可证密钥,其中任何一台都不需要激活来以便于该软件运行。尽管这一特征使得批量许可证密钥更便于公司顾客安装软件,但它也是盗版的攻击目标。
从而,需要用于使得更难以盗版批量许可证密钥的机制。本发明满足这一需求。
发明概述
考虑前述缺点和不足,此处提供一种用于在批量许可证环境中制止软件盗版的方法、系统和计算机可读介质。在该方法中,接收到嵌入在批量许可证文件内的批量许可证密钥。批量许可证密钥具有从该环境的至少一个机器属性中导出的第一数据。使用从该环境的至少一个机器属性导出的第二数据来认证批量许可证文件。然后在该环境中的至少一个计算设备上激活与该批量许可证密钥相关联的软件包。
在该系统中,提供了与嵌入在批量许可证文件内的批量许可证密钥相关联的软件包。批量许可证文件具有从计算环境的机器属性导出的第一数据。提供认证例程用于从计算环境的机器属性导出第二数据,以及将第二数据与第一数据进行比较。此外,还提供了用于根据批量许可证密钥以及响应于认证批量许可证文件来激活软件包的激活例程。
附图简述
当结合附图阅读时,以上概述以及以下优选实施例的详细描述将被更好地理解。为说明本发明起见,在附图中示出本发明的示例构造;然而,本发明不限于所公开的特定方法和手段。附图中:
图1是可在其中实现本发明的各方面的示例计算环境;
图2A是根据本发明的一个实施例示出用于制止软件盗版的示例强制硬件绑定系统的框图;
图2B是可结合本发明的一个实施例使用的示例客户机数据的框图;
图3是根据本发明的一个实施例示出用于制止软件盗版的示例离线系统的框图;以及
图4是根据本发明的一个实施例用于在强制硬件绑定系统中制止软件盗版的示例方法的流程图。
说明性实施例的详细描述
详细描述本发明的主题来满足法定要求。然而,描述本身不旨在限制本专利的范围。相反,发明人构想了所要求的主题可结合其它目前或将来的技术按照其它方式来具体化,以包括不同的步骤或类似于本文档中所描述的步骤的步骤的组合。而且,尽管术语“步骤”可在此处用于指示所采用的方法的不同方面,但除非当明确描述了各个步骤的顺序时,否则该术语不应被解释为暗示此处公开的各个步骤之间的任何特定顺序。
示例计算环境
图1示出了可在其上实现本发明的合适的计算系统环境100的一个示例。计算系统环境100只是合适的计算环境的一个示例,并不旨在对本发明的使用范围或功能提出任何限制。也不应该把计算环境100解释为对示例操作环境100中示出的任一组件或其组合有任何依赖性或要求。
本发明可用众多其它通用或专用计算系统环境或配置来操作。适合在本发明中使用的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子产品、网络PC、小型机、大型机、包含上述系统或设备中的任一个的分布式计算机环境等。
本发明可在诸如程序模块等由计算机执行的计算机可执行指令的通用语境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定任务或实现特定抽象数据类型。一般,在各个实施例中可按需组合或分布程序模块的功能。本发明也可以在分布式计算环境中实现,其中任务由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。
参考图1,用于实现本发明的一个示例系统包括计算机110形式的通用计算设备。计算机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中元件之间传递信息的基本例程,它通常被存储在ROM131中。RAM132通常包含处理单元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,它们可以通过输出外围接口190连接。
计算机110可使用至一个或多个远程计算机,诸如远程计算机180的逻辑连接在网络化环境下操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机110描述的许多或所有元件,尽管在图1中只示出存储器存储设备181。图1中所示逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中使用时,计算机110通过网络接口或适配器170连接至LAN171。当在WAN联网环境中使用时,计算机110通常包括调制解调器172或用于在诸如因特网等WAN173上建立通信的其它装置。调制解调器172可以是内置或外置的,它可以通过用户输入接口160或其它合适的机制连接至系统总线121。在网络化环境中,相对于计算机110描述的程序模块或其部分可以存储在远程存储器存储设备中。作为示例,而非限制,图1示出了远程应用程序185驻留在存储器设备181上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。
示例分布式计算框架或体系结构
考虑到个人计算和因特网的交汇,已经开发且正在开发各种分布式计算框架。个人和企业用户同等地拥有用于应用程序和计算设备的可无缝互操作且启用web的接口,使得计算活动变得日益面向web浏览器或网络。
例如,
Figure S05848741620070829D000061
的.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可附带企业专用或批量许可证持有者专用VLK222。在本发明的一个实施例中,VLK222可被嵌入在被称为许可证文件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可以是相对较大的系统文件。所选的特定文件类型可以是任何一类文件类型,包括但不限于,映像或音频文件格式。VLK222可被嵌入到数据中的任何地方,在一个实施例中然后可使用私钥来签署该数据以生成许可证文件224。在本发明的一个实施例中,许可证文件224的大小大于1.44兆字节(MB),诸如例如2MB以防止将许可证文件224复制到软盘等上。在本发明的一个实施例中,可在仅包含许可证文件224且其卷标不同于包含相关联软件212的CD-ROM的卷标的CD-ROM上提供许可证文件224。
现在参考上述环境,其中许可证持有者的软件212在客户机206、208等之间分发,在登录时,驻留在客户机206、208等上的激活码读取许可证文件224的内容以验证该许可证文件224未被篡改。如此处所利用的,激活指的是用于确认软件许可证数据、网络环境绑定、硬件绑定以及允许软件在一段时间内起效而不需进一步绑定确认的过程。就这点而言,在软件安装过程期间,VLK222和/或许可证文件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的框图。在该离线系统中,企业接收VLK222以及软件厂商202供应的安全硬件设备252。硬件设备252能够执行签署操作以生成格式上与许可证文件224完全相同的许可证文件225。客户机206和208上经批量许可的软件的安装、激活过程、以及许可证确认过程与图2中所述的相同,图2中VLK许可证文件也被签署并来自软件厂商。与图2A一样,在图3中,虚线示出本发明的替换实现。
图4是使得更难以在强制硬件绑定系统中进行软件盗版的方法的流程图。在步骤402处,接收企业专用VLK及其相关联的许可证文件。在步骤403处,可准备相关联的经批量许可的软件的安装映像,以便安装在一台或多台客户机上。可以理解,这样的映像准备可涉及收集如上结合图2A-B所述的机器属性和其它数据。在步骤404处,可将硬件专用或批量许可证持有者专用许可证文件存储在中央服务器上或部署到客户机。硬件专用或批量许可证持有者专用许可证文件可能不能由与服务器相关联的客户机自由访问。可准备执行无人操作安装的专门脚本。
在步骤406处,将该软件安装在一台或多台客户机上。在步骤408处,脚本将许可证文件位置设置在系统的已知位置列表中,这或者如被部署在客户机上或者例如经由windows管理接口(WMI)或经由硬编码注册表项将许可证文件的位置发布给客户机。在步骤410处,在登录时,激活例程检索许可证文件的位置。在许可证文件位于远程服务器上的情况中,脚本可任选地例如通过比较互联网协议(IP)地址来验证许可证文件的位置。在步骤412处,激活例程从许可证文件读取数据、验证该数据是真实的、验证许可证文件中所指定的机器属性特征、并激活该软件。如果在系统连接时许可证文件中所指定的机器属性特征不能被验证,则系统可继续在宽限期中工作。在一实施例中,也可在步骤412处作出关于许可证文件是否处于如以上结合图2A描述的许可证文件中所指定的机器属性特征的预定容许度之内的判断。如果是,则该软件可被激活。超过宽限期,则系统可在减少功能模式中工作,或最终用户可向软件厂商请求延期。如果在系统断开时许可证数据不能被验证,则软件可继续仅使用断开的特征来工作,直到系统被再次接入网络。
注意到,仅出于解释的目的提供了前述示例,它们决不应该被解释为对本发明的限定。也注意到,存在实现本发明的各种方式,例如适当的API、工具箱、驱动程序代码、动态链接库(DLL)、操作系统、控件、单机或可下载软件对象等,它们允许应用程序和服务获得根据本发明的许可信息。本发明构想了从API(或其它软件对象)的立场、以及从与此处所述的VLK许可技术连接通信的软件或硬件对象来使用本发明。因此,此处所述的本发明的各种实现可具有完全使用硬件、部分使用硬件部分使用软件、以及使用软件的各方面。
如上所述,结合各种计算设备和网络体系结构描述了本发明的的示例实施例,其底层概念可被应用于期望在其中制止盗版的任何计算设备或系统。因此,根据本发明的用于编码/解码数据的技术可被应用于各种应用程序和设备。例如,本发明的算法和硬件实现可被应用于计算设备的操作系统,作为设备上的单独对象、另一对象的一部分、可重用控件、可从服务器下载的对象、设备或对象与网络之间的“中间人”、分布式对象、硬件来提供、位于存储器中、或任何前述的组合。尽管此处选择了示例程序设计语言、名称和示例作为各种选择的代表,但这些语言、名称和示例不旨在为限定性的。对于涉及使用控件来实现本发明的实施例,本发明不限于提供.NET控件,而应在根据本发明实现盗版制止目的的任何软件(和/或硬件)的宽泛上下文中考虑。本领域的普通技术人员可以理解,存在提供实现本发明的各个实施例所实现的相同、类似或等效功能的目标代码和术语的众多方式。本发明也可结合在线拍卖或竞价来实现。
如上所述,可结合硬件或软件或其适当的组合来实现此处所述的各种技术。因此,本发明的方法和装置或其某些方面或部分可采用包含在诸如软盘、CD-ROM、硬盘驱动器、或任何其它机器可读存储介质等有形介质中的程序代码(即,指令)的形式,其中当将程序代码加载到诸如计算机等机器中并由其执行时,该机器成为实现本发明的装置。在程序代码在可编程计算机上执行的情况中,计算设备一般包括处理器、该处理器可读的存储介质(包括易失性和非易失性的存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。可例如通过使用数据处理API、可重用控件等来利用本发明的盗版制止技术的一个或多个程序优选地以高级过程或面向对象编程语言实现来与计算机系统通信。然而,如果需要,可以使用汇编或机器语言来实现该程序。在任何情况中,该语言可以是编译或解释语言,且与硬件实现相结合。
本发明的方法和装置也可以经由通过诸如电线或电缆、光纤或任何其它形式的传输等某些传输介质传输的程序代码的形式具体化的通信来实现,其中,当程序代码由诸如EPROM、门阵列、可编程逻辑器件(PLD)、客户计算机、录影机等、或具有如在以上示例实施例中描述的信号处理能力的接收机器等机器接收、加载并执行时,该机器成为用于实现本发明的装置。当在通用处理器上实现时,程序模块结合处理器来提供操作来调用本发明的功能的独特装置。此外,结合本发明使用的任何存储技术可总是硬件和软件的组合。
尽管结合各个附图的优选实施例描述了本发明,但是可以理解,可以使用其它类似的实施例,或可以对所述实施例进行修改或添加,来用于实现本发明的相同的功能而不与之背离。例如,尽管在诸如对等联网环境等联网环境的上下文中描述了本发明的示例网络实施例,但是本领域的技术人员可以认识到,本发明不限于此,且如在本申请中所述的方法可应用于无论是有线还是无线的任何计算设备或环境,诸如游戏控制台、手持式计算机、便携式计算机等,且可应用于经由通信网络连接并跨该网络交互的任何数目的这样的计算设备。而且,应该强调,尤其随着无线联网设备的数目持续增长,此处构想了各种计算机平台,包括手持式设备操作系统和其它应用程序专用操作系统。此外,本发明可在多个处理芯片或设备中或跨这些芯片或设备来实现,并且存储可类似地跨多个设备实现。从而,本发明不应该限于任何单个实施例,而应根据所附权利要求书的宽度和范围来解释。

Claims (12)

1.一种用于在批量许可证环境中制止软件盗版的计算机实现的方法,包括:
从批量许可证环境的计算设备中收集至少一个机器属性,并对所述机器属性进行散列以形成第一数据;
接收嵌入在批量许可证文件内的批量许可证密钥,其中所述批量许可证密钥具有所述第一数据;
使用从所述批量许可证环境的所收集的机器属性中导出的第二数据来认证所述批量许可证文件;以及
在所述批量许可证环境中的至少一个计算设备上激活与所述批量许可证密钥相关联的软件包。
2.如权利要求1所述的方法,其特征在于,所收集的机器属性是硬件标识符。
3.如权利要求1所述的方法,其特征在于,所述认证步骤还包括确定所述第二数据在预定容许度内与所述第一数据匹配。
4.如权利要求1所述的方法,其特征在于,还包括收集指示收集所述机器属性的时间的时戳。
5.如权利要求1所述的方法,其特征在于,所述第一数据从多个机器属性中形成,所述多个机器属性来自所述批量许可证环境中的计算设备。
6.如权利要求1所述的方法,其特征在于,所述批量许可证密钥和批量许可证文件与所述软件包相关联以便在包括所述至少一个计算设备的多个计算设备上安装。
7.一种用于在批量许可证环境中制止软件盗版的系统,包括:
用于从批量许可证环境的计算设备中收集至少一个机器属性,并对所述机器属性进行散列以形成第一数据的装置;
用于接收嵌入在批量许可证文件内的批量许可证密钥的装置,其中所述批量许可证密钥具有所述第一数据;
用于使用从所述批量许可证环境的所收集的机器属性中导出的第二数据来认证所述批量许可证文件的装置;以及
用于在所述批量许可证环境中的至少一个计算设备上激活与所述批量许可证密钥相关联的软件包的装置。
8.如权利要求7所述的系统,其特征在于,所收集的机器属性是硬件标识符。
9.如权利要求7所述的系统,其特征在于,所述用于认证的装置还包括用于确定所述第二数据在预定容许度内与所述第一数据匹配的装置。
10.如权利要求7所述的系统,其特征在于,所述系统还包括用于收集指示收集所述机器属性的时间的时戳的装置。
11.如权利要求7所述的系统,其特征在于,所述第一数据从多个机器属性中形成,所述多个机器属性来自所述批量许可证环境中的计算设备。
12.如权利要求7所述的系统,其特征在于,所述批量许可证密钥和批量许可证文件与要安装在所述计算设备上的所述软件包相关联。
CN2005800487416A 2005-03-24 2005-08-01 使用机器属性来制止企业环境中的软件盗版的系统和方法 Expired - Fee Related CN101156166B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/089,071 2005-03-24
US11/089,071 US7644442B2 (en) 2003-01-31 2005-03-24 Systems and methods for using machine attributes to deter software piracy in an enterprise environment
PCT/US2005/027204 WO2006104507A2 (en) 2005-03-24 2005-08-01 Systems and methods for using machine attributes to deter software piracy in an enterprise environment

Publications (2)

Publication Number Publication Date
CN101156166A CN101156166A (zh) 2008-04-02
CN101156166B true CN101156166B (zh) 2012-08-29

Family

ID=37053825

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005800487416A Expired - Fee Related CN101156166B (zh) 2005-03-24 2005-08-01 使用机器属性来制止企业环境中的软件盗版的系统和方法

Country Status (6)

Country Link
US (1) US7644442B2 (zh)
EP (1) EP1861815B1 (zh)
JP (1) JP4902636B2 (zh)
KR (1) KR101075380B1 (zh)
CN (1) CN101156166B (zh)
WO (1) WO2006104507A2 (zh)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7024696B1 (en) 2000-06-14 2006-04-04 Reuben Bahar Method and system for prevention of piracy of a given software application via a communications network
US8181265B2 (en) * 2003-01-31 2012-05-15 Microsoft Corporation Secure machine counting
US7979911B2 (en) * 2003-10-08 2011-07-12 Microsoft Corporation First computer process and second computer process proxy-executing code from third computer process on behalf of first process
US8103592B2 (en) * 2003-10-08 2012-01-24 Microsoft Corporation First computer process and second computer process proxy-executing code on behalf of first process
ATE544716T1 (de) * 2004-07-01 2012-02-15 Great Stuff Inc System und verfahren zum gesteuerten spulen von linearem material
US7673346B1 (en) * 2005-06-22 2010-03-02 Symantec Corporation Intra-data license for using data
US20140013449A1 (en) 2005-07-28 2014-01-09 Adobe Systems Incorporated Delayed validation for software licensing and activation
US8087092B2 (en) 2005-09-02 2011-12-27 Uniloc Usa, Inc. Method and apparatus for detection of tampering attacks
FR2897736B1 (fr) * 2006-02-22 2008-04-11 Viaccess Sa Procede d'etablissement d'une cle cryptographique, tete de reseau et recepteur pour ce procede, et procede de transmission de signaux
WO2009065135A1 (en) * 2007-11-17 2009-05-22 Uniloc Corporation System and method for adjustable licensing of digital products
WO2009105702A2 (en) * 2008-02-22 2009-08-27 Etchegoyen Craig S License auditing for distributed applications
EP2112611A1 (en) * 2008-04-21 2009-10-28 Nokia Siemens Networks Oy License management for groups of network elements
US20090271319A1 (en) * 2008-04-29 2009-10-29 Microsoft Corporation Embedded Licenses for Content
US9424399B2 (en) 2009-05-12 2016-08-23 Microsoft Technology Licensing, Llc Availability of permission models in roaming environments
US20100293536A1 (en) * 2009-05-12 2010-11-18 Microsoft Corporation Enhanced product functionality based on user identification
US9633183B2 (en) 2009-06-19 2017-04-25 Uniloc Luxembourg S.A. Modular software protection
US8423473B2 (en) * 2009-06-19 2013-04-16 Uniloc Luxembourg S. A. Systems and methods for game activation
US9047458B2 (en) 2009-06-19 2015-06-02 Deviceauthority, Inc. Network access protection
US20100325051A1 (en) * 2009-06-22 2010-12-23 Craig Stephen Etchegoyen System and Method for Piracy Reduction in Software Activation
US20100325149A1 (en) * 2009-06-22 2010-12-23 Craig Stephen Etchegoyen System and Method for Auditing Software Usage
US20100325150A1 (en) * 2009-06-22 2010-12-23 Joseph Martin Mordetsky System and Method for Tracking Application Usage
US20100324983A1 (en) * 2009-06-22 2010-12-23 Etchegoyen Craig S System and Method for Media Distribution
US9129097B2 (en) * 2009-06-24 2015-09-08 Uniloc Luxembourg S.A. Systems and methods for auditing software usage using a covert key
US20100332319A1 (en) * 2009-06-24 2010-12-30 Craig Stephen Etchegoyen Methods and Systems for Dynamic Serving of Advertisements in a Game or Virtual Reality Environment
US20110061047A1 (en) * 2009-09-04 2011-03-10 Alcatel Lucent Licensing Software and Licensing Propagation Mechanism for Embedded Systems in Chassis and Stacked Environments
US8726407B2 (en) * 2009-10-16 2014-05-13 Deviceauthority, Inc. Authentication of computing and communications hardware
US9772834B2 (en) * 2010-04-27 2017-09-26 Red Hat, Inc. Exportable encoded identifications of networked machines
US8522030B2 (en) * 2010-09-24 2013-08-27 Intel Corporation Verification and protection of genuine software installation using hardware super key
US8763158B2 (en) 2010-12-06 2014-06-24 Microsoft Corporation Directory service distributed product activation
JP5640804B2 (ja) * 2011-02-23 2014-12-17 大日本印刷株式会社 ライセンス管理装置および管理方法
US8695912B2 (en) 2011-04-19 2014-04-15 Great Stuff, Inc. Reel systems and methods for monitoring and controlling linear material slack
AU2011101297B4 (en) 2011-08-15 2012-06-14 Uniloc Usa, Inc. Remote recognition of an association between remote devices
CN102708332A (zh) * 2012-01-12 2012-10-03 苏州百正信息科技有限公司 通过硬件识别码保护计算机软件版权的方法
US9067759B2 (en) 2012-04-17 2015-06-30 Great Stuff, Inc. Automatic reel devices and method of operating the same
US9143496B2 (en) 2013-03-13 2015-09-22 Uniloc Luxembourg S.A. Device authentication using device environment information
US9286466B2 (en) 2013-03-15 2016-03-15 Uniloc Luxembourg S.A. Registration and authentication of computing devices using a digital skeleton key
WO2015013474A2 (en) 2013-07-25 2015-01-29 Siemens Healthcare Diagnostics Inc. Anti-piracy protection for software
US9615193B1 (en) * 2013-12-13 2017-04-04 Symantec Corporation Systems and methods for managing launch activities on a mobile device
CN105447346B (zh) * 2015-11-10 2018-08-28 国云科技股份有限公司 一种面向云操作系统的分布式、高可用的许可证认证方法
DE102015225651A1 (de) * 2015-12-17 2017-06-22 Robert Bosch Gmbh Verfahren und Vorrichtung zum Übertragen einer Software
CN106919859B (zh) * 2015-12-25 2020-09-18 研祥智能科技股份有限公司 基本输入输出系统保护方法和装置
US10614427B2 (en) * 2016-10-21 2020-04-07 Johnson Controls Technology Company Systems and methods for monetizing building management system software deployment
CN111625829A (zh) * 2019-02-27 2020-09-04 阿里巴巴集团控股有限公司 基于可信执行环境的应用激活方法及装置
CN110633074A (zh) * 2019-09-19 2019-12-31 北京猎户星空科技有限公司 一种软件开发工具包的使用控制方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859793B1 (en) * 2002-12-19 2005-02-22 Networks Associates Technology, Inc. Software license reporting and control system and method

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4688169A (en) 1985-05-30 1987-08-18 Joshi Bhagirath S Computer software security system
US5138712A (en) * 1989-10-02 1992-08-11 Sun Microsystems, Inc. Apparatus and method for licensing software on a network of computers
US5182770A (en) 1991-04-19 1993-01-26 Geza Medveczky System and apparatus for protecting computer software
DE69228039T2 (de) * 1991-05-08 1999-08-05 Digital Equipment Corp Lizenz-verwaltungssystem
US5260999A (en) 1991-06-28 1993-11-09 Digital Equipment Corporation Filters in license management system
US5204897A (en) 1991-06-28 1993-04-20 Digital Equipment Corporation Management interface for license management system
US6134324A (en) 1991-07-31 2000-10-17 Lsi Logic Corporation Method and system for distributing a plurality of software products, and limiting access thereto
US5319705A (en) 1992-10-21 1994-06-07 International Business Machines Corporation Method and system for multimedia access control enablement
US5553139A (en) * 1994-04-04 1996-09-03 Novell, Inc. Method and apparatus for electronic license distribution
US5845065A (en) * 1994-11-15 1998-12-01 Wrq, Inc. Network license compliance apparatus and method
JP3688356B2 (ja) * 1995-08-31 2005-08-24 富士通株式会社 ライセンシー通知システム
US6067622A (en) 1996-01-02 2000-05-23 Moore; Steven Jerome Software security system using remove function to restrict unauthorized duplicating and installation of an application program
US20010011253A1 (en) 1998-08-04 2001-08-02 Christopher D. Coley Automated system for management of licensed software
US5905860A (en) 1996-03-15 1999-05-18 Novell, Inc. Fault tolerant electronic licensing system
US5742757A (en) * 1996-05-30 1998-04-21 Mitsubishi Semiconductor America, Inc. Automatic software license manager
JP3917687B2 (ja) * 1996-08-22 2007-05-23 富士通株式会社 コンテンツ利用管理装置及びその装置を用いたコンテンツ利用システム
US5754763A (en) 1996-10-01 1998-05-19 International Business Machines Corporation Software auditing mechanism for a distributed computer enterprise environment
JP3924342B2 (ja) * 1997-02-14 2007-06-06 富士通株式会社 ソフトウェアライセンス管理システムおよびソフトウェアライセンス管理装置
US6108420A (en) 1997-04-10 2000-08-22 Channelware Inc. Method and system for networked installation of uniquely customized, authenticable, and traceable software application
US6263492B1 (en) 1997-06-06 2001-07-17 Microsoft Corporation Run time object layout model with object type that differs from the derived object type in the class structure at design time and the ability to store the optimized run time object layout model
US6188995B1 (en) * 1997-07-28 2001-02-13 Apple Computer, Inc. Method and apparatus for enforcing software licenses
US6006035A (en) 1997-12-31 1999-12-21 Network Associates Method and system for custom computer software installation
US6134659A (en) 1998-01-07 2000-10-17 Sprong; Katherine A. Controlled usage software
US6324649B1 (en) * 1998-03-02 2001-11-27 Compaq Computer Corporation Modified license key entry for pre-installation of software
US6189146B1 (en) 1998-03-18 2001-02-13 Microsoft Corporation System and method for software licensing
US6226747B1 (en) 1998-04-10 2001-05-01 Microsoft Corporation Method for preventing software piracy during installation from a read only storage medium
US6223288B1 (en) 1998-05-22 2001-04-24 Protexis Inc. System for persistently encrypting critical software file to prevent installation of software program on unauthorized computers
US6799277B2 (en) 1998-06-04 2004-09-28 Z4 Technologies, Inc. System and method for monitoring software
US6169976B1 (en) * 1998-07-02 2001-01-02 Encommerce, Inc. Method and apparatus for regulating the use of licensed products
US6343280B2 (en) * 1998-12-15 2002-01-29 Jonathan Clark Distributed execution software license server
US6920567B1 (en) * 1999-04-07 2005-07-19 Viatech Technologies Inc. System and embedded license control mechanism for the creation and distribution of digital content files and enforcement of licensed use of the digital content files
WO2000075760A1 (en) 1999-06-07 2000-12-14 Firepad, Inc. Method and system for preventing the unauthorized use of software
US7035918B1 (en) * 1999-09-03 2006-04-25 Safenet Canada. Inc. License management system and method with multiple license servers
US6842896B1 (en) 1999-09-03 2005-01-11 Rainbow Technologies, Inc. System and method for selecting a server in a multiple server license management system
US20030088516A1 (en) * 1999-12-21 2003-05-08 Eric B. Remer Software anti-piracy licensing
US6460140B1 (en) * 1999-12-30 2002-10-01 Starnet Communications Corporation System for controlling the use of licensed software
JP4086445B2 (ja) 2000-03-09 2008-05-14 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報送信方法、ネットワーク・プロバイダ・サーバ、情報端末及び情報端末における方法
US6948168B1 (en) * 2000-03-30 2005-09-20 International Business Machines Corporation Licensed application installer
US20030050895A1 (en) 2000-03-31 2003-03-13 Rick Dedrick Automated volume license agreement method and apparatus
US7024696B1 (en) 2000-06-14 2006-04-04 Reuben Bahar Method and system for prevention of piracy of a given software application via a communications network
US6810389B1 (en) * 2000-11-08 2004-10-26 Synopsys, Inc. System and method for flexible packaging of software application licenses
US7111285B2 (en) * 2001-07-17 2006-09-19 Liquid Machines, Inc. Method and system for protecting software applications against static and dynamic software piracy techniques
US7742992B2 (en) 2002-02-05 2010-06-22 Pace Anti-Piracy Delivery of a secure software license for a software product and a toolset for creating the software product
US7747531B2 (en) * 2002-02-05 2010-06-29 Pace Anti-Piracy Method and system for delivery of secure software license information
US7228567B2 (en) * 2002-08-30 2007-06-05 Avaya Technology Corp. License file serial number tracking
US7302590B2 (en) * 2003-01-06 2007-11-27 Microsoft Corporation Systems and methods for providing time-and weight-based flexibly tolerant hardware ID
US7356709B2 (en) * 2003-01-31 2008-04-08 Microsoft Corporation Systems and methods for deterring software piracy in a volume license environment
EP1486849A1 (en) * 2003-06-12 2004-12-15 Sap Ag License management in computer systems that use dynamic service-to-server distribution

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6859793B1 (en) * 2002-12-19 2005-02-22 Networks Associates Technology, Inc. Software license reporting and control system and method

Also Published As

Publication number Publication date
CN101156166A (zh) 2008-04-02
KR20070121647A (ko) 2007-12-27
JP2008536209A (ja) 2008-09-04
US7644442B2 (en) 2010-01-05
JP4902636B2 (ja) 2012-03-21
EP1861815A4 (en) 2014-04-09
EP1861815B1 (en) 2018-09-19
WO2006104507A2 (en) 2006-10-05
EP1861815A2 (en) 2007-12-05
US20050182732A1 (en) 2005-08-18
WO2006104507A3 (en) 2007-12-13
KR101075380B1 (ko) 2011-10-24

Similar Documents

Publication Publication Date Title
CN101156166B (zh) 使用机器属性来制止企业环境中的软件盗版的系统和方法
CN101263489B (zh) 阻止批量许可环境中的盗版的方法
US7356709B2 (en) Systems and methods for deterring software piracy in a volume license environment
CN101310472B (zh) 用以支持获信任环境的计算机可读组件的自动更新
US7024696B1 (en) Method and system for prevention of piracy of a given software application via a communications network
US7146645B1 (en) Dedicated applications for user stations and methods for downloading dedicated applications to user stations
CN100524333C (zh) 防止非法使用软件的方法
CN101213557B (zh) 限制操作系统及其它软件的安装的反骇客保护
US20130117859A1 (en) Distinguishing legitimate hardware upgrades from unauthorized installations of software on additional computers
US20100063996A1 (en) Information processing device, information recording device, information processing system, program update method, program, and integrated circuit
US8156567B2 (en) Software installation system and method for copy protection
CN105760716A (zh) 电子证书管理
CN102737200A (zh) 使用数字许可证的软件激活
MX2007011377A (es) Arranque seguro.
CN102034058B (zh) 应用软件安全控制方法及终端
US20050177823A1 (en) License management
CN112861191B (zh) 一种应用程序监控方法及装置
CN101563684A (zh) 统一存储安全模型
JP2005084989A (ja) ソフトウェア改ざん検出システム、方法及びプログラム
CA2484566A1 (en) Distinguishing legitimate hardware upgrades from unauthorized installations of software on additional computers

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150504

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150504

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120829

Termination date: 20200801

CF01 Termination of patent right due to non-payment of annual fee