CN112788033A - 一种认证方法及认证系统 - Google Patents
一种认证方法及认证系统 Download PDFInfo
- Publication number
- CN112788033A CN112788033A CN202110040838.3A CN202110040838A CN112788033A CN 112788033 A CN112788033 A CN 112788033A CN 202110040838 A CN202110040838 A CN 202110040838A CN 112788033 A CN112788033 A CN 112788033A
- Authority
- CN
- China
- Prior art keywords
- authentication
- client
- server
- data
- login
- 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/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本公开提供了一种认证方法及认证系统,认证方法应用于客户端,其包括:将登录数据发送给服务器端,登录数据至少包括:登录名称、登录密码以及客户端实时生成的认证字符串;接收服务器端基于登录数据返回的用户身份标识码和服务器时间;将数据请求以及验证数据发送给服务器端,以使服务器端根据验证数据的验证结果处理数据请求,其中,验证数据至少包括:用户身份标识码、时间戳及第一认证令牌,第一认证令牌基于用户身份标识码、时间戳和认证字符串生成,时间戳基于服务器时间和客户端时间生成。本公开通过设置客户端利用生成的认证字符串生成第一认证令牌,并发送给服务器端以使服务器端对第一认证令牌进行验证,提高了安全性和交互性能。
Description
技术领域
本公开涉通信安全技术领域,特别涉及一种认证方法及认证系统。
背景技术
通常,用户在基于客户端对自己某个账户下的数据进行一系列请求时,例如查看、删除等,均需要服务器端响应用户的请求,例如将用户想要查看的内容反馈给客户端,将删除结果反馈给客户端等。并且,在用户登录自己账户或在登录之后进行一系列请求的过程中,服务器端均需要对客户端进行认证,以确保接收到的请求为客户端发出的。
现有技术中存在以下两种认证方式,第一种,在登录时将session(会话)保存在服务器端,维持一个hash(哈希)表保存用户相关信息(也即key-value形式),其中,一个用户对应一个session,每个session都有它独一无二的sessionid(会话地址),sessionid随响应头set-cookie保存到客户端的cookies中;之后在进行数据请求的过程中,客户端将数据请求和cookies同时发动给服务器端,服务器端从cookies中拿到sessioid,然后根据sessionid从内存中找到对应用户的session获取相关用户信息,之后对数据请求进行响应。第二种,登录时由服务器端生成一个token(令牌),一般由uuid(用户唯一身份标志)、time(时间戳)、sign(签名=uuid+time+salt根据hash算法生成的字符串)、[常用的固定参数(可选)]组成;之后在进行数据请求的过程中,服务器端生成后随http响应保存在客户端的cookies(储存在用户本地终端上的数据)或local storage(局部存储器)中,随客户端请求发送至服务器端,用于单点登录的身份验证,防止跨站点请求伪造等。
但是,上述认证的第一种方式中session有效时长较短,并且保存在服务器端,在同时访问服务器端的用户较多时,其响应速度较慢甚至无法响应。上述认证的第二种方式中token是明文传输,容易泄露,并且单次登陆后token值短期内不会变化,一旦请求被截获,就可轻易仿造数据请求,导致通信安全性较低,若配合http用又会降低交互性能。
发明内容
有鉴于此,本公开实施例的目的在于提供一种认证方法及认证系统,用于解决现有技术中服务器端响应速度较慢以及客户端与服务器端之间通信安全性较低、交互性能较低的问题。
第一方面,本公开实施例提供了一种认证方法,应用于客户端,其中,所述认证方法包括:
将登录数据发送给服务器端,其中,所述登录数据至少包括:登录名称、登录密码以及客户端实时生成的认证字符串;
接收所述服务器端基于所述登录数据返回的用户身份标识码和服务器时间;
将数据请求以及验证数据发送给所述服务器端,以使所述服务器端根据所述验证数据的验证结果处理所述数据请求,其中,所述验证数据至少包括:所述用户身份标识码、时间戳及第一认证令牌,所述第一认证令牌基于所述用户身份标识码、所述时间戳和所述认证字符串生成,所述时间戳基于所述服务器时间和客户端时间生成。
在一种可能的实施方式中,将数据请求以及验证数据发送给所述服务器端之前,还包括:
基于所述服务器时间和客户端时间确定时间偏移量;
根据所述时间偏移量校正所述客户端时间,以得到的所述时间戳;
按照预设加密规则对所述用户身份标识码、所述认证字符串及所述时间戳进行加密,以生成所述第一认证令牌。
在一种可能的实施方式中,将登录数据发送给服务器端之前,还包括:
根据预先存储的公钥对所述登录数据进行加密,得到加密后的所述登录数据。
在一种可能的实施方式中,在根据预先存储的公钥对所述登录数据进行加密之前,还包括:
判断是否存在所述公钥;
若不存在,则生成获取指令;
将所述获取指令发送给所述服务器端,以使所述服务器端基于所述获取指令返回所述公钥。
第二方面,本公开实施例还提供了一种认证方法,应用于服务器端,所述认证方法包括:
接收客户端发送的登录数据,其中,所述登录数据至少包括:登录名称、登录密码以及客户端实时生成的认证字符串;
基于所述登录数据向所述客户端发送用户身份标识码和服务器时间;
接收所述客户端发送的数据请求以及验证数据,其中,所述验证数据至少包括:所述用户身份标识码、时间戳及第一认证令牌,所述第一认证令牌基于所述用户身份标识码、所述时间戳和所述认证字符串生成,所述时间戳基于所述服务器时间和客户端时间生成;
验证所述第一认证令牌是否与服务器生成的第二认证令牌一致,并根据验证结果处理所述数据请求。
在一种可能的实施方式中,接收客户端发送的登录数据之后,还包括:
根据与客户端存储的公钥对应的私钥解密所述登录数据,得到解密后的所述登录数据。
在一种可能的实施方式中,所述验证所述第一认证令牌是否与服务器生成的第二认证令牌一致,并根据验证结果处理所述数据请求,包括:
检测所述时间戳是否处于预设有效期内;
在所述时间戳处于所述预定有效期内的情况下,查找缓存数据库中是否存在所述第一认证令牌;
在所述缓存数据库中未存在所述第一认证令牌的情况下,验证所述第一认证令牌是否与服务器生成的第二认证令牌一致;
在所述第一认证令牌与所述第二认证令牌一致的情况下,将所述数据请求的响应数据反馈给所述客户端。
在一种可能的实施方式中,验证所述第一认证令牌是否与服务器生成的第二认证令牌一致之前,还包括:
基于所述用户身份标识码查找所述客户端对应的认证字符串;
按照预设加密规则对所述用户身份标识码、所述认证字符串、所述时间戳进行加密,以生成第二认证令牌。
在一种可能的实施方式中,接收客户端发送的登录数据之前,还包括:
接收所述客户端发送的获取指令;
基于所述获取指令生成所述公钥和所述私钥;
将所述公钥返回给所述客户端,并存储所述私钥。
第三方面,本公开实施例还提供了一种认证系统,包括:第一电子设备和第二电子设备,所述第一电子设备和所述第二电子设备至少均包括存储器、处理器,所述存储器上存储有计算机程序;
其中,所述第一电子设备的处理器在执行存储器上的计算机程序时实现第一方面中所述认证方法的步骤,所述第二电子设备的处理器在执行存储器上的计算机程序时实现第二方面中所述认证方法的步骤。
本公开实施例中,客户端在登录服务器端时,就将后续数据请求过程中参与生成验证数据的认证字符串发送至服务器端,有服务器端进行保存,并将服务器端返回的用户身份标识码和服务器时间应用到验证数据的生成过程中,当要发送数据请求时,会生成验证数据,与数据请求一起发送至服务器端,由服务器端进行验证。本公开实施例中,客户端利用自身实时生成的认证字符串生成第一认证令牌,并将其作为验证数据与数据请求一起发送给服务器端,以使服务器端对第一认证令牌进行验证,该第一认证令牌是随着请求数据而实时生成的,每次发送的第一认证令牌都不同,确保了第一认证令牌的时效性,提高了第一认证令牌的安全性,整个过程无需服务器端预先建立并存储会话,提升了服务器的处理速度,该第一认证令牌无需配合http使用,避免了交互性能较低的问题。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示出了本公开所提供的应用于客户端的认证方法的流程图;
图2示出了本公开所提供的应用于客户端的认证方法中获取时间戳以及生成第一认证令牌的流程图;
图3示出了本公开所提供的应用于客户端的认证方法中获取公钥的流程图;
图4示出了本公开所提供的应用于服务器端的认证方法的流程图;
图5示出了本公开所提供的应用于服务器端的认证方法中对验证数据进行验证的流程图;
图6示出了本公开所提供的应用于服务器端的认证方法中生成公私钥对的流程图;
图7示出了本公开所提供的认证系统进行认证的方法流程图。
具体实施方式
为了使得本公开的目的、技术方案和优点更加清楚,下面将结合本公开的附图,对本公开的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了保持本公开的以下说明清楚且简明,本公开省略了已知功能和已知部件的详细说明。
第一方面,为便于对本公开进行理解,首先对本公开所提供的一种认证方法进行详细介绍,该认证方法应用于客户端,例如手机、电脑等;具体地,图1示出了该认证方法的流程图,具体包括以下步骤:
S101,将登录数据发送给服务器端,其中,登录数据至少包括:登录名称、登录密码以及客户端实时生成的认证字符串。
这里,用户在基于客户端对自己某账户进行任意数据请求之前,需要先登录该账户,也即建立客户端与该服务器端之间的通信连接。其中,账户为仅属于用户个人的登录凭证,例如微博、邮箱等登录账户。
具体地,客户端获取用户输入的登录名称、登录密码,并且,客户端实时、随机的生成一个认证字符串,将登录名称、登录密码以认证字符串作为登录数据发送给服务器端,以使服务器端进行响应。其中,服务器端在接收到该登录数据之后,基于该登录数据生成该客户端对应的用户身份标识码,将该用户身份标识码与认证字符串进行关联并存储。
S102,接收服务器端基于登录数据返回的用户身份标识码和服务器时间。
其中,服务器端响应登录数据至少包括将生成的用户身份标识码返回给客户端。考虑到客户端本地的客户端时间和服务器端的服务器时间可能存在不一致的情况,因此,还可以将服务器时间连同用户身份标识码返回给客户端,进而完成登录过程。
客户端将登录数据发送给服务器端之后,便实时接收到服务器端返回的用户身份标识码和服务器时间;当然,也可以设置在一定时间段内接收服务器端返回的用户身份标识码和服务器时间,也即超过该时间段便不再接收服务器端基于本次发送的登录数据返回的用户身份标识码和服务器时间;该过程不仅能够确保账户的安全,还能够避免用户浪费不必要的时间,提高用户的体验度。
值得说明的是,S101和S102不仅适用于进行数据请求之前的登录过程,还适用于账户进行初次注册的过程。
S103,将数据请求以及验证数据发送给服务器端,以使服务器端根据验证数据的验证结果处理数据请求,其中,验证数据至少包括:用户身份标识码、时间戳及第一认证令牌,第一认证令牌基于用户身份标识码、时间戳和认证字符串生成,时间戳基于服务器时间和客户端时间生成。
通过S101和S102完成登录过程之后,用户便可以通过客户端进行数据请求,例如账户为微博时,查看微博私信、删除微博等;账户为邮箱时,查阅邮件、回复邮件、删除邮件等。在具体实施中,客户端基于用户的操作生成相应的数据请求,该操作包括点击虚拟按键、滑动触控屏幕等。
客户端在生成数据请求的同时或在生成数据请求之后,生成验证数据,并将数据请求以及验证数据发送给服务器端。服务器端在接收到数据请求和验证数据之后,对该验证数据进行验证,得到验证结果;之后根据验证结果处理数据请求,具体包括响应该数据请求、忽略该数据请求等。
其中,验证数据至少包括:用户身份标识码、时间戳及第一认证令牌,第一认证令牌由客户端利用加密规则对用户身份标识码、时间戳和认证字符串进行加密生成,时间戳由客户端基于服务器时间和客户端时间生成。
本公开实施例中,客户端利用自身实时生成的认证字符串生成第一认证令牌,并将其作为验证数据与数据请求一起发送给服务器端,以使服务器端对第一认证令牌进行验证,该第一认证令牌是随着请求数据而实时生成的,每次发送的第一认证令牌都不同,确保了第一认证令牌的时效性,提高了第一认证令牌的安全性,整个过程无需服务器端预先建立并存储会话,提升了服务器的处理速度,该第一认证令牌无需配合http使用,避免了交互性能较低的问题。
由上述内容,将数据请求以及验证数据发送给服务器端之前,客户端需要预先获取到时间戳以生成第一认证令牌,进一步地,图2示出了获取时间戳以及生成第一认证令牌的方法流程图,具体包括以下步骤:
S201,基于服务器时间和客户端时间确定时间偏移量。
客户端在接收到服务器端返回的服务器时间之后,客户端基于服务器时间和客户端时间计算时间差,将该时间差作为时间偏移量。
S202,根据时间偏移量校正客户端时间,以得到的时间戳。
进一步地,在计算得到时间偏移量之后,通过该时间偏移量校正客户端时间,以使校正后的客户端时间与服务器时间保持同步。其中,该校正后的客户端时间即为时间戳。
S203,按照预设加密规则对用户身份标识码、认证字符串及时间戳进行加密,以生成第一认证令牌。
此时,客户端获取到认证字符串以及时间戳,在生成数据请求的同时或生成数据请求之后,按照预设加密规则对用户身份标识码、认证字符串及时间戳进行加密,以生成第一认证令牌。其中,预设加密规则可以为MD5、AES、DES、PBKDF2等,本公开实施例对此不做具体限定。
这里,用户身份标识码为服务器端为该客户端生成的具备唯一性的标识信息,认证字符串为客户端实时生成的,并且,时间戳为客户端实时利用时间偏移量对本地的客户端时间进行校正得到的,因此,基于用户身份标识码、认证字符串及时间戳生成的第一认证令牌时效性和安全性均较高,并且由于客户端时间为实时变化更新的,也即时间戳为实时变化更新的,进而使得第一认证令牌具备一次性这一特性,进一步提高了第一认证令牌的安全性。
考虑到客户端将登录数据发送给服务器端的过程中,存在被恶意截获甚至被篡改的情况,因此,将登录数据发送给服务器端之前,客户端用预先存储的公钥对登录数据进行加密,得到加密后的登录数据之后,将该加密后的登录数据传输给服务器端,服务器端利用该公钥对应的私钥对登录数据进行解密进而得到登录数据,实现了提高登录数据安全性的目的。
其中,客户端中存储的公钥为服务器端提供的,例如,服务器端生成公私钥对,将公钥发送给客户端,并将客户端对应的用户身份标识码与私钥建立映射关系进行存储。
在具体实施中,可能存在客户端中未接收到用于加密登录数据的公钥,因此,在根据预先存储的公钥对登录数据进行加密之前,执行图3示出的步骤,以获取到公钥。具体地方法步骤包括S301-S303。
S301,判断是否存在公钥。
这里,可以预先设置公钥在客户端的存储位置,在对登录数据进行加密之前,查看该存储位置上是否存在公钥;当然,也可以是对用于加密登录数据的公钥添加标签,以区别于其他公钥,该种情况下便可以基于该标签查看是否存在公钥等。
S302,若不存在,则生成获取指令。
若客户端存在公钥,则直接利用公钥对登录数据进行加密。
若客户端不存在公钥,则生成获取指令,该获取指令用于获取公钥。
S303,将获取指令发送给服务器端,以使服务器端基于获取指令返回公钥。
在生成获取指令之后,将获取指令发送给服务器端。
服务器端在接收到获取指令之后,响应该获取指令,也即生成公私钥对,将公钥返回给客户端。其中,公私钥对也可以是预先生成的,也即在接收到获取指令之前便已经生成公私钥,本公开实施例对此不做具体限定。
本公开实施例中,客户端在将登录数据发送给服务器端之前,便将登录数据进行加密,进一步提高了登录数据的安全性,也即提高了客户端与服务器端交互的安全性。
第二方面,本公开还提供了一种用于服务器端的认证方法,图4示出了该认证方法的流程图,接下来结合步骤S401-S404进行详细介绍。
S401,接收客户端发送的登录数据,其中,登录数据至少包括:登录名称、登录密码以及客户端实时生成的认证字符串。
服务器端实时接收客户端发送的登录数据,以能够及时响应客户端的登录请求,该登录请求可以是建立在账户的初次注册过程中,也可以是建立在进行数据请求之前的登录过程中。
进一步地,为了提供登录数据的安全性,客户端在发送登录数据之前,利用预先存储的公钥对登录数据进行加密,之后将加密后的登录数据发送给服务器端。相应地,服务器端利用公钥对应的私钥解密登录数据,以得到解密后的登录数据,进而得到登录数据包括的登录名称、登录密码以及客户端实时生成的认证字符串。当然,登录数据还可以包括其他的客户端数据,本公开实施例不再进行一一列举。
其中,客户端实时获取用户输入的登录名称、登录密码,并且,生成一个认证字符串。
S402,基于登录数据向客户端发送用户身份标识码和服务器时间。
服务器端在接收并解密登录数据之后,响应该登录数据,具体为基于该登录数据生成该客户端对应的用户身份标识码,将该用户身份标识码与认证字符串进行关联并存储,并且,将生成的用户身份标识码返回给客户端。其中,用户身份标识码为服务器端为该客户端生成的具备唯一性的标识信息。
进一步地,考虑到客户端本地的客户端时间和服务器端的服务器时间可能存在不一致的情况,因此,还可以将服务器时间连同用户身份标识码返回给客户端,以使客户端完成登录过程。
S403,接收客户端发送的数据请求以及验证数据,其中,验证数据至少包括:用户身份标识码、时间戳及第一认证令牌,第一认证令牌基于用户身份标识码、时间戳和认证字符串生成,时间戳基于服务器时间和客户端时间生成。
在完成客户端的登录过程之后,用户便可以通过客户端进行数据请求,例如账户为微博时,查看微博私信、删除微博等;账户为邮箱时,查阅邮件、回复邮件、删除邮件等。在具体实施中,客户端基于用户的操作生成相应的数据请求,该操作包括点击虚拟按键、滑动触控屏幕等。
客户端在生成数据请求的同时或在生成数据请求之后,生成验证数据,并将数据请求以及验证数据发送给服务器端。
服务器端接收客户端发送的数据请求以及验证数据,其中,验证数据至少包括:用户身份标识码、时间戳及第一认证令牌。
在具体实施中,时间戳基于服务器时间和客户端时间生成,具体地,客户端在接收到服务器端返回的服务器时间之后,客户端基于服务器时间和客户端时间计算时间差,将该时间差作为时间偏移量;之后,通过该时间偏移量校正客户端时间,以使校正后的客户端时间与服务器时间保持同步,该校正后的客户端时间即为时间戳。
本公开实施例中,第一认证令牌基于用户身份标识码、时间戳和认证字符串生成,具体地,客户端获取认证字符串以及时间戳,在生成数据请求的同时或生成数据请求之后,按照预设加密规则对用户身份标识码、认证字符串及时间戳进行加密,以生成第一认证令牌。其中,预设加密规则可以为MD5、AES、DES、PBKDF2等,本公开实施例对此不做具体限定。
这里,用户身份标识码为服务器端为该客户端生成的具备唯一性的标识信息,认证字符串为客户端实时生成的,并且,时间戳为客户端实时利用时间偏移量对本地的客户端时间进行校正得到的,因此,基于用户身份标识码、认证字符串及时间戳生成的第一认证令牌时效性和安全性均较高,并且由于客户端时间为实时变化更新的,也即时间戳为实时变化更新的,进而使得第一认证令牌具备一次性这一特性,进一步提高了第一认证令牌的安全性。
S404,验证第一认证令牌是否与服务器生成的第二认证令牌一致,并根据验证结果处理数据请求。
服务器端在接收到用户身份标识码之后,利用接收到的用户身份标识码查找该客户端对应的认证字符串,之后,利用用户身份标识码、查找到的认证字符串以及时间戳生成第二认证令牌。
进一步地,验证第一认证令牌与第二认证令牌是否一致,并根据验证结果处理数据请求。具体地,根据验证结果处理数据请求可以设置为:若第一认证令牌与第二认证令牌一致,则响应接收到的数据请求;若第一认证令牌与第二认证令牌不一致,则忽略接收到的数据请求等。
本公开实施例中,服务器端对客户端利用认证字符串生成的第一认证令牌进行验证,无需服务器端预先存储,避免了多个客户端同时访问服务器端时,服务器端响应速度较慢甚至无法响应的问题;并且,利用认证字符串和时间戳生成第一认证令牌,确保了第一认证令牌的时效性,进而提高了第一认证令牌的安全性,并且,该第一认证令牌无需配合htts使用,避免了交互性能较低的问题。
具体地,图5示出了服务器端对验证数据进行验证的方法流程图,具体包括以下步骤:
S501,检测时间戳是否处于预设有效期内。
在具体实施中,接收到验证数据之后,判断验证数据中的时间戳是否预设有效期内。具体为,预先设置有效时长,在接收到时间戳之后,计算时间戳与当前服务器时间之间的间隔时长,将该间隔时长与有效时长进行对比,若间隔时长小于或等于有效时长,则该时间戳处于预设有效期内;若间隔时长大于有效时长,则确定该时间戳失效。
S502,在时间戳处于预定有效期内的情况下,查找缓存数据库中是否存在第一认证令牌。
考虑到验证数据也可能存在被截获的情况,以及每次生成的第一认证令牌均不相同,因此,服务器端可以将客户端历史发送的所有第一认证令牌,或当前服务器时间前一定时间段内的第一认证令牌存储至缓存数据库中,并在时间戳处于预定有效期内的情况下,进一步查找该缓存数据库中是否存在第一认证令牌,以进一步确保验证数据的安全性,避免历史上验证通过的第一认证令牌被恶意使用。
S503,在缓存数据库中未存在第一认证令牌的情况下,验证第一认证令牌是否与服务器生成的第二认证令牌一致。
其中,在缓存数据库中未存在第一认证令牌的情况下,也即第一认证令牌并非被恶意使用的情况下,验证第一认证令牌是否与服务器生成的第二认证令牌一致。
具体地,在验证第一认证令牌是否与服务器生成的第二认证令牌一致之前,服务器端基于之后用户身份标识码查找该客户端对应的认证字符串,之后,同样按照预设加密规则对用户身份标识码、认证字符串、时间戳进行加密,生成第二认证令牌;并在确定缓存数据库中未存在第一认证令牌之后,对比第一认证令牌与第二认证令牌是否一致。
S504,在第一认证令牌与第二认证令牌一致的情况下,将数据请求的响应数据反馈给客户端。
服务器端在确定第一认证令牌与第二认证令牌一致之后,也即验证结果为通过之后,响应接收到的数据请求,也即生成响应数据并将响应数据反馈给客户端,进而完成客户端与服务器端之间的数据交互。
例如,在数据请求为“查看邮件”时,在确定第一认证令牌与第二认证令牌一致之后,服务器端将该邮件内容作为响应数据返回给客户端,以使客户端接收并展示该响应数据。
基于前述方案,客户端在发送登录数据之前,利用预先存储的公钥对登录数据进行加密,以确保登录数据的安全性。在具体实施中,客户端的公钥为服务器端提供的,服务器端可以主动生成公私钥对,并将公钥发送给客户端,以使客户端存储并使用;在服务器端未生成相应地公私钥对的情况下,按照图6示出的方法步骤来生成公私钥对,具体步骤包括S601-S603。
S601,接收客户端发送的获取指令。
客户端在根据预先存储的公钥对登录数据进行加密之前,判断是否存在公钥;其中,公钥可以存储在客户端预设的存储位置,在对登录数据进行加密之前,查看该存储位置上是否存在公钥;或者,可以是对用于加密登录数据的公钥添加标签,以区别于其他公钥,该种情况下基于该标签查看是否存在公钥等。并且,在客户端不存在公钥的情况下生成获取指令,将获取指令发送给服务器端。
服务器端实时接收客户端发送的获取指令。
S602,基于获取指令生成公钥和私钥。
服务器端在接收到获取指令之后,响应该获取指令,也即生成公私钥对也即生成公钥和私钥。
当然,公私钥对也可以是预先生成的,也即在接收到获取指令之前便已经生成公私钥,本公开实施例对此不做具体限定。
S603,将公钥返回给客户端,并存储私钥。
在生成公钥和私钥之后,将公钥返回给客户端;并且,将私钥进行存储,例如将客户端的用户身份标识码与私钥关联存储等。
本公开实施例中,客户端在将登录数据发送给服务器端之前,便将登录数据进行加密;并且,服务器端利用公钥对应的私钥进行解密之后才能得到登录数据;进而提高了登录数据的安全性,也即提高了客户端与服务器端交互的安全性。
本公开的第三方面还提供了一种认证系统,包括:第一电子设备和第二电子设备,第一电子设备和第二电子设备至少均包括存储器、处理器,存储器上存储有计算机程序;其中,第一电子设备的处理器在执行存储器上的计算机程序时实现第一方面中任一项认证方法的步骤,第二电子设备的处理器在执行存储器上的计算机程序时实现第二方面中任一项认证方法的步骤。
图7示出了该认证系统进行认证的流程图,并且,图7中以第一电子设备为客户端,第二电子设备为服务器端为例,但不限定于此。并且,图7中redis表示缓存数据库,userId表示用户身份标识码,salt表示认证字符串,sign token表示第一认证令牌,新的signtoken表示第二认证令牌。
接下来,结合图7中示出的S701-S713对认证系统的认证流程进行详细阐述,值得说明的是,认证过程中的具体细节可以参照第一方面和第二方面的实施例,在此便不作过多赘述。
客户端执行S701判断客户端本地是否存在服务器端发送的公钥,以及S702客户端未存在公钥的情况下,生成获取指令。之后,执行S703将获取指令发送给服务器端。
服务器端在接收到获取指令之后,执行S704,也即基于获取指令生成公钥和私钥,并存储私钥。之后,执行S705,也即将公钥发送给客户端。
客户端执行S706,也即生成salt,并利用公钥对登录名称、登录密码以及salt进行加密,得到加密后的登录数据。之后,执行S706,也即将登录数据发送给服务器端。
服务器端在接收到登录数据之后执行S707,也即利用私钥对登录数据进行解密,得到登录名称、登录密码以及salt,并响应生成userId,将userId和salt关联存储在redis中。之后,执行S708,也即将userId和服务器时间发送给客户端。
客户端在接收到userId和服务器时间之后执行S709,也即基于客户端时间和服务器时间计算时间偏移量,存储该时间偏移量和userId。之后,执行S710,也即利用当前的客户端时间和时间偏移量计算时间戳,使用MD5对userId、salt及时间戳进行加密得到signtoken。
客户端在进行数据请求的过程中,先执行S711,也即将数据请求和验证数据发送给服务器端,验证数据包括userId、时间戳以及sign token。
服务器端在接收到数据请求和验证数据之后执行S712,也即检测时间戳是否处于预设有效期内,并在时间戳处于预定有效期内的情况下,查找redis中是否存在signtoken;在redis中未存在sign token的情况下,验证sign token是否与服务器端生成的新的sign token一致。之后,执行S713,也即在sign token与新的sign token一致的情况下,将数据请求的响应数据反馈给客户端。
其中,上述图7中的流程中以客户端未存在公钥的基础上进行的,在通过步骤S701确定客户端存在公钥的情况下,可以直接执行步骤S706,也即无需执行步骤S702-S705。
本公开实施例中,服务器端对客户端利用认证字符串生成的第一认证令牌进行验证,无需服务器端预先存储,避免了多个客户端同时访问服务器端时,服务器端响应速度较慢甚至无法响应的问题;并且,利用认证字符串和时间戳生成第一认证令牌,确保了第一认证令牌的时效性,进而提高了第一认证令牌的安全性,并且,该第一认证令牌无需配合http使用,避免了交互性能较低的问题。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本邻域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
以上对本公开多个实施例进行了详细说明,但本公开不限于这些具体的实施例,本邻域技术人员在本公开构思的基础上,能够做出多种变型和修改实施例,这些变型和修改都应落入本公开所要求保护的范围之内。
Claims (10)
1.一种认证方法,其特征在于,应用于客户端,所述认证方法包括:
将登录数据发送给服务器端,其中,所述登录数据至少包括:登录名称、登录密码以及客户端实时生成的认证字符串;
接收所述服务器端基于所述登录数据返回的用户身份标识码和服务器时间;
将数据请求以及验证数据发送给所述服务器端,以使所述服务器端根据所述验证数据的验证结果处理所述数据请求,其中,所述验证数据至少包括:所述用户身份标识码、时间戳及第一认证令牌,所述第一认证令牌基于所述用户身份标识码、所述时间戳和所述认证字符串生成,所述时间戳基于所述服务器时间和客户端时间生成。
2.根据权利要求1所述的认证方法,其特征在于,将数据请求以及验证数据发送给所述服务器端之前,还包括:
基于所述服务器时间和客户端时间确定时间偏移量;
根据所述时间偏移量校正所述客户端时间,以得到的所述时间戳;
按照预设加密规则对所述用户身份标识码、所述认证字符串及所述时间戳进行加密,以生成所述第一认证令牌。
3.根据权利要求1或2所述的认证方法,其特征在于,将登录数据发送给服务器端之前,还包括:
根据预先存储的公钥对所述登录数据进行加密,得到加密后的所述登录数据。
4.根据权利要求3所述的认证方法,其特征在于,在根据预先存储的公钥对所述登录数据进行加密之前,还包括:
判断是否存在所述公钥;
若不存在,则生成获取指令;
将所述获取指令发送给所述服务器端,以使所述服务器端基于所述获取指令返回所述公钥。
5.一种认证方法,其特征在于,应用于服务器端,所述认证方法包括:
接收客户端发送的登录数据,其中,所述登录数据至少包括:登录名称、登录密码以及客户端实时生成的认证字符串;
基于所述登录数据向所述客户端发送用户身份标识码和服务器时间;
接收所述客户端发送的数据请求以及验证数据,其中,所述验证数据至少包括:所述用户身份标识码、时间戳及第一认证令牌,所述第一认证令牌基于所述用户身份标识码、所述时间戳和所述认证字符串生成,所述时间戳基于所述服务器时间和客户端时间生成;
验证所述第一认证令牌是否与服务器生成的第二认证令牌一致,并根据验证结果处理所述数据请求。
6.根据权利要求5所述的认证方法,其特征在于,接收客户端发送的登录数据之后,还包括:
根据与客户端存储的公钥对应的私钥解密所述登录数据,得到解密后的所述登录数据。
7.根据权利要求5所述的认证方法,其特征在于,所述验证所述第一认证令牌是否与服务器生成的第二认证令牌一致,并根据验证结果处理所述数据请求,包括:
检测所述时间戳是否处于预设有效期内;
在所述时间戳处于所述预定有效期内的情况下,查找缓存数据库中是否存在所述第一认证令牌;
在所述缓存数据库中未存在所述第一认证令牌的情况下,验证所述第一认证令牌是否与服务器生成的第二认证令牌一致;
在所述第一认证令牌与所述第二认证令牌一致的情况下,将所述数据请求的响应数据反馈给所述客户端。
8.根据权利要求5至7中任一项所述的认证方法,其特征在于,验证所述第一认证令牌是否与服务器生成的第二认证令牌一致之前,还包括:
基于所述用户身份标识码查找所述客户端对应的认证字符串;
按照预设加密规则对所述用户身份标识码、所述认证字符串、所述时间戳进行加密,以生成第二认证令牌。
9.根据权利要求5所述的认证方法,其特征在于,接收客户端发送的登录数据之前,还包括:
接收所述客户端发送的获取指令;
基于所述获取指令生成所述公钥和所述私钥;
将所述公钥返回给所述客户端,并存储所述私钥。
10.一种认证系统,其特征在于,包括:第一电子设备和第二电子设备,所述第一电子设备和所述第二电子设备至少均包括存储器、处理器,所述存储器上存储有计算机程序;
其中,所述第一电子设备的处理器在执行存储器上的计算机程序时实现权利要求1至4中任一项所述认证方法的步骤,所述第二电子设备的处理器在执行存储器上的计算机程序时实现权利要求5至9中任一项所述认证方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110040838.3A CN112788033B (zh) | 2021-01-13 | 2021-01-13 | 一种认证方法及认证系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110040838.3A CN112788033B (zh) | 2021-01-13 | 2021-01-13 | 一种认证方法及认证系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112788033A true CN112788033A (zh) | 2021-05-11 |
CN112788033B CN112788033B (zh) | 2022-09-20 |
Family
ID=75755570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110040838.3A Active CN112788033B (zh) | 2021-01-13 | 2021-01-13 | 一种认证方法及认证系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112788033B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113271306A (zh) * | 2021-05-18 | 2021-08-17 | 上海星融汽车科技有限公司 | 数据请求、发送方法、设备以及系统 |
CN113301432A (zh) * | 2021-05-14 | 2021-08-24 | 海信视像科技股份有限公司 | 显示设备、终端设备及通信连接方法 |
CN113343278A (zh) * | 2021-07-05 | 2021-09-03 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种防御csrf攻击的登录请求校验方法及装置 |
CN113392420A (zh) * | 2021-07-06 | 2021-09-14 | 山东电力工程咨询院有限公司 | 一种智慧化项目数据管理方法及系统 |
CN113434552A (zh) * | 2021-06-28 | 2021-09-24 | 青岛海尔科技有限公司 | 数据请求的处理方法和装置、存储介质及电子装置 |
CN113612774A (zh) * | 2021-08-04 | 2021-11-05 | 特瓦特能源科技有限公司 | 一种网络安全防护方法及相关设备 |
CN113626840A (zh) * | 2021-07-23 | 2021-11-09 | 曙光信息产业(北京)有限公司 | 接口认证方法、装置、计算机设备和存储介质 |
CN113746847A (zh) * | 2021-09-06 | 2021-12-03 | 北京天融信网络安全技术有限公司 | 一种通信方法、装置、存储介质及电子设备 |
CN113965365A (zh) * | 2021-10-15 | 2022-01-21 | 杭州安恒信息技术股份有限公司 | 平台数据管理方法、系统、计算机及可读存储介质 |
CN114070616A (zh) * | 2021-11-15 | 2022-02-18 | 广东亿迅科技有限公司 | 一种基于redis缓存的分布式会话共享方法及系统 |
CN114124534A (zh) * | 2021-11-24 | 2022-03-01 | 航天信息股份有限公司 | 一种数据交互系统及方法 |
CN114374517A (zh) * | 2021-12-08 | 2022-04-19 | 天翼物联科技有限公司 | 基于动态时间戳的api调用方法、系统、装置及存储介质 |
CN114422266A (zh) * | 2022-02-28 | 2022-04-29 | 深圳市中悦科技有限公司 | 一种基于双重验证机制的IDaaS系统 |
CN114500074A (zh) * | 2022-02-11 | 2022-05-13 | 京东科技信息技术有限公司 | 单点系统安全访问方法、装置及相关设备 |
CN114513350A (zh) * | 2022-02-08 | 2022-05-17 | 中国农业银行股份有限公司 | 身份校验方法、系统和存储介质 |
CN114553570A (zh) * | 2022-02-25 | 2022-05-27 | 中国建设银行股份有限公司 | 生成令牌的方法、装置、电子设备及存储介质 |
CN114553432A (zh) * | 2022-01-28 | 2022-05-27 | 中国银联股份有限公司 | 身份认证方法、装置、设备及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090300364A1 (en) * | 2008-05-29 | 2009-12-03 | James Paul Schneider | Username based authentication security |
CN107809317A (zh) * | 2017-11-09 | 2018-03-16 | 郑州云海信息技术有限公司 | 一种基于令牌数字签名的身份认证方法及系统 |
CN110266642A (zh) * | 2019-05-15 | 2019-09-20 | 网宿科技股份有限公司 | 身份认证方法及服务器、电子设备 |
CN111212095A (zh) * | 2020-04-20 | 2020-05-29 | 国网电子商务有限公司 | 一种身份信息的认证方法、服务器、客户端及系统 |
-
2021
- 2021-01-13 CN CN202110040838.3A patent/CN112788033B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090300364A1 (en) * | 2008-05-29 | 2009-12-03 | James Paul Schneider | Username based authentication security |
CN107809317A (zh) * | 2017-11-09 | 2018-03-16 | 郑州云海信息技术有限公司 | 一种基于令牌数字签名的身份认证方法及系统 |
CN110266642A (zh) * | 2019-05-15 | 2019-09-20 | 网宿科技股份有限公司 | 身份认证方法及服务器、电子设备 |
CN111212095A (zh) * | 2020-04-20 | 2020-05-29 | 国网电子商务有限公司 | 一种身份信息的认证方法、服务器、客户端及系统 |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113301432A (zh) * | 2021-05-14 | 2021-08-24 | 海信视像科技股份有限公司 | 显示设备、终端设备及通信连接方法 |
CN113271306A (zh) * | 2021-05-18 | 2021-08-17 | 上海星融汽车科技有限公司 | 数据请求、发送方法、设备以及系统 |
CN113434552A (zh) * | 2021-06-28 | 2021-09-24 | 青岛海尔科技有限公司 | 数据请求的处理方法和装置、存储介质及电子装置 |
CN113434552B (zh) * | 2021-06-28 | 2023-07-21 | 青岛海尔科技有限公司 | 数据请求的处理方法和装置、存储介质及电子装置 |
CN113343278B (zh) * | 2021-07-05 | 2022-07-26 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种防御csrf攻击的登录请求校验方法及装置 |
CN113343278A (zh) * | 2021-07-05 | 2021-09-03 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种防御csrf攻击的登录请求校验方法及装置 |
CN113392420A (zh) * | 2021-07-06 | 2021-09-14 | 山东电力工程咨询院有限公司 | 一种智慧化项目数据管理方法及系统 |
CN113626840A (zh) * | 2021-07-23 | 2021-11-09 | 曙光信息产业(北京)有限公司 | 接口认证方法、装置、计算机设备和存储介质 |
CN113612774A (zh) * | 2021-08-04 | 2021-11-05 | 特瓦特能源科技有限公司 | 一种网络安全防护方法及相关设备 |
CN113746847B (zh) * | 2021-09-06 | 2023-05-05 | 北京天融信网络安全技术有限公司 | 一种通信方法、装置、存储介质及电子设备 |
CN113746847A (zh) * | 2021-09-06 | 2021-12-03 | 北京天融信网络安全技术有限公司 | 一种通信方法、装置、存储介质及电子设备 |
CN113965365A (zh) * | 2021-10-15 | 2022-01-21 | 杭州安恒信息技术股份有限公司 | 平台数据管理方法、系统、计算机及可读存储介质 |
CN114070616B (zh) * | 2021-11-15 | 2024-02-27 | 广东亿迅科技有限公司 | 一种基于redis缓存的分布式会话共享方法及系统 |
CN114070616A (zh) * | 2021-11-15 | 2022-02-18 | 广东亿迅科技有限公司 | 一种基于redis缓存的分布式会话共享方法及系统 |
CN114124534A (zh) * | 2021-11-24 | 2022-03-01 | 航天信息股份有限公司 | 一种数据交互系统及方法 |
CN114374517A (zh) * | 2021-12-08 | 2022-04-19 | 天翼物联科技有限公司 | 基于动态时间戳的api调用方法、系统、装置及存储介质 |
CN114553432A (zh) * | 2022-01-28 | 2022-05-27 | 中国银联股份有限公司 | 身份认证方法、装置、设备及计算机可读存储介质 |
CN114553432B (zh) * | 2022-01-28 | 2023-08-18 | 中国银联股份有限公司 | 身份认证方法、装置、设备及计算机可读存储介质 |
CN114513350A (zh) * | 2022-02-08 | 2022-05-17 | 中国农业银行股份有限公司 | 身份校验方法、系统和存储介质 |
CN114500074A (zh) * | 2022-02-11 | 2022-05-13 | 京东科技信息技术有限公司 | 单点系统安全访问方法、装置及相关设备 |
CN114500074B (zh) * | 2022-02-11 | 2024-04-12 | 京东科技信息技术有限公司 | 单点系统安全访问方法、装置及相关设备 |
CN114553570A (zh) * | 2022-02-25 | 2022-05-27 | 中国建设银行股份有限公司 | 生成令牌的方法、装置、电子设备及存储介质 |
CN114553570B (zh) * | 2022-02-25 | 2024-04-12 | 中国建设银行股份有限公司 | 生成令牌的方法、装置、电子设备及存储介质 |
CN114422266A (zh) * | 2022-02-28 | 2022-04-29 | 深圳市中悦科技有限公司 | 一种基于双重验证机制的IDaaS系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112788033B (zh) | 2022-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112788033B (zh) | 一种认证方法及认证系统 | |
US10764047B2 (en) | Synchronizable hardware security module | |
US11343081B2 (en) | Synchronizable hardware security module | |
CN109471844B (zh) | 文件共享方法、装置、计算机设备和存储介质 | |
US9692757B1 (en) | Enhanced authentication for secure communications | |
US10007797B1 (en) | Transparent client-side cryptography for network applications | |
US10887294B2 (en) | Synchronizable hardware security module | |
US10764294B1 (en) | Data exfiltration control | |
CN111444499B (zh) | 用户身份认证方法及系统 | |
CN106464493B (zh) | 包含一次性通行码的持久性认证系统 | |
JP2017531951A (ja) | セキュリティチェックのための方法、デバイス、端末およびサーバ | |
US20240305450A1 (en) | Authentication system for a multiuser device | |
US9288049B1 (en) | Cryptographically linking data and authentication identifiers without explicit storage of linkage | |
CN114944921A (zh) | 登录认证方法、装置、电子设备及存储介质 | |
CN112860790B (zh) | 数据管理方法、系统、装置 | |
CN112565156B (zh) | 信息注册方法、装置和系统 | |
US11818109B1 (en) | Secure synchronization of data | |
US11949772B2 (en) | Optimized authentication system for a multiuser device | |
CN117040825B (zh) | 物联网设备的认证方法和存储介质 | |
US20240070294A1 (en) | Secure synchronization of data | |
US12101328B1 (en) | Systems and methods for providing access control to web services using mirrored, secluded web instances | |
US11888971B2 (en) | Sharing access to data externally | |
CN111756675B (zh) | 数据处理方法、装置、设备和系统 | |
CN113472728A (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 |