CN113411187A - 身份认证方法和***、存储介质及处理器 - Google Patents

身份认证方法和***、存储介质及处理器 Download PDF

Info

Publication number
CN113411187A
CN113411187A CN202010187540.0A CN202010187540A CN113411187A CN 113411187 A CN113411187 A CN 113411187A CN 202010187540 A CN202010187540 A CN 202010187540A CN 113411187 A CN113411187 A CN 113411187A
Authority
CN
China
Prior art keywords
client
quantum key
authentication
application program
program interface
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
CN202010187540.0A
Other languages
English (en)
Other versions
CN113411187B (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN202010187540.0A priority Critical patent/CN113411187B/zh
Publication of CN113411187A publication Critical patent/CN113411187A/zh
Application granted granted Critical
Publication of CN113411187B publication Critical patent/CN113411187B/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/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/0852Quantum cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请公开了一种身份认证方法和***、存储介质及处理器。其中,该方法包括:客户端获取第一量子密钥;客户端基于第一量子密钥,生成认证请求;客户端发送认证请求至应用程序接口网关,并接收应用程序接口网关返回的客户端的认证结果,其中,认证结果由应用程序接口网关对认证请求进行验证得到。本申请解决了相关技术中身份认证方法的安全性依赖于安全传输层协议,无法抵御量子计算机的攻击的技术问题。

Description

身份认证方法和***、存储介质及处理器
技术领域
本申请涉及网络安全领域,具体而言,涉及一种身份认证方法和***、存储介质及处理器。
背景技术
OpenAPI(开放应用编程接口,Open Application Programming Interface)作为互联网服务提供商对第三方开发者提供的开放平台,已经被国内外很多中大型互联网公司所采用。OpenAPI作为云服务与用户之间的主要桥梁,承担了云服务提供商与用户之间的很大一部分流量,其中包含很多重要和敏感的配置数据、用户数据等,因此OpenAPI的安全性至关重要,作为云服务提供商,不仅需要为用户在调用OpenAPI传输敏感数据时提供安全防护的能力,为用户在调用OpenAPI前提供安全可靠的身份认证和授权的能力,还需要能够避免用户将API密钥,密码,token等信息编码到客户端代码中,上传至互联网平台(如github等代码托管平台)后导致数据泄露事件的发生。
目前主流云服务提供商所采用的身份认证方式大致包括如下几种:第一种是基于HTTP(Hyper Text Transfer Protocol,超文本传输协议)的基本认证方式,将用户名和密码进行base64编码后,添加到Authorization头部消息中进行发送,安全性依赖于TLS协议(安全传输层协议,Transport Layer Security)。第二种是基于token的认证方式,将token信息添加到Authorization头部消息中进行发送,安全性依赖于TLS协议。第三种是基于APIKeys的认证方式,将API密钥通过URL的query字符串,或者放到HTTP的请求头中进行传输,安全性依赖于TLS协议。第四种是基于HMAC(Hash-based Message Authorization Code,哈希运算消息认证码)的签名认证方式,用户在云服务提供商的网站上创建一个访问密钥,服务端为其生成密钥以及对应密钥ID,进行身份认证时,用户先将密钥作为HMAC的输入进行计算后得到签名,再将签名添加到认证消息中进行发送。访问密钥在创建和认证的过程中都能够进行安全的保护,并且不涉及在公网中的传输。只是当用户在网站上获取访问密钥的密钥内容时,其安全性依然依赖于TLS协议。
但是,上述几种认证方式的安全性依赖于TLS协议,用于对传输中的认证信息(如用户名密码,或Token,签名等)进行加解密,而TLS协议目前普遍使用的认证算法和密钥交换算法如RSA,Diffie-Hellman算法,均无法抵御未来量子计算机的攻击。采用上述几种认证方式,可能会使用到熵值较低,或安全强度、复杂度较低的机密信息(如密钥,密码或Token),增加了被猜测或暴力破解的风险。上述几种认证方式均需要将认证信息(如密钥,用户名密码或Token)硬编码到客户端程序中,存在因代码泄露而造成的API密钥,用户名密码,Toke等信息泄露的危险。采用上述几种认证方式,认证信息通常更新频率较低,且需要用户进行手工操作来进行密钥,密码或Token的更新替换工作,增加了人力成本以及安全风险。
针对相关技术中身份认证方法的安全性依赖于安全传输层协议,无法抵御量子计算机的攻击的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种身份认证方法和***、存储介质及处理器,以至少解决相关技术中身份认证方法的安全性依赖于安全传输层协议,无法抵御量子计算机的攻击的技术问题。
根据本申请实施例的一个方面,提供了一种身份认证方法,包括:客户端获取第一量子密钥;客户端基于第一量子密钥,生成认证请求;客户端发送认证请求至应用程序接口网关,并接收应用程序接口网关返回的客户端的认证结果,其中,认证结果由应用程序接口网关对认证请求进行验证得到。
根据本申请实施例的另一方面,还提供了一种身份认证方法,包括:应用程序接口网关接收客户端发送的认证请求,其中,认证请求基于客户端获取到的第一量子密钥生成;应用程序接口网关对认证请求进行验证,得到客户端的认证结果;应用程序接口网关发送认证结果至客户端。
根据本申请实施例的另一方面,还提供了一种身份认证***,包括:客户端,用于基于获取到的第一量子密钥,生成认证请求;应用程序接口网关,与客户端通信连接,用于对认证请求进行验证,得到客户端的认证结果,并发送认证结果至客户端。
根据本申请实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述的身份认证方法。
根据本申请实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述的身份认证方法。
根据本申请实施例的另一方面,还提供了一种身份认证***,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:获取第一量子密钥;基于第一量子密钥,生成认证请求;发送认证请求至应用程序接口网关,并接收应用程序接口网关返回的客户端的认证结果,其中,认证结果由应用程序接口网关对认证请求进行验证得到。
根据本申请实施例的一个方面,提供了一种身份认证方法,包括:客户端获取第一密钥;客户端基于第一密钥,生成认证请求;客户端发送认证请求至应用程序接口网关,并接收应用程序接口网关返回的客户端的认证结果,其中,认证结果由应用程序接口网关对认证请求进行验证得到。
在本申请实施例中,在获取到第一量子密钥之后,客户端可以基于第一量子密钥,生成认证请求,并发送至应用程序接口网关,由应用程序接口网关对认证请求进行验证,得到客户端的认证结果,实现身份认证的目的。与相关技术相比,可以通过量子密钥生成认证请求,基于量子密钥的特性,达到了提高密钥的随机性和安全强度,具备抗量子攻击能力的效果,进而解决了相关技术中身份认证方法的安全性依赖于安全传输层协议,无法抵御量子计算机的攻击的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种用于实现身份认证方法的计算机终端的硬件结构框图;
图2是根据本申请实施例的一种计算机终端作为发送端的示意图;
图3是根据本申请实施例的一种身份认证方法的流程图;
图4是根据本申请实施例的一种可选的政企用户使用开放API的应用场景的示意图;
图5是根据本申请实施例的一种基于量子密钥的身份认证方法的流程图;
图6是根据本申请实施例的另一种身份认证方法的流程图;
图7是根据本申请实施例的一种身份认证装置的示意图;
图8是根据本申请实施例的另一种身份认证装置的示意图;
图9是根据本申请实施例的一种身份认证***的示意图;
图10是根据本申请实施例的又一种身份认证方法的流程图;以及
图11是根据本申请实施例的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
OpenAPI:云服务提供商将接入到开放API中的云产品所提供的服务,以API的形式封装起来,开放给所有包括政企用户在内的第三方开发者使用。
QKD:量子密钥分发,Quantum Key distribution,可以是一种安全通信方式,利用了量子力学特性,使得通信双方能够产生并共享一对随机的、安全的密钥,来用对消息进行加解密。
Restful API:可以是指具有REST风格的API,基于HTTP,可以使用XML格式(可扩展标记语言,eXtensible Markup Language)定义或JSON格式(JS对象简谱,JavaScriptObject Notation)定义。OpenAPI规范对RESTful API在细节上给出了非常具体的规定,已经成为RESTful API设计领域的事实标准。
API网关:在开放平台中,API网关可以作为一个入口服务器,让所有的客户端通过这个统一的网关接入云端的服务。通常提供基于Restful/HTTP的访问API。它还通常具有如身份认证,监控,复杂均衡等等其他职责。
实施例1
根据本申请实施例,提供了一种身份认证方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现身份认证方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的身份认证方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的身份认证方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
图1示出的硬件结构框图,不仅可以作为上述计算机终端10(或移动设备)的示例性框图,还可以作为上述服务器的示例性框图,一种可选实施例中,图2以框图示出了使用上述图1所示的计算机终端10(或移动设备)作为发送端的一种实施例。如图2所示,计算机终端10(或移动设备)可以经由数据网络连接或电子连接到API网关20,并通过API网关接入云端的服务。数据网络连接可以是局域网连接、广域网连接、因特网连接,或其他类型的数据网络连接。云端的服务可以是基于网络的用户服务,诸如社交网络、云资源、电子邮件、在线支付或其他在线应用。
在上述运行环境下,本申请提供了如图3所示的身份认证方法。图3是根据本申请实施例的一种身份认证方法的流程图。如图3所示,该方法至少包括如下步骤:
步骤S302,客户端获取第一量子密钥;
步骤S304,客户端基于第一量子密钥,生成认证请求;
步骤S306,客户端发送认证请求至应用程序接口网关,并接收应用程序接口网关返回的客户端的认证结果,其中,认证结果由应用程序接口网关对认证请求进行验证得到。
上述步骤中的客户端可以是需要使用开放API的用户的计算机终端或移动终端,移动终端可以是智能手机(包括:Android手机和IOS手机)、平板电脑、IPAD、掌上电脑和笔记本电脑等,但不仅限于此。认证请求可以是HTTP请求,为了实现身份认证的目的,HTTP请求中包含有Authorization Header。
目前大型云服务提供商普遍采用API网关的方式,为部署在数据中心的云产品应用提供对外开放API服务的能力。上述步骤中的应用程序接口网关可以是OpenAPI中的API网关,可以对接入的客户端进行身份认证。
例如,以如图4所示的政企用户使用开放API的应用场景为例进行说明。政企用户可以通过API网关调用接入到API网关的所有后端API服务,但是在政企用户使用具体服务之前,需要通过API网关进行身份认证,身份认证的方式可以有多种,比如基于HMAC的签名认证方式,或简单的基于token的方式。
基于量子密钥的特性可知,量子密钥具备真随机性,是不可预测的,在具备一定长度的前提下,是非常难以被攻击者猜测到和暴力破解的。在此基础上,可以在API客户端和API网关处分别部署一套QKD***,QKD***包含有量子密钥分发协议以及相应的密钥管理服务。两套QKD***可以分别为API客户端和API网关分发量子密钥,其中,分发至API客户端的量子密钥也即上述的第一量子密钥。从而API客户端和API网关可以基于量子密钥进行身份验证。
在一种可选的实施例中,API客户端可以从QKD***获取到量子密钥,并基于预设的身份认证方式,生成相应的认证请求,由API网关基于从QKD***获取到相同的量子密钥对认证请求进行验证,得到最终的认证结果。API网关将携带有认证结果的认证响应至API客户端,从而用户可以确定是否通过认证。
基于本申请上述实施例提供的方案,在获取到第一量子密钥之后,客户端可以基于第一量子密钥,生成认证请求,并发送至应用程序接口网关,由应用程序接口网关对认证请求进行验证,得到客户端的认证结果,实现身份认证的目的。与相关技术相比,可以通过量子密钥生成认证请求,基于量子密钥的特性,达到了提高密钥的随机性和安全强度,具备抗量子攻击能力的效果,进而解决了相关技术中身份认证方法的安全性依赖于安全传输层协议,无法抵御量子计算机的攻击的技术问题。
本申请上述实施例中,客户端基于第一量子密钥,生成认证请求包括:客户端将第一量子密钥输入至哈希消息认证码,得到第一签名;客户端将第一签名添加至认证请求的头部的第一字段中。
上述步骤中的第一字段可以是HTTP请求头部的Authorization字段。
例如,仍以如图4所示的政企用户使用开放API的应用场景为例进行说明。在一种可选的实施例中,API客户端可以将第一量子密钥与传统的基于HMAC的签名认证方式进行结合,此时第一量子密钥可以直接用于替代访问密钥,将第一量子密钥作为HMAC的输入,计算得到第一签名,将第一签名添加到请求头部的Authorization字段,然后发送给API网关。
需要说明的是,其他具体参与签名计算时的参数,以及其他需要一同组织进Header进行发送的参数,与传统基于HMAC的签名认证方式相同,本申请在此不再赘述。
本申请上述实施例中,认证结果由应用程序接口网关将第一签名和第二签名进行比较得到,第二签名由应用程序接口网关将第二量子密钥输入至哈希消息认证码得到,其中,第二量子密钥与第一量子密钥相同。
例如,仍以如图4所示的政企用户使用开放API的应用场景为例进行说明。在一种可选的实施例中,API网关可以采用与API客户端相同的验证策略进行验证,也即,将相同的第二量子密钥作为输入,通过HMAC计算得到第二签名,与从认证请求中接收到的第一签名进行比较,得到认证结果,其中,如果两个签名相同,则确定通过验证;否则,确定未通过验证。
本申请上述实施例中,客户端基于第一量子密钥,生成认证请求包括:客户端获取客户端的目标数据;客户端利用第一量子密钥对目标数据进行加密,得到加密数据;客户端将加密数据添加至认证请求的头部的第一字段或认证请求的第二字段中。
上述步骤中的目标数据可以是客户端的用户ID或量子密钥ID,但不仅限于此,也可以是其他信息,但是需要和API网关协商一致,并预先告知API网关。上述步骤中的第二字段可以是HTTP请求的Query字段。
例如,仍以如图4所示的政企用户使用开放API的应用场景为例进行说明。在一种可选的实施例中,API客户端可以将第一量子密钥与传统的基于token的认证方式进行结合,此时第一量子密钥可以直接用于替代加密密钥,将第一量子密钥对API客户端ID或量子密钥ID进行加密,将加密数据添加到请求头部的Authorization字段或是作为Query字段,发送给API网关。
本申请上述实施例中,认证结果由应用程序接口网关将客户端的目标数据与解密数据进行比较得到,解密数据由应用程序接口网关利用第二量子密钥对加密数据进行解密得到,第二量子密钥与第一量子密钥相同。
例如,仍以如图4所示的政企用户使用开放API的应用场景为例进行说明。在一种可选的实施例中,API网关可以利用第二量子密钥对接收到的请求消息中的加密数据进行解密,并且同已知的API客户端ID或量子密钥ID进行比较,如果相同,则确定通过验证;否则,确定未通过验证。
本申请上述实施例中,在客户端获取到目标数据之后,客户端发送第一通知消息至应用程序接口网关,其中,第一通知消息用于提示客户端利用第一量子密钥对目标数据进行加密。
例如,仍以如图4所示的政企用户使用开放API的应用场景为例进行说明。在一种可选的实施例中,API客户端在获取到需要使用的其他信息之后,可以发送第一通知消息至API网关,预先告知API网关需要使用的信息,并与API网关进行协商,确定最终身份认证过程中实际使用的信息。
通过上述两种方式进行身份认证,整个过程中不需要传输任何敏感信息如密钥,密码或Token,因此不需要在代码中硬编码任何认证时需要用到的机密信息,不需要担心机密信息在传输过程中被窃取并成功解密后带来的风险,从而避免了数据泄露事件的发生。
需要说明的是,还可以通过将量子密钥与其他身份认证方式进行结合,实现身份认证的目的。
本申请上述实施例中,客户端获取第一量子密钥包括:客户端发送第一获取请求至第一量子密钥分配***;客户端接收第一量子密钥分配***发送的第一量子密钥和第一量子密钥的标识信息。
上述步骤中的标识信息可以是第一量子密钥的ID,具有唯一性。
例如,仍以如图4所示的政企用户使用开放API的应用场景为例进行说明。在一种可选的实施例中,API客户端可以发送获取量子密钥的请求消息至QKD***,从而从QKD***中获取到第一量子密钥和相同的量子密钥ID。
需要说明的是,API客户端先通过QKD***所提供的协议来获取量子密钥以及相应的量子密钥ID,协议通常分为认证消息和获取密钥消息两部分,此处根据不同QKD厂商所提供的协议或接口,流程上可能会有所不同,在此不做赘述。
本申请上述实施例中,在客户端接收第一量子密钥分配***发送的标识信息之后,该方法还包括如下步骤:客户端发送携带标识信息的第二通知消息至应用程序接口网关,其中,标识信息用于应用程序接口网关从第二量子密钥分配***获取第二量子密钥,第二量子密钥与第一量子密钥相同;客户端接收应用程序接口网关返回的响应消息,其中,响应消息由应用程序接口网关获取到第二量子密钥之后发送。
例如,仍以如图4所示的政企用户使用开放API的应用场景为例进行说明。在一种可选的实施例中,为了确保API网关从部署的QKD***中获取到的第二量子密钥与API客户端获取到的第一量子密钥相同,API客户端可以将获取到的量子密钥ID添加到第二通信消息中,并发送给API网关,API网关发送获取量子密钥的请求消息至QKD***,此时,请求消息中携带有量子密钥ID,从而QKD***可以返回与该量子密钥ID相匹配的量子密钥(即上述的第二量子密钥),API网关返回响应消息,告知API客户端获取到了相同的量子密钥,可以进行身份认证。
通过上述方案,API客户端和API网关每次都可以采取动态获取量子密钥的方式进行身份认证,减少了一些用户需要进行人工操作的步骤,使得认证过程的自动化程度更高,安全性也更高,避免了人工误操作所带来的风险。
下面结合图5对本申请一种优选的实施例进行详细说明。仍以如图4所示的政企用户使用开放API的应用场景为例,图5示出了本申请提供的基于量子密钥的身份认证的具体步骤:
步骤S51,API客户端发送认证请求至QKD***。
步骤S52,QKD***返回认证响应。
可选地,QKD在接收到认证请求之后,对API客户端进行认证,认证通过后,可以返回认证通过的响应消息。
步骤S53,API客户端发送获取密钥请求至QKD***。
步骤S54,QKD***返回携带量子密钥和相应的ID的响应消息。
可选地,QKD***在接收到获取密钥请求之后,随机生成量子密钥,并将量子密钥和相应的ID发送给API客户端。
步骤S55,API客户端发送携带量子密钥ID的通知消息至API网关。
可选地,API客户端将获取到的量子密钥ID信息添加到通知消息中,并发送至对端的API网关。
步骤S56,API网关发送认证请求至QKD***。
步骤S57,QKD***返回认证响应。
可选地,QKD在接收到认证请求之后,对API网关进行认证,认证通过后,可以返回认证通过的响应消息。
步骤S58,API网关发送携带量子密钥ID的获取密钥请求至QKD***。
可选地,API网关发送获取量子密钥的请求消息时会指定密钥ID。
步骤S59,QKD***返回携带相应的量子密钥的响应消息。
可选地,QKD***会返回匹配该密钥ID的量子密钥。
步骤S510,API网关返回通知确认消息至API客户端。
可选地,API网关获取到量子密钥之后,可以对通知消息进行响应。
此时,API客户端和API网关获取到了相同的量子密钥。
步骤S511,API客户端基于量子密钥生成认证请求。
可选地,在本申请实施例中可以采用两种可行的基于量子密钥的身份认证方法,第一种方法可以是将量子密钥与传统的基于HMAC的签名认证方式进行结合,此时量子密钥可以直接用于替代访问密钥,将量子密钥作为HMAC的输入,计算得到签名后,将签名添加到请求头部的Authorization字段。第二种可以是将量子密钥对客户端的某个信息如用户ID,或量子密钥ID用量子密钥进行加密后,添加到请求头部的Authorization字段中,或是作为Query字段。
步骤S511,API客户端发送认证请求至API网关。
步骤S512,API网关对API客户端进行身份认证。
可选地,API网关针对两种不同的身份认证方法,可以采取不同的验证策略。第一种策略可以是采用同样的方式将量子密钥作为输入,通过HMAC计算得到签名后,与从请求消息中收到的签名进行比较,如果相同,则通过验证。第二种策略可以是利用量子密钥对请求消息中的密文字段进行解密,并且同已知的客户端ID或量子密钥ID进行比较,如果相同,则通过验证。
步骤S513,API网关返回认证响应至API客户端。
可选地,API网关将携带有验证结果的认证响应至API客户端。
通过上述步骤,提供了一种基于量子密钥的身份认证方法,通过将量子密钥分发技术运用于OpenAPI开放平台,不但为OpenAPI提供了抵御量子计算机攻击的能力,同时由于量子密钥能够从QKD量子密钥池动态获取的特性,也不再需要将身份认证所需要的敏感信息硬编码到代码中,从而避免了API密钥,密码,Token信息泄露等事件的发生,避免了大规模用户敏感数据泄露的风险。外,运用量子密钥提高了身份认证过程中的自动化程度,减少了一些人工参与的步骤,降低了人力成本和出错的风险。为数据安全性要求很高的政企用户提供一种面向未来的安全防御能力。
需要说明的是,可以将OpenSSL替换为支持PQC算法(后量子密码,Post-quantumCryptography),或利用QKD技术替换RSA或Diffie-Hellman的版本。这样能够使TLS整体上具备抗量子攻击的能力。这个方案的缺点是对整体基础架构的改动非常大,适用于整个基础设施安全的升级,为通信安全以及身份认证等提供整体的抗量子攻击能力,如果只是用于身份认证会过于复杂。
还需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例2
根据本申请实施例,还提供了一种身份认证方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图6是根据本申请实施例的另一种身份认证方法的流程图。如图6所示,该方法至少包括如下步骤:
步骤S602,应用程序接口网关接收客户端发送的认证请求,其中,认证请求基于客户端获取到的第一量子密钥生成;
步骤S304,应用程序接口网关对认证请求进行验证,得到客户端的认证结果;
步骤S306,应用程序接口网关发送认证结果至客户端。
上述步骤中的客户端可以是需要使用开放API的用户的计算机终端或移动终端,移动终端可以是智能手机(包括:Android手机和IOS手机)、平板电脑、IPAD、掌上电脑和笔记本电脑等,但不仅限于此。认证请求可以是HTTP请求,为了实现身份认证的目的,HTTP请求中包含有Authorization Header。
目前大型云服务提供商普遍采用API网关的方式,为部署在数据中心的云产品应用提供对外开放API服务的能力。上述步骤中的应用程序接口网关可以是OpenAPI中的API网关,可以对接入的客户端进行身份认证。
本申请上述实施例中,应用程序接口网关对认证请求进行验证,得到客户端的认证结果包括:应用程序接口网关获取认证请求中的第一签名,其中,第一签名位于认证请求的头部的第一字段中,第一签名由客户端将第一量子密钥输入至哈希消息认证码得到;应用程序接口网关将获取到的第二量子密钥输入至哈希消息认证码,得到第二签名,其中,第二量子密钥与第一量子密钥相同;应用程序接口网关将第一签名和第二签名进行比较,得到认证结果。
上述步骤中的第一字段可以是HTTP请求头部的Authorization字段。
本申请上述实施例中,应用程序接口网关对认证请求进行验证,得到客户端的认证结果包括:应用程序接口网关获取认证请求中的加密数据,其中,加密数据位于认证请求的头部的第一字段中或认证请求的第二字段中,加密数据由客户端利用第一量子密钥对客户端的目标数据进行加密得到;应用程序接口网关利用获取到的第二量子密钥对加密数据进行解密,得到解密数据,其中,第二量子密钥与第一量子密钥相同;应用程序接口网关将解密数据和目标数据进行比较,得到认证结果。
上述步骤中的目标数据可以是客户端的用户ID或量子密钥ID,但不仅限于此,也可以是其他信息,但是需要和API网关协商一致,并预先告知API网关。上述步骤中的第二字段可以是HTTP请求的Query字段。
本申请上述实施例中,在应用程序接口网关接收客户端发送的认证请求之前,该方法还包括如下步骤:应用程序接口网关接收客户端发送的第一通知消息,其中,第一通知消息用于提示客户端利用第一量子密钥对目标数据进行加密。
本申请上述实施例中,在应用程序接口网关接收客户端发送的认证请求之前,该方法还包括如下步骤:应用程序接口网关接收客户端发送的第二通知消息,其中,第二通知消息中携带有第一量子密钥的标识信息,标识信息由客户端从第一量子密钥分配***获取;应用程序接口网关发送携带标识信息的第二获取请求至第二量子密钥分配***,并接收第二量子密钥分配***返回的第二量子密钥,其中,第二量子密钥与第一量子密钥相同;在获取到第二量子密钥之后,应用程序接口网关发送响应消息至客户端。
上述步骤中的标识信息可以是第一量子密钥的ID,具有唯一性。
需要说明的是,本申请上述实施例中涉及到的优选实施方式与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例3
根据本申请实施例,还提供了一种用于实施上述身份认证方法的身份认证装置,该装置可以是客户端中执行身份认证方法的装置,如图7所示,该装置700包括:获取模块702、生成模块704和通信模块706。
其中,获取模块702用于获取第一量子密钥;生成模块704用于基于第一量子密钥,生成认证请求;通信模块706用于发送认证请求至应用程序接口网关,并接收应用程序接口网关返回的客户端的认证结果,其中,认证结果由应用程序接口网关对认证请求进行验证得到。
此处需要说明的是,上述获取模块702、生成模块704和通信模块706对应于实施例1中的步骤S302至步骤S306,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
本申请上述实施例中,生成模块包括:输入单元和添加单元。
其中,输入单元用于将第一量子密钥输入至哈希消息认证码,得到第一签名;添加单元用于将第一签名添加至认证请求的头部的第一字段中。
本申请上述实施例中,生成模块还包括:获取单元和加密单元。
其中,获取单元用于获取客户端的目标数据;加密单元用于利用第一量子密钥对目标数据进行加密,得到加密数据;添加单元还用于将加密数据添加至认证请求的头部的第一字段或认证请求的第二字段中。
本申请上述实施例中,通信模块还用于在获取到目标数据之后,发送第一通知消息至应用程序接口网关,其中,第一通知消息用于提示客户端利用第一量子密钥对目标数据进行加密。
本申请上述实施例中,获取模板包括:发送单元和接收单元。
其中,发送单元用于发送第一获取请求至第一量子密钥分配***;接收单元用于接收第一量子密钥分配***发送的第一量子密钥和第一量子密钥的标识信息。
本申请上述实施例中,通信模块还用于发送携带标识信息的第二通知消息至应用程序接口网关,并接收应用程序接口网关返回的响应消息,其中,标识信息用于应用程序接口网关从第二量子密钥分配***获取第二量子密钥,第二量子密钥与第一量子密钥相同,响应消息由应用程序接口网关获取到第二量子密钥之后发送。
需要说明的是,本申请上述实施例中涉及到的优选实施方式与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例4
根据本申请实施例,还提供了一种用于实施上述身份认证方法的身份认证装置,该装置可以是API网关中执行身份认证方法的装置,如图8所示,该装置800包括:接收模块802、验证模块804和发送模块806。
其中,接收模块802用于接收客户端发送的认证请求,其中,认证请求基于客户端获取到的第一量子密钥生成;验证模块804用于对认证请求进行验证,得到客户端的认证结果;发送模块806用于发送认证结果至客户端。
此处需要说明的是,上述接收模块802、验证模块804和发送模块806对应于实施例2中的步骤S602至步骤S606,三个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
本申请上述实施例中,验证模块包括:获取单元、输入模块和比较模块。
其中,获取单元用于获取认证请求中的第一签名,其中,第一签名位于认证请求的头部的第一字段中,第一签名由客户端将第一量子密钥输入至哈希消息认证码得到;输入模块用于将获取到的第二量子密钥输入至哈希消息认证码,得到第二签名,其中,第二量子密钥与第一量子密钥相同;比较模块用于将第一签名和第二签名进行比较,得到认证结果。
本申请上述实施例中,验证模块包括:解密单元。
其中,获取单元用于获取认证请求中的加密数据,其中,加密数据位于认证请求的头部的第一字段中或认证请求的第二字段中,加密数据由客户端利用第一量子密钥对客户端的目标数据进行加密得到;解密单元用于利用获取到的第二量子密钥对加密数据进行解密,得到解密数据,第二量子密钥与第一量子密钥相同;比较模块用于将解密数据和目标数据进行比较,得到认证结果。
本申请上述实施例中,接收模块还用于接收客户端发送的第一通知消息,其中,第一通知消息用于提示客户端利用第一量子密钥对目标数据进行加密。
本申请上述实施例中,接收模块还用于接收客户端发送的第二通知消息,其中,第二通知消息中携带有第一量子密钥的标识信息,标识信息由客户端从第一量子密钥分配***获取;发送模块还用于发送携带标识信息的第二获取请求至第二量子密钥分配***;接收模块还用于接收第二量子密钥分配***返回的第二量子密钥,其中,第二量子密钥与第一量子密钥相同;发送模块还用于在获取到第二量子密钥之后,发送响应消息至客户端。
需要说明的是,本申请上述实施例中涉及到的优选实施方式与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例5
根据本申请实施例,还提供了一种身份认证***。
图9是根据本申请实施例的一种身份认证***的示意图。如图9所示,该***包括:客户端10和应用程序接口网关20。
其中,客户端10用于基于获取到的第一量子密钥,生成认证请求;应用程序接口网关20与客户端通信连接,用于对认证请求进行验证,得到客户端的认证结果,并发送认证结果至客户端。
上述步骤中的客户端可以是需要使用开放API的用户的计算机终端或移动终端,移动终端可以是智能手机(包括:Android手机和IOS手机)、平板电脑、IPAD、掌上电脑和笔记本电脑等,但不仅限于此。认证请求可以是HTTP请求,为了实现身份认证的目的,HTTP请求中包含有Authorization Header。
目前大型云服务提供商普遍采用API网关的方式,为部署在数据中心的云产品应用提供对外开放API服务的能力。上述步骤中的应用程序接口网关可以是OpenAPI中的API网关,可以对接入的客户端进行身份认证。
本申请上述实施例中,客户端还用于将第一量子密钥输入至哈希消息认证码,得到第一签名,并将第一签名添加至认证请求的头部的第一字段中。
本申请上述实施例中,应用程序接口网关还用于获取认证请求中的第一签名,将获取到的第二量子密钥输入至哈希消息认证码,得到第二签名,将第一签名和第二签名进行比较,得到认证结果,其中,第二量子密钥与第一量子密钥相同。
本申请上述实施例中,客户端还用于获取客户端的目标数据,利用第一量子密钥对目标数据进行加密,得到加密数据,并将加密数据添加至认证请求的头部的第一字段或认证请求的第二字段中。
本申请上述实施例中,应用程序接口网关还用于获取认证请求中的加密数据,利用获取到的第二量子密钥对加密数据进行解密,得到解密数据,将解密数据和目标数据进行比较,得到认证结果,其中,第二量子密钥与第一量子密钥相同。
本申请上述实施例中,客户端还用于在获取到目标数据之后,发送第一通知消息至应用程序接口网关,其中,第一通知消息用于提示客户端利用第一量子密钥对目标数据进行加密。
本申请上述实施例中,如图9所示,该***还包括:第一量子密钥分配***30。
其中,第一量子密钥分配***30与客户端10通信连接,用于在接收到客户端发送的第一获取请求之后,发送第一量子密钥和第一量子密钥的标识信息至客户端。
本申请上述实施例中,如图9所示,该***还包括:第二量子密钥分配***40。
其中,客户端还用于发送携带标识信息的第二通知消息至应用程序接口网关;第二量子密钥分配***40与应用程序接口网关20通信连接,用于在接收到应用程序接口网关发送的携带标识信息的第二获取请求之后,发送第二量子密钥至应用程序接口网关,其中,第二量子密钥与第一量子密钥相同;应用程序接口网关还用于在获取到第二量子密钥之后,发送响应消息至客户端。
需要说明的是,本申请上述实施例中涉及到的优选实施方式与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例6
根据本申请实施例,还提供了一种身份认证***,包括:
处理器;以及
存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:获取第一量子密钥;基于第一量子密钥,生成认证请求;发送认证请求至应用程序接口网关,并接收应用程序接口网关返回的客户端的认证结果,其中,认证结果由应用程序接口网关对认证请求进行验证得到。
需要说明的是,本申请上述实施例中涉及到的优选实施方式与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例7
根据本申请实施例,还提供了一种身份认证方法的实施例。
图10是根据本申请实施例的又一种身份认证方法的流程图。如图10所示,该方法至少包括如下步骤:
步骤S102,客户端获取第一密钥;
步骤S104,客户端基于第一密钥,生成认证请求;
步骤S106,客户端发送认证请求至应用程序接口网关,并接收应用程序接口网关返回的客户端的认证结果,其中,认证结果由应用程序接口网关对认证请求进行验证得到。
上述步骤中的客户端可以是需要使用开放API的用户的计算机终端或移动终端,移动终端可以是智能手机(包括:Android手机和IOS手机)、平板电脑、IPAD、掌上电脑和笔记本电脑等,但不仅限于此。认证请求可以是HTTP请求,为了实现身份认证的目的,HTTP请求中包含有Authorization Header。第一密钥可以是量子密钥,但不仅限于此,也可以是其他随机性和安全强度较高,且能抗量子攻击能力的密钥。
目前大型云服务提供商普遍采用API网关的方式,为部署在数据中心的云产品应用提供对外开放API服务的能力。上述步骤中的应用程序接口网关可以是OpenAPI中的API网关,可以对接入的客户端进行身份认证。
本申请上述实施例中,客户端基于第一密钥,生成认证请求包括:客户端将第一密钥输入至哈希消息认证码,得到第一签名;客户端将第一签名添加至认证请求的头部的第一字段中。
本申请上述实施例中,认证结果由应用程序接口网关将第一签名和第二签名进行比较得到,第二签名由应用程序接口网关将第二密钥输入至哈希消息认证码得到,其中,第二密钥与第一密钥相同。
本申请上述实施例中,客户端基于第一密钥,生成认证请求包括:客户端获取客户端的目标数据;客户端利用第一密钥对目标数据进行加密,得到加密数据;客户端将加密数据添加至认证请求的头部的第一字段或认证请求的第二字段中。
本申请上述实施例中,认证结果由应用程序接口网关将客户端的目标数据与解密数据进行比较得到,解密数据由应用程序接口网关利用第二密钥对加密数据进行解密得到,第二密钥与第一密钥相同。
本申请上述实施例中,在客户端获取到目标数据之后,客户端发送第一通知消息至应用程序接口网关,其中,第一通知消息用于提示客户端利用第一密钥对目标数据进行加密。
本申请上述实施例中,客户端获取第一密钥包括:客户端发送第一获取请求至第一密钥分配***;客户端接收第一密钥分配***发送的第一密钥和第一密钥的标识信息。
本申请上述实施例中,在客户端接收第一密钥分配***发送的标识信息之后,该方法还包括如下步骤:客户端发送携带标识信息的第二通知消息至应用程序接口网关,其中,标识信息用于应用程序接口网关从第二密钥分配***获取第二密钥,第二密钥与第一密钥相同;客户端接收应用程序接口网关返回的响应消息,其中,响应消息由应用程序接口网关获取到第二密钥之后发送。
需要说明的是,本申请上述实施例中涉及到的优选实施方式与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例8
本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行身份认证方法中以下步骤的程序代码:获取第一量子密钥;基于第一量子密钥,生成认证请求;发送认证请求至应用程序接口网关,并接收应用程序接口网关返回的客户端的认证结果,其中,认证结果由应用程序接口网关对认证请求进行验证得到。
可选地,图11是根据本申请实施例的一种计算机终端的结构框图。如图11所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器112以及存储器114。
其中,存储器可用于存储软件程序以及模块,如本申请实施例中的身份认证方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的身份认证方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取第一量子密钥;基于第一量子密钥,生成认证请求;发送认证请求至应用程序接口网关,并接收应用程序接口网关返回的客户端的认证结果,其中,认证结果由应用程序接口网关对认证请求进行验证得到。
可选的,上述处理器还可以执行如下步骤的程序代码:将第一量子密钥输入至哈希消息认证码,得到第一签名;将第一签名添加至认证请求的头部的第一字段中。
可选的,上述处理器还可以执行如下步骤的程序代码:获取客户端的目标数据;利用第一量子密钥对目标数据进行加密,得到加密数据;将加密数据添加至认证请求的头部的第一字段或认证请求的第二字段中。
可选的,上述处理器还可以执行如下步骤的程序代码:在获取到目标数据之后,发送第一通知消息至应用程序接口网关,其中,第一通知消息用于提示客户端利用第一量子密钥对目标数据进行加密。
可选的,上述处理器还可以执行如下步骤的程序代码:发送第一获取请求至第一量子密钥分配***;接收第一量子密钥分配***发送的第一量子密钥和第一量子密钥的标识信息。
可选的,上述处理器还可以执行如下步骤的程序代码:在接收第一量子密钥分配***发送的标识信息之后,发送携带标识信息的第二通知消息至应用程序接口网关,其中,标识信息用于应用程序接口网关从第二量子密钥分配***获取第二量子密钥,第二量子密钥与第一量子密钥相同;接收应用程序接口网关返回的响应消息,其中,响应消息由应用程序接口网关获取到第二量子密钥之后发送。
采用本申请实施例,提供了一种身份认证的方案。通过量子密钥生成认证请求,基于量子密钥的特性,达到了提高密钥的随机性和安全强度,具备抗量子攻击能力的效果,进而解决了相关技术中身份认证方法的安全性依赖于安全传输层协议,无法抵御量子计算机的攻击的技术问题。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:接收客户端发送的认证请求,其中,认证请求基于客户端获取到的第一量子密钥生成;对认证请求进行验证,得到客户端的认证结果;发送认证结果至客户端。
可选的,上述处理器还可以执行如下步骤的程序代码:获取认证请求中的第一签名,其中,第一签名位于认证请求的头部的第一字段中,第一签名由客户端将第一量子密钥输入至哈希消息认证码得到;将获取到的第二量子密钥输入至哈希消息认证码,得到第二签名,其中,第二量子密钥与第一量子密钥相同;将第一签名和第二签名进行比较,得到认证结果。
可选的,上述处理器还可以执行如下步骤的程序代码:获取认证请求中的加密数据,其中,加密数据位于认证请求的头部的第一字段中或认证请求的第二字段中,加密数据由客户端利用第一量子密钥对客户端的目标数据进行加密得到;利用获取到的第二量子密钥对加密数据进行解密,得到解密数据,其中,第二量子密钥与第一量子密钥相同;将解密数据和目标数据进行比较,得到认证结果。
可选的,上述处理器还可以执行如下步骤的程序代码:在应用程序接口网关接收客户端发送的认证请求之前,接收客户端发送的第一通知消息,其中,第一通知消息用于提示客户端利用第一量子密钥对目标数据进行加密。
可选的,上述处理器还可以执行如下步骤的程序代码:在应用程序接口网关接收客户端发送的认证请求之前,接收客户端发送的第二通知消息,其中,第二通知消息中携带有第一量子密钥的标识信息,标识信息由客户端从第一量子密钥分配***获取;发送携带标识信息的第二获取请求至第二量子密钥分配***,并接收第二量子密钥分配***返回的第二量子密钥,其中,第二量子密钥与第一量子密钥相同;在获取到第二量子密钥之后,发送响应消息至客户端。
本领域普通技术人员可以理解,图11所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图11其并不对上述电子装置的结构造成限定。例如,计算机终端A还可包括比图11中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图11所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例8
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的身份认证方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取第一量子密钥;基于第一量子密钥,生成认证请求;发送认证请求至应用程序接口网关,并接收应用程序接口网关返回的客户端的认证结果,其中,认证结果由应用程序接口网关对认证请求进行验证得到。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:将第一量子密钥输入至哈希消息认证码,得到第一签名;将第一签名添加至认证请求的头部的第一字段中。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:获取客户端的目标数据;利用第一量子密钥对目标数据进行加密,得到加密数据;将加密数据添加至认证请求的头部的第一字段或认证请求的第二字段中。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在获取到目标数据之后,发送第一通知消息至应用程序接口网关,其中,第一通知消息用于提示客户端利用第一量子密钥对目标数据进行加密。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:发送第一获取请求至第一量子密钥分配***;接收第一量子密钥分配***发送的第一量子密钥和第一量子密钥的标识信息。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在接收第一量子密钥分配***发送的标识信息之后,发送携带标识信息的第二通知消息至应用程序接口网关,其中,标识信息用于应用程序接口网关从第二量子密钥分配***获取第二量子密钥,第二量子密钥与第一量子密钥相同;接收应用程序接口网关返回的响应消息,其中,响应消息由应用程序接口网关获取到第二量子密钥之后发送。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:接收客户端发送的认证请求,其中,认证请求基于客户端获取到的第一量子密钥生成;对认证请求进行验证,得到客户端的认证结果;发送认证结果至客户端。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:获取认证请求中的第一签名,其中,第一签名位于认证请求的头部的第一字段中,第一签名由客户端将第一量子密钥输入至哈希消息认证码得到;将获取到的第二量子密钥输入至哈希消息认证码,得到第二签名,其中,第二量子密钥与第一量子密钥相同;将第一签名和第二签名进行比较,得到认证结果。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:获取认证请求中的加密数据,其中,加密数据位于认证请求的头部的第一字段中或认证请求的第二字段中,加密数据由客户端利用第一量子密钥对客户端的目标数据进行加密得到;利用获取到的第二量子密钥对加密数据进行解密,得到解密数据,其中,第二量子密钥与第一量子密钥相同;将解密数据和目标数据进行比较,得到认证结果。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在应用程序接口网关接收客户端发送的认证请求之前,接收客户端发送的第一通知消息,其中,第一通知消息用于提示客户端利用第一量子密钥对目标数据进行加密。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在应用程序接口网关接收客户端发送的认证请求之前,接收客户端发送的第二通知消息,其中,第二通知消息中携带有第一量子密钥的标识信息,标识信息由客户端从第一量子密钥分配***获取;发送携带标识信息的第二获取请求至第二量子密钥分配***,并接收第二量子密钥分配***返回的第二量子密钥,其中,第二量子密钥与第一量子密钥相同;在获取到第二量子密钥之后,发送响应消息至客户端。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (20)

1.一种身份认证方法,包括:
客户端获取第一量子密钥;
所述客户端基于所述第一量子密钥,生成认证请求;
所述客户端发送所述认证请求至应用程序接口网关,并接收所述应用程序接口网关返回的所述客户端的认证结果,其中,所述认证结果由所述应用程序接口网关对所述认证请求进行验证得到。
2.根据权利要求1所述的方法,其中,所述客户端基于所述第一量子密钥,生成认证请求包括:
所述客户端将所述第一量子密钥输入至哈希消息认证码,得到第一签名;
所述客户端将所述第一签名添加至所述认证请求的头部的第一字段中。
3.根据权利要求2所述的方法,其中,所述认证结果由所述应用程序接口网关将所述第一签名和第二签名进行比较得到,所述第二签名由所述应用程序接口网关将第二量子密钥输入至哈希消息认证码得到,其中,所述第二量子密钥与所述第一量子密钥相同。
4.根据权利要求1所述的方法,其中,所述客户端基于所述第一量子密钥,生成认证请求包括:
所述客户端获取所述客户端的目标数据;
所述客户端利用所述第一量子密钥对所述目标数据进行加密,得到加密数据;
所述客户端将所述加密数据添加至所述认证请求的头部的第一字段或所述认证请求的第二字段中。
5.根据权利要求4所述的方法,其中,所述认证结果由所述应用程序接口网关将所述客户端的目标数据与解密数据进行比较得到,所述解密数据由所述应用程序接口网关利用第二量子密钥对所述加密数据进行解密得到,所述第二量子密钥与所述第一量子密钥相同。
6.根据权利要求4所述的方法,其中,在所述客户端获取到所述目标数据之后,所述客户端发送第一通知消息至所述应用程序接口网关,其中,所述第一通知消息用于提示所述客户端利用所述第一量子密钥对所述目标数据进行加密。
7.根据权利要求1所述的方法,其中,客户端获取第一量子密钥包括:
所述客户端发送第一获取请求至第一量子密钥分配***;
所述客户端接收所述第一量子密钥分配***发送的所述第一量子密钥和所述第一量子密钥的标识信息。
8.根据权利要求7所述的方法,其中,在所述客户端接收所述第一量子密钥分配***发送的所述标识信息之后,所述方法还包括:
所述客户端发送携带所述标识信息的第二通知消息至所述应用程序接口网关,其中,所述标识信息用于所述应用程序接口网关从第二量子密钥分配***获取第二量子密钥,所述第二量子密钥与所述第一量子密钥相同;
所述客户端接收所述应用程序接口网关返回的响应消息,其中,所述响应消息由所述应用程序接口网关获取到所述第二量子密钥之后发送。
9.一种身份认证方法,包括:
应用程序接口网关接收客户端发送的认证请求,其中,所述认证请求基于所述客户端获取到的第一量子密钥生成;
所述应用程序接口网关对所述认证请求进行验证,得到所述客户端的认证结果;
所述应用程序接口网关发送所述认证结果至所述客户端。
10.根据权利要求9所述的方法,其中,所述应用程序接口网关对所述认证请求进行验证,得到所述客户端的认证结果包括:
所述应用程序接口网关获取所述认证请求中的第一签名,其中,所述第一签名位于所述认证请求的头部的第一字段中,所述第一签名由所述客户端将所述第一量子密钥输入至哈希消息认证码得到;
所述应用程序接口网关将获取到的第二量子密钥输入至哈希消息认证码,得到第二签名,其中,所述第二量子密钥与所述第一量子密钥相同;
所述应用程序接口网关将所述第一签名和所述第二签名进行比较,得到所述认证结果。
11.根据权利要求9所述的方法,其中,所述应用程序接口网关对所述认证请求进行验证,得到所述客户端的认证结果包括:
所述应用程序接口网关获取所述认证请求中的加密数据,其中,所述加密数据位于所述认证请求的头部的第一字段中或所述认证请求的第二字段中,所述加密数据由所述客户端利用所述第一量子密钥对所述客户端的目标数据进行加密得到;
所述应用程序接口网关利用获取到的第二量子密钥对所述加密数据进行解密,得到解密数据,其中,所述第二量子密钥与所述第一量子密钥相同;
所述应用程序接口网关将所述解密数据和所述目标数据进行比较,得到所述认证结果。
12.根据权利要求11所述的方法,其中,在应用程序接口网关接收客户端发送的认证请求之前,所述方法还包括:
所述应用程序接口网关接收所述客户端发送的第一通知消息,其中,所述第一通知消息用于提示所述客户端利用所述第一量子密钥对所述目标数据进行加密。
13.根据权利要求9所述的方法,其中,在应用程序接口网关接收客户端发送的认证请求之前,所述方法还包括:
所述应用程序接口网关接收所述客户端发送的第二通知消息,其中,所述第二通知消息中携带有所述第一量子密钥的标识信息,所述标识信息由所述客户端从第一量子密钥分配***获取;
所述应用程序接口网关发送携带所述标识信息的第二获取请求至第二量子密钥分配***,并接收所述第二量子密钥分配***返回的第二量子密钥,其中,所述第二量子密钥与所述第一量子密钥相同;
在获取到所述第二量子密钥之后,所述应用程序接口网关发送响应消息至所述客户端。
14.一种身份认证***,包括:
客户端,用于基于获取到的第一量子密钥,生成认证请求;
应用程序接口网关,与所述客户端通信连接,用于对所述认证请求进行验证,得到所述客户端的认证结果,并发送所述认证结果至所述客户端。
15.根据权利要求14所述的***,其中,所述***还包括:
第一量子密钥分配***,与所述客户端通信连接,用于在接收到所述客户端发送的第一获取请求之后,发送所述第一量子密钥和所述第一量子密钥的标识信息至所述客户端。
16.根据权利要求15所述的***,其中,
所述客户端还用于发送携带所述标识信息的第二通知消息至所述应用程序接口网关;
所述***还包括:第二量子密钥分配***,与所述应用程序接口网关通信连接,用于在接收到所述应用程序接口网关发送的携带所述标识信息的第二获取请求之后,发送第二量子密钥至所述应用程序接口网关,其中,所述第二量子密钥与所述第一量子密钥相同;
所述应用程序接口网关还用于在获取到所述第二量子密钥之后,发送响应消息至所述客户端。
17.一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至13中任意一项所述的身份认证方法。
18.一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至13中任意一项所述的身份认证方法。
19.一种身份认证***,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:获取第一量子密钥;基于所述第一量子密钥,生成认证请求;发送所述认证请求至应用程序接口网关,并接收所述应用程序接口网关返回的客户端的认证结果,其中,所述认证结果由所述应用程序接口网关对所述认证请求进行验证得到。
20.一种身份认证方法,包括:
客户端获取第一密钥;
所述客户端基于所述第一密钥,生成认证请求;
所述客户端发送所述认证请求至应用程序接口网关,并接收所述应用程序接口网关返回的所述客户端的认证结果,其中,所述认证结果由所述应用程序接口网关对所述认证请求进行验证得到。
CN202010187540.0A 2020-03-17 2020-03-17 身份认证方法和***、存储介质及处理器 Active CN113411187B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010187540.0A CN113411187B (zh) 2020-03-17 2020-03-17 身份认证方法和***、存储介质及处理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010187540.0A CN113411187B (zh) 2020-03-17 2020-03-17 身份认证方法和***、存储介质及处理器

Publications (2)

Publication Number Publication Date
CN113411187A true CN113411187A (zh) 2021-09-17
CN113411187B CN113411187B (zh) 2023-12-15

Family

ID=77677282

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010187540.0A Active CN113411187B (zh) 2020-03-17 2020-03-17 身份认证方法和***、存储介质及处理器

Country Status (1)

Country Link
CN (1) CN113411187B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114816737A (zh) * 2022-04-11 2022-07-29 中国电子科技集团公司第三十研究所 高性能杂凑运算方法、装置、计算机设备及存储介质
CN115002770A (zh) * 2022-05-24 2022-09-02 矩阵时光数字科技有限公司 一种基于量子密钥的近场通信***
WO2023071429A1 (zh) * 2021-11-01 2023-05-04 中兴通讯股份有限公司 Api认证鉴权的方法、***、运行控制装置及存储介质
CN117579374A (zh) * 2023-12-19 2024-02-20 重庆数子引力网络科技有限公司 基于OpenAPI的服务访问权限认证方法、装置、***和服务器

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106712931A (zh) * 2015-08-20 2017-05-24 上海国盾量子信息技术有限公司 基于量子密码网络的手机令牌身份认证***及方法
CN107769913A (zh) * 2016-08-16 2018-03-06 广东国盾量子科技有限公司 一种基于量子UKey的通信方法及***
CN108809633A (zh) * 2017-04-28 2018-11-13 广东国盾量子科技有限公司 一种身份认证的方法、装置及***
CN109104271A (zh) * 2017-06-20 2018-12-28 山东量子科学技术研究院有限公司 一种数字签名的方法、装置和***
CN109428709A (zh) * 2017-08-22 2019-03-05 中国电信股份有限公司 量子密钥分配方法、***以及光网络***

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108737323B (zh) * 2017-04-13 2021-06-18 山东量子科学技术研究院有限公司 一种数字签名方法、装置及***
CN109660338B (zh) * 2018-11-19 2021-07-27 如般量子科技有限公司 基于对称密钥池的抗量子计算数字签名方法和***

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106712931A (zh) * 2015-08-20 2017-05-24 上海国盾量子信息技术有限公司 基于量子密码网络的手机令牌身份认证***及方法
CN107769913A (zh) * 2016-08-16 2018-03-06 广东国盾量子科技有限公司 一种基于量子UKey的通信方法及***
CN108809633A (zh) * 2017-04-28 2018-11-13 广东国盾量子科技有限公司 一种身份认证的方法、装置及***
CN109104271A (zh) * 2017-06-20 2018-12-28 山东量子科学技术研究院有限公司 一种数字签名的方法、装置和***
CN109428709A (zh) * 2017-08-22 2019-03-05 中国电信股份有限公司 量子密钥分配方法、***以及光网络***

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023071429A1 (zh) * 2021-11-01 2023-05-04 中兴通讯股份有限公司 Api认证鉴权的方法、***、运行控制装置及存储介质
CN114816737A (zh) * 2022-04-11 2022-07-29 中国电子科技集团公司第三十研究所 高性能杂凑运算方法、装置、计算机设备及存储介质
CN114816737B (zh) * 2022-04-11 2024-03-22 中国电子科技集团公司第三十研究所 高性能杂凑运算方法、装置、计算机设备及存储介质
CN115002770A (zh) * 2022-05-24 2022-09-02 矩阵时光数字科技有限公司 一种基于量子密钥的近场通信***
CN117579374A (zh) * 2023-12-19 2024-02-20 重庆数子引力网络科技有限公司 基于OpenAPI的服务访问权限认证方法、装置、***和服务器

Also Published As

Publication number Publication date
CN113411187B (zh) 2023-12-15

Similar Documents

Publication Publication Date Title
CN109088889B (zh) 一种ssl加解密方法、***及计算机可读存储介质
CN109309565B (zh) 一种安全认证的方法及装置
CN107251035B (zh) 账户恢复协议
CN106104562B (zh) 机密数据安全储存和恢复***及方法
US9779224B2 (en) Methods and systems for client-enhanced challenge-response authentication
US8763097B2 (en) System, design and process for strong authentication using bidirectional OTP and out-of-band multichannel authentication
US8532620B2 (en) Trusted mobile device based security
JP6399382B2 (ja) 認証システム
CN101978650B (zh) 安全的网络认证***和方法
US11736304B2 (en) Secure authentication of remote equipment
CN109861813B (zh) 基于非对称密钥池的抗量子计算https通信方法和***
US8397281B2 (en) Service assisted secret provisioning
JP2019530265A (ja) グラフィックコード情報を提供及び取得する方法及び装置並びに端末
CN108809633B (zh) 一种身份认证的方法、装置及***
CN113411187B (zh) 身份认证方法和***、存储介质及处理器
CN109716725B (zh) 数据安全***及其操作方法和计算机可读存储介质
Obert et al. Recommendations for trust and encryption in DER interoperability standards
CN114143117A (zh) 数据处理方法及设备
CN114070568A (zh) 数据处理方法、装置、电子设备和存储介质
US11888822B1 (en) Secure communications to multiple devices and multiple parties using physical and virtual key storage
JP2005175992A (ja) 証明書配布システムおよび証明書配布方法
CN103916372A (zh) 一种第三方登录信息托管方法和***
CN116318637A (zh) 设备安全入网通信的方法和***
CN115883104B (zh) 终端设备的安全登录方法及装置、非易失性存储介质
Xu et al. Qrtoken: Unifying authentication framework to protect user online identity

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40059900

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant