CN114124480B - 通信的认证方法、服务器、客户端、电子设备及存储介质 - Google Patents

通信的认证方法、服务器、客户端、电子设备及存储介质 Download PDF

Info

Publication number
CN114124480B
CN114124480B CN202111312503.9A CN202111312503A CN114124480B CN 114124480 B CN114124480 B CN 114124480B CN 202111312503 A CN202111312503 A CN 202111312503A CN 114124480 B CN114124480 B CN 114124480B
Authority
CN
China
Prior art keywords
key
character string
client
hash operation
authentication code
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
CN202111312503.9A
Other languages
English (en)
Other versions
CN114124480A (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.)
Flash It Co ltd
Original Assignee
Flash It Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Flash It Co ltd filed Critical Flash It Co ltd
Priority to CN202111312503.9A priority Critical patent/CN114124480B/zh
Publication of CN114124480A publication Critical patent/CN114124480A/zh
Application granted granted Critical
Publication of CN114124480B publication Critical patent/CN114124480B/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/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/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/3236Cryptographic 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
    • H04L9/3242Cryptographic 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 involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

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)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

本申请提供了一种通信的认证方法、服务器、客户端、电子设备及存储介质,所述认证方法包括:当接收到客户端发送登录请求时,随机生成验证字符串返回至客户端;根据客户端返回的用户的身份认证信息,在数据库中确定对应的加密密钥,其中,加密密钥是基于原始密钥经过第一哈希运算生成的密钥;根据验证字符串以及加密密钥,通过第二哈希运算确定出消息认证码;将身份认证信息中的身份认证码以及消息认证码进行匹配,若匹配成功,则认证成功,返回带有允许登录信息的认证信息至客户端。采用本申请提供的技术方案能够在不查表的情况下生成加密密钥,通过加密密钥生成消息认证码确定用户的身份认证信息,提高了原始密钥的安全性。

Description

