CN113132107A - 许可证加密方法、装置、许可证解密方法、装置和设备 - Google Patents

许可证加密方法、装置、许可证解密方法、装置和设备 Download PDF

Info

Publication number
CN113132107A
CN113132107A CN201911414243.9A CN201911414243A CN113132107A CN 113132107 A CN113132107 A CN 113132107A CN 201911414243 A CN201911414243 A CN 201911414243A CN 113132107 A CN113132107 A CN 113132107A
Authority
CN
China
Prior art keywords
license
encrypted
algorithm
portions
client
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
Application number
CN201911414243.9A
Other languages
English (en)
Other versions
CN113132107B (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.)
Qianxin Technology Group Co Ltd
Secworld Information Technology Beijing Co Ltd
Original Assignee
Qianxin Technology Group Co Ltd
Secworld Information Technology Beijing 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 Qianxin Technology Group Co Ltd, Secworld Information Technology Beijing Co Ltd filed Critical Qianxin Technology Group Co Ltd
Priority to CN201911414243.9A priority Critical patent/CN113132107B/zh
Publication of CN113132107A publication Critical patent/CN113132107A/zh
Application granted granted Critical
Publication of CN113132107B publication Critical patent/CN113132107B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements

Abstract

本公开的实施例提供了一种许可证加密方法、装置、许可证解密方法、装置和设备,该方法包括生成针对待许可客户端的许可证,许可证包括至少两个部分,至少两个部分中的一个部分包括待许可客户端的客户端标识信息;确定针对至少两个部分中各部分的算法,其中,针对至少两个部分中各部分的算法与至少两个部分中各部分的重要等级相对应;基于至少两个部分中各部分的算法分别加密至少两个部分中各部分,以获得各加密部分;以及基于指定算法对各加密部分进行加密,以生成针对待许可客户端的加密许可证。

Description

