WO2021195985A1 - 用于许可认证的方法、节点、系统和计算机可读存储介质 - Google Patents
用于许可认证的方法、节点、系统和计算机可读存储介质 Download PDFInfo
- Publication number
- WO2021195985A1 WO2021195985A1 PCT/CN2020/082497 CN2020082497W WO2021195985A1 WO 2021195985 A1 WO2021195985 A1 WO 2021195985A1 CN 2020082497 W CN2020082497 W CN 2020082497W WO 2021195985 A1 WO2021195985 A1 WO 2021195985A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- authentication
- node
- information
- client
- license
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 230000004044 response Effects 0.000 claims abstract description 44
- 230000006870 function Effects 0.000 claims description 21
- 238000013475 authorization Methods 0.000 claims description 16
- 230000008520 organization Effects 0.000 claims description 14
- 238000012545 processing Methods 0.000 claims description 13
- 238000012546 transfer Methods 0.000 claims description 4
- 238000007619 statistical method Methods 0.000 claims description 3
- 239000000047 product Substances 0.000 description 48
- 238000004891 communication Methods 0.000 description 19
- 238000004590 computer program Methods 0.000 description 19
- 239000003795 chemical substances by application Substances 0.000 description 11
- 230000008569 process Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- SZCGFQALLUBALV-UHFFFAOYSA-N 4-trimethylsilylbutanoic acid Chemical compound C[Si](C)(C)CCCC(O)=O SZCGFQALLUBALV-UHFFFAOYSA-N 0.000 description 4
- 239000007795 chemical reaction product Substances 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- AOQNEXNWBZVNJC-UHFFFAOYSA-M sodium 4-trimethylsilylbutanoate Chemical compound C[Si](CCCC(=O)[O-])(C)C.[Na+] AOQNEXNWBZVNJC-UHFFFAOYSA-M 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000007639 printing Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 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/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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
-
- 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/3226—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 using a predetermined code, e.g. password, passphrase or PIN
- H04L9/3231—Biological data, e.g. fingerprint, voice or retina
-
- 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
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- 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/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biodiversity & Conservation Biology (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Storage Device Security (AREA)
Abstract
根据本公开的实施例,提供了用于认证许可的边缘认证节点、中心认证节点、在这些节点处执行的方法、包括各节点在内的系统和相应的计算机可读存储介质。在边缘认证节点处执行的方法包括:从客户端节点接收认证许可请求,所述认证许可请求包括与所述客户端节点相关联的客户端指纹信息;基于所述客户端指纹信息对由中心认证节点生成的与所述客户端节点相关联的许可证书进行解密,以获得与所述客户端节点相关联的许可信息;以及至少部分基于所获得的许可信息向所述客户端节点发送认证许可响应。
Description
本公开涉及许可认证领域,且更具体地涉及用于许可认证的边缘认证节点、中心认证节点、在这些节点处执行的方法、包括各节点在内的系统和相应的计算机可读存储介质。
目前大数据的浪潮已经从互联网企业波及到传统行业,越来越多的企业开始拥抱大数据带来的红利。在如今这个大数据化的时代,数据的安全性无疑是企业发展的重要保证之一。此外,其涉及到商业机密,如果无法保存好这些数据,企业的发展也无法得到有效保证,随时会陷入危机。因此,私有化部署成为了很多对数据敏感的企业的首选。很多软件的供应商顺势提出了私有化部署的方案。成熟的商用的软件有许可授权的要求,由于私有化部署遇到网络限制、安全限制等因素的多重挑战,商用软件的许可认证方案受到了前所未有的挑战。
目前用于许可认证的方案大致分为两类。一类是在客户购买并安装了软件之后采用本地验证模块。例如,可以在软件中提供内置的本地许可校验模块,其可根据客户提供的许可信息(例如,客户从销售软件的零售商处获得的序列号等),进行解密和校验的功能。然而,这种许可认证方案所采用的解密和校验算法比较单一固定,容易被逆向工程反编译破解,且因此安全性比较差。
另一类流行的许可认证方式是采用软件授权认证中心。当客户购买并安装了软件之后,软件在安装部署和初始化的时候,客户提供预先分配的许可信息(例如,文件、授权码等),发送认证请求到远端的云认证中心,认证中心进行统一的标准化认证,所有客户的认证都依赖于云认证中心的服务和网络传输的情况。然而,在这种方案中,一方面其与认证中心的通信可能被第三方截获侦听,并且另一方面在很多情况下很多客户如上所述采用了私有环境,且因此该环境中的任何主机都无法访问公网,进而无法访问云认证中心。
发明内容
为了至少部分解决或减轻上述问题,提供了根据本公开实施例的用于认证许可的边缘认证节点、中心认证节点、在各节点处执行的方法、以及包括各节点在内的系统和计算机可读存储介质。
根据本公开的第一方面,提供了一种在边缘认证节点处执行的用于认证许可的方法。该方法包括:从客户端节点接收认证许可请求,所述认证许可请求包括与所述客户端节点相关联的客户端指纹信息;基于所述客户端指纹信息对由中心认证节点生成的与所述客户端节点相关联的许可证书进行解密,以获得与所述客户端节点相关联的许可信息;以及至少部分基于所获得的许可信息向所述客户端节点发送认证许可响应。
在一些实施例中,基于所述客户端指纹信息对由中心认证节点生成的与所述客户端节点相关联的许可证书进行解密的步骤包括:基于所述客户端指纹信息来确定与所述客户端节点相对应的解密密钥;使用所述解密密钥对所述许可证书进行解密。
在一些实施例中,在基于所述客户端指纹信息对由中心认证节点生成的与所述客户端节点相关联的许可证书进行解密的步骤之后,所述方法还包括:从所述客户端指纹信息中提取客户公钥信息;使用所述客户公钥信息对所述许可证书进行认证;以及响应于所述许可证书认证成功,提取所述许可证书中的许可信息。
在一些实施例中,使用所述客户公钥信息对所述许可证书进行认证的步骤包括认证所述许可证书的以下至少一项:所述许可证书的数字签名是否合法;所述许可证书的签发机构是否是合法的签发机构;以及所述许可证书的有效期是否未到期。
在一些实施例中,提取所述许可证书中的许可信息的步骤包括提取所述许可证书中的以下至少一项信息:签发机构、授权类型、授权数量、授权对象、授权产品信息。
在一些实施例中,至少部分基于所获得的许可信息向所述客户端节点发送认证许可响应的步骤包括:至少部分基于所提取的许可信息向所述客户端节点发送认证许可响应,以许可所述客户端节点根据所述许可信息来进行相应配置。
在一些实施例中,在从客户端节点接收认证许可请求的步骤之后,所述方法还包括:向中心认证节点转发所述认证许可请求;以及从所述中心认证节点接收响应于所述认证许可请求的中心认证许可响应,其中,至少部分基于所获得的许可信息向所述客户端节点发送认证许可响应的步骤包括:基于所获得的许可信息和从所述中心认证节点接收到的中心认证许可响应向所述客户端节点发送认证许可响应。
在一些实施例中,所述许可证书是所述边缘认证节点以离线方式从所述中心认证节点获取到的。
在一些实施例中,所述离线方式包括以下至少一项:实体文件、短消息、电子邮件、便携式存储器。
在一些实施例中,所述许可证书是根据JavaScript Object Notation(JSON)Web Token(JWT)协议来生成的。
在一些实施例中,所述认证许可请求是基于超文本传输协议/超文本传输安全协议(HTTP/HTTPs)的无状态请求。
在一些实施例中,所述边缘认证节点和所述客户端节点部署于同一物理硬件上。
在一些实施例中,所述方法还包括:响应于从客户端节点接收到认证许可请求,在所述边缘认证节点处记录与所述认证许可请求相关的认证许可会话的日志数据。
在一些实施例中,所述客户端指纹信息是用于唯一识别并认证所述客户端节点的身份认证信息。
在一些实施例中,所述方法还包括:收集与所述边缘认证节点、所述客户端节点和许可认证中至少一项有关的信息;以及向所述中心认证节点上传所收集的信息。
根据本公开的第二方面,提供了一种用于认证许可的边缘认证节点,包括:处理器;存储器,其上存储有指令,所述指令在由所述处理器执行时,使得所述处理器执行前述方法。
根据本公开的第三方面,提供了一种在中心认证节点处执行的用于生成许可证书的方法。该方法包括:接收与客户端节点相关联的许可证书生成请求;基于与所述许可证书生成请求中包括的请求信息来生成与所述客户端节点相关联的许可证书;以及向与所述客户端节点相关联的边缘认证节点提供 所述许可证书,以供所述边缘认证节点后续认证之用。
在一些实施例中,所述请求信息包括:与所述客户端节点相关联的身份信息;以及与在所述客户端节点处待认证的产品相关联的产品信息。
在一些实施例中,所述身份信息包括以下至少一项:电子邮箱、电话号码、社会统一信用代码、身份证号码。
在一些实施例中,所述许可证书包括以下至少一项信息:签发机构、授权期限、授权类型、授权数量、授权对象、授权产品信息、数字签名。
在一些实施例中,基于与所述许可证书生成请求中包括的请求信息来生成与所述客户端节点相关联的许可证书的步骤包括:基于所述请求信息来生成与所述客户端节点相关联的包括客户公钥和客户私钥在内的非对称密钥对;基于所述请求信息来生成所述许可证书中除了数字签名之外的其它一个或多个部分,使得所述一个或多个部分中包含用于绑定所述身份信息和所述产品信息的信息;使用所述客户私钥对所述许可证书中除了数字签名之外的一个或多个部分进行数字签名处理,以生成所述数字签名。
在一些实施例中,所述方法还包括:使用与所述边缘认证节点事先约定的与所述客户端节点相关联的加密密钥对所述许可证书进行加密。
在一些实施例中,所述方法还包括:从所述边缘认证节点接收转发的认证许可请求;基于与所述认证许可请求中包括的与客户端节点相关联的客户端指纹信息来认证与所述客户端节点相关联的许可证书;以及基于认证的结果向所述边缘认证节点发送中心认证许可响应。
在一些实施例中,所述客户端指纹信息是用于唯一识别并认证所述客户端节点的身份认证信息。
在一些实施例中,所述方法还包括:接收与所述边缘认证节点、所述客户端节点和许可认证中至少一项有关的信息;对接收到的信息执行统计分析。
在一些实施例中,所述方法还包括:对所述边缘认证节点执行远程管理功能,所述远程管理功能包括以下至少一项:锁定、下线、升级、配置、重启。
根据本公开的第四方面,提供了一种用于认证许可的中心认证节点,包括:处理器;存储器,其上存储有指令,所述指令在由所述处理器执行时,使得所述处理器执行前述方法。
根据本公开的第五方面,提供了一种用于许可认证的系统,包括:前述 中心认证节点、前述边缘认证节点、以及一个或多个客户端节点。
根据本公开的第六方面,提供了一种存储指令的计算机可读存储介质。所述指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行前述方法。
通过使用根据本公开实施例的用于认证许可的方法、边缘认证节点、中心认证节点、系统和计算机可读存储介质,可以在保证许可证书安全性的同时,降低对网络认证的要求并提供了本地认证的可能性。
此外,通过使用JWT协议框架,实现了软件许可证边缘认证的轻量的方案,其具有以下优点:1、无中心依赖,快速实现边缘认证;2、对边缘设备系统进行支持;3、非对称加密方式保证许可证数据的安全;4、技术中立、SDK中立,任何技术框架只要支持JWT和HTTP协议即可接入。
通过下面结合附图说明本公开的优选实施例,将使本公开的上述及其它目的、特征和优点更加清楚,其中:
图1是示出了根据本公开实施例的用于许可认证的示例应用场景的示意图。
图2是示出了根据本公开实施例的用于许可认证的各个节点的功能模块的示意图。
图3是示出了根据本公开实施例的在各节点之间用于许可认证的流程的流程图。
图4是示出了根据本公开实施例的在边缘认证节点处执行的用于许可认证的示例方法的流程图。
图5是示出了根据本公开实施例的在中心认证节点处执行的用于生成许可证书的示例方法的流程图。
图6是示出了根据本公开实施例的用于许可认证的示例电子设备的示例硬件布置的框图。
下面参照附图对本公开的优选实施例进行详细说明,在描述过程中省略了对于本公开来说是不必要的细节和功能,以防止对本公开的理解造成混淆。在本说明书中,下述用于描述本公开原理的各种实施例只是说明,不应该以 任何方式解释为限制公开的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本公开的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不脱离本公开的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同的附图标记用于相同或相似的功能和操作。
如前所述,为了克服或至少减轻相关技术中的许可认证方案中的问题,提出了根据本公开实施例的用于许可认证的边缘认证节点、中心认证节点、在各节点处执行的方法、包括各节点的系统以及计算机可读存储介质。提出了用于实现企业软件私有化部署的许可认证方案。其解决了软件内置认证模块的固定单一的缺点,也解决网络受限的私有环境的认证许可的问题。
在一些实施例中,该许可认证方案采用了基于JSON(JavaScript Object Notation,即Java脚本对象标记)Web Token(JWT,即JSON网络令牌)的技术。其是一种用于创建基于JSON的访问令牌的互联网标准。例如,服务器可以生成令牌并将其提供给客户端,该令牌对应于“以管理员身份登录”。客户端则可以使用该令牌来证明其可以作为管理员来登录。该令牌可由服务器的私钥来进行数字签名处理,使得双方都能够验证该令牌是合法的。
在一些实施例中,JWT可以具有如下部分:报头(header)、载荷(payload)、以及签名(signature)。报头可以包括例如“alg”和“typ”字段或声明,该alg字段可以例如用于指示生成签名所使用的算法,而typ字段可以用于指示该令牌的类型,例如“jwt”,以例如与其它基于JSON的标准相区分。
载荷字段中可包含一个或多个声明(claims),这些声明可以是常用的标准字段或者是由用户自定义的定制字段。常用声明可以包括例如(但不限于):
签名对令牌本身进行安全验证。该签名通常是通过如下方式来计算得到的:使用Base64url编码方式对报头和载荷进行编码并将二者通过句点分隔符串接在一起,然后使用在报头中规定的加密算法(例如,HMAC-SHA256等)对该字符串进行加密。Base64url编码类似于base64编码,但使用了不同的非字母数字字符且省略了填充位。
最后,可以将报头、载荷、签名这三部分分别进行Base64url编码然后通过句点分隔符串接在一起以形成最终的令牌。
例如,以下是一个示例JWT的内容:
从上面的示例中可以看出,所列出的一个或多个标准声明并不一定都要选择(例如,“nbf”、“exp”等声明),且还可以添加定制声明(例如,“name”声明),具体如何解释这些声明或如何使用这些声明,完全可以由发出该JWT的发行方与要处理该JWT的参与方通过事先约定的方式来决定。
在认证时,当用户使用其凭证成功登录服务器时,可以从服务器返回一个JWT令牌,用户将该JWT令牌本地存储,而不是像传统的认证方式一样在服务器端还要保留指示该用户成功登录的会话并返回一个cookie。
此后,无论何时用户想要访问与该服务器相关联的资源等,用户代理都应当发送该JWT,而无需重新登录。换言之,这是一种无状态(RESTful)认证机制,其不要求服务器保持与用户认证相关的上下文或会话,而仅凭用户保存的JWT令牌即可进行相应权限管理。从而,这样的认证机制减轻了对各种资源的占用,从而提升了效率,降低了负载。例如,服务器可以不对数据库进行多次访问,用户可以不必多次输入凭证来进行登录等等。
以下,在本公开的一些实施例中,将以基于JWT机制的许可认证方式为例来说明本公开。然而需要注意的是本公开不限于此,而是可以适用于任何无状态认证的机制。
如上所述,在一些实施例中,提出了基于JWT机制的可以实现企业软件私有化部署的许可认证方式。其一方面可以将JWT的应用场景拓展到软件许可授权的领域,另一方面既解决了软件内置认证模块的固定单一的缺点,也解决网络受限的私有环境的认证许可的问题。以下,将结合图1~图6来详细描述根据本公开实施例的许可认证方案。
图1是示出了根据本公开实施例的用于许可认证的示例应用场景10的示意图。如图1所示,该应用场景10可以包括企业私有网络100、互联网130和中心认证节点140。该企业私有网络100可以是由用户105所拥有、管理和/或操作的,且包括例如边缘认证节点110以及一个或多个客户端节点120-1~120-4。
在一些实施例中,中心认证节点140可以经由通信连接125连接到互联 网130,以使其能够提供相应的各种服务。然而,尽管图1中示出了互联网130,然而需要注意的是互联网130并不是必需的组件。换言之,在另一些实施例中,完全可以没有互联网130。例如,中心认证节点140可以是一台完全脱网的独立工作站,其与外界的交互仅限于例如U盘拷贝、文件打印之类的操作。
在一些实施例中,该企业私有网络100可以与互联网130具有受限的通信连接115。例如,该受限的通信连接115可以是例如网络内部资源(例如,边缘认证节点110、客户端节点120-1~120-4等)不能访问外部资源(例如,中心认证节点140),或者外部资源不能访问内部资源,或者二者兼而有之。此外,该受限的通信连接115也可能是针对一种或多种网络业务、一个或多个网络地址的受限通信连接。例如,内部资源可能仅被允许访问具有指定网络地址的外部资源,或者反之。又例如,内部资源的仅某种网络业务(例如,DNS解析、HTTP会话等)可能被允许访问外部资源,或反之。换言之,企业私有网络100可能不具有针对外部资源的访问权,且进而可能无法在例如传统的软件认证中心模式下对其客户端节点120-1~120-4上安装的软件进行许可认证。然而,需要注意的是,本公开不限于此。在另一些实施例中,企业私有网络100可以与互联网130具有不受限的通信连接,从而使得企业私有网100的内部资源和外部资源能够不受限的进行相互访问。
在一些实施例中,客户端节点120-1~120-4(以下在不特别指定时统称为客户端节点120)可以是例如平板电脑(例如,客户端节点120-1)、台式计算机(例如,客户端节点120-2)、笔记本电脑(例如,客户端节点120-3)、智能电话(例如,客户端节点120-4)、或其上可安装、部署和/或配置软件应用的任何其它电子设备。然而需要注意的是:尽管图1中示出了四种不同的电子设备,而本公开不限于此。在其他实施例中,可以存在一种或多种、一个或多个电子设备作为客户端节点,甚至客户端节点120可以是同一物理机器上运行的一个或多个虚拟客户端节点。
此外,在一些实施例中,边缘认证节点110也可以与客户端节点120位于同一个物理硬件上。在边缘认证节点110与客户端节点120位于同一个物理硬件的情况下,可以显著节约部署根据本公开实施例的许可认证方案的硬件成本。例如,在用户105的所有硬件均是不联网的孤立终端的情况下,如果边缘认证节点110不能与客户端节点120位于同一个物理硬件上,则在每 个孤立终端上安装应用产品时,必须还要配置一台专用的边缘认证节点设备,这无疑增加了用户的硬件成本。然而在该情况下,通过将边缘认证节点110与客户端节点120集成在同一个物理硬件上,例如,将边缘认证节点110的软件安装在同一个物理硬件上或集成到客户端节点120的软件中则可以明显降低其部署成本。
以下,将结合图2来详细描述各个节点中的功能模块,并将结合图3来详细描述在许可认证过程中各个节点之间的交互流程。
图2是示出了根据本公开实施例的用于许可认证的各个节点的功能模块的示意图。如图2所示,中心认证节点140可以具有以下至少一项功能模块:客户服务140-1、产品服务140-3、许可服务140-5和数据库140-7。需要注意的是:尽管图2中将这些服务模块示出为位于同一节点内,然而实际上这些功能模块可以分散在一个或多个物理硬件上,甚至同一功能模块本身也可分散实现在多个物理硬件上。
本领域技术人员将理解,结合本文公开所描述的各种示例性功能模块可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现所述的功能,但是这种实现决定不应被解释为导致脱离本公开的范围。此外,如下面结合图6所描述的,这些功能模块中的一个或多个可以由图6所示的电子设备600结合相应的软件来实现。
客户服务模块140-1可以用于对客户信息进行管理。例如,客户服务模块140-1可以提供:客户信息注册、客户信息更改、客户信息删除等客户信息的维护、管理工作。更具体地,其可以管理指定客户的相关信息,例如,名称、邮政地址、电子邮件地址、社会统一信用代码、客户类型、其它客户相关信息(例如,注册时间、是否欠费等等)等。
产品服务模块140-3可以用于对产品信息进行管理。例如,产品服务模块140-3可以提供:产品信息注册、产品信息更改、产品信息删除等产品信息的维护、管理工作。更具体地,其可以管理指定产品的相关信息,例如,产品名称、产品版本、产品数量、产品价格、其它产品相关信息(例如,产品有效期等)等。在一些实施例中,产品可以是例如任何需要进行许可认证 的软件应用,例如,微软的Office系列产品、Windows系列产品、赛门铁克的Norton杀毒软件系列产品、京东方的广告发布机、艺术画屏系列产品中的软件等等。许可服务模块140-5可以提供针对指定客户所需要的一个或多个产品的许可服务,并以许可证书的形式发放给相应客户。具体细节以下将在其它实施例中详细描述。
数据库140-7可以是中心式或分布式的安全数据库,其可以保存与前述各个模块有关的数据信息。例如,其可以保存与每个用户专属的密钥信息,以保证企业证书的安全性。与此相对地,在图2所示的实施例中,边缘认证节点110本身并不保存用户的密钥信息,从而避免其在被破解的情况下泄漏相关信息。
如图2所示,边缘认证节点110可以具有以下至少一项功能模块:一个或多个许可代理模块111-1、111-2和配置模块115。边缘认证节点的许可代理模块111可以负责对由中心认证节点140发放的与客户端节点120相关联的许可证书进行认证,并提取相关信息返回给客户端节点120或前端产品125。之后,客户端节点120可以缓存结果到内存或者硬盘上。此外,还可以将与该次认证相关联的任何日志数据记录到边缘认证节点110上(例如,许可次数、许可时间、许可结果等信息)。此外,图2中示出了两个许可代理111-1和111-2,其可以是针对不同客户和/或不同产品进行不同处理的代理。例如,许可代理111-1可以是针对客户1的产品1的许可代理,许可代理111-2可以是针对客户2(如果有的话)的产品2(如果有的话)的许可代理又或者是针对同一客户1的产品2的许可代理(如果有的话)。不同的许可代理111-1、111-2可分别对应于客户端节点中不同的SDK-1 121-1、SDK-2 121-2。
如图2所示,客户端节点110可以具有以下至少一项功能模块:一个或多个SDK(软件开发工具包)121-1、121-2以及客户端节点120的指纹信息。这里,SDK-1 121-1和SDK-2 121-2可以是针对不同应用和/或应用的不同版本的SDK。例如,在客户端节点120是Windows操作系统的情况下,SDK-1 121-1可以是例如产品1中基于C语言的静态库,而SDK-2 121-2可以是例如另一个产品2中基于Java语言的动态库。又或者在客户端节点120是双操作系统平台的情况下,SDK-1 121-1和SDK-2 121-2可以是各个操作系统平台下的相应软件的不同版本。此外,指纹信息123可以是用于唯一识别客户端 节点120(或更一般地,唯一识别与客户端节点120相关联的用户105)的数据信息。例如,其可以是由中心认证节点在许可注册时所生成的唯一标识号码、由国家分配的社会统一信用号码、电子邮件地址、身份证号等。此外,在一些实施例中,指纹信息还可以包括例如客户端节点120所持有的公钥信息,以使得接收到该指纹信息的第三方能够验证与客户端节点120相关联的任何数字签名。此外,在一些实施例中,指纹信息也可以就是公钥信息或能够导出公钥信息的任何信息。因此,在本文的一些实施例中所使用的术语“客户端指纹信息”可以是用于唯一识别并认证相应客户端节点的身份认证信息。
因此,客户端节点120可以通过向边缘认证节点110发送指纹信息,请求边缘认证节点110对中心认证节点140发放的与客户端节点120相关联的许可证书进行认证,并进而获得软件安装、配置的许可125。此外,客户端节点120还可以根据被许可的相应配置来调整前端产品125的相关功能。例如,在前端产品是展台终端的情况下,可以在许可认证成功的情况下调整其显示页面、菜单、按钮的相关设置和/或限制。
此外,在一些实施例中,边缘认证节点110除了可以用来进行许可认证之外,还可以用来进行对与边缘认证节点110相关的感兴趣信息的收集(例如,边缘认证节点110可以对每次许可认证处理进行日志记录,或者统计许可认证频率、成功率等数据),和/或将这些感兴趣信息上传到中心认证节点140。相应地,中心认证节点140可以负责信息汇聚,统计功能(例如,对多个边缘认证节点110的信息进行统计处理等),同时还可以远程对边缘认证节点110进行锁定、下线、升级等处理,以方便中心认证节点140对边缘认证节点110的管理、配置、维护等等。
图3是示出了根据本公开实施例的在各节点之间用于许可认证的流程300的流程图。如图3所示,根据本公开实施例的许可认证方案可以大体上划分为两个阶段:注册阶段和认证阶段。在注册阶段,中心认证节点140可以根据用户(例如,图1所示的用户105)提供的资料(例如,包括相关企业的社会统一信用代码、身份证号、电话号码和/或电子邮件地址等)和选择的产品信息来生成企业的许可证书。然后,可通过离线的方式(例如,实体打印的文件、U盘、电子邮件等)将企业许可证书安全分发给用户。之后,在认证阶段中,用户可以按照认证指南来激活相应的产品。
具体地,在注册阶段中,客户端节点120可以在步骤S310中向中心认证节点140发起许可注册。例如,客户端节点120可以经由各种方式(例如,实体打印文件、线上电子申请等)向中心认证节点140发送许可证书生成请求。该许可证书生成请求中可包括与客户端节点120相关联的请求信息。该请求信息例如可以包括与客户端节点120相关联的身份信息以及与在客户端节点120处待认证的产品相关联的产品信息。在一些实施例中,身份信息可以包括以下至少一项:电子邮箱、电话号码、社会统一信用代码、身份证号码等。此外,在一些实施例中,产品信息可以包括例如以下至少一项:要认证的产品名称、版本、数量、类型等。
接下来,在步骤S320,中心认证节点140可以基于许可证书生成请求中包括的请求信息来生成与客户端节点120相关联的许可证书。在一些实施例中,步骤S320可以包括:基于请求信息来生成与客户端节点相关联的包括客户公钥和客户私钥在内的非对称密钥对。该非对称密钥对可以用于生成例如许可证书的数字签名、对许可证书进行加密等工作。此外,步骤S320还可以包括:基于请求信息来生成许可证书中除了数字签名之外的一个或多个部分,使得一个或多个部分中包含用于绑定身份信息和产品信息的信息。例如,在许可证书中,可以采用JWT标准来生成以下载荷:
此外,步骤S320还可以包括:使用客户私钥对许可证书中除了数字签名 之外的一个或多个部分进行数字签名处理,以生成数字签名。
接下来,在步骤S330,可以向与客户端节点120相关联的边缘认证节点110提供该许可证书,以供边缘认证节点110后续认证之用。例如,在一些实施例中,当用户105购买了相应软件的许可之后,可以在中心认证节点140处认证后,从中心认证节点140获取许可证书,如图3中虚线箭头所指示的步骤S330所示。该许可证书可以采用离线的方式获得,例如,可以通过短消息、U盘拷贝、纸件打印、电子邮件或任何安全的方式来获得。在一些实施例中,该许可证书甚至可以直接内嵌到客户105所具有的边缘认证节点110中,例如在该边缘认证节点110是从中心认证接地点140的提供商处购买的软件和/或硬件的情况下。
此外,在一些实施例中,在步骤S340中,中心认证节点140也可以向客户端节点120发放许可证书,从而间接提供给边缘认证节点110。此外,在步骤S340中,中心认证节点140也可以向客户端节点120提供或分配指纹信息。如前所述,该指纹信息可用于唯一识别客户端节点,可以是例如身份证号、电话号码、电子邮件地址、社会统一信用代码、或者是其它信息。此外,该指纹信息还可以包括中心认证节点所生成的客户密钥对(客户公钥、客户私钥)等。此外,在一些实施例中,也可以仅提供客户公钥,这是因为在本实施例中,客户端节点120无需使用客户私钥来进行任何操作。在一些实施例中,该许可证书和/或指纹信息的发放也可以采用离线的方式。
此外,在一些实施例中,所生成的许可证书可包括以下至少一项信息:签发机构、授权期限、授权类型、授权数量、授权对象、授权产品信息、数字签名。此外,在一些实施例中,中心认证节点140在步骤S320中或之后可以使用与边缘认证节点110事先约定的与客户端节点110相关联的加密密钥对该许可证书进行加密。该加密密钥例如可以是之前生成的客户私钥或任何其它密钥(例如,中心认证节点自身的私钥)。
至此,许可注册阶段至此告一段落。此时,边缘认证节点110和/或客户端节点120此时可以以安全的方式获得许可证书。
接下来,在认证阶段中,在步骤S350,客户端节点120可以向边缘认证节点110发送认证许可请求,该认证许可请求可包括与客户端节点120相关联的客户端指纹信息。然而,在一些实施例中,该客户端指纹信息可用于识别客户端节点120,且因此可以是例如前述指纹信息。在另一些实施例中, 该客户端指纹信息也可以是用于导出前述指纹信息的其它信息。
接下来,在步骤S360中,边缘认证节点110可以基于客户端指纹信息对由中心认证节点140生成的与客户端节点120相关联的许可证书进行解密,以获得与客户端节点120相关联的许可信息。例如,边缘认证节点110可以根据客户端指纹信息中用于识别客户端节点120的部分来确定其所保存的许可证书中与客户端节点120相对应的许可证书。然而,可以确定与指纹信息相对应的解密密钥。例如,在中心认证节点140采用客户私钥对许可证书加密的情况下,边缘认证节点110可以采用(例如,客户端指纹信息中携带的)客户公钥对许可证书进行相应解密。又例如,在中心认证节点140采用事先约定的其它加密密钥对许可证书加密的情况下,边缘认证节点110可以采用相应的解密密钥对许可证书进行相应解密。
接下来,在步骤S370中,边缘认证节点110可以从客户端指纹信息中提取客户公钥信息,使用客户公钥信息对许可证书进行认证;以及响应于许可证书认证成功,提取许可证书中的许可信息。例如,边缘认证节点110可以使用客户公钥信息对许可证书的以下至少一项进行认证:许可证书的数字签名是否合法;许可证书的签发机构是否是合法的签发机构;以及许可证书的有效期是否未到期。此外,边缘认证节点110可提取许可证书中的以下至少一项信息:签发机构、授权类型、授权数量、授权对象、授权产品信息,并例如根据这些具体信息来例如配置前端产品125。此外,在另一些实施例中,边缘认证节点110还可以至少部分基于所提取的许可信息向客户端节点120发送认证许可响应,以许可客户端节点120根据该许可信息来进行相应配置。
此外,在认证阶段中,如果边缘认证节点110和中心认证节点140之间存在通信可能,例如存在用于二者之间交换信息的通信链路(即,通信不完全受限),则边缘认证节点110还可以附加地工作在云认证模式下。在该模式下,边缘认证节点110还可以在步骤S372向中心认证节点140转发认证许可请求(或基于该认证许可请求所生成的其它请求);以及从中心认证节点140接收响应于该认证许可请求的中心认证许可响应。之后,边缘认证节点110可以基于在步骤S370中所获得的许可信息和从中心认证节点140接收到的中心认证许可响应向客户端节点120发送认证许可响应。例如,当中心认证节点140在步骤S330发放了许可证书之后发现与客户端节点120相关联的用户105欠费或例如申请提前退货,此时应当撤销或修改之前发放的许可。在这 种情况下,如果边缘认证节点110和中心认证节点140之间无法通信,则通常许可证书无法被撤销。然后通过步骤S372和S374,中心认证节点140可以指示边缘认证节点110撤销或修改之前发放的许可证书。
此外,在一些实施例中,当采用上述边缘认证节点110和中心认证节点140的混合认证方式时,可以在这二者之间采用安全的通信协议,例如,HTTPs协议。此外,在例如二者之间存在可信的通信信道(例如,二者之间存在虚拟私有网络(VPN)隧道)的情况下,也支持在采用无加密的通信协议,例如HTTP。然而,需要注意的是:本公开所使用的通信协议包括但不限于上述提出的具体示例。此外,当边缘认证节点110和中心认证节点140之间不存在网络的情况下(例如,边缘认证节点110处于图1所示的受限的企业私有网络100中),且边缘认证节点120和客户端节点110处于同一物理硬件上的情况下(例如,边缘认证节点120可作为内置模块内置于客户端节点110中时),可采用本地SDK直接认证方式。例如,在这两个节点之间可通过函数调用的方式(例如,库文件、系统函数调用等)来实现二者之间的通信。
在步骤S390,边缘认证节点110可以至少部分根据步骤S370中的认证结果(和/或来自中心认证节点140的中心认证许可响应)向客户端节点120发送认证许可响应,以指示客户端节点120处的产品进行相应配置。在一些实施例中,客户端节点120可根据得到的许可响应,对相关应用进行授权,应用可以根据许可响应来控制例如三个层面的使用授权(但不限于此):
1、功能模块:限制某些功能,必须是某些软件版本授权使用的;
2、资源限制:限制某些计算模型使用的资源数量必须是软件许可证书的范围内;以及
3、数据限制:限制某些数据从不同粒度的获取。
从而通过使用上述许可认证方案,可以在保证许可证书安全性的同时,降低对网络认证的要求并提供了本地认证的可能性。
此外,需要注意的是:上面图3所示的各个节点之间的消息交互可以是基于底层的传输控制协议(TCP)协议的三次握手的方式,而其应用层的业务交互可采用请求-响应的方式来进行。然而需要注意的是本公开不限于此。例如,在另一些实施例中,底层也可以采用例如用户数据报协议(UDP),上层也可以采用去中心化的方式来实现。
图4是示出了根据本公开实施例的在边缘认证节点110处执行的用于许可认证的示例方法400的流程图。如图4所示,方法400可以包括步骤S410、S420和S430。然而需要注意的是,尽管图4中仅示出了三个步骤,然而方法400可以包括更多、更少或不同的步骤,且这些步骤的执行顺序不一定严格按照图4所示出的顺序来执行。
如图4所示,方法400可以包括步骤S410,在步骤S410,可以从客户端节点120接收认证许可请求,该认证许可请求可包括与客户端节点120相关联的客户端指纹信息。
在步骤S420,可基于客户端指纹信息对由中心认证节点140生成的与客户端节点120相关联的许可证书进行解密,以获得与客户端节点120相关联的许可信息。
在步骤S430,可至少部分基于所获得的许可信息向客户端节点120发送认证许可响应。
在一些实施例中,步骤S420可包括:基于客户端指纹信息来确定与客户端节点相对应的解密密钥;使用解密密钥对许可证书进行解密。在一些实施例中,步骤S420之后,方法400还可包括:从客户端指纹信息中提取客户公钥信息;使用客户公钥信息对许可证书进行认证;以及响应于许可证书认证成功,提取许可证书中的许可信息。在一些实施例中,使用客户公钥信息对许可证书进行认证的步骤可包括认证许可证书的以下至少一项:许可证书的数字签名是否合法;许可证书的签发机构是否是合法的签发机构;以及许可证书的有效期是否未到期。在一些实施例中,提取许可证书中的许可信息的步骤可包括提取许可证书中的以下至少一项信息:签发机构、授权类型、授权数量、授权对象、授权产品信息。在一些实施例中,步骤S430可包括:至少部分基于所提取的许可信息向客户端节点120发送认证许可响应,以许可客户端节点120根据许可信息来进行相应配置。
在一些实施例中,在步骤S410之后,方法400还可包括:向中心认证节点140转发认证许可请求;以及从中心认证节点140接收响应于认证许可请求的中心认证许可响应,其中,步骤S430可包括:基于所获得的许可信息和从中心认证节点140接收到的中心认证许可响应向客户端节点120发送认证许可响应。在一些实施例中,许可证书可以是边缘认证节点110以离线方式从中心认证节点140获取到的。
在一些实施例中,离线方式可以包括以下至少一项:实体文件、短消息、电子邮件、便携式存储器。在一些实施例中,许可证书可以是根据JWT协议来生成的。在一些实施例中,认证许可请求可以是基于HTTP/HTTPs的无状态请求。在一些实施例中,边缘认证节点110和客户端节点120可以部署于同一物理硬件上。在一些实施例中,方法400还可以包括:响应于从客户端节点120接收到认证许可请求,在边缘认证节点120处记录与认证许可请求相关的认证许可会话的日志数据。在一些实施例中,客户端指纹信息是用于唯一识别并认证客户端节点的身份认证信息。在一些实施例中,方法400还可以包括:收集与边缘认证节点110、客户端节点120和许可认证中至少一项有关的信息;以及向中心认证节点140上传所收集的信息。
此外,需要注意的是:在一些实施例中,所使用的术语“离线”可以指的是采用与发起许可申请或注册的方式不同的方式来发放许可证书。例如,当客户端节点120通过互联网(例如,通过浏览器,或更具体地通过HTTP/HTTPs协议)来进行许可注册时,中心认证节点140可以通过例如电子邮件、邮寄实体打印件、邮寄U盘之类的方式发放许可证书。在这个意义上来说,其类似于通信系统中所使用的术语“带外(out-of-band)通信”。换言之,通过将许可注册与许可证书发放这两个过程使用不同的通信方式,可以有效地提升安全性、降低受到例如中间人攻击之类的风险。
图5是示出了根据本公开实施例的在中心认证节点140处执行的用于生成许可证书的示例方法500的流程图。如图5所示,方法500可以包括步骤S510、S520和S530。然而需要注意的是,尽管图5中仅示出了三个步骤,然而方法500可以包括更多、更少或不同的步骤,且这些步骤的执行顺序不一定严格按照图5所示出的顺序来执行。
如图5所示,方法500可以包括步骤S510,在步骤S510,可以接收与客户端节点120相关联的许可证书生成请求。
在步骤S520,可以基于与许可证书生成请求中包括的请求信息来生成与客户端节点120相关联的许可证书。
在步骤S530,可以向与客户端节点120相关联的边缘认证节点110提供许可证书,以供边缘认证节点110后续认证之用。
在一些实施例中,请求信息可以包括:与客户端节点120相关联的身份信息;以及与在客户端节点120处待认证的产品相关联的产品信息。在一些 实施例中,身份信息可以包括以下至少一项:电子邮箱、电话号码、社会统一信用代码、身份证号码。在一些实施例中,许可证书可以包括以下至少一项信息:签发机构、授权期限、授权类型、授权数量、授权对象、授权产品信息、数字签名。在一些实施例中,步骤S520可以包括:基于请求信息来生成与客户端节点120相关联的包括客户公钥和客户私钥在内的非对称密钥对;基于请求信息来生成许可证书中除了数字签名之外的一个或多个部分,使得该一个或多个部分中包含用于绑定身份信息和产品信息的信息;使用客户私钥对许可证书中除了数字签名之外的一个或多个部分进行数字签名处理,以生成数字签名。在一些实施例中,方法500还可以包括:使用与边缘认证节点110事先约定的与客户端节点相关联的加密密钥对许可证书进行加密。在一些实施例中,方法500还可以包括:从边缘认证节点110接收转发的认证许可请求;基于与认证许可请求中包括的与客户端节点120相关联的客户端指纹信息来认证与客户端节点120相关联的许可证书;以及基于认证的结果向边缘认证节点1J0发送中心认证许可响应。在一些实施例中,客户端指纹信息是用于唯一识别并认证客户端节点的身份认证信息。在一些实施例中,方法500还可以包括:接收与边缘认证节点110、客户端节点120和许可认证中至少一项有关的信息;对接收到的信息执行统计分析。在一些实施例中,方法500还可以包括:对边缘认证节点110执行远程管理功能,该远程管理功能可包括以下至少一项:锁定、下线、升级、配置、重启等。
图6是示出了根据本公开实施例的用于许可认证的示例电子设备的示例硬件布置600的框图。硬件布置600包括处理器606(例如,数字信号处理器(DSP)、中央处理单元(CPU)等)。处理器606可以是用于执行本文描述的流程的不同动作的单一处理单元或者是多个处理单元。布置600还可以包括用于从其他实体接收信号的输入单元602、以及用于向其他实体提供信号的输出单元604。输入单元602和输出单元604可以被布置为单一实体或者是分离的实体。
此外,布置600可以包括具有非易失性或易失性存储器形式的至少一个可读存储介质608,例如是电可擦除可编程只读存储器(EEPROM)、闪存、和/或硬盘驱动器。可读存储介质608包括计算机程序610,该计算机程序610包括代码/计算机可读指令,其在由布置600中的处理器606执行时使得硬件布置600和/或包括硬件布置600在内的电子设备可以执行例如上面结合 图3~5所描述的任意节点的流程及其任何变形。
在一些实施例中,计算机程序610可被配置为具有例如计算机程序模块610A~610C架构的计算机程序代码。因此,在例如边缘认证节点110中使用硬件布置600时的示例实施例中,布置600的计算机程序中的代码包括:模块610A,用于从客户端节点120接收认证许可请求,该认证许可请求可包括与客户端节点120相关联的客户端指纹信息。计算机程序中的代码还包括:模块610B,用于基于客户端指纹信息对由中心认证节点140生成的与客户端节点120相关联的许可证书进行解密,以获得与客户端节点120相关联的许可信息。计算机程序中的代码还包括:模块610C,用于至少部分基于所获得的许可信息向客户端节点120发送认证许可响应。
此外,在例如中心认证节点140中使用硬件布置600时的示例实施例中,布置600的计算机程序中的代码包括:模块610A,用于接收与客户端节点120相关联的许可证书生成请求。计算机程序中的代码还包括:模块610B,用于基于与许可证书生成请求中包括的请求信息来生成与客户端节点120相关联的许可证书。计算机程序中的代码还包括:模块610C,用于向与客户端节点120相关联的边缘认证节点110提供许可证书,以供边缘认证节点110后续认证之用。
计算机程序模块实质上可以执行图3~5中所示出的流程中的各个动作,以模拟电子设备。换言之,当在处理器606中执行不同计算机程序模块时,它们可以对应于电子设备中的不同功能单元。
尽管上面结合图6所公开的实施例中的代码手段被实现为计算机程序模块,其在处理器606中执行时使得硬件布置600执行上面结合图3~5所描述的动作,然而在备选实施例中,该代码手段中的至少一项可以至少被部分地实现为硬件电路。
处理器可以是单个CPU(中央处理单元),但也可以包括两个或更多个处理单元。例如,处理器可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))。处理器还可以包括用于缓存用途的板载存储器。计算机程序可以由连接到处理器的计算机程序产品来承载。计算机程序产品可以包括其上存储有计算机程序的计算机可读介质。例如,计算机程序产品可以是闪存、随机存取存储器(RAM)、只读存储器(ROM)、EEPROM,且上述计算机程序模块在备选实施例中可以用 UE内的存储器的形式被分布到不同计算机程序产品中。
至此已经结合优选实施例对本公开进行了描述。应该理解,本领域技术人员在不脱离本公开的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本公开的范围不局限于上述特定实施例,而应由所附权利要求所限定。
此外,在本文中被描述为通过纯硬件、纯软件和/或固件来实现的功能,也可以通过专用硬件、通用硬件与软件的结合等方式来实现。例如,被描述为通过专用硬件(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)来实现的功能,可以由通用硬件(例如,中央处理单元(CPU)、数字信号处理器(DSP))与软件的结合的方式来实现,反之亦然。
Claims (29)
- 一种在边缘认证节点处执行的用于认证许可的方法,包括:从客户端节点接收认证许可请求,所述认证许可请求包括与所述客户端节点相关联的客户端指纹信息;基于所述客户端指纹信息对由中心认证节点生成的与所述客户端节点相关联的许可证书进行解密,以获得与所述客户端节点相关联的许可信息;以及至少部分基于所获得的许可信息向所述客户端节点发送认证许可响应。
- 根据权利要求1所述的方法,其中,基于所述客户端指纹信息对由中心认证节点生成的与所述客户端节点相关联的许可证书进行解密的步骤包括:基于所述客户端指纹信息来确定与所述客户端节点相对应的解密密钥;使用所述解密密钥对所述许可证书进行解密。
- 根据权利要求1所述的方法,其中,在基于所述客户端指纹信息对由中心认证节点生成的与所述客户端节点相关联的许可证书进行解密的步骤之后,所述方法还包括:从所述客户端指纹信息中提取客户公钥信息;使用所述客户公钥信息对所述许可证书进行认证;以及响应于所述许可证书认证成功,提取所述许可证书中的许可信息。
- 根据权利要求3所述的方法,其中,使用所述客户公钥信息对所述许可证书进行认证的步骤包括认证所述许可证书的以下至少一项:所述许可证书的数字签名是否合法;所述许可证书的签发机构是否是合法的签发机构;以及所述许可证书的有效期是否未到期。
- 根据权利要求1所述的方法,其中,提取所述许可证书中的许可信息的步骤包括提取所述许可证书中的以下至少一项信息:签发机构、授权类型、授权数量、授权对象、授权产品信息。
- 根据权利要求3所述的方法,其中,至少部分基于所获得的许可信息向所述客户端节点发送认证许可响应的步骤包括:至少部分基于所提取的许可信息向所述客户端节点发送认证许可响应,以许可所述客户端节点根据所述许可信息来进行相应配置。
- 根据权利要求1所述的方法,其中,在从客户端节点接收认证许可请求的步骤之后,所述方法还包括:向中心认证节点转发所述认证许可请求;以及从所述中心认证节点接收响应于所述认证许可请求的中心认证许可响应,其中,至少部分基于所获得的许可信息向所述客户端节点发送认证许可响应的步骤包括:基于所获得的许可信息和从所述中心认证节点接收到的中心认证许可响应向所述客户端节点发送认证许可响应。
- 根据权利要求1所述的方法,其中,所述许可证书是所述边缘认证节点以离线方式从所述中心认证节点获取到的。
- 根据权利要求8所述的方法,其中,所述离线方式包括以下至少一项:实体文件、短消息、电子邮件、便携式存储器。
- 根据权利要求1所述的方法,其中,所述许可证书是根据JWT协议来生成的。
- 根据权利要求1所述的方法,其中,所述认证许可请求是基于超文本传输协议/超文本传输安全协议的无状态请求。
- 根据权利要求1所述的方法,其中,所述边缘认证节点和所述客户端节点部署于同一物理硬件上。
- 根据权利要求1所述的方法,还包括:响应于从客户端节点接收到认证许可请求,在所述边缘认证节点处记录与所述认证许可请求相关的认证许可会话的日志数据。
- 根据权利要求3所述的方法,其中,所述客户端指纹信息是用于唯一识别并认证所述客户端节点的身份认证信息。
- 根据权利要求1所述的方法,还包括:收集与所述边缘认证节点、所述客户端节点和许可认证中至少一项有关的信息;以及向所述中心认证节点上传所收集的信息。
- 一种用于认证许可的边缘认证节点,包括:处理器;存储器,其上存储有指令,所述指令在由所述处理器执行时,使得所述处理器执行根据权利要求1~15中任一项所述的方法。
- 一种在中心认证节点处执行的用于生成许可证书的方法,包括:接收与客户端节点相关联的许可证书生成请求;基于与所述许可证书生成请求中包括的请求信息来生成与所述客户端节点相关联的许可证书;以及向与所述客户端节点相关联的边缘认证节点提供所述许可证书,以供所述边缘认证节点后续认证之用。
- 根据权利要求17所述的方法,其中,所述请求信息包括:与所述客户端节点相关联的身份信息;以及与在所述客户端节点处待认证的产品相关联的产品信息。
- 根据权利要求18所述的方法,其中,所述身份信息包括以下至少一项:电子邮箱、电话号码、社会统一信用代码、身份证号码。
- 根据权利要求17所述的方法,其中,所述许可证书包括以下至少一项信息:签发机构、授权期限、授权类型、授权数量、授权对象、授权产品信息、数字签名。
- 根据权利要求20所述的方法,其中,基于与所述许可证书生成请求中包括的请求信息来生成与所述客户端节点相关联的许可证书的步骤包括:基于所述请求信息来生成与所述客户端节点相关联的包括客户公钥和客户私钥在内的非对称密钥对;基于所述请求信息来生成所述许可证书中除了数字签名之外的一个或多个部分,使得所述一个或多个部分中包含用于绑定所述身份信息和所述产品信息的信息;使用所述客户私钥对所述许可证书中除了数字签名之外的一个或多个部分进行数字签名处理,以生成所述数字签名。
- 根据权利要求21所述的方法,还包括:使用与所述边缘认证节点事先约定的与所述客户端节点相关联的加密密钥对所述许可证书进行加密。
- 根据权利要求17所述的方法,还包括:从所述边缘认证节点接收转发的认证许可请求;基于与所述认证许可请求中包括的与客户端节点相关联的客户端指纹信息来认证与所述客户端节点相关联的许可证书;以及基于认证的结果向所述边缘认证节点发送中心认证许可响应。
- 根据权利要求23所述的方法,其中,所述客户端指纹信息是用于唯一识别并认证所述客户端节点的身份认证信息。
- 根据权利要求17所述的方法,还包括:接收与所述边缘认证节点、所述客户端节点和许可认证中至少一项有关的信息;对接收到的信息执行统计分析。
- 根据权利要求17所述的方法,还包括:对所述边缘认证节点执行远程管理功能,所述远程管理功能包括以下至少一项:锁定、下线、升级、配置、重启。
- 一种用于认证许可的中心认证节点,包括:处理器;存储器,其上存储有指令,所述指令在由所述处理器执行时,使得所述处理器执行根据权利要求17~26中任一项所述的方法。
- 一种用于许可认证的系统,包括:根据权利要求27所述的中心认证节点;根据权利要求16所述的边缘认证节点;以及一个或多个客户端节点。
- 一种存储指令的计算机可读存储介质,所述指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~15和17~26中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202080000461.2A CN113748657B (zh) | 2020-03-31 | 2020-03-31 | 用于许可认证的方法、节点、系统和计算机可读存储介质 |
EP20900708.7A EP4131879A4 (en) | 2020-03-31 | 2020-03-31 | LICENSE AUTHENTICATION METHOD, NODE, SYSTEM AND COMPUTER READABLE STORAGE MEDIA |
US17/259,990 US11790054B2 (en) | 2020-03-31 | 2020-03-31 | Method for license authentication, and node, system and computer-readable storage medium for the same |
PCT/CN2020/082497 WO2021195985A1 (zh) | 2020-03-31 | 2020-03-31 | 用于许可认证的方法、节点、系统和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2020/082497 WO2021195985A1 (zh) | 2020-03-31 | 2020-03-31 | 用于许可认证的方法、节点、系统和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021195985A1 true WO2021195985A1 (zh) | 2021-10-07 |
Family
ID=77926936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2020/082497 WO2021195985A1 (zh) | 2020-03-31 | 2020-03-31 | 用于许可认证的方法、节点、系统和计算机可读存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11790054B2 (zh) |
EP (1) | EP4131879A4 (zh) |
CN (1) | CN113748657B (zh) |
WO (1) | WO2021195985A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115146252A (zh) * | 2022-09-05 | 2022-10-04 | 深圳高灯计算机科技有限公司 | 授权认证方法、系统、计算机设备和存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022020143A (ja) * | 2020-07-20 | 2022-02-01 | 富士通株式会社 | 通信プログラム、通信装置、及び通信方法 |
CN114726630B (zh) * | 2022-04-13 | 2023-06-16 | 辽宁华盾安全技术有限责任公司 | 基于License的信息安全授权方法、装置、电子设备及介质 |
CN115037547B (zh) * | 2022-06-22 | 2024-04-05 | 北京天拓四方科技有限公司 | 软件授权方法及系统 |
CN115955361B (zh) * | 2023-03-09 | 2023-05-23 | 北京智芯微电子科技有限公司 | 配电物联网端侧设备接入方法及私钥和许可证书生成方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103237235A (zh) * | 2013-03-18 | 2013-08-07 | 中国科学院信息工程研究所 | 一种面向云电视终端身份认证实现方法及系统 |
CN109347888A (zh) * | 2018-12-21 | 2019-02-15 | 北京博明信德科技有限公司 | 基于RESTful的鉴权方法、网关及鉴权设备 |
US20190306157A1 (en) * | 2018-03-30 | 2019-10-03 | Lendingclub Corporation | Authenticating and authorizing users with jwt and tokenization |
CN110569638A (zh) * | 2018-06-06 | 2019-12-13 | 中移(苏州)软件技术有限公司 | 一种api认证的方法、装置、存储介质及计算设备 |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69228350T2 (de) | 1991-05-08 | 1999-09-23 | Digital Equipment Corp | Verwaltungssschnittstelle und format für lizenzverwaltungssystem |
EP1555591B1 (en) | 1995-02-13 | 2013-08-14 | Intertrust Technologies Corp. | Secure transaction management |
US7171662B1 (en) * | 1998-03-18 | 2007-01-30 | Microsoft Corporation | System and method for software licensing |
US7136838B1 (en) * | 1999-03-27 | 2006-11-14 | Microsoft Corporation | Digital license and method for obtaining/providing a digital license |
WO2001074138A2 (en) * | 2000-04-03 | 2001-10-11 | Wireless Knowledge | Software licensing system |
JP4039923B2 (ja) * | 2002-09-20 | 2008-01-30 | 富士通株式会社 | ソフトウェア実行管理装置、ソフトウェア実行管理方法、およびソフトウェア実行管理プログラム |
US20080262968A1 (en) * | 2007-03-26 | 2008-10-23 | Infosys Technologies Ltd. | Software licensing control via mobile devices |
CN101541002A (zh) * | 2008-03-21 | 2009-09-23 | 展讯通信(上海)有限公司 | 一种基于Web服务器的移动终端的软件许可证下载方法 |
US8301879B2 (en) * | 2009-01-26 | 2012-10-30 | Microsoft Corporation | Conversation rights management |
US8869289B2 (en) * | 2009-01-28 | 2014-10-21 | Microsoft Corporation | Software application verification |
CN101546366B (zh) * | 2009-02-11 | 2011-11-30 | 广州杰赛科技股份有限公司 | 数字版权管理系统及管理方法 |
US9325680B2 (en) * | 2009-05-15 | 2016-04-26 | Adobe Systems Incorporated | Digital rights management retrieval system |
US9633183B2 (en) * | 2009-06-19 | 2017-04-25 | Uniloc Luxembourg S.A. | Modular software protection |
US20120216269A1 (en) * | 2011-02-18 | 2012-08-23 | Mitel Networks Corporation | Software licensing in a virtualization environment |
WO2013074795A1 (en) * | 2011-11-16 | 2013-05-23 | Nl Systems, Llc | System and method for secure software license distribution |
US20140165209A1 (en) * | 2012-12-11 | 2014-06-12 | Verizon Patent And Licensing Inc. | Digital content delivery platform for multiple retailers |
US9436807B2 (en) * | 2013-07-03 | 2016-09-06 | Adobe Systems Incorporated | Method and apparatus for providing digital rights management service in the cloud |
EP3062255A1 (de) * | 2015-02-25 | 2016-08-31 | Siemens Aktiengesellschaft | Lizensierung von Softwareprodukten |
US20170357784A1 (en) * | 2016-06-14 | 2017-12-14 | Arista Networks, Inc. | Method and system for license management |
EP3639174A4 (en) | 2017-05-22 | 2020-11-18 | Macpaw Inc. | SOFTWARE ACTIVATION AND LICENSE TRACKING SYSTEM AND METHOD |
CN108833114A (zh) | 2018-06-13 | 2018-11-16 | 上海交通大学 | 一种基于区块链的去中心化身份认证系统及方法 |
CN109003083A (zh) | 2018-07-27 | 2018-12-14 | 山东渔翁信息技术股份有限公司 | 一种基于区块链的ca认证方法、装置及电子设备 |
CN110061851A (zh) | 2019-04-28 | 2019-07-26 | 广州大学 | 一种去中心化的跨信任域认证方法及系统 |
US20220318345A1 (en) * | 2019-05-21 | 2022-10-06 | Agilent Technologies, Inc. | Software licensing management and authentication |
CN111625778A (zh) * | 2020-04-14 | 2020-09-04 | 华帝股份有限公司 | 一种软件许可分发和回收的方法及系统 |
-
2020
- 2020-03-31 WO PCT/CN2020/082497 patent/WO2021195985A1/zh unknown
- 2020-03-31 EP EP20900708.7A patent/EP4131879A4/en active Pending
- 2020-03-31 CN CN202080000461.2A patent/CN113748657B/zh active Active
- 2020-03-31 US US17/259,990 patent/US11790054B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103237235A (zh) * | 2013-03-18 | 2013-08-07 | 中国科学院信息工程研究所 | 一种面向云电视终端身份认证实现方法及系统 |
US20190306157A1 (en) * | 2018-03-30 | 2019-10-03 | Lendingclub Corporation | Authenticating and authorizing users with jwt and tokenization |
CN110569638A (zh) * | 2018-06-06 | 2019-12-13 | 中移(苏州)软件技术有限公司 | 一种api认证的方法、装置、存储介质及计算设备 |
CN109347888A (zh) * | 2018-12-21 | 2019-02-15 | 北京博明信德科技有限公司 | 基于RESTful的鉴权方法、网关及鉴权设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115146252A (zh) * | 2022-09-05 | 2022-10-04 | 深圳高灯计算机科技有限公司 | 授权认证方法、系统、计算机设备和存储介质 |
CN115146252B (zh) * | 2022-09-05 | 2023-02-21 | 深圳高灯计算机科技有限公司 | 授权认证方法、系统、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113748657A (zh) | 2021-12-03 |
US11790054B2 (en) | 2023-10-17 |
EP4131879A1 (en) | 2023-02-08 |
CN113748657B (zh) | 2023-07-07 |
EP4131879A4 (en) | 2023-05-24 |
US20220012310A1 (en) | 2022-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021195985A1 (zh) | 用于许可认证的方法、节点、系统和计算机可读存储介质 | |
JP6606156B2 (ja) | データセキュリティサービス | |
US9130926B2 (en) | Authorization messaging with integral delegation data | |
JP6348661B2 (ja) | サードパーティの認証サポートを介した企業認証 | |
US10284366B2 (en) | Mobile communication system implementing integration of multiple logins of mobile device applications | |
JP2019091480A (ja) | 画像分析および管理 | |
CN113316783A (zh) | 使用活动目录和一次性口令令牌组合的双因素身份认证 | |
JP6678457B2 (ja) | データセキュリティサービス | |
US8161154B2 (en) | Establishing a thin client terminal services session | |
JP2018518738A (ja) | サーバまたは他の装置からのエントロピーに基づくクライアント装置の認証 | |
US20180159842A1 (en) | System and method for a single sign on connection in a zero-knowledge vault architecture | |
JP2017033339A (ja) | サービス提供システム、情報処理装置、プログラム及びサービス利用情報作成方法 | |
CN107924431B (zh) | 匿名应用程序包装 | |
CN106529216B (zh) | 一种基于公共存储平台的软件授权系统及软件授权方法 | |
US20230244797A1 (en) | Data processing method and apparatus, electronic device, and medium | |
Lim et al. | AuthChain: a decentralized blockchain-based authentication system | |
US11032708B2 (en) | Securing public WLAN hotspot network access | |
CN113574837A (zh) | 跟踪客户端设备上的图像发送者 | |
JP6045018B2 (ja) | 電子署名代行サーバ、電子署名代行システム及び電子署名代行方法 | |
US11611541B2 (en) | Secure method to replicate on-premise secrets in a cloud environment | |
WO2023160632A1 (zh) | 针对飞地实例的云服务访问权限设置方法和云管理平台 | |
US20220311616A1 (en) | Connection resilient multi-factor authentication | |
Varadharajan | Authorization and trust enhanced security for distributed applications | |
CN101674296A (zh) | Ead端点准入防御机制 | |
Marian et al. | A Technical Investigation towards a Cloud-Based Signature Solution |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 20900708 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2020900708 Country of ref document: EP Effective date: 20221031 |