通信的认证方法、服务器、客户端、电子设备及存储介质
技术领域
本申请涉及信息安全技术领域,尤其是涉及通信的认证方法、服务器、客户端、电子设备及存储介质。
背景技术
计算机和网络应用程序中应用密码技术越来越广泛,攻击方法也更加的多样化。涉及密码学的商业应用程序越来越多地渗透到不受信任的商品主机环境中,例如,用户在物理上不安全的系统组件和设备上执行敏感的基于软件的交易。因此标准的加密模型,即假设加密在可信环境执行,只要求保护加密密钥的情况不再适用。
目前,在用户登录等需要身份认证的应用环境下,例如通过HMAC消息认证码认证用户信息,需要传入原始密钥,但是在传输过程中原始密钥容易受到攻击,因此,如何提高原始密钥的安全性,成为了亟待解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种通信的认证方法、服务器、客户端、电子设备及存储介质,能够将原始密钥转换成加密密钥,通过加密密钥生成消息认证码确定用户的身份认证信息,提高了原始密钥的安全性。
本申请主要包括以下几个方面:
第一方面,本申请实施例提供了一种通信的认证方法,应用于服务器,所述认证方法包括:
当接收到客户端发送登录请求时,随机生成验证字符串返回至客户端;
根据客户端返回的用户的身份认证信息,在数据库中确定对应的加密密钥,其中,所述加密密钥是基于原始密钥经过第一哈希运算生成的密钥;
根据所述验证字符串以及所述加密密钥,通过第二哈希运算确定出消息认证码;
将所述身份认证信息中的身份认证码以及所述消息认证码进行匹配,若匹配成功,则认证成功,返回带有允许登录信息的认证信息至所述客户端。
进一步的,所述认证方法还包括:
当接收到客户端发送注册请求时,若满足注册条件,则发送允许注册的信息返回至所述客户端;
接收所述客户端返回的用户的账号名以及加密密钥,将所述用户的账号名与所述加密密钥对应地保存在数据库中。
进一步的,通过以下步骤确定消息认证码,包括:
将所述加密密钥按长度拆分成第一密钥与第二密钥;
将所述第二密钥与所述验证字符串拼接后通过第二哈希运算获得第一字符串;
将所述第一密钥与所述第一字符串拼接后进行第二哈希运算获得消息认证码。
进一步的,所述将所述第一密钥与所述第一字符串拼接后进行第二哈希运算获得消息认证码,包括:
获取所述第一密钥与所述第一字符串拼接后的字符串,对所述字符串进行填充,填充后的字符串是长度为预设阈值倍数的目标消息;
对所述目标消息按预设阈值进行分组得到消息组;
将预设的初始值以及所述消息组进行压缩处理,确定所述消息认证码。
进一步的,通过以下步骤获得所述预设的初始值,包括:
将所述原始密钥进行填充后,得到填充密钥;
将所述填充密钥与第一预设字符串异或得到第二字符串;
将所述第二密钥拼接在所述第二字符串后,并将拼接后的字符串进行第一哈希运算获得初始值。
第二方面,本申请实施例还提供了一种通信的认证方法,应用于客户端,所述认证方法包括:
在向服务器发送登录请求后,接收所述服务器返回的验证字符串;
根据加密密钥以及所述验证字符串,确定身份认证码;
根据用户的身份认证码以及账号名生成身份认证信息,并将所述身份认证信息发送给所述服务器;
若所述服务器反馈的认证信息指示允许登录,确定认证成功。
进一步的,所述认证方法还包括:
在向所述服务器发送注册请求后,接收所述服务器返回的允许注册的信息;
接收所述允许注册的信息后,根据用户输入的原始密钥通过第一哈希运算获得加密密钥;
将用户的账号名和所述加密密钥发送给服务器。
进一步的,通过以下步骤确定加密密钥,包括:
检测所述原始密钥的密码长度是否小于预设阈值;
若所述密码长度小于预设阈值,将所述原始密钥的长度填充预设阈值,得到填充密钥;
将所述填充密钥与第一预设字符串异或后进行第一哈希运算,得到第一密钥;
将所述填充密钥与第二预设字符串异或后进行第一哈希运算,得到第二密钥;
将所述第一密钥与第二密钥进行拼接得到加密密钥。
第三方面,本申请实施例还提供了一种服务器,所述服务器包括:
第一收发模块,用于当接收到客户端发送登录请求时,随机生成验证字符串返回至客户端;
映射模块,用于根据客户端返回的用户的身份认证信息,在数据库中确定对应的加密密钥,其中,所述加密密钥是基于原始密钥经过第一哈希运算生成的密钥;
第一处理模块,用于根据所述验证字符串以及所述加密密钥,通过第二哈希运算确定出消息认证码;
认证模块,用于将所述身份认证信息中的身份认证码以及所述消息认证码进行匹配,若匹配成功,则认证成功,返回带有允许登录信息的认证信息至所述客户端。
第四方面,本申请实施例还提供了一种客户端,所述客户端包括:
第二收发模块,用于在向服务器发送登录请求后,接收所述服务器返回的验证字符串;
第二处理模块,用于根据加密密钥以及所述验证字符串,确定身份认证码;
发送模块,用于根据用户的身份认证码以及账号名生成身份认证信息,并将所述身份认证信息发送给所述服务器;
确定模块,用于若所述服务器反馈的认证信息指示允许登录,确定认证成功。
第五方面,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述的通信的认证方法的步骤。
第六方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如上述的通信的认证方法的步骤。
本申请实施例提供的一种通信的认证方法、服务器、客户端、电子设备及存储介质,当接收到客户端发送登录请求时,随机生成验证字符串返回至客户端;根据客户端返回的用户的身份认证信息,在数据库中确定对应的加密密钥,其中,所述加密密钥是基于原始密钥经过第一哈希运算生成的密钥;根据所述验证字符串以及所述加密密钥,通过第二哈希运算确定出消息认证码;将所述身份认证信息中的身份认证码以及所述消息认证码进行匹配,若匹配成功,则认证成功,返回带有允许登录信息的认证信息至所述客户端。
这样,采用本申请提供的技术方案能够将原始密钥转换成加密密钥,通过加密密钥生成消息认证码确定用户的身份认证信息,提高了原始密钥的安全性。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所提供的一种通信的认证方法的流程图;
图2示出了本申请实施例所提供的另一种通信的认证方法的流程图;
图3示出了本申请实施例所提供的一种服务器的结构示意图之一;
图4示出了本申请实施例所提供的一种服务器的结构示意图之二;
图5示出了本申请实施例所提供的一种客户端的结构示意图之一;
图6示出了本申请实施例所提供的一种客户端的结构示意图之二;
图7示出了本申请实施例所提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中的附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应当理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的全部其他实施例,都属于本申请保护的范围。
为了使得本领域技术人员能够使用本申请内容,结合特定应用场景“通信认证”,给出以下实施方式,对于本领域技术人员来说,在不脱离本申请的精神和范围的情况下,可以将这里定义的一般原理应用于其他实施例和应用场景。
本申请实施例下述方法、服务器、客户端、电子设备或计算机可读存储介质可以应用于任何需要进行通信认证的场景,本申请实施例并不对具体的应用场景作限制,任何使用本申请实施例提供的一种通信的认证方法、服务器、客户端、电子设备及存储介质的方案均在本申请保护范围内。
值得注意的是,计算机和网络应用程序中应用密码技术越来越广泛,攻击方法也更加的多样化,涉及密码学的商业应用程序越来越多地渗透到不受信任的商品主机环境中,例如,用户在物理上不安全的系统组件和设备上执行敏感的基于软件的交易。因此标准的加密模型,即假设加密在可信环境执行,只要求保护加密密钥的情况不再适用。
此外,白盒加密是能够在白盒环境下抵御攻击的一种特殊的加密方法。一般白盒加密产品为对称加密,例如AES白盒,整个AES的执行过程由查找表和矩阵乘法完成。白盒攻击环境假设:1、攻击者拥有全部特权,对算法的实现有完全的访问权限;2、可以观察到动态执行(使用实例化的加密密钥);3、内部算法细节完全可见,且可随意更改。
目前,HMAC中的密钥同样会在白盒环境中受到攻击,并且HMAC白盒技术由于需要将加密和解密的算法固化到表格中,依然需要使用查找表获取白盒密钥,这种存储一系列表的方式必然增加空间开销,并且在用户登录等需要身份认证的应用环境下,例如通过HMAC消息认证码认证用户信息,需要传入原始密钥,但是在传输过程中原始密钥容易受到攻击,因此,如何提高密钥的安全性,成为了亟待解决的问题。
基于此,本申请提出了一种通信的认证方法、服务器、客户端、电子设备及存储介质,当接收到客户端发送登录请求时,随机生成验证字符串返回至客户端;根据客户端返回的用户的身份认证信息,在数据库中确定对应的加密密钥,其中,所述加密密钥是基于原始密钥经过第一哈希运算生成的密钥;根据所述验证字符串以及所述加密密钥,通过第二哈希运算确定出消息认证码;将所述身份认证信息中的身份认证码以及所述消息认证码进行匹配,若匹配成功,则认证成功,返回带有允许登录信息的认证信息至所述客户端。采用本申请提供的技术方案能够将原始密钥转换成加密密钥,通过加密密钥生成消息认证码确定用户的身份认证信息,提高了原始密钥的安全性。
为便于对本申请进行理解,下面结合具体实施例对本申请提供的技术方案进行详细说明。
请参阅图1,图1为本申请实施例所提供的一种通信的认证方法的流程图。如图1中所示,所述认证方法,应用于服务器,包括:
S101、当接收到客户端发送登录请求时,随机生成验证字符串返回至客户端;
需要说明的是,步骤S101是用户进行登录的过程,在登录之前的步骤,也就是注册过程包括以下几个步骤:
(1)、当接收到客户端发送注册请求时,若满足注册条件,则发送允许注册的信息返回至所述客户端;
该步骤中,用户在客户端向服务器发送注册请求,服务器接收到注册请求后,判断该用户是否满足注册条件,若满足,则发送允许注册的信息给客户端,若不满足,则发送拒绝注册的信息给客户端。
示例性的,服务器接收到注册请求后,根据该用户的账号名判断数据库中是否存在该账号名,若不存在,则满足注册条件,发送允许注册的信息给客户端,例如,发送合格的信息给客户端,若存在该账号名,则不满足注册条件,发送拒绝注册的信息给客户端,例如,发送账号名已存在的信息给客户端。
(2)、接收所述客户端返回的用户的账号名以及加密密钥,将所述用户的账号名与所述加密密钥对应地保存在数据库中。
该步骤中,在服务器发送允许注册的信息至客户端后,等待客户端的响应,接收客户端返回的用户的账号名以及加密密钥,将用户的账号名与加密密钥对应地关联存储在数据库中,其中,加密密钥是客户端基于原始密钥经过第一哈希运算生成的密钥。
这里,上述注册步骤完成之后,进入步骤S101的登录过程,在步骤S101中用户在客户端向服务器发送登录请求,服务器接收到登录请求后,随机生成一个验证字符串发送给客户端,并保存该验证字符串,其中,验证字符串可以是时间戳。
示例性的,当用户进入登录页面,服务器接收到用户发送的登录请求后,随机生成一个验证字符串m,将m发送给客户端,并将m保存至数据库中,m可以是时间戳,时间戳到分钟。
S102、根据客户端返回的用户的身份认证信息,在数据库中确定对应的加密密钥,其中,所述加密密钥是基于原始密钥经过第一哈希运算生成的密钥;
该步骤中,用户的身份认证信息包括身份认证码以及账号名,在服务器发送随机验证字符串之后,等待客户端的响应信息,当服务器接收到客户端返回的用户的身份认证信息之后,服务器根据身份认证信息中的账号名在数据库中查找该账号名所对应的加密密钥,该加密密钥是该用户在注册时保存的加密密钥,是基于原始密钥经过第一哈希运算生成的密钥。
这里,原始密钥是用户注册时在密码输入框填写的密码或者后期更改的密码,用于登录时在密码输入框填写的密码;第一哈希运算是指现有技术中标准的哈希运算,例如SM3算法等。
S103、根据所述验证字符串以及所述加密密钥,通过第二哈希运算确定出消息认证码;
该步骤中,服务器根据步骤S101保存的验证字符串以及步骤S102在数据库中确定的该用户的加密密钥,通过第二哈希运算确定出消息认证码,这里,第二哈希运算是本方案根据第一哈希运算进行改进的白盒算法,具体通过以下步骤确定消息认证码,包括:
(1)、将所述加密密钥按长度拆分成第一密钥与第二密钥;
该步骤中,通过步骤S102在数据库中确定的该用户的加密密钥,将所述加密密钥按长度拆分成第一密钥与第二密钥,第一密钥与第二密钥的长度相等。
示例性的,加密密钥的长度为512bit,则按256bit将加密密钥拆分成第一密钥与第二密钥,第一密钥与第二密钥的长度均为256bit。
(2)、将所述第二密钥与所述验证字符串拼接后通过第二哈希运算获得第一字符串;
该步骤中,将上述步骤(1)中确定的第二密钥与步骤S101保存的验证字符串进行拼接,将拼接之后的字符串通过第二哈希运算获得第一字符串,获取第一字符串的公式如下:
L=H′(wk2||m);
其中,wk2表示第二密钥,m表示验证字符串,“||”表示拼接运算,H′是第二哈希运算,L是经过第二哈希运算获得的第一字符串;其中,第二哈希运算是本方案对第一哈希运算的改进。
需要说明的是,将第二密钥与验证字符串拼接后进行第二哈希运算获得第一字符串包括以下几个步骤:
A、获取所述第二密钥与所述验证字符串拼接后的拼接字符串,对所述拼接字符串进行填充,填充后的拼接字符串是长度为预设阈值倍数的拼接消息;
该步骤中,将第二密钥与验证字符串进行拼接,将拼接后的字符串确定为拼接字符串,并对拼接字符串进行填充,填充至长度为预设阈值倍数,将填充后的拼接字符串确定为拼接消息。
示例性的,第二哈希运算为SM3算法的改进,预设阈值为512bit,将长度为l(l<264)bit的拼接字符串进行填充,首先将比特“1”添加到拼接字符串的末尾,再添加b个“0”,b是满足l+1+b≡448 mod 512的最小的非负整数,然后再添加一个64bit的字符串,该64bit的字符串是长度l的二进制表示,填充后的拼接字符串即拼接消息的长度为512bit的倍数。
B、对所述拼接消息按预设阈值进行分组得到第一消息组;
该步骤中,对上述步骤A中获得的拼接消息按预设阈值进行分组得到第一消息组;示例性的,预设阈值为512bit,对拼接消息按照512bit进行分组,得到的第一消息组如下:
M=BB=BB0…BBn-1
其中,M是第一消息组,n是第一消息组的分组个数;例如,预设阈值为512bit,n=(l+b+65)÷512,当n=2时,M为两组,一组是BB0,另一组是BB1
C、将预设的初始值以及所述第一消息组进行压缩处理,确定所述第一字符串。
该步骤中,将预设的初始值以及第一消息组输入压缩函数里进行迭代压缩处理,获得的压缩结果为第一字符串。
(3)、将所述第一密钥与所述第一字符串拼接后进行第二哈希运算获得消息认证码。
该步骤中,将上述步骤(1)中确定的第一密钥与上述步骤(2)中获得的第一字符串拼接后进行第二哈希运算获得消息认证码,具体公式如下:
WHMAC(wk,m)=H′(wk1||L);
WHMAC(wk,m)=H′[wk1||H′(wk2||m)];
其中,wk表示加密密钥,即白盒环境中的白盒密钥,wk1表示第一密钥,L表示第一字符串,WHMAC表示经过第二哈希运算H′获得的消息认证码,其中,消息认证码WHMAC(wk,m)中括号里的加密密钥wk以及验证字符串m是第二哈希运算H′的输入参数;这里,由于加密密钥wk是原始密钥k经过第一哈希运算生成的密钥,根据第一哈希算法和第二哈希算法的单向性,所以在进行消息认证码的过程中,即使获取到传输的加密密钥wk,也无法逆推得到原始密钥k,提高了原始密钥k的安全性。
需要说明的是,将第一密钥与第一字符串拼接后进行第二哈希运算获得消息认证码包括以下几个步骤:
A、获取所述第一密钥与所述第一字符串拼接后的字符串,对所述字符串进行填充,填充后的字符串是长度为预设阈值倍数的目标消息;
该步骤中,将第一密钥与第一字符串进行拼接,对拼接后的字符串进行填充,填充至长度为预设阈值倍数,将填充后的字符串确定为目标消息;示例性的,第二哈希运算为SM3算法的改进,预设阈值为512bit,将长度为l(l<264)bit的字符串进行填充,首先将比特“1”添加到字符串的末尾,再添加b个“0”,b是满足l+1+b≡448 mod 512的最小的非负整数,然后再添加一个64bit的字符串,该64bit的字符串是长度l的二进制表示,填充后的字符串即目标消息的长度为512bit的倍数。例如:第一密钥与第一字符串拼接后的字符串是011000010110001001100011,该字符串的长度l=24,经填充得到的目标消息为:
B、对所述目标消息按预设阈值进行分组得到消息组;
该步骤中,对上述步骤A得到的目标消息按照预设阈值进行分组得到消息组如下:
M=BB=BB0…BBn-1
其中,M是消息组,n是消息组的分组个数;示例性的,预设阈值为512bit,对目标消息按照512bit进行分组,n=(l+b+65)÷512,当n=2时,M为两组,一组是BB0,长度为256bit,另一组是BB1,长度为256bit。
C、将预设的初始值以及所述消息组进行压缩处理,确定所述消息认证码。
该步骤中,对上述步骤B获取的消息组与预设的初始值进行迭代压缩处理,确定消息认证码,其中,通过以下步骤确定预设的初始值:
c1、将所述原始密钥进行填充后,得到填充密钥;
该步骤中,原始密钥是用户注册时在密码输入框填写的密码或者后期更改的密码,用于登录时在密码输入框填写的密码;使用0在原始密钥的右边进行填充,直到原始密钥的长度为预设阈值,将填充后的原始密钥确定为填充密钥;其中,预设阈值为第一哈希运算输入分组的宽度;示例性的,使用SM3算法,预设阈值为512bit,使用0在原始密钥k的右边进行填充,直到原始密钥k的长度为512bit,将填充后的原始密钥k确定为填充密钥k′。
c2、将所述填充密钥与第一预设字符串异或得到第二字符串;
该步骤中,将上述步骤c1获取的填充密钥与第一预设字符串进行异或运算得到第二字符串,其中,第一预设字符串为一个字节重复(预设阈值/8)次的字符串;示例性的,预设阈值为512bit,第一预设字符串是01011100这一个字节重复64次后长度为512bit的字符串,将其与填充密钥k′进行异或得到第二字符串。
c3、将所述第二密钥拼接在所述第二字符串后,并将拼接后的字符串进行第一哈希运算获得初始值。
该步骤中,将第二密钥拼接在上述步骤c2获得的第二字符串后,并将拼接后的字符串进行第一哈希运算获得初始值,其中,第二密钥是填充密钥与第二预设字符串异或后进行第一哈希运算所获得的,第一哈希运算为标准哈希算法,第二预设字符串一个字节重复(预设阈值/8)次的字符串,具体获得初始值的公式如下:
其中,E是预设的初始值,是H的迭代压缩结果,H是第一哈希运算,即标准哈希算法,k′是填充密钥,opad是第一预设字符串,wk2是第二密钥,是第二字符串,ipad是第二预设字符串,/>是异或运算符;示例性的,第一哈希运算为SM3算法,预设阈值为512bit,第二预设字符串ipad是00110110这一个字节重复64次后长度为512bit的字符串,将k′与ipad异或后进行SM3哈希运算并将迭代压缩的结果拼接在第二字符串/>的后面,通过SM3算法获得结果为256bit的字符串,将该字符串确定为预设的初始值E。
需要说明的是,将上述步骤c3所获得的预设的初始值以及上述步骤B所获得的消息组进行迭代压缩处理,确定消息认证码,迭代压缩公式如下:
其中,CF为压缩函数,BBi为消息组,n为消息组的分组个数,H′0是预设的初始值,H′是第二哈希运算,H′n是对消息组进行迭代压缩的结果,即,消息认证码;示例性的,消息组的分组宽度为512bit时,n=(l+b+65)÷512,假设n=2,经过两次迭代压缩后所得结果H′2为消息认证码,该消息认证码的长度为256bit。
S104、将所述身份认证信息中的身份认证码以及所述消息认证码进行匹配,若匹配成功,则认证成功,返回带有允许登录信息的认证信息至所述客户端。
该步骤中,通过步骤S103获得的消息认证码与客户端返回的身份认证信息中的身份认证码进行匹配,若消息认证码等于身份认证码,则匹配成功,将认证成功的信息,即带有允许登录信息的认证信息返回至客户端。
本申请实施例提供的一种通信的认证方法、服务器、客户端、电子设备及存储介质,当接收到客户端发送登录请求时,随机生成验证字符串返回至客户端;根据客户端返回的用户的身份认证信息,在数据库中确定对应的加密密钥,其中,所述加密密钥是基于原始密钥经过第一哈希运算生成的密钥;根据所述验证字符串以及所述加密密钥,通过第二哈希运算确定出消息认证码;将所述身份认证信息中的身份认证码以及所述消息认证码进行匹配,若匹配成功,则认证成功,返回带有允许登录信息的认证信息至所述客户端。
这样,采用本申请提供的技术方案能够将原始密钥转换成加密密钥,通过加密密钥生成消息认证码确定用户的身份认证信息,提高了原始密钥的安全性。
基于同一申请构思,本申请实施例中还提供了另一种通信的认证方法,应用于客户端,请参阅图2,图2为本申请实施例所提供的另一种通信的认证方法的流程图。如图2中所示,所述认证方法,应用于客户端,包括:
S201、在向服务器发送登录请求后,接收所述服务器返回的验证字符串;
需要说明的是,步骤S201是用户进行登录的过程,在登录之前的步骤,也就是注册过程包括以下几个步骤:
(1)、在向所述服务器发送注册请求后,接收所述服务器返回的允许注册的信息;
(2)、接收所述允许注册的信息后,根据用户输入的原始密钥通过第一哈希运算获得加密密钥;
该步骤中,通过上述步骤(1)接收到服务端返回的允许注册的信息后,根据用户在密码输入框输入的原始密钥通过第一哈希运算获得加密密钥的步骤包括:
A、检测所述原始密钥的密码长度是否小于预设阈值;
该步骤中,预设阈值为第一哈希运算输入分组的宽度,示例性的,第一哈希运算为SM3算法,预设阈值为512bit,判断用户在密码输入框输入的原始密钥的长度是否小于512bit。
B、若所述密码长度小于预设阈值,将所述原始密钥的长度填充预设阈值,得到填充密钥;
该步骤中,若原始密钥的长度小于预设阈值,则在原始密钥的右边填充0,直到填充至原始密钥的长度达到预设阈值,将填充后的原始密钥确定为填充密钥;示例性的,若原始密钥k的长度小于预设阈值512bit,则在原始密钥k的右边填充0,直到填充至原始密钥k的长度达到预设阈值512bit,将填充后的原始密钥k确定为填充密钥k′,此时k′的长度为512bit。
C、将所述填充密钥与第一预设字符串异或后进行第一哈希运算,得到第一密钥;
该步骤中,将上述步骤B获取的填充密钥与第一预设字符串进行异或运算,其中,第一预设字符串为一个字节重复(预设阈值/8)次的字符串,第一哈希运算为标准哈希运算,第一密钥计算公式如下:
其中,k′是填充密钥,opad是第一预设字符串,是异或运算符,H是第一哈希运算,wk1是第一密钥;示例性的,第一哈希运算为SM3算法,预设阈值为512bit,第一预设字符串opad是01011100这一个字节重复64次后长度为512bit的字符串,将其与填充密钥k′异或后进行第一哈希运算,得到第一密钥wk1,该第一密钥wk1的长度为256bit。
D、将所述填充密钥与第二预设字符串异或后进行第一哈希运算,得到第二密钥;
该步骤中,将上述步骤B获取的填充密钥与第二预设字符串进行异或运算,其中,第二预设字符串为一个字节重复(预设阈值/8)次的字符串,第一哈希运算为标准哈希运算,第二密钥计算公式如下:
其中,k′是填充密钥,ipad是第二预设字符串,是异或运算符,H是第一哈希运算,wk2是第二密钥;示例性的,第一哈希运算为SM3算法,预设阈值为512bit,第二预设字符串ipad是00110110这一个字节重复64次后长度为512bit的字符串,将其与填充密钥k′异或后进行第一哈希运算,得到第一密钥wk2,该第一密钥wk2的长度为256bit。
E、将所述第一密钥与第二密钥进行拼接得到加密密钥。
该步骤中,将上述步骤C获取的第一密钥拼接在上述步骤D获取的第二密钥前面,得到加密密钥,具体公式如下:
wk=wk1||wk2
其中,wk1是第一密钥,wk2是第二密钥,“||”是拼接运算符,wk是加密密钥;示例性的,wk1与wk2的长度相等,均为256bit的字符串,拼接后的加密密钥wk的长度为512bit的字符串;这里,由于加密密钥wk是原始密钥k经过第一哈希运算生成的密钥,根据第一哈希算法的单向性,所以在进行消息认证码的过程中,即使获取到传输的加密密钥wk,也无法逆推得到原始密钥k,提高了原始密钥k的安全性。
(3)、将用户的账号名和所述加密密钥发送给服务器。
该步骤中,将用户注册的账号名以及上述步骤E确定的加密密钥一起发送给服务器。
S202、根据加密密钥以及所述验证字符串,确定身份认证码;
该步骤中,将步骤S201接收到的验证字符串与上述步骤E确定的加密密钥进行第二哈希运算确定身份认证码,具体包括以下几个步骤:
(1)、将所述加密密钥按长度拆分成第一密钥与第二密钥;
(2)、将所述第二密钥与所述验证字符串拼接后通过第二哈希运算获得第一字符串;
需要说明的是,将第二密钥与验证字符串拼接后进行第二哈希运算获得第一字符串包括以下步骤:
A、获取所述第二密钥与所述验证字符串拼接后的拼接字符串,对所述拼接字符串进行填充,填充后的拼接字符串是长度为预设阈值倍数的拼接消息;
B、对所述拼接消息按预设阈值进行分组得到第一消息组;
C、将预设的初始值以及所述第一消息组进行压缩处理,确定所述第一字符串。
(3)、将所述第一密钥与所述第一字符串拼接后进行第二哈希运算获得身份认证码。
需要说明的是,将第一密钥与第一字符串拼接后进行第二哈希运算获得身份认证码包括以下步骤:
A、获取所述第一密钥与所述第一字符串拼接后的字符串,对所述字符串进行填充,填充后的字符串是长度为预设阈值倍数的目标消息;
B、对所述目标消息按预设阈值进行分组得到消息组;
C、将预设的初始值以及所述消息组进行压缩处理,确定所述身份认证码。
该步骤中,对上述步骤B获取的消息组与预设的初始值进行迭代压缩处理,确定身份认证码,其中,通过以下步骤获得预设的初始值:
c1、将所述原始密钥进行填充后,得到填充密钥;
c2、将所述填充密钥与第一预设字符串异或得到第二字符串;
c3、将所述第二密钥拼接在所述第二字符串后,并将拼接后的字符串进行第一哈希运算获得初始值。
S203、根据用户的身份认证码以及账号名生成身份认证信息,并将所述身份认证信息发送给所述服务器;
该步骤中,将上述步骤C确定的身份认证码以及登录的账号名一起打包生成身份认证信息,将身份认证信息发送给服务器。
S204、若所述服务器反馈的认证信息指示允许登录,确定认证成功。
该步骤中,通过步骤S203将身份认证信息发送给服务器后,等待服务器的反馈,若接收到服务器返回的认证成功的信息,即允许登录的信息,则认证成功,用户可以进行登录。
本申请实施例提供的一种通信的认证方法、服务器、客户端、电子设备及存储介质,在向服务器发送登录请求后,接收所述服务器返回的验证字符串;根据加密密钥以及所述验证字符串,确定身份认证码;根据用户的身份认证码以及账号名生成身份认证信息,并将所述身份认证信息发送给所述服务器;若所述服务器反馈的认证信息指示允许登录,确定认证成功。
这样,采用本申请提供的技术方案能够将原始密钥转换成加密密钥,通过加密密钥生成身份认证码用于认证用户的身份认证信息,提高了原始密钥的安全性。
基于同一申请构思,本申请实施例中还提供了一种服务器,由于本申请实施例中的服务器解决问题的原理与本申请上述实施例应用于服务器的一种通信的认证方法相似,因此服务器的实施可以参见方法的实施,重复之处不再赘述。
请参阅图3、图4,图3为本申请实施例所提供的一种服务器的结构示意图之一,图4为本申请实施例所提供的一种服务器的结构示意图之二,如图3、图4中所示,所述服务器310,包括:
第一收发模块311,用于当接收到客户端发送登录请求时,随机生成验证字符串返回至客户端;
映射模块312,用于根据客户端返回的用户的身份认证信息,在数据库中确定对应的加密密钥,其中,所述加密密钥是基于原始密钥经过第一哈希运算生成的密钥;
第一处理模块313,用于根据所述验证字符串以及所述加密密钥,通过第二哈希运算确定出消息认证码;
认证模块314,用于将所述身份认证信息中的身份认证码以及所述消息认证码进行匹配,若匹配成功,则认证成功,返回带有允许登录信息的认证信息至所述客户端。
可选的,所述服务器310还包括第一注册模块315,所述第一注册模块315具体用于:
当接收到客户端发送注册请求时,若满足注册条件,则发送允许注册的信息返回至所述客户端;
接收所述客户端返回的用户的账号名以及加密密钥,将所述用户的账号名与所述加密密钥对应地保存在数据库中。
可选的,所述第一处理模块313在用于确定消息认证码时,所述第一处理模块313具体用于:
将所述加密密钥按长度拆分成第一密钥与第二密钥;
将所述第二密钥与所述验证字符串拼接后通过第二哈希运算获得第一字符串;
将所述第一密钥与所述第一字符串拼接后进行第二哈希运算获得消息认证码。
可选的,所述第一处理模块313在用于将所述第一密钥与所述第一字符串拼接后进行第二哈希运算获得消息认证码时,所述第一处理模块313具体用于:
获取所述第一密钥与所述第一字符串拼接后的字符串,对所述字符串进行填充,填充后的字符串是长度为预设阈值倍数的目标消息;
对所述目标消息按预设阈值进行分组得到消息组;
将预设的初始值以及所述消息组进行压缩处理,确定所述消息认证码。
可选的,所述第一处理模块313在确定预设的初始值时,所述第一处理模块313具体用于:
将所述原始密钥进行填充后,得到填充密钥;
将所述填充密钥与第一预设字符串异或得到第二字符串;
将所述第二密钥拼接在所述第二字符串后,并将拼接后的字符串进行第一哈希运算获得初始值。
本申请实施例提供的一种通信的服务器,当接收到客户端发送登录请求时,随机生成验证字符串返回至客户端;根据客户端返回的用户的身份认证信息,在数据库中确定对应的加密密钥,其中,所述加密密钥是基于原始密钥经过第一哈希运算生成的密钥;根据所述验证字符串以及所述加密密钥,通过第二哈希运算确定出消息认证码;将所述身份认证信息中的身份认证码以及所述消息认证码进行匹配,若匹配成功,则认证成功,返回带有允许登录信息的认证信息至所述客户端。
这样,采用本申请提供的技术方案能够将原始密钥转换成加密密钥,通过加密密钥生成消息认证码确定用户的身份认证信息,提高了原始密钥的安全性。
请参阅图5、图6,图5为本申请实施例所提供的一种客户端的结构示意图之一,图6为本申请实施例所提供的一种客户端的结构示意图之二,如图5、图6中所示,所述客户端510,包括:
第二收发模块511,用于在向服务器发送登录请求后,接收所述服务器返回的验证字符串;
第二处理模块512,用于根据加密密钥以及所述验证字符串,确定身份认证码;
发送模块513,用于根据用户的身份认证码以及账号名生成身份认证信息,并将所述身份认证信息发送给所述服务器;
确定模块514,用于若所述服务器反馈的认证信息指示允许登录,确定认证成功。
可选的,所述客户端510还包括第二注册模块515,所述第二注册模块515具体用于:
在向所述服务器发送注册请求后,接收所述服务器返回的允许注册的信息;
接收所述允许注册的信息后,根据用户输入的原始密钥通过第一哈希运算获得加密密钥;
将用户的账号名和所述加密密钥发送给服务器。
可选的,所述第二注册模块515在用于获得加密密钥时,所述第二注册模块515具体用于:
检测所述原始密钥的密码长度是否小于预设阈值;
若所述密码长度小于预设阈值,将所述原始密钥的长度填充预设阈值,得到填充密钥;
将所述填充密钥与第一预设字符串异或后进行第一哈希运算,得到第一密钥;
将所述填充密钥与第二预设字符串异或后进行第一哈希运算,得到第二密钥;
将所述第一密钥与第二密钥进行拼接得到加密密钥。
可选的,所述第二处理模块512在用于确定身份认证码时,所述第二处理模块512具体用于:
将所述加密密钥按长度拆分成第一密钥与第二密钥;
将所述第二密钥与所述验证字符串拼接后通过第二哈希运算获得第一字符串;
将所述第一密钥与所述第一字符串拼接后进行第二哈希运算获得身份认证码。
可选的,所述第二处理模块512在用于将所述第一密钥与所述第一字符串拼接后进行第二哈希运算获得身份认证码时,所述第二处理模块512具体用于:
获取所述第一密钥与所述第一字符串拼接后的字符串,对所述字符串进行填充,填充后的字符串是长度为预设阈值倍数的目标消息;
对所述目标消息按预设阈值进行分组得到消息组;
将预设的初始值以及所述消息组进行压缩处理,确定所述身份认证码。
可选的,所述第二处理模块512在用于确定预设的初始值时,所述第二处理模块512具体用于:
将所述原始密钥进行填充后,得到填充密钥;
将所述填充密钥与第一预设字符串异或得到第二字符串;
将所述第二密钥拼接在所述第二字符串后,并将拼接后的字符串进行第一哈希运算获得初始值。
本申请实施例提供的一种通信的客户端,在向服务器发送登录请求后,接收所述服务器返回的验证字符串;根据加密密钥以及所述验证字符串,确定身份认证码;根据用户的身份认证码以及账号名生成身份认证信息,并将所述身份认证信息发送给所述服务器;若所述服务器反馈的认证信息指示允许登录,确定认证成功。
这样,采用本申请提供的技术方案能够将原始密钥转换成加密密钥,通过加密密钥生成身份认证码用于认证用户的身份认证信息,提高了原始密钥的安全性。
请参阅图7,图7为本申请实施例所提供的一种电子设备的结构示意图。如图7中所示,所述电子设备700包括处理器710、存储器720和总线730。
所述存储器720存储有所述处理器710可执行的机器可读指令,当电子设备700运行时,所述处理器710与所述存储器720之间通过总线730通信,所述机器可读指令被所述处理器710执行时,可以执行如上述图1以及图2所示方法实施例中的通信的认证方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时可以执行如上述图1以及图2所示方法实施例中的通信的认证方法的步骤,具体实现方式可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。