许可证加密方法、装置、许可证解密方法、装置和设备
技术领域
本公开涉及互联网技术领域,更具体地,涉及一种许可证加密方法、装置、许可证解密方法、装置和设备。
背景技术
为了防止软件被企业或个人盗用或滥用,需要利用软件许可证控制软件的使用。为了保证许可证的安全性,通常需要对许可证进行加密。相关技术中可以采用统一密级的加密方法,即许可证用一套密钥、同一种算法进行加密,解密的时候也是用一套密钥、同一种算法进行解密。
在实现本公开构思的过程中,发明人发现现有技术中至少存在如下问题:采用统一密级的加密方法,如果密级定义得太高,会增加加密成本。如果密级定义得太低,又容易被破解。此外,对于不接入公网的服务器端,颁发的许可证可能会被被错误导入。
发明内容
有鉴于此,本公开实施例提供了一种有助于在满足密级的基础上不会过多增加加密成本,且有助于降低许可证错误导入的风险的许可证加密方法、装置、许可证解密方法、装置和电子设备。
本公开实施例的一个方面提供了一种由服务器端执行的许可证加密方法,包括:生成针对待许可客户端的许可证,许可证包括至少两个部分,至少两个部分中的一个部分包括待许可客户端的客户端标识信息;确定针对至少两个部分中各部分的算法,其中,针对至少两个部分中各部分的算法与至少两个部分中各部分的重要等级相对应;基于至少两个部分中各部分的算法分别加密至少两个部分中各部分,以获得各加密部分;以及基于指定算法对各加密部分进行加密,以生成针对待许可客户端的加密许可证。
根据本公开的实施例,根据许可证中信息的重要等级,对许可证中不同部分以不同的加密方式等进行加密保护,在不用过多增加加密成本的基础上可以满足安全性需求。此外,许可证中添加了待许可客户端的硬件信息和服务器端签名信息,保证了许可证与待许可客户端的硬件信息唯一匹配,提高了许可证的安全性和可靠性。
根据本公开的实施例,上述方法还包括:在生成针对待许可客户端的加密许可证之后,对加密许可证进行编码,以获得编码的加密许可证。这样便于向被许可的客户端发送编码的加密许可证,提升数据传输过程中的数据可解析度。
根据本公开的实施例,对于至少两个部分中的每个部分,包括客户端标识信息的第一部分的重要等级最高。
根据本公开的实施例,基于至少两个部分中各部分的算法分别加密至少两个部分中各部分包括:采用第一算法对至少两个部分中的第一部分进行加密;以及采用第二算法和第三算法依次对至少两个部分中的第二部分进行加密,其中,第三算法的第二加密结果包括第二算法的第一加密结果的哈希值。
本公开实施例的另一方面提供了一种由客户端执行的许可证解密方法,包括:接收加密许可证;基于指定算法对加密许可证进行解密,得到至少两个加密部分,其中,至少两个加密部分的各加密部分是采用与各加密部分的重要等级相对应的算法进行加密得到的;基于与各加密部分的重要等级相对应的算法对各加密部分进行解密,以得到至少两个部分,其中,至少两个部分中的一个部分包括客户端的客户端标识信息;以及基于至少两个部分生成针对客户端的许可证。
根据本公开的实施例,加密许可证是经过编码的加密许可证。相应地,上述方法还包括:对经过编码的加密许可证进行解码,以获得解码的加密许可证;基于指定算法对加密许可证进行解密,得到至少两个加密部分包括基于指定算法对解码的加密许可证进行解密,得到至少两个加密部分。
根据本公开的实施例,对于至少两个部分中的每个部分,包括客户端标识信息的第一部分的重要等级最高。
根据本公开的实施例,基于与各加密部分的重要等级相对应的算法对各加密部分进行解密,以得到至少两个部分包括:基于第一算法对两个部分中包括客户端标识信息的第一部分进行解密;以及基于第三算法和第二算法依次对两个部分中的第二部分进行解密,其中,基于第三算法对第二部分进行解密得到的第一哈希值和第二部分的明文信息,第一哈希值与基于第二算法对第二部分的明文信息进行计算得到的第二哈希值相同。
本公开实施例的另一方面提供了一种许可证加密装置,包括:第一许可证生成模块、算法确定模块、第一加密模块和第二加密模块。其中,第一许可证生成模块用于生成针对待许可客户端的许可证,许可证包括至少两个部分,至少两个部分中的一个部分包括待许可客户端的客户端标识信息;算法确定模块,用于确定针对至少两个部分中各部分的算法,其中,针对至少两个部分中各部分的算法与至少两个部分中各部分的重要等级相对应;第一加密模块,用于基于至少两个部分中各部分的算法分别加密至少两个部分中各部分,以获得各加密部分;以及第二加密模块,用于基于指定算法对各加密部分进行加密,以生成针对待许可客户端的加密许可证。
本公开实施例的另一方面提供了一种许可证解密装置,包括:加密许可证接收模块、第一解密模块、第二解密模块和第二许可证生成模块。其中,加密许可证接收模块用于接收加密许可证;第一解密模块用于基于指定算法对加密许可证进行解密,得到至少两个加密部分,其中,至少两个加密部分的各加密部分是采用与各加密部分的重要等级相对应的算法进行加密得到的;第二解密模块用于基于与各加密部分的重要等级相对应的算法对各加密部分进行解密,以得到至少两个部分,其中,至少两个部分中的一个部分包括客户端的客户端标识信息;以及第二许可证生成模块用于基于至少两个部分生成针对客户端的许可证。
本公开实施例的另一方面提供了一种电子设备,包括一个或多个处理器以及存储装置,其中,上述存储装置用于存储可执行指令,上述可执行指令在被上述处理器执行时,实现本公开实施例的方法。
本公开实施例的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,上述指令在被处理器执行时用于实现本公开实施例的方法。
本公开实施例的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现本公开实施例的方法。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的许可证加密方法、装置、许可证解密方法、装置和设备的应用场景;
图2示意性示出了根据本公开实施例适用于许可证加密方法、装置、许可证解密方法、装置和设备的架构图;
图3示意性示出了根据本公开实施例的许可证加密方法的流程图;
图4示意性示出了根据本公开实施例的对许可证进行加密的逻辑图;
图5示意性示出了根据本公开另一实施例的许可证加密方法的流程图;
图6示意性示出了根据本公开另一实施例的许可证加密方法的流程图;
图7示意性示出了根据本公开实施例的许可证加密装置的框图;
图8示意性示出了根据本公开另一实施例的许可证解密装置的框图;以及
图9示意性示出了根据本公开实施例的计算设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。
本公开的实施例提供了一种许可证加密方法、许可证加密装置、计算设备和介质。该方法包括算法确定过程和加密过程。在算法确定过程中,生成针对待许可客户端的许可证,许可证包括至少两个部分,至少两个部分中的一个部分包括待许可客户端的客户端标识信息,然后,确定针对至少两个部分中各部分的算法,其中,针对至少两个部分中各部分的算法与至少两个部分中各部分的重要等级相对应。在完成算法确定过程之后,进入加密过程过程,基于至少两个部分中各部分的算法分别加密至少两个部分中各部分,以获得各加密部分,然后,基于指定算法对各加密部分进行加密,以生成针对待许可客户端的加密许可证。
图1示意性示出了根据本公开实施例的许可证加密方法、装置、许可证解密方法、装置和设备的应用场景。
如图1所示,客户端通过网络和网关与颁证服务器端相连。颁证服务器端可以将许可证发送给待许可的客户端。期间,为了保证许可证的安全性,如防止被非法用户窃取等,需要对许可证进行加密。相关技术中许可证通常采用统一密级的加密方法,如对许可证的文件内容采用一种对称加密或者非对称加密的方式进行加密,对于许可证文件中的重要信息和非重要信息不做区分,对于防火墙这种对信息安全特别敏感的硬件平台,一次整体的加密往往是不够安全的,同时,为了避免过多增加加密成本,可以对一些重要信息区分对待,进行加强保护。
此外,还有部分颁证服务器是不接入公网的,可以通过拷贝等方式将许可证书拷贝至待许可客户端,然而,容易出现错误拷贝许可证、重复拷贝许可证等问题,容易给用户带来损失。
本公开的实施例可以根据许可证中各部分信息的重要级别,对许可证中各部分信息以不同的加密方式(如算法等)进行加密保护,在不用过多增加加密成本的基础上可以满足安全性需求。
此外,许可证中添加了待许可客户端的硬件信息和服务器端签名信息,保证了许可证与待许可客户端的硬件信息唯一匹配,提高了许可证的安全性和可靠性。
图2示意性示出了根据本公开实施例适用于许可证加密方法、装置、许可证解密方法、装置和设备的架构图。
需要注意的是,图2所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图2所示,根据该实施例的系统架构200可以包括终端设备201、202、203,网络204、服务器205和网关206。网络204用以在终端设备201、202、203、服务器205和网关206之间提供通信链路的介质。网络204可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备201、202、203通过网络204和网关206与服务器205交互,以接收或发送消息等。终端设备201、202、203上可以安装有各种通讯客户端应用及其许可证,例如防火墙类应用及防火墙服务器端颁发的许可证、查毒/杀毒类应用及查毒/杀毒类应用的服务器端颁发的许可证、购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。服务器205和网关206上可以安装有防火墙类应用。
终端设备201、202、203可以是具有显示屏并且支持网页浏览的各种计算设备,包括但不限于智能手机、平板电脑、虚拟现实设备、膝上型便携计算机和台式计算机等等。
服务器205可以是提供各种服务的服务器,例如对用户利用终端设备201、202、203所使用的应用提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
网关206可以将终端设备201、202、203和服务器205发送的信息路由至正确的地址。此外,网关206还可以对接收的网络数据流进行网络攻击分析。
需要说明的是,本公开实施例所提供的网络攻击分析方法一般可以由服务器205、网关206执行。相应地,本公开实施例所提供的网络攻击分析装置一般可以设置于服务器205、网关206中。本公开实施例所提供的网络攻击分析方法也可以由不同于服务器205、网关206且能够与服务器205、网关206、终端设备201、202、203通信的服务器或服务器集群执行。相应地,本公开实施例所提供的网络攻击分析装置也可以设置于能够与服务器205、网关206、终端设备201、202、203通信的服务器或服务器集群中。
应该理解,终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图3示意性示出了根据本公开实施例的许可证加密方法的流程图。
如图3所示,该由服务器端执行的许可证加密方法可以包括操作S301~操作S307。
在操作S301,生成针对待许可客户端的许可证,许可证包括至少两个部分,至少两个部分中的一个部分包括待许可客户端的客户端标识信息。
在本实施例中,许可证中需要包括至少两个部分,不同部分可以是基于该部分的重要等级进行划分的。例如,许可证中信息可以包括重要的部分、次重要部分、不重要部分等。其中,重要等级的划分可以是依据专家经验、实验等确定。这样便于针对更重要的部分采用更加复杂的加密方式进行加密,提升许可证的安全性。
部分颁证服务器端(如防火墙平台)由于产品的功能多样化并且可能不会连接公网,所以许可证要区别每个待许可客户端的客户端标识信息。为了确保客户端标识信息的不易修改性,可以采用机器硬件序列号等来作为客户端标识信息。由于证书中包括客户端标识,这样便于基于客户端标识确定当前使用许可证的客户端是否为许可证所许可的客户端。为此,可以在许可证中添加机器硬件序列号,包括但不限于以下至少一种:硬件的厂商信息以及内存、中央处理单元(CPU)等硬件的配置信息等,如媒体存取控制位址(MediaAccess Control Address,简称MAC)地址。
此外,当颁证服务器端或客户端不接入公网时,无法通过互联网将许可证发送给客户端,可以采用拷贝的方式把许可证拷贝至客户端。但是,用户可能具有多个客户端,获取了多个许可证,需要将哪些许可证拷贝至哪个客户端,且期间需要保证不会重复导入和错误导入是有一定难度。在许可证中加入不可篡改的客户端标识,不但能实现更有针对性的许可控制,还可以有助于帮助用户降低重复导入和错误导入的可能性,如导入错误的许可证时该许可证无效。
在操作S303,确定针对至少两个部分中各部分的算法,其中,针对至少两个部分中各部分的算法与至少两个部分中各部分的重要等级相对应。
在本实施例中,为了在保证加密可靠性的基础上避免过多增加加密成本,可以有针对性地对许可证的不同重要等级的部分采用不同的加密方式。例如,重要等级越高的部分可以采用越复杂的算法,以提升重要等级的部分的安全性。
在一个实施例中,对于至少两个部分中的每个部分,包括客户端标识信息的第一部分的重要等级最高。例如,包括待许可客户端的客户端标识信息的部分的重要等级高于不包括待许可客户端的客户端标识信息的部分。
具体地,可以预设的重要等级与算法之间的对应关系确定各部分的算法。算法包括但不限于:Rivest Cipher 4(简称RC4)、对称加密算法、非对称加密算法(如RSA加密算法(RSA algorithm))、安全哈希算法(Secure Hash Algorithm)、信息摘要算法(MessageDigest algorithm 5,简称MD5)。
在操作S305,基于至少两个部分中各部分的算法分别加密至少两个部分中各部分,以获得各加密部分。
例如,基于各部分对应的算法分别对各部分进行加密。这样可以使得重要等级高的部分采用安全度高的算法进行加密,重要等级低的部分采用安全度低的算法进行加密。
在操作S307,基于指定算法对各加密部分进行加密,以生成针对待许可客户端的加密许可证。
在本实施例中,由于已经对许可证中重要等级高的部分采用较安全的算法,因此,该指定算法无需采用过于复杂的算法。
本公开实施例提供的许可证加密方法,对许可证进行整体加密之前,还在许可证中追加了经过加密的客户端标识信息,增加了许可证文件的可靠性。此外,根据许可证中各部分的信息的重要等级,分别采用不同的算法进行加密,更好地保证了许可证的可用性和安全性。
图4示意性示出了根据本公开实施例的对许可证进行加密的逻辑图。
如图4所示,基于至少两个部分中各部分的算法分别加密至少两个部分中各部分包括操作S401~操作S403。
在操作S401,采用第一算法对至少两个部分中的第一部分进行加密。
例如,基于MD5算法对第一部分进行加密。
在操作S403,采用第二算法和第三算法依次对至少两个部分中的第二部分进行加密,其中,第三算法的第二加密结果包括第二算法的第一加密结果的哈希值。
其中,第一部分的重要等级可以高于第二部分,如第一部分包括待许可客户端的客户端标识信息。相应地,第一算法的复杂度可以高于第二算法和第三算法。
具体地,生产许可证的服务器端利用SHA算法计算哈希值。然后,生产许可证的服务器端利用私钥对许可证的第二部分和哈希值进行签名。这样使得每台被许可的客户端都需要本地的公钥进行解密,然后对签名内容的明文进行SHA计算,得到哈希值,并比对两个哈希值是否一致,以确定许可证是否正确。
需要说明的是,操作S401和操作S403的执行顺序可以调整,如先执行操作S403,然后执行操作S401。
本公开实施例提供的许可证加密方法,混合使用多种算法,根据许可证中信息的重要级别,区分对待分别加密保护。许可证中添加了硬件平台信息和签名,保证了许可证与硬件平台唯一匹配,提高了许可证文件的安全性和可靠性。如在许可证文件中,包含了硬件信息和其MD5摘要信息,以及功能有效期和SHA摘要信息。
图5示意性示出了根据本公开另一实施例的许可证加密方法的流程图。
如图5所示,上述方法在执行操作S307生成针对待许可客户端的加密许可证之后,还包括操作S501。
在操作S501,对加密许可证进行编码,以获得编码的加密许可证。
在本实施例中,可以对加密许可证进行如base64编码。base64编码是将字符的assic码,转换为都在0-64的可见范围内,不会有特殊符号“:”等影响数据头,从而不会影响解析。其中,数据头指在网络通信中,用于控制信息的运载和传输的数据包前面的定义的特殊字段。不会影响解析是指不会影响网络传输中的协议和数据解析。
在其它实施例中,许可证中还可以包括如下信息许可证的授权时间、许可证的使用寿命等,这样便于防止用户通过修改客户端的系统时间来规避许可证的使用寿命到期,造成许可证的非法使用。
具体地,首先,服务器端可以确定客户端的系统时间是否已被修改。然后,响应于客户端的系统时间已被修改,获取修改后的系统时间。接着,基于修改后的系统时间和安装于客户端的软件的许可证的剩余有效时间,修改软件的使用寿命。这样就可以有效的解决因用户修改客户端的系统时间导致许可证的使用寿命到期后仍可继续被授权的问题。
其中,许可证的剩余有效时间可以通过如下方式确定:根据许可证的导入时间、许可证的有效时间和修改前的系统时间,确定许可证的剩余有效时间。
图6示意性示出了根据本公开另一实施例的许可证加密方法的流程图。
如图6所示,由客户端执行的许可证解密方法可以包括操作S601~操作S607。
在操作S601,接收加密许可证。
在操作S603,基于指定算法对加密许可证进行解密,得到至少两个加密部分,其中,至少两个加密部分的各加密部分是采用与各加密部分的重要等级相对应的算法进行加密得到的。
在操作S605,基于与各加密部分的重要等级相对应的算法对各加密部分进行解密,以得到至少两个部分,其中,至少两个部分中的一个部分包括客户端的客户端标识信息。
需要说明的是,针对加密许可证进行解密的算法可以和对许可证进行加密的算法为同一算法,该算法进行加密运算的过程和进行解密运算的过程可以互为逆运算。
在一个实施例中,对于至少两个部分中的每个部分,包括客户端标识信息的第一部分的重要等级最高。
在操作S607,基于至少两个部分生成针对客户端的许可证。
在一个实施例中,加密许可证是经过编码的加密许可证。相应地,上述方法还包括如下操作。
对经过编码的加密许可证进行解码,以获得解码的加密许可证。相应地,基于指定算法对加密许可证进行解密,得到至少两个加密部分包括基于指定算法对解码的加密许可证进行解密,得到至少两个加密部分。
其中,基于与各加密部分的重要等级相对应的算法对各加密部分进行解密,以得到至少两个部分可以包括如下操作。
例如,基于第一算法对两个部分中包括客户端标识信息的第一部分进行解密。
又例如,基于第三算法和第二算法依次对两个部分中的第二部分进行解密。其中,基于第三算法对第二部分进行解密得到的第一哈希值和第二部分的明文信息,第一哈希值与基于第二算法对第二部分的明文信息进行计算得到的第二哈希值相同。
在一个具体实施例中,首先,对接收的加密许可证进行base64解码。然后,对解码得到的加密许可证进行RC4解密。RC4是一种流算法,由于密钥长度可变,可以将密钥长度设置为128字节,在解析复杂度和保证安全可靠性基础上选择最优大小。加密许可证中包括了功能有效期和客户端标识信息(如硬件信息)等内容。
接着,由于防火墙平台产品的功能多样化,并且客户端等可能不会连接公网,所以许可证要区别每一个客户端,如区别客户端的机器硬件序列号,尽可能保证不会重复导入和错误导入。许可证中包括了客户端标识,基于MD5算法对许可证中采用MD5算法加密的部分进行解密,以得到客户端标识信息。
然后,检验许可证文件签名。对许可证RC4解密后的明文计算出哈希值,与许可证中的附带的哈希值进行比对,在比对一致后确定许可证可用。其中,许可证中附带的哈希值是根据RSA算法实现:生产许可证的服务器拥有私钥进行加密,每个客户端都需要本地的公钥进行解密,然后对签名内容的明文进行SHA计算。
经过以上步骤,确保许可证可用并且与硬件匹配后,导入功能模块的授权时间,开启客户需要的功能。
其中,在许可证导入的过程中,可以记录该许可证的第一标识信息。如果客户端再次被导入许可证,则可以再次记录被导入的许可证的第二标识信息。然后,比对第二标识信息与一标识信息是否一致。如果确定第一标识信息和第二标识信息一致,将后导入的许可证作为无效许可证。此时,可以在客户端进行许可证无效提示。此外,还可以提示当前正在导入的许可证正在本地使用,以便用户得知导入失败的原因。
图7示意性示出了根据本公开实施例的许可证加密装置的框图。
如图7所示,该许可证加密装置700,包括:第一许可证生成模块710、算法确定模块730、第一加密模块750和第二加密模块770。
其中,第一许可证生成模块710用于生成针对待许可客户端的许可证,许可证包括至少两个部分,至少两个部分中的一个部分包括待许可客户端的客户端标识信息。
算法确定模块730用于确定针对至少两个部分中各部分的算法,其中,针对至少两个部分中各部分的算法与至少两个部分中各部分的重要等级相对应。
第一加密模块750用于基于至少两个部分中各部分的算法分别加密至少两个部分中各部分,以获得各加密部分。
第二加密模块770用于基于指定算法对各加密部分进行加密,以生成针对待许可客户端的加密许可证。
图8示意性示出了根据本公开另一实施例的许可证解密装置的框图。
如图8所示,该许可证解密装置800可以包括:加密许可证接收模块810、第一解密模块830、第二解密模块850和第二许可证生成模块870。
其中,加密许可证接收模块810用于接收加密许可证。
第一解密模块830用于基于指定算法对加密许可证进行解密,得到至少两个加密部分,其中,至少两个加密部分的各加密部分是采用与各加密部分的重要等级相对应的算法进行加密得到的。
第二解密模块850用于基于与各加密部分的重要等级相对应的算法对各加密部分进行解密,以得到至少两个部分,其中,至少两个部分中的一个部分包括客户端的客户端标识信息。
第二许可证生成模块870用于基于至少两个部分生成针对客户端的许可证。
其中,许可证加密装置和许可证解密装置的各模块执行的操作可以参考如上所示的方法部分相关内容,在此不再一一详述。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一许可证生成模块710、算法确定模块730、第一加密模块750和第二加密模块770中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一许可证生成模块710、算法确定模块730、第一加密模块750和第二加密模块770中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一许可证生成模块710、算法确定模块730、第一加密模块750和第二加密模块770中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图9示意性示出了根据本公开实施例的适于实现上文描述的方法的电子设备的框图。图9示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,根据本公开实施例的电子设备900包括处理器901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储部分908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。处理器901例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器901还可以包括用于缓存用途的板载存储器。处理器901可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 903中,存储有电子设备900操作所需的各种程序和数据。处理器901、ROM902以及RAM 903通过总线904彼此相连。处理器901通过执行ROM 902和/或RAM 903中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 902和RAM 903以外的一个或多个存储器中。处理器901也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备900还可以包括输入/输出(I/O)接口905,输入/输出(I/O)接口905也连接至总线904。电子设备900还可以包括连接至I/O接口905的以下部件中的一项或多项:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至I/O接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被处理器901执行时,执行本公开实施例的电子设备中限定的上述功能。根据本公开的实施例,上文描述的电子设备、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 902和/或RAM 903和/或ROM 902和RAM 903以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (13)

