首页> 中国专利> 计算机网络中的软件许可使用的自动分析

计算机网络中的软件许可使用的自动分析

摘要

本发明披露用于分析软件许可的使用的装置和方法。计算机系统经配置以执行由第一许可密钥受控于软件许可所激活的软件产品。所述计算机系统包括许可使用确定模块,其适用于与在同一计算机网络中的一组其它计算机系统进行通信、存储来源于第一许可密钥的有关第一许可密钥的信息、发送所述有关第一许可密钥的信息以由所述组中的每个计算机系统所接收、以及接收所述组中的响应者响应于所述有关第一许可密钥的信息的接收而发送的任何消息。所述消息的每一者均表明相应的响应者均具有由所述第一许可密钥所激活的所述软件产品的副本。

著录项

  • 公开/公告号CN102663294A

    专利类型发明专利

  • 公开/公告日2012-09-12

    原文格式PDF

  • 申请/专利权人 卡巴斯基实验室封闭式股份公司;

    申请/专利号CN201210088775.X

  • 发明设计人 叶夫根尼·V·罗辛;

    申请日2012-03-29

  • 分类号G06F21/00(20060101);

  • 代理机构11336 北京市磐华律师事务所;

  • 代理人顾珊;魏宁

  • 地址 俄罗斯联邦莫斯科

  • 入库时间 2023-12-18 06:28:50

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-20

    授权

    授权

  • 2012-11-07

    实质审查的生效 IPC(主分类):G06F21/00 申请日:20120329

    实质审查的生效

  • 2012-09-12

    公开

    公开

说明书

技术领域

本发明总体上涉及信息系统及其关联的方法,具体而言涉及软件授权规 定的强制执行。

背景技术

软件产品的制造商是其产品知识产权的所有者。通常来说,软件并非完 全出售给消费者,而是由该软件的供应商或制造商向消费者许可使用该软件。 该软件许可协议规范了表面上的“卖方”和“买方”的权利和义务。

不道德的软件用户经常使用该产品的未许可使用的副本。作为阻止使用 未授权副本的做法的一种手段,软件开发商一旦发觉侵犯其软件知识产权的 情况,则采用各种技术来限制其产品的功能。一种方法是使用注册程序来将 用于软件产品的许可密钥与其上安装该软件产品的计算机的唯一识别符 (identifier)或者注册实例(instance)相关联。然后,视该软件产品的有效 注册情况来提供软件更新或者产品支持服务。每当更新该软件或者通过互联 网寻求支持时,可以在提供所述更新或支持服务之前先检查所述许可密钥的 有效性。

在所述许可密钥与所述计算机的唯一识别符相关联的情况下,所述唯一 识别符可以是计算机的媒体访问控制(MAC)地址,该MAC地址硬编码入 所述计算机的网络接口设备中,也可以是硬盘驱动器的序列号,诸如此类。 在此情况下,对所述许可密钥的有效性的检查可以包含检查已知的已注册许 可密钥是否正由不只一个被唯一识别的计算机并发使用。因此,如果两个或 者更多不同的被唯一识别的计算机寻求相同的更新,那么就意味着可能存在 对该软件的不正当使用。

在另一种方法中,产品注册的实例以及更新或者支持服务的实例以某种 方式修改所述已安装的软件产品,例如修改所述许可密钥或者与所述产品相 关联的某些其它代码。如果产品的更新或支持被寻求而该产品已经接收过相 似的更新或支持,那么就可能表明该软件产品在不只一台计算机上的未授权 的安装。

这些原始的方法有许多缺点。最主要的是,这些方法对于商业或者企业、 软件产品用户而言不具有实用性。对于企业而言,公司可以许可软件产品被 大量的并发用户或者席位使用。同时,相比个人用户,企业更频繁地更新其 计算机硬件。此外,各组织通常对软件产品的更新和支持采取不同的处理, 一些组织允许个人用户直接通过该软件的供应商注册并更新他们的副本,另 一些组织则将更新和支持集中于其各自的信息技术(IT)部门。因此,开发 统一的方法来管理企业中的软件许可并非简单的事情。

在一种方法中,向监控网络环境中客户端计算机上事件任何变化的系统 管理员提供专用的软件工具,包括软件产品的安装。这一方法通常相当复杂, 其涉及海量数据的管理。类似的方法使用部署于所述网络的各计算机中的专 用的管理工具来监控软件许可合规性(compliance),并向集中节点报告有关 每台计算机的完整软件配置的信息。此类解决方案典型地属于针对软件的综 合管理套件的一部分。即使软件供应商期望其企业用户创建用于确保遵守所 述软件许可的程序,对于软件供应商来说要求其用户来承担此种综合解决方 案的额外费用以及复杂性也是不实际的。

