CN113014376B - 一种用户与服务器之间安全认证的方法 - Google Patents

一种用户与服务器之间安全认证的方法 Download PDF

Info

Publication number
CN113014376B
CN113014376B CN201911332183.6A CN201911332183A CN113014376B CN 113014376 B CN113014376 B CN 113014376B CN 201911332183 A CN201911332183 A CN 201911332183A CN 113014376 B CN113014376 B CN 113014376B
Authority
CN
China
Prior art keywords
value
public key
temporary
temporary public
user
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
CN201911332183.6A
Other languages
English (en)
Other versions
CN113014376A (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.)
Zhejiang Uniview Technologies Co Ltd
Original Assignee
Zhejiang Uniview Technologies 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 Zhejiang Uniview Technologies Co Ltd filed Critical Zhejiang Uniview Technologies Co Ltd
Priority to CN201911332183.6A priority Critical patent/CN113014376B/zh
Publication of CN113014376A publication Critical patent/CN113014376A/zh
Application granted granted Critical
Publication of CN113014376B publication Critical patent/CN113014376B/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • 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/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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
    • 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/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3268Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3297Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种用户与服务器之间安全认证的方法,服务器无需生成和公布公钥,通过交换临时公钥和验证值来交互,验证双方的合法性,保证客户端与服务器端建立安全且有效的传输信道,并最终生成会话密钥进行后续的通信。并建立会话密钥更新机制,在会话密钥泄露造成的安全信道失效的情况下,仍能重新建立安全信道;以及建立口令更改机制,保障了用户更改的新口令能安全地更新到数据库。本发明的方法,不需要生成并发布公钥及公钥证书,不需要进行公钥证书的验证与管理,安全有效,而且难以被攻击。

Description

