CN114826778A - 一种鉴权方法、装置、设备及介质 - Google Patents
一种鉴权方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN114826778A CN114826778A CN202210701449.5A CN202210701449A CN114826778A CN 114826778 A CN114826778 A CN 114826778A CN 202210701449 A CN202210701449 A CN 202210701449A CN 114826778 A CN114826778 A CN 114826778A
- Authority
- CN
- China
- Prior art keywords
- appkey
- request information
- value
- coefficient set
- target client
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/321—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 a third party or a trusted authority
-
- 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/3236—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 cryptographic hash functions
-
- 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/3297—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 time stamps, e.g. generation of time stamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/121—Timestamp
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
本申请公开了一种鉴权方法、装置、设备及介质,涉及互联网领域,该方法应用于目标客户端,包括:向服务器端发送安全凭证申请请求,并接收由服务器端生成并在服务器端本地保存的与当前目标客户端唯一对应的appkey与多项式系数集合;利用所述appkey与多项式系数集合生成请求信息,并将请求信息发送至所述服务器端,以便服务器端基于服务器端本地保存的与目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对请求信息进行验证,并生成验证结果;接收由服务器端发送的所述验证结果。本申请中的方案基于多项式承诺技术实现了接口鉴权,在鉴权过程中无需暴露作为密钥角色的多项式系数集合,大大减小鉴权过程中密钥泄露的风险,提升了安全性。
Description
技术领域
本发明涉及互联网领域,特别涉及一种鉴权方法、装置、设备及介质。
背景技术
在传统的B/S(即Browser/Server,浏览器/服务器模式)应用开发方式中,服务器端与客户端(浏览器)都是使用session(即会话控制)进行状态管理的,但在一些特定情形下,如应用于非浏览器的客户端、手机移动端或分布式应用中时,可能会存在无法保证session的唯一性和共享性的问题。现有技术中,为解决这个问题,提出了一种基于Keystone的Openstack Swift的HTTP(即HyperText Transfer Protocol,超文本传输协议)请求鉴权流程,其具体过程为整个系统提供全局唯一的Keystone服务,客户端在发送HTTP请求之前,首先需要向Keystone申请一个Token(即令牌,一般为定长的字符串),该Token的有效期由Keystone服务端来指定。申请Token时,需要向Keystone提供用户名和密码,Keystone认证通过该用户之后,发放Token给客户端。之后客户端每次发送HTTP请求时都必须携带该Token,Swift拿到该Token和用户名信息后,也会向Keystone查询该Token是否有效。Token有效,则继续处理该业务,Token无效,则返回鉴权失败。但在这种方法中,由于每次都需用用户名和密码去申请,且每次请求都会带上相同的Token鉴权,这个过程中频繁地申请有可能会造成密钥的泄漏,若Token泄露会导致接口能任意访问,会造成比较严重的后果。另外,由于每一次请求都需要Swift与Keystone之间作一次交互,所以导致性能容易出现问题。
由上可见,在服务器端与客户端的交互过程中,如何避免出现由于现有的鉴权方法导致密钥的安全性较低,且容易出现性能问题的情况是本领域有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种鉴权方法、装置、设备及介质,能够有效避免现有技术中密钥在传输过程中可能被泄露的问题,进而提升鉴权的安全性与效率。其具体方案如下:
第一方面,本申请公开了一种鉴权方法,应用于目标客户端,包括:
向服务器端发送安全凭证申请请求,并接收由所述服务器端生成并在服务器端本地保存的与当前目标客户端唯一对应的appkey与多项式系数集合;
利用所述appkey与多项式系数集合生成请求信息,并将所述请求信息发送至所述服务器端,以便所述服务器端基于服务器端本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证,并生成验证结果;
接收由服务器端发送的所述验证结果。
可选的,所述利用所述appkey与多项式系数集合生成请求信息,包括:
基于所述多项式系数集合确定多项式函数;
利用所述多项式函数与预设的哈希算法计算时间戳承诺值与见证值;
利用所述时间戳承诺值、所述见证值以及所述appkey生成请求信息。
可选的,所述利用所述多项式函数与预设的哈希算法计算时间戳承诺值与见证值,包括:
确定当前时间戳,并利用预设的哈希算法对所述时间戳进行相应的计算,以得到第一哈希值,然后将所述第一哈希值带入所述多项式函数以得到相应的函数值,并将所述函数值作为时间戳承诺值;
确定目标请求参数,并利用所述预设的哈希算法对所述目标请求参数进行相应的计算,以得到第二哈希值,然后将所述第一哈希值带入所述多项式函数以得到相应的函数值,并将所述函数值作为请求信息承诺值;
基于所述多项式函数、所述时间戳承诺值、所述请求信息承诺值、所述第一哈希值以及所述第二哈希值,并利用预设的见证值计算方法确定见证值。
可选的,所述接收由所述服务器端生成并在服务器端本地保存的与当前目标客户端唯一对应的appkey与多项式系数集合之后,还包括:
利用预设的保存信息方法将所述appkey与多项式系数集合保存至本地。
第二方面,本申请公开了一种鉴权方法,应用于服务器端,包括:当接收到由目标客户端发送的安全凭证申请请求,则生成并在本地保存与所述目标客户端唯一对应的appkey与多项式系数集合,然后将所述appkey与所述多项式系数集合发送至所述目标客户端,以便所述目标客户端将接收到的所述appkey与所述多项式系数集合保存至本地;
当接收到所述目标客户端基于所述appkey与所述多项式系数集合生成并发送的请求信息,则基于本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息中的目标信息进行验证,以生成验证结果;
向所述目标客户端返回所述验证结果。
可选的,所述基于本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证之前,还包括:
从所述请求信息中确定时间戳,并判断所述时间戳是否符合预设时间戳校验条件;
若所述时间戳符合预设时间戳校验条件,则触发所述基于本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证的步骤;
若所述时间戳不符合预设时间戳校验条件,则禁止触发所述基于本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证的步骤。
可选的,所述基于本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证,以生成验证结果,包括:
基于本地保存的与所述目标客户端对应的所述appkey与多项式系数集合计算请求信息承诺值,并利用预设的验证公式对所述请求信息承诺值与所述请求信息中的时间戳承诺值和见证值进行验证,以判断所述验证公式是否成立;
若所述验证公式成立,则生成用于表征验证成功的验证结果;
若所述验证公式不成立,则生成用于表征验证失败的验证结果。
第三方面,本申请公开了一种鉴权装置,应用于目标客户端,包括:
第一请求发送模块,用于向服务器端发送安全凭证申请请求,并接收由所述服务器端生成并在服务器端本地保存的与当前目标客户端唯一对应的appkey与多项式系数集合;
第二请求发送模块,用于利用所述appkey与多项式系数集合生成请求信息,并将所述请求信息发送至所述服务器端,以便所述服务器端基于服务器端本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证,并生成验证结果;
验证结果接收模块,用于接收由服务器端发送的所述验证结果。
第四方面,本申请公开了一种电子设备,包括:
存储器,用于保存计算机程序;
处理器,用于执行所述计算机程序,以实现前述的鉴权方法。
第五方面,本申请公开了一种计算机存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的鉴权方法的步骤。
本申请中目标客户端先向服务器端发送安全凭证申请请求,并接收由所述服务器端生成并在服务器端本地保存的与当前目标客户端唯一对应的appkey与多项式系数集合,然后利用所述appkey与多项式系数集合生成请求信息,并将所述请求信息发送至所述服务器端,以便所述服务器端基于服务器端本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证,并生成验证结果,最后接收由服务器端发送的所述验证结果。这样一来,本申请中的方案基于多项式承诺技术实现了接口鉴权,具体是通过在服务器端申请appkey与多项式系数集合后,所述appkey与多项式系数集合均会在服务器端与目标客户端中实现本地保存,进而在鉴权过程中无需暴露作为密钥角色的多项式系数集合,大大减小鉴权过程中密钥泄露的风险,提升了安全性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种鉴权方法流程图;
图2为本申请提供的一种鉴权方法流程图;
图3为本申请提供的一种鉴权流程图;
图4为本申请提供的一种客户端与服务器端的交互时序图;
图5为本申请提供的一种鉴权装置结构示意图;
图6为本申请提供的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有技术中的鉴权流程中因执行过程较为繁琐容易导致密钥的泄露,缺少安全性,且容易出现性能问题。在本申请中,能够有效避免现有技术中密钥在传输过程中可能被泄露的问题,进而提升了鉴权的安全性与效率。
本发明实施例公开了一种鉴权方法,应用于目标客户端,参见图1所述,该方法包括:
步骤S11:向服务器端发送安全凭证申请请求,并接收由所述服务器端生成并在服务器端本地保存的与当前目标客户端唯一对应的appkey(即API接口验证序号)与多项式系数集合。
本实施例中,目标客户端会向服务器端发送安全凭证申请请求,服务端在接收到所述安全凭证申请请求后,会向目标客户端返回appkey与多项式系数集合,所述appkey用于标识API(即Application Programming Interface,应用程序编程接口)调用者的身份,所述多项式系数集合是一种用于构建多项式函数的系数集合,相当于密钥。在一种具体的实施方式中,所述多项式系数集合的格式可以是,构建的多项式函数的格式可以是。
本实施例中,所述接收由所述服务器端生成并在服务器端本地保存的与当前目标客户端唯一对应的appkey与多项式系数集合之后,还可以包括:利用预设的保存信息方法将所述appkey与多项式系数集合保存至本地。需要指出的是,本实施例中所述目标客户端在接收到所述服务器发送的所述appkey与多项式系数后,会对所述appkey与多项式系数集合进行严格保管,在一些具体的实施方式中,还可以重点对所述多项式系数集合进行加密保管。相应的,服务器端在生成所述多项式系数集合后,也会对所述多项式系数集合进行严格保管,避免其泄露。
需要注意的是,本实施例中所述服务器端会在本地保存所述appkey与多项式系数集合,在后续服务器端与目标客户端的交互过程中,目标客户端发送的请求信息中不包含所述多项式系数集合,但会包含所述appkey,服务器端在接收到所述请求信息后,会根据所述appkey确定目标客户端的身份,再利用本地保存的与所述目标客户端对应的多项式系数集合进行请求信息的验证,在验证通过后为所述目标客户端调用相应的服务。也就是说,本方法在鉴权的过程中自始至终没有完全暴露最初的多项式,即密钥不会被暴露,进而避免了密钥的泄露,提升了安全性。
步骤S12:利用所述appkey与多项式系数集合生成请求信息,并将所述请求信息发送至所述服务器端,以便所述服务器端基于服务器端本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证,并生成验证结果。
现有技术中,密码学承诺包含承诺方和验证方角色,一般分为两个使用阶段:承诺生成(Commit)阶段:承诺方选择一个暂不公开的敏感数据v,计算出对应的承诺c并公开;承诺披露(Reveal)阶段:也称之为承诺打开-验证(Open-Verify)阶段,承诺方公布敏感数据v的明文和其他的必要参数,验证方重复承诺生成的计算过程,比较新生成的承诺与之前接收到的承诺c是否一致,一致则表示验证成功,否则失败。
本实施例中,所述利用所述appkey与多项式系数集合生成请求信息,可以包括:基于所述多项式系数集合确定多项式函数;利用所述多项式函数与预设的哈希算法计算时间戳承诺值与见证值;利用所述时间戳承诺值、所述见证值以及所述appkey生成请求信息。可以理解的是,所述多项式函数为基于所述多项式系数集合确定的,利用所述多项式函数可以计算得到时间戳承诺值与见证值,所述请求信息中包含时间戳承诺值、所述见证值以及所述appkey。
本实施例中,所述利用所述多项式函数与预设的哈希算法计算时间戳承诺值与见证值,可以包括:确定当前时间戳,并利用预设的哈希算法对所述时间戳进行相应的计算,以得到第一哈希值,然后将所述第一哈希值带入所述多项式函数以得到相应的函数值,并将所述函数值作为时间戳承诺值;确定目标请求参数,并利用所述预设的哈希算法对所述目标请求参数进行相应的计算,以得到第二哈希值,然后将所述第一哈希值带入所述多项式函数以得到相应的函数值,并将所述函数值作为请求信息承诺值;基于所述多项式函数、所述时间戳承诺值、所述请求信息承诺值、所述第一哈希值以及所述第二哈希值,并利用预设的见证值计算方法确定见证值。
本实施例中,所述基于所述多项式函数、所述时间戳承诺值、所述请求信息承诺值、所述第一哈希值以及所述第二哈希值,并利用预设的见证值计算方法确定见证值,可以包括:基于所述第一哈希值与所述多项式函数构建见证函数,并确定当自变量等于所述第二哈希值时所述见证函数的函数值,并将此时所述见证函数的函数值确定为见证值。
本实施例中,所述利用预设的哈希算法对所述时间戳进行相应的计算,以得到第一哈希值,可以包括:利用sm3算法对所述时间戳进行相应的计算,以得到第一哈希值;相应的,所述利用所述预设的哈希算法对所述目标请求参数进行相应的计算,以得到第二哈希值,包括:利用sm3算法对所述目标请求参数进行相应的计算,以得到第二哈希值。可以理解的是,在一些具体的实施方式中,本步骤中使用的哈希算法包括但不限于sm3算法。
在一种可能的实施方式中,Authorization信息的格式如下:
Authorization:Access=Access key,SignedHeaders=signedHeaders,TimeCommit=timeCommit,Witness=witness
其中,Access key为申请的API调用者身份appKey;signedHeaders为http请求头,其格式例如:content-type;Host;x-sdk-date;timeCommit为时间戳承诺值;witness为见证值。
所述时间戳承诺值的计算过程具体可以是:确定时间戳,并对时间戳进行sm3散列计算得到第一哈希值z,即计算z=sm3(时间戳),然后将z带入基于所述多项式系数集合确定的多项式函数,以确定时间戳承诺值s,即f(z) =f[sm3(时间戳)] = s。
所述见证值的计算过程具体可以是:对请求信息中的目标请求参数进行sm3散列计算得到第二哈希值r,即r=sm3(目标请求参数),然后将r带入多项式函数,以确定信息请求承诺值c,即f(r)=f[sm3(目标请求参数)]=c,同时确定出函数t(x)=[f(x)-s]/[x-sm3(时间戳)]的函数式,并确定当x=r时见证值w的值,即见证值w=t(r)=[f(r)-s]/(r-z)。在一种具体的实施方式中,所述目标请求参数的格式可以是“拼接完整URL(即Uniform ResourceLocation,统一资源定位符)+需要的请求头内容+消息体”。
所述目标客户端生成的所述请求信息的格式如下:
General:
Request URL: https://127.0.0.1:8080/test
Request Method: POST
Request Headers:
Content-Type: application/json
Host: 127.0.0.1:8080
x-sdk-date:1646811910474
Authorization:Access=QTWAOYTTINDUT2QVKYUC, SignedHeaders=content-type;host;x-sdk-date,TimeCommit=s,Witness=w
Request Payload:
{"limit":20,"offset":0,"sort":"","order":"","startTime":"","endTime":""}
其中,Request URL为统一资源定位符,Request Method为请求方法,Content-Type为内容类型,Host为主机地址,x-sdk-date为时间戳。
此时,所述第一哈希值z= sm3(1646811910474)=1B8D5CC8A813C42D23B3A292F16046580B780D952C6C3E88B25542F312833E5C,所述第二哈希值r= sm3(https://127.0.0.1:8080/testapplication/json127.0.0.1:80801646811910474{"limit":20,"offset":0,"sort":"","order":"","startTime":"","endTime":""})=216D9C9B554EC840B70BA6610AFB726D41A1650B353BFB13D5053586ADC9AE88。
步骤S13:接收由服务器端发送的所述验证结果。
可以理解的是,当服务器对接收到的请求信息进行验证后,会向目标客户端返回验证结果;相应的,所述目标客户端则会接收由服务器端发送的所述验证结果。
本实施例中目标客户端先向服务器端发送安全凭证申请请求,并接收由所述服务器端生成并在服务器端本地保存的与当前目标客户端唯一对应的appkey与多项式系数集合,然后利用所述appkey与多项式系数集合生成请求信息,并将所述请求信息发送至所述服务器端,以便所述服务器端基于服务器端本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证,并生成验证结果,最后接收由服务器端发送的所述验证结果。这样一来,本申请中的方案基于多项式承诺技术实现了接口鉴权,具体是通过在服务器端申请appkey与多项式系数集合后,所述appkey与多项式系数集合均会在服务器端与目标客户端中实现本地保存,进而在鉴权过程中无需暴露作为密钥角色的多项式系数集合,大大减小鉴权过程中密钥泄露的风险,提升了安全性,避免了现有技术中对于用户名密码的频繁申请或与平台频繁交互导致性能问题的情况。另外,由于每次申请的请求信息均不同,所以每个请求中的Authorization均不同,即每个请求都需要鉴权校验,保证了每个请求的鉴权过程的完整性。
图2为本申请实施例提供的一种具体的鉴权方法流程图。参见图2所示,该方法应用于服务器端,包括:
步骤S21:当接收到由目标客户端发送的安全凭证申请请求,则生成并在本地保存与所述目标客户端唯一对应的appkey与多项式系数集合,然后将所述appkey与所述多项式系数集合发送至所述目标客户端,以便所述目标客户端将接收到的所述appkey与所述多项式系数集合保存至本地。
其中,关于步骤S21的更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
步骤S22:当接收到所述目标客户端基于所述appkey与所述多项式系数集合生成并发送的请求信息,则基于本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息中的目标信息进行验证,以生成验证结果。
本实施例中,所述基于本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证之前,还可以包括:从所述请求信息中确定时间戳,并判断所述时间戳是否符合预设时间戳校验条件;若所述时间戳符合预设时间戳校验条件,则触发所述基于本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证的步骤;若所述时间戳不符合预设时间戳校验条件,则禁止触发所述基于本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证的步骤。
可以理解的是,本实施例中在所述服务器端接收到所述请求信息后,会先对所述请求信息中的时间戳进行验证,在一种具体的实施方式中,若时间戳在15分钟以内则进一步验证时间戳承诺值和见证值,若时间戳超过15分钟,则请求超时,直接向所述目标客户端返回验证失败的验证结果。如图3为本申请提出的一种鉴权流程图,图中以先后顺序展示了客户端生成并向服务端发送请求信息,服务端接收请求信息并向客户端返回验证信息的过程。
本实施例中,所述基于本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证,以生成验证结果,可以包括:基于本地保存的与所述目标客户端对应的所述appkey与多项式系数集合计算请求信息承诺值,并利用预设的验证公式对所述请求信息承诺值与所述请求信息中的时间戳承诺值和见证值进行验证,以判断所述验证公式是否成立;若所述验证公式成立,则生成用于表征验证成功的验证结果;若所述验证公式不成立,则生成用于表征验证失败的验证结果。
需要指出的是,本申请中所述目标客户端中保存有计算所述时间承诺值、所述请求信息承诺值、所述见证值、所述第一哈希值以及所述第二哈希值的计算方法,所述服务器端中预先保存有计算请求信息承诺值、所述第一哈希值以及所述第二哈希值的计算方法,且目标客户端与所述服务器端中保存的相应数值的计算方法是一致的。另外,所述服务器端还保存有对所述请求信息进行验证的预设的验证公式,利用所述验证公式即可确定请求信息中的所述请求信息中的承诺值、所述见证值是否满足条件,进而确定发送所述请求信息的目标客户端是否为合法客户端。
在一种具体的实施方式中,所述服务器端在接收到所述请求信息时,当对所述请求信息中的时间戳验证过通过后,则会根据用户的appKey查询用户的多项式系数集合并构建多项式函数,进行同样的计算得到c=f(r)并于用户请求中的时间戳承诺值s和见证w验证公式:f(r)-s=c-s=w*(r-z),若验证公式成立,则表示鉴权通过。如图4为本申请提出的一种客户端与服务器端的交互时序图,途中客户端先向服务端申请appkey和多项式系数,然后服务器端在保存并向用户返回用户的appkey和多项式系数,客户端后续会根据目标参数信息与多项式函数计算生成相应的时间戳承诺值和见证值,并基于这些数据生成并向服务端发送请求信息,服务端在接收到所述请求信息后,会首先对请求信息中的时间戳进行校验,在时间戳校验通过后,再根据appkey查询用户对应的多项式系数集合,以构成多项式函数,最后对请求信息中的时间戳承诺值和见证值进行验证,并将验证结果返回至客户端。
步骤S23:向所述目标客户端返回所述验证结果。
其中,关于步骤S23的更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本实施例中在服务器端接收到目标客户端发送的安全凭证申请请求后,会向目标客户端返回appkey与多项式系数集合,并将appkey与多项式系数集合进行本地保存,在接受到目标客户端发送的请求信息后,会首先对请求信息中的时间戳进行校验,在时间戳校验通过后,再对请求信息中的时间戳承诺值和见证值进行验证,最终完成鉴权,并将验证结果返回至客户端。本申请中的方案基于多项式承诺技术实现了接口鉴权,在鉴权过程中无需暴露作为密钥角色的多项式系数集合,大大减小鉴权过程中密钥泄露的风险,提升了安全性,避免了现有技术中对于用户名密码的频繁申请或与平台频繁交互导致性能问题的情况。另外,由于每次申请的请求信息均不同,所以每个请求中的Authorization均不同,即每个请求都需要鉴权校验,保证了每个请求的鉴权过程的完整性。
参见图5所示,本申请实施例公开了一种鉴权装置,应用于目标客户端,具体可以包括:
第一请求发送模块11,用于向服务器端发送安全凭证申请请求,并接收由所述服务器端生成并在服务器端本地保存的与当前目标客户端唯一对应的appkey与多项式系数集合;
第二请求发送模块12,用于利用所述appkey与多项式系数集合生成请求信息,并将所述请求信息发送至所述服务器端,以便所述服务器端基于服务器端本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证,并生成验证结果;
验证结果接收模块13,用于接收由服务器端发送的所述验证结果。
本申请中目标客户端先向服务器端发送安全凭证申请请求,并接收由所述服务器端生成并在服务器端本地保存的与当前目标客户端唯一对应的appkey与多项式系数集合,然后利用所述appkey与多项式系数集合生成请求信息,并将所述请求信息发送至所述服务器端,以便所述服务器端基于服务器端本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证,并生成验证结果,最后接收由服务器端发送的所述验证结果。这样一来,本申请中的方案基于多项式承诺技术实现了接口鉴权,具体是通过在服务器端申请appkey与多项式系数集合后,所述appkey与多项式系数集合均会在服务器端与目标客户端中实现本地保存,进而在鉴权过程中无需暴露作为密钥角色的多项式系数集合,大大减小鉴权过程中密钥泄露的风险,提升了安全性,避免了现有技术中对于用户名密码的频繁申请或与平台频繁交互导致性能问题的情况。另外,由于每次申请的请求信息均不同,所以每个请求中的Authorization均不同,即每个请求都需要鉴权校验,保证了每个请求的鉴权过程的完整性。
在一些具体实施例中,所述第二请求发送模块12中,可以包括:
函数确定单元,用于基于所述多项式系数集合确定多项式函数;
数值确定单元,用于利用所述多项式函数与预设的哈希算法计算时间戳承诺值与见证值;
请求信息生成单元,用于利用所述时间戳承诺值、所述见证值以及所述appkey生成请求信息。
在一些具体实施例中,所述数值确定单元,可以包括:
时间戳承诺值确定单元,用于确定当前时间戳,并利用预设的哈希算法对所述时间戳进行相应的计算,以得到第一哈希值,然后将所述第一哈希值带入所述多项式函数以得到相应的函数值,并将所述函数值作为时间戳承诺值;
请求信息承诺值确定单元,用于确定目标请求参数,并利用所述预设的哈希算法对所述目标请求参数进行相应的计算,以得到第二哈希值,然后将所述第一哈希值带入所述多项式函数以得到相应的函数值,并将所述函数值作为请求信息承诺值;
见证值确定单元,用于基于所述多项式函数、所述时间戳承诺值、所述请求信息承诺值、所述第一哈希值以及所述第二哈希值,并利用预设的见证值计算方法确定见证值。
在一些具体实施例中,所述鉴权装置中,还可以包括:
信息保存模块,用于利用预设的保存信息方法将所述appkey与多项式系数集合保存至本地。
进一步的,本申请实施例还公开了一种电子设备,图6是根据示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图6为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、显示屏24、输入输出接口25、通信接口26和通信总线27。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的鉴权方法中的相关步骤。另外,本实施例中的电子设备20具体可以为电子计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口26能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的鉴权方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请还公开了一种计算机可读存储介质,这里所说的计算机可读存储介质包括随机存取存储器(Random Access Memory,RAM)、内存、只读存储器(Read-OnlyMemory,ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、磁碟或者光盘或技术领域内所公知的任意其他形式的存储介质。其中,所述计算机程序被处理器执行时实现前述公开的鉴权方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的鉴权方法、装置、设备、存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种鉴权方法,其特征在于,应用于目标客户端,包括:
向服务器端发送安全凭证申请请求,并接收由所述服务器端生成并在服务器端本地保存的与当前目标客户端唯一对应的appkey与多项式系数集合;
利用所述appkey与多项式系数集合生成请求信息,并将所述请求信息发送至所述服务器端,以便所述服务器端基于服务器端本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证,并生成验证结果;
接收由服务器端发送的所述验证结果。
2.根据权利要求1所述的鉴权方法,其特征在于,所述利用所述appkey与多项式系数集合生成请求信息,包括:
基于所述多项式系数集合确定多项式函数;
利用所述多项式函数与预设的哈希算法计算时间戳承诺值与见证值;
利用所述时间戳承诺值、所述见证值以及所述appkey生成请求信息。
3.根据权利要求2所述的鉴权方法,其特征在于,所述利用所述多项式函数与预设的哈希算法计算时间戳承诺值与见证值,包括:
确定当前时间戳,并利用预设的哈希算法对所述时间戳进行相应的计算,以得到第一哈希值,然后将所述第一哈希值带入所述多项式函数以得到相应的函数值,并将所述函数值作为时间戳承诺值;
确定目标请求参数,并利用所述预设的哈希算法对所述目标请求参数进行相应的计算,以得到第二哈希值,然后将所述第一哈希值带入所述多项式函数以得到相应的函数值,并将所述函数值作为请求信息承诺值;
基于所述多项式函数、所述时间戳承诺值、所述请求信息承诺值、所述第一哈希值以及所述第二哈希值,并利用预设的见证值计算方法确定见证值。
4.根据权利要求1至3任一项所述的鉴权方法,其特征在于,所述接收由所述服务器端生成并在服务器端本地保存的与当前目标客户端唯一对应的appkey与多项式系数集合之后,还包括:
利用预设的保存信息方法将所述appkey与多项式系数集合保存至本地。
5.一种鉴权方法,其特征在于,应用于服务器端,包括:
当接收到由目标客户端发送的安全凭证申请请求,则生成并在本地保存与所述目标客户端唯一对应的appkey与多项式系数集合,然后将所述appkey与所述多项式系数集合发送至所述目标客户端,以便所述目标客户端将接收到的所述appkey与所述多项式系数集合保存至本地;
当接收到所述目标客户端基于所述appkey与所述多项式系数集合生成并发送的请求信息,则基于本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息中的目标信息进行验证,以生成验证结果;
向所述目标客户端返回所述验证结果。
6.根据权利要求5所述的鉴权方法,其特征在于,所述基于本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证之前,还包括:
从所述请求信息中确定时间戳,并判断所述时间戳是否符合预设时间戳校验条件;
若所述时间戳符合预设时间戳校验条件,则触发所述基于本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证的步骤;
若所述时间戳不符合预设时间戳校验条件,则禁止触发所述基于本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证的步骤。
7.根据权利要求5所述的鉴权方法,其特征在于,所述基于本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证,以生成验证结果,包括:
基于本地保存的与所述目标客户端对应的所述appkey与多项式系数集合计算请求信息承诺值,并利用预设的验证公式对所述请求信息承诺值与所述请求信息中的时间戳承诺值和见证值进行验证,以判断所述验证公式是否成立;
若所述验证公式成立,则生成用于表征验证成功的验证结果;
若所述验证公式不成立,则生成用于表征验证失败的验证结果。
8.一种鉴权装置,其特征在于,应用于目标客户端,包括:
第一请求发送模块,用于向服务器端发送安全凭证申请请求,并接收由所述服务器端生成并在服务器端本地保存的与当前目标客户端唯一对应的appkey与多项式系数集合;
第二请求发送模块,用于利用所述appkey与多项式系数集合生成请求信息,并将所述请求信息发送至所述服务器端,以便所述服务器端基于服务器端本地保存的与所述目标客户端对应的所述appkey与多项式系数集合,并利用预设的验证公式对所述请求信息进行验证,并生成验证结果;
验证结果接收模块,用于接收由服务器端发送的所述验证结果。
9.一种电子设备,其特征在于,包括处理器和存储器;其中,所述处理器执行所述存储器中保存的计算机程序时实现如权利要求1至7任一项所述的鉴权方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的鉴权方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210701449.5A CN114826778B (zh) | 2022-06-21 | 2022-06-21 | 一种鉴权方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210701449.5A CN114826778B (zh) | 2022-06-21 | 2022-06-21 | 一种鉴权方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114826778A true CN114826778A (zh) | 2022-07-29 |
CN114826778B CN114826778B (zh) | 2022-09-27 |
Family
ID=82521828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210701449.5A Active CN114826778B (zh) | 2022-06-21 | 2022-06-21 | 一种鉴权方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114826778B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116132061A (zh) * | 2023-01-10 | 2023-05-16 | 武汉中科通达高新技术股份有限公司 | 一种数据采集方法、系统、电子设备及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103155479A (zh) * | 2010-10-29 | 2013-06-12 | 株式会社日立制作所 | 信息认证方法和信息认证系统 |
US20160164682A1 (en) * | 2014-12-04 | 2016-06-09 | Fujitsu Limited | Privacy preserving set-based biometric authentication |
WO2016188290A1 (zh) * | 2015-05-27 | 2016-12-01 | 阿里巴巴集团控股有限公司 | Api调用的安全认证方法、装置、系统 |
CN108365959A (zh) * | 2018-02-14 | 2018-08-03 | 东北大学 | 一种云环境下全代理的外包多项式验证方法 |
CN110363509A (zh) * | 2019-07-19 | 2019-10-22 | 华中师范大学 | 一种信息保护方法及装置 |
CN112733107A (zh) * | 2021-04-02 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 一种信息验证的方法、相关装置、设备以及存储介质 |
CN112818370A (zh) * | 2021-02-20 | 2021-05-18 | 深圳百纳维科技有限公司 | 信息验证方法、装置、电子设备、系统和介质 |
CN113206741A (zh) * | 2021-03-25 | 2021-08-03 | 武汉飞思灵微电子技术有限公司 | 一种基于强puf的抗机器学习安全认证方法及装置 |
CN113452531A (zh) * | 2021-06-29 | 2021-09-28 | 青岛海尔科技有限公司 | 数据传输方法及装置 |
CN113794568A (zh) * | 2021-09-14 | 2021-12-14 | 北京北大方正电子有限公司 | 接口安全验证方法、访问接口的方法、装置、设备和介质 |
-
2022
- 2022-06-21 CN CN202210701449.5A patent/CN114826778B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103155479A (zh) * | 2010-10-29 | 2013-06-12 | 株式会社日立制作所 | 信息认证方法和信息认证系统 |
US20130212645A1 (en) * | 2010-10-29 | 2013-08-15 | Hitachi, Ltd. | Information authentication method and information authentication system |
US20160164682A1 (en) * | 2014-12-04 | 2016-06-09 | Fujitsu Limited | Privacy preserving set-based biometric authentication |
WO2016188290A1 (zh) * | 2015-05-27 | 2016-12-01 | 阿里巴巴集团控股有限公司 | Api调用的安全认证方法、装置、系统 |
CN108365959A (zh) * | 2018-02-14 | 2018-08-03 | 东北大学 | 一种云环境下全代理的外包多项式验证方法 |
CN110363509A (zh) * | 2019-07-19 | 2019-10-22 | 华中师范大学 | 一种信息保护方法及装置 |
CN112818370A (zh) * | 2021-02-20 | 2021-05-18 | 深圳百纳维科技有限公司 | 信息验证方法、装置、电子设备、系统和介质 |
CN113206741A (zh) * | 2021-03-25 | 2021-08-03 | 武汉飞思灵微电子技术有限公司 | 一种基于强puf的抗机器学习安全认证方法及装置 |
CN112733107A (zh) * | 2021-04-02 | 2021-04-30 | 腾讯科技(深圳)有限公司 | 一种信息验证的方法、相关装置、设备以及存储介质 |
CN113452531A (zh) * | 2021-06-29 | 2021-09-28 | 青岛海尔科技有限公司 | 数据传输方法及装置 |
CN113794568A (zh) * | 2021-09-14 | 2021-12-14 | 北京北大方正电子有限公司 | 接口安全验证方法、访问接口的方法、装置、设备和介质 |
Non-Patent Citations (1)
Title |
---|
余宇劲等: "基于多云存储的Android密钥管理技术", 《计算机应用与软件》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116132061A (zh) * | 2023-01-10 | 2023-05-16 | 武汉中科通达高新技术股份有限公司 | 一种数据采集方法、系统、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114826778B (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107483509B (zh) | 一种身份验证方法、服务器及可读存储介质 | |
US10541991B2 (en) | Method for OAuth service through blockchain network, and terminal and server using the same | |
US9124576B2 (en) | Configuring a valid duration period for a digital certificate | |
US8776204B2 (en) | Secure dynamic authority delegation | |
CN113285807B (zh) | 一种智能设备入网鉴权的方法和系统 | |
US20090055916A1 (en) | Secure delegation using public key authentication | |
EP3195523B1 (en) | Methods, devices and management terminals for establishing a secure session with a service | |
JP3593979B2 (ja) | 利用権制御を伴うサーバおよびクライアントならびにサービス提供方法および利用権証明方法 | |
CN109257365B (zh) | 一种信息处理方法、装置、设备和存储介质 | |
US8196192B2 (en) | Setting a preliminary time on a network appliance using a digital certificate | |
US8875244B1 (en) | Method and apparatus for authenticating a user using dynamic client-side storage values | |
CN114826778B (zh) | 一种鉴权方法、装置、设备及介质 | |
WO2023124958A1 (zh) | 密钥更新方法、服务器、客户端及存储介质 | |
CN113676452A (zh) | 基于一次性密钥的重放攻击抵御方法及系统 | |
CN110730189A (zh) | 一种通信认证方法、装置、设备及存储介质 | |
CN112929388B (zh) | 网络身份跨设备应用快速认证方法和系统、用户代理设备 | |
CN108390878B (zh) | 用于验证网络请求安全性的方法、装置 | |
CN111698097B (zh) | 一种证书认证方法及装置 | |
CN112953720A (zh) | 一种网络请求处理方法、装置、设备及存储介质 | |
CN111049789A (zh) | 域名访问的方法和装置 | |
CN116170144B (zh) | 智能电网匿名认证方法、电子设备及存储介质 | |
CN115883083A (zh) | 密码生成方法、离线密码验证方法、电子设备及存储介质 | |
CN113225348B (zh) | 请求防重放校验方法和装置 | |
CN111723347B (zh) | 身份认证方法、装置、电子设备及存储介质 | |
CN113391851A (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 |