CN112637131B - 用户身份认证方法、装置、设备和存储介质 - Google Patents

用户身份认证方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN112637131B
CN112637131B CN202011384536.XA CN202011384536A CN112637131B CN 112637131 B CN112637131 B CN 112637131B CN 202011384536 A CN202011384536 A CN 202011384536A CN 112637131 B CN112637131 B CN 112637131B
Authority
CN
China
Prior art keywords
signature
user name
user
authentication
verification
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
CN202011384536.XA
Other languages
English (en)
Other versions
CN112637131A (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.)
Bigo Technology Singapore Pte Ltd
Original Assignee
Bigo Technology Singapore Pte 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 Bigo Technology Singapore Pte Ltd filed Critical Bigo Technology Singapore Pte Ltd
Priority to CN202011384536.XA priority Critical patent/CN112637131B/zh
Publication of CN112637131A publication Critical patent/CN112637131A/zh
Application granted granted Critical
Publication of CN112637131B publication Critical patent/CN112637131B/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
    • 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/0442Network 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 asymmetric encryption, i.e. different keys for encryption and decryption
    • 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/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

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

用户身份认证方法、装置、设备和存储介质
技术领域
本申请实施例涉及身份认证技术领域,尤其涉及一种用户身份认证方法、装置、设备和存储介质。
背景技术
身份验证又称“验证”、“鉴权”,是指通过一定的手段,完成对用户身份的确认。目前主要的用户身份认证手段可归结为三类:用户口令认证、用户数字签名认证以及用户生物特征(如指纹、人脸等)认证。
其中,用户口令认证是一种使用最广泛的登录认证方式。用户首先在服务器注册自己的用户名及所选口令,服务器持久化存储的用户名与口令,口令往往以加密的形式存储。在用户进行口令认证登录账户时,用户通过客户端软件或浏览器页面输入自己的用户名和口令,客户端软件或浏览器会将所输入用户名和口令以某种形式发送给远端服务器,服务器收到用户名和口令后,取出数据库中存储的相同用户名及所关联的口令进行对比,如果收到的口令与数据库中口令一致,则用户认证成功允许登录,否则认证失败拒绝用户登录。用户口令认证虽然具有实现方式简单、不需要额外硬件设备的有点,但是其存在严重的安全威胁,如:用户选择口令时,往往倾向于使用较为简单的口令以便于记忆,简单口令安全性低,易被猜测;服务器数据库存储口令,攻击者有可能对数据库中的口令进行字典攻击破解。
用户数字签名认证是目前安全性最高的身份认证方式,广泛使用于网络银行场景。首先,服务方会在服务器注册用户的用户名和生成数字签名公钥和私钥,服务器持久化存储用户的用户名与签名公钥;然后,服务方将签名私钥持久化存储在安全硬件存储介质或设备(例如银行的网银UKey、RFID卡、智能芯片卡)中,将存储介质或设备发给用户保管;最后,在用户进行数字签名认证时,用户需要将安全硬件存储介质或设备与电脑设备进行连接,通过客户端软件或浏览器页面输入自己的用户名,客户端软件或浏览器会使用安全硬件存储介质或设备中的私钥进行数字签名计算,并把签名值和所输入用户名发送给远端服务器,服务器收到用户名和口令后,取出数据库中存储的相同用户名及所关联的公钥,使用公钥对数字签名值进行计算对比,如果签名值对比通过,则用户认证成功允许登录,否则认证失败拒绝用户登录。用户数字签名认证方式具有安全性高、无法被字典攻击破解等优点,但是,需要使用服务方预制的存有数字签名私钥的安全硬件存储介质或设备,增加了成本。
用户生物特征认证是根据用户的生物特征信息,如指纹、人脸、虹膜等,目前主要的应用场景包括手机屏幕解锁、用户登录计算机系统、门禁系统等。用户使用硬件传感器(如指纹扫描器、摄像头、虹膜扫描器等),通过安全信道,在计算系统中注册自己的用户名和生物特征数据,系统提取生物特征模板并安全持久化存储;用户进行身份认证时,通过硬件传感器向计算系统输入自己的生物特征数据,系统对比本次输入的生物特征数据与注册的生物特征模板是否一致,如果一致,则认证成功,用户可以登录,否则,拒绝用户登录请求。用户生物特征认证方式,具有较高的用户友好度,安全性介于用户口令认证和用户数字签名认证之间,但是需要额外硬件传感器,且硬件传感器与计算系统需要建立安全信道,用户的生物特征模板信息存储必须保证安全,增加了成本。
发明内容
本发明实施例提供了一种用户身份认证方法、装置、设备和存储介质,用户口令不会以任何形式在网络中传输,能够防止口令在网络传输过程中的窃听攻击和重放攻击,以及口令在服务器数据库存储时面临的潜在的字典攻击。结合使用非对称数字身份认证,客户端所在本地设备或本地系统不需要使用额外硬件保护签名私钥,降低成本开销;服务器只保存验签公钥,不受服务器潜在的拖库攻击和字典攻击的威胁。
第一方面,本发明实施例提供了一种用户身份认证方法,该方法包括:
获取输入的用户名,发送认证请求至服务器端;
接收所述服务器端发送的反馈信息,所述反馈信息包括任意非重复的随机数值;
读取本地存储的和所述用户名关联的认证数据,所述认证数据包括用户名、随机数、散列值以及密文信息;
获取输入的用户口令,根据所述用户名、所述随机数以及所述用户口令计算生成对称密钥,通过所述对称密钥对所述密文信息进行解密得到签名私钥;
通过所述签名私钥计算所述用户名、所述散列值以及所述反馈信息的签名值,将所述用户名、所述散列值以及所述签名值发送至所述服务器端,用于获取身份认证结果。
第二方面,本发明实施例提供了另一种用户身份认证方法,该方法包括:
接收客户端发送的认证请求,生成反馈信息;
发送所述反馈信息至所述客户端,用于生成身份验证信息,所述身份验证信息包括用户名、散列值以及认证签名值;
接收所述客户端发送的所述身份验证信息,根据所述用户名、所述散列值检索确定关联的验签公钥;
通过所述验签公钥验证所述认证签名值,生成验证结果,并将所述验证结果反馈至所述客户端。
第三方面,本发明实施例还提供了一种用户身份认证装置,该装置包括:
请求生成模块,用于获取输入的用户名,发送认证请求至服务器端;
信息接收模块,用于接收所述服务器端发送的反馈信息,所述反馈信息包括任意非重复的随机数值;
本地数据读取模块,用于读取本地存储的和所述用户名关联的认证数据,所述认证数据包括用户名、随机数、散列值以及密文信息;
对称密钥生成模块,用于获取输入的用户口令,根据所述用户名、所述随机数以及所述用户口令计算生成对称密钥;
签名私钥生成模块,用于通过所述对称密钥对所述密文信息进行解密得到签名私钥;
签名值生成模块,用于通过所述签名私钥计算所述用户名、所述散列值以及所述反馈信息的签名值;
信息发送模块,用于将所述用户名、所述散列值以及所述签名值发送至所述服务器端,用于获取身份认证结果。
第四方面,本发明实施例还提供了另一种用户身份认证装置,该装置包括:
信息接收模块,用于接收客户端发送的认证请求,生成反馈信息;
信息发送模块,用于发送所述反馈信息至所述客户端,以生成身份验证信息,所述身份验证信息包括用户名、散列值以及认证签名值;
公钥确定模块,用于接收所述客户端发送的所述身份验证信息,根据所述用户名、所述散列值检索确定关联的验签公钥;
验证结果生成模块,用于通过所述验签公钥验证所述认证签名值,生成验证结果,并将所述验证结果反馈至所述客户端。
第五方面,本发明实施例还提供了一种用户身份认证设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例所述的用户身份认证方法。
第六方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本发明实施例所述的用户身份认证方法。
本发明实施例中,获取输入的用户名,发送认证请求至服务器端,接收所述服务器端发送的反馈信息,所述反馈信息包括任意非重复的随机数值,读取本地存储的和所述用户名关联的认证数据,所述认证数据包括用户名、随机数、散列值以及密文信息,获取输入的用户口令,根据所述用户名、所述随机数以及所述用户口令计算生成对称密钥,通过所述对称密钥对所述密文信息进行解密得到签名私钥,通过所述签名私钥计算所述用户名、所述散列值以及所述反馈信息的签名值,将所述用户名、所述散列值以及所述签名值发送至所述服务器端,用于获取身份认证结果。本方案,用户口令不会以任何形式在网络中传输,能够防止口令在网络传输过程中的窃听攻击和重放攻击,以及口令在服务器数据库存储时面临的潜在的字典攻击。结合使用非对称数字身份认证,客户端所在本地设备或本地系统不需要使用额外硬件保护签名私钥,降低成本开销;服务器只保存验签公钥,不受服务器潜在的拖库攻击和字典攻击的威胁。
附图说明
图1为本发明实施例提供的一种用户身份认证方法的流程图;
图2为本发明实施例提供的另一种用户身份认证方法的流程图;
图3为本发明实施例提供的另一种用户身份认证方法的流程图;
图4为本发明实施例提供的另一种用户身份认证方法的流程图;
图5a为本发明实施例提供的一种用户身份认证系统的注册流程示意图;
图5b为本发明实施例提供的一种用户身份认证系统的认证流程示意图;
图6为本发明实施例提供的一种用户身份认证装置的结构框图;
图7为本发明实施例提供的另一种用户身份认证装置的结构框图;
图8为本发明实施例提供的一种用户身份认证设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明实施例的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
图1为本发明实施例提供的一种用户身份认证方法的流程图,本实施例可适用于用户身份认证,该方法可以由用户身份认证设备,如手机、笔记本、台式机等客户端来执行,具体包括如下步骤:
步骤S101、获取输入的用户名,发送认证请求至服务器端。
当用户需要进行身份认证时,通过输入设备如键盘、触摸屏在显示界面的相应位置输入用户名。在一个实施例中,获取输入的用户名(如username),并向服务器端发起认证请求。
步骤S102、接收所述服务器端发送的反馈信息,所述反馈信息包括任意非重复的随机数值。
当服务器端在接收到客户端发送的认证请求后,相应的生成一随机数,作为反馈信息发送至客户端。该随机数为任意非重复的随机数值,以用于在认证过程中防止重放攻击。相应的,客户端对服务器端发送的反馈信息进行接收。其中,该反馈信息可示例性的记为M1={Nonce}。
步骤S103、读取本地存储的和所述用户名关联的认证数据,所述认证数据包括用户名、随机数、散列值以及密文信息。
在一个实施例中,在客户端本地预先存储有一个或多个认证数据,该认证数据可以是在注册阶段,成功注册后生成并保存的认证数据。该认证数据包括认证数据包括用户名、随机数、散列值以及密文信息。示例性的,认证数据可记录为:{username,N,D,CP}。其中,当获取到当前用户输入的用户名时,查找认证数据中记录的相同的用户名以获取到和该用户名关联的随机数、散列值以及密文信息。
步骤S104、获取输入的用户口令,根据所述用户名、所述随机数以及所述用户口令计算生成对称密钥,通过所述对称密钥对所述密文信息进行解密得到签名私钥。
在一个实施例中,进一步引导用户输入用户口令。如在客户端显示界面显示以用户口令输入框,提示用户输入相应的用户口令,当用户输入完毕用户口令后,获取该用户口令。其中,该用户口令可以是PIN口令。PIN口令一般仅由4-8位数字组成的较短字符串,常用于ATM自动取款机、手机设备本地解锁、SIM卡解锁等,便于用户记忆。当然,需要说明的是,本方案也不限于用户输入复杂的用户口令,如数字、英文字母(区分大小写)、特殊字符组成的较长字符串口令。
在一个实施例中,根据获取的用户名、确定出的关联的随机数以及获取的用户口令计算生成对称密钥:Key=H(username|N|PIN)。其中,该对称密钥通过单向散列函数H生成,单向散列函数H为标准安全单向散列函数,可将任意长度数据计算生成L字节固定长度摘要信息B0B1B2…BL-2BL-1,包括MD5输出16B摘要、SHA1输出20B摘要、SHA256输出32B摘要、SHA512输出64B摘要等。
在生成对称密钥后,通过所述对称密钥对所述密文信息进行解密得到签名私钥,即:Priv=Dec(Key,CP),其中Priv为签名私钥,Key为生成的对称密钥,CP为保存的密文信息,Dec为解密过程。
步骤S105、通过所述签名私钥计算所述用户名、所述散列值以及所述反馈信息的签名值,将所述用户名、所述散列值以及所述签名值发送至所述服务器端。
在一个实施例中,得到签名私钥后,通过该签名私钥计算所述用户名、所述散列值以及所述反馈信息的签名值,即:S=Sign(Priv,H(username|D|M1))。
该实施例中的非对称密码数字签名和验证签名的过程如下:签名计算,使用单向散列函数H和非对称密码私钥Priv对任意长度输入数据M计算签名值S=Sign(Priv,H(M));验证签名,使用非对称密码公钥Pub、签名值S、单向散列函数H、数据M,对比签名值是否正确VeriSign(Pub,S,H(M))=True/False,广泛使用的非对称密码数字签名算法包括RSA签名算法、DSA签名算法、ECDSA签名算法、Elgamal签名算法、国密SM2签名算法。
在计算得到签名值S后,将用户名、散列值以及签名值进行数据组合,发送至所述服务器端,如发送:M2={username,D,S}至服务器端,以获取身份认证结果。
由上述方案可知,用户口令不会以任何形式在网络中传输,能够防止口令在网络传输过程中的窃听攻击和重放攻击,以及口令在服务器数据库存储时面临的潜在的字典攻击。结合使用非对称数字身份认证,客户端所在本地设备或本地系统不需要使用额外硬件保护签名私钥,降低成本开销。支持用户输入简单的PIN口令,优化了用户体验。
图2为本发明实施例提供的另一种用户身份认证方法的流程图,给出了一种认证之前进行登录注册的过程。如图2所示,技术方案具体如下:
步骤S201、将输入的用户名以及第一口令发送至服务器端进行远端登录,用于在所述服务器端生成第一验证消息。
在一个实施例中,在进行用户身份认证步骤前,需要用户进行远端登录以进行初始注册。其中,该第一口令示例性的为Password口令,具体为由数字、英文字母(区分大小写)、特殊字符组成的较长字符串。
服务器端执行注册流程,在接收到用户名和第一口令后,生成第一验证消息,该第一验证消息包括签名私钥以及关联的散列值。具体的,在远端登录成功后,服务器生成一对随机数字签名秘钥,示例性的记为签名私钥Priv和验签公钥Pub,使用单向散列函数计算D=H(username|Pub)得到散列值,组装消息M1={D,Priv}作为第一验证消息返回客户端。
步骤S202、接收所述服务器端发送的所述第一验证消息。
步骤S203、获取当前输入的第二口令,通过单向散列函数对所述用户名、所述第二口令以及生成的随机数进行计算得到对称密钥。
其中,该第二口令可以是简单字符指令如PIN口令,在获取到用户输入的第二口令后,生成随机数N,使用单向散列函数生成对称密钥Key=H(username|N|PIN)。通过生成随机书N计算生成对称密钥以保证对称秘钥的唯一性,使用该对称密钥以对接收到的第一验证消息中的签名私钥进行加密。
步骤S204、通过所述签名私钥计算所述用户名、所述随机数以及所述第一验证消息得到注册签名值,生成第二验证消息。
具体为:S=Sign(Priv,H(username|N|M1)),组装消息M2={N,S}作为第二验证消息并发送给服务器端。
步骤S205、将所述第二验证消息发送至所述服务器端进行验证。
服务器端在接收到第二验证消息后,对其进行验证,验证过程为:使用验签公钥Pub验证签名值VeriSign(Pub,S,H(username|N|M1)),如果验证成功,则服务器端在本地持久化存储{username,D,Pub},并返回验证成功消息至客户端。
步骤S206、当接收到所述服务器端发送的验证成功消息后,通过所述对称密钥对所述签名私钥进行加密得到密文信息。
在确认服务器端验证成功后,则通过前述生成的对称密钥对签名私钥进行加密得到密文信息,即:CP=Enc(Key,Priv)。
步骤S207、将所述用户名、所述随机数、所述散列值以及所述密文信息进行关联保存得到认证数据。
在得到密文信息后,将所述用户名、所述随机数、所述散列值以及所述密文信息进行关联保存得到认证数据。即:本地持久化存储{username,N,D,CP}。
由上述方案可知,注册阶段在客户端本地持久化存储认证数据,该认证数据包括用户名、随机数、散列值以及相应的密文信息,以保护用户身份认证的数字签名私钥,通过结合非对称数字认证,无需客户端进行额外的硬件设置,降低了成本开销。
在上述技术方案的基础上,在将输入的用户名以及第一口令发送至服务器端进行远端登录之前,还包括:建立和服务器端的网络安全传输通道,通过所述网络完全传输通道进行数据传输。优选的,由于在注册阶段需要传输签名私钥,故通过建立安全传输通道以保证传输阶段签名私钥的安全性。
图3为本发明实施例提供的另一种用户身份认证方法的流程图,本实施例可适用于对客户端发送的信息进行认证,该方法可以由用户身份认证设备,如服务器来执行,具体包括如下步骤:
步骤S301、接收客户端发送的认证请求,生成反馈信息。
在一个实施例中,当用户需要进行身份认证时,通过客户端录入用户名,客户端相应的发送认证请求至服务器端,服务器端对该认证请求进行处理以生成对应的反馈信息。
具体的,当服务器端在接收到客户端发送的认证请求后,相应的生成一随机数,作为反馈信息发送至客户端。该随机数为任意非重复的随机数值,以用于在认证过程中防止重放攻击。相应的,客户端对服务器端发送的反馈信息进行接收。其中,该反馈信息可示例性的记为M1={Nonce}。
步骤S302、发送所述反馈信息至所述客户端,用于生成身份验证信息,所述身份验证信息包括用户名、散列值以及认证签名值。
服务器端生成反馈信息后相应的将该反馈信息发送至客户端,以在客户端生成身份验证信息,该身份验证信息包括用户名、散列值以及认证签名值,其中客户端根据服务器端发送的反馈信息生成身份验证信息的过程参见步骤S103-步骤S105的解释部分,此处不在赘述。
当客户端生成身份验证信息后,相应的反馈至服务器端,用用户服务器端进行相应处理。
步骤S303、接收所述客户端发送的所述身份验证信息,根据所述用户名、所述散列值检索确定关联的验签公钥。
其中,身份验证信息包括用户名、散列值以及认证签名值,根据其中的用户名、散列值以在存储记录的数据中进行检索以确定关联的验签公钥。其中,存储记录的数据在注册阶段生成,以用于认证阶段对客户端发送的认证请求进行验证。注册阶段存储的数据记录形式为:{username,D,Pub}。
步骤S304、通过所述验签公钥验证所述认证签名值,生成验证结果,并将所述验证结果反馈至所述客户端。
通过确定出的关联的验证公钥Pub,对认证签名值进行验证,具体为:VeriSign(Pub,S,H(username|D|M1))以得到验证结果,并反馈至客户端。示例性的,验证结果形式为:M3={Success/Failure}。
由上述方案可知,该种用户认证方式,用户口令不会以任何形式在网络中传输,能够防止口令在网络传输过程中的窃听攻击和重放攻击,以及口令在服务器数据库存储时面临的潜在的字典攻击。结合使用非对称数字身份认证,客户端所在本地设备或本地系统不需要使用额外硬件保护签名私钥,降低成本开销。支持用户输入简单的PIN口令,优化了用户体验。
图4为本发明实施例提供的另一种用户身份认证方法的流程图,在对用户认证之前的注册过程进行描述。如图4所示,技术方案具体如下:
步骤S401、接收客户端发送的用户名以及第一口令,进行远端登录。
在一个实施例中,在进行用户身份认证步骤前,需要用户进行远端登录以进行初始注册。其中,该第一口令示例性的为Password口令,具体为由数字、英文字母(区分大小写)、特殊字符组成的较长字符串。
步骤S402、如果登录成功,则生成关联的签名私钥和验签公钥。
具体的,在远端登录成功后,服务器生成一对随机数字签名秘钥,示例性的记为签名私钥Priv和验签公钥Pub。
步骤S403、通过单向散列函数计算所述用户名和所述验签公钥的散列值,将所述散列值以及所述签名私钥组成第一验证消息发送至所述客户端。
具体为,使用单向散列函数计算D=H(username|Pub)得到散列值,组装消息M1={D,Priv}作为第一验证消息返回客户端。
步骤S404、接收所述客户端反馈的注册签名值,通过所述验签公钥对所述注册签名值进行验证,如果验证成功,则将所述用户名、所述散列值以及所述验签公钥关联保存。
在一个实施例中,客户端根据服务器发送的第一验证消息生成注册签名值的过程参见步骤S204的解释部分,此处不在赘述。
通过所述验签公钥对所述注册签名值进行验证的过程为:使用验签公钥Pub验证签名值VeriSign(Pub,S,H(username|N|M1))。如果验证成功,持久化存储{username,D,Pub}。
步骤S405、发送注册验证成功信息至所述客户端。
由上述方案可知,注册阶段在服务器端持久化存储用户名、散列值以及所述验签公钥,对其进行关联保存,同时采用非对称密钥机制实现用户的注册认证,使得认证过程无需额外硬件开销,降低了整体成本。
图5a为本发明实施例提供的一种用户身份认证系统的注册流程示意图,如图5a所示,包括如下步骤:
步骤S501、建立客户端和服务器端的网络安全传输通道。
步骤S502、输入用户名和第一口令。
步骤S503、提交用户名和第一口令进行远端登录。
步骤S504、生成随机签名私钥和验签公钥,生成第一验证消息。
步骤S505、发送第一验证消息。
步骤S506、提示用户输入第二口令。
步骤S507、用户输入第二口令。
步骤S508、生成随机数、对称秘钥,计算得到签名值;生成第二验证消息。
步骤S509、发送第二验证消息。
步骤S510、对第二验证消息进行验证,进行数据持久化存储。
步骤S511、反馈注册成功结果。
步骤S512、使用对称密钥对签名私钥进行加密得到密文信息,组装生成认证数据并本地持久化存储。
图5b为本发明实施例提供的一种用户身份认证系统的认证流程示意图,如图5b所示,包括如下步骤:
步骤S513、输入用户名。
步骤S514、发送认证请求。
步骤S515、发送反馈信息。
步骤S516、提示用户输入用户口令。
步骤S517、用户输入用户口令。
步骤S518、读取本地存储的和所述用户名关联的认证数据,得到身份认证信息。
步骤S519、发送身份认证信息。
步骤S520、检测存储的数据记录,对身份认证信息进行验证,生成认证结果。
步骤S521、发送所述验证结果。
本方案可有效防止用户口令的窃听攻击、重放攻击和字典攻击,且不会额外增加硬件设备,降低了成本开销。
图6为本发明实施例提供的一种用户身份认证装置的结构框图,该装置用于执行上述部分实施例提供的用户身份认证方法,具备执行方法相应的功能模块和有益效果。如图6所示,该装置具体包括:请求处理模块101、信息接收模块102、本地数据读取模块103、对称密钥生成模块104、签名私钥生成模块105、签名值生成模块106和信息发送模块107,其中,
请求处理模块101,用于获取输入的用户名,发送认证请求至服务器端;
信息接收模块102,用于接收所述服务器端发送的反馈信息,所述反馈信息包括任意非重复的随机数值;
本地数据读取模块103,用于读取本地存储的和所述用户名关联的认证数据,所述认证数据包括用户名、随机数、散列值以及密文信息;
对称密钥生成模块104,用于获取输入的用户口令,根据所述用户名、所述随机数以及所述用户口令计算生成对称密钥;
签名私钥生成模块105,用于通过所述对称密钥对所述密文信息进行解密得到签名私钥;
签名值生成模块106,用于通过所述签名私钥计算所述用户名、所述散列值以及所述反馈信息的签名值;
信息发送模块107,用于将所述用户名、所述散列值以及所述签名值发送至所述服务器端,用于获取身份认证结果。
由上述方案可知,通过获取输入的用户名,发送认证请求至服务器端,接收所述服务器端发送的反馈信息,所述反馈信息包括任意非重复的随机数值,读取本地存储的和所述用户名关联的认证数据,所述认证数据包括用户名、随机数、散列值以及密文信息,获取输入的用户口令,根据所述用户名、所述随机数以及所述用户口令计算生成对称密钥,通过所述对称密钥对所述密文信息进行解密得到签名私钥,通过所述签名私钥计算所述用户名、所述散列值以及所述反馈信息的签名值,将所述用户名、所述散列值以及所述签名值发送至所述服务器端,用于获取身份认证结果。本方案,用户口令不会以任何形式在网络中传输,能够防止口令在网络传输过程中的窃听攻击和重放攻击,以及口令在服务器数据库存储时面临的潜在的字典攻击。结合使用非对称数字身份认证,客户端所在本地设备或本地系统不需要使用额外硬件保护签名私钥,降低成本开销;服务器只保存验签公钥,不受服务器潜在的拖库攻击和字典攻击的威胁。
在一个可能的实施例中,所述用户口令包括PIN口令。
在一个可能的实施例中,还包括登录处理模块,用于在发送认证请求至服务器端之前,将输入的用户名以及第一口令发送至服务器端进行远端登录,用于在所述服务器端生成第一验证消息,所述第一验证消息包括签名私钥以及关联的散列值。
在一个可能的实施例中,如果登录成功,所述信息接收模块还用于:接收所述服务器端发送的所述第一验证消息;
所述对称密钥生成模块,还用于获取当前输入的第二口令,通过单向散列函数对所述用户名、所述第二口令以及生成的随机数进行计算得到对称密钥;
签名值生成模块还用于:通过所述签名私钥计算所述用户名、所述随机数以及所述第一验证消息得到注册签名值,生成第二验证消息;
所述信息发送模块还用于:将所述第二验证消息发送至所述服务器端进行验证;
密文信息生成模块,用于当接收到所述服务器端发送的验证成功消息后,通过所述对称密钥对所述签名私钥进行加密得到密文信息;
本地数据存储模块,用于将所述用户名、所述随机数、所述散列值以及所述密文信息进行关联保存得到认证数据。
在一个可能的实施例中,还包括安全通道建立模块,用于:
在将输入的用户名以及第一口令发送至服务器端进行远端登录之前,建立和服务器端的网络安全传输通道,通过所述网络完全传输通道进行数据传输。
图7为本发明实施例提供的另一种用户身份认证装置的结构框图,该装置用于执行上述部分实施例提供的用户身份认证方法,具备执行方法相应的功能模块和有益效果。如图7所示,该装置具体包括:信息接收模块201、信息发送模块202、公钥确定模块203和验证结果生成模块204,其中,
信息接收模块201,用于接收客户端发送的认证请求,生成反馈信息;
信息发送模块202,用于发送所述反馈信息至所述客户端,以生成身份验证信息,所述身份验证信息包括用户名、散列值以及认证签名值;
公钥确定模块203,用于接收所述客户端发送的所述身份验证信息,根据所述用户名、所述散列值检索确定关联的验签公钥;
验证结果生成模块204,用于通过所述验签公钥验证所述认证签名值,生成验证结果,并将所述验证结果反馈至所述客户端。
由上述方案可知,通过接收客户端发送的认证请求,生成反馈信息,发送所述反馈信息至所述客户端,用于生成身份验证信息,所述身份验证信息包括用户名、散列值以及认证签名值,接收所述客户端发送的所述身份验证信息,根据所述用户名、所述散列值检索确定关联的验签公钥,通过所述验签公钥验证所述认证签名值,生成验证结果,并将所述验证结果反馈至所述客户端。本方案中,用户口令不会以任何形式在网络中传输,能够防止口令在网络传输过程中的窃听攻击和重放攻击,以及口令在服务器数据库存储时面临的潜在的字典攻击。服务器只保存验签公钥,不受服务器潜在的拖库攻击和字典攻击的威胁。
在一个可能的实施例中,在接收客户端发送的认证请求,生成反馈信息之前,还包括注册功能的实现,具体为:
信息接收模块,用于接收客户端发送的用户名以及第一口令,进行远端登录;
公钥确定模块,用于如果登录成功,则生成关联的签名私钥和验签公钥;
验证结果生成模块,用于通过单向散列函数计算所述用户名和所述验签公钥的散列值,将所述散列值以及所述签名私钥组成第一验证消息发送至所述客户端,用于所述客户端生成第二验证消息,所述第二验证消息包括所述客户端生成的随机数以及关联的注册签名值;以及,
用于接收所述客户端反馈的注册签名值,通过所述验签公钥对所述注册签名值进行验证,如果验证成功,则将所述用户名、所述散列值以及所述验签公钥关联保存;
信息发送模块,用于发送注册验证成功信息至所述客户端。
图8为本发明实施例提供的一种用户身份认证设备的结构示意图,如图8所示,该设备包括处理器301、存储器302、输入装置303和输出装置304;设备中处理器301的数量可以是一个或多个,图8中以一个处理器301为例;设备中的处理器301、存储器302、输入装置303和输出装置304可以通过总线或其他方式连接,图8中以通过总线连接为例。存储器302作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的用户身份认证方法对应的程序指令/模块。处理器301通过运行存储在存储器302中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的用户身份认证方法。输入装置303可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置304可包括显示屏等显示设备。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种用户身份认证方法,该方法包括:
获取输入的用户名,发送认证请求至服务器端;
接收所述服务器端发送的反馈信息,所述反馈信息包括任意非重复的随机数值;
读取本地存储的和所述用户名关联的认证数据,所述认证数据包括用户名、随机数、散列值以及密文信息;
获取输入的用户口令,根据所述用户名、所述随机数以及所述用户口令计算生成对称密钥,通过所述对称密钥对所述密文信息进行解密得到签名私钥;
通过所述签名私钥计算所述用户名、所述散列值以及所述反馈信息的签名值,将所述用户名、所述散列值以及所述签名值发送至所述服务器端,用于获取身份认证结果。
本发明实施例还提供另一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种用户身份认证方法,该方法包括:
接收客户端发送的认证请求,生成反馈信息;
发送所述反馈信息至所述客户端,用于生成身份验证信息,所述身份验证信息包括用户名、散列值以及认证签名值;
接收所述客户端发送的所述身份验证信息,根据所述用户名、所述散列值检索确定关联的验签公钥;
通过所述验签公钥验证所述认证签名值,生成验证结果,并将所述验证结果反馈至所述客户端。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明实施例可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明实施例各个实施例所述的方法。
值得注意的是,上述用户身份认证装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。
注意,上述仅为本发明实施例的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明实施例不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明实施例的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明实施例构思的情况下,还可以包括更多其他等效实施例,而本发明实施例的范围由所附的权利要求范围决定。