1.一种由服务器端执行的许可证加密方法,包括:
生成针对待许可客户端的许可证,所述许可证包括至少两个部分,所述至少两个部分中的一个部分包括所述待许可客户端的客户端标识信息;
确定针对至少两个部分中各部分的算法,其中,所述针对至少两个部分中各部分的算法与所述至少两个部分中各部分的重要等级相对应;
基于所述至少两个部分中各部分的算法分别加密所述至少两个部分中各部分,以获得各加密部分;以及
基于指定算法对所述各加密部分进行加密,以生成针对所述待许可客户端的加密许可证。
2.根据权利要求1所述的方法,还包括:在生成针对所述待许可客户端的加密许可证之后,
对所述加密许可证进行编码,以获得编码的加密许可证。
3.根据权利要求1所述的方法,其中,对于所述至少两个部分中的每个部分,包括所述客户端标识信息的第一部分的重要等级最高。
4.根据权利要求3所述的方法,其中,所述基于所述至少两个部分中各部分的算法分别加密所述至少两个部分中各部分包括:
采用第一算法对所述至少两个部分中的第一部分进行加密;以及
采用第二算法和第三算法依次对所述至少两个部分中的第二部分进行加密,其中,所述第三算法的第二加密结果包括第二算法的第一加密结果的哈希值。
5.一种由客户端执行的许可证解密方法,包括:
接收加密许可证;
基于指定算法对所述加密许可证进行解密,得到至少两个加密部分,其中,所述至少两个加密部分的各加密部分是采用与所述各加密部分的重要等级相对应的算法进行加密得到的;
基于与所述各加密部分的重要等级相对应的算法对所述各加密部分进行解密,以得到至少两个部分,其中,所述至少两个部分中的一个部分包括所述客户端的客户端标识信息;以及
基于所述至少两个部分生成针对所述客户端的许可证。
6.根据权利要求5所述的方法,其中:
所述加密许可证是经过编码的加密许可证;
所述方法还包括:
对所述经过编码的加密许可证进行解码,以获得解码的加密许可证;
所述基于指定算法对所述加密许可证进行解密,得到至少两个加密部分包括基于指定算法对所述解码的加密许可证进行解密,得到至少两个加密部分。
7.根据权利要求5所述的方法,其中:
对于所述至少两个部分中的每个部分,包括所述客户端标识信息的第一部分的重要等级最高。
8.根据权利要求7所述的方法,其中,所述基于与所述各加密部分的重要等级相对应的算法对所述各加密部分进行解密,以得到至少两个部分包括:
基于第一算法对所述两个部分中包括所述客户端标识信息的第一部分进行解密;以及
基于第三算法和第二算法依次对所述两个部分中的第二部分进行解密,
其中,基于所述第三算法对所述第二部分进行解密得到的第一哈希值和所述第二部分的明文信息,所述第一哈希值与基于所述第二算法对所述第二部分的明文信息进行计算得到的第二哈希值相同。
9.一种许可证加密装置,包括:
第一许可证生成模块,用于生成针对待许可客户端的许可证,所述许可证包括至少两个部分,所述至少两个部分中的一个部分包括所述待许可客户端的客户端标识信息;
算法确定模块,用于确定针对至少两个部分中各部分的算法,其中,所述针对至少两个部分中各部分的算法与所述至少两个部分中各部分的重要等级相对应;
第一加密模块,用于基于所述至少两个部分中各部分的算法分别加密所述至少两个部分中各部分,以获得各加密部分;以及
第二加密模块,用于基于指定算法对所述各加密部分进行加密,以生成针对所述待许可客户端的加密许可证。
10.一种许可证解密装置,包括:
加密许可证接收模块,用于接收加密许可证;
第一解密模块,用于基于指定算法对所述加密许可证进行解密,得到至少两个加密部分,其中,所述至少两个加密部分的各加密部分是采用与所述各加密部分的重要等级相对应的算法进行加密得到的;
第二解密模块,用于基于与所述各加密部分的重要等级相对应的算法对所述各加密部分进行解密,以得到至少两个部分,其中,所述至少两个部分中的一个部分包括所述客户端的客户端标识信息;以及
第二许可证生成模块,用于基于所述至少两个部分生成针对所述客户端的许可证。
11.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储可执行指令,所述可执行指令在被所述处理器执行时,实现根据权利要求1~8中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时实现根据权利要求1~8中任一项所述的方法。
13.一种计算机程序,包括计算机可执行指令,所述指令被处理器执行时使处理器执行如权利要求1~8中任一项所述的方法。
CN201911414243.9A 2019-12-31 2019-12-31 许可证加密方法、装置、许可证解密方法、装置和设备 Active CN113132107B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911414243.9A CN113132107B (zh) 2019-12-31 2019-12-31 许可证加密方法、装置、许可证解密方法、装置和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911414243.9A CN113132107B (zh) 2019-12-31 2019-12-31 许可证加密方法、装置、许可证解密方法、装置和设备