在网络服务模式中,对于应用程序托管于一个或者更多的服务器上的情 况,一种已被提出的用于监控所述许可合规性的方法披露于公开号为EP 2112612的欧洲专利申请中。在此特定环境下,网络服务器根据客户的请求 将应用程序向下推送到客户端计算机上。在此过程中,以特定的格式来提供 每个应用程序,所述特定的格式带有“响应包装(response wrapper)”以及” 广播许可(broadcast license)”,所述响应包装包括与所述程序的副本唯一对应 的许可标签(例如全局唯一标识符GUID),所述广播许可是所述软件许可密 钥的加密版本。诸如Google之类的搜索引擎从应用程序服务器请求网络应用 程序。在该过程中,当返回所述应用程序以响应该搜索时,所述搜索引擎缓 存所述应用程序的响应包装。因此,可以向所述搜索引擎查询许可标签,并 且可以分析所述查询的结果(该结果包括带有广播许可的经缓存的响应包装) 以确定未授权的使用。

该方法应用于特定的网络服务环境下,并不适用于企业环境,在企业环 境中,应用程序不是按需推送而加以执行的,而是安装于本地个人工作站计 算机上的。在所述企业情形下,并不具有经缓存的对响应包装的收集集合以 易于被查询来对许可信息进行收集和分析以便确认许可合规性。

因此,需要能够解决在自动确定和处理软件许可合规性问题方面的上述 以及其它挑战的技术方案。

发明内容

本发明的一个方面涉及检测计算机网络中的软件产品的不合法非法副 本。软件产品可以是应用软件、系统软件、或中间软件。被广泛部署的应用 软件的实例包括安全应用软件(例如反病毒、防火墙、入侵防护等)以及办 公应用软件(例如文字处理、电子制表软件等)。该解决方案的一个技术效果 是提高用于防范软件产品的不合法使用的自动化程度。

本发明的一个方面涉及计算机实施的用于分析对软件许可的使用的装 置,所述软件许可控制软件产品的经允许使用。所述软件产品受控于所述软 件许可由第一许可密钥激活。所述装置包括计算机系统,所述计算机系统包 括与数据存储电路和网络接口电路可操作地耦合的处理器电路,以及许可使 用确定模块,所述网络接口电路适用于通信耦合到计算机网络。所述许可使 用确认模块适用于:

经由所述网络接口电路与一组其它计算机系统进行通讯,所述组中的每 个计算机系统通信耦合到所述计算机网络并不同于所述第一计算机系统;

在所述数据存储电路中存储来源于所述第一许可密钥的有关第一许可密 钥的信息;

经由所述计算机网络发送所述有关第一许可密钥的信息以由所述组中的 每个计算机系统所接收;

经由所述计算机网络接收响应者(responder)响应于所述有关第一许可 密钥的信息的接收而发送的任何消息,所述响应者中的每一者均为属于所述 组的计算机系统,同时所述消息中的每一者均表明相应的响应者具有由所述 第一许可密钥所激活的所述软件产品的副本;以及

收集许可密钥计数信息,所述许可密钥技术信息基于所述接收到的消息, 并且代表所述组中具有由所述第一许可密钥所激活的所述软件产品的副本的 任何其它计算机系统的数量。

在本发明的另一个方面,提供用于检查符合第一计算机系统与第二计算 机系统之间的软件许可规定的方法。所述第一计算机系统经配置以执行服从 于软件许可由第一许可密钥激活的软件产品,所述第一计算机系统通信耦合 到第二计算机系统同样通信耦合到的计算机网络。通过所述计算机网络上的 所述第一计算机系统接收由所述第二计算机系统发送的广播消息。所述广播 消息包括基于受控许可密钥(subject license key)的有关广播许可密钥的 信息。所述第一计算机系统将所述有关广播许可密钥的信息与来源于所述第 一许可密钥的本地许可密钥信息进行比较以产生比较结果。一旦所产生的比 较结果表明了所述有关本地许可密钥的信息与所述有关广播许可密钥的信息 之间的匹配,所述第一计算机系统发送表明存在所述匹配的响应消息。

根据一实施例的示范性系统包括具有已安装的软件产品的计算机、计算 机网络、许可记录、加密工具、用于发送数据的模块、用于接收数据的模块、 以及用于确定所述许可的并发(concurrent)使用程度的模块。根据一实施例, 所述网络中具有所述软件产品的计算机进行包括有关许可密钥的信息的信息 交换。这种信息交换允许创建诸如表格的数据集,识别相关软件许可和识别 当前活动的与那些许可的每一者相关联的反病毒软件席位的数量。

使具有所述软件产品的所述计算机相互连接的所述计算机网络促进所述 信息交换。所述计算机网络可以是局域网、广域网、市政公共接入网等。需 要所述许可记录以在安装有所述软件产品的所述计算机上全面运行所述软件 产品。所述许可记录包含所述许可密钥,并且还定义了对由所述许可密钥所 支持的并发运行完整安全应用软件的数量的限度。