Claims (11)

1.一种通信的认证方法,其特征在于,应用于服务器,所述认证方法包括:
当接收到客户端发送登录请求时,随机生成验证字符串返回至客户端;
根据客户端返回的用户的身份认证信息,在数据库中确定对应的加密密钥,其中,所述加密密钥是基于原始密钥经过第一哈希运算生成的密钥;
根据所述验证字符串以及所述加密密钥,通过第二哈希运算确定出消息认证码;
将所述身份认证信息中的身份认证码以及所述消息认证码进行匹配,若匹配成功,则认证成功,返回带有允许登录信息的认证信息至所述客户端;
通过以下步骤确定消息认证码,包括:
将所述加密密钥按长度拆分成第一密钥与第二密钥;
将所述第二密钥与所述验证字符串拼接后通过第二哈希运算获得第一字符串;
将所述第一密钥与所述第一字符串拼接后进行第二哈希运算获得消息认证码。
2.根据权利要求1所述的认证方法,其特征在于,所述认证方法还包括:
当接收到客户端发送注册请求时,若满足注册条件,则发送允许注册的信息返回至所述客户端;
接收所述客户端返回的用户的账号名以及加密密钥,将所述用户的账号名与所述加密密钥对应地保存在数据库中。
3.根据权利要求1所述的认证方法,其特征在于,所述将所述第一密钥与所述第一字符串拼接后进行第二哈希运算获得消息认证码,包括:
获取所述第一密钥与所述第一字符串拼接后的字符串,对所述字符串进行填充,填充后的字符串是长度为预设阈值倍数的目标消息;
对所述目标消息按预设阈值进行分组得到消息组;
将预设的初始值以及所述消息组进行压缩处理,确定所述消息认证码。
4.根据权利要求3所述的认证方法,其特征在于,通过以下步骤获得所述预设的初始值,包括:
将所述原始密钥进行填充后,得到填充密钥;
将所述填充密钥与第一预设字符串异或得到第二字符串;
将所述第二密钥拼接在所述第二字符串后,并将拼接后的字符串进行第一哈希运算获得初始值。
5.一种通信的认证方法,其特征在于,应用于客户端,所述认证方法包括:
在向服务器发送登录请求后,接收所述服务器返回的验证字符串;
根据加密密钥以及所述验证字符串,确定身份认证码;
根据用户的身份认证码以及账号名生成身份认证信息,并将所述身份认证信息发送给所述服务器;
若所述服务器反馈的认证信息指示允许登录,确定认证成功;
通过以下步骤确定身份认证码,包括:
将所述加密密钥按长度拆分成第一密钥与第二密钥;
将所述第二密钥与所述验证字符串拼接后通过第二哈希运算获得第一字符串;
将所述第一密钥与所述第一字符串拼接后进行第二哈希运算获得身份认证码。
6.根据权利要求5所述的认证方法,其特征在于,所述认证方法还包括:
在向所述服务器发送注册请求后,接收所述服务器返回的允许注册的信息;
接收所述允许注册的信息后,根据用户输入的原始密钥通过第一哈希运算获得加密密钥;
将用户的账号名和所述加密密钥发送给服务器。
7.根据权利要求6所述的认证方法,其特征在于,通过以下步骤确定加密密钥,包括:
检测所述原始密钥的密码长度是否小于预设阈值;
若所述密码长度小于预设阈值,将所述原始密钥的长度填充预设阈值,得到填充密钥;
将所述填充密钥与第一预设字符串异或后进行第一哈希运算,得到第一密钥;
将所述填充密钥与第二预设字符串异或后进行第一哈希运算,得到第二密钥;
将所述第一密钥与第二密钥进行拼接得到加密密钥。
8.一种服务器,其特征在于,所述服务器包括:
第一收发模块,用于当接收到客户端发送登录请求时,随机生成验证字符串返回至客户端;
映射模块,用于根据客户端返回的用户的身份认证信息,在数据库中确定对应的加密密钥,其中,所述加密密钥是基于原始密钥经过第一哈希运算生成的密钥;
第一处理模块,用于根据所述验证字符串以及所述加密密钥,通过第二哈希运算确定出消息认证码;
认证模块,用于将所述身份认证信息中的身份认证码以及所述消息认证码进行匹配,若匹配成功,则认证成功,返回带有允许登录信息的认证信息至所述客户端;
所述第一处理模块在用于确定消息认证码时,所述第一处理模块具体用于:
将所述加密密钥按长度拆分成第一密钥与第二密钥;
将所述第二密钥与所述验证字符串拼接后通过第二哈希运算获得第一字符串;
将所述第一密钥与所述第一字符串拼接后进行第二哈希运算获得消息认证码。
9.一种客户端,其特征在于,所述客户端包括:
第二收发模块,用于在向服务器发送登录请求后,接收所述服务器返回的验证字符串;
第二处理模块,用于根据加密密钥以及所述验证字符串,确定身份认证码;
发送模块,用于根据用户的身份认证码以及账号名生成身份认证信息,并将所述身份认证信息发送给所述服务器;
确定模块,用于若所述服务器反馈的认证信息指示允许登录,确定认证成功;
所述第二处理模块在用于确定身份认证码时,所述第二处理模块具体用于:
将所述加密密钥按长度拆分成第一密钥与第二密钥;
将所述第二密钥与所述验证字符串拼接后通过第二哈希运算获得第一字符串;
将所述第一密钥与所述第一字符串拼接后进行第二哈希运算获得身份认证码。
10.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过所述总线进行通信,所述机器可读指令被所述处理器运行时执行如权利要求1至4任一所述的通信的认证方法,和/或,如权利要求5至7任一所述的通信的认证方法的步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至4任一所述的通信的认证方法,和/或,如权利要求5至7任一所述的通信的认证方法的步骤。
CN202111312503.9A 2021-11-08 2021-11-08 通信的认证方法、服务器、客户端、电子设备及存储介质 Active CN114124480B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111312503.9A CN114124480B (zh) 2021-11-08 2021-11-08 通信的认证方法、服务器、客户端、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111312503.9A CN114124480B (zh) 2021-11-08 2021-11-08 通信的认证方法、服务器、客户端、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN114124480A CN114124480A (zh) 2022-03-01
CN114124480B true CN114124480B (zh) 2023-12-05