Publications (2)

Publication Number Publication Date
CN113132107A true CN113132107A (zh) 2021-07-16
CN113132107B CN113132107B (zh) 2023-02-07

Family

ID=76770586

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911414243.9A Active CN113132107B (zh) 2019-12-31 2019-12-31 许可证加密方法、装置、许可证解密方法、装置和设备

Country Status (1)

Country Link
CN (1) CN113132107B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003005174A1 (en) * 2001-07-06 2003-01-16 Nokia Corporation Consumption of digital data content with digital rights management
US20050289072A1 (en) * 2004-06-29 2005-12-29 Vinay Sabharwal System for automatic, secure and large scale software license management over any computer network
US20060230458A1 (en) * 2005-03-30 2006-10-12 Sony Corporation Method and system for providing a content subscription service
US20070206799A1 (en) * 2005-09-01 2007-09-06 Qualcomm Incorporated Efficient key hierarchy for delivery of multimedia content
CN102088443A (zh) * 2009-12-02 2011-06-08 北大方正集团有限公司 一种带版权保护的数字期刊订阅方法和系统
CN102685108A (zh) * 2012-03-31 2012-09-19 奇智软件(北京)有限公司 网页加密数据的添加、解密方法及装置
CN103577765A (zh) * 2012-08-08 2014-02-12 解放日报报业集团 针对流式文档的加密和解密方法及其装置
CN104205117A (zh) * 2014-04-10 2014-12-10 华为技术有限公司 设备文件的加解密方法及装置
CN106100833A (zh) * 2016-06-17 2016-11-09 深圳市元征科技股份有限公司 软件授权的方法及系统、服务器及许可证生成装置
CN108875316A (zh) * 2018-05-31 2018-11-23 中链科技有限公司 基于区块链的许可证生成及验证方法和服务器

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003005174A1 (en) * 2001-07-06 2003-01-16 Nokia Corporation Consumption of digital data content with digital rights management
US20050289072A1 (en) * 2004-06-29 2005-12-29 Vinay Sabharwal System for automatic, secure and large scale software license management over any computer network
US20060230458A1 (en) * 2005-03-30 2006-10-12 Sony Corporation Method and system for providing a content subscription service
US20070206799A1 (en) * 2005-09-01 2007-09-06 Qualcomm Incorporated Efficient key hierarchy for delivery of multimedia content
CN102088443A (zh) * 2009-12-02 2011-06-08 北大方正集团有限公司 一种带版权保护的数字期刊订阅方法和系统
CN102685108A (zh) * 2012-03-31 2012-09-19 奇智软件(北京)有限公司 网页加密数据的添加、解密方法及装置
CN103577765A (zh) * 2012-08-08 2014-02-12 解放日报报业集团 针对流式文档的加密和解密方法及其装置
CN104205117A (zh) * 2014-04-10 2014-12-10 华为技术有限公司 设备文件的加解密方法及装置
CN106100833A (zh) * 2016-06-17 2016-11-09 深圳市元征科技股份有限公司 软件授权的方法及系统、服务器及许可证生成装置
CN108875316A (zh) * 2018-05-31 2018-11-23 中链科技有限公司 基于区块链的许可证生成及验证方法和服务器