存在于每个具有所述软件产品的计算机上的所述加密工具旨在读取所述 许可记录,并利用网络接口通过所述用于发送数据的模块在将所述许可密钥 的数据传送给所述网络之前修改所述数据。执行针对所述许可密钥的所述修 改以隐藏来自陌生者的真实许可密钥。所述加密工具也有助于所述原始许可 密钥与所述经修改的许可密钥之间的关联。在一实施例中,通过诸如MD5、 SHA-1、SHA-2之类的散列(hashing)来提供此种关联。通过运用单向散列 算法,由此不能从散列表(即摘要(digest))重建所述原始许可密钥。

用于发送所述数据的所述模块与所述加密工具相耦合,并在操作中接收 所述经修改的许可密钥,生成包含所述经修改的许可密钥的传送信息 (transmission),以及将其传送到所述计算机网络的各处。可以通过多种方 式来由用于发送的所述模块将所述传送信息发送给多个接收地址,包括例如 邮槽(mailslots)或者操作系统驱动器的使用。

用于接收与所述许可密钥相关的数据的所述模块可操作地与所述用于确 定所述许可的并发使用程度的模块相耦合。在操作中,用于接收所述数据的 所述模块通过所述计算机网络接收来自所述网络中的具有所述软件产品的其 它计算机的有关许可密钥的信息。根据不同的实施例,使用邮槽或者操作系 统驱动器来处理该信息的接收。

用于确定软件许可的并发使用程度的所述模块积累诸如表之类的收集集 合,所述收集集合具有代表通过所述网络经由所述用于接收数据的模块所接 收的所述许可密钥的每一者的条目,还包含针对每个经修改的许可密钥的计 数。通过运行所述系统,如果确定许可密钥的所述使用超出所述许可记录中 所指定的所述许可的条款的限度(例如所述许可密钥已经被用来激活超过被 所述许可所允许的所述软件产品的席位),那么向本地安装的所述反病毒应用 软件传递关于超出并发使用许可的许用数量的消息。

反之,如果通过所述具有所述已安装软件产品的计算机的网络接收到的 响应的数量未超过所述许可记录中提出的限度,那么所述用于确定许可并发 使用程度的模块更新所述许可密钥的收集集合以反映出响应于所述请求而返 回的许可密钥的数量,并使所述加密工具和所述用于发送数据的模块准备所 述计算机自身经修改的许可密钥以响应于未来由另一计算机发起的请求加以 发送。进一步地,在确定接收到的响应的数量未超过所述许可记录中提出的 限度的情况下,能够运行所述本地安装的软件产品,并配置所述本地系统以 响应未来来自其它计算机的请求。

此外,所述系统可以包括专用的计算机,所述专用的计算机配置有其特 有的用于确定许可的并发使用程度的模块。所述专用的计算机进一步包含全 局许可密钥跟踪列表,其基于遍及所述网络的所述经修改的许可密钥的传送 信息而反映出对所述许可密钥做出的全部修改。所述跟踪列表是关于已使用 的许可密钥的并向系统管理者开放,所述系统管理者例如网络管理员、公司 的信息系统主管、或者通常所说的负责公司有关软件许可协议的合规性的人 员。所述跟踪列表也可以向被所述软件许可所保护的所述安全应用软件的供 应商或制造商开放。

附图说明

鉴于以下结合附图对本发明的不同实施例所做的详尽描述,可以更为彻 底地理解本发明。

附图中:

图1A示出了可应用本发明各方面内容的计算机网络内部的总体布局的 示意图,包括不同的工作站和服务器计算机系统;

图1B示出了用于在图1A所示的工作站或服务器计算机系统中实施本发 明的某些实施例的配置示意图;

图2A示出了在使用邮槽数据时的TCP/IP堆栈和入口点的示意图;

图2B示出了根据一个实施例的关于许可分析模块的操作的信息流;

图2C示出了图2B所示的许可分析模块的操作状态的状态图;

图2D示出了根据使用邮槽的实施例在交换请求和响应时所使用的示范 性消息格式;

图3A示出了用于使用操作系统驱动器钩子来截取网络数据包时,用于 传递信息的TCP/IP堆栈和入口点的示意图;

图3B示出了根据一类实施例定义用于交换请求和响应的专用数据包的 软件代码;

图4示出了根据本发明的某些实施例执行进程的计算机系统的操作状态 的示意图;

图5示出了用于通用个人计算机或服务器的示例性计算机系统。

尽管本发明可具有各种变型及替代形式,其特性已由附图中的示例示出 并将详细加以描述。然而,应当理解的是,其目的并非意图将本发明限定于 所描述的特定实施例。正相反,本发明将覆盖所有落在由随附的权利要求所 限定的本发明的范围内的变型、等同物和替代方案。

具体实施方式

图1A示出了局域网(LAN)100,其为典型的公司计算机网络的示例。 局域网100包括工作站110和130,以及服务器120。该局域网络中的计算机 (110,120,130)的子集根据许可运行软件产品。该软件产品可以是与安全 相关的应用软件(例如反病毒、防火墙、入侵防护等)或者办公应用软件(例 如文字处理软件、电子制表软件等)。