Family

ID=80381082

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111312503.9A Active CN114124480B (zh) 2021-11-08 2021-11-08 通信的认证方法、服务器、客户端、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN114124480B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114499859A (zh) * 2022-03-22 2022-05-13 深圳壹账通智能科技有限公司 密码验证方法、装置、设备及存储介质
CN114726606B (zh) * 2022-03-31 2023-03-24 北京九州恒盛电力科技有限公司 一种用户认证方法、客户端、网关及认证服务器
CN114697117B (zh) * 2022-04-07 2023-11-24 中国工商银行股份有限公司 基于定位信息的验证方法、装置、密码器及系统
CN114978542B (zh) * 2022-05-20 2023-05-26 深圳大学 面向全生命周期的物联网设备身份认证方法、系统及存储介质
CN115174236A (zh) * 2022-07-08 2022-10-11 上海百家云科技有限公司 一种鉴权认证方法、装置、电子设备及存储介质
CN115795413B (zh) * 2023-02-07 2023-05-16 山东省计算中心(国家超级计算济南中心) 基于国密算法的软件认证保护方法及系统
CN116980110B (zh) * 2023-09-21 2024-01-30 深圳市纽创信安科技开发有限公司 一种分组密码运算方法、装置、系统、设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103825733A (zh) * 2014-02-28 2014-05-28 华为技术有限公司 基于组合公钥密码体制的通信方法、装置及系统
CN107454035A (zh) * 2016-05-30 2017-12-08 宇龙计算机通信科技(深圳)有限公司 一种身份认证的方法及装置
CN110247758A (zh) * 2019-05-30 2019-09-17 世纪龙信息网络有限责任公司 密码管理的方法、装置及密码管理器
CN111656733A (zh) * 2017-12-28 2020-09-11 皇家飞利浦有限公司 密钥消息验证码的白盒计算
CN112019327A (zh) * 2020-08-26 2020-12-01 成都卫士通信息产业股份有限公司 一种白盒实现方法、装置、电子设备及计算机存储介质
CN112307488A (zh) * 2019-07-31 2021-02-02 华为技术有限公司 一种认证凭据保护方法和系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103825733A (zh) * 2014-02-28 2014-05-28 华为技术有限公司 基于组合公钥密码体制的通信方法、装置及系统
CN107454035A (zh) * 2016-05-30 2017-12-08 宇龙计算机通信科技(深圳)有限公司 一种身份认证的方法及装置
CN111656733A (zh) * 2017-12-28 2020-09-11 皇家飞利浦有限公司 密钥消息验证码的白盒计算
CN110247758A (zh) * 2019-05-30 2019-09-17 世纪龙信息网络有限责任公司 密码管理的方法、装置及密码管理器
CN112307488A (zh) * 2019-07-31 2021-02-02 华为技术有限公司 一种认证凭据保护方法和系统
CN112019327A (zh) * 2020-08-26 2020-12-01 成都卫士通信息产业股份有限公司 一种白盒实现方法、装置、电子设备及计算机存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
H. Krawczyk ; IBM ; M. Bellare ; UCSD ; R. Canetti ; IBM ; .HMAC: Keyed-Hashing for Message Authentication.IETF rfc2104.1997,全文. *

