CN112511295B - 接口调用的认证方法、装置、微服务应用和密钥管理中心 - Google Patents

接口调用的认证方法、装置、微服务应用和密钥管理中心 Download PDF

Info

Publication number
CN112511295B
CN112511295B CN202011262826.7A CN202011262826A CN112511295B CN 112511295 B CN112511295 B CN 112511295B CN 202011262826 A CN202011262826 A CN 202011262826A CN 112511295 B CN112511295 B CN 112511295B
Authority
CN
China
Prior art keywords
key
micro
service application
signature
message
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
CN202011262826.7A
Other languages
English (en)
Other versions
CN112511295A (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.)
China Ums Co ltd
Original Assignee
China Ums 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 China Ums Co ltd filed Critical China Ums Co ltd
Priority to CN202011262826.7A priority Critical patent/CN112511295B/zh
Publication of CN112511295A publication Critical patent/CN112511295A/zh
Application granted granted Critical
Publication of CN112511295B publication Critical patent/CN112511295B/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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)
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例提供了一种接口调用的认证方法、装置、微服务应用和密钥管理中心。密钥管理中心通过对获取的至少一组签名密钥和加密密钥进行加密和签名生成响应报文,将响应报文发送至微服务应用,以供微服务应用对响应报文进行验签和解密,生成签名密钥和加密密钥,并能够根据任一组签名密钥和加密密钥对与该组签名密钥和加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用,从而保证了密钥的按需分发和动态更新。

Description