图1B示出了计算机系统110、120和130的每一者的示范性配置的示意 性框图。对于运行于所述计算机系统上的软件产品101而言,诸如企业的被 许可方(例如所述软件的使用者)拥有对于软件产品的某一确定数目的席位 的许可,同时拥有体现该授权规定以及其它授权规定的许可记录102。在不 同的实施方式中,许可记录102并入软件产品101的配置数据集合中。许可 记录102可以专用文件的形式存储于与软件产品101相关联的相应计算机文 件系统中;或者,许可记录可以是数据库记录,作为更大数据结构的一部分 来存储。

计算机系统110、120和130的每一者都包括数据发送模块TX和数据接 收模块RX,二者均是网络接口模块104的一部分。

计算机系统110、120和130的每一者都进一步包括许可使用确定模块 105,其维护关于网络上其它计算机的有关许可密钥的信息的收集集合,例如 表格106。所述软件产品101和其它组件连同操作系统107一起运行。

软件产品101、加密工具103、网络接口104、以及许可使用确定模块105 全部作为模块来实施。在此使用的术语“模块”是指使用硬件108实施的现实 中所使用的装置、组件或者组件的结合体,可以包括专用集成电路(ASIC) 或现场可编程门阵列(FPGA),或者例如在一组实现所述模块功能的指令控 制下的微处理器系统,所述指令(在被执行时)将所述微处理器系统转变为 用于执行所述模块功能的专用装置。模块也可以实施为单独硬件与受软件控 制的硬件的结合,从而具有由单独硬件所提供的某些功能以及由硬件和软件 的结合所提供的其它功能。在某些实施方式中,可以在通用计算机的处理器 上执行模块的至少一部分,某些情况下可以为执行模块的全部,其中所述通 用计算机(例如计算机110、120、130的任何一个,将在下面结合图5更详 尽地进行描述)执行操作系统107、系统程序、以及应用软件程序(包括软 件产品101),同时也可以使用多任务处理(multitasking)、多线程、分布式 (例如云)处理、或者其它这样的技术来实现所述模块。因此,每个模块都 可以通过不同的适当配置来加以实现,并且不应限定于在此示范出的任何特 定的实施方式。

被许可方及许可方(例如所述软件产品的供应商或制造商)在强制执行 所述软件的合理利用方面存在共同利益。显然,许可方希望阻止对其软件的 未授权副本的使用,因为该使用意味着失去另行收益的机会。被许可方同样 对通过监控被许可软件产品的合理利用情况来进行责任管理具有兴趣。许可 强制执行的自动化满足了双方的这些要求。

使用与计算机110、130和服务器120全都互连的局域网100,本发明的 实施例便于实现就已安装的软件产品的数量进行协调和数据收集的任务。在 一类实施例中,当在其上安装有软件产品101的每个计算机中开始运行该软 件产品101时,该计算机通过网络发起请求的广播。这些广播消息包含关于 与所述软件产品对应的许可密钥的信息。在一个实例中,所广播的并不是该 许可密钥本身,而是发送该许可密钥的经修改的变体(variant)。根据一个实 施例,所述经修改的变体可以是该许可密钥的散列表。

将该局域网络中邻近的计算机响应于所述请求而发送的响应收集在诸如 列表或表格106的收集集合中。此收集响应的进程提供了确定由所述许可密 钥所激活的当前运行软件产品的数量的能力。根据本发明的实施例,可以使 用不同的方法。一个这样的实施例在图2A中示出,在应用层使用邮槽进程 间通信。在此方法中,所述发送模块TX基于所述邮槽协议来进行操作,其 非常适合于具有众多子网的大型公司网络。在此模型中,不需要调查或映射 出所述网络的拓扑结构。

在一个这样的实施例中,利用邮槽作为通信机制的系统发送广泛分布的 请求并等待对此的响应。图2B示出了根据一个实例的在本地客户端、许可 分析模块和所述局域网络上计算机之间的通信序列。图2C示出了许可分析 模块的示范性操作的状态示意图,所述许可分析模块在联网计算机系统中本 地执行。起初,许可分析模块处于未就绪(NOT_READY)状态。为了使所 述模块能够创建邮槽描述符,发起CreateAuth进程,该进程将全局唯一标识 符(GUID)、许可密钥、以及邮槽的名称(不超过30个符号(symbol))传 递给所述模块。这将所述模块置于休眠(SLEEP)状态,处于此状态下的对 所述模块进行操作配置,但不接受任何传入的数据包,并且不能发送任何请 求。函数SetActiv(具有通过CreateAuth进程获得的描述符)将所述模块设 置为活动(ACTIVE)状态。

在所述活动状态下,许可分析模块创建邮槽,该邮槽的名称是在 CreateAuth进程中传递给所述模块的。在此状态下,所述模块使用函数 SendRequest发送请求,读取传入的数据包,对来自其它系统的请求作出响应, 并对所接收的针对其自身请求的响应编制统计数据。使用 KX_TYPE_REQUEST类型(type)的数据包来发送请求,响应数据包则是 KX_TYPE_REPLY类型。图2D示出了数据包的格式。所述数据包的域定义 如下:

·版本(Version):表明所使用的协议的版本。大小:2字节。