Claims (11)

1.用户身份认证方法,其特征在于,包括:
获取输入的用户名,发送认证请求至服务器端;
接收所述服务器端发送的反馈信息,所述反馈信息包括任意非重复的随机数值;
读取本地存储的和所述用户名关联的认证数据,所述认证数据包括用户名、随机数、散列值以及密文信息;
获取输入的用户口令,根据所述用户名、所述随机数以及所述用户口令计算生成对称密钥,通过所述对称密钥对所述密文信息进行解密得到签名私钥;
通过所述签名私钥计算所述用户名、所述散列值以及所述反馈信息的签名值,将所述用户名、所述散列值以及所述签名值发送至所述服务器端,用于获取身份认证结果。
2.根据权利要求1所述的方法,其特征在于,所述用户口令包括PIN口令。
3.根据权利要求1或2所述的方法,其特征在于,在发送认证请求至服务器端之前,还包括:
将输入的用户名以及第一口令发送至服务器端进行远端登录,用于在所述服务器端生成第一验证消息,所述第一验证消息包括签名私钥以及关联的散列值。
4.根据权利要求3所述的方法,其特征在于,如果登录成功,则还包括:
接收所述服务器端发送的所述第一验证消息;
获取当前输入的第二口令,通过单向散列函数对所述用户名、所述第二口令以及生成的随机数进行计算得到对称密钥;
通过所述签名私钥计算所述用户名、所述随机数以及所述第一验证消息得到注册签名值,生成第二验证消息,将所述第二验证消息发送至所述服务器端进行验证;
当接收到所述服务器端发送的验证成功消息后,通过所述对称密钥对所述签名私钥进行加密得到密文信息,将所述用户名、所述随机数、所述散列值以及所述密文信息进行关联保存得到认证数据。
5.根据权利要求3所述的方法,其特征在于,在将输入的用户名以及第一口令发送至服务器端进行远端登录之前,还包括:
建立和服务器端的网络安全传输通道,通过所述网络完全传输通道进行数据传输。
6.用户身份认证方法,其特征在于,包括:
接收客户端发送的认证请求,生成反馈信息;
发送所述反馈信息至所述客户端,用于生成身份验证信息,所述身份验证信息包括用户名、散列值以及认证签名值,所述认证签名值通过签名私钥对所述用户名、所述散列值以及所述反馈信息计算得到,所述签名私钥通过对称密钥对密文信息进行解密得到,所述对称密钥根据获取的用户口令,以及存储的所述用户名和随机数计算得到;
接收所述客户端发送的所述身份验证信息,根据所述用户名、所述散列值检索确定关联的验签公钥;
通过所述验签公钥验证所述认证签名值,生成验证结果,并将所述验证结果反馈至所述客户端。
7.根据权利要求6所述的身份认证方法,其特征在于,在接收客户端发送的认证请求,生成反馈信息之前,还包括:
接收客户端发送的用户名以及第一口令,进行远端登录;
如果登录成功,则生成关联的签名私钥和验签公钥;
通过单向散列函数计算所述用户名和所述验签公钥的散列值,将所述散列值以及所述签名私钥组成第一验证消息发送至所述客户端,用于所述客户端生成第二验证消息,所述第二验证消息包括所述客户端生成的随机数以及关联的注册签名值;
接收所述客户端反馈的注册签名值,通过所述验签公钥对所述注册签名值进行验证,如果验证成功,则将所述用户名、所述散列值以及所述验签公钥关联保存;
发送注册验证成功信息至所述客户端。
8.用户身份认证装置,其特征在于,包括:
请求生成模块,用于获取输入的用户名,发送认证请求至服务器端;
信息接收模块,用于接收所述服务器端发送的反馈信息,所述反馈信息包括任意非重复的随机数值;
本地数据读取模块,用于读取本地存储的和所述用户名关联的认证数据,所述认证数据包括用户名、随机数、散列值以及密文信息;
对称密钥生成模块,用于获取输入的用户口令,根据所述用户名、所述随机数以及所述用户口令计算生成对称密钥;
签名私钥生成模块,用于通过所述对称密钥对所述密文信息进行解密得到签名私钥;
签名值生成模块,用于通过所述签名私钥计算所述用户名、所述散列值以及所述反馈信息的签名值;
信息发送模块,用于将所述用户名、所述散列值以及所述签名值发送至所述服务器端,用于获取身份认证结果。
9.用户身份认证装置,其特征在于,包括:
信息接收模块,用于接收客户端发送的认证请求,生成反馈信息;
信息发送模块,用于发送所述反馈信息至所述客户端,以生成身份验证信息,所述身份验证信息包括用户名、散列值以及认证签名值,所述认证签名值通过签名私钥对所述用户名、所述散列值以及所述反馈信息计算得到,所述签名私钥通过对称密钥对密文信息进行解密得到,所述对称密钥根据获取的用户口令,以及存储的所述用户名和随机数计算得到;
公钥确定模块,用于接收所述客户端发送的所述身份验证信息,根据所述用户名、所述散列值检索确定关联的验签公钥;
验证结果生成模块,用于通过所述验签公钥验证所述认证签名值,生成验证结果,并将所述验证结果反馈至所述客户端。
10.一种用户身份认证设备,所述设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一项所述的用户身份认证方法。
11.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一项所述的用户身份认证方法。
CN202011384536.XA 2020-12-01 2020-12-01 用户身份认证方法、装置、设备和存储介质 Active CN112637131B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011384536.XA CN112637131B (zh) 2020-12-01 2020-12-01 用户身份认证方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011384536.XA CN112637131B (zh) 2020-12-01 2020-12-01 用户身份认证方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN112637131A CN112637131A (zh) 2021-04-09
CN112637131B true CN112637131B (zh) 2023-04-18

