CN115374405B - 软件授权方法、许可授权方法、装置、设备和存储介质 - Google Patents

软件授权方法、许可授权方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN115374405B
CN115374405B CN202211008214.4A CN202211008214A CN115374405B CN 115374405 B CN115374405 B CN 115374405B CN 202211008214 A CN202211008214 A CN 202211008214A CN 115374405 B CN115374405 B CN 115374405B
Authority
CN
China
Prior art keywords
key
authorization
authorized
license
content
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.)
Active
Application number
CN202211008214.4A
Other languages
English (en)
Other versions
CN115374405A (zh
Inventor
曹高阳
马立珂
王贤达
杨海锋
蓝滨
王子骏
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.)
Guangzhou Dingjia Computer Technology Co ltd
Original Assignee
Guangzhou Dingjia Computer Technology Co ltd
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 Guangzhou Dingjia Computer Technology Co ltd filed Critical Guangzhou Dingjia Computer Technology Co ltd
Priority to CN202211008214.4A priority Critical patent/CN115374405B/zh
Publication of CN115374405A publication Critical patent/CN115374405A/zh
Application granted granted Critical
Publication of CN115374405B publication Critical patent/CN115374405B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

本申请涉及一种软件授权方法、许可授权方法、软件授权装置、计算机设备、存储介质和计算机程序产品。所述方法包括:基于预设的密钥对待授权内容和进行加密和签名,生成许可请求文件;对许可请求文件进行验证和授权,以获取服务器生成的许可授权文件;利用密钥对许可授权文件进行验证,在许可授权文件验证通过的情况下,利用许可授权文件对客户端中的软件组件进行授权。这样,利用预设的密钥分别授权的过程文件进行加密,能够保证授权的过程文件不容易被泄露和篡改,提升了授权的过程文件的有效性和安全性。

Description