·类型:表明数据包类型(KX_TYPE_REQUEST或者KX_TYPE_REPLY)。 大小:2字节。

·GUID:包含网络中的计算机的唯一识别符。大小:16字节。

·计算机的名称:包含发送所述数据包的计算机的名称。大小:16字节。

·散列表:包含许可的散列表。大小:16字节。

紧接着函数SendRequest的执行,清除此前编制的来自早期操作循环的 统计资料,并按照ToAll参数所指定的,向整个所述网络广播所述 KX_TYPE_REQUEST类型的消息。因此,该广播消息旨在到达所述局域网 络中的所有计算机。或者,可以形成所述请求以使其仅应用于本地计算机工 作组中的那些计算机。

一旦接收到具有KX_TYPE_REQUEST类型的数据包,许可分析模块将 所述数据包的有效载荷(payload)所指出的许可的散列表与其自身的许可散 列表进行比较,并且如果二者是完全相同的,许可分析模块便形成 KX_TYPE_REPLY类型的响应数据包,打开所述发出请求的客户端计算机的 邮槽描述符,并将所述响应数据包写入所述邮槽。

函数GetReplyCount触发许可分析模块以返回响应于给定的请求所接收 的回复的数量。

执行函数CloseAuth来结束该许可分析模块的操作,该函数关闭所述邮 槽描述符。从此时起,建立了该邮槽的描述符不再有效。

在另一实施例中,如图3所示,使用操作系统(OS)挂钩(hooking)技 术来截取传递给操作系统驱动器的网络数据包。在此技术中,使用网络层作 为接收并传送网络数据包的存取(access)工具。在一个这样的实施例中, 操作系统的网络驱动器被调用(call upon)。在一个实例中,NDIS(网络驱 动器接口规范)过滤器提供了获取由所述计算机系统所发送和接收的所有数 据包的能力。驱动器与所述NDIS过滤器联系并有助于经由NDIS来发送和 接收数据包。在一个使用微软Windows平台的特定实施例中,所述驱动器实 施为KL1驱动器以及可可向其添加自定义功能的专用插件的结合。

在一个实施例中,使用基于互联网协议(IP)的专用协议。包括专用数 据包的数据帧可以由以太网数据头部分、接下来的IP数据头部分、再接下来 的专用数据包构成。所述专用数据包可以依据图3B中所示范的情况来加以 定义。所述专用数据包的域定义如下:

·版本:表明所使用的协议的版本

·类型:识别所述数据包类型(PCP_REQUEST_PACKET, PCP_ANSWER_PACKET...)

·请求ID(RequestID):通过所述网络执行针对许可的检查的客户端的 ID

·回复ID(ReplyID):响应请求的客户端的ID

·散列表:16字节大小。包含操作的散列表。

用于发送请求的专用数据包可以按以下方式排布:

●以太网数据头

○Src MAC(源MAC)  =本地主机的MAC地址

○Dst MAC(目的MAC)=FF.FF.FF.FF.FF.FF

●IP数据头

○Src IP(源IP)    =本地主机的IP地址

○Dst IP(目的IP)  =FF.FF.FF.FF

○协议            =PROTO1

○TTL             =255

●专用数据包

○版本      =专用数据包的当前版本识别符

○类型      =SPC_REQUEST_PACKET

○请求ID    =客户端的ID(初始化时确立)

○回复ID    =以0补位

○散列表    =包含许可密钥的散列表

响应专用数据包的一个实例如下:

●以太网数据头

○Src MAC=本地主机的MAC地址

○Dst MAC=FF.FF.FF.FF.FF.FF

●IP数据头

○Src IP =本地主机的IP地址

○Dst IP =FF.FF.FF.FF

○协议   =PROTO_SPC

○TTL    =255

●专用数据包

○版本    =专用数据包的当前版本识别符

○类型    =PCP_ANSWER_PACKET

○请求ID  =取自请求数据包的ID

○回复ID  =作出响应的计算机的ID(初始化时确立)

○散列表  =包含基于许可密钥和客户端ID计算的散列表

使用操作系统的某些现有设备可以减少延迟时间并提升系统的速度。此 外,由于操作系统的驱动器的操作受到操作系统的额外的安全性的保护,因 此该方法实现了数据传输的高可靠性。操作系统驱动器-截取器挂钩技术的一 个优势在于该协议的实施是在内核中进行并因此相比邮槽其实施不易受到恶 意干扰的影响的。也可以使用其它用于发送所述广播消息的机制,例如具名 管道(named pipe)、或者窗口套接字(windows socket)、或者在Win API(应 用程序接口)下可使用的任何函数的集合。然而,应当注意到,本发明并非 限定于任何特定的实施方式,并且任何适宜的消息传送或传输机制均可以被 用来发送并接收请求和响应消息。

根据一个实施例,计算机系统110按照下述过程操作。在软件产品101 安装于计算机系统110上之后,激活相关联的许可密钥,该许可密钥建立与 被激活的软件产品101相关联的许可记录102。所述许可记录102包含由特 定许可密钥所激活地软件产品101所允许的最大并发激活数量,以及许可密 钥本身。