Also Published As

Publication number Publication date
CN114124480A (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
CN114124480B (zh) 通信的认证方法、服务器、客户端、电子设备及存储介质
US8897450B2 (en) System, processing device, computer program and method, to transparently encrypt and store data objects such that owners of the data object and permitted viewers are able to view decrypted data objects after entering user selected passwords
Yuan et al. Public integrity auditing for dynamic data sharing with multiuser modification
Yang et al. Provable data possession of resource-constrained mobile devices in cloud computing
US10103888B2 (en) Method of performing keyed-hash message authentication code (HMAC) using multi-party computation without Boolean gates
US9531540B2 (en) Secure token-based signature schemes using look-up tables
CN109981285B (zh) 一种口令保护方法、口令校验方法及系统
WO2019216950A1 (en) Password based threshold token generation
JP5224481B2 (ja) パスワード認証方法
Chikouche et al. A privacy-preserving code-based authentication protocol for Internet of Things
CN110611670A (zh) 一种api请求的加密方法及装置
Mishra et al. An anonymous and secure biometric‐based enterprise digital rights management system for mobile environment
US9325499B1 (en) Message encryption and decryption utilizing low-entropy keys
CN113711564A (zh) 用于加密数据的计算机实现的方法和系统
US10122755B2 (en) Method and apparatus for detecting that an attacker has sent one or more messages to a receiver node
Gan et al. Efficient and secure auditing scheme for outsourced big data with dynamicity in cloud
CN114244508A (zh) 数据加密方法、装置、设备及存储介质
US8954728B1 (en) Generation of exfiltration-resilient cryptographic keys
Schwab et al. Entity authentication in a mobile-cloud environment
CN111859435B (zh) 一种数据安全处理方法及装置
Farash Cryptanalysis and improvement of ‘an improved authentication with key agreement scheme on elliptic curve cryptosystem for global mobility networks’
WO2018047120A1 (en) A system and method for data block modification detection and authentication codes
CN117155615A (zh) 数据加密传输方法、系统、电子设备及存储介质
Chen et al. Parsing ambiguities in authentication and key establishment protocols
Odelberg et al. Distributed cipher chaining for increased security in password storage

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