软件授权方法、许可授权方法、装置、设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种软件授权方法、许可授权方法、软件授权装置、计算机设备、存储介质和计算机程序产品。
背景技术
近年来随着互联网技术的发展,许多功能软件如雨后春笋般涌现,为了保护软件开发商的权益和用户的使用安全,需要对功能软件进行授权,即用户需要先获取软件应用的授权,才能正常使用软件。
在传统技术中,一般是通过软件序列号方式授权或者通过标识码认证来授权。其中,软件序列号授权是指软件供应商预定义授权码,用户通过购买等方式以获得授权码,并在软件中输入授权码进行验证,以获得软件授权。而标识码认证是指将客户端中的标识码作为客户端的特定标识,并通过客户端保存在授权认证文件中的授权认证密文来授权软件。
然而,在现实使用过程中,软件序列号容易泄漏,无法避免一次购买被多次使用的情况,以及上述两种方法的安全性均不高,并未对软件序列号或者客户端标识码生成保护机制,容易被伪造,从而破译软件的授权。
发明内容
基于此,有必要针对上述技术问题,提供一种能够保证授权的过程文件不易被泄露和篡改的软件授权方法、许可授权方法、软件授权装置、计算机设备、存储介质和计算机程序产品。
第一方面,本申请提供了一种软件授权方法,所述方法应用于客户端。所述方法包括:
基于预设的密钥对待授权内容和进行加密和签名,生成许可请求文件;
通过一服务器对所述许可请求文件进行验证和授权,以获取所述服务器生成的许可授权文件;
利用所述密钥对所述许可授权文件进行验证,在所述许可授权文件验证通过的情况下,利用所述许可授权文件对所述客户端中的软件组件进行授权。
在其中一个实施例中,所述基于预设的密钥对待授权内容和进行加密和签名,生成许可请求文件,包括:
基于预设的第一密钥的私钥对所述待授权内容进行加密,得到加密的待授权内容;
对所述加密的待授权内容进行签名,得到第一签名值;
基于所述加密的待授权内容和所述第一签名值,生成所述许可请求文件。
在其中一个实施例中,所述基于所述加密的待授权内容和所述第一签名值,生成所述许可请求文件,包括:
基于预设的第二密钥的公钥加密所述第一密钥的公钥,得到加密的第一密钥的公钥;
对所述加密的第一密钥的公钥进行签名,得到第二签名值;
对所述加密的第一密钥的公钥、所述加密的待授权内容、所述第一签名值和所述第二签名值进行数据编码,生成所述许可请求文件。
在其中一个实施例中,所述许可授权文件包括加密的授权内容和所述加密的授权内容的签名值;
所述利用所述密钥对所述许可授权文件进行验证,包括:
对所述加密的授权内容进行签名,得到第三签名值;以及
基于所述第一密钥的私钥对所述加密的授权内容的签名值进行解密,得到第四签名值;
在将所述第三签名值和所述第四签名值进行比对之后,得到对应的验证结果。
在其中一个实施例中,若所述第三签名值和所述第四签名值比对相同,则所述验证结果为验证成功;若所述第三签名值和所述第四签名值比对不相同,则所述验证结果为验证失败;所述授权内容包括许可授权的组件信息和容量信息;
所述在所述许可授权文件验证通过的情况下,利用所述许可授权文件对所述客户端中的软件组件进行授权,包括:
若所述验证结果为验证成功,则基于所述第一密钥的私钥解密所述加密的授权内容,得到解密后的授权内容;
根据所述解密后的授权内容中的所述组件信息和所述容量信息,对所述软件组件进行授权。
在其中一个实施例中,所述许可授权文件还包括对应于所述软件授权方法的版本信息;
所述在利用所述密钥对所述加密的授权内容的签名值进行验证,得到验证结果之前,还包括:
基于所述客户端的当前版本,确定是否支持授权于所述版本信息对应的许可授权文件。
第二方面,本申请提供了一种许可授权方法,所述方法应用于服务器。所述方法包括:
获取许可请求文件;所述许可请求文件为利用如上所述的软件授权方法得到;
对所述许可请求文件进行验证,并在所述许可请求文件验证通过的情况下,基于所述许可请求文件表征的待授权内容确定授权内容;
基于所述许可请求文件、与所述许可请求文件相对应的密钥和所述授权内容,生成许可授权文件,以对客户端中的软件组件进行授权。
在其中一个实施例中,所述对所述许可请求文件进行验证,包括:
对所述许可请求文件中加密的第一密钥的公钥进行签名,得到第五签名值;以及
基于与所述许可请求文件相对应的第二密钥的私钥对所述加密的第一密钥的公钥的第二签名值进行解密,得到解密后的第二签名值;
将所述第五签名值和所述解密后的第二签名值进行比对,得到第一验证结果。
在其中一个实施例中,所述在得到第一验证结果之后,还包括:
基于所述第二密钥的私钥对所述加密的第一密钥的公钥进行解密,得到解密后的第一密钥的公钥;
所述对所述许可请求文件进行验证,还包括:
对所述许可请求文件中加密的待授权内容进行签名,得到第六签名值;以及
基于所述解密后的第一密钥的公钥对所述加密的待授权内容的第一签名值进行解密,得到解密后的第一签名值;
将所述第六签名值和所述解密后的第一签名值进行比对,得到第二验证结果。
在其中一个实施例中,所述在得到第二验证结果之后,还包括:
基于所述解密后的第一密钥的公钥对所述加密的待授权内容进行解密,得到解密后的待授权内容;
所述在所述许可请求文件验证通过的情况下,基于所述许可请求文件表征的待授权内容确定授权内容,包括:
若所述第一验证结果和所述第二验证结果均验证成功,则基于所述待授权内容确定许可授权的组件信息和容量信息。
在其中一个实施例中,所述基于所述许可请求文件、与所述许可请求文件相对应的密钥和所述授权内容,生成许可授权文件,包括:
基于所述软件授权方法的版本信息,确定版本标号;以及
利用所述解密后的第一密钥的公钥对所述组件信息和所述容量信息进行加密,得到加密后的授权内容;
对所述加密后的授权内容进行签名,得到所述加密后的授权内容的签名值;
对所述版本标号、所述加密后的授权内容和所述加密后的授权内容的签名值进行数据编码,生成所述许可授权文件。
第三方面,本申请还提供了一种软件授权装置。所述装置包括:
请求文件生成模块,用于基于预设的密钥的公钥和私钥对待授权内容进行加密和签名,生成许可请求文件;
授权文件生成模块,用于通过一服务器对所述许可请求文件进行验证和授权,以获取所述服务器生成的许可授权文件;
验证授权模块,用于利用所述密钥对所述许可授权文件进行验证,在所述许可授权文件验证通过的情况下,利用所述许可授权文件对所述客户端中的软件组件进行授权。
第四方面,本申请还提供了一种电子设备。所述电子设备包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令,以实现如上所述的软件授权方法和/或许可授权方法。
第五方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质中包括程序数据,当所述程序数据由电子设备的处理器执行时,使得所述电子设备能够执行如上所述的软件授权方法和/或许可授权方法。
第六方面,本申请还提供了一种计算机程序产品。所述计算机程序产品中包括程序指令,所述程序指令被电子设备的处理器执行时,使得所述电子设备能够执行如上所述的软件授权方法和/或许可授权方法。
上述软件授权方法、许可授权方法、软件授权装置、计算机设备、存储介质和计算机程序产品,首先,通过在客户端中基于预设的密钥对待授权内容和进行加密和签名,生成许可请求文件;然后,再通过在服务器中对许可请求文件进行验证和授权,以获取服务器生成的许可授权文件;最后,通过客户端利用密钥对许可授权文件进行验证,在许可授权文件验证通过的情况下,利用许可授权文件对客户端中的软件组件进行授权。这样,一方面,利用预设的密钥分别授权的过程文件进行加密,能够保证授权的过程文件不容易被泄露和篡改,进而避免了由一次软件序列号的购买而软件被多个设备使用的情况;另一方面,通过服务器端对许可请求文件进行验证,以及客户端对许可授权文件进行验证,以能够在授权的过程文件中进行双向验证,从而提升了授权的过程文件的有效性和安全性。
附图说明
图1是根据一示例性实施例示出的一种软件授权方法的应用环境图;
图2是根据一示例性实施例示出的一种软件授权方法的流程示意图;
图3是根据一示例性实施例示出的一种生成许可请求文件的流程示意图;
图4是根据一示例性实施例示出的另一种生成许可请求文件的流程示意图;
图5是根据一示例性实施例示出的一种对许可授权文件进行验证的流程示意图;
图6是根据一示例性实施例示出的一种对软件组件进行授权的流程示意图;
图7是根据一示例性实施例示出的一种许可授权方法的流程示意图;
图8是根据一示例性实施例示出的一种生成许可授权文件的流程示意图;
图9是根据一示例性实施例示出的另一种软件授权方法的流程示意图;
图10是根据一示例性实施例示出的一种软件授权装置框图;
图11是根据一示例性实施例示出的一种用于软件授权装置的电子设备的框图;
图12是根据一示例性实施例示出的一种用于软件授权装置的计算机可读存储介质的框图;
图13是根据一示例性实施例示出的一种用于软件授权装置的计算机程序产品的框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
另外,本申请中尽管多次采用术语“第一”、“第二”等来描述各种操作(或各种阈值或各种应用或各种指令或各种元件)等,不过这些操作(或阈值或应用或指令或元件)不应受这些术语的限制。这些术语只是用于区分一个操作(或阈值或应用或指令或元件)和另一个操作(或阈值或应用或指令或元件)。例如,第一签名值可以被称为第二签名值,第二签名值也可以被称为第一签名值,而不脱离本申请的范围,第一签名值和第二签名值都是对相应文件进行签名的签名值,只是二者并不是相同的签名值而已。
本申请实施例提供的软件授权方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。
在一实施例中,参考图1,终端102首先基于预设的密钥对待授权内容和进行加密和签名,生成许可请求文件;然后,通过服务器104对许可请求文件进行验证和授权,以获取服务器生成的许可授权文件;最后,终端102利用密钥对许可授权文件进行验证,在许可授权文件验证通过的情况下,利用许可授权文件对客户端中的软件组件进行授权。
在一些实施例中,终端102(如移动终端、固定终端)可以以各种形式来实施。其中,终端102可为包括诸如移动电话、智能电话、笔记本电脑、便携式手持式设备、个人数字助理(PDA,Personal Digital Assistant)、平板电脑(PAD)等等的可以基于预设的密钥生成许可请求文件,以及利用许可授权文件对软件组件进行授权的移动终端,终端102也可以是数字广播发送器、数字TV、台式计算机、固式计算机等等的可以基于预设的密钥生成许可请求文件,以及利用许可授权文件对软件组件进行授权的固定终端。下面,假设终端102是固定终端。然而,本领域技术人员将理解的是,若有特别用于移动目的的操作或者元件,根据本申请公开的实施方式的构造也能够应用于移动类型的终端102。
在某些实施例中,软件授权运行的软件组件可以加载正在被执行的可以包括各种附加服务器应用和/或中间层应用中的任何一种,如包括HTTP(超文本传输协议)、FTP(文件传输协议)、CGI(通用网关界面)、RDBMS(关系型数据库管理系统)等。
在一些实施例中,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。服务器104可以适于运行提供前述公开中描述的终端102的一个或多个应用服务或软件组件。
在某些实施例中,服务器104运行的操作系统可以包括各种版本的MicrosoftApple/>和/或Linux操作系统、各种商用或类/>操作系统(包括但不限于各种GNU/Linux操作系统、Google/>OS等)和/或移动操作系统,诸如/>Phone、/>OS、/>OS、/>OS操作系统,以及其它操作系统。
在一个实施例中,如图2所示,提供了一种软件授权方法,以该方法应用于图1中的终端102为例进行说明,其中,终端102为应用软件的客户端,且终端102可以是一种应用软件的客户端,也可以是多个应用软件的客户端,在客户端中包括有多个和多种可以被服务器104授权使用的软件组件,该方法包括以下步骤:
步骤S11,基于预设的密钥对待授权内容和进行加密和签名,生成许可请求文件。
其中,待授权内容是指在客户端中用户期望的可以被服务器授权使用的有软件组件,该期望授权的软件组件可以有一个也可以有多个,可以是一种也可以说是多种。
其中,客户端中预设的密钥是指客户端自身生成的一对或者多对非对称密钥。该秘钥包括有私钥和公钥,其私钥设置于客户端或者服务器中的一者,秘钥的公钥设置于客户端或者服务器中的另一者,以能够在后续通过秘钥的私钥和公钥对授权的过程文件中进行验证。
其中,许可请求文件是指客户端向服务器发送的请求许可授权的证书文件。其中,在证书文件中包括有待授权内容和待授权内容的签名值,密钥和秘钥的签名值。
在一些实施例中,在证书文件中还可以包括客户端所在设备的设备标识、软件名称、软件有效期、软件功能的一个或多个。进一步地,设备标识可以包括设备的MAC地址、设备的SN(SerialNumber)码等可以确定设备的唯一身份的标识信息,本申请实施例中对设备标识不做具体限定。
步骤S12,通过一服务器对许可请求文件进行验证和授权,以获取服务器生成的许可授权文件。
其中,服务器为终端客户端对应的软件供应商,其可以授权客户端中的应用软件的使用和运行。
在一些实施例中,服务器可以是位于公共网络或者内网环境中的license服务器、云端服务器或者数据处理平台等可以对授权的过程文件进行验证,并根据验证结果生成相应的许可授权文件。
其中,许可授权文件是指服务器许可或禁止客户端使用至少应用软件的功能证书文件。
在一些实施例中,许可授权文件包括有至少一个信息项,该信息项至少包括:客户端所在设备的设备标识、软件名称、服务器确定的授权内容、授权内容的有效期、软件功能和软件版本等等。
在一种具体实现中,终端将许可请求文件发送至与软件授权对应的服务器,服务器对许可请求文件中的内容依次进行解密、验证,在文件验证成功之后,服务器根据许可请求文件中用户期望的待授权内容生成相应的许可授权文件,从而终端再从服务器中获取到用于授权应用软件的许可授权文件。
步骤S13,利用密钥对许可授权文件进行验证,在许可授权文件验证通过的情况下,利用许可授权文件对客户端中的软件组件进行授权。
在一种具体实现中,终端首先利用与预先配置的与许可授权文件相对应的秘钥对许可授权文件中的内容依次进行解密,然后再对解密的内容进行验证,在内容文件验证成功之后,终端根据许可授权文件中服务器决定的授权内容对相应的客户端中的软件组件进行授权。
上述软件授权方法中,首先,通过在客户端中基于预设的密钥对待授权内容和进行加密和签名,生成许可请求文件;然后,再通过在服务器中对许可请求文件进行验证和授权,以获取服务器生成的许可授权文件;最后,通过客户端利用密钥对许可授权文件进行验证,在许可授权文件验证通过的情况下,利用许可授权文件对客户端中的软件组件进行授权。这样,一方面,利用预设的密钥分别授权的过程文件进行加密,能够保证授权的过程文件不容易被泄露和篡改,进而避免了由一次软件序列号的购买而软件被多个设备使用的情况;另一方面,通过服务器端对许可请求文件进行验证,以及客户端对许可授权文件进行验证,以能够在授权的过程文件中进行双向验证,从而提升了授权的过程文件的有效性和安全性。
本领域技术人员可以理解地,在具体实施方式的上述方法中,所揭露的方法可以通过更为具体的方式以实现。例如,上述的软件授权过程的实施方式仅仅是一种示意性的描述。
示例性地,服务器对许可请求文件进行验证和授权,并生成许可授权文件的过程;或者客户端对许可授权文件进行验证,并在验证通过的情况下,对软件组件进行授权的过程等等,其仅仅为一种集合的方式,实际实现时可以有另外的划分方式,例如服务器对许可请求文件进行验证的方法和客户端对许可授权文件进行验证的方法可以结合或者可以集合到另一个系统中,或一些特征可以忽略,或不执行。
在更具体的实施方式中,在客户端对客户端中的软件组件进行授权的过程中,还可以包括客户端需要利用各种秘钥对许可请求文件进行加密和签名。随后,服务器再基于对应的各种秘钥对许可授权文件进行解密、再加密和签名的过程。
在一示例性实施例中,参阅图3,图3为本申请中生成许可请求文件一实施例的流程示意图。在步骤S11中,客户端基于预设的密钥对待授权内容和进行加密和签名,生成许可请求文件的过程,具体可以通过以下方式实现:
步骤S111,基于预设的第一密钥的私钥对待授权内容进行加密,得到加密的待授权内容。
在一实施例中,在客户端中预先设置有第一秘钥的私钥,第一秘钥的公钥设置在对应服务器中。
其中,第一密钥为一非对称密钥,其由客户端生成,包含有私钥和公钥。私钥由客户端保管,用于待授权内容进行加密,以在后续生成许可请求文件;公钥由客户端分发给服务器,用于对许可请求文件中的待授权文件进行解密。
其中,本申请可以使用RSA加密演算法密钥,具体可以使用较长位数的RSA密钥,例如,使用1024个二进制位或者2048个二进制位的RSA密钥,以提高加密可靠性。另外,本申请可以在每次生成许可请求文件时,使用不同的非对称密钥,从而防止许可证文件被盗用。
步骤S112,对加密的待授权内容进行签名,得到第一签名值。
在一实施例中,客户端在对待授权内容加密之后,可以利用信息摘要算法(Message Digest Method)、MD5算法对待授权内容进行哈希运算,得到哈希运算值,然后再对哈希运算值进行编码(如,base64位编码),从而得到待授权内容的摘要值,即第一签名值。
步骤S113,基于加密的待授权内容和第一签名值,生成许可请求文件。
在一实施例中,生成的许可请求文件可以仅包括加密的待授权内容,和加密的待授权内容的第一签名值,然后,服务器根据这两者确定出对应的最终授权内容。
在另一实施例中,生成的许可请求文件中除了加密的待授权内容,和加密的待授权内容的第一签名值之外,还可以包括对应的秘钥及其签名值,以使得传输给服务器的许可请求文件的安全性更高、不易被篡改。
在一示例性实施例中,参阅图4,图4为本申请中生成许可请求文件另一实施例的流程示意图。在步骤S113中,客户端基于加密的待授权内容和第一签名值,生成许可请求文件的过程,具体可以通过以下方式实现:
步骤a1,基于预设的第二密钥的公钥加密第一密钥的公钥,得到加密的第一密钥的公钥。
在一实施例中,客户端中预先设置的第二秘钥与第一秘钥相似,均为一种非对称密钥。
其中,第二密钥由服务器生成,包含有私钥和公钥。公钥由服务器分发给客户端,用于对客户端生成的第一密钥的公钥进行加密,得到加密的第一密钥的公钥。私钥由服务器保管,用于后续对加密的第一密钥的公钥进行解密。
步骤a2:对加密的第一密钥的公钥进行签名,得到第二签名值。
在一实施例中,客户端在对第一密钥的公钥加密之后,可以利用信息摘要算法对加密的第一密钥的公钥进行哈希运算,从而得到加密的第一密钥的公钥的摘要值,即第二签名值。
步骤a3:对加密的第一密钥的公钥、加密的待授权内容、第一签名值和第二签名值进行数据编码,生成许可请求文件。
在一实施例中,客户端先将加密的第一密钥的公钥、第二签名值、加密的待授权内容和第一签名值按照顺序拼接在一起,然后,客户端再通过预先设置的编码方案对拼接后的数据集合进行编码,以生成许可请求文件。
在一些实施例中,编码方案可以为Base32编码方式或者Base64编码方式,即客户端基于32个或者64个可打印字符来表示编码的二进制数据(二进制数据包括加密的第一密钥的公钥、第二签名值、加密的待授权内容和第一签名值)。其中,Base32编码或者Base64编码从二进制数据编码到字符的过程,可用于在超文本传输协议(Hyper Text TransferProtocol,HTTP)环境下传递较长的标识信息。
在一些实施例中,在生成的许可请求文件中还可以包括客户端所在设备的设备标识、软件名称、软件有效期、软件功能的一个或多个。进一步地,设备标识可以包括设备的MAC地址、设备的SN(SerialNumber)码等可以确定设备的唯一身份的标识信息。
因此,在生成的许可请求文件中,一方面对待授权内容进行加密和生成对应的签名值,可以对待授权内容进行保护、防止被泄露;另一方面,还通过客户端生成的秘钥对服务器生成的秘钥进行加密和生成对应的签名值,能够在即使客户端的秘钥被泄露的情况下,若没有服务器的秘钥,也无法得到许可请求文件中的数据内容,因而大大提升了许可请求文件的安全性和有效性。
在一种具体实现中,客户端在生成许可请求文件之后,客户端将许可请求文件发送至与软件授权对应的服务器,服务器对许可请求文件中的内容依次进行解密、验证,在文件验证成功之后,服务器根据许可请求文件中用户期望的待授权内容生成相应的许可授权文件,从而终端再从服务器中获取到用于授权应用软件的许可授权文件。
在一实施例中,许可授权文件中包括加密的授权内容和加密的授权内容的签名值。
其中,加密的授权内容为服务器将确定授权的软件组件进行加密后的数据内容;加密的授权内容的签名值为服务器对确定授权的软件组件进行签名后的摘要值。
在一示例性实施例中,参阅图5,图5为本申请中对许可授权文件进行验证一实施例的流程示意图。在步骤S13中,客户端利用密钥对许可授权文件进行验证的过程,具体可以通过以下方式实现:
步骤S131,对加密的授权内容进行签名,得到第三签名值;以及基于第一密钥的私钥对加密的授权内容的签名值进行解密,得到第四签名值。
在一实施例中,客户端在后的服务器发送的许可授权文件之后,通过与许可授权文件编码方式对应的解码方式,对许可授权文件进行解码,以得到许可授权文件中的内容。
例如,服务器通过Base32编码方式将加密的授权内容和加密的授权内容的签名值等其他内容进行编码,以得到许可授权文件,然后,客户端也通过Base32编码方式将许可授权文件进行解码。
在一实施例中,客户端在获取到许可授权文件中加密的授权内容和加密的授权内容的签名值之后,客户端利用信息摘要算法对加密的授权内容进行哈希运算,得到加密的授权内容对应的第三签名值;以及基于自身生成的第一密钥的私钥对由第一密钥的公钥加密的授权内容的签名值进行解密,得到对应的第四签名值。
步骤S132,在将第三签名值和第四签名值进行比对之后,得到对应的验证结果。
在一实施例中,客户端将加密的授权内容对应的第三签名值和解密的授权内容对应的第四签名值进行比对,得到对比结果,即对应的验证结果。
其中,若第三签名值和第四签名值比对相同,则验证结果为验证成功,由此客户端可以根据解密的授权内容对客户端中的软件组件进行授权。若第三签名值和第四签名值比对不相同,则验证结果为验证失败,由此客户端可以判定出服务器发送的许可授权文件已经被篡改或者被破坏,客户端需要做进一步进行排查和处理。
在一实施例中,许可授权文件中还包括对应于软件授权方法的版本信息。
其中,软件授权方法的版本信息包括一个固定的版本编号。即,服务器将授权办法的版本编号添加到生成的许可授权文件中,其可以任意数字起始的递增的数字作为版本编号,授权办法的版本信息用于区分不同版本的授权方案。
在一实施例中,客户端在利用密钥对加密的授权内容的签名值进行验证,得到验证结果之前,还包括:客户端基于客户端的当前版本,确定是否支持授权于版本信息对应的许可授权文件。
在一实施例中,服务器生成的许可授权文件中的授权内容包括有许可授权的组件信息和容量信息。
其中,许可授权的组件信息是指服务器授权客户端中可以使用和运行的软件组件。许可授权的容量信息是指服务器授权客户端中可以使用和运行的软件组件的数量。
在一示例性实施例中,参阅图6,图6为本申请中对软件组件进行授权一实施例的流程示意图。在步骤S13中,客户端根据解密后的授权内容中的组件信息和容量信息,对软件组件进行授权的过程,具体可以通过以下方式实现:
步骤S133,若验证结果为验证成功,则基于第一密钥的私钥解密加密的授权内容,得到解密后的授权内容。
在一实施例中,客户端在将第三签名值和第四签名值进行比对,且比对相同之后,客户端利用预先部署好的第一密钥的私钥将由服务器中的第一秘钥的公钥加密的授权内容进行解密,得到授权许可文件中解密后的授权内容。
步骤S134,根据解密后的授权内容中的组件信息和容量信息,对软件组件进行授权。
在一实施例中,客户端根据解密后的授权内容中组件信息和容量信息所表征的授权信息,对客户端中对应授权信息的软件组件进行授权。
上述的软件授权方法,一方面,利用预设的密钥分别授权的过程文件进行加密,能够保证授权的过程文件不容易被泄露和篡改,进而避免了由一次软件序列号的购买而软件被多个设备使用的情况;另一方面,通过服务器端对许可请求文件进行验证,以及客户端对许可授权文件进行验证,以能够在授权的过程文件中进行双向验证,从而提升了授权的过程文件的有效性和安全性。
在一个实施例中,如图7所示,提供了一种许可授权方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
步骤S21:获取许可请求文件。
其中,服务器获取的许可请求文件为上述实施例中的软件授权方法的客户端生成的,具体生成过程和方式这里不做赘述。
步骤S22:对许可请求文件进行验证,并在许可请求文件验证通过的情况下,基于许可请求文件表征的待授权内容确定授权内容。
在一个实施例中,服务器对许可请求文件进行验证包括:先对许可请求文件中加密的第一密钥的公钥进行签名,得到第五签名值;以及基于与许可请求文件相对应的第二密钥的私钥对加密的第一密钥的公钥的第二签名值进行解密,得到解密后的第二签名值;然后,服务器再将第五签名值和解密后的第二签名值进行比对,得到第一验证结果。
进一步地,服务器在得到第一验证结果之后,还包括:基于第二密钥的私钥对加密的第一密钥的公钥进行解密,得到解密后的第一密钥的公钥。
在另一个实施例中,服务器对许可请求文件进行验证,还包括:对许可请求文件中加密的待授权内容进行签名,得到第六签名值;以及基于解密后的第一密钥的公钥对加密的待授权内容的第一签名值进行解密,得到解密后的第一签名值;将第六签名值和解密后的第一签名值进行比对,得到第二验证结果。
进一步地,服务器在得到第二验证结果之后,还包括:基于解密后的第一密钥的公钥对加密的待授权内容进行解密,得到解密后的待授权内容。
其中,服务器对密钥进行签名、对密钥的签名值进行解密、将两种签名值进行比对和对密钥进行解密的过程和方式,与上述实施例中的软件授权方法中的相应步骤相似,这里不再赘述。
在一个实施例中,若第一验证结果和第二验证结果均验证成功,则服务器基于待授权内容确定许可授权的组件信息和容量信息。
其中,许可授权的组件信息和容量信息至少包括:授权组件、授权组件数量、授权组件的大小(如,运行的大小)、授权用户名、授权特性、授权类型和预先设定的授权证书的有效期信息。授权用户名可以根据软件产品的厂家来设定,如xx公司产品,其授权用户名即为xx公司。授权特性的含义是,假设软件共有10个特性,对待授权机器可授权5个特性。其中,授权类型包括临时授权和正式授权。
步骤S23:基于许可请求文件、与许可请求文件相对应的密钥和授权内容,生成许可授权文件,以对客户端中的软件组件进行授权。
在一示例性实施例中,参阅图8,图8为本申请中生成许可授权文件一实施例的流程示意图。在步骤S23中,服务器基于许可请求文件、与许可请求文件相对应的密钥和授权内容,生成许可授权文件的过程,具体可以通过以下方式实现:
步骤S231,基于软件授权方法的版本信息,确定版本标号;以及利用解密后的第一密钥的公钥对组件信息和容量信息进行加密,得到加密后的授权内容。
步骤S232,对加密后的授权内容进行签名,得到加密后的授权内容的签名值。
在一实施例中,服务器根据选择的软件授权方法的版本信息,确定该版本信息唯一对应的一个版本标号。
步骤S233,对版本标号、加密后的授权内容和加密后的授权内容的签名值进行数据编码,生成许可授权文件。
其中,服务器对授权过程文件进行加密、对授权过程文件进行签名、将授权过程文件进行数据编码的过程和方式,与上述实施例中的软件授权方法中的相应步骤相似,这里不再赘述。
上述的许可授权方法,一方面,利用预设的密钥分别对授权的过程文件进行加密,能够保证授权的过程文件不容易被泄露和篡改,进而避免了由一次软件序列号的购买而软件被多个设备使用的情况;另一方面,通过服务器端对许可请求文件进行验证,以及客户端对许可授权文件进行验证,以能够在授权的过程文件中进行双向验证,从而提升了授权的过程文件的有效性和安全性。
为了更清晰阐明本公开实施例提供的软件授权方法,以下以一个具体的实施例对该软件授权方法进行具体说明。在一示例性实施例中,参考图9,图9为根据另一示例性实施例示出的一种软件授权方法的流程图,具体包括如下内容:
步骤S31:软件厂商预先生成第一秘钥,软件客户端在安装时生成第二密钥。
其中,第一秘钥包括Mpub、Mprv。其中,Mpub为第一密钥的公钥,Mprv为第一密钥的私钥。软件客户端在安装时或其他适宜时机生成的第二密钥包括Spub、Sprv。其中,Spub为第二密钥的公钥,Sprv为第二密钥的私钥。
步骤S32:软件客户端根据第一秘钥和第二秘钥对待授权组件生成授权申请文件。
作为示例,假设软件客户端对要授权的组件A生成容量50的授权申请文件,则授权申请文件的内容如下:
BASE36(Encrypt(Spub,Mpub)+Digest(Spub,Sprv)+Encrypt(Encode(组件A,50),Sprv)+Digest(Encrypt(Encode(组件A,50)),Sprv))
其中,Encyrpt(A,B)表示以B作为密钥加密A。
其中,Digest(A,B)表示以B作为密钥生成加密的HMAC(A),HMAC是一种哈希算法,例如SHA1,SHA256,MD5。
其中,Encode(A,B)表示编码形如A=B的内容,例如可采用A=B的字符串形式作为编码结果。
其中,BASE36(A)表示使用BASE36编码输人的数据。
其中,A+B+C+D表示按顺序拼接A,B,C,D的数据。
步骤S33:软件厂商计算出授权申请文件中携带的第二密钥的公钥和期望许可内容。
作为示例,若组件A的数量为50,则软件厂商通过如下所述的公式计算出授权申请文件中携带的Spub和期望许可内容。
Psub=Decrypt(Encrypt(Psub,Mpub),Mprv)
其中,(组件A,50)=Decode(Decyprt(Encode(组件A,50)),Spub)
其中,Decrypt(A,B)表示以B为密钥的解密A。
步骤S34:软件厂商生成授权激活文件,以对软件客户端中的组件进行授权。
作为示例,假设软件厂商想要授权(组件A,50),则其可以通过如下公式生成授权激活文件
BASE36(Version_Scheme+Encrypt(Encode(组件A,50),Spub)+
Digest(Encrypt(Encode(组件A,50),Spub),Mprv))
其中,Version_Scheme为授权办法的版本信息,其方便为后期更换其他加密方案或者软件授权方案。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的软件授权方法的软件授权装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个软件授权装置实施例中的具体限定可以参见上文中对于软件授权方法的限定,在此不再赘述。
在一个实施例中,如图10所示,提供了一种软件授权装置10,包括:请求文件生成模块11、授权文件生成模块12和验证授权模块13,其中:
请求文件生成模块11,用于基于预设的密钥的公钥和私钥对待授权内容进行加密和签名,生成许可请求文件。
授权文件生成模块12,用于通过一服务器对所述许可请求文件进行验证和授权,以获取所述服务器生成的许可授权文件。
验证授权模块13,用于利用所述密钥对所述许可授权文件进行验证,在所述许可授权文件验证通过的情况下,利用所述许可授权文件对所述客户端中的软件组件进行授权。
进一步地,请求文件生成模块11,还用于基于预设的第一密钥的私钥对所述待授权内容进行加密,得到加密的待授权内容;
对所述加密的待授权内容进行签名,得到第一签名值;
基于所述加密的待授权内容和所述第一签名值,生成所述许可请求文件。
进一步地,请求文件生成模块11,还用于基于预设的第二密钥的公钥加密所述第一密钥的公钥,得到加密的第一密钥的公钥;
对所述加密的第一密钥的公钥进行签名,得到第二签名值;
对所述加密的第一密钥的公钥、所述加密的待授权内容、所述第一签名值和所述第二签名值进行数据编码,生成所述许可请求文件。
进一步地,授权文件生成模块12,还用于获取许可请求文件;
对所述许可请求文件进行验证,并在所述许可请求文件验证通过的情况下,基于所述许可请求文件表征的待授权内容确定授权内容;
基于所述许可请求文件、与所述许可请求文件相对应的密钥和所述授权内容,生成许可授权文件,以对客户端中的软件组件进行授权。
进一步地,授权文件生成模块12,还用于对所述许可请求文件中加密的第一密钥的公钥进行签名,得到第五签名值;以及
基于与所述许可请求文件相对应的第二密钥的私钥对所述加密的第一密钥的公钥的第二签名值进行解密,得到解密后的第二签名值;
将所述第五签名值和所述解密后的第二签名值进行比对,得到第一验证结果。
进一步地,授权文件生成模块12,还用于基于所述第二密钥的私钥对所述加密的第一密钥的公钥进行解密,得到解密后的第一密钥的公钥;
对所述许可请求文件中加密的待授权内容进行签名,得到第六签名值;以及
基于所述解密后的第一密钥的公钥对所述加密的待授权内容的第一签名值进行解密,得到解密后的第一签名值;
将所述第六签名值和所述解密后的第一签名值进行比对,得到第二验证结果。
进一步地,授权文件生成模块12,还用于基于所述解密后的第一密钥的公钥对所述加密的待授权内容进行解密,得到解密后的待授权内容;
若所述第一验证结果和所述第二验证结果均验证成功,则基于所述待授权内容确定许可授权的组件信息和容量信息。
进一步地,授权文件生成模块12,还用于基于所述软件授权方法的版本信息,确定版本标号;以及
利用所述解密后的第一密钥的公钥对所述组件信息和所述容量信息进行加密,得到加密后的授权内容;
对所述加密后的授权内容进行签名,得到所述加密后的授权内容的签名值;
对所述版本标号、所述加密后的授权内容和所述加密后的授权内容的签名值进行数据编码,生成所述许可授权文件。
进一步地,验证授权模块13,还用于对所述加密的授权内容进行签名,得到第三签名值;以及
基于所述第一密钥的私钥对所述加密的授权内容的签名值进行解密,得到第四签名值;
在将所述第三签名值和所述第四签名值进行比对之后,得到对应的验证结果。
进一步地,验证授权模块13,还用于若所述验证结果为验证成功,则基于所述第一密钥的私钥解密所述加密的授权内容,得到解密后的授权内容;
根据所述解密后的授权内容中的所述组件信息和所述容量信息,对所述软件组件进行授权。
进一步地,验证授权模块13,还用于基于所述客户端的当前版本,确定是否支持授权于所述版本信息对应的许可授权文件。
上述用户列表的更新装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图11是根据一示例性实施例示出的一种用于软件授权方法和/或许可授权方法的电子设备20的框图。例如,电子设备20可以为服务器。参照图11,电子设备20包括处理组件21,其进一步包括一个或多个处理器,以及由存储器22所代表的存储器资源,用于存储可由处理组件21的执行的可执行指令,例如应用程序。存储器22中存储的应用程序可以包括一个或一个以上的每一个对应于一组可执行指令的模块。此外,处理组件21被配置为执行可执行指令,以执行上述方法。
在一实施例中,电子设备20为服务器,该服务器中的计算系统可以运行一个或多个操作系统,包括以上讨论的任何操作系统以及任何商用的服务器操作系统。该服务器还可以运行各种附加服务器应用和/或中间层应用中的任何一种,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(通用网关界面)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于可从(国际商业机器)等商购获得的数据库服务器。
在一实施例中,处理组件21通常控制电子设备20的整体操作,诸如与显示、数据处理、数据通信和记录操作相关联的操作。处理组件21可以包括一个或多个处理器来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件21可以包括一个或多个模块,便于处理组件21和其他组件之间的交互。例如,处理组件21可以包括多媒体模块,以方便利用多媒体组件控制用户终端和处理组件21之间的交互。
在一实施例中,处理组件21中的处理器还可以称为CPU(Central ProcessingUnit,中央处理单元)。处理器可能是一种电子芯片,具有信号的处理能力。处理器还可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。另外,处理器可以由集成电路芯片共同实现。
在一实施例中,存储器22被配置为存储各种类型的数据以支持在电子设备20的操作。这些数据的示例包括用于在电子设备20上操作的任何应用程序或方法的指令、采集数据、消息、图片、视频等。存储器22可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、快闪存储器、磁盘、光盘或石墨烯存储器。
在一实施例中,存储器22可以为内存条、TF卡等,可以存储电子设备20中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在在一实施例中,存储器22中。它根据处理器指定的位置存入和取出信息。有了在一实施例中,存储器22,电子设备20才有记忆功能,才能保证正常工作。电子设备20的在一实施例中,存储器22按用途可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。外存通常是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。
电子设备20还可以包括:电源组件23被配置为执行电子设备20的电源管理,有线或无线网络接口24被配置为将电子设备20连接到网络,和输入输出(I/O)接口25。电子设备20可以操作基于存储在存储器22的操作系统,例如Windows Server,Mac OS X,Unix,Linux,FreeBSD或类似。
在一实施例中,电源组件23为电子设备20的各种组件提供电力。电源组件23可以包括电源管理系统,一个或多个电源,及其他与为电子设备20生成、管理和分配电力相关联的组件。
在一实施例中,有线或无线网络接口24被配置为便于电子设备20和其他设备之间有线或无线方式的通信。电子设备20可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或5G),或它们的组合。
在一个示例性实施例中,有线或无线网络接口24经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,有线或无线网络接口24还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在一实施例中,输入输出(I/O)接口25为处理组件21和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
图12是根据一示例性实施例示出的一种用于软件授权方法和/或许可授权方法的计算机可读存储介质30的框图。该计算机可读存储介质30中存储有能够实现上述软件授权方法和/或许可授权方法的程序数据31。
在本申请各个实施例中的各功能单元集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在计算机可读存储介质30中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机可读存储介质30在一个程序数据31中,包括若干指令用以使得一台计算机设备(可以是个人计算机,系统服务器,或者网络设备等)、电子设备(例如MP3、MP4等,也可以是手机、平板电脑、可穿戴设备等智能终端,也可以是台式电脑等)或者处理器(processor)以执行本申请各个实施方式方法的全部或部分步骤。
图13是根据一示例性实施例示出的一种用于软件授权方法和/或许可授权方法的计算机程序产品40的框图。该计算机程序产品40中包括程序指令41,上述程序数据可由电子设备20的处理器执行以完成上述方法。
本领域内的技术人员应明白,本申请的实施例可提供为软件授权方法和/或许可授权方法、软件授权装置10、电子设备20、计算机可读存储介质30或计算机程序产品40。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机程序指令41(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品40的形式。
本申请是参照根据本申请实施例的软件授权方法和/或许可授权方法、软件授权装置10、电子设备20、计算机可读存储介质30或计算机程序产品40的流程图和/或方框图来描述的。应理解可由计算机程序产品40实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序产品40到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的程序指令41产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序产品40也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机程序产品40中的程序指令41产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些程序指令41也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的程序指令41提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的,上述的装置、电子设备、计算机可读存储介质、计算机程序产品等根据方法实施例的描述还可以包括其他的实施方式,具体的实现方式可以参照相关方法实施例的描述,在此不作一一赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (14)

1.一种软件授权方法,其特征在于,所述方法应用于客户端,所述方法包括:
基于预设的第一密钥对待授权内容进行加密和签名以及基于预设的第二密钥对所述第一密钥进行加密和签名,生成许可请求文件;所述许可请求文件包括加密的待授权内容、所述加密的待授权内容的签名值、加密的第一密钥和所述加密的第一密钥的签名值;所述待授权内容包括待授权组件和所述待授权组件的数量信息;
通过一服务器对所述许可请求文件进行双重验证和授权,以获取所述服务器生成的许可授权文件;所述双重验证包括验证所述加密的第一密钥的签名值和验证所述加密的待授权内容的签名值;
利用所述第一密钥和所述第二密钥对所述许可授权文件进行验证,在所述许可授权文件验证通过的情况下,利用所述许可授权文件对所述客户端中的软件组件进行授权,得到授权组件和所述授权组件的第二数量信息;
其中,在生成所述许可请求文件时,执行如下第一算法:
BASE36(Encrypt(Spub,Mpub)+Digest(Spub,Sprv)+Encrypt(Encode(待授权组件,第一数量信息),Sprv)+Digest(Encrypt(Encode(待授权组件,第一数量信息)),Sprv));
其中,在对所述软件组件进行授权时,执行如下第二算法:
BASE36(Version_Scheme+Encrypt(Encode(授权组件,第二数量信息),
Spub)+Digest(Encrypt(Encode(授权组件,第二数量信息),Spub),Mprv));
其中,Mpub为所述第一密钥的公钥,Mprv为所述第一密钥的私钥;Spub为所述第二密钥的公钥,Sprv为所述第二密钥的私钥;Encyrpt(Spub,Mpub)表征以Mpub作为密钥加密Spub;Digest(Spub,Sprv)表征以Sprv作为密钥生成加密的HMAC(Spub),HMAC为预设的哈希算法;Encode(待授权组件,第一数量信息)表征采用待授权组件=第一数量信息的字符串形式来编码内容;
其中,Version_Scheme表征软件授权方法的版本信息。
2.根据权利要求1所述的方法,其特征在于,所述生成许可请求文件,包括:
基于预设的第一密钥的私钥对所述待授权内容进行加密,得到加密的待授权内容;
对所述加密的待授权内容进行签名,得到第一签名值;
基于所述加密的待授权内容和所述第一签名值,生成所述许可请求文件。
3.根据权利要求2所述的方法,其特征在于,所述生成所述许可请求文件,还包括:
基于预设的第二密钥的公钥加密所述第一密钥的公钥,得到加密的第一密钥的公钥;
对所述加密的第一密钥的公钥进行签名,得到第二签名值;
对所述加密的第一密钥的公钥、所述加密的待授权内容、所述第一签名值和所述第二签名值进行数据编码,生成所述许可请求文件。
4.根据权利要求3所述的方法,其特征在于,所述许可授权文件包括加密的授权内容和所述加密的授权内容的签名值;
所述对所述许可授权文件进行验证,包括:
对所述加密的授权内容进行签名,得到第三签名值;以及
基于所述第一密钥的私钥对所述加密的授权内容的签名值进行解密,得到第四签名值;
在将所述第三签名值和所述第四签名值进行比对之后,得到对应的验证结果。
5.根据权利要求4所述的方法,其特征在于,若所述第三签名值和所述第四签名值比对相同,则所述验证结果为验证成功;若所述第三签名值和所述第四签名值比对不相同,则所述验证结果为验证失败;所述授权内容包括许可授权的组件信息和容量信息;
所述在所述许可授权文件验证通过的情况下,利用所述许可授权文件对所述客户端中的软件组件进行授权,包括:
若所述验证结果为验证成功,则基于所述第一密钥的私钥解密所述加密的授权内容,得到解密后的授权内容;
根据所述解密后的授权内容中的所述组件信息和所述容量信息,对所述软件组件进行授权。
6.根据权利要求4所述的方法,其特征在于,所述许可授权文件还包括对应于所述软件授权方法的版本信息;
在所述对所述许可授权文件进行验证之前,还包括:
基于所述客户端的当前版本,确定是否支持授权于所述版本信息对应的许可授权文件。
7.一种许可授权方法,其特征在于,所述方法应用于服务器,所述方法包括:
获取许可请求文件;所述许可请求文件为利用权利要求1-6任意一项所述的软件授权方法得到;所述许可请求文件包括加密的待授权内容、所述加密的待授权内容的签名值、加密的第一密钥和所述加密的第一密钥的签名值;
对所述许可请求文件进行双重验证,并在所述许可请求文件验证通过的情况下,基于所述许可请求文件表征的待授权内容确定授权内容;所述双重验证包括验证所述加密的第一密钥的签名值和验证所述加密的待授权内容的签名值;
基于所述许可请求文件、与所述许可请求文件相对应的第一密钥、第二密钥和所述授权内容,生成许可授权文件,以对客户端中的软件组件进行授权。
8.根据权利要求7所述的方法,其特征在于,所述对所述许可请求文件进行双重验证,包括:
对所述许可请求文件中加密的第一密钥的公钥进行签名,得到第五签名值;以及
基于与所述许可请求文件相对应的第二密钥的私钥对所述加密的第一密钥的公钥的第二签名值进行解密,得到解密后的第二签名值;
将所述第五签名值和所述解密后的第二签名值进行比对,得到第一验证结果。
9.根据权利要求8所述的方法,其特征在于,
在所述得到第一验证结果之后,还包括:
基于所述第二密钥的私钥对所述加密的第一密钥的公钥进行解密,得到解密后的第一密钥的公钥;
所述对所述许可请求文件进行验证,还包括:
对所述许可请求文件中加密的待授权内容进行签名,得到第六签名值;以及
基于所述解密后的第一密钥的公钥对所述加密的待授权内容的第一签名值进行解密,得到解密后的第一签名值;
将所述第六签名值和所述解密后的第一签名值进行比对,得到第二验证结果。
10.根据权利要求9所述的方法,其特征在于,
在所述得到第二验证结果之后,还包括:
基于所述解密后的第一密钥的公钥对所述加密的待授权内容进行解密,得到解密后的待授权内容;
所述在所述许可请求文件验证通过的情况下,基于所述许可请求文件表征的待授权内容确定授权内容,包括:
若所述第一验证结果和所述第二验证结果均验证成功,则基于所述待授权内容确定许可授权的组件信息和容量信息。
11.根据权利要求10所述的方法,其特征在于,所述生成许可授权文件,包括:
基于所述软件授权方法的版本信息,确定版本标号;以及
利用所述解密后的第一密钥的公钥对所述组件信息和所述容量信息进行加密,得到加密后的授权内容;
对所述加密后的授权内容进行签名,得到所述加密后的授权内容的签名值;
对所述版本标号、所述加密后的授权内容和所述加密后的授权内容的签名值进行数据编码,生成所述许可授权文件。
12.一种软件授权装置,其特征在于,所述装置包括:
请求文件生成模块,用于基于预设的第一密钥的公钥和私钥对待授权内容进行加密和签名以及基于预设的第二密钥对所述第一密钥进行加密和签名,生成许可请求文件;所述许可请求文件包括加密的待授权内容、所述加密的待授权内容的签名值、加密的第一密钥和所述加密的第一密钥的签名值;所述待授权内容包括待授权组件和所述待授权组件的数量信息;
授权文件生成模块,用于通过一服务器对所述许可请求文件进行双重验证和授权,以获取所述服务器生成的许可授权文件;所述双重验证包括验证所述加密的第一密钥的签名值和验证所述加密的待授权内容的签名值;
验证授权模块,用于利用所述第一密钥和所述第二密钥对所述许可授权文件进行验证,在所述许可授权文件验证通过的情况下,利用所述许可授权文件对客户端中的软件组件进行授权,得到授权组件和所述授权组件的第二数量信息;
其中,在生成所述许可请求文件时,执行如下第一算法:
BASE36(Encrypt(Spub,Mpub)+Digest(Spub,Sprv)+Encrypt(Encode(待授权组件,第一数量信息),Sprv)+Digest(Encrypt(Encode(待授权组件,第一数量信息)),Sprv));
其中,在对所述软件组件进行授权时,执行如下第二算法:
BASE36(Version_Scheme+Encrypt(Encode(授权组件,第二数量信息),Spub)+Digest(Encrypt(Encode(授权组件,第二数量信息),Spub),Mprv));
其中,Mpub为所述第一密钥的公钥,Mprv为所述第一密钥的私钥;Spub为所述第二密钥的公钥,Sprv为所述第二密钥的私钥;Encyrpt(Spub,Mpub)表征以Mpub作为密钥加密Spub;Digest(Spub,Sprv)表征以Sprv作为密钥生成加密的HMAC(Spub),HMAC为预设的哈希算法;Encode(待授权组件,第一数量信息)表征采用待授权组件=第一数量信息的字符串形式来编码内容;
其中,Version_Scheme表征软件授权方法的版本信息。
13.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器的可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令,以实现如权利要求1至6中任一项所述的软件授权方法和/或权利要求7-11中任一项所述的许可授权方法。
14.一种计算机可读存储介质,所述计算机可读存储介质中包括程序数据,其特征在于,当所述程序数据由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1至6中任一项所述的软件授权方法和/或权利要求7-11中任一项所述的许可授权方法。
CN202211008214.4A 2022-08-22 2022-08-22 软件授权方法、许可授权方法、装置、设备和存储介质 Active CN115374405B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211008214.4A CN115374405B (zh) 2022-08-22 2022-08-22 软件授权方法、许可授权方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211008214.4A CN115374405B (zh) 2022-08-22 2022-08-22 软件授权方法、许可授权方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN115374405A CN115374405A (zh) 2022-11-22
CN115374405B true CN115374405B (zh) 2024-02-20

Family

ID=84068618

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211008214.4A Active CN115374405B (zh) 2022-08-22 2022-08-22 软件授权方法、许可授权方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN115374405B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116886318B (zh) * 2023-09-07 2024-03-12 广州云视通科技有限公司 一种用于音视频设备并发许可的控制方法
CN117390599B (zh) * 2023-12-04 2024-03-26 深圳中安高科电子有限公司 一种离线多设备产品许可发放与验证方法、系统及设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109241705A (zh) * 2018-08-29 2019-01-18 中科鼎富(北京)科技发展有限公司 一种软件授权方法及系统
CN111106939A (zh) * 2019-11-14 2020-05-05 杉数科技(北京)有限公司 软件授权方法、获取软件权限的方法及装置
CN112699342A (zh) * 2021-03-24 2021-04-23 统信软件技术有限公司 授权控制方法、授权方法、装置及计算设备
CN113268715A (zh) * 2020-02-14 2021-08-17 中移(苏州)软件技术有限公司 软件加密方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9621355B1 (en) * 2015-10-01 2017-04-11 Cisco Technology, Inc. Securely authorizing client applications on devices to hosted services

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109241705A (zh) * 2018-08-29 2019-01-18 中科鼎富(北京)科技发展有限公司 一种软件授权方法及系统
CN111106939A (zh) * 2019-11-14 2020-05-05 杉数科技(北京)有限公司 软件授权方法、获取软件权限的方法及装置
CN113268715A (zh) * 2020-02-14 2021-08-17 中移(苏州)软件技术有限公司 软件加密方法、装置、设备及存储介质
CN112699342A (zh) * 2021-03-24 2021-04-23 统信软件技术有限公司 授权控制方法、授权方法、装置及计算设备

Also Published As

Publication number Publication date
CN115374405A (zh) 2022-11-22

Similar Documents

Publication Publication Date Title
US10721080B2 (en) Key-attestation-contingent certificate issuance
US9866376B2 (en) Method, system, and device of provisioning cryptographic data to electronic devices
CN115374405B (zh) 软件授权方法、许可授权方法、装置、设备和存储介质
US9270447B2 (en) Demand based encryption and key generation and distribution systems and methods
US8495383B2 (en) Method for the secure storing of program state data in an electronic device
CN110611657A (zh) 一种基于区块链的文件流处理的方法、装置及系统
CN111147432B (zh) 具隐密性的kyc数据共享系统及其方法
US20120303967A1 (en) Digital rights management system and method for protecting digital content
CN110636043A (zh) 一种基于区块链的文件授权访问方法、装置及系统
CN110855426B (zh) 一种用于软件使用授权的方法
KR102013983B1 (ko) 애플리케이션 무결성 인증 방법 및 인증 서버
CN103946858A (zh) 应用数据的解密和加密
TWI436235B (zh) 資料加密方法與系統,資料解密方法
US20160330030A1 (en) User Terminal For Detecting Forgery Of Application Program Based On Hash Value And Method Of Detecting Forgery Of Application Program Using The Same
CN111316596B (zh) 具有身份验证的加密芯片
CN110602075A (zh) 一种加密访问控制的文件流处理的方法、装置及系统
KR102209531B1 (ko) 클라우드 환경에서 인증서 및 개인키의 저장 방법 및 그 인증서 및 개인키를 다운로드 하는 방법
CN114238915A (zh) 数字证书添加方法、装置、计算机设备和存储介质
TWI669672B (zh) 電子交易方法及系統
US20220271948A1 (en) Owner identity confirmation system, certificate authority server and owner identity confirmation method
US20220286301A1 (en) Owner identity confirmation system, terminal and owner identity confirmation method
CN110619236A (zh) 一种基于文件凭证信息的文件授权访问方法、装置及系统
CN114726539B (zh) 一种基于可信密码模块tcm的离线升级方法
CN113194090B (zh) 鉴权方法、鉴权装置、终端设备及计算机可读存储介质
CN117714058A (zh) 金融业务设备加解密算法切换方法、装置和计算机设备

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
GR01 Patent grant
GR01 Patent grant