一旦软件产品101在计算机系统110得以激活,许可使用确定模块105 便使用加密工具103来修改或模糊化所述许可密钥。在一类实施例中,通过 将加密的散列函数应用于许可密钥来实现对许可密钥的修改。散列函数的实 例包括MD5、SHA-1、SHA-2,等等。也可以使用其它目前已知的或随之产 生的用于模糊化初始许可密钥及其修改体的技术。经修改的许可密钥存储在 诸如表格106的收集集合中。

基于经修改的或另外的经模糊化的许可密钥,计算机系统110生成并将 广泛分布的消息广播,经由网络接口设备104的发送模块TX传送给网络100 中的其它计算机,例如服务器120或工作站计算机系统130。在一个特定实 施例中,广播消息包括许可密钥的经修改版本(例如散列表)。在另一个实施 例中,尽管经修改的许可密钥本身并未被包括在所述消息中,但是所述消息 告知其它计算机如何或者在何处获取经修改的许可密钥,所述经修改的许可 密钥可存储于特定的位置并且可以由网络中的计算机检索得到。在此两种方 法的任一者中,广播消息允许其接收者获取有关许可密钥的信息,所述有关 许可密钥的信息基于或者来源于该特定许可密钥本身。

接收所述广播消息的计算机将有关许可密钥的信息传递给许可使用确定 模块105,在此实例中所述计算机为服务器120和工作站计算机系统130。应 当注意到,每一个计算机系统110、120、130均可以作为广播消息的发送者, 以及广播消息的接收者;因此,可以理解的是,当前所提出的实例,即计算 机系统110是发送者且计算机系统120和130是有关许可密钥消息的接收者, 适用于这些计算机中的任何一个或者多个充当上述两者之中任一角色的情 形。

在每个接收计算机系统120、130通过其网络接口104的接收模块RX接 收广播消息之后,就将有关许可密钥的消息传递给各自的许可使用确定模块 105。各自的许可使用确定模块105将接收到的有关许可密钥的信息同其自身 (本地)的与安装于该计算机系统中的软件产品101相对应的有关许可密钥 的信息进行比较,根据一个实施例,所述自身(本地)的有关许可密钥的信 息可以存储于表格106中。如果存在不匹配的情况,则意味着发送消息的计 算机系统使用了不同的许可密钥,并因此,该发送计算机系统110和接收计 算机系统120或130不可能以违反二者中的任何一方的关于软件产品101的 软件许可的方式来结合。

反之,如果接收计算机系统120或130的许可使用确定模块确定所接收 的和本地的有关许可密钥的信息是匹配的,则接收计算机经由其发送模块TX 向发送计算机系统110发送响应,所述响应带有表明许可密钥匹配的标记 (flag)。在不同的实施例中,响应消息具有不同的信息量。例如,所述响应 消息可以简单地表明其涉及许可密钥查询。在此情况下,所述消息的适时存 在(在时间上接近所述广播消息)表示已检测出经修改的许可密钥的匹配。 在另一个实施例中,所述广播消息包括时间戳或其它实例代码,同时所述响 应消息包括同一实例代码的副本(或者所述实例代码的经修改版本,例如使 用接收计算机系统的私有密钥进行了数字签名)。这样,发起广播消息的计算 机系统(本实例中为系统101)可以将响应消息同广播消息(更为确定地) 关联起来。所述实例代码可以是许可密钥的散列表,其被包括在所述广播消 息或某一其它值中。

响应消息还可以包括发送所述响应消息的计算机系统的识别符、有关安 装于计算机中的软件产品的消息、以及其它相关信息。可以使用邮槽或使用 发送广播消息所使用的操作系统内核驱动器来发送响应消息;或者,可替代 地,可以使用不同的信道或协议来进行传输,例如具名管道或者窗口套接字。 在使用邮槽发送广播消息的情况下,使用不同的协议发送响应消息的一个优 势是可以将响应消息特别寻址给发送初始请求的计算机系统,并且可以更为 可靠地得到传输。

当计算机系统110的接收模块RX接收到该响应传输时,将其传递给该 计算机系统的许可使用确定模块105。如果确定模块105确定所述响应传输 具有来自网络中的另一台计算机120或130所声称的旗标(其表明经修改的 许可密钥的匹配),则许可使用确定模块105增加表格106中该经修改的许可 密钥的已识别匹配的计数。接着,将所述计数同预设的限度进行比较,此限 度基于所激活的软件产品101的许可记录。如果所述计数未超过所述限度, 则允许运行于计算机系统110中的软件产品101的正常操作。

如果匹配的计数超过所述限度,即活动的许可的数量,则软件产品101 的功能可被自动限制。在一个实例中,修改软件产品101以使其不再能够使 用所述许可密钥和许可记录102进行操作。在另一个实例中,修改软件产品 101以使其不再能够接收来自软件制造商的更新。在另一种实例中,修改软 件产品101以使其还原为试用版,该试用版会告知用户除非使用新的有效许 可来激活软件产品,否则在一段时期之后试用期将终止。