一种用户与服务器之间安全认证的方法
技术领域
本发明属于用户安全认证技术领域,尤其涉及一种用户与服务器之间安全认证的方法。
背景技术
现代高速网络的快速发展,给现代人的工作、生活和社交带来极其丰富的选择和高度的便捷。移动互联网的发展进一步突破了时间和空间的限制,如今人们可以随时随地使用自己的手机、平板等设备进行网络视频、手机银行转账支付、网店购物等远程操作,也能使用人脸、扫码、NFC等支付方式进行乘坐地铁公交、线下购物,无现金的生活方式越来越普及和流行。一些新兴技术产品如无人驾驶汽车、无人飞行器、智能家居、VR眼镜等,也随着5G网络的商用,走入人们的视线,受到大众的欢迎。网络技术的飞速发展促进了工业控制、物联网、云计算、虚拟现实、区块链等领域的火热,而这些技术领域反过来又进一步催生了更大的网络需求,在未来人们的生活与工作越来越离不开现代网络。然而万物互联互通也带来新的安全风险,常见的网络攻击包括中间人攻击、DDOS攻击、口令暴力破解攻击等,其中协议本身的漏洞是实施成功攻击的根本原因之一。
很多认证协议的提出与应用,有效的保障了网络的安全性。两方口令认证与密钥交换(2PAKE)协议作为其中最重要的认证协议之一,可以让用户在公网与可信服务器互相认证,且建立一个安全的会话密钥。
然而,目前的技术方案,在采用公钥认证加密来保护用户的口令时,服务器首先需要生成并发布公钥及公钥证书,这种方案需要服务器发布公钥证书,因此需要进行公钥证书的验证与管理。
还有一些方案,服务器接收用户提交的身份信息,向用户发送包含用户口令和有效期间的注册信息;用户生成登录信息参数,向服务器发送登录信息;服务器根据身份信息、登录信息参数和有效期间生成服务器会话密钥,向用户发送用户会话密钥参数;用户生成用户会话密钥;服务器和用户根据各自生成的会话密钥进行相互认证。然而,这种方案有严重的协议漏洞,缺乏用户与服务器两方的相互身份认证,攻方能够有效假冒成任何一方,进行中间人攻击。
发明内容
本发明的目的是提供一种用户与服务器之间安全认证的方法,用以避免上述背景技术中提到的问题,在保证用户与服务器相互认证的安全性与鲁棒性的同时,具有较高的运算效率。
为了实现上述目的,本申请技术方案如下:
一种用户与服务器之间安全认证的方法,包括:
服务器接收用户注册请求,所述用户注册请求中携带有用户身份标识和第一哈希值,所述第一哈希值根据用户身份标识和口令生成;
服务器接收用户登录请求,所述用户登录请求中携带用户身份标识和第一临时公钥,所述第一临时公钥由用户按照临时公钥算法生成;
服务器按照临时公钥算法生成第二临时公钥,将所述第二临时公钥与第一哈希值异或运算后生成第三临时值,将服务器身份标识和所述第三临时值发送给用户,以便用户将所述第三临时值与第一哈希值进行异或运算后获取第二临时公钥替代值,根据所述第一临时公钥、第二临时公钥替代值生成第一验证值,并向服务器发送携带第一验证值的认证请求;
服务器接收用户发送的第一验证值,根据所述第一临时公钥、第二临时公钥计算第二验证值,并与第一验证值比较验证,如果相等,则服务器认证用户成功;
服务器在认证用户成功后,生成临时会话密钥更新证书,根据第一临时公钥、第三临时值生成会话密钥,并根据会话密钥、第一临时公钥、第二临时公钥计算第三验证值,将临时会话密钥更新证书加密后,发送认证回应消息,所述认证回应消息携带第三验证值和加密后的临时会话密钥更新证书,以便用户接收到认证回应消息后,根据第一临时公钥、第三临时值生成会话密钥,并根据会话密钥、第一临时公钥、第二临时公钥替代值计算第四验证值,并将第四验证值与第三验证值比较验证,如果相等则认证服务器通过,解密得到临时会话密钥更新证书,以会话密钥进行通信。
进一步的,所述用户与服务器之间安全认证方法,还包括:
服务器接收用户更新会话密钥请求,所述用户更新会话密钥请求中携带用户身份标识和第四临时公钥,所述第四临时公钥由用户按照临时公钥算法生成;
服务器按照临时公钥算法生成第五临时公钥,根据第四临时公钥、第五临时公钥生成服务器侧新的会话密钥,取出临时会话密钥更新证书,根据临时会话密钥更新证书、服务器侧新的会话密钥、第四临时公钥和第五临时公钥计算第五验证值,然后向用户发送携带第五临时公钥和第五验证值的响应消息,以便用户在接到服务器的响应消息后,根据第四临时公钥、第五临时公钥生成用户侧新的会话密钥,根据临时会话密钥更新证书、用户侧新的会话密钥、第四临时公钥和第五临时公钥计算第六验证值,如果第六验证值与第五验证值相同,则用户与服务器以新的会话密钥进行通信。
进一步的,所述用户与服务器之间安全认证方法,还包括:
服务器接收到用户口令更新请求,所述用户口令更新请求携带有用户身份标识和第六临时公钥,所述第六临时公钥由用户按照临时公钥算法生成;
服务器按照临时公钥算法生成第七临时公钥,将所述第七临时公钥与第一哈希值异或运算后生成第八临时值,将第八临时值携带在请求挑战消息中发送给用户;以便用户在收到请求挑战消息后,输入自己正确的口令以及新口令,将所述第八临时值与第一哈希值进行异或运算后获取第七临时公钥替代值,根据第七临时公钥替代值生成第七验证值,并生成新的第一哈希值,根据新的第一哈希值、第七临时公钥替代值计算第八验证值,向服务器发送携带新的第一哈希值和第七验证值、第八验证值的响应挑战消息;
服务器接收响应挑战消息,根据所述第六临时公钥计算第九验证值,如果第九验证值与第七验证值相同则认证用户成功,在认证用户成功后根据新的第一哈希值、第六临时公钥计算第十验证值,如果第十验证值与第八验证值相同,则接受新的口令,根据新的第一哈希值、第六临时公钥计算第十一验证值,向用户发送携带第十一验证值的更新响应消息,以便用户在收到更新响应消息后,根据新的第一哈希值、第七临时公钥替代值计算第十二验证值,如果第十二验证值与第十一验证值相同,则口令更新完成。
进一步的,所述服务器设置用于计算临时公钥的一个大素数、一个本原根和长期私钥,并公开大素数和本原根,所述第一临时公钥由用户按照临时公钥算法生成,包括:
选择第一随机数,求取本原根的第一随机数次幂除以大素数的余数作为第一临时公钥;
所述按照临时公钥算法生成第二临时公钥,包括:
选择第二随机数,求取本原根的第二随机数次幂除以大素数的余数作为第二临时公钥;
所述第四临时公钥由用户按照临时公钥算法生成,包括:
选择第三随机数,求取本原根的第三随机数次幂除以大素数的余数作为第四临时公钥;
所述服务器按照临时公钥算法生成第五临时公钥,包括:
选择第四随机数,求取本原根的第四随机数次幂除以大素数的余数作为第五临时公钥;
所述第六临时公钥由用户按照临时公钥算法生成,包括:
选择第五随机数,求取本原根的第五随机数次幂除以大素数的余数作为第六临时公钥;
所述服务器按照临时公钥算法生成第七临时公钥,包括:
选择第六随机数,求取本原根的第六随机数次幂除以大素数的余数作为第七临时公钥。
进一步的,所述根据所述第一临时公钥、第二临时公钥替代值生成第一验证值,包括:
求取第二临时公钥替代值的第一随机数次幂除以大素数的余数作为第一临时中间值,根据所述第一临时中间值、用户身份标识、服务器身份标识、第一临时公钥和第二临时公钥替代值生成第一验证值;
所述服务器接收用户发送的第一验证值,根据所述第一临时公钥、第二临时公钥计算第二验证值,包括:
求取第一临时公钥的第二随机数次幂除以大素数的余数作为第一临时中间值替代值,并根据第一临时中间值替代值、用户身份标识、服务器身份标识、第一临时公钥和第二临时公钥生成第二验证值;
所述根据第四临时公钥、第五临时公钥生成服务器侧新的会话密钥,包括:
求取第四临时公钥的第四随机数次幂除以大素数的余数作为第二临时中间值,根据第二临时中间值、第四临时公钥、第五临时公钥生成服务器侧新的会话密钥;
所述用户在接到服务器的响应消息后,根据第四临时公钥、第五临时公钥生成用户侧新的会话密钥,包括:
求取第五临时公钥的第三随机数次幂除以大素数的余数作为第二临时中间值替代值,根据第二临时中间值替代值、第四临时公钥、第五临时公钥生成用户侧新的会话密钥;
所述根据第七临时公钥替代值计算生成第七验证值,包括:
求取第七临时公钥替代值的第五随机数次幂除以大素数的余数作为第三临时中间值,并根据第三临时中间值、用户身份标识、服务器身份标识生成第七验证值;
所述根据新的第一哈希值、第七临时公钥替代值计算第八验证值,包括:
根据第二临时中间值、新的第一哈希值、用户身份标识、服务器身份标识计算第八验证值;
所述根据所述第六临时公钥计算第九验证值,包括:
求取第六临时公钥的第六随机数次幂除以大素数的余数作为第三临时中间值替代值,根据第三临时中间值替代值、用户身份标识、服务器身份标识生成第九验证值;
所述根据新的第一哈希值、第六临时公钥计算第十验证值,包括:
根据第三临时中间值替代值、新的第一哈希值、用户身份标识、服务器身份标识生成第十验证值;
所述根据新的第一哈希值、第六临时公钥计算第十一验证值,包括:
根据第三临时中间值替代值、新的第一哈希值、用户身份标识、服务器身份标识计算第十一验证值;
所述根据新的第一哈希值、第七临时公钥替代值计算第十二验证值,包括:
根据第三临时中间值、新的第一哈希值、用户身份标识、服务器身份标识计算第十二验证值。
进一步的,所述将临时会话密钥更新证书加密后,发送认证回应消息,包括:
服务器采用第一临时中间值替代值生成密钥,对临时会话密钥更新证书及其哈希值进行加密后,携带在认证回应消息中发送给用户;
所述解密得到密钥更新证书,包括:
用户采用第一临时中间值生成密钥,对服务器发来的加密密文进行解密,计算解密得到的临时会话密钥更新证书的哈希值,与解密得到的哈希值进行比较验证,如果验证成功,则保存解密得到的临时会话密钥更新证书。
进一步的,所述根据第一临时公钥、第三临时值生成会话密钥,包括:
在生成会话密钥时,还根据所述第一临时中间值替代值生成;
所述用户接收到认证回应消息后,根据第一临时公钥、第三临时值生成会话密钥,包括:
在生成会话密钥时,还根据所述第一临时中间值生成。
进一步的,所述用户与服务器之间安全认证方法,还包括:
在用户与服务器的交互中,相互携带各自的时间戳,一方在收到对方的消息时,首先验证时间戳是否有效,有效如果有效再进行后续的操作,否则认为交互失败;
在计算各个验证值时,计算的参数中包括各个对应的时间戳。
进一步的,所述服务器接收用户注册请求后,还包括:
服务器根据服务器身份标识、用户身份标识和长期私钥计算第二哈希值,并将第二哈希值与第一哈希值进行异或运算得到第三哈希值,保存所述用户身份标识和第三哈希值;
所述将所述第二临时公钥与第一哈希值异或运算后生成第三临时值时,通过将第三哈希值与第二哈希值做异或运算得到第一哈希值。
进一步的,所述向服务器发送携带新的第一哈希值和第七验证值、第八验证值响应挑战消息,包括:
用户根据所述第三临时中间值生成第四哈希值,将所述第四哈希值与新的第一哈希值进行异或运算的到第五哈希值,将所述第五哈希值携带在响应挑战消息中发送给服务器;
所述服务器接收响应挑战消息之后,还包括:
服务器根据第三临时中间值替代值生成第六哈希值,将所述第六哈希值与第五哈希值进行异或运算得到新的第一哈希值替代值;
在认证用户成功后根据新的第一哈希值替代值代替新的第一哈希值计算第十验证值和第十一验证值;
并在所示第十验证值与第八验证值相等时,根据第三哈希值、第一哈希值和新的第一哈希值替代值计算新的第三哈希值,保存所述用户身份标识和新的第三哈希值。
本申请提出的一种用户与服务器之间安全认证的方法,服务器无需生成和公布公钥,通过交换临时公钥和验证值来交互,验证双方的合法性,保证客户端与服务器端建立安全且有效的传输信道,并最终生成会话密钥进行后续的通信。并建立会话密钥更新机制,在会话密钥泄露造成的安全信道失效的情况下,仍能重新建立安全信道;以及建立口令更改机制,保障了用户更改的新口令能安全地更新到数据库。本发明的方法,不需要生成并发布公钥及公钥证书,不需要进行公钥证书的验证与管理,安全有效,而且难以被攻击。
附图说明
图1为本申请实施例一种用户登录与认证的方法流程图;
图2为本申请实施例注册阶段示意图;
图3为本申请实施例登录阶段示意图;
图4为本申请实施例更新会话密钥阶段示意图;
图5为本申请实施例更新口令阶段示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请总体思路是提出一种用户与服务器之间安全认证方法,包括以下五个阶段:服务器初始化阶段、用户注册阶段、用户登录与认证阶段、会话密钥更新阶段、用户口令更新阶段。本申请实现了用户在登录与认证阶段不需公钥证书验证的方法,因此两方无需公布公钥,且建立安全信道的过程具有较高的效率,在会话密钥阶段能重新建立和更新安全信道,在口令更改阶段能保证数据库安全更新用户的口令。本申请具有认证性和保密性,是一种具有通信安全且过程完整的两方口令认证与密钥交换(2PAKE)协议。本申请实施例中使用的所有“⊕”都代表进行异或运算的两个对象的每个比特位进行异或运算;h(*)代表单向哈希算法,E(key,x),D(key,y)分别代表加解密对称算法,key代表密钥,x代表明文,y代表密文;DH值代表Diffie-Hellman交换值。
以下通过实施例,对本申请一种用户与服务器之间安全认证方法进行详细的阐述。
实施例1,服务器初始化阶段、用户注册阶段、用户登录与认证阶段。
如图1所示,包括:
服务器接收用户注册请求,所述用户注册请求中携带有用户身份标识和第一哈希值,所述第一哈希值根据用户身份标识和口令生成;
服务器接收用户登录请求,所述用户登录请求中携带用户身份标识和第一临时公钥,所述第一临时公钥由用户按照临时公钥算法生成;
服务器按照临时公钥算法生成第二临时公钥,将所述第二临时公钥与第一哈希值异或运算后生成第三临时值,将服务器身份标识和所述第三临时值发送给用户,以便用户将所述第三临时值与第一哈希值进行异或运算后获取第二临时公钥替代值,根据所述第一临时公钥、第二临时公钥替代值生成第一验证值,并向服务器发送携带第一验证值的认证请求;
服务器接收用户发送的第一验证值,根据所述第一临时公钥、第二临时公钥计算第二验证值,并与第一验证值比较验证,如果相等,则服务器认证用户成功;
服务器在认证用户成功后,生成临时会话密钥更新证书,根据第一临时公钥、第三临时值生成会话密钥,并根据会话密钥、第一临时公钥、第二临时公钥计算第三验证值,将临时会话密钥更新证书加密后,发送认证回应消息,所述认证回应消息携带第三验证值和加密后的临时会话密钥更新证书,以便用户接收到认证回应消息后,根据第一临时公钥、第三临时值生成会话密钥,并根据会话密钥、第一临时公钥、第二临时公钥替代值计算第四验证值,并将第四验证值与第三验证值比较验证,如果相等则认证服务器通过,解密得到临时会话密钥更新证书,以会话密钥进行通信。
以下以用户Ui向服务器Sj登录为例,如图2所示,服务器初始化阶段时选择自己的身份信息SIDj,一个大素数p和一个本原根g,长期私钥s,然后公开p,g。
用户在向服务器注册阶段,用户Ui选择自己的身份信息UIDi和口令PWi,计算第一哈希值HPWi=h(PWi,UIDi),通过安全信道发送注册请求消息{UIDi,HPWi}给服务器Sj。
服务器Sj获取到用户的注册请求消息{UIDi,HPWi}后,可以直接保存这些信息用于后续的运算。为了安全性,本实施例通过自己的长期私钥s来对HPWi进行加密保存。
在一个实施例中,服务器根据服务器身份标识、用户身份标识和长期私钥计算第二哈希值h(UIDi,SIDj,s),并将第二哈希值h(UIDi,SIDj,s)与第一哈希值HPWi进行异或运算得到第三哈希值VPWi,保存所述用户身份标识UIDi和第三哈希值VPWi。
在另一个实施例中,也可以直接采用长期私钥s对第一哈希值HPWi进行加密得到第三哈希值VPWi,即计算VPWi=E(s,HPWi),然后存储注册信息{UIDi,VPWi}到数据库的验证表中。
用户登录与认证服务器阶段,如图3所示,用户Ui输入自己正确的身份UIDi,选择一个随机数a,计算模幂值R1=gamodp作为第一临时公钥,并把登录请求消息{UIDi,R1}通过公开网络信道发送给服务器Sj。
服务器Sj接收到用户的登录请求消息{UIDi,R1}后,从数据库取出相应用户UIDi的注册信息{UIDi,VPWi},然后选择一个随机数b,计算模幂值R2=gb mod p作为第二临时公钥R2,计算出第一哈希值HPWi=VPWi⊕h(UIDi,SIDj,s),第三临时值R3=HPWi⊕R2,然后把回应消息{SIDj,R3}通过公开网络信道发送给用户Ui。如果第三哈希值VPWi是通过加密得到的,则对其解密,计算HPWi=D(s,VPWi)即可。
用户Ui从公开网络信道获得回应消息{SIDj,R3},然后输入自己正确的口令PWi,计算出第二临时公钥替代值R2’=R3⊕h(PWi,UIDi),然后计算第一临时中间值(DH值)VDH=(R2’)a mod p,生成第一验证值Z1=h(VDH,UIDi,SIDj,R1,R2’),通过公开网络信道发送认证请求消息{Z1}给服务器Sj;其中临时中间DH值VDH仅能用户和服务器共享,其他任何人无法计算得到该值。
服务器Sj从公开网络信道获得用户的认证请求消息{Z1},然后计算第一临时中间值替代值VDH’=(R1)b mod p,计算第二验证值Z2=h(VDH’,UIDi,SIDj,R1,R2),验证Z2是否与Z1相等,相等则验证通过。
在本实施例中,服务器设置用于计算临时公钥的一个大素数p、一个本原根g和长期私钥s,并公开大素数p和本原根g,所述预设的临时公钥算法,包括:
选择一随机数e,求取本原根g的e次幂除以大素数p的余数。
从而,所述第一临时公钥R1由用户按照临时公钥算法生成,包括:
选择一随机数a,求取本原根g的a次幂除以大素数p的余数作为第一临时公钥R1;
所述服务器按照临时公钥算法生成第二临时公钥R2,包括:
选择一随机数b,求取本原根g的b次幂除以大素数p的余数作为第二临时公钥R2。
需要说明的是,本实施例采用计算模幂值的方法来生成临时公钥,本领域技术人员还可以采用其他方法来生成临时公钥,例如:ECC、chaotic maps等公钥密码体系。
在本实施例中,根据所述第一临时公钥R1、第二临时公钥替代值R2’生成第一验证值Z1,包括:
求取第二临时公钥R2的a次幂除以大素数p的余数作为第一临时中间值VDH,根据所述第一临时中间值VDH、用户身份标识UIDi、服务器身份标识SIDj、第一临时公钥R1和第二临时公钥替代值R2’生成第一验证值Z1;
所述服务器接收用户发送的第一验证值Z1,根据所述第一临时公钥R1、第二临时公钥R2计算第二验证值Z2,包括:
求取第一临时公钥R1的b次幂除以大素数p的余数作为第一临时中间值替代值VDH’,并根据第一临时中间值替代值VDH’、用户身份标识UIDi、服务器身份标识SIDj、第一临时公钥R1和第二临时公钥R2生成第二验证值Z2。
在验证通过后,可以直接认为认证用户成功,否则认为认证用户失败,返回失败信息。
需要说明的是,在上述实施例中,计算验证值时所采用的参数,可以不包括用户身份标识和服务器身份标识,或者不包括临时中间DH值,本申请上述实施例仅为一种优选的方法。例如第一验证值Z1=h(UIDi,SIDj,R1,R2)、Z2=h(UIDi,SIDj,R1,R2);或者Z1=h(VDH,R1,R2)、Z2=h(VDH,R1,R2)等等,这里不一一列举。
此外,还可以在用户与服务器之间的交互中携带当前时间戳,在用户与服务器的交互中,相互携带各自的时间戳,一方在收到对方的消息时,首先验证时间戳是否有效,如果有效再进行后续的操作,否则认为交互失败。
例如:用户发送的登录请求中,还携带当前时间戳t1,服务器接收到登录请求后,首先检查时间戳t1是否有效,如果有效再进行后续的操作,否则认为登录失败。
又例如,服务器在将服务器身份标识SIDj和所述第三临时值R3发送给用户时,还携带当前时间戳t2,用户在收到后,首先检查时间戳t2是否有效,如果有效再进行后续的操作,否则认为登录失败。
又例如,用户向服务器发送携带第一验证值Z1的认证请求中还携带当前的时间戳t3,服务器收到后,首先检查t3是否有效,如果有效再进行后续的操作,否则认为认证失败。
上述实施例中检查时间戳是否有效,可以与设定的时间进行比较,例如如果超过60秒,则认为无效。
需要说明的是,在计算各个验证值时,计算的参数中包括各个对应的时间戳。例如在计算第一验证值Z1和第二验证值Z2时,也可以将上述时间戳t1、t2、t3作为参数加入计算,例如:Z1=h(VDH,UIDi,SIDj,R1,R2,t1、t2、t3),Z2=h(VDH,UIDi,SIDj,R1,R2,t1、t2、t3),这样将时间戳加入,使得更难被攻击。
本实施例,在服务器在认证用户成功后,生成临时会话密钥更新证书,根据第一临时公钥R1、第三临时值R3生成会话密钥sk,并根据会话密钥sk、第一临时公钥R1、第二临时公钥R2计算第三验证值Z3,将临时会话密钥更新证书Tcert加密后,发送认证回应消息,所述认证回应消息携带第三验证值Z3和加密后的临时会话密钥更新证书。
具体的,临时会话密钥更新证书Tcert可以包括临时版本信息、临时序列号、用户与服务器身份标识、有效期等,本申请对此不做限制。
在计算会话密钥sk时,可以根据相互之间约定的计算公式来计算,例如:sk=h(UIDi,SIDj,R1,R3),或sk=h(UIDi,SIDj,R1,R3,t1,t2)。也可以将第一临时中间值替代值VDH’作为计算参数,例如sk=h(VDH’,UIDi,SIDj,R1,R3),或sk=h(VDH’,UIDi,SIDj,R1,R3,t1,t2)。
在计算第三验证值Z3时,Z3=h(sk,UIDi,SIDj,R1,R2),也可以将时间戳参数加入,例如加入t3,以及服务器计算第三验证值Z3时的当前时间t4,计算公式为Z3=h(sk,UIDi,SIDj,R1,R2,t3,t4)。
则用户在收到认证回应消息后,根据第一临时公钥R1、第三临时值R3生成会话密钥sk,并根据会话密钥sk、第一临时公钥R1、第二临时公钥替代值R2’计算第四验证值Z4,并将第四验证值Z4与第三验证值Z3比较验证,如果一致则认证服务器通过,解密得到密钥更新证书,以会话密钥sk进行通信。
具体的,计算会话密钥sk和第四验证值Z4的方法如服务器的计算方法对应,例如:sk=h(VDH,UIDi,SIDj,R1,R3),或sk=h(VDH,UIDi,SIDj,R1,R3,t1,t2)。而第四验证值Z4计算公式为Z4=h(sk,UIDi,SIDj,R1,R2’),或Z4=h(sk,UIDi,SIDj,R1,R2’,t3,t4)。
用户方也进行验证,比较Z3和Z4,如果相等,则用户方认证服务器成功,用户登录成功,保存会话密钥sk,会话密钥sk用于对后续的通信进行加密,实现后续的安全通信。
本实施例还可以对临时会话密钥更新证书进行对称加密,所述将临时会话密钥更新证书采用对称加密算法加密,包括:
服务器采用第一临时中间值替代值VDH’生成密钥,对临时会话密钥更新证书及其哈希值进行加密后,携带在认证回应消息中发送给用户;
所述解密得到密钥更新证书,包括:
用户采用第一临时中间值VDH生成密钥,对服务器发来的加密密文进行解密,计算解密得到的临时会话密钥更新证书的哈希值,与解密得到的哈希值进行比较验证,如果验证成功,则保存解密得到的临时会话密钥更新证书。
具体的,服务器采用h(VDH’)或h(VDH’,t4)作为加密密钥对临时会话密钥更新证书Tcert进行加密后发送给用户发送给用户。还可以采用上述加密密钥对临时会话密钥更新证书Tcert、及h(Tcert)进行加密后发送给用户。
加密过程表示为:Ztc=E(h(VDH’,t4),(Tcert,h(Tcert))),Ztc为加密后的密文。
用户方面,在认证服务器后,采用h(VDH)或h(VDH,t4)作为密钥对上述加密的临时会话密钥更新证书Tcert进行解密,解密得到临时会话密钥更新证书Tcert。
解密过程表示为:D(h(VDH,t4),Ztc)。
当采用上述加密密钥对临时会话密钥更新证书Tcert、及h(Tcert)进行加密后发送给用户时,解密假设解密出Tcert′、及h(Tcert)′,验证h(Tcert′)是否等于解密出的h(Tcert)′,如果相等则认为验证成功,保存Tcert′作为临时会话密钥更新证书Tcert。
实施例2、用户与服务器更新会话密钥。包括如下步骤:
服务器接收用户更新会话密钥请求,所述用户更新会话密钥请求中携带用户身份标识UIDi和第四临时公钥R4,所述第四临时公钥R4由用户按照临时公钥算法生成;
服务器按照临时公钥算法生成第五临时公钥R5,根据第四临时公钥R4、第五临时公钥R5生成服务器侧新的会话密钥,取出临时会话会话密钥更新证书Tcert,根据临时会话密钥更新证书Tcert、服务器侧新的会话密钥、第四临时公钥R4和第五临时公钥R5计算第五验证值Z5,然后向用户发送携带第五临时公钥R5和第五验证值Z5的响应消息,以便用户在接到服务器的响应消息后,根据第四临时公钥R4、第五临时公钥R5生成新的会话密钥,根据会话密钥更新证书Tcert、新的会话密钥、第四临时公钥R4和第五临时公钥R5计算第六验证值Z6,如果第六验证值Z6与第五验证值Z5相同,则更新会话密钥。
在一个实施例中,所述第四临时公钥由用户按照临时公钥算法生成,包括:
选择第三随机数,求取本原根的第三随机数次幂除以大素数的余数作为第四临时公钥;
所述服务器按照临时公钥算法生成第五临时公钥,包括:
选择第四随机数,求取本原根的第四随机数次幂除以大素数的余数作为第五临时公钥。
在一个实施例中,所述根据第四临时公钥、第五临时公钥生成服务器侧新的会话密钥,包括:
求取第四临时公钥的第四随机数次幂除以大素数的余数作为第二临时中间值,根据第二临时中间值、第四临时公钥、第五临时公钥生成服务器侧新的会话密钥;
所述用户在接到服务器的响应消息后,根据第四临时公钥、第五临时公钥生成用户侧新的会话密钥,包括:
求取第五临时公钥的第三随机数次幂除以大素数的余数作为第二临时中间值替代值,根据第二临时中间值替代值、第四临时公钥、第五临时公钥生成用户侧新的会话密钥。
具体的,用户Ui选择当前时间戳T1,一个随机数m作为临时私钥,计算模幂值R4=gm mod p作为第四临时公钥R4,把更新会话密钥请求消息{UIDi,R4,T1}通过公开网络信道发送给服务器Sj。
服务器Sj接收到更新会话密钥请求消息{UIDi,R4,T1}后,检查T1是否有效,选择当前时间戳T2,一个随机数n作为临时私钥,计算模幂值R5=gn mod p作为第五临时公钥R5,计算第二临时中间值RDH=(R5)n mod p,服务器侧新会话密钥sknew=h(RDH,SIDj,UIDi,R4,R5,T1,T2),取出临时会话密钥更新证书Tcert,计算第五验证值Z5=h(Tcert,sknew,R4,R5,T1,T2),然后把响应消息{SIDj,R5,Z5,T2}通过公开网络信道发送给用户Ui。
用户Ui接收到服务器的响应消息{SIDj,R5,Z5,T2}后,检查T2是否有效,然后计算第二临时中间值替代值RDH’=(R5)mmod p,用户侧新会话密钥sknew=h(RDH’,SIDj,UIDi,Rm,Rn,T1,T2),第六验证值Z6=h(Tcert,sknew,R4,R5,T1,T2),检查Z6是否等于Z5,若相等则更新会话密钥。后续用户与服务器使用新会话密钥通信。
需要说明的是,在本实施例中,也加入了时间戳,用来计算验证值和会话密钥。容易理解的是,即使不加入该时间戳,也能实现本申请所要实现的技术方案。计算验证值时可以不携带用户身份标识和服务器身份标识。
实施例3、用户口令更新阶段,包括如下步骤:
服务器接收到用户口令更新请求,所述用户口令更新请求携带有用户身份标识UIDi和第六临时公钥R6,所述第六临时公钥R6由用户按照临时公钥算法生成;
服务器按照临时公钥算法生成第七临时公钥R7,将所述第七临时公钥R7与第一哈希值HPWi异或运算后生成第八临时值R8,将第八临时值R8携带在请求挑战消息中发送给用户;以便用户在收到请求挑战消息后,输入自己正确的口令PWi以及新口令newPWi,将所述第八临时值R8与第一哈希值HPWi进行异或运算后获取第七临时公钥替代值R7’,根据所述第七临时公钥替代值R7’生成第七验证值Z7,并生成新的第一哈希值newHPWi,根据新的第一哈希值newHPWi和第七临时公钥替代值R7’计算第八验证值Z8,向服务器发送携带新的第一哈希值newHPWi和第七验证值Z7、第八验证值Z8的响应挑战消息;
服务器接收响应挑战消息,根据所述第六临时公钥R6计算第九验证值Z9,如果第九验证值Z9与第七验证值Z7相同则认证用户成功,在认证用户成功后根据新的第一哈希值newHPWi和第六临时公钥R6计算第十验证值Z10,如果第十验证值Z10与第八验证值Z8相同,则接受新的口令,根据新的第一哈希值newHPWi、第六临时公钥R6计算第十一验证值Z11,向用户发送携带第十一验证值Z11的更新响应消息,以便用户在收到更新响应消息后,根据新的第一哈希值newHPWi、第七临时公钥替代值R7’计算第十二验证值Z12,如果第十二验证值Z12与第十一验证值Z11相同,则口令更新完成。
在本实施例中,所述第六临时公钥由用户按照临时公钥算法生成,包括:
选择第五随机数,求取本原根的第五随机数次幂除以大素数的余数作为第六临时公钥;
所述服务器按照临时公钥算法生成第七临时公钥,包括:
选择第六随机数,求取本原根的第六随机数次幂除以大素数的余数作为第七临时公钥。
所述根据第七临时公钥替代值计算生成第七验证值,包括:
求取第七临时公钥替代值的第五随机数次幂除以大素数的余数作为第三临时中间值,并根据第三临时中间值、用户身份标识、服务器身份标识生成第七验证值;
所述根据新的第一哈希值、第七临时公钥替代值计算第八验证值,包括:
根据第二临时中间值、新的第一哈希值、用户身份标识、服务器身份标识计算第八验证值;
所述根据所述第六临时公钥计算第九验证值,包括:
求取第六临时公钥的第六随机数次幂除以大素数的余数作为第三临时中间值替代值,根据第三临时中间值替代值、用户身份标识、服务器身份标识生成第九验证值;
所述根据新的第一哈希值、第六临时公钥计算第十验证值,包括:
根据第三临时中间值替代值、新的第一哈希值、用户身份标识、服务器身份标识生成第十验证值;
所述根据新的第一哈希值、第六临时公钥计算第十一验证值,包括:
根据第三临时中间值替代值、新的第一哈希值、用户身份标识、服务器身份标识计算第十一验证值;
所述根据新的第一哈希值、第七临时公钥替代值计算第十二验证值,包括:
根据第三临时中间值、新的第一哈希值、用户身份标识、服务器身份标识计算第十二验证值。
具体的,用户Ui输入自己正确的身份UIDi,选择当前时间戳tu1,一个随机数c作为临时私钥,计算模幂值R6=gc mod p作为第六临时公钥R6,并把口令更新请求消息{UIDi,R6,tu1}通过公开网络信道发送给服务器Sj。
服务器Sj接收到用户的登录请求消息{UIDi,R6,tu1}后,检查tu1是否有效,从数据库取出相应用户Ui的注册信息{UIDi,VPWi},然后选择当前时间戳tu2,一个随机数d作为临时私钥,计算模幂值R7=gd mod p作为第七临时公钥R7,计算出第一哈希值HPWi,第八临时值R8=HPWi⊕R7,然后把请求挑战消息{SIDj,R8,tu2}通过公开网络信道发送给用户Ui。
用户Ui从公开网络信道获得请求挑战消息{SIDj,R8,tu2},然后输入自己正确的口令PWi,新口令newPWi,当前时间戳tu3,计算第七临时公钥替代值R7’=R8⊕h(UIDi,PWi),第三临时中间值QDH=(R7’)c mod p,第七验证值Z7=h(QDH,SIDj,UIDi,tu1,tu2,tu3),新的第一哈希值newHPWi=h(UIDi,newPWi),第八验证值Z8=h(QDH,newHPWi,SIDj,UIDi,tu3),通过公开网络信道发送响应挑战消息{Z7,Z8,newHPWi,tu3}给服务器Sj。
需要说明的是,为了传输新口令的hash值newHPWi的安全,还可以计算PWDi=h(QDH,UIDi,SIDj,tu3)⊕newHPWi,发送响应挑战消息{Z7,Z8,PWDi,tu3}给用户。
即,用户根据所述第三临时中间值生成第四哈希值h(QDH,UIDi,SIDj,tu3),将所述第四哈希值h(QDH,UIDi,SIDj,tu3)与新的第一哈希值newHPWi进行异或运算的到第五哈希值PWDi,将所述第五哈希值PWDi携带在响应挑战消息中发送给服务器。
服务器Sj从公开网络信道获得用户的响应挑战消息{Z7,Z8,PWDi,tu3},然后计算第三临时中间值替代值QDH’=(R6)d mod p,计算第九验证值Z9=h(QDH’,SIDj,UIDi,tu1,tu2,tu3),验证是否Z9是否等于Z7,若不相等则返回用户认证失败消息;若相等则认证用户。
然后在响应挑战消息携带的是第五哈希值PWDi时,服务器需要计算出新的第一哈希值替代值newHPWi’。
即,相应的,服务器接收响应挑战消息之后,还包括:
服务器根据第三临时中间值替代值QDH’生成第六哈希值h(QDH’,UIDi,SIDj,tu3),将所述第六哈希值h(QDH’,UIDi,SIDj,tu3)与第五哈希值PWDi进行异或运算得到新的第一哈希值替代值newHPWi’。
具体的,计算第一哈希值替代值newHPWi’=PWDi⊕h(QDH’,UIDi,SIDj,tu3),第十验证值Z10=h(QDH’,newHPWi’,UIDi,SIDj,tu3),验证是否Z10是否等于Z8,若不相等则返回口令更新失败消息;若相等,则计算新的第三哈希值newVPWi,值得注意的是,新的第三哈希值newVPWi可以根据newVPWi=VPWi⊕HPWi⊕newHPWi来计算,也可以根据newVPWi=E(s,newHPWi)来计算,代替VPWi存入数据库认证表,计算第十一验证值Z11=h(QDH’,newHPWi’,SIDj,UIDi,tu4),然后通过公开网络信道发送口令更新响应消息{Z11,tu4}给用户Ui。
即,在认证用户成功后根据新的第一哈希值替代值newHPWi’代替新的第一哈希值newHPWi计算第十验证值和第十一验证值;
并在所示第十验证值与第八验证值相等时,根据第三哈希值、第一哈希值和新的第一哈希值替代值newHPWi’计算新的第三哈希值,保存所述用户身份标识和新的第三哈希值。
用户Ui从公开网络信道取得服务器的响应消息{Z11,tu4}后,计算第十二验证值Z12=h(QDH,newHPWi,SIDj,UIDi,tu4),验证是否Z12是否等于Z11,若相等则口令更新完成,用户接受新口令newPWi。否则验证失败,不接受新口令,需要重新发起流程更新口令。
容易理解的是,与前面实施例相似的,这里的验证值的计算公式也仅为一种优选的实施例,本领域技术人员可以采用约定的公式,约定的参数实现用户和服务器之间的验证,例如,验证值中还可以将R6、R7作为参数,以下不再赘述。同样,在交互过程中也可以携带或不携带时间戳,在携带时间戳时,可以对时间戳进行校验,也可以用相应的时间戳来计算验证值和会话密钥,本申请不再赘述。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种用户与服务器之间安全认证的方法,其特征在于,所述用户与服务器之间安全认证方法,包括:
服务器接收用户注册请求,所述用户注册请求中携带有用户身份标识和第一哈希值,所述第一哈希值根据用户身份标识和口令生成;
服务器接收用户登录请求,所述用户登录请求中携带用户身份标识和第一临时公钥,所述第一临时公钥由用户按照临时公钥算法生成;
服务器按照临时公钥算法生成第二临时公钥,将所述第二临时公钥与第一哈希值异或运算后生成第三临时值,将服务器身份标识和所述第三临时值发送给用户,以便用户将所述第三临时值与第一哈希值进行异或运算后获取第二临时公钥替代值,根据所述第一临时公钥、第二临时公钥替代值生成第一验证值,并向服务器发送携带第一验证值的认证请求;
服务器接收用户发送的第一验证值,根据所述第一临时公钥、第二临时公钥计算第二验证值,并与第一验证值比较验证,如果相等,则服务器认证用户成功;
服务器在认证用户成功后,生成临时会话密钥更新证书,根据第一临时公钥、第三临时值生成会话密钥,并根据会话密钥、第一临时公钥、第二临时公钥计算第三验证值,将临时会话密钥更新证书加密后,发送认证回应消息,所述认证回应消息携带第三验证值和加密后的临时会话密钥更新证书,以便用户接收到认证回应消息后,根据第一临时公钥、第三临时值生成会话密钥,并根据会话密钥、第一临时公钥、第二临时公钥替代值计算第四验证值,并将第四验证值与第三验证值比较验证,如果相等则认证服务器通过,解密得到临时会话密钥更新证书,以会话密钥进行通信。
2.根据权利要求1所述的用户与服务器之间安全认证的方法,其特征在于,所述用户与服务器之间安全认证方法,还包括:
服务器接收用户更新会话密钥请求,所述用户更新会话密钥请求中携带用户身份标识和第四临时公钥,所述第四临时公钥由用户按照临时公钥算法生成;
服务器按照临时公钥算法生成第五临时公钥,根据第四临时公钥、第五临时公钥生成服务器侧新的会话密钥,取出临时会话密钥更新证书,根据临时会话密钥更新证书、服务器侧新的会话密钥、第四临时公钥和第五临时公钥计算第五验证值,然后向用户发送携带第五临时公钥和第五验证值的响应消息,以便用户在接到服务器的响应消息后,根据第四临时公钥、第五临时公钥生成用户侧新的会话密钥,根据临时会话密钥更新证书、用户侧新的会话密钥、第四临时公钥和第五临时公钥计算第六验证值,如果第六验证值与第五验证值相同,则用户与服务器以新的会话密钥进行通信。
3.根据权利要求1所述的用户与服务器之间安全认证的方法,其特征在于,所述用户与服务器之间安全认证方法,还包括:
服务器接收到用户口令更新请求,所述用户口令更新请求携带有用户身份标识和第六临时公钥,所述第六临时公钥由用户按照临时公钥算法生成;
服务器按照临时公钥算法生成第七临时公钥,将所述第七临时公钥与第一哈希值异或运算后生成第八临时值,将第八临时值携带在请求挑战消息中发送给用户;以便用户在收到请求挑战消息后,输入自己正确的口令以及新口令,将所述第八临时值与第一哈希值进行异或运算后获取第七临时公钥替代值,根据第七临时公钥替代值生成第七验证值,并生成新的第一哈希值,根据新的第一哈希值、第七临时公钥替代值计算第八验证值,向服务器发送携带新的第一哈希值和第七验证值、第八验证值的响应挑战消息;
服务器接收响应挑战消息,根据所述第六临时公钥计算第九验证值,如果第九验证值与第七验证值相同则认证用户成功,在认证用户成功后根据新的第一哈希值、第六临时公钥计算第十验证值,如果第十验证值与第八验证值相同,则接受新的口令,根据新的第一哈希值、第六临时公钥计算第十一验证值,向用户发送携带第十一验证值的更新响应消息,以便用户在收到更新响应消息后,根据新的第一哈希值、第七临时公钥替代值计算第十二验证值,如果第十二验证值与第十一验证值相同,则口令更新完成。
4.根据权利要求1所述的用户与服务器之间安全认证的方法,其特征在于,所述服务器设置用于计算临时公钥的一个大素数、一个本原根和长期私钥,并公开大素数和本原根,所述第一临时公钥由用户按照临时公钥算法生成,包括:
选择第一随机数,求取本原根的第一随机数次幂除以大素数的余数作为第一临时公钥;
所述按照临时公钥算法生成第二临时公钥,包括:
选择第二随机数,求取本原根的第二随机数次幂除以大素数的余数作为第二临时公钥;
所述根据所述第一临时公钥、第二临时公钥替代值生成第一验证值,包括:
求取第二临时公钥替代值的第一随机数次幂除以大素数的余数作为第一临时中间值,根据所述第一临时中间值、用户身份标识、服务器身份标识、第一临时公钥和第二临时公钥替代值生成第一验证值;
所述服务器接收用户发送的第一验证值,根据所述第一临时公钥、第二临时公钥计算第二验证值,包括:
求取第一临时公钥的第二随机数次幂除以大素数的余数作为第一临时中间值替代值,并根据第一临时中间值替代值、用户身份标识、服务器身份标识、第一临时公钥和第二临时公钥生成第二验证值。
5.根据权利要求2所述的用户与服务器之间安全认证的方法,其特征在于,所述服务器设置用于计算临时公钥的一个大素数、一个本原根和长期私钥,并公开大素数和本原根,所述第四临时公钥由用户按照临时公钥算法生成,包括:
选择第三随机数,求取本原根的第三随机数次幂除以大素数的余数作为第四临时公钥;
所述服务器按照临时公钥算法生成第五临时公钥,包括:
选择第四随机数,求取本原根的第四随机数次幂除以大素数的余数作为第五临时公钥;
所述根据第四临时公钥、第五临时公钥生成服务器侧新的会话密钥,包括:
求取第四临时公钥的第四随机数次幂除以大素数的余数作为第二临时中间值,根据第二临时中间值、第四临时公钥、第五临时公钥生成服务器侧新的会话密钥;
所述用户在接到服务器的响应消息后,根据第四临时公钥、第五临时公钥生成用户侧新的会话密钥,包括:
求取第五临时公钥的第三随机数次幂除以大素数的余数作为第二临时中间值替代值,根据第二临时中间值替代值、第四临时公钥、第五临时公钥生成用户侧新的会话密钥。
6.根据权利要求3所述的用户与服务器之间安全认证的方法,其特征在于,所述服务器设置用于计算临时公钥的一个大素数、一个本原根和长期私钥,并公开大素数和本原根,所述第六临时公钥由用户按照临时公钥算法生成,包括:
选择第五随机数,求取本原根的第五随机数次幂除以大素数的余数作为第六临时公钥;
所述服务器按照临时公钥算法生成第七临时公钥,包括:
选择第六随机数,求取本原根的第六随机数次幂除以大素数的余数作为第七临时公钥;
所述根据第七临时公钥替代值生成第七验证值,包括:
求取第七临时公钥替代值的第五随机数次幂除以大素数的余数作为第三临时中间值,并根据第三临时中间值、用户身份标识、服务器身份标识生成第七验证值;
所述根据新的第一哈希值、第七临时公钥替代值计算第八验证值,包括:
根据第二临时中间值、新的第一哈希值、用户身份标识、服务器身份标识计算第八验证值;
所述根据所述第六临时公钥计算第九验证值,包括:
求取第六临时公钥的第六随机数次幂除以大素数的余数作为第三临时中间值替代值,根据第三临时中间值替代值、用户身份标识、服务器身份标识生成第九验证值;
所述根据新的第一哈希值、第六临时公钥计算第十验证值,包括:
根据第三临时中间值替代值、新的第一哈希值、用户身份标识、服务器身份标识生成第十验证值;
所述根据新的第一哈希值、第六临时公钥计算第十一验证值,包括:
根据第三临时中间值替代值、新的第一哈希值、用户身份标识、服务器身份标识计算第十一验证值;
所述根据新的第一哈希值、第七临时公钥替代值计算第十二验证值,包括:
根据第三临时中间值、新的第一哈希值、用户身份标识、服务器身份标识计算第十二验证值。
7.根据权利要求4所述的用户与服务器之间安全认证的方法,其特征在于,所述将临时会话密钥更新证书加密后,发送认证回应消息,包括:
服务器采用第一临时中间值替代值生成密钥,对临时会话密钥更新证书及其哈希值进行加密后,携带在认证回应消息中发送给用户;
所述解密得到临时会话密钥更新证书,包括:
用户采用第一临时中间值生成密钥,对服务器发来的加密密文进行解密,计算解密得到的临时会话密钥更新证书的哈希值,与解密得到的哈希值进行比较验证,如果验证成功,则保存解密得到的临时会话密钥更新证书;
所述根据第一临时公钥、第三临时值生成会话密钥,包括:
在生成会话密钥时,还根据所述第一临时中间值替代值生成;
所述用户接收到认证回应消息后,根据第一临时公钥、第三临时值生成会话密钥,包括:
在生成会话密钥时,还根据所述第一临时中间值生成。
8.根据权利要求1所述的用户与服务器之间安全认证的方法,其特征在于,所述用户与服务器之间安全认证方法,还包括:
在用户与服务器的交互中,相互携带各自的时间戳,一方在收到对方的消息时,首先验证时间戳是否有效,有效如果有效再进行后续的操作,否则认为交互失败;
在计算各个验证值时,计算的参数中包括各个对应的时间戳。
9.根据权利要求6所述的用户与服务器之间安全认证的方法,其特征在于,所述服务器接收用户注册请求后,还包括:
服务器根据服务器身份标识、用户身份标识和长期私钥计算第二哈希值,并将第二哈希值与第一哈希值进行异或运算得到第三哈希值,保存所述用户身份标识和第三哈希值;
所述将所述第二临时公钥与第一哈希值异或运算后生成第三临时值时,通过将第三哈希值与第二哈希值做异或运算得到第一哈希值。
10.根据权利要求9所述的用户与服务器之间安全认证的方法,其特征在于,所述向服务器发送携带新的第一哈希值和第七验证值、第八验证值响应挑战消息,包括:
用户根据所述第三临时中间值生成第四哈希值,将所述第四哈希值与新的第一哈希值进行异或运算的到第五哈希值,将所述第五哈希值携带在响应挑战消息中发送给服务器;
所述服务器接收响应挑战消息之后,还包括:
服务器根据第三临时中间值替代值生成第六哈希值,将所述第六哈希值与第五哈希值进行异或运算得到新的第一哈希值替代值;
在认证用户成功后根据新的第一哈希值替代值代替新的第一哈希值计算第十验证值和第十一验证值;
并在所示第十验证值与第八验证值相等时,根据第三哈希值、第一哈希值和新的第一哈希值替代值计算新的第三哈希值,保存所述用户身份标识和新的第三哈希值。
CN201911332183.6A 2019-12-21 2019-12-21 一种用户与服务器之间安全认证的方法 Active CN113014376B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911332183.6A CN113014376B (zh) 2019-12-21 2019-12-21 一种用户与服务器之间安全认证的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911332183.6A CN113014376B (zh) 2019-12-21 2019-12-21 一种用户与服务器之间安全认证的方法