Family

ID=75307175

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011384536.XA Active CN112637131B (zh) 2020-12-01 2020-12-01 用户身份认证方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN112637131B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112948789B (zh) * 2021-04-20 2023-03-28 北京优品三悦科技发展有限公司 身份认证方法及装置、存储介质及电子设备
CN113268722B (zh) * 2021-05-17 2022-04-26 时昕昱 一种个人数字身份管理系统与方法
CN114244532A (zh) * 2021-12-14 2022-03-25 视联动力信息技术股份有限公司 终端的计费方法和计费装置
CN114826600B (zh) * 2022-02-25 2023-11-17 北京全路通信信号研究设计院集团有限公司 关键指令确认方法、装置、介质及电子设备
CN114553566B (zh) * 2022-02-25 2024-04-09 中国工商银行股份有限公司 数据加密方法、装置、设备及存储介质
CN114553590B (zh) * 2022-03-17 2023-08-22 抖音视界有限公司 数据传输方法及相关设备
CA3225987A1 (en) * 2022-07-26 2023-12-01 Office Irc Inc. End to end encryption with roaming capabilities
CN116032655B (zh) * 2023-02-13 2023-07-25 杭州天谷信息科技有限公司 一种可抵御计时攻击的身份鉴别方法以及系统
CN116156495B (zh) * 2023-04-11 2023-07-07 支付宝(杭州)信息技术有限公司 一种基于无线信号的安全环境核身方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102780698A (zh) * 2012-07-24 2012-11-14 南京邮电大学 物联网平台中用户终端安全通信的方法
WO2017032263A1 (zh) * 2015-08-27 2017-03-02 阿里巴巴集团控股有限公司 身份认证方法及装置
CN110401615A (zh) * 2018-04-24 2019-11-01 广东工业大学 一种身份认证方法、装置、设备、系统及可读存储介质
CN111049211A (zh) * 2018-10-15 2020-04-21 三星电子株式会社 电子设备和用于电子设备中的有线或无线充电的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102780698A (zh) * 2012-07-24 2012-11-14 南京邮电大学 物联网平台中用户终端安全通信的方法
WO2017032263A1 (zh) * 2015-08-27 2017-03-02 阿里巴巴集团控股有限公司 身份认证方法及装置
CN110401615A (zh) * 2018-04-24 2019-11-01 广东工业大学 一种身份认证方法、装置、设备、系统及可读存储介质
CN111049211A (zh) * 2018-10-15 2020-04-21 三星电子株式会社 电子设备和用于电子设备中的有线或无线充电的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种基于USB Key的双私钥安全因子身份认证方案;齐锋等;《信息安全研究》;20190605(第06期);全文 *

