CN113783867B - 一种请求认证方法及终端 - Google Patents

一种请求认证方法及终端 Download PDF

Info

Publication number
CN113783867B
CN113783867B CN202111044974.6A CN202111044974A CN113783867B CN 113783867 B CN113783867 B CN 113783867B CN 202111044974 A CN202111044974 A CN 202111044974A CN 113783867 B CN113783867 B CN 113783867B
Authority
CN
China
Prior art keywords
request
token
time stamp
encryption key
signature
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
CN202111044974.6A
Other languages
English (en)
Other versions
CN113783867A (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.)
Fujian Tianquan Educational Technology Ltd
Original Assignee
Fujian Tianquan Educational Technology 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 Fujian Tianquan Educational Technology Ltd filed Critical Fujian Tianquan Educational Technology Ltd
Priority to CN202111044974.6A priority Critical patent/CN113783867B/zh
Publication of CN113783867A publication Critical patent/CN113783867A/zh
Application granted granted Critical
Publication of CN113783867B publication Critical patent/CN113783867B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • 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
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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/321Cryptographic 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
    • H04L9/3213Cryptographic 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 using tickets or tokens, e.g. Kerberos
    • 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/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • 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
    • 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/3297Cryptographic 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

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

一种请求认证方法及终端
技术领域
本发明涉及计算机技术领域,特别涉及一种请求认证方法及终端。
背景技术
多数网站提供的第三方登录都遵循OAuth(开放授权)协议,虽然大多数网站的细节处理都是不一致的,甚至会基于OAuth协议进行扩展,但大体上其流程是一定的。
OAuth是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容。其主要流程就是用户通过访问OAuth授权服务器获取token(令牌),之后通过token进行资源服务器或者第三方服务器的访问。
大多数场景之下,当系统获取到token之后,用户直接带上token请求,是可以正常获取对应的资源,但是当token是明文表示且被截取到请求时,获取到该token即可直接进行相关的操作,存在着一定的安全漏洞。
发明内容
本发明所要解决的技术问题是:提供了一种请求认证方法及终端,能够在保证请求准确认证的同时提高系统的安全性。
为了解决上述技术问题,本发明采用的技术方案为:
一种请求认证方法,包括步骤:
根据登录信息返回对应的令牌和加密密钥至客户端;
接收所述客户端发送的根据所述令牌、资源获取请求所对应的时间戳和第一请求签名生成的请求头,所述第一请求签名根据所述令牌、加密密钥和时间戳生成;
获取所述请求头中的所述令牌和时间戳,根据获取到的所述令牌查找对应的加密密钥,根据所述令牌及其对应的加密密钥和所述时间戳生成第二请求签名;
判断所述第一请求签名与所述第二请求签名是否相同且所述时间戳是否不重复,若是,则缓存所述时间戳且所述资源获取请求认证通过,否则所述资源获取请求认证不通过。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种请求认证终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
根据登录信息返回对应的令牌和加密密钥至客户端;
接收所述客户端发送的根据所述令牌、资源获取请求所对应的时间戳和第一请求签名生成的请求头,所述第一请求签名根据所述令牌、加密密钥和时间戳生成;
获取所述请求头中的所述令牌和时间戳,根据获取到的所述令牌查找对应的加密密钥,根据所述令牌及其对应的加密密钥和所述时间戳生成第二请求签名;
判断所述第一请求签名与所述第二请求签名是否相同且所述时间戳是否不重复,若是,则缓存所述时间戳且所述资源获取请求认证通过,否则所述资源获取请求认证不通过。
本发明的有益效果在于:根据登录信息返回对应令牌和加密密钥;接收客户端根据令牌、资源获取请求所对应的时间戳和第一请求签名生成的请求头,其中第一请求签名根据令牌、加密密钥和时间戳生成;获取请求头中的令牌和时间戳,根据获取到的令牌查找对应的加密密钥,根据令牌及其对应的加密密钥和所述时间戳生成第二请求签名;判断第一请求签名与第二请求签名是否相同且时间戳是否不重复,若是,则缓存时间戳且资源获取请求认证通过,否则资源获取请求认证不通过,因此客户端和服务端基于时间戳使用同样的方法生成请求签名并进行对比,能够提高认证的准确性,并且时间戳只能使用一次,避免使用时间戳相同的请求签名进行资源获取,从而在保证请求准确认证的同时提高了系统的安全性。
附图说明
图1为本发明实施例的一种请求认证方法的流程图;
图2为本发明实施例的一种请求认证终端的示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,本发明实施例提供了一种请求认证方法,包括步骤:
根据登录信息返回对应的令牌和加密密钥至客户端;
接收所述客户端发送的根据所述令牌、资源获取请求所对应的时间戳和第一请求签名生成的请求头,所述第一请求签名根据所述令牌、加密密钥和时间戳生成;
获取所述请求头中的所述令牌和时间戳,根据获取到的所述令牌查找对应的加密密钥,根据所述令牌及其对应的加密密钥和所述时间戳生成第二请求签名;
判断所述第一请求签名与所述第二请求签名是否相同且所述时间戳是否不重复,若是,则缓存所述时间戳且所述资源获取请求认证通过,否则所述资源获取请求认证不通过。
从上述描述可知,本发明的有益效果在于:根据登录信息返回对应令牌和加密密钥;接收客户端根据令牌、资源获取请求所对应的时间戳和第一请求签名生成的请求头,其中第一请求签名根据令牌、加密密钥和时间戳生成;获取请求头中的令牌和时间戳,根据获取到的令牌查找对应的加密密钥,根据令牌及其对应的加密密钥和所述时间戳生成第二请求签名;判断第一请求签名与第二请求签名是否相同且时间戳是否不重复,若是,则缓存时间戳且资源获取请求认证通过,否则资源获取请求认证不通过,因此客户端和服务端基于时间戳使用同样的方法生成请求签名并进行对比,能够提高认证的准确性,并且时间戳只能使用一次,避免使用时间戳相同的请求签名进行资源获取,从而在保证请求准确认证的同时提高了系统的安全性。
进一步地,所述根据登录信息返回对应的令牌和加密密钥至客户端包括:
根据用户登录信息获取对应的令牌;
随机生成预设长度的密钥,使用预设加密规则对所述密钥进行加密得到加密密钥;
将所述令牌与所述加密密钥进行关联并返回至客户端。
由上述描述可知,随机生成预设长度的密钥并进行加密,因此返回动态的加密密钥能够保证后续即使请求头被捕获到,也无法获取到密钥的加密规则和原始密钥,从而无法伪造请求头;并且将令牌与加密密钥进行关联,这样同一个用户的每次登录之后的加密密钥都不一样,防止被人截取请求,提高系统的安全性。
进一步地,所述第一请求签名根据所述令牌、加密密钥和时间戳生成包括:
所述第一请求签名由客户端根据所述令牌、加密密钥、资源获取请求的第一请求内容生成,所述第一请求内容由客户端根据时间戳和所述资源获取请求的请求方法与请求地址生成。
由上述描述可知,第一请求签名由客户端根据所述令牌、加密密钥、资源获取请求的第一请求内容生成,第一请求内容中包含时间戳,由于时间戳只能调用一次,因此再次重复使用将会提示重复使用的错误,从而提高系统一定的安全性。
进一步地,获取所述请求头中的所述令牌和时间戳,根据获取到的所述令牌查找对应的加密密钥,根据所述令牌及其对应的加密密钥和所述时间戳生成第二请求签名包括:
获取包含所述请求头的资源获取请求,解析所述请求头中的令牌以及时间戳,根据所述令牌查询对应的加密密钥;
根据所述时间戳和所述资源获取请求的请求方法和请求地址生成第二请求内容;
根据所述令牌、加密密钥和所述第二请求内容生成第二请求签名。
由上述描述可知,获取到包含请求头的资源获取请求,对请求头进行解析能够得到令牌和时间戳,通过令牌查询对应的加密密钥;并且第二请求签名的生成方法生成第一请求签名的生成方法相同,便于后续将第一请求签名与第二请求签名进行比较,保证请求认证的准确性。
进一步地,判断所述第一请求签名与所述第二请求签名是否相同且所述时间戳是否不重复,若是,则缓存所述时间戳且所述资源获取请求认证通过,否则所述资源获取请求认证不通过包括:
判断所述第一请求签名与所述第二请求签名是否相同且所述时间戳是否不重复,若是,则根据时间戳的有效时间对所述时间戳进行缓存,并且所述请求签名资源获取请求认证通过,否则所述资源获取请求认证不通过。
由上述描述可知,若时间戳不重复且请求签名对比成功,则根据时间戳的有效时间对时间戳进行缓存,能够保证在时间戳的有效时间内对请求签名进行重复性判断,由于同一时间戳只能使用一次,因此每次请求都必须要重新生成时间戳与请求头,这样即使请求头被抓包成功,也无法使用同样的信息再次请求业务,解决了重复请求的问题,提高了系统的安全性。
请参照图2,本发明另一实施例提供了一种请求认证终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
根据登录信息返回对应的令牌和加密密钥至客户端;
接收所述客户端发送的根据所述令牌、资源获取请求所对应的时间戳和第一请求签名生成的请求头,所述第一请求签名根据所述令牌、加密密钥和时间戳生成;
获取所述请求头中的所述令牌和时间戳,根据获取到的所述令牌查找对应的加密密钥,根据所述令牌及其对应的加密密钥和所述时间戳生成第二请求签名;
判断所述第一请求签名与所述第二请求签名是否相同且所述时间戳是否不重复,若是,则缓存所述时间戳且所述资源获取请求认证通过,否则所述资源获取请求认证不通过。
由上述描述可知,根据登录信息返回对应令牌和加密密钥;接收客户端根据令牌、资源获取请求所对应的时间戳和第一请求签名生成的请求头,其中第一请求签名根据令牌、加密密钥和时间戳生成;获取请求头中的令牌和时间戳,根据获取到的令牌查找对应的加密密钥,根据令牌及其对应的加密密钥和所述时间戳生成第二请求签名;判断第一请求签名与第二请求签名是否相同且时间戳是否不重复,若是,则缓存时间戳且资源获取请求认证通过,否则资源获取请求认证不通过,因此客户端和服务端基于时间戳使用同样的方法生成请求签名并进行对比,能够提高认证的准确性,并且时间戳只能使用一次,避免使用时间戳相同的请求签名进行资源获取,从而在保证请求准确认证的同时提高了系统的安全性。
进一步地,所述根据登录信息返回对应的令牌和加密密钥至客户端包括:
根据用户登录信息获取对应的令牌;
随机生成预设长度的密钥,使用预设加密规则对所述密钥进行加密得到加密密钥;
将所述令牌与所述加密密钥进行关联并返回至客户端。
由上述描述可知,随机生成预设长度的密钥并进行加密,因此返回动态的加密密钥能够保证后续即使请求头被捕获到,也无法获取到密钥的加密规则和原始密钥,从而无法伪造请求头;并且将令牌与加密密钥进行关联,这样同一个用户的每次登录之后的加密密钥都不一样,防止被人截取请求,提高系统的安全性。
进一步地,所述第一请求签名根据所述令牌、加密密钥和时间戳生成包括:
所述第一请求签名由客户端根据所述令牌、加密密钥、资源获取请求的第一请求内容生成,所述第一请求内容由客户端根据时间戳和所述资源获取请求的请求方法与请求地址生成。
由上述描述可知,第一请求签名由客户端根据所述令牌、加密密钥、资源获取请求的第一请求内容生成,第一请求内容中包含时间戳,由于时间戳只能调用一次,因此再次重复使用将会提示重复使用的错误,从而提高系统一定的安全性。
进一步地,获取所述请求头中的所述令牌和时间戳,根据获取到的所述令牌查找对应的加密密钥,根据所述令牌及其对应的加密密钥和所述时间戳生成第二请求签名包括:
获取包含所述请求头的资源获取请求,解析所述请求头中的令牌以及时间戳,根据所述令牌查询对应的加密密钥;
根据所述时间戳和所述资源获取请求的请求方法和请求地址生成第二请求内容;
根据所述令牌、加密密钥和所述第二请求内容生成第二请求签名。
由上述描述可知,获取到包含请求头的资源获取请求,对请求头进行解析能够得到令牌和时间戳,通过令牌查询对应的加密密钥;并且第二请求签名的生成方法生成第一请求签名的生成方法相同,便于后续将第一请求签名与第二请求签名进行比较,保证请求认证的准确性。
进一步地,判断所述第一请求签名与所述第二请求签名是否相同且所述时间戳是否不重复,若是,则缓存所述时间戳且所述资源获取请求认证通过,否则所述资源获取请求认证不通过包括:
判断所述第一请求签名与所述第二请求签名是否相同且所述时间戳是否不重复,若是,则根据时间戳的有效时间对所述时间戳进行缓存,并且所述请求签名资源获取请求认证通过,否则所述资源获取请求认证不通过。
由上述描述可知,若时间戳不重复且请求签名对比成功,则根据时间戳的有效时间对时间戳进行缓存,能够保证在时间戳的有效时间内对请求签名进行重复性判断,由于同一时间戳只能使用一次,因此每次请求都必须要重新生成时间戳与请求头,这样即使请求头被抓包成功,也无法使用同样的信息再次请求业务,解决了重复请求的问题,提高了系统的安全性。
本发明的一种请求认证方法及终端,适用于对资源获取请求进行统一认证时在保证请求准确认证的同时提高系统的安全性,以下通过具体的实施方式进行说明:
实施例一
请参照图1,一种请求认证方法,包括步骤:
S1、根据登录信息返回对应的令牌和加密密钥至客户端。
其中,所述S1具体包括以下步骤:
根据用户登录信息获取对应的令牌;
随机生成预设长度的密钥,使用预设加密规则对所述密钥进行加密得到加密密钥;
将所述令牌与所述加密密钥进行关联并返回至客户端。
具体的,用户在客户端登录后,服务端的登录接口返回token信息后,需要多返回一个密钥mac_key,mac_key由服务端随机生成一个10位长度的字符串,返回的mac_key按照预设加密规则加密,因此mac_key返回的也是密文,需程序动态解密后才可使用。
其中,能够使用以下两种方式对mac_key进行加密:
一种是服务端和客户端采用固定的加密key,预先对mac_key进行des加密后,再进行base64位加密;
另一种是客户端每次登录前,预先根据设备ID请求一次服务端接口,获取到sessionId与session_key,其中session_key是采用随机数动态生成的10位字符串,session_key的内容包括数字与字母;同时,即使同一个设备ID每次调用服务端接口,都将返回不同的session_key,进一步增加了安全性。在后续的客户端登录时,多传递前一个步骤获取的sessionId参数;当服务端接口登录成功时,服务端会根据sessionId获取其对应的session_key,并进行mac_key的加密,后续客户端根据同样的规则进行解密操作,即可获取mac_key明文。
mac_key同时需要与token进行关联,即在数据库中生成一条记录,主键为token,该条记录的具体信息包括token和mac_key,一个token只能与一个mac_key关联,并将该记录返回至客户端。
返回动态的mac_key的目的是为了客户端和服务端计算mac请求头时使用,此时,客户端与服务端同时持有同一个token的mac_key,并且传输过程中没有传递mac_key,即使请求头被捕获到后,被得知mac请求头的加密规则,也无法伪造mac请求头。
S2、接收所述客户端发送的根据所述令牌、资源获取请求所对应的时间戳和第一请求签名生成的请求头,所述第一请求签名根据所述令牌、加密密钥和时间戳生成。
其中,所述第一请求签名根据所述令牌、加密密钥和时间戳生成包括:
所述第一请求签名由客户端根据所述令牌、加密密钥、资源获取请求的第一请求内容生成,所述第一请求内容由客户端根据时间戳和所述资源获取请求的请求方法与请求地址生成。
具体的,每次用户需要请求资源时,均需要预先根据一定的规则生成mac请求头,具体规则如下:
将令牌作为请求头的id,例如id="2YotnFZFEjr1zCsicMWpAA";
对时间戳附上客户端生成的随机码作为请求头的nonce串,即nonce=“时间戳”+“:”+“随机码”,并设置时间戳的有效时间为5分钟,例如nonce="1419314824490:dj83hs9s";
根据令牌、加密密钥、加密规则和资源获取请求的请求内容,得到请求签名mac,其中请求内容包括时间戳、请求方法、请求地址和host,例如,计算得到的mac="SLDJd4mg43cjQfElUs3Qub4L6xE=";
由id、nonce串和请求签名mac构成请求头。
采用本实施例的请求头生成方式具有以下优点:
1.每次mac生成均带上时间戳,并且每个mac只能调用一次,再次重复使用将会提示重复使用的错误,从而在一定程度上提高了系统的安全性。
2.mac签名通过登录后的mac_key参数与token以及一些参数加密生成,从而能够准确地对token进行认证,进一步提高系统的安全性。
S3、获取所述请求头中的所述令牌和时间戳,根据获取到的所述令牌查找对应的加密密钥,根据所述令牌及其对应的加密密钥和所述时间戳生成第二请求签名。
其中,所述S3具体包括以下步骤:
获取包含所述请求头的资源获取请求,解析所述请求头中的令牌以及时间戳,根据所述令牌查询对应的加密密钥;
根据所述时间戳和所述资源获取请求的请求方法和请求地址生成第二请求内容;
根据所述令牌、加密密钥和所述第二请求内容生成第二请求签名。
具体的,服务端针对每个带上mac请求头的请求均需要进行安全校验,因此解析客户端的mac请求头的id字段,即可获取到token信息,根据token信息即可直接查询数据库,获取到其关联的加密密钥mac_key。由于mac请求签名是无法反解析的,因此服务端需要使用和客户端一样的计算规则计算请求签名。
S4、判断所述第一请求签名与所述第二请求签名是否相同且所述时间戳是否不重复,若是,则缓存所述时间戳且所述资源获取请求认证通过,否则所述资源获取请求认证不通过。
其中,判断所述第一请求签名与所述第二请求签名是否相同且所述时间戳是否不重复,若是,则根据时间戳的有效时间对所述时间戳进行缓存,并且所述请求签名资源获取请求认证通过,否则所述资源获取请求认证不通过。
具体的,用户登录后,后续每次业务请求都会使用token、nonce串和mac_key生成mac请求头,服务端获取到该信息后,如经过请求签名认证通过后,将会根据时间戳的有效时间对nonce串缓存一段时间,后续使用同样的nonce串则无法再次请求;由于mac请求头中存在nonce串,因此每次请求都必须要重新生成nonce串与mac请求头,这样,请求头即使被抓包成功,也无法使用同样的信息再次请求业务,解决了重复请求的问题。
实施例二
请参照图2,一种请求认证终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一的一种请求认证方法的各个步骤。
综上所述,本发明提供的一种请求认证方法及终端,根据登录信息返回对应令牌和加密密钥,其中随机生成预设长度的密钥并进行加密,返回动态的加密密钥能够保证后续即使请求头被捕获到,也无法获取到密钥的加密规则和原始密钥,从而无法伪造请求头;并且将令牌与加密密钥进行关联,这样同一个用户的每次登录之后的加密密钥都不一样,防止被人截取请求,提高系统的安全性;接收客户端根据令牌、资源获取请求所对应的时间戳和第一请求签名生成的请求头,其中第一请求签名根据令牌、加密密钥和时间戳生成;获取请求头中的令牌和时间戳,根据获取到的令牌查找对应的加密密钥,根据令牌及其对应的加密密钥和所述时间戳生成第二请求签名;判断第一请求签名与第二请求签名是否相同且时间戳是否不重复,若是,则缓存时间戳且资源获取请求认证通过,否则资源获取请求认证不通过,因此客户端和服务端基于时间戳使用同样的方法生成请求签名并进行对比,能够提高认证的准确性,并且时间戳只能使用一次,避免使用时间戳相同的请求签名进行资源获取,而在客户端与服务端的数据传输中只传输加密密钥和mac请求头,并不对加密密钥进行传输,因此即使截取到传输数据也难以伪造请求头,从而在保证请求准确认证的同时提高了系统的安全性。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种请求认证方法,其特征在于,包括步骤:
根据登录信息返回对应的令牌和加密密钥至客户端;
客户端每次登录前,预先根据设备ID请求一次服务端接口,获取到sessionId与session_key,session_key是采用随机数动态生成的10位字符串,同一个设备ID每次调用服务端接口,都将返回不同的session_key;在客户端登录时,传递前一个步骤获取的sessionId参数,当登录成功时,根据sessionId获取其对应的动态的session_key,并进行密钥的加密,得到加密密钥;
接收所述客户端发送的根据所述令牌、资源获取请求所对应的时间戳和第一请求签名生成的请求头,所述第一请求签名根据所述令牌、加密密钥和时间戳生成;
获取所述请求头中的所述令牌和时间戳,根据获取到的所述令牌查找对应的加密密钥,根据所述令牌及其对应的加密密钥和所述时间戳生成第二请求签名;
判断所述第一请求签名与所述第二请求签名是否相同且所述时间戳是否不重复,若是,则缓存所述时间戳且所述资源获取请求认证通过,否则所述资源获取请求认证不通过。
2.根据权利要求1所述的一种请求认证方法,其特征在于,所述根据登录信息返回对应的令牌和加密密钥至客户端包括:
根据用户登录信息获取对应的令牌;
随机生成预设长度的密钥,使用预设加密规则对所述密钥进行加密得到加密密钥;
将所述令牌与所述加密密钥进行关联并返回至客户端。
3.根据权利要求2所述的一种请求认证方法,其特征在于,所述第一请求签名根据所述令牌、加密密钥和时间戳生成包括:
所述第一请求签名由客户端根据所述令牌、加密密钥、资源获取请求的第一请求内容生成,所述第一请求内容由客户端根据时间戳和所述资源获取请求的请求方法与请求地址生成。
4.根据权利要求2所述的一种请求认证方法,其特征在于,获取所述请求头中的所述令牌和时间戳,根据获取到的所述令牌查找对应的加密密钥,根据所述令牌及其对应的加密密钥和所述时间戳生成第二请求签名包括:
获取包含所述请求头的资源获取请求,解析所述请求头中的令牌以及时间戳,根据所述令牌查询对应的加密密钥;
根据所述时间戳和所述资源获取请求的请求方法和请求地址生成第二请求内容;
根据所述令牌、加密密钥和所述第二请求内容生成第二请求签名。
5.根据权利要求1所述的一种请求认证方法,其特征在于,判断所述第一请求签名与所述第二请求签名是否相同且所述时间戳是否不重复,若是,则缓存所述时间戳且所述资源获取请求认证通过,否则所述资源获取请求认证不通过包括:
判断所述第一请求签名与所述第二请求签名是否相同且所述时间戳是否不重复,若是,则根据时间戳的有效时间对所述时间戳进行缓存,并且所述请求签名资源获取请求认证通过,否则所述资源获取请求认证不通过。
6.一种请求认证终端,包括存储器、处理器以及存储在所述存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
根据登录信息返回对应的令牌和加密密钥至客户端;
客户端每次登录前,预先根据设备ID请求一次服务端接口,获取到sessionId与session_key,session_key是采用随机数动态生成的10位字符串,同一个设备ID每次调用服务端接口,都将返回不同的session_key;在客户端登录时,传递前一个步骤获取的sessionId参数,当登录成功时,根据sessionId获取其对应的动态的session_key,并进行密钥的加密,得到加密密钥;
接收所述客户端发送的根据所述令牌、资源获取请求所对应的时间戳和第一请求签名生成的请求头,所述第一请求签名根据所述令牌、加密密钥和时间戳生成;
获取所述请求头中的所述令牌和时间戳,根据获取到的所述令牌查找对应的加密密钥,根据所述令牌及其对应的加密密钥和所述时间戳生成第二请求签名;
判断所述第一请求签名与所述第二请求签名是否相同且所述时间戳是否不重复,若是,则缓存所述时间戳且所述资源获取请求认证通过,否则所述资源获取请求认证不通过。
7.根据权利要求6所述的一种请求认证终端,其特征在于,所述根据登录信息返回对应的令牌和加密密钥至客户端包括:
根据用户登录信息获取对应的令牌;
随机生成预设长度的密钥,使用预设加密规则对所述密钥进行加密得到加密密钥;
将所述令牌与所述加密密钥进行关联并返回至客户端。
8.根据权利要求7所述的一种请求认证终端,其特征在于,所述第一请求签名根据所述令牌、加密密钥和时间戳生成包括:
所述第一请求签名由客户端根据所述令牌、加密密钥、资源获取请求的第一请求内容生成,所述第一请求内容由客户端根据时间戳和所述资源获取请求的请求方法与请求地址生成。
9.根据权利要求7所述的一种请求认证终端,其特征在于,获取所述请求头中的所述令牌和时间戳,根据获取到的所述令牌查找对应的加密密钥,根据所述令牌及其对应的加密密钥和所述时间戳生成第二请求签名包括:
获取包含所述请求头的资源获取请求,解析所述请求头中的令牌以及时间戳,根据所述令牌查询对应的加密密钥;
根据所述时间戳和所述资源获取请求的请求方法和请求地址生成第二请求内容;
根据所述令牌、加密密钥和所述第二请求内容生成第二请求签名。
10.根据权利要求6所述的一种请求认证终端,其特征在于,判断所述第一请求签名与所述第二请求签名是否相同且所述时间戳是否不重复,若是,则缓存所述时间戳且所述资源获取请求认证通过,否则所述资源获取请求认证不通过包括:
判断所述第一请求签名与所述第二请求签名是否相同且所述时间戳是否不重复,若是,则根据时间戳的有效时间对所述时间戳进行缓存,并且所述请求签名资源获取请求认证通过,否则所述资源获取请求认证不通过。
CN202111044974.6A 2021-09-07 2021-09-07 一种请求认证方法及终端 Active CN113783867B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111044974.6A CN113783867B (zh) 2021-09-07 2021-09-07 一种请求认证方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111044974.6A CN113783867B (zh) 2021-09-07 2021-09-07 一种请求认证方法及终端