Also Published As

Publication number Publication date
CN113132107B (zh) 2023-02-07

Similar Documents

Publication Publication Date Title
US11470054B2 (en) Key rotation techniques
CN109309565B (zh) 一种安全认证的方法及装置
US10122692B2 (en) Handshake offload
EP2956852B1 (en) Data security service
US7975312B2 (en) Token passing technique for media playback devices
JP4366037B2 (ja) 暗号化された媒体へのアクセス権を制御・行使するシステム及び方法
CN110519309B (zh) 数据传输方法、装置、终端、服务器及存储介质
CN108566381A (zh) 一种安全升级方法、装置、服务器、设备和介质
WO2017020452A1 (zh) 认证方法和认证系统
CN106487765B (zh) 授权访问方法以及使用该方法的设备
US10122689B2 (en) Load balancing with handshake offload
US20160323110A1 (en) Web of trust management in a distributed system
US20140096213A1 (en) Method and system for distributed credential usage for android based and other restricted environment devices
US20140351924A1 (en) Method and system for providing limited secure access to sensitive data
CN110611657A (zh) 一种基于区块链的文件流处理的方法、装置及系统
CN108923925B (zh) 应用于区块链的数据存储方法和装置
CN101977190A (zh) 数字内容加密传送方法以及服务器端
CN110708162B (zh) 资源的获取方法、装置、计算机可读介质及电子设备
CN107920060B (zh) 基于账号的数据访问方法和装置
CN106549757B (zh) Web服务的数据真伪识别方法、服务端和客户端
CN106992978B (zh) 网络安全管理方法及服务器
JP2013115522A (ja) リンク・アクセスの制御方法、プログラム及びシステム
CN109446752B (zh) 版权文件管理方法、系统、设备及存储介质
CN111241492A (zh) 一种产品多租户安全授信方法、系统及电子设备
CN115514578B (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant after: Qianxin Technology Group Co.,Ltd.

Applicant after: Qianxin Wangshen information technology (Beijing) Co.,Ltd.

Address before: Room 332, 3 / F, Building 102, 28 xinjiekouwei street, Xicheng District, Beijing 100088

Applicant before: Qianxin Technology Group Co.,Ltd.

Applicant before: LEGENDSEC INFORMATION TECHNOLOGY (BEIJING) Inc.

GR01 Patent grant
GR01 Patent grant