CN110832479A - 用于软件激活和许可证跟踪的系统和方法 - Google Patents
用于软件激活和许可证跟踪的系统和方法 Download PDFInfo
- Publication number
- CN110832479A CN110832479A CN201780091168.XA CN201780091168A CN110832479A CN 110832479 A CN110832479 A CN 110832479A CN 201780091168 A CN201780091168 A CN 201780091168A CN 110832479 A CN110832479 A CN 110832479A
- Authority
- CN
- China
- Prior art keywords
- license
- server
- user
- activation
- application
- 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.)
- Pending
Links
- 230000004913 activation Effects 0.000 title claims abstract description 150
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000012790 confirmation Methods 0.000 claims abstract description 67
- 230000004048 modification Effects 0.000 claims abstract description 4
- 238000012986 modification Methods 0.000 claims abstract description 4
- 238000009434 installation Methods 0.000 claims description 3
- 238000001994 activation Methods 0.000 abstract description 131
- 230000008569 process Effects 0.000 description 23
- 230000006870 function Effects 0.000 description 15
- 230000007246 mechanism Effects 0.000 description 12
- 230000003213 activating effect Effects 0.000 description 9
- 238000012795 verification Methods 0.000 description 9
- 230000007420 reactivation Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000010200 validation analysis Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 150000003839 salts Chemical class 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241001465754 Metazoa Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001960 triggered effect 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]
-
- 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/1077—Recurrent authorisation
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Abstract
开发了用于软件激活并在最终用户计算设备(计算机)上进一步跟踪其状态的系统和方法,以向软件开发人员提供用于软件分配和收集软件激活的使用的统计信息的灵活且安全的工具。所述方法包括以下逻辑步骤:(a)获得获取确认;(b)请求许可证;(c)向最终用户颁发许可证并将其交付给所述用户,所述许可证由服务器用私有密钥保护,并且所述私有密钥未存储在所述客户端;(d)在所述用户的计算机上验证许可证;(e)在所述用户的计算机上存储所述许可证;(f)定期跟踪激活状态,(g)关于所述用户的许可证的另一操作,其中验证所述许可证包括:在与应用程序相关联的所述客户端处,对从所述服务器接收到的所述许可证进行验证,而不进行任何修改并将所述许可证保存到所述客户端。
Description
技术领域
本发明的领域涉及用于软件激活的系统和方法。
背景技术
当前,存在各种相关技术的软件激活方法。大多数相关技术的软件激活方法都需要互联网连接。然而,在软件激活中使用互联网连接会导致各种问题和不利之处。例如,但不作为限制,存在未授权(例如,非法)软件使用的问题。除非软件激活的方法变得比所述相关技术更先进,否则相关技术的安全性和防止非法软件使用的问题将仍然存在于软件激活领域。
一些相关技术的方法可对许可证使用验证技术,所述许可证包括与应用程序相关联的客户端,所述客户端生成包括错误参数信息的伪许可证文件,从而执行许可证的验证,并且一旦完成许可证的验证,则用正确的参数信息替换不正确的参数信息。然而,此方法会有各种问题和不利之处。例如,但不作为限制,伪许可证方法假设许可证文件的内容是在客户端机器(而不是服务器端)上创建的。因此,注册机应用程序可像供应商应用程序一样以同样的方式创建此类文件,而无需破坏供应商应用程序。
发明内容
本发明涉及以下方面:简化最终用户的激活过程;在激活过程的每个步骤处确保激活方法的安全,以防止未经授权(例如非法)使用软件;并且跟踪将来的激活状态,以减少与某些意料不到的事情(诸如,在新计算机处重新激活软件、意外丢失激活号码等)相关的客户支持查询的数量。
激活过程的第一步是获取应用程序。可通过购买、贈送或供应商定义的任何其他方法来获取应用程序。用户必须接收应用程序的获取的确认。此应用程序的获取的确认可以以下(但不限于以下)形式存在:(a)激活密钥——例如,由软件开发人员提供的唯一符号的组合;或(b)激活系统的数据库中与特定用户有关的记录。
可以各种方式来完成此应用程序的此获取。例如,但不作为限制,软件可以是在在线商店处购买的软件,可在物理介质(包括但不限于CD、DVD或USB驱动器)上发生交付,所述软件包括与OEM供应集相关联的软件。应用程序的这些获取模式中的每一种获取模式都具有与设定获取确认的一致性相关联的独特机制并且也具有应当颁发许可证的一组规则。
获取确认可包括激活号码。从一方面来说,获取确认可以是人类可读的,这可减少可能的勘误的数量。从另一方面来说,获取确认是足够长的以防止暴力搜索。此外,通过URL激活的方案,开发人员可向用户提供通过用户操作来激活软件的选项,所述用户操作包括(但不限于)对Web页面上或电子邮件中按钮的选择或单击操作。
可以一种或多种方式来发起激活系统的数据库中的记录,所述记录与特定用户相关联。例如,但不作为限制,激活系统的数据库中的记录可在以下情况下发起:(a)在在线或离线商店中购买软件之后;或(b)由激活系统的管理员手动进行。用户必须提供标识信息以获得软件许可证。所述标识信息可包括但不限于:(a)一对唯一的登录标识符和口令;(b)建立与激活服务器的安全连接,所述安全连接受到激活服务器提供的安全密钥的保护;或(c)由激活系统的管理员定义的允许确定用户身份的方法。
在激活系统的数据库中发起记录后,下一步是生成许可证请求。此步骤需要互联网连接。根据本示例性实现方式,本系统提供了协议。另外,还提供了如何在激活服务器上处理数据的机制。来自用户计算机的请求可包括以下数据,所述数据包括但不限于以下一项或多项:(a)应用程序捆绑ID(例如,特定格式的产品名称);(b)捆绑版本(例如产品版本);(c)为当前激活保留的另外的数据集;(d)用户的帐户标识符(例如电子邮件地址);(e)唯一计算机标识符的两个值;(f)获取确认;(g)用户的名字和姓氏;(h)提高安全性的随机数据块;(i)在服务器侧打开数据的口令;以及(j)错误消息的语言。
一旦生成许可证请求,第三步就是向用户颁发许可证并将其交付给用户,所述许可证由服务器用私有密钥保护,并且所述私有密钥未存储在客户端处。接收到许可证请求后,如果激活请求正确,则服务器将颁发许可证,否则将发送错误消息。服务器响应包括以下信息:(a)错误代码(例如,成功的情况下为0);(b)错误消息或加密的许可证;(c)使用软件的私有密钥生成的许可证文件的签名或错误消息。
将软件许可证交付到最终用户的计算机后,软件许可证应当通过验证,其方法为:在与应用程序相关联的客户端处,对从服务器接收到的许可证进行验证,而不进行任何修改并将所述许可证保存到客户端来。许可证文件被写入用户计算机文件系统上的特定位置。在应用程序的首次启动后、在应用程序安装期间、在应用程序的试用期结束之后的首次启动期间或在其他如本领域技术人员将理解的合适情况下,检查许可证有效性。完成对许可证来源的验证(例如,通过公用密钥验证)和完整性的确认后,用户可继续使用所述软件。
激活状态定期发送到激活服务器。报告的规则可由开发人员定义。可根据开发人员定义的各种条件来触发激活状态,例如,如果允许重新激活,则重新激活软件。
示例性实现方式还涉及远程地(例如,从激活服务器侧)和直接地(例如,由用户发起)禁用许可证的可能性。
附图说明
图1示出根据示例性实现方式的包括客户端和服务器的协议的示例性过程。
图2示出根据示例性实现方式的第一协议的实例。
图3示出根据示例性实现方式的第二协议的实例。
图4示出根据示例性实现方式的包括服务器的协议的示例性过程。
图5示出根据示例性实现方式的包括客户端的协议的示例性过程。
图6示出适用于一些示例性实现方式的示例性环境。
图7示出示例性计算环境,所述示例计算环境具有与外部主机相关联的示例性计算设备以供在一些示例性实现方式中使用。
具体实施方式
通过示例性实现方式的方法来提出本文所述的主题。为了清楚起见并避免模糊主题,已经省略了各种细节。下文所示的实例针对软件激活和许可证跟踪的结构和功能。
本文所使用的术语对本领域技术人员而言具有其平常和普通的含义。术语可通过实例的方式定义,但是不限于所提供的定义。例如,但不作为限制,“用户”或“最终用户”可包括以授权方式(例如,合法地)获得软件副本并已配置可在计算设备上正确操作的软件的实体,诸如个人。另外,“开发人员”或“供应商”可以是分发诸如逻辑上完整的计算机程序的一个或多个软件副本的此类个人或法人实体的实体。此外,“软件安装”是已放置在与用户相关联的用户计算设备上的计算机程序的副本,使计算机程序以开发人员预期的方式操作。
此外,“激活”可包括可确认软件安装的合法性(例如,软件安装是否已获授权)并消除开发人员设计的任何功能限制(如果这些功能限制存在的话)的一个或一组过程。“试用”可包括一种类型的软件安装使用,其中为用户提供了有限的功能,以使用户熟悉所述软件。而且,“获取确认”是确认用户合法使用软件的权利(例如授权)的数字实体,并且必须在获取过程(例如购买、免费试用等)已经完成之后提供给用户。
此外,“激活号码”或“激活密钥”可以是用作一种获取确认类型的人类可读组合(例如,包括文字与数字的符号)。另外,“许可证”可包括计算机文件,所述计算机文件包括用于标识软件安装是否可在特定计算机设备上使用的数据。“许可证类型”可包括用于许可证生成的一组规则,所述一组规则由开发人员设置以创建不同的软件使用的条件。这些规则可包括但不限于:软件使用期限(例如1年、6个月、终身)、许多可能的重新激活、要提供的某些功能等。
另外,“激活服务器”或“服务器”是相对于用户的计算设备的远程计算设备,并且所述远程计算设备执行用于软件安装激活的必要操作。根据示例性实现方式,服务器可包括本领域技术人员已知的硬件。而且,“捆绑ID”是特殊格式的可由最终用户计算机的操作系统读取的应用程序标识符。
示例性实现方式的各个方面涉及:简化最终用户的激活过程;在激活过程的每个步骤处确保激活方法的安全,以防止未经授权(例如非法)使用软件;跟踪将来的激活状态,以减少与某些意料不到的事情(诸如,在新计算机处重新激活软件、意外丢失激活号码等)相关的客户支持查询的数量。
为了克服前述相关技术的安全漏洞,示例性实现方式涉及数字签名的非对称方案。更具体地,示例性实现方式为每个供应商应用程序使用一对唯一的密钥:集成在每个供应商应用程序中的公用密钥和安全地存储在服务器端的私有密钥。为了确保位于服务器处的私有密钥的安全,示例性实现方式可使用各种技术和方法,包括(但不限于):仅对内部服务器可用的隔离存储系统,其中服务器未连接到互联网;使用SSL来建立加密连接;以及使用AWS虚拟私有云服务来提供云的虚拟隔离区段。
使用网络防火墙来防止非法访问。
当服务器接收到对应的请求时,服务器将生成许可证文件的内容,并使用唯一的安全私有密钥对许可证文件进行签名。因此,服务器创建数字签名。具有唯一的安全私有密钥的签名许可证文件特定于每个供应商应用程序。
供应商应用程序接收带有数字签名的许可证文件,并将其存储在用户的机器(例如客户端)上。如果不良行为者(例如,黑客)尝试进行恶意行为(例如,决定尝试更改许可证文件或尝试生成伪许可证),则此许可证文件的签名验证将在供应商应用程序侧失败。因此,许可证文件的内容变为无效,并且供应商应用程序可经受恶意尝试(例如,破解供应商应用程序)。
为了实现这些和其他方面,可在过程100中执行各种步骤,包括但不限于激活过程,如图1所示。在101处,用户获取应用程序。另外,在103处,用户通过各种模式中的一种模式接收对应用程序的获取的确认。应用程序的每种获取模式都具有与设定获取确认的一致性相关联的独特机制并且具有应当颁发许可证的一组规则。获取确认可包括激活号码并且可以是人类可读的,但是足够长以防止未授权方进行暴力搜索以确定激活确认。另外,根据示例性实现方式的通过URL激活的方案可允许开发人员向用户提供通过用户操作来激活软件的选项。
在105处,可发起与特定用户相关联的激活系统的数据库中的记录。在107处,用户必须提供标识信息以获得软件许可证。激活系统的数据库中的记录发起后,在109处,由协议生成对许可证的请求。根据协议,许可证在服务器处生成,并使用安全私有密钥签名。一旦在109处生成了许可证请求,在111处,就将许可证提供给用户,并且在113处,用户接收带有数字签名许可证,并将许可证文件存储在用户设备处。
如上文所指出,接收到许可证请求后,在115处,服务器确定激活是否正确,如果激活请求正确,则在119处颁发许可证,否则在117处,发送错误消息。在119处,将软件许可证交付到最终用户的计算机后,它应当通过验证。许可证文件被写入用户计算机文件系统上的特定位置。当应用程序运行时,在121处,检查许可证的有效性,而不修改从服务器接收到的许可证;需注意,如果尝试更改签名的许可证文件或生成伪许可证,则此尝试将在供应商侧失败,许可证文件的内容将变为无效,使得供应商应用程序不会遭破解。验证许可证来源并确认完整性后,软件安装完成,并且在123处,所述软件开始可以使用。激活状态定期发送到激活服务器。另外,可远程或直接禁用许可证。
各种操作的进一步细节在下文更详细地说明。
获得获取确认
要以授权方式(例如合法地)使用软件,用户必须接收获取确认。此类获取确认可以多种形式存在,包括但不限于:(a)激活密钥(例如,由软件开发人员提供的唯一符号的组合);或(b)激活系统的数据库中与特定用户有关的记录。完成获取后,必须向用户提供有关如何将获取确认交换为软件许可证的指令。
如上所述,用户必须获得获取确认(例如,激活号码)。软件供应商可具有一个或多个不同的激活号码的分配选项:
直接销售(例如,通过供应商网站上的在线直接销售、或通过供应商零售点的直接销售);
通过第三方转销商和合作伙伴进行销售;
通过在线或物理介质(例如CD、USB棒或SD卡)等的盒装版本分配。
前述分配方法可能需要不同的获得获取确认的方式和顺序。在一些情况下,可在接收到付款后立即提供获取确认;在其他情况下,可能需要提供大量预生成的激活号码,以在一些物理介质上进行交付。在每种情况下,供应商必须了解与生成激活号码的条件(例如,合作伙伴、营销活动、数据、计数和其他条件)相关联的更多信息(例如,出于营销和分析目的)。
示例性实现方式包括至少三个生成获取确认的基本机制:
通过URL生成——每个获取确认的请求都将重新传入到与激活服务器相关联的特定URL。如果有完整且正确构造的请求,则服务器以获取确认进行响应;
“批量”生成——服务器生成有限数量的激活号码,所述激活号码“按原样”提供给软件发行商或散布给用户;
单个生成——这种生成获取确认的方法主要用于测试和支持目的,诸如在需要生成一个获取确认时。
获取确认可由服务器“按原样”发送,不进行加密。
通过URL生成
此方法包括一个或多个获取确认的请求。此方法最有可能在直接在线购买期间使用,但可能在获得应用程序的其他模式期间使用。图2示出基于URL生成请求激活代码的过程的示例性实现方式200。在图2中,公开了用户工作站201、付款系统203和激活服务器205。然而,在不脱离本发明范围的情况下,可用本领域技术人员将理解的其他实现方式代替。
1.用户访问购买页面(例如,开发人员的网站、第三方网络资源或购买产品的某种方式)。(207)
2.用户提供所需的信息,诸如他的名字/姓氏、电子邮件地址、电话号码、产品数量、软件使用期限等。(207)
3.如果购买成功,计费系统将通过特定的API将收集的信息发送到软件供应商的服务器;订单信息将保存在激活服务器中并生成激活密钥。(209、211a、211b)
4.用户从激活服务器获得激活密钥,所述激活密钥被发送到购买页面上所声明和/或显示的电子邮件中。(213、215)
5.如果由于某种原因无法完成付款,则会通知用户无法完成交易以及进一步操作的指令(重新输入计费信息、检查银行帐户、稍后再试等)。(217)
批量生成
在另一个示例性实现方式中,可采用批量激活以为合作伙伴(附属公司、转销商或物理介质(CD、USB)的生产商)提供许多代码。
在此示例性实现方式中,软件供应商可利用所需的营销参数或合同条件(例如,向Resell有限责任公司提供可使用至2017年12月25日的500个许可证),生成(例如,预先生成)具有一定数量的激活号码。
在此示例性实现方式中,将创建具有空白订单记录的数据库,并且开发人员可声明激活号码的特定模式。所述应用程序将要求最终用户提供他/她的个人数据(姓名和电子邮件地址)。因此,激活软件后将填写订单记录。
单个生成
可为客户支持以及促销或测试目的而实现此选项。
根据此示例性实现方式,软件供应商通过服务器上的特殊管理员面板生成激活代码,然后将此代码发送给客户或所需方。然后由管理员填写订单记录。
在激活系统的数据库中创建记录
获取软件后,在激活系统的数据库中创建记录的操作描述如下。需注意,用户应当在激活系统上标识自己。这可通过以下一种或多种方法来完成(但不限于此):
通过提供一对唯一的登录名和口令信息;
通过与激活服务器建立安全连接,所述激活服务器受到激活服务器提供的安全密钥(例如加密的)保护;
通过与激活服务器建立连接并发送参数,从而允许确定用户身份(例如,通过提供来自第三方服务的会话标识符或通过激活系统管理员定义的任何其他参数)。
用户在激活系统上标识自己后,有关软件获取的信息将作为记录存储在激活系统数据库中。
颁发许可证
用户接收获取确认后,他或她必须请求许可证以无限制地使用所述软件。
对于每种类型的获取确认,颁发许可证的过程都是类似的。不同之处在于,用户提供用于接收许可证的获取确认的方式:
通过在应用程序内部输入激活号码;
通过由URL方案激活应用程序;
通过在激活系统上进行认证:
通过提供一对唯一的登录名和口令;
通过与激活服务器建立安全连接,所述激活服务器受到先前提供的安全密钥保护;
通过与激活服务器建立连接并发送参数,从而允许确定用户身份(例如,通过提供来自第三方服务的会话标识符或通过激活系统管理员定义的任何其他参数)。
许可证请求的过程300公开如下,并在图3中示出。如图3所示,提供了用户计算设备(例如,工作站)301,应用程序侧操作空间303(例如,用户控制的设备)和服务器侧空间(例如,具有数据库的服务器)305。操作包括但不限于以下各项:
1.用户通过上文描述的方法中的一个方法提供获取确认。(307)
2.软件生成许可证请求,并将许可证请求发送到激活服务器。(308)
3.激活服务器检查是否允许对此获取确认进行激活(例如,激活服务器可在数据库的激活号码记录中搜索“激活”参数)。(309)
4.如果是(即,允许激活),则激活服务器基于标识信息颁发许可证(311),并将响应传输到包括许可证文件的应用程序。(317)
5.许可证文件通过了激活系统的应用程序侧部分的验证。(319)
6.通知用户激活成功。(321)
7.如果激活服务器确定在激活过程期间发生了错误(例如,在309处,不允许颁发许可证,并且在313处,以前并未颁发许可证),则激活服务器将错误代码和消息发送回应用程序,并且因此,发送给用户。(315)另一方面,在309处,如果激活服务器确定不允许颁发许可证,但是在313处,以前已颁发了许可证,则所述过程将继续发送如上所述先前在317中所颁发的许可证,。
8.所述软件通知用户错误类型以及解决所述错误的进一步操作的指令(例如,检查激活代码的有效性、联系客户支持等)。(323)
为了减少对服务器的请求的数量并简化用户的输入要求,根据本示例性实现方式,实现了用于激活密钥的模式识别系统。更具体地,该激活密钥是使用特定模式生成的,所述特定模式将由软件安装识别,并将触发特定操作的软件安装。例如,但不作为限制,具有特定后缀的激活密钥可发起表单的出现,以用于向用户请求个人数据。供应商可设置特定的模式和软件安装行为,以匹配它们自己的模式和行为。
在激活服务器上注册软件后,激活服务器将发出用于许可证的签名的一对私有密钥和公用密钥。私有密钥存储在服务器上,并且用于在将许可证发送到应用程序之前对每个许可证进行签名。公用密钥被集成到激活系统的应用程序侧部分,并在稍后用于验证许可证签名,如下文进一步解释。
发生成功的激活请求后,将在激活服务器上生成许可证。作为许可证的参数中的一个,许可证包括基于以下应用程序标识符生成的散列:
应用程序的捆绑ID;
用户计算设备(例如,硬件)的一个或多个标识符,所述一个或多个标识符可以是(但不限于):用于在操作系统上对用户进行身份验证的用户名;网络接口卡的MAC地址;硬盘驱动器或固态驱动器;母板标识符或本领域技术人员已知的其他标识符;
以及随机生成的字符串(例如“salt”),所述字符串将包括在许可证中。
在将许可证文件发送给最终用户之前,使用对称加密算法对许可证文件进行加密,并基于在激活服务器上进行软件注册期间发出的私有密钥,使用服务器签名对服务器文件进行签名。
重新激活
为了减少由于在改变硬件(例如,改变到新计算机)之后继续软件使用的需要所引起的支持查询的数量,已经实现了根据示例性实现方式的重新激活系统。
当发出激活号码时,激活号码具有有限数量的可能激活。例如,如果用户出于某种原因使他/她的计算机设备上的软件安装无效,并使用相同的激活号码再次激活同一计算机设备上的软件,则将颁发旧许可证。
另一方面,如果用户更换计算设备,则他/她仍然具有使用相同激活号码激活软件的能力。有关可能的重新激活次数的信息存储在激活服务器上。一旦经过指定的时间段(例如,默认为六个月,但不限于此),激活服务器会自动添加一次另外的重新激活。因此,在用户更改计算设备或操作系统的情况下,他/她将能够重新激活所述软件。
许可证验证
为了使软件安装完全正常运行,有必要检查用户计算机上的许可证是否可用,并验证其有效性。所述验证包括对以下参数的检查:(a)许可证来源(例如,许可证是否由正确的服务器颁发);(b)许可证是否颁发给此计算机(例如,许可证是否颁发给正确的计算机);(c)许可证是否未过期。
在相关技术中,验证过程是一段时期,在此期间,黑客可能能够侵入代码并接收破解应用程序所需的信息。为了解决此风险,示例性实现方式包括若干机制。
在需要许可证检查的时间点(这些时间点可由开发人员定义,例如,作为应用程序的启动、升级或用于执行某种特定操作的时间),但是尚未执行许可证检查,激活系统的应用程序侧验证许可证,如同从服务器取得许可证时一样不修改许可证,并将已验证的许可证保存在客户端侧或用户机器上。在内部入侵的情况下,防止未授权方(例如,黑客)获得数据。
更具体地,并且如上所述,为了克服前述相关技术的安全漏洞,示例性实现方式涉及数字签名的非对称方案。更具体地,示例性实现方式为每个供应商应用程序使用一对唯一的密钥:集成在每个供应商应用程序中的公用密钥和安全地存储在服务器端的私有密钥。
当服务器接收到对应的请求时,服务器将生成许可证文件的内容,并使用唯一的安全私有密钥对许可证文件进行签名。因此,服务器创建数字签名。具有唯一的安全私有密钥的签名许可证文件特定于每个供应商应用程序。
供应商应用程序接收带有数字签名的许可证文件,并将其存储在用户的机器(例如客户端)上。如果不良行为者(例如,黑客)尝试进行恶意行为(例如,决定尝试更改许可证文件或尝试生成伪许可证),则此许可证文件的签名验证将在供应商应用程序侧失败。因此,许可证文件的内容变为无效,并且供应商应用程序可经受恶意尝试(例如,破解供应商应用程序)。
因此,如上所述,不需要防止黑客获得许可证数据,因为这不可能发生。许可证数据是为每台机器唯一生成的(例如,使用机器特定的标识,像网络MAC地址或序列号),并由存储在服务器上的私有密钥签名。因此,许可证数据不能在另一台机器上使用或访问。
由于需要许可证检查,因此激活系统的应用程序侧部分正在检查预定义的存储,以确定许可证是否可用。
首先,如上所述,激活系统的应用程序侧部分使用集成到应用程序系统的应用程序侧部分的公用密钥来检查服务器签名。基于公用密钥的使用,如果服务器签名是有效的,则激活系统将接收用于对称解密的密钥。然后,使用此解密密钥对许可证的第二部分进行解密。作为成功解密的结果,接收到许可证信息。
下一步是检查用于特定计算机的许可证的有效性。为了执行此检查,激活系统的应用程序侧通过使用以下参数来生成散列字符串:
应用程序的捆绑ID
计算设备的一个或多个标识符
存储在许可证中的“salt”字符串。
生成的散列字符串应当与许可证中存储的字符串匹配。如果没有匹配,则确定该许可证对于该特定计算机和/或对于该特定应用程序是无效的。
作为下一步,激活系统的应用程序侧部分通过将许可证参数与当前系统和应用程序状态进行比较来检查以确认许可证未过期。根据许可证类型,可比较以下参数:
a)许可证到期时间与当前系统时间;
b)许可证订购结束时间与当前系统时间;
c)许可证到期版本与当前应用程序版本;
d)仅公测标志的许可证与当前应用程序版本。
此外,激活系统的应用程序侧部分可定期将请求传输到激活服务器以验证许可证。所述请求可包括激活标识符和标识用户工作站所必需的信息。如果仍然确定许可证是有效的,则服务器将用相同的许可证进行响应。然而,如果确定许可证非仍然有效,则服务器将用错误消息响应。因为到期时间由服务器系统时间验证,此方法可防止操纵用户工作站的系统时间来使许可证期限延长。
应用程序侧部分的安全性
激活系统的应用程序侧部分是针对在激活服务器处注册的每个应用程序唯一生成的。为了安全起见,对激活系统的应用程序侧部分的编程代码的函数、方法和变量进行了模糊处理(例如,使其为人类不可读)。
被模糊的函数会用特殊的标记,并且在编译期间,它们的名称会替换为预定义字母中的随机名称(通常,它包括具有字母与数字的符号:大写字母、小写字母和数字)。对于每个应用程序,模糊的名称都是唯一的。
提高安全性的另一种机制是:通过使用在运行期间更改存储器中目标地址的函数。更具体地,在程序代码的编译期间,用于许可证验证的函数故意返回错误的参数,但是在软件处于实时操作期间,这些函数将重新传入到存储器中的地址,所述地址包括将返回正确参数的函数。这些函数在编译期间是随机命名的,因此在逆向工程的情况下,软件黑客将无法确定这些函数的实际作用。此机制也可在开发人员定义的需要许可证检查的时间点实现。
根据示例性实现方式,此函数在操作期间的名称未提供给开发人员,并且不需要有此信息。例如,但不作为限制,开发人员可编写软件程序(例如,代码),然后在编译应用程序时,将所述函数命名为伪随机(即,被模糊),以使得它作为安全措施,不会基于函数名称来确定函数。
远程禁用许可证
如果用户要求退款并且批准了退款请求,则用户将失去使用所述软件的权利。因此,具有远程吊销许可证的机制是有必要的。当用户需要每月或每年为软件付款时,此机制也可用于处理订购费计划。例如,用户可简单地选择不续订软件,而无需提供肯定的取消指示。
如果由于退款或未付款的订购(例如,续订)而在服务器上将许可证标记为无效,则许可证也将在激活系统的应用程序端部分被标记,并且用户将无法使用应用程序,直到确认付款为止。
在应用程序侧上禁用许可证
此外,开发人员可能够添加功能以禁用应用程序内部的许可证。用户发起许可证禁用后,激活系统的应用程序侧将请求发送到服务器侧。因此,服务器用针对该特定工作站的许可证响应,所述许可证被标记为禁用。假如用户想要在另一个工作站上使用所述软件,此过程很有用。用户可在第一个工作站上发起许可证的禁用,并在第二个(例如另一个)工作站上重复激活应用程序所需的步骤。
使用应用程序商店收据作为许可证
如果供应商销售应用程序(例如,通过苹果应用程序商店和通过其他来源两者),则激活服务器具有将苹果应用程序商店收据作为许可证进行匹配的能力。
例如,但不作为限制,用户通过应用程序商店(例如,苹果应用程序商店)购买了应用程序,有关购买的信息通过公共API发送到激活服务器。如果用户需要重新激活他/她的计算设备上的软件,则所述软件安装将被识别为已激活的软件,并且将自动颁发许可证。
示例性过程
图4示出根据示例性实现方式的在服务器上执行的过程400,并且所述过程400包括图1至图3的前述公开。在401处,在用户已经获取了应用程序并且通过各种模式中的一种模式接收到对应用程序的获取的确认之后,与特定用户相关联的激活系统的数据库中的记录在服务器侧被发起。另外,在403处,服务器从用户接收用于获得软件许可证的标识信息和许可证请求。激活系统的数据库中的记录发起后,在405处,由协议生成对许可证的请求。根据协议,许可证在服务器处生成,并使用安全私有密钥签名。一旦在109处生成了许可证的请求,就在407处将具有数字签名的许可证提供给用户,并且将许可证文件存储在用户设备处。
如上文所指出,接收到许可证请求后,在409处,服务器确定激活是否正确,如果激活请求正确,则在413处颁发许可证,否则在411处发送错误消息。在413处,将软件许可证交付到最终用户的计算机后,在415处,软件许可证应当通过验证,而不修改从服务器接收到的许可证;需注意,如果尝试更改签名的许可证文件或生成伪许可证,则此尝试将在供应商侧失败,许可证文件的内容将变为无效,使得供应商应用程序不会遭破解。许可证文件被写入用户计算机文件系统上的特定位置。当应用程序运行时,在415处,检查许可证有效性。验证许可证来源并确认完整性后,软件安装完成,并且可由用户使用所述软件。激活状态由激活服务器定期接收。另外,激活服务器可远程或直接禁用许可证。
图5示出根据示例性实现方式的在服务器上执行的过程500,并且所述过程500包括图1至图3的前述公开。在501处,用户获取应用程序。另外,在503处,用户通过各种模式中的一种模式接收对应用程序的获取的确认。
如上所述,应用程序的每种获取模式都具有与设定获取确认的一致性相关联的独特机制并且具有应当颁发许可证的一组规则。获取确认可包括激活号码,并且可以是人类可读的,但是足够长以防止暴力搜索。另外,根据示例性实现方式的通过URL激活的方案可允许开发人员向用户提供通过用户操作来激活软件的选项。
在505处,用户提供用于获得软件许可证的标识信息和请求。如上所述,一旦服务器生成了具有数字签名的许可证请求,则在507处,用户接收许可证并且许可证文件被存储在用户设备处。
在507处,接收到许可证请求后,服务器确定激活是否正确,如果激活请求正确,则用户在513处接收颁发的许可证,否则在511处接收错误消息。在513处,最终用户的计算机接收到软件许可证后,它应当通过验证。许可证写在用户设备上,而不修改从服务器接收到的许可证;需注意,如果尝试更改签名的许可证文件或生成伪许可证,则此尝试将在供应商侧失败,许可证文件的内容将变为无效。许可证文件被写入用户计算机文件系统上的特定位置。当应用程序运行时,检查许可证有效性。验证许可证来源并确认完整性后,软件安装完成,并且在515处,所述软件开始可以使用。激活状态定期发送到激活服务器。另外,服务器可远程或直接禁用许可证。
在一些实例中,图1至图5中示出的前述过程可用不同、更少或更多的块来实现。所述过程可实现为计算机可执行指令,所述计算机可执行指令可存储在介质上、加载到一个或多个计算设备的一个或多个处理器上、并且作为计算机实现的方法来执行。
示例性环境
图6示出适用于一些示例性实现方式的示例性环境。环境600包括设备605至645,并且每个设备通过例如网络660(例如,通过有线和/或无线连接)可通信地连接到至少一个其他设备。一些设备能够可通信地连接到一个或多个存储设备630和645。
一个或多个设备605至645可以分别是下文在图7和图8中描述的计算设备705和/或805的实例。设备605至645可包括但不限于:计算机605(例如,膝上型计算设备)、移动设备610(例如,智能电话或平板电脑)、电视615、与车辆相关联的设备620、服务器计算机625、计算设备635至640,存储设备630和645。
在一些实现方式中,设备605至620可被认为是用户设备625至645,所述用户设备625至645可以是与如上文所描述并且参考图3至图5的服务器相关联的设备。
例如,但不作为限制,用户在一个或多个设备625至645支持的网络上具有用户设备605或610,可使用用户设备605或610来执行获取应用程序、请求许可证、接收许可证并使用软件。根据上文关于图1至图5描述的过程,服务器可使用设备625至645执行上文描述的操作。
示例性计算环境
图7示出示例性计算环境,所述示例计算环境具有与外部主机相关联的示例性计算设备,以供在一些示例性实现方式中使用。计算环境700中的计算设备705可包括一个或多个处理单元、芯部或处理器710、存储器715(例如,RAM、ROM等)、内部存储装置720(例如,磁、光学、固态存储装置和/或有机存储装置)、和/或I/O接口725,它们中的任何一个都可耦合在传达信息的通信机制或总线730上或嵌入在计算设备705中。
计算设备705能够可通信地耦合到输入/用户接口735和输出设备/接口740。输入/用户接口735和输出设备/接口740中的一者或两者可以是有线或无线接口并且可以是可拆卸的。输入/用户界面735可包括可用于提供输入的任何设备、组件、传感器、物理接口或虚拟接口(例如,按钮、触摸屏接口、键盘、指向/光标控件、麦克风、相机、盲文、运动传感器、光学阅读器等)。输出设备/接口740可包括显示器、电视、监视器、打印机、扬声器、盲文等。在一些示例性实现方式中,输入/用户接口735和输出设备/接口740可被嵌入到计算设备705中或物理耦合到计算设备705。在其他示例性实现方式中,其他计算设备可充当计算设备705的输入/用户界面735和输出设备/界面740或为计算设备705提供输入/用户界面735和输出设备/界面740的功能。
计算设备705的实例可包括但不限于:高度移动设备(例如,智能电话、车辆和其他机器中的设备、人类和动物携带的设备等)、移动设备(例如,平板电脑、笔记本电脑、膝上型电脑、个人计算机、便携式电视、收音机等)以及非移动性设计的设备(例如台式计算机、其他计算机、信息亭、具有一个或多个嵌入在其中的处理器和/或与之耦合的电视、收音机等)。
计算设备705能够可通信地耦合(例如,通过I/O接口725)到外部存储装置745和网络750,以与包括相同或不同配置的一个或多个计算设备的任何数量的联网部件、设备和系统进行通信。计算设备705或任何连接的计算设备可充当服务器、客户端、瘦服务器、通用机器、专用机器或另一标签来提供服务或被称为服务器、客户端、薄式服务器、通用机器、专用机器或另一标签。
I/O接口725可包括有助于通过语音和/或通过数据网络无线通信的无线通信部件(未示出)。无线通信部件可包括:具有一个或多个天线的天线系统、无线电系统、基带系统或其任意组合。在无线电系统的管理下,天线系统可通过空中传输和接收射频(RF)信号。
I/O接口725可包括但不限于:使用任何通信或I/O协议或标准(例如,以太网、802.11x、通用系统总线、WiMax、调制解调器、蜂窝网络协议等)的有线和/或无线接口用于将信息传达到计算环境700中的至少所有连接的部件、设备和网络和/或从计算环境700中的至少所有连接的部件、设备和网络传达信息。网络750可以是任何网络或网络的组合(例如,互联网、局域网、广域网、电话网络、蜂窝网络、卫星网络等)。
计算设备705可使用计算机可用或计算机可读介质来使用和/或通信,所述计算机可用或计算机可读介质包括暂时性介质和非暂时性介质。暂时性介质包括传输介质(例如,金属线缆、光纤)、信号、载波等。非暂时性介质包括:磁介质(例如磁盘和磁带)、光学介质(例如CDROM、数字视频光盘、蓝光光盘)、固态介质(例如RAM、ROM、快闪存储器、固态存储装置)以及其他非易失性存储装置或存储器。
计算设备705可用于在一些示例性计算环境中实现技术、方法、应用程序、过程或计算机可执行指令。可从暂时性介质中检索计算机可执行指令,并将其存储在非暂时性介质上并从非暂时性介质中检索。可执行指令可源自任何编程、脚本和机器语言(例如,C、C++、C#、Java、VisualBasic、Python、Perl、JavaScript等)中的一者或多者。
一个或多个处理器710可在本机或虚拟环境中的任何操作系统(OS)(未示出)下执行。可部署一个或多个应用程序,所述一个或多个应用程序包括:逻辑单元760、应用程序编程接口(API)单元765、输入单元770、输出单元775、获取确认和用户请求查看单元780、许可证颁发确定785、许可证生成单元790和用于使不同单元彼此间进行通信、与OS以及与其他应用程序(未示出)进行通信的单元间通信机制795。例如,获取确认和用户请求查看单元780、许可证颁发确定785和许可证生成单元790可实现图1至图5中所示的一个或多个过程。所描述的单元和元件可在设计、功能、配置或实现方式上变化,并且不限于所提供的描述。
在一些示例性实现方式中,当信息或执行指令由API单元765接收到时,它可被传达给一个或多个其他单元(例如,逻辑单元760、输入单元770、输出单元775、获取确认和用户请求查看单元780、许可证颁发确定785和许可证生成单元790)。
例如,在输入单元770已经从用户接收到输入(诸如获取应用程序的指令、许可证请求或其他此类用户交互)后,输入单元770可使用API单元765以将数据传达到获取确认和用户请求查看单元780。例如,如上所述,获取确认和用户请求查看单元780可确定是否应当颁发许可证。
获取确认和用户请求查看单元780可通过API单元765与许可证颁发确定785交互以提供关于是否应当发布许可证的输出。如上所述,使用API单元765、获取确认和用户请求查看单元780可与许可证生成单元790交互以生成许可证并将许可证提供给用户。
在一些情况下,在上文描述的一些示例性实现方式中,逻辑单元760可被配置来控制各单元之间的信息流,并指导API单元765、输入单元770、输出单元775、获取确认和用户请求查看单元780、许可证颁发确定785、以及许可证生成单元790提供的服务。例如,一个或多个过程或实现方式的流程可由逻辑单元760单独控制或结合API单元765来控制。
示例性实现方式可具有各种益处和优点。例如,但不作为限制,在许可证激活和验证过程中提供了更高的安全性,以减少黑客获得敏感信息或使用应用程序的风险以及信息泄露给软件开发人员的风险。
尽管已经示出和描述了一些示例性实现方式,但是提供这些示例性实现方式是为了将本文所描述的主题传达给熟悉本领域的人们。应当理解的是,本文所描述的主题可以各种形式实现而不限于所描述的示例性实现方式。可在没有那些具体定义或描述的主题的情况下,或在未描述的其他或不同元件或主题的情况下实践本文所描述的主题。熟悉本领域的人们将理解,可在不脱离如所附权利要求及其等同物所定义的本文所描述主题的情况下,对这些示例性实现方式做出改变。
Claims (17)
1.一种用于软件激活和许可证跟踪的方法,其包括:
(a)获得与所述软件的获取相关联的获取确认,并将所述获取确认提供给与软件激活和许可相关联的服务器;
(b)请求针对授权客户端使用所述软件的许可证,其中所述许可证由服务器用私有密钥保护,并且所述私有密钥未存储在所述客户端;
(c)向所述客户端颁发并提供所述许可证;
(d)在所述客户端处验证所述许可证;
(e)将所述许可证存储在所述客户端处;
(f)定期跟踪所述许可证的激活状态;以及
(g)基于所述许可证的所述激活状态,在所述客户端处对所述许可证执行操作,其中在所述客户端处验证所述许可证包括:在与应用程序相关联的所述客户端处,对从所述服务器接收到的所述许可证进行验证,而不进行任何修改并将所述许可证保存到所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述获取确认包括激活密钥和与所述服务器相关联的数据库中的记录中的至少一个,并且进一步地,其特征在于所述服务器向所述用户提供将所述获取确认交换为所述软件许可证的指令。
3.根据权利要求1所述的方法,其特征在于,所述获取确认是通过以下方式中的一种方式获得的:直接销售、通过第三方转销商的销售以及通过在线或物理介质等的盒装版本分配。
4.根据权利要求1所述的方法,其特征在于,所述获取确认是由以下至少一项生成的:(a)与生成所述获取确认的所述服务器相关联的统一资源定位符(URL);(b)多个获取确认的批量生成;以及(c)所述获取确认的单个生成。
5.根据权利要求4所述的方法,其特征在于,由所述URL生成的所述获取确认包括:
向所述用户提供用于获得所述获取确认的网页访问权限,
接收与所述用户相关联的所需信息;
假如所述应用程序的购买是成功的,向所述服务器提供所述用户的所述需要的信息,其中在所述服务器处保存所述应用程序的订单信息,并且由所述服务器生成所述获取确认,并将所述获取信息提供给所述用户;以及
假如所述应用程序的购买是不成功的,向所述用户提供所述应用程序的所述购买是不成功的指示。
6.根据权利要求1所述的方法,其特征在于,所述获取确认在没有加密的情况下提供给所述用户。
7.根据权利要求1所述的方法,其还包括通过以下一项或多项方法,在所述服务器中创建与所述获取确认的所述生成相关联的记录:通过提供一对唯一的登录名和口令信息;与受安全密钥保护的所述服务器建立安全连接;以及与所述服务器建立连接,并发送标识所述用户的参数,其中在所述用户提供标识后,在所述服务器中存储有关所述应用程序的所述获取的所述信息。
8.根据权利要求1所述的方法,其特征在于,所述(c)和所述(d)包括:
接收来自所述用户的所述获取确认;
所述客户端生成所述许可证请求并将所述许可证请求提供给所述服务器;
所述服务器确定是否允许激活所述获取确认;并且
假如允许所述激活,所述服务器基于所述用户的所述标识信息颁发许可证,并将所述许可证的文件提供给所述用户。
9.根据权利要求1所述的方法,其特征在于,所述获取确认包括使用具有指定后缀的模式生成的一个或多个激活密钥,所述模式通过所述应用程序的安装而被识别,并且将会触发用于所述用户向所述服务器提供信息的表单的出现,所述应用程序的供应商可基于其自己的模式来确定所述模式。
10.根据权利要求1所述的方法,其特征在于,生成所述许可证,所述许可证包括与所述应用程序的捆绑ID、所述客户端的一个或多个标识符以及随机生成的字符串中的至少一个相关联的参数。
11.根据权利要求1所述的方法,其特征在于,所述验证还包括:对在所述服务器上生成的所述许可证进行验证,其中所述许可证用唯一且安全的所述私有密钥签名以生成数字签名,并且所述数字签名由在所述客户端处的所述软件的公用密钥进一步验证,所述软件包括供应商应用程序。
12.一种被配置来执行用于软件激活和许可证跟踪的操作的非暂时性计算机可读介质,所述操作包括:
(a)获得与所述软件的获取相关联的获取确认,并将所述获取确认提供给与软件激活和许可相关联的服务器;
(b)请求针对授权客户端使用所述软件的许可证;
(c)向所述客户端颁发并提供所述许可证,其中所述许可证由服务器用私有密钥保护,并且所述私有密钥未存储在所述客户端;
(d)在所述客户端处验证所述许可证;
(e)将所述许可证存储在所述客户端处;
(f)定期跟踪所述许可证的激活状态;以及
(g)基于所述许可证的所述激活状态,在所述客户端处对所述许可证执行操作,其中在所述客户端处验证所述许可证包括:在与应用程序相关联的所述客户端处,对从所述服务器接收到的所述许可证进行验证,而不进行任何修改并将所述许可证保存到所述客户端。
13.根据权利要求12所述的方法,其特征在于,由所述URL生成的所述获取确认包括:
向所述用户提供用于获得所述获取确认的网页访问权限,
接收与所述用户相关联的所需信息;
假如所述应用程序的购买是成功的,向所述服务器提供所述用户的所述需要的信息,其中在所述服务器处保存所述应用程序的订单信息,并且由所述服务器生成所述获取确认,并将所述获取信息提供给所述用户;以及
假如所述应用程序的购买是不成功的,向所述用户提供所述应用程序的所述购买是不成功的指示。
14.根据权利要求12所述的非暂时性计算机可读介质,其特征在于,所述获取确认在没有加密的情况下提供给所述用户。
15.根据权利要求12所述的非暂时性计算机可读介质,其还包括通过以下一项或多项方法,在所述服务器中创建与所述获取确认的所述生成相关联的记录:通过提供一对唯一的登录名和口令信息;与受安全密钥保护的所述服务器建立安全连接;以及与所述服务器建立连接,并发送标识所述用户的参数,其中在所述用户提供标识后,在所述服务器中存储有关所述应用程序的所述获取的所述信息。
16.根据权利要求12所述的非暂时性计算机可读介质,其特征在于,所述(c)和所述(d)包括:
接收来自所述用户的所述获取确认;
所述客户端生成所述许可证请求并将所述许可证请求提供给所述服务器;
所述服务器确定是否允许激活所述获取确认;并且
如果允许激活所述获取确认,则所述服务器基于所述用户的所述标识信息颁发许可证,并且向所述用户提供所述许可证的文件,并且其中所述获取确认包括使用具有指定后缀的模式生成的一个或多个激活密钥,所述模式通过所述应用程序的安装而被识别,并且将会触发用于所述用户向所述服务器提供信息的表单的出现,其中所述应用程序的供应商可基于其自己的模式来确定所述模式。
17.根据权利要求12所述的非暂时性计算机可读介质,其特征在于,所述验证还包括:对在所述服务器上生成的所述许可证进行验证,其中所述许可证用唯一且安全的所述私有密钥签名以生成数字签名,并且所述数字签名由在所述客户端处的所述软件的公用密钥进一步验证,所述软件包括供应商应用程序。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/601,909 US10706130B2 (en) | 2015-02-06 | 2017-05-22 | System and method for software activation and license tracking |
US15/601,909 | 2017-05-22 | ||
PCT/US2017/052567 WO2018217224A1 (en) | 2017-05-22 | 2017-09-20 | System and method for software activation and license tracking |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110832479A true CN110832479A (zh) | 2020-02-21 |
Family
ID=64395790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780091168.XA Pending CN110832479A (zh) | 2017-05-22 | 2017-09-20 | 用于软件激活和许可证跟踪的系统和方法 |
Country Status (7)
Country | Link |
---|---|
EP (1) | EP3639174A4 (zh) |
JP (1) | JP2020524836A (zh) |
KR (1) | KR20200000448A (zh) |
CN (1) | CN110832479A (zh) |
CA (1) | CA3063223A1 (zh) |
MX (1) | MX2019013986A (zh) |
WO (1) | WO2018217224A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111523093A (zh) * | 2020-03-20 | 2020-08-11 | 北京元心科技有限公司 | 软件许可证有效性校验方法、系统及相应计算机设备 |
CN112307522A (zh) * | 2020-10-30 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 一种软件系统中维保服务的实现方法及装置及存储介质 |
CN113590486A (zh) * | 2021-02-23 | 2021-11-02 | 中国人民解放军军事科学院国防科技创新研究院 | 一种基于度量的开源软件代码质量评价方法 |
CN113748657A (zh) * | 2020-03-31 | 2021-12-03 | 京东方科技集团股份有限公司 | 用于许可认证的方法、节点、系统和计算机可读存储介质 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110096849A (zh) * | 2019-04-02 | 2019-08-06 | 深圳市中博科创信息技术有限公司 | 一种License授权认证方法、装置、设备及可读存储介质 |
CN110677242B (zh) * | 2019-08-28 | 2022-08-09 | RealMe重庆移动通信有限公司 | 秘钥处理方法、秘钥处理装置及终端设备 |
US11928478B2 (en) * | 2019-10-29 | 2024-03-12 | Hewlett-Packard Development Company, L.P. | Tracking device state transitions |
CN113268715A (zh) * | 2020-02-14 | 2021-08-17 | 中移(苏州)软件技术有限公司 | 软件加密方法、装置、设备及存储介质 |
CN112866419B (zh) * | 2021-03-11 | 2023-05-02 | 统信软件技术有限公司 | 一种激活控制方法、系统及计算设备 |
KR102584566B1 (ko) * | 2022-04-27 | 2023-10-05 | (주)아스트론시큐리티 | 다이나믹 클라우드 자산 관리 시스템 |
CN117390599B (zh) * | 2023-12-04 | 2024-03-26 | 深圳中安高科电子有限公司 | 一种离线多设备产品许可发放与验证方法、系统及设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008116087A1 (en) * | 2007-03-20 | 2008-09-25 | Dmvich Software, Llc | Refreshing software licenses |
CN101292496A (zh) * | 2005-10-20 | 2008-10-22 | 瑞士银行股份有限公司 | 服务器-客户端计算机网络系统中执行密码操作的设备和方法 |
US20080319779A1 (en) * | 2007-06-25 | 2008-12-25 | Microsoft Corporation | Activation system architecture |
US20090092253A1 (en) * | 2007-10-09 | 2009-04-09 | Microsoft Corporation | Optimizing amount of data passed during software license activation |
US20100293622A1 (en) * | 2009-05-12 | 2010-11-18 | Microsoft Corporation | Availability of permission models in roaming environments |
US20120131681A1 (en) * | 2010-11-19 | 2012-05-24 | Microsoft Corporation | Reliable software product validation and activation with redundant security |
CN102737200A (zh) * | 2010-12-14 | 2012-10-17 | 微软公司 | 使用数字许可证的软件激活 |
US20160232334A1 (en) * | 2015-02-06 | 2016-08-11 | Macpaw Inc. | System and method for software activation and license tracking |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8984293B2 (en) * | 2010-11-19 | 2015-03-17 | Microsoft Corporation | Secure software product identifier for product validation and activation |
-
2017
- 2017-09-20 JP JP2019565383A patent/JP2020524836A/ja active Pending
- 2017-09-20 WO PCT/US2017/052567 patent/WO2018217224A1/en active Application Filing
- 2017-09-20 EP EP17910865.9A patent/EP3639174A4/en not_active Withdrawn
- 2017-09-20 KR KR1020197037546A patent/KR20200000448A/ko not_active Application Discontinuation
- 2017-09-20 CA CA3063223A patent/CA3063223A1/en active Pending
- 2017-09-20 CN CN201780091168.XA patent/CN110832479A/zh active Pending
- 2017-09-20 MX MX2019013986A patent/MX2019013986A/es unknown
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101292496A (zh) * | 2005-10-20 | 2008-10-22 | 瑞士银行股份有限公司 | 服务器-客户端计算机网络系统中执行密码操作的设备和方法 |
WO2008116087A1 (en) * | 2007-03-20 | 2008-09-25 | Dmvich Software, Llc | Refreshing software licenses |
CN101681403A (zh) * | 2007-03-20 | 2010-03-24 | 迪姆威奇软件有限责任公司 | 刷新软件许可证 |
US20080319779A1 (en) * | 2007-06-25 | 2008-12-25 | Microsoft Corporation | Activation system architecture |
US20090092253A1 (en) * | 2007-10-09 | 2009-04-09 | Microsoft Corporation | Optimizing amount of data passed during software license activation |
US20100293622A1 (en) * | 2009-05-12 | 2010-11-18 | Microsoft Corporation | Availability of permission models in roaming environments |
US20120131681A1 (en) * | 2010-11-19 | 2012-05-24 | Microsoft Corporation | Reliable software product validation and activation with redundant security |
CN102737200A (zh) * | 2010-12-14 | 2012-10-17 | 微软公司 | 使用数字许可证的软件激活 |
US20160232334A1 (en) * | 2015-02-06 | 2016-08-11 | Macpaw Inc. | System and method for software activation and license tracking |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111523093A (zh) * | 2020-03-20 | 2020-08-11 | 北京元心科技有限公司 | 软件许可证有效性校验方法、系统及相应计算机设备 |
CN113748657A (zh) * | 2020-03-31 | 2021-12-03 | 京东方科技集团股份有限公司 | 用于许可认证的方法、节点、系统和计算机可读存储介质 |
US11790054B2 (en) | 2020-03-31 | 2023-10-17 | Boe Technology Group Co., Ltd. | Method for license authentication, and node, system and computer-readable storage medium for the same |
CN112307522A (zh) * | 2020-10-30 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 一种软件系统中维保服务的实现方法及装置及存储介质 |
CN112307522B (zh) * | 2020-10-30 | 2022-09-20 | 苏州浪潮智能科技有限公司 | 一种软件系统中维保服务的实现方法及装置及存储介质 |
CN113590486A (zh) * | 2021-02-23 | 2021-11-02 | 中国人民解放军军事科学院国防科技创新研究院 | 一种基于度量的开源软件代码质量评价方法 |
Also Published As
Publication number | Publication date |
---|---|
MX2019013986A (es) | 2020-01-21 |
KR20200000448A (ko) | 2020-01-02 |
JP2020524836A (ja) | 2020-08-20 |
WO2018217224A1 (en) | 2018-11-29 |
CA3063223A1 (en) | 2018-11-29 |
EP3639174A4 (en) | 2020-11-18 |
EP3639174A1 (en) | 2020-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9659155B2 (en) | System and method for software activation and license tracking | |
CN110832479A (zh) | 用于软件激活和许可证跟踪的系统和方法 | |
US10706130B2 (en) | System and method for software activation and license tracking | |
TWI492085B (zh) | 用於根據使用者識別符增強產品功能的方法、設備及電腦儲存媒體 | |
US8683579B2 (en) | Software activation using digital licenses | |
EP2643788B1 (en) | Secure software licensing and provisioning using hardware based security engine | |
KR101492757B1 (ko) | 애플리케이션 사용 정책 시행 | |
US11093587B2 (en) | Software wrapper and installer using timestamp validation and system identification validation | |
JP2009534739A (ja) | モバイルモジュールを使用する商取引のための認証 | |
JPWO2019130574A1 (ja) | 情報処理装置、情報処理システム、情報処理方法、及びプログラム | |
US10701061B2 (en) | Methods for blocking unauthorized applications and apparatuses using the same | |
JP4533935B2 (ja) | ライセンス認証システム及び認証方法 | |
JP2008541206A (ja) | ネットワーク商取引 | |
CN103503010A (zh) | 支付能力结合至计算机的安全元件 | |
US10445477B2 (en) | Information processing system, method of controlling the system, information processing apparatus, web server, and storage medium | |
US11409847B2 (en) | Source-based authentication for a license of a license data structure | |
US11057219B2 (en) | Timestamped license data structure | |
US20190164160A1 (en) | Authenticating a payment card | |
US20180260536A1 (en) | License data structure including license aggregation | |
JP6517435B2 (ja) | アプリケーションを管理する方法 | |
US20190279213A1 (en) | Method for processing transaction data, corresponding communications terminal, card reader and program | |
US20180260541A1 (en) | License data structure including location-based application features | |
WO2018017019A1 (en) | Personal security device and method | |
JP2017058711A (ja) | ライセンス管理装置、ライセンス管理システム、ライセンス管理プログラムおよびライセンス管理方法 | |
Huang et al. | A software licensing authorization scheme based on hardware component identifiers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40019930 Country of ref document: HK |
|
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200221 |
|
WD01 | Invention patent application deemed withdrawn after publication |