接口调用的认证方法、装置、微服务应用和密钥管理中心
【技术领域】
本发明涉及互联网安全技术领域,尤其涉及一种接口调用的认证方法、装置、微服务应用和密钥管理中心。
【背景技术】
近年来,许多互联网公司将应用架构调整为微服务架构。微服务架构由面向服务的架构(Service-Oriented Architecture,简称SOA)发展而来,微服务架构是指将原有的单体架构应用拆分成若干个微服务应用,每个微服务应用拥有自己的进程,微服务应用之间通过超文本传输安全协议(Hyper Text Transfer Protocal over Secure SocketLayer,简称HTTPS)等轻量级协议进行通信。根据己有研究可以知道,使用微服务架构后每个微服务应用能够独立开发和部署,减少了对于地域的依赖,同时可以根据微服务应用提供的功能选择最优的编程语言、数据库等不同的技术,提高系统的可扩展性和可维护性,更好的支持持续集成和持续交付。
微服务应用和其它微服务应用间进行接口调用时,如何确保传输数据的机密性和完整性就显得尤为重要,如果不加以控制,就会让黑客有可乘之机,导致系统数据异常。相关技术中的技术方案中各微服务应用自行维护密钥,不能做到密钥的按需分发和动态更新。
【发明内容】
有鉴于此,本发明实施例提供了一种接口调用的认证方法、装置、微服务应用和密钥管理中心,用以对密钥按需分发和动态更新。
一方面,本发明实施例提供了一种接口调用的认证方法,应用于微服务应用,包括:
对生成的第一报文进行签名生成请求报文,所述第一报文包括微服务应用名;
将所述请求报文发送至密钥管理中心,以供所述密钥管理中心对所述请求报文进行验签生成所述第一报文,获取与所述微服务应用名对应的至少一组签名密钥和加密密钥,对至少一组所述签名密钥和所述加密密钥进行加密和签名生成响应报文;
接收所述密钥管理中心发送的响应报文;
对所述响应报文进行验签和解密,生成至少一组所述签名密钥和所述加密密钥;
根据任一组所述签名密钥和所述加密密钥对与该组所述签名密钥和所述加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用。
可选地,所述对生成的第一报文进行签名生成请求报文之前包括:
接收密钥管理中心发送的密钥更新通知;
从所述密钥管理中心获取密钥管理中心公钥和微服务应用私钥;
根据指定规则生成随机数;
根据所述密钥管理中心公钥对所述随机数进行加密生成加密后的随机数;
根据加密后的随机数、获取的微服务应用名和微服务应用所属区域生成第一报文。
可选地,所述对生成的第一报文进行签名生成请求报文包括:
根据获取的微服务应用私钥对所述第一报文进行签名,生成请求报文。
可选地,所述对所述响应报文进行验签和解密,生成至少一组所述签名密钥和所述加密密钥包括:
根据获取的密钥管理中心公钥对响应报文进行验签;
若验签通过,根据生成的随机数对响应报文进行解密,生成至少一组所述签名密钥和所述加密密钥。
可选地,所述根据任一组所述签名密钥和所述加密密钥对与该组所述签名密钥和所述加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用包括:
根据与其它微服务应用名对应的所述签名密钥对其它微服务应用名所标识的微服务应用对应的请求调用报文进行签名,生成第一签名报文;
根据与其它微服务应用名对应的所述加密密钥对所述第一签名报文进行加密,生成第二报文;
将所述第二报文发送至所述其它微服务应用名所标识的微服务应用,以供其它微服务应用名所标识的微服务应用根据所述加密密钥对所述第二报文进行解密,生成所述第一签名报文;根据签名密钥对所述第一签名报文进行验签,若验签通过,生成所述请求调用报文;根据所述签名密钥对所述请求调用报文进行签名,生成第二签名报文;根据所述加密密钥对所述第二签名报文进行加密,生成第三报文。
接收所述其它微服务应用名所标识的微服务应用发送的所述第三报文;
根据所述加密密钥对所述第三报文进行解密,生成第二签名报文;
根据所述签名密钥对所述第二签名报文进行验签,若验签通过,生成所述请求调用报文,以对其它微服务应用名所标识的微服务应用通过指定协议进行接口调用。
可选地,所述指定协议包括HTTP协议、DUBBO协议、RPC协议或TCP协议。
另一方面,本发明实施例提供了一种接口调用的认证方法,应用于密钥管理中心,包括:
接收微服务应用发送的请求报文,所述请求报文是由微服务应用对生成的第一报文进行签名生成的,所述第一报文包括微服务应用名;
对所述请求报文进行验签生成所述第一报文;
获取与所述微服务应用名对应的至少一组签名密钥和加密密钥;
对至少一组所述签名密钥和所述加密密钥进行加密和签名生成响应报文;
向所述微服务应用发送所述响应报文,以供所述微服务应用对所述响应报文进行验签和解密,生成至少一组所述签名密钥和所述加密密钥;根据任一组所述签名密钥和所述加密密钥对与该组所述签名密钥和所述加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用。
可选地,所述对所述请求报文进行验签生成所述第一报文包括:
根据获取的微服务应用公钥对请求报文进行验签,若验签通过,生成第一报文。
可选地,所述根据获取的微服务应用公钥对请求报文进行验签,若验签通过,生成第一报文之后还包括:
根据生成的密钥管理中心私钥对第一报文进行解密,生成随机数。
可选地,所述对至少一组所述签名密钥和所述加密密钥进行加密和签名生成响应报文包括:
根据获取的密钥有效期、认证算法、至少一组所述签名密钥和所述加密密钥生成第四报文;
根据生成的随机数对所述第四报文进行加密生成密文数据;
根据密钥管理中心私钥对密文数据进行签名,生成响应报文。
另一方面,本发明实施例提供了一种接口调用的认证装置,包括:
第一生成模块,用于对生成的第一报文进行签名生成请求报文,所述第一报文包括微服务应用名;
第一发送模块,用于将所述请求报文发送至密钥管理中心,以供所述密钥管理中心对所述请求报文进行验签生成所述第一报文,获取与所述微服务应用名对应的至少一组签名密钥和加密密钥,对至少一组所述签名密钥和所述加密密钥进行加密和签名生成响应报文;
第一接收模块,用于接收所述密钥管理中心发送的响应报文;
第二生成模块,用于对所述响应报文进行验签和解密,生成至少一组所述签名密钥和所述加密密钥;
接口调用模块,用于根据任一组所述签名密钥和所述加密密钥对与该组所述签名密钥和所述加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用。
另一方面,本发明实施例提供了一种存储介质,包括:所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述接口调用的认证方法。
另一方面,本发明实施例提供了一种微服务应用,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,其特征在于,所述程序指令被处理器加载并执行时实现上述接口调用的认证方法的步骤。
另一方面,本发明实施例提供了一种接口调用的认证装置,包括:
第二接收模块,用于接收微服务应用发送的请求报文,所述请求报文是由微服务应用对生成的第一报文进行签名生成的,所述第一报文包括微服务应用名;
验签生成模块,用于对所述请求报文进行验签生成所述第一报文;
第二获取模块,用于获取与所述微服务应用名对应的至少一组签名密钥和加密密钥;
加密签名生成模块,用于对至少一组所述签名密钥和所述加密密钥进行加密和签名生成响应报文;
第二发送模块,用于向所述微服务应用发送所述响应报文,以供所述微服务应用对所述响应报文进行验签和解密,生成至少一组所述签名密钥和所述加密密钥;根据任一组所述签名密钥和所述加密密钥对与该组所述签名密钥和所述加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用。
另一方面,本发明实施例提供了一种存储介质,其特征在于,包括:所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述接口调用的认证方法。
另一方面,本发明实施例提供了一种密钥管理中心,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,其特征在于,所述程序指令被处理器加载并执行时实现上述接口调用的认证方法的步骤。
本发明实施例提供的接口调用的认证方法的技术方案中,密钥管理中心通过对获取的至少一组签名密钥和加密密钥进行加密和签名生成响应报文,将响应报文发送至微服务应用,以供微服务应用对响应报文进行验签和解密,生成签名密钥和加密密钥,并能够根据任一组签名密钥和加密密钥对与该组签名密钥和加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用,从而保证了密钥的按需分发和动态更新。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的接口调用的认证系统的结构示意图;
图2为本发明实施例提供的一种接口调用的认证方法的流程图;
图3为本发明实施例提供的一种接口调用的认证系统的结构示意图;
图4为图2中步骤101之前的接口调用的认证方法的流程图;
图5为图2中密钥管理中心对至少一组签名密钥和加密密钥进行加密和签名生成响应报文的流程图;
图6为图2中微服务应用对响应报文进行验签和解密,生成至少一组签名密钥和加密密钥的流程图;
图7为图2中微服务应用根据任一组签名密钥和加密密钥对与该组签名密钥和加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用的流程图;
图8为本发明实施例提供的一种接口调用的认证装置的结构示意图;
图9为本发明实施例提供的另一种接口调用的认证装置的结构示意图;
图10为本发明实施例提供的一种微服务应用的示意图;
图11为本发明实施例提供的一种密钥管理中心的示意图。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,甲和/或乙,可以表示:单独存在甲,同时存在甲和乙,单独存在乙这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
相关技术中,多个微服务应用通过配置文件、数据库或多种方式各自维护密钥,当微服务应用提供方的密钥变更后,微服务应用请求方的密钥不能做到按需分发和动态更新。
相关技术中,多个微服务应用之间使用HTTPS协议来访问,通过这种方式保证了数据传输过程中的机密性和完整性,但相关技术的数据传输过程只支持HTTPS协议,对于其它如远程调用协议(Remote Procedure Call,简称RPC)、基于传输控制协议(TransmissionControl Protocol,简称TCP)的Socket等无法很好的支持。
为解决相关技术中的技术问题,本发明提供了一种接口调用的认证系统。图1为本发明实施例提供的接口调用的认证系统的结构示意图,如图1所示,该接口调用的认证系统包括:密钥管理中心1和多个微服务应用2。密钥管理中心1与多个微服务应用2连接。
本发明实施例中,密钥管理中心1是一个控制台服务,密钥管理中心1提供了可视化界面为运营人员提供配置管理服务,还能够为微服务应用2提供密钥和推送接口。
本发明实施例中,微服务应用2能够从密钥管理中心1中获取所需的密钥,从而实现任意两个微服务应用2之间的接口调用。
本发明实施例提供的接口调用的认证方法的技术方案中,密钥管理中心通过对获取的至少一组签名密钥和加密密钥进行加密和签名生成响应报文,将响应报文发送至微服务应用,以供微服务应用对响应报文进行验签和解密,生成签名密钥和加密密钥,并能够根据任一组签名密钥和加密密钥对与该组签名密钥和加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用,从而保证了密钥的按需分发和动态更新。
基于上述接口调用的认证系统,本发明实施例提供了一种接口调用的认证方法。图2为本发明实施例提供的一种接口调用的认证方法的流程图,如图2所示,该方法包括:
步骤101、微服务应用对生成的第一报文进行签名生成请求报文,第一报文包括微服务应用名。
本发明实施例中,微服务应用根据获取的微服务应用私钥对第一报文进行签名,生成请求报文。
本发明实施例中,服务应用根据获取的微服务应用私钥对第一报文进行签名,生成第一报文的签名值。请求报文包括第一报文和第一报文的签名值。
具体地,微服务应用根据获取的微服务应用私钥通过第一签名算法对所述第一报文进行签名,生成请求报文。第一签名算法包括普通签名算法或复杂签名算法。例如:普通签名算法包括摘要算法,摘要算法包括SM3或SHA,复杂签名算法包括SM2WithSM3或RSAWithSha256。
本发明实施例中,图4为图2中步骤101之前的接口调用的认证方法的流程图,如图4所示,步骤101之前包括:
步骤S1、微服务应用接收密钥管理中心发送的密钥更新通知。
本发明实施例中,步骤S1之前还包括密钥管理中心接收运营人员输入的密钥信息,并根据密钥信息生成密钥管理中心公钥、密钥管理中心私钥、微服务应用公钥和微服务应用私钥。
本发明实施例中,当密钥管理中心接收到运营人员输入的密钥信息时,即原密钥信息发生了变化时,密钥管理中心向微服务应用发送密钥更新通知。
本发明实施例中,作为一种可选方案,密钥信息包括明文输入密钥。运营人员向密钥管理中心输入明文输入密钥,密钥管理中心将根据该明文输入密钥生成加密输入密钥,该加密输入密钥包括16进制字符串的SM2WithSM3密钥。
本发明实施例中,对于首次接入到密钥管理中心的微服务应用,该微服务应用向密钥管理中心提供微服务应用的微服务应用名,密钥管理中心可以为微服务应用自动生成微服务应用公钥和微服务应用私钥以供微服务应用使用。
本发明实施例中,当需要对微服务应用公钥和微服务应用私钥修改时,可以在密钥管理中心中,使用更新功能由密钥管理中心自动生成新的微服务应用公钥和微服务应用私钥,原微服务应用公钥和微服务应用私钥将在当天自动失效或强制失效。
步骤S2、微服务应用从密钥管理中心获取密钥管理中心公钥和微服务应用私钥。
本发明实施例中,微服务应用向密钥管理中心发送密钥获取请求,密钥管理中心向微服务应用发送密钥管理中心公钥和微服务应用私钥。
本发明实施例中,若微服务应用未接收到密钥管理中心发送的密钥更新通知,微服务应用也能够从密钥管理中心主动获取密钥管理中心公钥和微服务应用私钥。
步骤S3、微服务应用根据指定规则生成随机数。
本步骤中,作为一种可选方案,指定规则包括将精确到毫秒的当前时间作为随机数。例如:精确到毫秒的当前时间为2020年06月04日18时59分04.23秒,则随机数为2020060418590423。
步骤S4、微服务应用根据密钥管理中心公钥对随机数进行加密生成加密后的随机数。
本步骤中,微服务应用根据密钥管理中心公钥通过第一加密算法对随机数进行加密生成加密后的随机数,第一加密算法包括对称加密算法或非对称加密算法,例如:对称加密算法包括SM4或3DES。
步骤S5、微服务应用根据加密后的随机数、获取的微服务应用名和微服务应用所属区域生成第一报文。
本发明实施例中,第一报文包括JS对象简谱(JavaScript Object Notation,JSON)报文。
本发明实施例中,密钥管理中心预先接收运营人员输入的微服务应用名和微服务应用所属区域,密钥管理中心存储有微服务应用名和微服务应用所属区域。
本步骤中,微服务应用从密钥管理中心获取微服务应用名和微服务应用所属区域。
本发明实施例中,步骤101中的请求报文组成如下表1所示:
表1
Figure BDA0002775183030000111
根据上表1所示,请求报文包括方式(Method)、头部(Headers)和体(Body)。其中,“Headers”中存储有签名所需的签名数据。具体地,“Headers”中的内容长度(Content-Length)存储有加密后的“Body”长度,“Headers”中的X-授权(X-Authorization)存储有对报文进行签名后的16进制字符串。
“Body”中存储有报文内容。具体地,“Body”中存储有加密后报文的16进制字符串。例如:“Body”中存储有加密后的随机数、获取的微服务应用名和微服务应用所属区域。
本发明实施例中,接口调用的认证方法的各安全认证操作均由软件开发工具包(Software Development Kit,SDK)进行处理。
步骤102、微服务应用将请求报文发送至密钥管理中心。
作为一种可选方案,微服务应用通过HTTP REST的POST方式将请求报文发送至密钥管理中心。
步骤103、密钥管理中心对请求报文进行验签生成第一报文。
具体地,密钥管理中心根据获取的微服务应用公钥对请求报文进行验签,若验签通过,生成第一报文。
本发明实施例中,密钥管理中心根据微服务应用公钥对第一报文进行签名计算,得到第一报文的签名值。密钥管理中心对微服务应用发送的请求报文进行解密,生成第一报文的签名值,再将第一报文的签名值和密钥管理中心计算出的第一报文的签名值进行比对,若微服务应用发送的签名值和密钥管理中心计算出的签名值相同,则验签通过。
本发明实施例中,密钥管理中心根据获取的微服务应用公钥钥通过第一签名算法对所述请求报文进行验签,生成第一报文。
步骤104、密钥管理中心获取与微服务应用名对应的至少一组签名密钥和加密密钥。
本发明实施例中,密钥管理中心存储有微服务应用名与至少一组签名密钥和加密密钥的对应关系,一个微服务应用名与一组签名密钥和加密密钥一一对应。
步骤105、密钥管理中心对至少一组签名密钥和加密密钥进行加密和签名生成响应报文。
本发明实施例中,图5为图2中密钥管理中心对至少一组签名密钥和加密密钥进行加密和签名生成响应报文的流程图,如图5所示,步骤105具体包括:
步骤1051、密钥管理中心根据获取的密钥有效期、认证算法、至少一组签名密钥和加密密钥生成第四报文。
本步骤中,密钥管理中心将密钥有效期、认证算法、至少一组签名密钥和加密密钥进行组装,生成第四报文。
本发明实施例中,第四报文包括JSON报文。
本发明实施例中,密钥管理中心接收运营人员输入的密钥有效期和/或认证算法。
本发明实施例中,当微服务应用接入密钥管理中心后,密钥管理中心需要对微服务应用进行授权操作,密钥管理中心设置微服务应用可以访问哪些微服务应用以及可以被哪些微服务应用访问。密钥管理中心在进行授权设置的时候,需要指定授权的微服务应用的认证算法、有效期等,密钥管理中心将自动生成对应的至少一组签名密钥和加密密钥,待后续微服务应用通过接口从密钥管理中心获取所需的至少一组签名密钥和加密密钥。
作为一种可选方案,若密钥有效期设置为2天,密钥管理中心中密钥有效期对应的加密密钥和签名密钥使用时间若大于2天,则加密密钥和签名密钥失效。
本发明实施例中,若认证算法为非对称算法,则签名密钥和加密密钥分别包括两对密钥,例如:签名密钥包括签名私钥和签名公钥,加密密钥包括加密私钥和加密公钥。
本发明实施例中,通过HTTP REST的方式,各微服务应用通过自身的微服务应用的微服务应用名获取到和其相关的微服务应用请求方及微服务应用提供方的微服务应用名、密钥有效期和至少一组签名密钥和加密密钥等信息。
步骤1052、密钥管理中心根据生成的随机数对第四报文进行加密生成密文数据。
本发明实施例中,密钥管理中心根据随机数通过第二加密算法对第四报文进行加密生成密文数据,第二加密算法包括对称加密算法或非对称加密算法,例如:对称加密算法包括SM4或3DES。
步骤1053、密钥管理中心根据密钥管理中心私钥对密文数据进行签名,生成响应报文。
具体地,密钥管理中心根据密钥管理中心私钥通过第二签名算法对密文数据进行签名,生成响应报文。第二签名算法包括普通签名算法或复杂签名算法。例如:普通签名算法包括摘要算法,例如,摘要算法包括SM3或SHA,复杂签名算法包括SM2WithSM3或RSAWithSha256。
本发明实施例中,密钥管理中心根据密钥管理中心私钥对密文数据进行签名,生成密文数据的签名值。响应报文包括密文数据和密文数据的签名值。
步骤106、微服务应用接收密钥管理中心发送的响应报文。
步骤107、微服务应用对响应报文进行验签和解密,生成至少一组签名密钥和加密密钥。
本发明实施例中,图6为图2中微服务应用对响应报文进行验签和解密,生成至少一组签名密钥和加密密钥的流程图,如图6所示,步骤107具体包括:
步骤1071、微服务应用根据获取的密钥管理中心公钥对响应报文进行验签。
本发明实施例中,微服务应用根据获取的密钥管理中心公钥通过第二签名算法对响应报文进行验签。
本发明实施例中,微服务应用根据密钥管理中心公钥对密文数据进行签名计算,得到密文数据的签名值。微服务应用对密钥管理中心发送的响应报文进行解密,生成密文数据的签名值,再将密文数据的签名值和微服务应用计算出的密文数据的签名值进行比对,若密钥管理中心发送的签名值和微服务应用计算出的签名值相同,则验签通过。
步骤1072、若验签通过,微服务应用根据生成的随机数对响应报文进行解密,生成至少一组签名密钥和加密密钥。
本发明实施例中,微服务应用根据生成的随机数通过第二加密算法对响应报文进行解密,生成至少一组签名密钥和加密密钥。
步骤108、微服务应用根据任一组签名密钥和加密密钥对与该组签名密钥和加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用。
本发明实施例中,指定协议包括超文本传输协议(Hyper Text TransferProtocal,简称HTTP)、DUBBO协议、RPC协议或TCP协议。
本发明实施例中,图3为本发明实施例提供的一种接口调用的认证系统的结构示意图,如图3所示,密钥管理中心1与微服务应用请求方21连接,密钥管理中心1与微服务应用提供方22连接,微服务应用请求方21与微服务应用提供方22连接。
本步骤中,微服务应用包括微服务应用请求方21,其它微服务应用名所标识的微服务应用包括微服务应用提供方22。
作为一种可选方案,微服务应用请求方21可对应至少一个微服务应用提供方22,即微服务应用请求方21可与至少一个微服务应用提供方22进行接口调用。
本发明实施例中,图7为图2中微服务应用根据任一组签名密钥和加密密钥对与该组签名密钥和加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用的流程图,如图7所示,步骤108具体包括:
步骤1081、微服务应用根据与其它微服务应用名对应的签名密钥对其它微服务应用名所标识的微服务应用对应的请求调用报文进行签名,生成第一签名报文。
本发明实施例中,密钥管理中心存储有微服务应用请求方21的应用名和微服务应用提供方22的应用名的对应关系,微服务应用请求方21可以从密钥管理中心获取微服务应用请求方21的应用名和微服务应用提供方22的应用名的对应关系。
本发明实施例中,微服务应用根据与其它微服务应用名对应的签名密钥对其它微服务应用名所标识的微服务应用对应的请求调用报文进行签名,生成请求调用报文的签名值。第一签名报文包括请求调用报文和请求调用报文的签名值。
本发明实施例中,如图3所示,微服务应用请求方21根据与微服务应用提供方22的应用名对应的签名密钥对微服务应用提供方22对应的请求调用报文通过第三签名算法进行签名,生成第一签名报文。第三签名算法包括普通签名算法或复杂签名算法。例如:普通签名算法包括摘要算法,例如,摘要算法包括SM3或SHA,复杂签名算法包括SM2WithSM3或RSAWithSha256。
步骤1082、微服务应用根据与其它微服务应用名对应的加密密钥对第一签名报文进行加密,生成第二报文。
本发明实施例中,如图3所示,微服务应用请求方21根据与微服务应用提供方22的应用名对应的加密密钥通过第三加密算法对第一签名报文进行加密,生成第二报文。第三加密算法包括对称加密算法或非对称加密算法,例如:对称加密算法包括SM4或3DES。
步骤1083、微服务应用将第二报文发送至其它微服务应用名所标识的微服务应用。
本步骤中,如图3所示,微服务应用请求方21将第二报文发送至微服务应用提供方22。
步骤1084、其它微服务应用名所标识的微服务应用根据加密密钥对第二报文进行解密,生成第一签名报文。
本步骤中,如图3所示,微服务应用提供方22根据加密密钥通过第三加密算法对第二报文进行解密,生成第一签名报文。
步骤1085、其它微服务应用名所标识的微服务应用根据签名密钥对第一签名报文进行验签,若验签通过,生成请求调用报文。
本步骤中,如图3所示,微服务应用提供方22根据签名密钥通过第三签名算法对第一签名报文进行验签,若验签通过,生成请求调用报文。
本发明实施例中,其它微服务应用名所标识的微服务应用根据签名密钥对请求调用报文进行签名计算,得到请求调用报文的签名值。其它微服务应用名所标识的微服务应用对微服务应用发送的第一签名报文进行解密,生成请求调用报文的签名值,再将请求调用报文的签名值和其它微服务应用名所标识的微服务应用计算出的请求调用报文的签名值进行比对,若微服务应用发送的签名值和其它微服务应用名所标识的微服务应用计算出的签名值相同,则验签通过。
步骤1086、其它微服务应用名所标识的微服务应用根据签名密钥对请求调用报文进行签名,生成第二签名报文。
本步骤中,如图3所示,微服务应用提供方22根据签名密钥通过第四签名算法对请求调用报文进行签名,生成第二签名报文。第四签名算法包括普通签名算法或复杂签名算法。例如:普通签名算法包括摘要算法,例如,摘要算法包括SM3或SHA,复杂签名算法包括SM2WithSM3或RSAWithSha256。
本发明实施例中,其它微服务应用名所标识的微服务应用根据签名密钥对请求调用报文进行签名,生成请求调用报文的签名值。第二签名报文包括请求调用报文和请求调用报文的签名值。
步骤1087、其它微服务应用名所标识的微服务应用根据加密密钥对第二签名报文进行加密,生成第三报文。
本步骤中,如图3所示,微服务应用提供方22根据加密密钥通过第四加密算法对第二签名报文进行加密,生成第三报文。第四加密算法包括对称加密算法或非对称加密算法,例如:对称加密算法包括SM4或3DES。
步骤1088、微服务应用接收其它微服务应用名所标识的微服务应用发送的第三报文。
本步骤中,如图3所示,微服务应用请求方21接收微服务应用提供方22发送的第三报文。
步骤1089、微服务应用根据加密密钥对第三报文进行解密,生成第二签名报文。
本步骤中,如图3所示,微服务应用请求方21根据加密密钥通过第四加密算法对第三报文进行解密,生成第二签名报文。
步骤1090、微服务应用根据签名密钥对第二签名报文进行验签,若验签通过,生成请求调用报文,以对其它微服务应用名所标识的微服务应用通过指定协议进行接口调用。
本发明实施例中,微服务应用根据签名密钥对请求调用报文进行签名计算,得到请求调用报文的签名值。微服务应用对其它微服务应用名所标识的微服务应用发送的第二签名报文进行解密,生成请求调用报文的签名值,再将请求调用报文的签名值和微服务应用计算出的请求报文的签名值进行比对,若其它微服务应用名所标识的微服务应用发送的签名值和微服务应用计算出的签名值相同,则验签通过。
本步骤中,如图3所示,微服务应用请求方21根据签名密钥通过第四签名算法对第二签名报文进行验签,若验签通过,生成请求调用报文,以对微服务应用提供方22通过指定协议进行接口调用。
本发明实施例提供的接口调用的认证方法的技术方案中,密钥管理中心通过对获取的至少一组签名密钥和加密密钥进行加密和签名生成响应报文,将响应报文发送至微服务应用,以供微服务应用对响应报文进行验签和解密,生成签名密钥和加密密钥,并能够根据任一组签名密钥和加密密钥对与该组签名密钥和加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用,从而保证了密钥的按需分发和动态更新。
本发明实施例提供的技术方案中,能够提供对多通讯协议的支持,可以支持不同的通讯协议,不需拘泥于HTTPS协议,可以支持HTTP协议、RPC协议、TCP协议等。
本发明实施例提供的技术方案中,密钥管理中心会根据当前要获取密钥的微服务应用,自动提供和微服务应用相关联的微服务应用提供方和微服务应用请求方的密钥,而不需要人工维护,提高了工作效率。
本发明实施例提供了一种接口调用的认证装置。图8为本发明实施例提供的一种接口调用的认证装置的结构示意图,如图8所示,该装置包括:第一生成模块31、第一发送模块32、第一接收模块33、第二生成模块34和接口调用模块35。
第一生成模块31用于对生成的第一报文进行签名生成请求报文,第一报文包括微服务应用名。
第一发送模块32用于将请求报文发送至密钥管理中心,以供密钥管理中心对请求报文进行验签生成第一报文,获取与微服务应用名对应的至少一组签名密钥和加密密钥,对至少一组签名密钥和加密密钥进行加密和签名生成响应报文。
第一接收模块33用于接收密钥管理中心发送的响应报文。
第二生成模块34用于对响应报文进行验签和解密,生成至少一组签名密钥和加密密钥。
接口调用模块35用于根据任一组签名密钥和加密密钥对与该组签名密钥和加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用。
本发明实施例中,该装置还包括:第一获取模块36、第三生成模块37、第四生成模块38和第五生成模块39。
第一接收模块33还用于接收密钥管理中心发送的密钥更新通知。
第一获取模块36用于从密钥管理中心获取密钥管理中心公钥和微服务应用私钥。
第三生成模块37用于根据指定规则生成随机数。
第四生成模块38用于根据密钥管理中心公钥对随机数进行加密生成加密后的随机数。
第五生成模块39用于根据加密后的随机数、获取的微服务应用名和微服务应用所属区域生成第一报文。
本发明实施例中,第一生成模块31具体用于根据获取的微服务应用私钥对第一报文进行签名,生成请求报文。
本发明实施例中,第二生成模块34包括:第一验签子模块341和第一生成子模块342。
第一验签子模块341用于根据获取的密钥管理中心公钥对响应报文进行验签。
第一生成子模块342用于若验签通过,根据生成的随机数对响应报文进行解密,生成至少一组签名密钥和加密密钥。
本发明实施例中,接口调用模块35包括:第二生成子模块351、第三生成子模块352、发送子模块353、接收子模块354、第四生成子模块355、第二验签子模块356和第五生成子模块357。
第二生成子模块351用于根据与其它微服务应用名对应的签名密钥对其它微服务应用名所标识的微服务应用对应的请求调用报文进行签名,生成第一签名报文。
第三生成子模块352用于根据与其它微服务应用名对应的加密密钥对第一签名报文进行加密,生成第二报文。
发送子模块353用于将第二报文发送至其它微服务应用名所标识的微服务应用,以供其它微服务应用名所标识的微服务应用根据加密密钥对第二报文进行解密,生成第一签名报文;根据签名密钥对第一签名报文进行验签,若验签通过,生成请求调用报文;根据签名密钥对请求调用报文进行签名,生成第二签名报文;根据加密密钥对第二签名报文进行加密,生成第三报文。
接收子模块354用于接收其它微服务应用名所标识的微服务应用发送的第三报文。
第四生成子模块355用于根据加密密钥对第三报文进行解密,生成第二签名报文。
第二验签子模块356用于根据签名密钥对第二签名报文进行验签。
第五生成子模块357用于若验签通过,生成请求调用报文,以对其它微服务应用名所标识的微服务应用通过指定协议进行接口调用。
本发明实施例中,指定协议包括HTTP协议、DUBBO协议、RPC协议或TCP协议。
本发明实施例提供的接口调用的认证方法的技术方案中,密钥管理中心通过对获取的至少一组签名密钥和加密密钥进行加密和签名生成响应报文,将响应报文发送至微服务应用,以供微服务应用对响应报文进行验签和解密,生成签名密钥和加密密钥,并能够根据任一组签名密钥和加密密钥对与该组签名密钥和加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用,从而保证了密钥的按需分发和动态更新。
本实施例提供的接口调用的认证装置可用于实现上述图2中的接口调用的认证方法,具体描述可参见上述接口调用的认证方法的实施例,此处不再重复描述。
本发明实施例提供了另一种接口调用的认证装置。图9为本发明实施例提供的另一种接口调用的认证装置的结构示意图,如图9所示,该装置包括:第二接收模块41、验签生成模块42、第二获取模块43、加密签名生成模块44和第二发送模块45。
第二接收模块41用于接收微服务应用发送的请求报文,请求报文是由微服务应用对生成的第一报文进行签名生成的,第一报文包括微服务应用名。
验签生成模块42用于对请求报文进行验签生成第一报文。
第二获取模块43用于获取与微服务应用名对应的至少一组签名密钥和加密密钥。
加密签名生成模块44用于对至少一组签名密钥和加密密钥进行加密和签名生成响应报文。
第二发送模块45用于向微服务应用发送响应报文,以供微服务应用对响应报文进行验签和解密,生成至少一组签名密钥和加密密钥;根据任一组签名密钥和加密密钥对与该组签名密钥和加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用。
本发明实施例中,验签生成模块42具体用于根据获取的微服务应用公钥对请求报文进行验签,若验签通过,生成第一报文。
本发明实施例中,该装置还包括:解密生成模块46。
解密生成模块46用于根据生成的密钥管理中心私钥对第一报文进行解密,生成随机数。
本发明实施例中,加密签名生成模块44包括:第六生成子模块441、加密生成子模块442和签名生成子模块443。
第六生成子模块441用于根据获取的密钥有效期、认证算法、至少一组签名密钥和加密密钥生成第四报文。
加密生成子模块442用于根据生成的随机数对第四报文进行加密生成密文数据。
签名生成子模块443用于根据密钥管理中心私钥对密文数据进行签名,生成响应报文。
本发明实施例提供的接口调用的认证方法的技术方案中,密钥管理中心通过对获取的至少一组签名密钥和加密密钥进行加密和签名生成响应报文,将响应报文发送至微服务应用,以供微服务应用对响应报文进行验签和解密,生成签名密钥和加密密钥,并能够根据任一组签名密钥和加密密钥对与该组签名密钥和加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用,从而保证了密钥的按需分发和动态更新。
本实施例提供的接口调用的认证装置可用于实现上述图2中的接口调用的认证方法,具体描述可参见上述接口调用的认证方法的实施例,此处不再重复描述。
本发明实施例提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述接口调用的认证方法的实施例的各步骤,具体描述可参见上述接口调用的认证方法的实施例。
本发明实施例提供了一种微服务应用,包括存储器和处理器,存储器用于存储包括程序指令的信息,处理器用于控制程序指令的执行,程序指令被处理器加载并执行时实现上述接口调用的认证方法的实施例的各步骤,具体描述可参见上述接口调用的认证方法的实施例。
图10为本发明实施例提供的一种微服务应用的示意图。如图10所示,该实施例的微服务应用50包括:处理器51、存储器52以及存储在存储器52中并可在处理器51上运行的计算机程序53,该计算机程序53被处理器51执行时实现实施例中的应用于接口调用的认证方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器51执行时实现实施例中应用于接口调用的认证装置中各模型/单元的功能,为避免重复,此处不一一赘述。
微服务应用50包括,但不仅限于,处理器51、存储器52。本领域技术人员可以理解,图10仅仅是微服务应用50的示例,并不构成对微服务应用50的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如网络设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器51可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器52可以是微服务应用50的内部存储单元,例如微服务应用50的硬盘或内存。存储器52也可以是微服务应用50的外部存储设备,例如微服务应用50上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器52还可以既包括微服务应用50的内部存储单元也包括外部存储设备。存储器52用于存储计算机程序以及网络设备所需的其他程序和数据。存储器52还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
本发明实施例提供了一种密钥管理中心,包括存储器和处理器,存储器用于存储包括程序指令的信息,处理器用于控制程序指令的执行,程序指令被处理器加载并执行时实现上述接口调用的认证方法的实施例的各步骤,具体描述可参见上述接口调用的认证方法的实施例。
图11为本发明实施例提供的一种密钥管理中心的示意图。如图11所示,该实施例的密钥管理中心60包括:处理器61、存储器62以及存储在存储器62中并可在处理器61上运行的计算机程序63,该计算机程序63被处理器61执行时实现实施例中的应用于接口调用的认证方法,为避免重复,此处不一一赘述。或者,该计算机程序被处理器61执行时实现实施例中应用于接口调用的认证装置中各模型/单元的功能,为避免重复,此处不一一赘述。
密钥管理中心60包括,但不仅限于,处理器61、存储器62。本领域技术人员可以理解,图11仅仅是密钥管理中心60的示例,并不构成对密钥管理中心60的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如网络设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器61可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器62可以是密钥管理中心60的内部存储单元,例如密钥管理中心60的硬盘或内存。存储器62也可以是密钥管理中心60的外部存储设备,例如密钥管理中心60上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器62还可以既包括密钥管理中心60的内部存储单元也包括外部存储设备。存储器62用于存储计算机程序以及网络设备所需的其他程序和数据。存储器62还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(Processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (16)

1.一种接口调用的认证方法,其特征在于,应用于微服务应用,包括:
对生成的第一报文进行签名生成请求报文,所述第一报文包括微服务应用的微服务应用名;
将所述请求报文发送至密钥管理中心,以供所述密钥管理中心对所述请求报文进行验签生成所述第一报文,获取与所述微服务应用名对应的至少一组签名密钥和加密密钥,对至少一组所述签名密钥和所述加密密钥进行加密和签名生成响应报文;
接收所述密钥管理中心发送的响应报文;
对所述响应报文进行验签和解密,生成至少一组所述签名密钥和所述加密密钥;
根据任一组所述签名密钥和所述加密密钥与该组所述签名密钥和所述加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用。
2.根据权利要求1所述的方法,其特征在于,所述对生成的第一报文进行签名生成请求报文之前包括:
接收密钥管理中心发送的密钥更新通知;
从所述密钥管理中心获取密钥管理中心公钥和微服务应用私钥;
根据指定规则生成随机数;
根据所述密钥管理中心公钥对所述随机数进行加密生成加密后的随机数;
根据加密后的随机数、获取的微服务应用名和微服务应用所属区域生成第一报文。
3.根据权利要求1所述的方法,其特征在于,所述对生成的第一报文进行签名生成请求报文包括:
根据获取的微服务应用私钥对所述第一报文进行签名,生成请求报文。
4.根据权利要求1所述的方法,其特征在于,所述对所述响应报文进行验签和解密,生成至少一组所述签名密钥和所述加密密钥包括:
根据获取的密钥管理中心公钥对响应报文进行验签;
若验签通过,根据生成的随机数对响应报文进行解密,生成至少一组所述签名密钥和所述加密密钥。
5.根据权利要求1所述的方法,其特征在于,所述根据任一组所述签名密钥和所述加密密钥对与该组所述签名密钥和所述加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用包括:
根据与其它微服务应用名对应的所述签名密钥对其它微服务应用名所标识的微服务应用对应的请求调用报文进行签名,生成第一签名报文;
根据与其它微服务应用名对应的所述加密密钥对所述第一签名报文进行加密,生成第二报文;
将所述第二报文发送至所述其它微服务应用名所标识的微服务应用,以供其它微服务应用名所标识的微服务应用根据所述加密密钥对所述第二报文进行解密,生成所述第一签名报文;根据签名密钥对所述第一签名报文进行验签,若验签通过,生成所述请求调用报文;根据所述签名密钥对所述请求调用报文进行签名,生成第二签名报文;根据所述加密密钥对所述第二签名报文进行加密,生成第三报文;
接收所述其它微服务应用名所标识的微服务应用发送的所述第三报文;
根据所述加密密钥对所述第三报文进行解密,生成第二签名报文;
根据所述签名密钥对所述第二签名报文进行验签,若验签通过,生成所述请求调用报文,以对其它微服务应用名所标识的微服务应用通过指定协议进行接口调用。
6.根据权利要求1或5所述的方法,其特征在于,所述指定协议包括HTTP协议、DUBBO协议、RPC协议或TCP协议。
7.一种接口调用的认证方法,其特征在于,应用于密钥管理中心,包括:
接收微服务应用发送的请求报文,所述请求报文是由微服务应用对生成的第一报文进行签名生成的,所述第一报文包括微服务应用的微服务应用名;
对所述请求报文进行验签生成所述第一报文;
获取与所述微服务应用名对应的至少一组签名密钥和加密密钥;
对至少一组所述签名密钥和所述加密密钥进行加密和签名生成响应报文;
向所述微服务应用发送所述响应报文,以供所述微服务应用对所述响应报文进行验签和解密,生成至少一组所述签名密钥和所述加密密钥;根据任一组所述签名密钥和所述加密密钥与该组所述签名密钥和所述加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用。
8.根据权利要求7所述的方法,其特征在于,所述对所述请求报文进行验签生成所述第一报文包括:
根据获取的微服务应用公钥对请求报文进行验签,若验签通过,生成第一报文。
9.根据权利要求8所述的方法,其特征在于,所述根据获取的微服务应用公钥对请求报文进行验签,若验签通过,生成第一报文之后还包括:
根据生成的密钥管理中心私钥对第一报文进行解密,生成随机数。
10.根据权利要求7所述的方法,其特征在于,所述对至少一组所述签名密钥和所述加密密钥进行加密和签名生成响应报文包括:
根据获取的密钥有效期、认证算法、至少一组所述签名密钥和所述加密密钥生成第四报文;
根据生成的随机数对所述第四报文进行加密生成密文数据;
根据密钥管理中心私钥对密文数据进行签名,生成响应报文。
11.一种接口调用的认证装置,其特征在于,包括:
第一生成模块,用于对生成的第一报文进行签名生成请求报文,所述第一报文包括微服务应用的微服务应用名;
第一发送模块,用于将所述请求报文发送至密钥管理中心,以供所述密钥管理中心对所述请求报文进行验签生成所述第一报文,获取与所述微服务应用名对应的至少一组签名密钥和加密密钥,对至少一组所述签名密钥和所述加密密钥进行加密和签名生成响应报文;
第一接收模块,用于接收所述密钥管理中心发送的响应报文;
第二生成模块,用于对所述响应报文进行验签和解密,生成至少一组所述签名密钥和所述加密密钥;
接口调用模块,用于根据任一组所述签名密钥和所述加密密钥与该组所述签名密钥和所述加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用。
12.一种存储介质,其特征在于,包括:所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至6任一项所述的接口调用的认证方法。
13.一种微服务应用,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,其特征在于,所述程序指令被处理器加载并执行时实现权利要求1至6任一项所述的接口调用的认证方法的步骤。
14.一种接口调用的认证装置,其特征在于,包括:
第二接收模块,用于接收微服务应用发送的请求报文,所述请求报文是由微服务应用对生成的第一报文进行签名生成的,所述第一报文包括微服务应用的微服务应用名;
验签生成模块,用于对所述请求报文进行验签生成所述第一报文;
第二获取模块,用于获取与所述微服务应用名对应的至少一组签名密钥和加密密钥;
加密签名生成模块,用于对至少一组所述签名密钥和所述加密密钥进行加密和签名生成响应报文;
第二发送模块,用于向所述微服务应用发送所述响应报文,以供所述微服务应用对所述响应报文进行验签和解密,生成至少一组所述签名密钥和所述加密密钥;根据任一组所述签名密钥和所述加密密钥与该组所述签名密钥和所述加密密钥对应的其它微服务应用名所标识的微服务应用通过指定协议进行接口调用。
15.一种存储介质,其特征在于,包括:所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求7至10任一项所述的接口调用的认证方法。
16.一种密钥管理中心,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,其特征在于,所述程序指令被处理器加载并执行时实现权利要求7至10任一项所述的接口调用的认证方法的步骤。
CN202011262826.7A 2020-11-12 2020-11-12 接口调用的认证方法、装置、微服务应用和密钥管理中心 Active CN112511295B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011262826.7A CN112511295B (zh) 2020-11-12 2020-11-12 接口调用的认证方法、装置、微服务应用和密钥管理中心

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011262826.7A CN112511295B (zh) 2020-11-12 2020-11-12 接口调用的认证方法、装置、微服务应用和密钥管理中心

Publications (2)

Publication Number Publication Date
CN112511295A CN112511295A (zh) 2021-03-16
CN112511295B true CN112511295B (zh) 2022-11-22

Family

ID=74957335

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011262826.7A Active CN112511295B (zh) 2020-11-12 2020-11-12 接口调用的认证方法、装置、微服务应用和密钥管理中心

Country Status (1)

Country Link
CN (1) CN112511295B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113505382A (zh) * 2021-06-18 2021-10-15 杭州华橙软件技术有限公司 微服务鉴权方法、电子装置和存储介质
CN113872932B (zh) * 2021-08-20 2023-08-29 苏州浪潮智能科技有限公司 基于sgx的微服务间接口鉴权方法、系统、终端及存储介质
CN115733672A (zh) * 2022-11-03 2023-03-03 支付宝(杭州)信息技术有限公司 数据处理方法、装置及设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103490892A (zh) * 2013-08-28 2014-01-01 广东数字证书认证中心有限公司 数字签名方法和系统、应用服务器和云密码服务器
CN106302497A (zh) * 2016-08-25 2017-01-04 广州唯品会信息科技有限公司 微服务的权限控制方法及装置
WO2018076365A1 (zh) * 2016-10-31 2018-05-03 美的智慧家居科技有限公司 密钥协商方法及装置
WO2018113362A1 (zh) * 2016-12-20 2018-06-28 百富计算机技术(深圳)有限公司 密钥远程获取方法、销售终端和存储介质
CN110198295A (zh) * 2018-04-18 2019-09-03 腾讯科技(深圳)有限公司 安全认证方法和装置及存储介质
CN111478771A (zh) * 2020-03-31 2020-07-31 招商局金融科技有限公司 微服务间安全访问的方法、微服务系统
CN111585753A (zh) * 2020-04-27 2020-08-25 盛趣信息技术(上海)有限公司 一种业务数据集中加密系统及方法
CN111698225A (zh) * 2020-05-28 2020-09-22 国家电网有限公司 一种适用于电力调度控制系统的应用服务认证加密方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109040149A (zh) * 2018-11-02 2018-12-18 美的集团股份有限公司 密钥协商方法、云服务器、设备、存储介质以及系统
US11469903B2 (en) * 2019-02-28 2022-10-11 Microsoft Technology Licensing, Llc Autonomous signing management operations for a key distribution service

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103490892A (zh) * 2013-08-28 2014-01-01 广东数字证书认证中心有限公司 数字签名方法和系统、应用服务器和云密码服务器
CN106302497A (zh) * 2016-08-25 2017-01-04 广州唯品会信息科技有限公司 微服务的权限控制方法及装置
WO2018076365A1 (zh) * 2016-10-31 2018-05-03 美的智慧家居科技有限公司 密钥协商方法及装置
WO2018113362A1 (zh) * 2016-12-20 2018-06-28 百富计算机技术(深圳)有限公司 密钥远程获取方法、销售终端和存储介质
CN110198295A (zh) * 2018-04-18 2019-09-03 腾讯科技(深圳)有限公司 安全认证方法和装置及存储介质
CN111478771A (zh) * 2020-03-31 2020-07-31 招商局金融科技有限公司 微服务间安全访问的方法、微服务系统
CN111585753A (zh) * 2020-04-27 2020-08-25 盛趣信息技术(上海)有限公司 一种业务数据集中加密系统及方法
CN111698225A (zh) * 2020-05-28 2020-09-22 国家电网有限公司 一种适用于电力调度控制系统的应用服务认证加密方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于微服务架构和支持业务过程可靠执行的数据通信方法;王焕强等;《计算机集成制造系统》;20190415(第04期);全文 *

Also Published As

Publication number Publication date
CN112511295A (zh) 2021-03-16

Similar Documents

Publication Publication Date Title
CN112511295B (zh) 接口调用的认证方法、装置、微服务应用和密钥管理中心
USRE49673E1 (en) Systems and methods for secure data exchange
US5719938A (en) Methods for providing secure access to shared information
CN101247232B (zh) 数据交换传输中基于数字签名的加密技术方法
CN110601816B (zh) 一种区块链系统中轻量级节点控制方法及装置
DE102018216915A1 (de) System und Verfahren für sichere Kommunikationen zwischen Steuereinrichtungen in einem Fahrzeugnetzwerk
US20060095769A1 (en) System and method for initializing operation for an information security operation
US7266705B2 (en) Secure transmission of data within a distributed computer system
CN112822255B (zh) 基于区块链的邮件处理方法、邮件发送端、接收端及设备
WO2016122646A1 (en) Systems and methods for providing data security services
CN111355702B (zh) 安全传输数据集的方法和系统、医学设施和程序产品
CN114143108B (zh) 一种会话加密方法、装置、设备及存储介质
WO2023160420A1 (zh) 群组消息加密方法、装置、设备和存储介质
CN111917711B (zh) 数据访问方法、装置、计算机设备和存储介质
CN111291420B (zh) 一种基于区块链的分布式离链数据存储方法
CN102957539A (zh) 用于分布式软件的数字签名管理和验证系统及方法
CN113810779B (zh) 码流验签方法、装置、电子设备和计算机可读介质
US11856091B2 (en) Data distribution system, data processing device, and program
KR100357859B1 (ko) 인터넷 환경 하에서 데이터 통신을 수행하는 이동통신시스템의 사용자 정보 보안 방법
CN114238912A (zh) 数字证书的处理方法、装置、计算机设备和存储介质
EP3800825B1 (en) Method and device for configuring alias credential
EP3200388A1 (en) User permission check system
CN112865968B (zh) 数据密文托管方法、系统、计算机设备及存储介质
CN118070316A (zh) 基于安全设备的离线授权方法、离线授权系统和存储介质
CN115987526A (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