Publications (2)

Publication Number Publication Date
CN113783867A CN113783867A (zh) 2021-12-10
CN113783867B true CN113783867B (zh) 2023-07-25

Family

ID=78841522

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111044974.6A Active CN113783867B (zh) 2021-09-07 2021-09-07 一种请求认证方法及终端

Country Status (1)

Country Link
CN (1) CN113783867B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114301708A (zh) * 2021-12-30 2022-04-08 金蝶智慧科技(深圳)有限公司 身份认证方法、身份认证服务器及相关装置
CN114844644A (zh) * 2022-03-16 2022-08-02 深信服科技股份有限公司 资源请求方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7873734B1 (en) * 2001-05-17 2011-01-18 Computer Associates Think, Inc. Management of multiple user sessions and user requests for multiple electronic devices
CN106961446A (zh) * 2017-05-08 2017-07-18 浙江敢尚网络科技有限公司 一种网上交易系统及方法
CN107172001A (zh) * 2016-03-07 2017-09-15 阿里巴巴集团控股有限公司 网站代理服务器的控制方法、密钥代理服务器及网站代理服务器
CN109873818A (zh) * 2019-02-01 2019-06-11 湖南快乐阳光互动娱乐传媒有限公司 一种防止非法访问服务器的方法及系统
CN110519300A (zh) * 2019-09-24 2019-11-29 杭州字节信息技术有限公司 基于口令双向认证的客户端密钥安全存储方法
CN111343083A (zh) * 2020-05-22 2020-06-26 支付宝(杭州)信息技术有限公司 即时通信方法、装置、电子设备及可读存储介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102111410B (zh) * 2011-01-13 2013-07-03 中国科学院软件研究所 一种基于代理的单点登录方法及系统
CN102263784A (zh) * 2011-06-16 2011-11-30 中兴通讯股份有限公司 单点登录方法及系统
JP5768543B2 (ja) * 2011-07-05 2015-08-26 日本電気株式会社 電子署名システム、署名サーバ、署名者クライアント、電子署名方法、およびプログラム
CN111865603A (zh) * 2016-09-05 2020-10-30 华为技术有限公司 认证方法、认证装置和认证系统
CN110912857B (zh) * 2018-09-17 2022-07-26 福建天泉教育科技有限公司 移动应用间共享登录的方法、存储介质
EP3627363A1 (en) * 2018-09-19 2020-03-25 Vocalink Limited Information processing system, devices and methods
CN110263574A (zh) * 2019-06-06 2019-09-20 深圳前海微众银行股份有限公司 数据管理方法、装置、系统及可读存储介质
CN111030818A (zh) * 2020-01-09 2020-04-17 上海金仕达软件科技有限公司 一种基于微服务网关的统一会话管理方法及系统
CN111858087A (zh) * 2020-06-22 2020-10-30 中国平安财产保险股份有限公司 数据提交校验方法、装置、设备及存储介质
CN111756750B (zh) * 2020-06-24 2022-07-15 中国建设银行股份有限公司 安全访问方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7873734B1 (en) * 2001-05-17 2011-01-18 Computer Associates Think, Inc. Management of multiple user sessions and user requests for multiple electronic devices
CN107172001A (zh) * 2016-03-07 2017-09-15 阿里巴巴集团控股有限公司 网站代理服务器的控制方法、密钥代理服务器及网站代理服务器
CN106961446A (zh) * 2017-05-08 2017-07-18 浙江敢尚网络科技有限公司 一种网上交易系统及方法
CN109873818A (zh) * 2019-02-01 2019-06-11 湖南快乐阳光互动娱乐传媒有限公司 一种防止非法访问服务器的方法及系统
CN110519300A (zh) * 2019-09-24 2019-11-29 杭州字节信息技术有限公司 基于口令双向认证的客户端密钥安全存储方法
CN111343083A (zh) * 2020-05-22 2020-06-26 支付宝(杭州)信息技术有限公司 即时通信方法、装置、电子设备及可读存储介质

