CN114500055A - 密码验证方法、装置及电子设备、存储介质 - Google Patents

密码验证方法、装置及电子设备、存储介质 Download PDF

Info

Publication number
CN114500055A
CN114500055A CN202210103506.XA CN202210103506A CN114500055A CN 114500055 A CN114500055 A CN 114500055A CN 202210103506 A CN202210103506 A CN 202210103506A CN 114500055 A CN114500055 A CN 114500055A
Authority
CN
China
Prior art keywords
algorithm
login
password
server
constant
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202210103506.XA
Other languages
English (en)
Other versions
CN114500055B (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.)
CCB Finetech Co Ltd
Original Assignee
CCB Finetech 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 CCB Finetech Co Ltd filed Critical CCB Finetech Co Ltd
Priority to CN202210103506.XA priority Critical patent/CN114500055B/zh
Publication of CN114500055A publication Critical patent/CN114500055A/zh
Application granted granted Critical
Publication of CN114500055B publication Critical patent/CN114500055B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • 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
    • H04L63/0435Network 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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

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

本申请提供一种密码验证方法、装置及电子设备、存储介质,属于信息安全技术。该方法应用于客户端,包括:响应密码登录操作,获取登录密码,并向服务器发送登录验证请求;接收服务器反馈的登录响应,登录响应携带服务器公钥、算法常数和验证算法,验证算法是服务器随机生成的;对登录密码进行散列处理后得到登录密码的散列值;基于DH算法,根据登录密码的散列值、服务器公钥和算法常数计算得到第一协商密钥;生成随机数,并根据验证算法对随机数进行处理得到处理结果;对第一协商密钥和处理结果进行对称算法处理,将得到的对称加密值发送至服务器;接收服务器发送的登录密码验证结果。本申请的方法可以提高客户端向服务器传输密码的安全性。

Description