Also Published As

Publication number Publication date
CN112637131A (zh) 2021-04-09

Similar Documents

Publication Publication Date Title
CN112637131B (zh) 用户身份认证方法、装置、设备和存储介质
EP3435591B1 (en) 1:n biometric authentication, encryption, signature system
US11824991B2 (en) Securing transactions with a blockchain network
CN109325342B (zh) 身份信息管理方法、装置、计算机设备和存储介质
US10797879B2 (en) Methods and systems to facilitate authentication of a user
Li et al. Applying biometrics to design three‐factor remote user authentication scheme with key agreement
US11063941B2 (en) Authentication system, authentication method, and program
US10924289B2 (en) Public-private key pair account login and key manager
US10848304B2 (en) Public-private key pair protected password manager
CN110690956B (zh) 双向认证方法及系统、服务器和终端
US20230344643A1 (en) Digital signature system using scalable servers
CN111541713A (zh) 基于区块链和用户签名的身份认证方法及装置
CN113836506A (zh) 身份认证方法、装置、系统、电子设备、存储介质
Das Cryptanalysis and further improvement of a biometric-based remote user authentication scheme using smart cards
WO2022042198A1 (zh) 身份验证方法、装置、计算机设备和存储介质
CN114501431A (zh) 报文传输方法、装置、存储介质及电子设备
Dowling et al. There can be no compromise: The necessity of ratcheted authentication in secure messaging
US20230048174A1 (en) Digital signature system using reliable servers
EP3751784B1 (en) Digital signature system based on a cloud of dedicated local devices
US20110231656A1 (en) System and methods for authenticating a receiver in an on-demand sender-receiver transaction
Tsague et al. DS-NIZKP: A ZKP-based Strong Authentication using Digital Signature for Distributed Systems
WO2023126491A1 (en) Method and system for generating digital signatures using universal composition
Borse et al. Mitigating Vulnerabilities in 3-Factor Based Authentication
CN117035793A (zh) 资源交易认证方法和装置、设备及存储介质
CN116668033A (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