Also Published As

Publication number Publication date
CN113783867A (zh) 2021-12-10

Similar Documents

Publication Publication Date Title
JP4864289B2 (ja) ネットワークユーザ認証システムおよび方法
CN111556006B (zh) 第三方应用系统登录方法、装置、终端及sso服务平台
US8984613B2 (en) Server pool Kerberos authentication scheme
JP4896537B2 (ja) 非対称キーセキュリティのための方法およびシステム
CN113691502B (zh) 通信方法、装置、网关服务器、客户端及存储介质
CN107612889B (zh) 防止用户信息泄露的方法
CN113783867B (zh) 一种请求认证方法及终端
CN110430065B (zh) 一种应用服务调用方法、装置及系统
CN108322416B (zh) 一种安全认证实现方法、装置及系统
CN111800378B (zh) 一种登录认证方法、装置、系统和存储介质
US9942200B1 (en) End user authentication using a virtual private network
US20160044508A1 (en) Method for providing application service
US8924725B2 (en) Authenticated file handles for network file systems
CN111147525A (zh) 基于api网关的认证方法、系统、服务器和存储介质
CN110891065A (zh) 一种基于Token的用户身份辅助加密的方法
CN116527341A (zh) 一种客户端调用后端接口鉴权授权安全方法
CN113505353A (zh) 一种认证方法、装置、设备和存储介质
CN112600817A (zh) 前端应用请求接口时的签名认证方法
CN112491890A (zh) 一种访问方法及装置
CN114726606B (zh) 一种用户认证方法、客户端、网关及认证服务器
CN107370728B (zh) 一种基于电子证照库的瞬时证照生成和验证系统及方法
CN115955320A (zh) 一种视频会议身份认证方法
CN111817860B (zh) 一种通信认证方法、装置、设备及存储介质
CN112653676B (zh) 一种跨认证系统的身份认证方法和设备
Alharbi et al. An enhanced Dragonfly key exchange protocol against offline dictionary attack

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