Publications (2)

Publication Number Publication Date
CN113014376A CN113014376A (zh) 2021-06-22
CN113014376B true CN113014376B (zh) 2022-06-14

Family

ID=76382441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911332183.6A Active CN113014376B (zh) 2019-12-21 2019-12-21 一种用户与服务器之间安全认证的方法

Country Status (1)

Country Link
CN (1) CN113014376B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114501442B (zh) * 2021-12-07 2023-11-03 珠海格力电器股份有限公司 报文篡改检测方法、辅助方法、装置、介质和终端

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101119196A (zh) * 2006-08-03 2008-02-06 西安电子科技大学 一种双向认证方法及系统
CN105141425A (zh) * 2015-08-14 2015-12-09 重庆邮电大学 一种基于混沌映射的可保护身份的双向认证方法
CN107483195A (zh) * 2017-09-08 2017-12-15 哈尔滨工业大学深圳研究生院 物联网环境下安全的双方认证与密钥协商协议
WO2018076365A1 (zh) * 2016-10-31 2018-05-03 美的智慧家居科技有限公司 密钥协商方法及装置
CN108965338A (zh) * 2018-09-21 2018-12-07 杭州师范大学 多服务器环境下的三因素身份认证及密钥协商的方法
CN109714167A (zh) * 2019-03-15 2019-05-03 北京邮电大学 适用于移动应用签名的身份认证与密钥协商方法及设备
CN109756324A (zh) * 2017-11-02 2019-05-14 大唐移动通信设备有限公司 一种Mesh网络中的密钥协商方法、终端及网关

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG10201509342WA (en) * 2015-11-12 2017-06-29 Huawei Int Pte Ltd Method and system for session key generation with diffie-hellman procedure

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101119196A (zh) * 2006-08-03 2008-02-06 西安电子科技大学 一种双向认证方法及系统
CN105141425A (zh) * 2015-08-14 2015-12-09 重庆邮电大学 一种基于混沌映射的可保护身份的双向认证方法
WO2018076365A1 (zh) * 2016-10-31 2018-05-03 美的智慧家居科技有限公司 密钥协商方法及装置
CN107483195A (zh) * 2017-09-08 2017-12-15 哈尔滨工业大学深圳研究生院 物联网环境下安全的双方认证与密钥协商协议
CN109756324A (zh) * 2017-11-02 2019-05-14 大唐移动通信设备有限公司 一种Mesh网络中的密钥协商方法、终端及网关
CN108965338A (zh) * 2018-09-21 2018-12-07 杭州师范大学 多服务器环境下的三因素身份认证及密钥协商的方法
CN109714167A (zh) * 2019-03-15 2019-05-03 北京邮电大学 适用于移动应用签名的身份认证与密钥协商方法及设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种改进的抗攻击密钥协商协议研究;张珂;《郑州轻工业学院学报(自然科学版)》;20110615(第03期);全文 *
安全密钥交换算法研究;李家兰等;《科技视界》;20150925(第27期);全文 *