密码验证方法、装置及电子设备、存储介质
技术领域
本申请涉及信息安全技术,尤其涉及一种密码验证方法、装置及电子设备、存储介质。
背景技术
随着信息技术的发展,人们对通信中的信息安全越来越重视,在信息传输中,如何防止重要信息泄露已经成为重点研究的课题。尤其是在密码安全中,密码的泄露尤其严重。
具体的,用户在注册个人密码或使用已注册的密码登陆验证时,用户使用的客户端都要将个人密码发送至服务器。在个人密码传输时,一般会直接传输密码明文,由服务器存储密码明文,或者传输密码的散列值(Hash),由服务器直接存储密码的散列值。明文或散列值都很容易被破解,如果不法分子拦截了信息传输,就会导致密码泄露。
因此,现有的用密码验证登录的方式在传输密码时都存在不安全的问题。如何提高客户端向服务器传输密码的安全性,依然是亟待解决的问题。
发明内容
本申请提供一种密码验证方法、装置及电子设备、存储介质,用以提高客户端向服务器传输密码的安全性。
一种密码验证方法,应用于客户端,包括:
响应密码登录操作,获取登录密码,并向服务器发送登录验证请求;
接收所述服务器反馈的登录响应,所述登录响应携带服务器公钥、算法常数和验证算法,所述验证算法是所述服务器随机生成的,所述算法常数包含常数P和常数G;
对所述登录密码进行散列处理后得到所述登录密码的散列值;
基于DH算法,根据所述登录密码的散列值、所述服务器公钥和所述算法常数计算得到第一协商密钥;
生成随机数,并根据所述验证算法对所述随机数进行处理得到处理结果;
对所述第一协商密钥和所述处理结果进行对称算法处理,将得到的对称加密值发送至所述服务器;
接收所述服务器发送的登录密码验证结果。
可选的,所述响应密码登录操作之前,还包括:
响应密码注册操作,获取注册密码;
对所述注册密码进行散列处理后得到所述注册密码的散列值;
获取存储的DH算法中的算法常数;
基于DH算法,根据所述注册密码的散列值、所述DH算法中的算法常数计算得到客户端公钥;
将所述客户端公钥、所述DH算法中的算法常数发送至所述服务器。
另一方面,本申请提供一种密码验证方法,应用于服务器,包括:
接收客户端发送的登录验证请求,向所述客户端反馈登录响应,所述登录响应携带服务器公钥、算法常数和验证算法,所述算法常数包含常数P和常数G;
接收所述客户端发送的对称加密值,解密所述对称加密值,得到待验证的验证算法;
当所述待验证的验证算法与所述登录响应中携带的验证算法不同时,确定登录密码验证失败;
当所述待验证的验证算法与所述登录响应中携带的验证算法相同时,确定登录密码验证成功;
向所述客户端发送登录密码验证结果,所述登陆密码验证结果包括登录密码验证失败或登录密码验证成功。
可选的,所述接收客户端发送的登录验证请求之前,还包括:
接收所述客户端发送的DH算法中的算法常数和基于注册密码生成的客户端公钥,所述算法常数包含常数P和常数G;
随机生成服务器私钥,对所述服务器私钥进行散列处理,得到所述服务器私钥的散列值;
基于DH算法,根据所述服务器私钥的散列值、所述常数P和所述常数G计算得到服务器公钥;
基于DH算法,根据所述客户端公钥、所述服务器私钥的散列值和所述算法常数计算得到所述第二协商密钥;
存储所述服务器公钥、所述第二协商密钥和所述常数算法。
另一方面,本申请提供一种密码验证装置,应用于客户端,包括:
获取模块,用于响应密码登录操作,获取登录密码,并向服务器发送登录验证请求;
通信模块,用于接收所述服务器反馈的登录响应,所述登录响应携带服务器公钥、算法常数和验证算法,所述验证算法是所述服务器随机生成的,所述算法常数包含常数P和常数G;
处理模块,用于对所述登录密码进行散列处理后得到所述登录密码的散列值;
所述处理模块还用于基于DH算法,根据所述登录密码的散列值、所述服务器公钥和所述算法常数计算得到第一协商密钥;
所述处理模块还用于生成随机数,并根据所述验证算法对所述随机数进行处理得到处理结果;
所述处理模块还用于对所述第一协商密钥和所述处理结果进行对称算法处理,将得到的对称加密值发送至所述服务器;
所述通信模块还用于接收所述服务器发送的登录密码验证结果。
另一方面,本申请提供一种密码验证装置,应用于服务器,包括:
通信模块,用于接收客户端发送的登录验证请求,向所述客户端反馈登录响应,所述登录响应携带服务器公钥、算法常数和验证算法;
处理模块,用于接收所述客户端发送的对称加密值,解密所述对称加密值,得到待验证的验证算法;
判断模块,用于当所述待验证的验证算法与所述登录响应中携带的验证算法不同时,确定登录密码验证失败;
所述判断模块还用于当所述待验证的验证算法与所述登录响应中携带的验证算法相同时,确定登录密码验证成功;
所述通信模块还用于向所述客户端发送登录密码验证结果,所述登陆密码验证结果包括登录密码验证失败或登录密码验证成功。
另一方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如第一方面所述的密码验证方法。
另一方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如第二方面所述的密码验证方法。
另一方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当所述指令被执行时,使得计算机执行如第一方面所述的密码验证方法。
另一方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当所述指令被执行时,使得计算机执行如第二方面所述的密码验证方法。
另一方面,本申请提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的密码验证方法。
另一方面,本申请提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如第二方面所述的密码验证方法。
综上,本申请实施例提供一种密码验证方法,在用户基于客户端用密码验证登录时,所述客户端对登录密码进行一系列得加密处理后发送至服务器,以防止信息泄露。所述加密处理包括对所述登录密码进行散列处理得到所述登录密码的散列值,基于DH算法对登录密码的散列值再进行处理得到第一协商密钥,基于对称算法再对第一协商密钥、基于随机值和验证算法的处理结果进行对称加密处理。而所述客户端发送给所述服务器的就只是对称加密值,不是登录密码,也就是说,密码完全没有传输,协商密钥也没有传输(只是将利用协商密钥得到的对称加密值进行了传输)。且就算所述对称加密值即便在被解密后得到所述客户端公钥,也无法逆运算DH算法得到所述登录密码。
更进一步的,本实施例引入了所述服务器随机生成的验证算法v,所述对称加密值是基于所述第一协商密钥、随机数和验证算法的处理结果生成的,如果不法分子拦截了所述对称加密值,也无法在不知道解密得到的验证算法是否正确的情况下反推计算得到所述第一协商密钥,更无法通过所述第一协商密钥反推(无法逆运算DH算法)计算得到所述登录密码。因此,进一步降低了所述注册密码泄露的风险。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本申请提供的密码验证方法的一种应用场景示意图;
图2为本申请一个实施例提供的密码验证方法的流程示意图;
图3为本申请一个实施例提供的密码注册中部分流程的示意图;
图4为本申请一个实施例提供的密码验证方法的流程示意图;
图5为本申请另一个实施例提供的另一种密码验证方法的示意图;
图6为本申请一个可选的实施例提供的密码验证方法中部分流程的示意图;
图7为本申请一个可选的实施例提供的密码验证方法中部分流程的示意图;
图8为本申请一个实施例提供的密码验证装置的示意图;
图9为本申请的另一个实施例提供的密码验证装置的示意图;
图10为本申请的一个实施例提供的电子设备的示意图;
图11为本申请的另一个实施例提供的电子设备的示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
首先对本申请涉及到的名词进行解释:
DH算法:Diffie-Hellman算法,一种使通信双方通过在不安全的信道上交换秘钥材料协商出相同的而任何第三方均不知道的秘钥的算法。在基于DH算法实现第一通信端和第二通信端的信息传输时,DH算法中用到的公式为(G^b mod P)^a mod P=(G^a mod P)^bmod P。其中,(G,P)是素数的原根,是常数,(G,P)例如为(3,7)。a是第一通信端的私钥,a的范围为[1,P-1],a例如等于5。b是第二通信端的私钥,b的范围为[1,P-1],b例如等于6。第一通信端使用私钥a=5通过公式G^a mod P计算出第一通信端的公钥A,例如A=3^5mod 7=5(3的5次方等于243,243模7等于5)。第二通信端使用私钥b=6通过公式G^b mod P计算出第二通信端的公钥B,例如B=3^6mod 7=1(3的6次方等于729,729模7等于1)。在各自计算出公钥后,该第一通信端和该第二通信端交换公钥,各自基于交换得到的公钥计算该第一通信端和该第二通信端之间的协商密钥。该第一通信端和该第二通信端不会直接传输关键信息,而是只存储协商密钥。协商密钥K=f(a,B,P)=f(b,A,P)=f(a,f(b,G,P),P)=f(b,f(a,G,P),P)。K是无法由公开信息A,B,G算出的,同时,知道A和B无法快速算出a和b,知道K也无法快速算出a和b。
AES:Advanced Encryption Standard一种对称加密算法,基于AES加密的数据被再次处理时只能被解密。
随着信息技术的发展,人们对通信中的信息安全越来越重视,在信息传输中,如何防止重要信息泄露已经成为重点研究的课题。尤其是在密码安全中,密码的泄露尤其严重。具体的,用户在刚开始注册个人密码或之后用输入的密码登陆时,用户在操作的客户端都要将个人密码发送至服务器。在个人密码传输时,一般会直接传输密码明文,由服务器存储密码明文,或者传输密码的散列(Hash),由服务器直接存储密码的散列。或者在传输密码的散列值后,动态存储密码的散列值,如以decrypt,argon2等形式存储密码的散列值。明文或散列都是很容易被破解的,如果不法分子拦截了信息传输,就会导致密码泄露。因此,现有的用密码验证登录的方式在传输密码时都存在不安全的问题。如何提高客户端向服务器传输密码的安全性,依然是亟待解决的问题。
基于此,本申请提供一种密码验证方法,在用户基于客户端用密码验证登录时,该客户端对登录密码进行一系列得加密处理后发送至服务器,以防止信息泄露。该加密处理包括对该登录密码进行散列处理得到该登录密码的散列值,基于DH算法对登录密码的散列值再进行处理,基于对称算法再对DH算法的处理结果进行加密处理。而该客户端发送给该服务器的就只是对称加密值,不是登录密码,也就是说,密码完全没有传输。且就算该对称加密值即便在被解密后得到该客户端公钥,也无法逆运算DH算法得到该登录密码。因此可以保障该客户端和该服务器之间传输的信息即便被截获也无法获取到关键信息,保障了密码传输过程的安全性。
本申请提供的密码验证方法应用于电子设备(客户端),该电子设备例如个人计算机、银行所用的终端机等。图1为本申请提供的密码验证方法的应用示意图,图中,该电子设备(客户端)显示有密码登录的界面,用户在该密码登录的界面输入登录密码。该电子设备响应该密码登录操作,向该服务器发送登录验证请求,并接收该服务器反馈的登录响应。该电子设备再基于该登录响应中的服务器公钥、常数P和常数G对该登录密码的散列值进行处理后得到第一协商密钥。再基于对称算法对该第一协商密钥进行加密处理后将得到的对称加密值发送至该服务器。当该服务器对该对称解密值进行处理后判断该登录密码是否验证通过,该电子设备接收该服务器反馈的登录密码验证结果。
请参见图2,本申请其中一个实施例提供一种密码验证方法,应用于客户端,包括:
S210,响应密码登录操作,获取登录密码,并向服务器发送登录验证请求。
系统校验用户身份需要用户使用登录密码登录,在获取到登录密码后,该客户端需要向该服务器发送该登录验证请求,以触发该服务器发送相关的信息,这些相关的信息用于使该客户端对该登录密码进行加密处理。
如以上关于DH算法的相关描述,在响应该密码登录操作之前,该客户端需对该注册密码的信息在该服务器进行登记存储,在登记存储时,该客户端基于该注册密码与该服务器进行信息交互操作,由该服务器存储注册密码时的协商密钥、DH算法中的算法常数(常数P和常数G)、服务器公钥等。
具体的,该客户端响应密码注册操作,获取注册密码a1,该密码注册操作由用户输入,该注册密码也由用户输入。在获取该注册密码a1后,该客户端再对该注册密码a1进行散列处理后得到该注册密码的散列值ha1,对该注册密码进行散列处理是为了提升该注册密码的传输安全和存储安全。为了进一步提升该注册密码的传输安全和存储安全,可以基于DH算法再进行处理,此时就获取自身存储的DH算法中的常数P和常数G,该常数P和该常数G是相互对应的,该常数P和常数G可以是该客户端随机生成的。再基于该DH算法,根据该注册密码的散列值、该常数P和该常数G计算得到客户端公钥A1。该客户端公钥A1=f(ha,G,P)。如图3所示,该客户端再将该客户端公钥A1、该常数P和该常数G发送至该服务器。
如以上关于DH算法的描述,知道客户端公钥A也无法快速算出客户端私钥a,而且DH算法中的客户端私钥是注册密码的散列值,并不是注册密码,这就进一步增加了解密得到注册密码的难度。
该服务器在接收到该客户端公钥、该常数P和该常数G后,生成随机数b作为服务器私钥,再对该随机数b进行散列处理,得到该随机数的散列值hb。以该随机数的散列值作为DH算法中的服务器私钥,基于DH算法,根据该随机数的散列值、该常数P和该常数G计算得到服务器公钥B,B=f(hb,G,P)。再基于DH算法,根据该客户端公钥A、该随机数的散列值hb和该常数P计算得到密码注册时的协商密钥K注册,K注册=f(hb,A,P)。
S220,接收该服务器反馈的登录响应,该登录响应携带服务器公钥、算法常数和验证算法,该验证算法是该服务器随机生成的,该算法常数包含常数P和常数G。
该服务器反馈的该登录响应携带服务器公钥B和常数算法的目的是为了使该客户端基于该登录密码、该服务器公钥B和该常数算法生成新的协商密钥K登录。如果该登录密码与该客户端刚开始的注册密码不同,则该客户端基于该登录密码生成的新的协商密钥就与该客户端进行密码注册时与该服务器之间的协商密钥不同。但是该客户端和该服务器之间是不传输协商密钥的,因此需要引入验证算法对协商密钥是否相同进行间接判断。
S230,对该登录密码进行散列处理后得到该登录密码的散列值。
对该登录密码进行散列处理可以提高该登录密码的安全性,例如该登录密码是a2,该登录密码的散列值为ha2。
S240,基于DH算法,根据该登录密码的散列值、该服务器公钥和该算法常数计算得到第一协商密钥。
该第一协商密钥即为K登录,K登录=f(ha2,B,P)=f(ha2,f(hb,G,P),P),式中ha2为该登录密码a2的散列值,B为该服务器公钥。
S250,生成随机数,并根据该验证算法对该随机数进行处理得到处理结果。
如图4所示,该客户端在接收到该登录响应后,生成随机数r,并根据该验证算法v对该随机生成的随机数r进行处理得到处理结果v(r)。
S260,对该第一协商密钥和该处理结果进行对称算法处理,将得到的对称加密值发送至该服务器。
该对称加密值E=AES(K登录,v(r)),将得到的对称加密值E=AES(K登录,v(r))发送至该服务器,由该服务器反馈登录密码验证结果。
S270,接收该服务器发送的登录密码验证结果。
该服务器在接收到该客户端发送的对称加密值E后,利用解密该对称加密值E后可以得到待验证的验证算法。当该服务器判断该待验证的算法与该登录响应中携带的验证算法(该服务器本地存储的验证算法)不同(例如格式不同)时,确定该登录密码验证失败。对应的,该客户端接收到该服务器发送的登录密码验证结果为登录密码验证失败。例如,如果该待验证的验证算法与该服务器下发的验证算法v=tc+R(tc代表时间,R代表随机数,式中tc和R仅用于限定v的格式,下发的验证算法中没有具体的tc和R的值)的格式不同(例如该待验证的验证算法是v=r而不包含tc,其中tc代表该待验证的验证算法生成的时间,r代表该客户端生成的随机数),则该服务器向该客户端下发的登录密码验证结果就是登录密码验证失败。再比如该服务器下发的验证算法是v=R3(R代表随机数,但是没有具体的值),但是该待验证的验证算法是v=R,则该待验证的算法和该登陆响应中携带的验证算法不同。
但是,如果该待验证的算法与该登录响应中携带的验证算法(该服务器本地存储的验证算法)相同(例如仅格式相同即判断为相同),则该服务器向该客户端下发的登录密码验证结果是登录密码验证成功。
如果该服务器在接收到该客户端发送的对称加密值E后,无法解密该对称加密E,则该服务器向该客户端下发的登录密码验证结果也是该登录密码验证失败。
综上,本申请实施例提供一种密码验证方法,在用户基于客户端用密码验证登录时,该客户端对登录密码进行一系列得加密处理后发送至服务器,以防止信息泄露。该加密处理包括对该登录密码进行散列处理得到该登录密码的散列值,基于DH算法对登录密码的散列值再进行处理得到第一协商密钥,基于对称算法再对第一协商密钥、基于随机值和验证算法的处理结果进行对称加密处理。而该客户端发送给该服务器的就只是对称加密值,不是登录密码,也就是说,密码完全没有传输,协商密钥也没有传输(只是将利用协商密钥得到的对称加密值进行了传输)。且就算该对称加密值即便在被解密后得到该客户端公钥,也无法逆运算DH算法得到该登录密码。
更进一步的,本实施例引入了该服务器随机生成的验证算法v,该对称加密值是基于该第一协商密钥、随机数和验证算法的处理结果生成的,如果不法分子拦截了该对称加密值,也无法在不知道解密得到的验证算法是否正确的情况下反推计算得到该第一协商密钥,更无法通过该第一协商密钥反推(无法逆运算DH算法)计算得到该登录密码。因此,进一步降低了该注册密码泄露的风险。
请参见图5,本申请其中一个实施例还提供一种密码验证方法,应用于服务器,包括:
S510,接收客户端发送的登录验证请求,向该客户端反馈登录响应,该登录响应携带服务器公钥、算法常数和验证算法,该算法常数包含常数P和常数G。
请参考步骤S210中的相关描述,在接收该客户端发送的登录验证请求前,该客户端和该服务器之间已经进行了密码注册的步骤。具体的,该服务器在接收到该客户端公钥、该常数P和该常数G后,随机生成服务器私钥b,再对该服务器私钥b进行散列处理,得到该服务器私钥的散列值hb。基于DH算法,根据该服务器私钥的散列值、该常数P和该常数G计算得到服务器公钥B,B=f(hb,G,P)。再基于DH算法,根据该客户端公钥A、该服务器私钥的散列值hb和该常数P计算得到密码注册时的协商密钥K注册,K注册=f(hb,A,P)。该服务器再存储该服务器公钥B、该第二协商密钥K注册、该常数P和该常数G。
该服务器反馈的该登录响应携带该服务器公钥B和该常数P的目的是为了使该客户端基于该登录密码、该服务器公钥B和该常数P生成新的协商密钥K登录。如果该登录密码与该客户端刚开始的注册密码不同,则该客户端基于该登录密码生成的新的协商密钥后,基于该新的协商密钥和该验证算法生成的对称加密值就无法被该服务器解密或解密得到的待验证的验证算法与下发的验证算法不同。如此,就可以判断出该登录密码是否与该注册密码相同。
S520,接收该客户端发送的对称加密值,解密该对称加密值,得到待验证的验证算法。
请参考步骤S250中的相关描述,该对称加密值E=AES(K登录,v(r))。
S530,当该待验证的验证算法与该登录响应中携带的验证算法不同时,确定登录密码验证失败。
在解密时,是利用本地存储的K注册解密该对称加密值E,该服务器在解密该对称加密值E后得到该待验证的验证算法。如果该待验证的验证算法与该登录响应中携带的验证算法不同,证明是本地存储的K注册与生成该对称加密值E时的K登录不同,则可以推断出登录密码与注册密码不同。此时,该服务器确定登录密码验证失败。
该待验证的验证算法与该登录响应中携带的验证算法不同可以理解为算法的格式不同。例如以上描述的该登录响应中携带的验证算法的格式是v=tc+R,但是该待验证的验证算法是v=r而不包含tc,则该服务器确定登录密码验证失败。或者,该服务器无法解密该对称加密值E时,该服务器也确定登录密码验证失败。
S540,当该待验证的验证算法与该登录响应中携带的验证算法相同时,确定登录密码验证成功。
当该待验证的验证算法与该登录响应中携带的验证算法相同(例如仅格式相同即判断为相同)时,证明K注册和K登录是相同的,也就是间接说明注册密码和登录密码是相同的,则该登录密码就是正确的。
S550,向该客户端发送登录密码验证结果,该登陆密码验证结果包括登录密码验证失败或登录密码验证成功。
该客户端接收到的该登录密码验证结果是登录密码验证失败时,该客户端可以显示登录失败,以提醒用户重新输入登录密码。该客户端接收的该登录密码验证结果是登录密码验证成功时,显示登录成功。
综上,在本实施例中的方案中,引入了验证算法v,在对该第一协商密码进行对称算法处理时,将该验证算法v和该第一协商密码一起进行对称算法处理。如果不法分子拦截了该对称加密值,也无法在不知道解密得到的验证算法是否正确的情况下反推计算得到该第一协商密钥,更无法通过该第一协商密钥反推(无法逆运算DH算法)计算得到该登录密码。因此,进一步降低了该注册密码泄露的风险。
可选的,还可以选择一种更简单的方法实现注册密码的注册和登录密码的验证。以散列hash为mad5为例,如图6所示,在实现注册密码的注册时,客户端和服务器之间协商好固定的算法常数(常数P和常数G)后,该客户端只需要向该服务器发送客户端公钥A=f(md5(a),G,P),该服务器存储K注册=f(md5(b),A,P)。如图7所示,在实现登录密码的验证时,该客户端自身随机生成验证算法v=tc+r,其中r为任意值,基于该验证算法v和K登录生成对称加密值tc,E=AES(K,v(r))。该客户端将自身生成的v和tc,E均发送至该服务器。该服务器解密对称加密值tc,E后验证v(r)是否包含tc,如果该服务器解密E得到的v(r)中不包含tc,或是该服务器无法解密E,则该登录密码验证失败。如果该服务器解密E得到的v(r)中包含tc,即该服务器判断解密E得到的v(r)与该客户端上传的v(r)是相同(例如仅格式相同即判断为相同)的时,该服务器判断该登录密码验证成功。
请参见图8,本申请其中一个实施例提供一种密码验证装置10,应用于客户端,包括:
获取模块11,用于响应密码登录操作,获取登录密码,并向服务器发送登录验证请求;
通信模块12,用于接收该服务器反馈的登录响应,该登录响应携带服务器公钥、算法常数和验证算法,该验证算法是该服务器随机生成的,该算法常数包含常数P和常数G;
处理模块13,用于对该登录密码进行散列处理后得到该登录密码的散列值;
该处理模块13还用于基于DH算法,根据该登录密码的散列值、该服务器公钥和该算法常数计算得到第一协商密钥;
该处理模块13还用于生成随机数,并根据该验证算法对该随机数进行处理得到处理结果;
该处理模块13还用于对该第一协商密钥和该处理结果进行对称算法处理,将得到的对称加密值发送至该服务器;
该通信模块12还用于接收该服务器发送的登录密码验证结果。
该获取模块11还用于响应密码注册操作,获取注册密码。
该处理模块13还用于对该注册密码进行散列处理后得到该注册密码的散列值。
该获取模块11还用于获取存储的DH算法中的算法常数。
该处理模块13还用于基于DH算法,根据该注册密码的散列值、该DH算法中的算法常数计算得到客户端公钥。
该通信模块12还用于将该客户端公钥、该DH算法中的算法常数发送至该服务器。
请参见图9,本申请其中一个实施例还提供一种密码验证装置20,应用于服务器,包括:
通信模块21,用于接收客户端发送的登录验证请求,向该客户端反馈登录响应,该登录响应携带服务器公钥、算法常数和验证算法,该算法常数包含常数P和常数G。
处理模块22,用于接收该客户端发送的对称加密值,解密该对称加密值,得到待验证的验证算法。
判断模块23,用于当该待验证的验证算法与该登录响应中携带的验证算法不同时,确定登录密码验证失败。
该判断模块23还用于当该待验证的验证算法与该登录响应中携带的验证算法相同时,确定登录密码验证成功。
该通信模块21还用于向该客户端发送登录密码验证结果,该登陆密码验证结果包括登录密码验证失败或登录密码验证成功。
该通信模块21还用于接收该客户端发送的DH算法中的算法常数和基于注册密码生成的客户端公钥,该算法常数包含常数P和常数G。
该处理模块22还用于随机生成服务器私钥,对该服务器私钥进行散列处理,得到该服务器私钥的散列值;基于DH算法,根据该服务器私钥的散列值、该常数P和该常数G计算得到服务器公钥;基于DH算法,根据该客户端公钥、该服务器私钥的散列值和该算法常数计算得到该第二协商密钥;存储该服务器公钥、该第二协商密钥和该常数算法。
请参见图10,本申请其中一个实施例还提供一种电子设备30,包括处理器31,以及与该处理器通信连接的存储器32。该存储器32存储计算机执行指令,该处理器31执行该存储器32存储的计算机执行指令,以实现如以上任一项实施例该的应用于客户端的密码验证方法。
请参见图11,本申请其中一个实施例还提供一种电子设备40,包括处理器41,以及与该处理器41通信连接的存储器42。该存储器42存储计算机执行指令,该处理器41执行该存储器42存储的计算机执行指令,以实现如以上任一项实施例该的应用于服务器的密码验证方法。
本申请还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,当该指令被执行时,使得计算机执行指令被处理器执行时用于实现如上任一项实施例提供的应用于客户端的该密码验证方法。本申请还提供另一种计算机可读存储介质,该计算机可读存储介质中存储有计算机执行指令,当该指令被执行时,使得计算机执行如上任一项实施例提供的应用于服务器的该密码验证方法。
本申请还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上任一项实施例提供的应用于客户端的该密码验证方法。本申请还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现如上任一项实施例提供的应用于服务器的该密码验证方法。
需要说明的是,上述计算机可读存储介质可以是只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性随机存取存储器(Ferromagnetic Random Access Memory,FRAM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(Compact Disc Read-Only Memory,CD-ROM)等存储器。也可以是包括上述存储器之一或任意组合的各种电子设备,如移动电话、计算机、平板设备、个人数字助理等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所描述的方法。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (12)

1.一种密码验证方法,其特征在于,应用于客户端,包括:
响应密码登录操作,获取登录密码,并向服务器发送登录验证请求;
接收所述服务器反馈的登录响应,所述登录响应携带服务器公钥、算法常数和验证算法,所述验证算法是所述服务器随机生成的,所述算法常数包含常数P和常数G;
对所述登录密码进行散列处理后得到所述登录密码的散列值;
基于DH算法,根据所述登录密码的散列值、所述服务器公钥和所述算法常数计算得到第一协商密钥;
生成随机数,并根据所述验证算法对所述随机数进行处理得到处理结果;
对所述第一协商密钥和所述处理结果进行对称算法处理,将得到的对称加密值发送至所述服务器;
接收所述服务器发送的登录密码验证结果。
2.根据权利要求1所述的方法,其特征在于,所述响应密码登录操作之前,还包括:
响应密码注册操作,获取注册密码;
对所述注册密码进行散列处理后得到所述注册密码的散列值;
获取存储的DH算法中的算法常数;
基于DH算法,根据所述注册密码的散列值、所述DH算法中的算法常数计算得到客户端公钥;
将所述客户端公钥、所述DH算法中的算法常数发送至所述服务器。
3.一种密码验证方法,其特征在于,应用于服务器,包括:
接收客户端发送的登录验证请求,向所述客户端反馈登录响应,所述登录响应携带服务器公钥、算法常数和验证算法,所述算法常数包含常数P和常数G;
接收所述客户端发送的对称加密值,解密所述对称加密值,得到待验证的验证算法;
当所述待验证的验证算法与所述登录响应中携带的验证算法不同时,确定登录密码验证失败;
当所述待验证的验证算法与所述登录响应中携带的验证算法相同时,确定登录密码验证成功;
向所述客户端发送登录密码验证结果,所述登陆密码验证结果包括登录密码验证失败或登录密码验证成功。
4.根据权利要求3所述的方法,其特征在于,所述接收客户端发送的登录验证请求之前,还包括:
接收所述客户端发送的DH算法中的算法常数和基于注册密码生成的客户端公钥,所述算法常数包含常数P和常数G;
随机生成服务器私钥,对所述服务器私钥进行散列处理,得到所述服务器私钥的散列值;
基于DH算法,根据所述服务器私钥的散列值、所述常数P和所述常数G计算得到服务器公钥;
基于DH算法,根据所述客户端公钥、所述服务器私钥的散列值和所述算法常数计算得到所述第二协商密钥;
存储所述服务器公钥、所述第二协商密钥和所述常数算法。
5.一种密码验证装置,其特征在于,应用于客户端,包括:
获取模块,用于响应密码登录操作,获取登录密码,并向服务器发送登录验证请求;
通信模块,用于接收所述服务器反馈的登录响应,所述登录响应携带服务器公钥、算法常数和验证算法,所述验证算法是所述服务器随机生成的,所述算法常数包含常数P和常数G;
处理模块,用于对所述登录密码进行散列处理后得到所述登录密码的散列值;
所述处理模块还用于基于DH算法,根据所述登录密码的散列值、所述服务器公钥和所述算法常数计算得到第一协商密钥;
所述处理模块还用于生成随机数,并根据所述验证算法对所述随机数进行处理得到处理结果;
所述处理模块还用于对所述第一协商密钥和所述处理结果进行对称算法处理,将得到的对称加密值发送至所述服务器;
所述通信模块还用于接收所述服务器发送的登录密码验证结果。
6.一种密码验证装置,其特征在于,应用于服务器,包括:
通信模块,用于接收客户端发送的登录验证请求,向所述客户端反馈登录响应,所述登录响应携带服务器公钥、算法常数和验证算法;
处理模块,用于接收所述客户端发送的对称加密值,解密所述对称加密值,得到待验证的验证算法;
判断模块,用于当所述待验证的验证算法与所述登录响应中携带的验证算法不同时,确定登录密码验证失败;
所述判断模块还用于当所述待验证的验证算法与所述登录响应中携带的验证算法相同时,确定登录密码验证成功;
所述通信模块还用于向所述客户端发送登录密码验证结果,所述登陆密码验证结果包括登录密码验证失败或登录密码验证成功。
7.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求1或2所述的密码验证方法。
8.一种电子设备,其特征在于,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现如权利要求3或4所述的密码验证方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当所述指令被执行时,使得计算机执行如权利要求1或2所述的密码验证方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当所述指令被执行时,使得计算机执行如权利要求3或4所述的密码验证方法。
11.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1或2所述的密码验证方法。
12.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求3或4所述的密码验证方法。
CN202210103506.XA 2022-01-27 2022-01-27 密码验证方法、装置及电子设备、存储介质 Active CN114500055B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210103506.XA CN114500055B (zh) 2022-01-27 2022-01-27 密码验证方法、装置及电子设备、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210103506.XA CN114500055B (zh) 2022-01-27 2022-01-27 密码验证方法、装置及电子设备、存储介质

Publications (2)

Publication Number Publication Date
CN114500055A true CN114500055A (zh) 2022-05-13
CN114500055B CN114500055B (zh) 2023-06-27

Family

ID=81476691

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210103506.XA Active CN114500055B (zh) 2022-01-27 2022-01-27 密码验证方法、装置及电子设备、存储介质

Country Status (1)

Country Link
CN (1) CN114500055B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117294541A (zh) * 2023-11-27 2023-12-26 浙江深大智能科技有限公司 票务系统防刷票的多重加密方法、系统、设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111193695A (zh) * 2019-07-26 2020-05-22 腾讯科技(深圳)有限公司 一种第三方账号登录的加密方法、装置及存储介质
CN111835499A (zh) * 2020-06-30 2020-10-27 中国电子科技集团公司第三十研究所 一种基于高性能计算的l2tp/ipsec破解方法及系统
CN113329004A (zh) * 2021-05-25 2021-08-31 浙江大华技术股份有限公司 一种认证方法、系统及装置
CN113872979A (zh) * 2021-09-29 2021-12-31 北京高途云集教育科技有限公司 登录认证的方法、装置、电子设备和计算机可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111193695A (zh) * 2019-07-26 2020-05-22 腾讯科技(深圳)有限公司 一种第三方账号登录的加密方法、装置及存储介质
CN111835499A (zh) * 2020-06-30 2020-10-27 中国电子科技集团公司第三十研究所 一种基于高性能计算的l2tp/ipsec破解方法及系统
CN113329004A (zh) * 2021-05-25 2021-08-31 浙江大华技术股份有限公司 一种认证方法、系统及装置
CN113872979A (zh) * 2021-09-29 2021-12-31 北京高途云集教育科技有限公司 登录认证的方法、装置、电子设备和计算机可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117294541A (zh) * 2023-11-27 2023-12-26 浙江深大智能科技有限公司 票务系统防刷票的多重加密方法、系统、设备和介质
CN117294541B (zh) * 2023-11-27 2024-04-16 浙江深大智能科技有限公司 票务系统防刷票的多重加密方法、系统、设备和介质

Also Published As

Publication number Publication date
CN114500055B (zh) 2023-06-27

Similar Documents

Publication Publication Date Title
US10595201B2 (en) Secure short message service (SMS) communications
CN110380852B (zh) 双向认证方法及通信系统
USH2270H1 (en) Open protocol for authentication and key establishment with privacy
US8499156B2 (en) Method for implementing encryption and transmission of information and system thereof
CN108429620B (zh) 安全连接的建立方法、系统、以及客户端和服务端
CN108566381A (zh) 一种安全升级方法、装置、服务器、设备和介质
EP2173055A1 (en) A method, a system, a client and a server for key negotiating
CN109981562B (zh) 一种软件开发工具包授权方法及装置
CN109861813B (zh) 基于非对称密钥池的抗量子计算https通信方法和系统
CN114900304B (zh) 数字签名方法和装置、电子设备和计算机可读存储介质
CN111294203B (zh) 信息传输方法
KR20110083886A (ko) 휴대용 단말기에서 다른 휴대용 단말기를 인증하는 장치 및 방법
CN111914291A (zh) 消息处理方法、装置、设备及存储介质
CN109361681B (zh) 国密证书认证方法、装置及设备
KR102591826B1 (ko) Puf를 이용한 인증서 기반 디바이스 인증 장치 및 방법
US20020018570A1 (en) System and method for secure comparison of a common secret of communicating devices
CN107483430A (zh) 一种基于身份证云识别的人证合一认证方法和装置
CN112003697A (zh) 密码模块加解密方法、装置、电子设备及计算机存储介质
CN114500055B (zh) 密码验证方法、装置及电子设备、存储介质
CN114760046A (zh) 一种身份鉴别方法和装置
CN116528230A (zh) 验证码处理方法、移动终端及可信服务系统
WO2023284691A1 (zh) 一种账户的开立方法、系统及装置
CN113727059B (zh) 多媒体会议终端入网认证方法、装置、设备及存储介质
Mao et al. RSA-based handshake protocol in internet of things
CN115119150B (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