在本发明的相关方面,提供了用于生成针对局域网络中的特定软件产品 所使用的许可密钥的完整列表的系统。在不同的实施例中,专门配置的许可 信息收集系统由类似以上所描述的工作站或服务器计算机系统110、120及 130中的任何一种所构成,只是所配置的许可信息收集系统可以选择是否驻 留于同样具有软件产品101、许可记录102、或加密工具103的计算机系统中。

许可信息收集系统与工作站或服务器系统的另一可能的差异在于许可使 用确定模块105的操作。在工作站或服务器计算机系统110、120及130中, 可以认为许可使用确定模块105的目标主要是发现用于激活当前计算机中的 软件产品的许可密钥在其它计算机中的使用程度。与之相反,许可信息收集 系统的许可使用确定模块105涉及更广泛的目标,包括收集用于网络中的所 述软件产品的所有实例的许可使用信息。

由此,在一个实施例中,许可信息收集系统经配置以监控由计算机系统 110、120及130所广播的消息,所述计算机系统110、120及130作为以上 描述的其中计数许可密钥的协议的一部分。所接收的具有经修改的许可密钥 的消息在收集集合中得以存储和制表,所述收集集合由许可信息收集系统的 许可使用确定模块105进行管理。因此,每个经修改的许可密钥的数量是可 以确定的。

在相关的实施方式中,许可信息收集系统使用存储于所述收集集合中的 经修改的许可密钥来发起请求的广播。这种操作制式类似于以上描述的工作 站或服务器计算机系统110、120或130的情形,只是许可信息收集系统发起 与多个不同的许可密钥相对应的请求,所述多个不同的许可密钥随时存储于、 被计数、并被添加到由许可信息收集系统的许可使用确定模块105所维护的 所述收集集合中。

所述收集集合对于系统管理员,或者也有可能对软件供应商可用。对于 软件产品的工作副本的数量在某一许可下超过相应的许可记录中所定义的限 度的情况,可以通过提出报告、警告和诸如此类的形式来采取行动。在其它 实施例中,所述许可信息收集系统直接向某些计算机系统或向计算机系统的 某些组发出命令以使被认为是违反许可条款所使用的软件产品的操作被禁 用、失效或者受到其他限制。

在图4所示的状态图中示出了许可使用确定模块105的操作的示例过程。 在空闲状态,没有消息被发送或接收。在加载用于许可使用确定模块105的 驱动之后,立即进入这一未初始化的状态。当启动所述许可使用确定模块105 时,进入初始化状态。一旦初始化,许可使用确定模块105就对所接收的请 求做出响应,但是并不发送请求也不对请求的响应进行分析。

基于不同的触发事件,进入激活状态。在一种情况下,响应于特定的事 件而进入激活状态,所述特定的事件例如使用许可密钥对软件产品的激活、 或是软件产品的每次启动或更新。在另一实例中,基于时间表或者周期性地 在某一预设的间隔进入激活状态。在激活状态中,计算机系统发起请求并将 所述请求发送到网络,以及接收针对该请求的响应。此外,许可使用确定模 块105继续对远程发起的请求做出响应。所述计算机系统维护已及时对每个 请求做出响应的远程计算机的收集集合。

响应于去初始化的命令,许可使用确定模块105返回其空闲状态,其不 发送或接受任何请求或者响应。

图5示出了通用计算机系统500的实例的示意图,可根据各种实施例将 在此所描述的本发明的各方面内容是实施在所述通用计算机上。计算机系统 500可以包括诸如个人计算机502的计算装置。个人计算机502包括一个或 多个处理单元504、系统存储器506、视频接口508、输出外围接口510、网 络接口512、用户输入接口514、可移除存储器接口516、不可移除存储器接 口518以及连接各组件的系统总线或高速通信通道520。在各种实施例中, 处理单元504可以具有多个逻辑内核,所述逻辑内核能够处理存储于诸如系 统存储器506或者附于可移除存储器接口516及不可移除存储器接口518的 存储器的计算机可读介质中的信息。计算机502的系统存储器506可以包括 诸如只读存储器(ROM)522的非易失性存储器或者包括诸如随机存取存储 器(RAM)524的易失性存储器。ROM 522可以包括基本输入/输出系统 (BIOS)526以有助于与计算机502的其它部分进行通信。RAM 524可以存 储各种软件产品的部分内容,所述软件产品例如操作系统528、应用软件程 序530及其它程序模块532。而且,RAM 524可以存储诸如程序或应用程序 数据534的其它信息。在各种实施例中,RAM 524存储要求低延迟和有效存 取的信息,例如正在被控或者被操作的程序及数据。在各实施例中,RAM 524 包括双倍数据速率(DDR)存储器、错误纠正存储器(ECC)或者诸如RAMBUS 或DDR2及DDR3的其它具有不同延迟和配置的存储器技术。由此,在各种 实施例中,系统存储器506可以进行输入数据存储(store)、访问凭证 (credential)数据存储、操作存储器数据存储、指令组数据存储、分析结果 数据存储以及所述操作存储器数据存储。此外,在各种实施例中,处理单元 504可以经配置以执行在对信息的访问得到授权之前通过要求访问凭证的方 式来限制到上述提及的数据存储的访问的指令。