Also Published As

Publication number Publication date
CN113014376A (zh) 2021-06-22

Similar Documents

Publication Publication Date Title
CN107947913B (zh) 一种基于身份的匿名认证方法与系统
CN101238677B (zh) 使用以非一次一密加密进行加密的签名密钥的加密认证和/或共享加密密钥的建立、包括(但不限于)对可延展攻击具有改进安全性的技术
CN102318258B (zh) 基于身份的认证密钥协商协议
CN107659395B (zh) 一种多服务器环境下基于身份的分布式认证方法及系统
CN101902476B (zh) 移动p2p用户身份认证方法
CN110020524B (zh) 一种基于智能卡的双向认证方法
CN101119196A (zh) 一种双向认证方法及系统
CN110087240B (zh) 基于wpa2-psk模式的无线网络安全数据传输方法及系统
CN111416706B (zh) 基于秘密共享的量子保密通信系统及其通信方法
CN112087428B (zh) 一种基于数字证书的抗量子计算身份认证系统及方法
CN113037499B (zh) 一种区块链加密通讯方法及系统
CN104901935A (zh) 一种基于cpk的双向认证及数据交互安全保护方法
CN112468490B (zh) 一种用于电网终端层设备接入的认证方法
CN111277412B (zh) 基于区块链密钥分发的数据安全共享系统及方法
CN110535626B (zh) 基于身份的量子通信服务站保密通信方法和系统
CN113572603A (zh) 一种异构的用户认证和密钥协商方法
CN111416712B (zh) 基于多个移动设备的量子保密通信身份认证系统及方法
CN105897416A (zh) 一种基于标识密码系统的前向端到端安全即时通信方法
CN108259486B (zh) 基于证书的端到端密钥交换方法
CN106850584B (zh) 一种面向客户/服务器网络的匿名认证方法
CN113676448B (zh) 一种基于对称秘钥的离线设备双向认证方法和系统
CN113132104A (zh) 一种主动安全的ecdsa数字签名两方生成方法
CN113098681B (zh) 云存储中口令增强且可更新的盲化密钥管理方法
CN113014376B (zh) 一种用户与服务器之间安全认证的方法
KR20080005344A (ko) 인증서버가 사용자단말기를 인증하는 시스템

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