CN102663294A - 计算机网络中的软件许可使用的自动分析 - Google Patents
计算机网络中的软件许可使用的自动分析 Download PDFInfo
- Publication number
- CN102663294A CN102663294A CN201210088775XA CN201210088775A CN102663294A CN 102663294 A CN102663294 A CN 102663294A CN 201210088775X A CN201210088775X A CN 201210088775XA CN 201210088775 A CN201210088775 A CN 201210088775A CN 102663294 A CN102663294 A CN 102663294A
- Authority
- CN
- China
- Prior art keywords
- license key
- computer system
- information
- license
- relevant
- 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.)
- Granted
Links
- 238000004458 analytical method Methods 0.000 title description 15
- 230000004044 response Effects 0.000 claims abstract description 61
- 238000000034 method Methods 0.000 claims abstract description 31
- 230000008878 coupling Effects 0.000 claims description 20
- 238000010168 coupling process Methods 0.000 claims description 20
- 238000005859 coupling reaction Methods 0.000 claims description 20
- 230000006870 function Effects 0.000 claims description 17
- 230000005540 biological transmission Effects 0.000 claims description 16
- 238000013500 data storage Methods 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 12
- 230000000052 comparative effect Effects 0.000 claims description 11
- 230000004913 activation Effects 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 8
- 230000004048 modification Effects 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000013475 authorization Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000000977 initiatory effect Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000007689 inspection Methods 0.000 description 4
- 238000012856 packing Methods 0.000 description 4
- 230000002155 anti-virotic effect Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008676 import Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000009987 spinning Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 241000196324 Embryophyta Species 0.000 description 1
- 235000009470 Theobroma cacao Nutrition 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000000840 anti-viral effect Effects 0.000 description 1
- 244000240602 cacao Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000005059 dormancy Effects 0.000 description 1
- 235000013569 fruit product Nutrition 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000007958 sleep Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/107—License processing; Key processing
- G06F21/1078—Logging; Metering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明披露用于分析软件许可的使用的装置和方法。计算机***经配置以执行由第一许可密钥受控于软件许可所激活的软件产品。所述计算机***包括许可使用确定模块,其适用于与在同一计算机网络中的一组其它计算机***进行通信、存储来源于第一许可密钥的有关第一许可密钥的信息、发送所述有关第一许可密钥的信息以由所述组中的每个计算机***所接收、以及接收所述组中的响应者响应于所述有关第一许可密钥的信息的接收而发送的任何消息。所述消息的每一者均表明相应的响应者均具有由所述第一许可密钥所激活的所述软件产品的副本。
Description
技术领域
本发明总体上涉及信息***及其关联的方法,具体而言涉及软件授权规定的强制执行。
背景技术
软件产品的制造商是其产品知识产权的所有者。通常来说,软件并非完全出售给消费者,而是由该软件的供应商或制造商向消费者许可使用该软件。该软件许可协议规范了表面上的“卖方”和“买方”的权利和义务。
不道德的软件用户经常使用该产品的未许可使用的副本。作为阻止使用未授权副本的做法的一种手段,软件开发商一旦发觉侵犯其软件知识产权的情况,则采用各种技术来限制其产品的功能。一种方法是使用注册程序来将用于软件产品的许可密钥与其上安装该软件产品的计算机的唯一识别符(identifier)或者注册实例(instance)相关联。然后,视该软件产品的有效注册情况来提供软件更新或者产品支持服务。每当更新该软件或者通过互联网寻求支持时,可以在提供所述更新或支持服务之前先检查所述许可密钥的有效性。
在所述许可密钥与所述计算机的唯一识别符相关联的情况下,所述唯一识别符可以是计算机的媒体访问控制(MAC)地址,该MAC地址硬编码入所述计算机的网络接口设备中,也可以是硬盘驱动器的序列号,诸如此类。在此情况下,对所述许可密钥的有效性的检查可以包含检查已知的已注册许可密钥是否正由不只一个被唯一识别的计算机并发使用。因此,如果两个或者更多不同的被唯一识别的计算机寻求相同的更新,那么就意味着可能存在对该软件的不正当使用。
在另一种方法中,产品注册的实例以及更新或者支持服务的实例以某种方式修改所述已安装的软件产品,例如修改所述许可密钥或者与所述产品相关联的某些其它代码。如果产品的更新或支持被寻求而该产品已经接收过相似的更新或支持,那么就可能表明该软件产品在不只一台计算机上的未授权的安装。
这些原始的方法有许多缺点。最主要的是,这些方法对于商业或者企业、软件产品用户而言不具有实用性。对于企业而言,公司可以许可软件产品被大量的并发用户或者席位使用。同时,相比个人用户,企业更频繁地更新其计算机硬件。此外,各组织通常对软件产品的更新和支持采取不同的处理,一些组织允许个人用户直接通过该软件的供应商注册并更新他们的副本,另一些组织则将更新和支持集中于其各自的信息技术(IT)部门。因此,开发统一的方法来管理企业中的软件许可并非简单的事情。
在一种方法中,向监控网络环境中客户端计算机上事件任何变化的***管理员提供专用的软件工具,包括软件产品的安装。这一方法通常相当复杂,其涉及海量数据的管理。类似的方法使用部署于所述网络的各计算机中的专用的管理工具来监控软件许可合规性(compliance),并向集中节点报告有关每台计算机的完整软件配置的信息。此类解决方案典型地属于针对软件的综合管理套件的一部分。即使软件供应商期望其企业用户创建用于确保遵守所述软件许可的程序,对于软件供应商来说要求其用户来承担此种综合解决方案的额外费用以及复杂性也是不实际的。
在网络服务模式中,对于应用程序托管于一个或者更多的服务器上的情况,一种已被提出的用于监控所述许可合规性的方法披露于公开号为EP2112612的欧洲专利申请中。在此特定环境下,网络服务器根据客户的请求将应用程序向下推送到客户端计算机上。在此过程中,以特定的格式来提供每个应用程序,所述特定的格式带有“响应包装(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段的规定。
Claims (20)
1.一种计算机实施的用于分析对软件许可的使用的装置,所述软件许可控制软件产品的经允许使用,所述软件产品受控于所述软件许可由第一许可密钥激活,所述装置包括:
计算机***,其包括与数据存储电路和网络接口电路可操作地耦合的处理器电路,所述网络接口电路适用于通信耦合到计算机网络;
其中,所述计算机***包括许可使用确定模块,其适用于:
经由所述网络接口电路与一组其它计算机***进行通信,所述组中的每个计算机***均通信耦合到所述计算机网络并且不同于所述第一计算机***;
在所述数据存储电路中存储来源于所述第一许可密钥的有关第一许可密钥的信息;
经由所述计算机网络发送所述有关第一许可密钥的信息以由所述组中的每个计算机***所接收;
经由所述计算机网络接收响应者响应于所述有关第一许可密钥的信息的接收而发送的任何消息,所述响应者中的每一者均为属于所述组的计算机***,其中所述消息中的每一者均表明相应的响应者具有由所述第一许可密钥所激活的所述软件产品的副本;以及
收集许可密钥计数信息,所述许可密钥计数信息基于接收到的所述消息,并且代表所述组中具有由所述第一许可密钥所激活的所述软件产品的副本的任何其他计算机***的数量。
2.根据权利要求1所述的装置,其中所述数据存储电路存储许可记录,所述许可记录对所述软件产品的使用定义至少一个限度,包括不同计算机***的数量的限度,在所述不同计算机***上可由所述第一许可密钥激活所述软件产品;以及
其中所述许可使用确定模块适用于将所述许可密钥计数信息与所述限度进行比较以产生是否超过所述限度的指示。
3.根据权利要求2所述的装置,其中所述许可使用确定模块适用于响应于超过所述限度的指示来限制所述软件产品的可用性。
4.根据权利要求2所述的装置,其中所述许可使用确定模块适用于响应于超过所述限度的指示来向用户接口发出通知。
5.根据权利要求1所述的装置,其中所述软件产品是安全应用软件。
6.根据权利要求1所述的装置,其中所述许可使用确定模块适用于为多个不同的许可密钥存储所述许可密钥计数信息。
7.根据权利要求1所述的装置,其中所述计算机***适用于至少经由所述处理器电路和所述数据存储电路执行所述软件产品。
8.根据权利要求1所述的装置,其中来源于所述第一许可密钥的所述有关第一许可密钥的信息包括所述第一许可密钥的加密修改。
9.根据权利要求8所述的装置,其中来源于所述第一许可密钥的所述有关第一许可密钥的信息包括所述第一许可密钥的单向散列表。
10.根据权利要求1所述的装置,其中所述计算机***适用于通过邮槽进程间通信来发送所述有关第一许可密钥的信息。
11.根据权利要求1所述的装置,其中所述计算机***适用于通过邮槽进程间通信来接收所述消息信息。
12.根据权利要求1所述的装置,其中所述计算机***包括操作***,并经配置以经由所述操作***的驱动器发送所述有关第一许可密钥的信息,所述操作***的驱动器使用传输控制协议TCP并运行于所述TCP堆栈的网络层。
13.根据权利要求1所述的装置,其中所述许可使用确定模块进一步适用于:
接收来源于第二许可密钥的有关第二许可密钥的信息,所述第二许可密钥用于激活在所述组的所述其它计算机***之一上的所述软件产品的副本;
将所述有关第二许可密钥的信息与存储于所述数据存储电路中的所述有关第一许可密钥的信息进行比较以产生比较结果;
响应于否定的比较结果其中所述有关第二许可密钥的信息与所述有关第一许可密钥的信息不一致,禁止发送任何响应所述有关第二许可密钥的信息的接收的消息。
14.根据权利要求1所述的装置,其中所述许可使用确定模块进一步适用于:
接收来源于第二许可密钥的有关第二许可密钥的信息,所述第二许可密钥用于激活在所述组的所述其它计算机***之一上的所述软件产品的副本;
将所述有关第二许可密钥的信息与存储于所述数据存储电路中的所述有关第一许可密钥的信息进行比较以产生比较结果;
响应于肯定的比较结果其中所述有关第二许可密钥的信息与所述有关第一许可密钥的信息相一致,发送响应所述有关第二许可密钥的信息的接收的消息,所述消息表明存在肯定的比较结果。
15.一种用于在第一计算机***与第二计算机***之中检查符合软件许可的规定的方法,在经配置以执行受控于所述软件许可由第一许可密钥激活的软件产品的所述第一计算机***中,所述第一计算机***通信耦合到所述第二计算机***同样通信耦合到的计算机网络,所述方法包括:
通过所述计算机网络中的所述第一计算机***接收所述第二计算机***所发送的广播消息,其中所述广播消息包括基于受控许可密钥的有关广播许可密钥的信息;
通过所述第一计算机***将所述有关广播许可密钥的信息与来源于所述第一许可密钥的本地许可密钥信息进行比较以产生比较结果;
响应于所产生的表明所述有关本地许可密钥的信息与所述有关广播许可密钥的信息之间的匹配的比较结果,通过所述第一计算机***发送表明存在所述匹配的响应消息。
16.根据权利要求15所述的方法,进一步包括:
通过所述第一计算机***接收带有限制所述软件产品的功能的指令的命令,所述命令是响应于所述响应消息而发送的。
17.根据权利要求15所述的方法,其中所述响应消息特定寻址给所述第二计算机。
18.根据权利要求15所述的方法,进一步包括:
通过所述第二计算机***收集所述第一许可密钥的使用的表格,所述表格至少部分基于所述响应消息,并且表示具有由所述第一许可密钥所激活的所述软件产品的副本的计算机***的数量。
19.根据权利要求15所述的方法,进一步包括:
通过所述第一计算机***向所述计算机网络发送广播消息,所述广播消息包括基于所述第一许可密钥的有关许可密钥的信息;以及
通过所述第一计算机***收集所述第一许可密钥的使用的表格,所述表格至少部分基于任何响应于所述广播消息而发送的消息,并且表示具有由所述第一许可密钥所激活的所述软件产品的副本的计算机***的数量。
20.一种用于在第一计算机***与第二计算机***之中检查符合软件许可的规定的装置,在经配置以执行受控于所述软件许可由第一许可密钥激活的软件产品的所述计算机***中,所述计算机***通信耦合到其它计算机***同样通信耦合到的计算机网络,所述装置包括:
用于处理、存储并传递数据的计算装置;
用于经由所述计算装置接收包括广播消息的装置,所述广播消息包括基于受控许可密钥的有关广播许可密钥的信息;
用于将所述有关广播许可密钥的信息同来源于所述第一许可密钥的本地许可密钥信息进行比较以产生比较结果的装置;
用于响应于所产生的表明所述本地有关许可密钥的信息与所述有关广播许可密钥的信息之间的匹配的比较结果而发送表明所述匹配存在的响应消息的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/077,048 US8839444B2 (en) | 2011-03-31 | 2011-03-31 | Automatic analysis of software license usage in a computer network |
US13/077,048 | 2011-03-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102663294A true CN102663294A (zh) | 2012-09-12 |
CN102663294B CN102663294B (zh) | 2015-05-20 |
Family
ID=44720638
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210088775.XA Active CN102663294B (zh) | 2011-03-31 | 2012-03-29 | 计算机网络中的软件许可使用的自动分析 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8839444B2 (zh) |
EP (1) | EP2506180B1 (zh) |
CN (1) | CN102663294B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095766A (zh) * | 2014-05-12 | 2015-11-25 | 罗伯特·博世有限公司 | 用于处理控制设备中的软件功能的方法 |
CN107679371A (zh) * | 2017-09-25 | 2018-02-09 | 用友网络科技股份有限公司 | 软件许可控制方法、装置、计算机设备和可读存储介质 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9916342B2 (en) * | 2012-03-30 | 2018-03-13 | Branch Banking And Trust Company | System and method for license reclamation |
US20140344942A1 (en) * | 2013-05-17 | 2014-11-20 | Veritrix, Inc. | Methods for Activating End-User Software Licenses |
US20150121540A1 (en) * | 2013-10-28 | 2015-04-30 | Linear Llc | Software and Inventory Licensing System and Method |
US9460273B2 (en) * | 2014-10-29 | 2016-10-04 | International Business Machines Corporation | Automatic generation of license terms for service application marketplaces |
US10298617B2 (en) * | 2015-07-08 | 2019-05-21 | T-Mobile Usa, Inc. | Trust policy for telecommunications device |
JP6729122B2 (ja) * | 2016-07-19 | 2020-07-22 | 富士通株式会社 | 情報処理装置、プログラムおよび情報処理システム |
US10786739B2 (en) * | 2018-06-27 | 2020-09-29 | Activision Publishing, Inc. | Dynamic adjustment of availability of access to video games based on real-world events |
US11409844B2 (en) * | 2019-02-11 | 2022-08-09 | Servicenow, Inc. | Systems and methods for license management in a domain-separated architecture |
US11379561B2 (en) * | 2019-07-15 | 2022-07-05 | At&T Intellectual Property I, L.P. | License usage management |
US11372951B2 (en) * | 2019-12-12 | 2022-06-28 | EMC IP Holding Company LLC | Proxy license server for host-based software licensing |
CN111199022B (zh) * | 2019-12-31 | 2022-05-03 | 北京月新时代科技股份有限公司 | 一种许可管理方法、装置、电子设备及存储介质 |
US11269624B1 (en) | 2021-01-12 | 2022-03-08 | International Business Machines Corporation | Automated software application bundling |
US11663320B2 (en) | 2021-01-12 | 2023-05-30 | Bank Of America Corporation | System and methods for automated software analysis and classification |
US20220292620A1 (en) * | 2021-03-12 | 2022-09-15 | Keysight Technologies, Inc. | FLOATING LICENSE COMPUTING SYSTEM AND METHOD FOR FOUNDRY PROCESS DESIGN KITS (PDKs) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1115059A (zh) * | 1994-04-25 | 1996-01-17 | 国际商业机器公司 | 用于允许软件产品试用期使用的方法和装置 |
US5964876A (en) * | 1997-06-16 | 1999-10-12 | Mitsubishi Electric Semiconductor Software Co., Ltd. | Program-invocation-count measuring system, program-invocation-count measuring method, and medium for storing program-invocation-count measuring software |
US6073123A (en) * | 1997-02-26 | 2000-06-06 | Staley; Clinton A. | Method and apparatus for detecting unauthorized copies of software |
US20020012427A1 (en) * | 1998-10-30 | 2002-01-31 | North Coast Logic, Inc. | Telemanagement system with single point of entry |
US6493756B1 (en) * | 1999-10-28 | 2002-12-10 | Networks Associates, Inc. | System and method for dynamically sensing an asynchronous network event within a modular framework for network event processing |
CN1591268A (zh) * | 2003-06-11 | 2005-03-09 | 佳能株式会社 | 防止非法使用软件的装置及方法 |
CN1596409A (zh) * | 2000-09-15 | 2005-03-16 | 旺德维尔公司 | 可扩展的制造/过程控制信息入口服务器 |
CN1961271A (zh) * | 2004-06-29 | 2007-05-09 | 英特尔公司 | 用于保障平台间和平台内通信的***和方法 |
US20080028471A1 (en) * | 2003-12-31 | 2008-01-31 | Liangshen Chen | Method of Managing Digital Rights |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2564681C (en) | 2004-04-26 | 2015-09-22 | Bruce H. Johnson | Methods and systems for dynamically composing distributed interactive applications from high-level programming languages |
US20080235141A1 (en) * | 2007-03-21 | 2008-09-25 | Microsoft Corporation | License manager and schema |
US8321352B1 (en) * | 2007-10-25 | 2012-11-27 | Symantec Corporation | Fingerprinting for software license inventory management |
-
2011
- 2011-03-31 US US13/077,048 patent/US8839444B2/en active Active
- 2011-09-15 EP EP11181437.2A patent/EP2506180B1/en active Active
-
2012
- 2012-03-29 CN CN201210088775.XA patent/CN102663294B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1115059A (zh) * | 1994-04-25 | 1996-01-17 | 国际商业机器公司 | 用于允许软件产品试用期使用的方法和装置 |
US6073123A (en) * | 1997-02-26 | 2000-06-06 | Staley; Clinton A. | Method and apparatus for detecting unauthorized copies of software |
US5964876A (en) * | 1997-06-16 | 1999-10-12 | Mitsubishi Electric Semiconductor Software Co., Ltd. | Program-invocation-count measuring system, program-invocation-count measuring method, and medium for storing program-invocation-count measuring software |
US20020012427A1 (en) * | 1998-10-30 | 2002-01-31 | North Coast Logic, Inc. | Telemanagement system with single point of entry |
US6493756B1 (en) * | 1999-10-28 | 2002-12-10 | Networks Associates, Inc. | System and method for dynamically sensing an asynchronous network event within a modular framework for network event processing |
CN1596409A (zh) * | 2000-09-15 | 2005-03-16 | 旺德维尔公司 | 可扩展的制造/过程控制信息入口服务器 |
CN1591268A (zh) * | 2003-06-11 | 2005-03-09 | 佳能株式会社 | 防止非法使用软件的装置及方法 |
US20080028471A1 (en) * | 2003-12-31 | 2008-01-31 | Liangshen Chen | Method of Managing Digital Rights |
CN1961271A (zh) * | 2004-06-29 | 2007-05-09 | 英特尔公司 | 用于保障平台间和平台内通信的***和方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095766A (zh) * | 2014-05-12 | 2015-11-25 | 罗伯特·博世有限公司 | 用于处理控制设备中的软件功能的方法 |
CN105095766B (zh) * | 2014-05-12 | 2020-10-09 | 罗伯特·博世有限公司 | 用于处理控制设备中的软件功能的方法 |
CN107679371A (zh) * | 2017-09-25 | 2018-02-09 | 用友网络科技股份有限公司 | 软件许可控制方法、装置、计算机设备和可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN102663294B (zh) | 2015-05-20 |
US20120255025A1 (en) | 2012-10-04 |
US8839444B2 (en) | 2014-09-16 |
EP2506180A1 (en) | 2012-10-03 |
EP2506180B1 (en) | 2016-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102663294A (zh) | 计算机网络中的软件许可使用的自动分析 | |
US20230110131A1 (en) | Internet of things | |
US9766914B2 (en) | System and methods for remote maintenance in an electronic network with multiple clients | |
CN1713197B (zh) | 通过计算机设备上可信组件验证与计算机实体的人类交互的方法 | |
CN104580316B (zh) | 软件授权管理方法及*** | |
CN102411693A (zh) | 虚拟机的继承产品激活 | |
CN101647219B (zh) | 用于许可证的安全的主机更换的机制 | |
CN103413083B (zh) | 单机安全防护*** | |
CN105760716A (zh) | 电子证书管理 | |
US20190295045A1 (en) | Raw Material and/or Recycling System | |
CN102821137A (zh) | 一种网站安全检测方法及*** | |
CN102195991A (zh) | 一种终端安全管理、认证方法及*** | |
US20120185936A1 (en) | Systems and Methods for Detecting Fraud Associated with Systems Application Processing | |
CN101385041A (zh) | 计算机主存多安全执行环境 | |
CN101483658A (zh) | 浏览器输入内容保护的***和方法 | |
CN101615318A (zh) | 电子收费***及其装置 | |
CN100471132C (zh) | 利用端口隔离以进行安全性封包转传的网络装置 | |
US20060235822A1 (en) | Requesting, obtaining, and processing operational event feedback from customer data centers | |
CN115994771A (zh) | 面向大宗商品交易存证数据的实时采集与溯源方法及*** | |
CN103020542A (zh) | 存储用于全球数据中心的秘密信息的技术 | |
Pennekamp et al. | Securing sensing in supply chains: Opportunities, building blocks, and designs | |
US8819815B1 (en) | Method and system for distributing and tracking information | |
CN102822840A (zh) | 使用管理***和使用管理方法 | |
CN112286553B (zh) | 用户锁的升级方法、装置、***、电子设备和存储介质 | |
MÜHLBERG | Securing Sensing in Supply Chains: Opportunities, Building Blocks, and Designs |
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 |