可移除存储器接口516和不可移除存储器接口518可以将计算机502耦 合到诸如安全服务器D或者旋转磁盘驱动器的磁盘驱动器536。这些磁盘驱 动器536可以提供对于诸如所述操作系统538、应用软件程序540及其它程 序模块542的各软件产品的进一步存储。此外,磁盘驱动器536可以存储诸 如程序或者应用程序数据544的其它信息。在各种实施例中,磁盘驱动器536 存储的信息不像在其他存储介质中那样要求同样的低延迟。此外,操作系统 538、应用软件程序540的数据、程序模块542以及程序或应用程序数据544 可以是与存储于上述各实施例中所述的RAM 524的信息相同的信息,或者 可以是RAM 524的存储数据所可能派生的不同数据。

而且,可移除非易失性存储器接口516可以将计算机502耦合到使用诸 如软盘548、或Jazz的磁性介质的磁性便携式磁盘驱动器546, 或者使用光学介质552来用于诸如DVD-R/RW、CD-R/RW及其 它类似格式的计算机可读介质存储的光盘驱动器550。此外,其它的实施例 使用封装于便携式外接设备中的旋转磁盘或者安全服务器D来提高可移除存 储器的容量。

计算机502可以使用网络接口512来通过局域网(LAN)558或广域网 (WAN)560与一个或多个远程计算机556通信。网络接口512可以使用网 络接口卡(NIC)或者诸如调制解调器562的其它接口来实现通信。调制解 调器562可以经由电话线路、同轴电缆、光纤、输电线或无线来实现通信。 远程计算机556可以包含类似的硬件及软件配置,或者可以具有包含远程应 用软件程序566的存储器564,所述远程应用软件程序566可以向计算机502 提供额外的计算机可读指令。在各实施例中,远程计算机存储器564可以被 用来存储诸如已识别文件信息的信息,其可被随后下载到本地系统存储器 506中。此外,在各实施例中,远程计算机556可以是应用服务器、管理服 务器、客户端计算机、或者网络设备。

用户可以使用连接到用户输入接口514的诸如鼠标568和键盘570的输 入设备将信息输入到计算机502中。此外,输入设备可以是触摸板、指纹扫 描器、控制手柄、条形码扫描器、媒体扫描器等等。视频接口508可以向诸 如监视器572的显示器提供视觉信息。视频接口508可以是嵌入式接口或者 可以是分立式接口。进一步的,计算机可以使用多个视频接口508、网络接 口512以及可移除存储器接口516和不可移除存储器接口518,以便提升计 算机502的操作灵活性。此外。各实施例使用若干监视器572和若干视频接 口508来改变计算机502的性能和能力。其它的计算机接口可以被包括在计 算机502中,例如输出外围接口510。该接口可以连接到打印机574或扬声 器576或其它外围设备以便向计算机502提供额外的功能。

计算机502的各种可替换配置和实施方式预期用于本发明的不同实施例 中。这些变型可以包括但不限定于耦合到系统总线520的其它接口,所述系 统总线520诸如通用串行总线(USB)、打印机端口、游戏端口、PCI总线、 PCI串行总线(PCI Express)或者以上描述的各组件并入诸如北桥或南桥的 芯片集组件的集成。举例来说,在各实施例中,处理单元504可以包括嵌入 式存储器控制器(未示出)以便为来自系统存储器506的数据提供相比于系 统总线520的更为有效的传输。

以上的实施例意图举例说明而非进行限定。额外的实施例包含于本发明 的权利要求中。此外,尽管本发明的各方面内容已经参考特定实施例进行了 描述,但是本领域的技术人员将会意识到能够做出形式和细节上的且未脱离 由所述权利要求所限定的本发明的保护范围的变化。

相关领域的技术人员将会认识到本发明可以包含相比以上描述的任何单 个实施例中所示出的更少的特征。在此描述的实施例并非意味着对于本发明 的不同特征的结合所采用的方式的广泛描述。由此,所述实施例并不排斥特 征的组合;正相反,正如本领域中的普通技术人员所理解的那样,本发明可 以包含选自不同单个实施例的不同单个特征的组合。

以上文档的任何援引并入是受限的,以便与在此的详尽披露相反的主题 不被并入。进一步限定以上文档的任何援引并入,以便包含于文档中的权利 要求在此不被援引并入。仍然进一步限定以上文档的任何援引并入,以便文 档中所提供的任何定义在此不被援引并入,除非在此特意包含。

为了解释本发明的权利要求,在此特别明确的是,除非权利要求中引用 特定的术语“用于......的装置”或“用于......的步骤”,否则不援引美国专利法 35 U.S.C.中的第112条第6段的规定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号