CN114124423B - 一种认证方法、客户端、服务端及存储介质 - Google Patents

一种认证方法、客户端、服务端及存储介质 Download PDF

Info

Publication number
CN114124423B
CN114124423B CN202010901001.9A CN202010901001A CN114124423B CN 114124423 B CN114124423 B CN 114124423B CN 202010901001 A CN202010901001 A CN 202010901001A CN 114124423 B CN114124423 B CN 114124423B
Authority
CN
China
Prior art keywords
public key
client
server
calculation result
message
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
CN202010901001.9A
Other languages
English (en)
Other versions
CN114124423A (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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202010901001.9A priority Critical patent/CN114124423B/zh
Priority to CN202080102851.0A priority patent/CN115812293A/zh
Priority to PCT/CN2020/125567 priority patent/WO2022041473A1/zh
Publication of CN114124423A publication Critical patent/CN114124423A/zh
Application granted granted Critical
Publication of CN114124423B publication Critical patent/CN114124423B/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
    • 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/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • 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
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/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
    • 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs

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)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供公开一种认证方法,包括:客户端基于服务端发送的第一消息确定第一公钥及所述第一公钥对应的第一函数的第一计算结果,所述第一消息是与服务端密钥交换消息不同的消息;所述客户端基于所述服务端发送的服务端问候消息确定第二公钥及所述第二公钥对应的第二函数的第二计算结果;其中,所述第一公钥、所述第一计算结果、所述第二公钥和所述第二计算结果用于所述客户端认证所述服务端的合法性。本申请实施例还提供另一种认证方法、设备以及存储介质。

Description

一种认证方法、客户端、服务端及存储介质
技术领域
本申请涉及信息显示技术领域,尤其涉及一种认证方法、客户端、服务端及存储介质。
背景技术
相关技术中,在终端设备与服务器建立通信连接时,终端设备和服务器均需要验证对端的身份,如何基于安全传输层协议(Transport Layer Security,TLS)便捷地实现身份认证,建立安全的通信通道是无线通信技术一直追求的目标。
发明内容
本申请实施例提供一种认证方法、客户端、服务端及存储介质,使得能够基于TLS便捷地实现身份认证,建立安全的通信通道。
本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种认证方法,包括:
客户端基于服务端发送的第一消息确定第一公钥及所述第一公钥对应的第一函数的第一计算结果,所述第一消息是与服务端密钥交换消息不同的消息;
所述客户端基于所述服务端发送的服务端问候消息确定第二公钥及所述第二公钥对应的第二函数;
其中,所述第一公钥、所述第一计算结果、所述第二公钥和所述第二计算结果用于所述客户端认证所述服务端的合法性。
在一些可选实施例中,所述客户端接收所述第一消息之前,所述方法还包括:所述客户端发送第一客户端问候消息,所述第一客户端问候消息中携带第三公钥及所述第三公钥对应的第三计算结果。
在一些可选实施例中,所述客户端接收所述第一消息之后,所述方法还包括:
所述客户端发送第二客户端问候消息;
所述第二客户端问候消息中携带第四公钥及所述第四公钥对应的第四函数的第四计算结果;或者,所述第二客户端问候消息中携带所述第三公钥、所述第三计算结果、第四公钥及所述第四公钥对应的第四函数的第四计算结果。
在一些可选实施例中,所述第一公钥包括ECJ-PAKE算法中的X3和X4,所述第一计算结果包括ECJ-PAKE算法中的ZKP(X3)和Z KP(X4);
所述第二公钥包括ECJ-PAKE算法中的Xs,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xs);
所述第三公钥包括ECJ-PAKE算法中的X1和X2,所述第三计算结果包括ECJ-PAKE算法中的ZKP(X1)和Z KP(X2);
所述第二公钥包括ECJ-PAKE算法中的Xc,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xc)。
在一些可选实施例中,所述方法还包括:
所述客户端基于所述第一公钥和所述第二公钥确定共享秘钥,所述共享秘钥用于解密所述服务端发送的数据,以认证所述服务端的合法性。
在一些可选实施例中,所述第一消息包括问候重传请求消息。
第二方面,本申请实施例还提供一种认证方法,所述方法包括:
服务端基于客户端发送的第一客户端问候消息确定第三公钥及所述第三公钥对应的第三函数的第三计算结果;
所述服务端基于所述客户端发送的第二客户端问候消息确定第四公钥及所述第四公钥对应的第四函数的第四计算结果;
其中,所述第三公钥、所述第三计算结果、所述第四公钥和所述第四计算结果用于所述服务端认证所述客户端的合法性。
在一些可选实施例中,所述第二客户端问候消息中还携带所述第三公钥和所述第三计算结果。
在一些可选实施例中,所述服务端接收到所述第一客户端问候消息之后,所述方法还包括:
所述服务端向所述客户端发送第一消息,所述第一消息中携带第一公钥及所述第一公钥对应的第一函数的第一计算结果,所述第一消息是与服务端密钥交换消息不同的消息;
在一些可选实施例中,所述服务端接收到所述第二客户端问候消息之后,所述方法还包括:
所述服务端向所述客户端发送服务端问候消息,所述服务端问候消息携带第二公钥及所述第二公钥对应的第二函数的第二计算结果。
所述第一公钥包括ECJ-PAKE算法中的X3和X4,所述第一计算结果包括ECJ-PAKE算法中的ZKP(X3)和Z KP(X4);
所述第二公钥包括ECJ-PAKE算法中的Xs,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xs);
所述第三公钥包括ECJ-PAKE算法中的X1和X2,所述第三计算结果包括ECJ-PAKE算法中的ZKP(X1)和Z KP(X2);
所述第二公钥包括ECJ-PAKE算法中的Xc,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xc)。
在一些可选实施例中,所述第一消息包括问候重传请求消息。
在一些可选实施例中,所述方法还包括:
所述服务端基于所述第三公钥和所述第四公钥确定共享秘钥,所述共享秘钥用于解密所述客户端发送的数据,以认证所述客户端的合法性。
在一些可选实施例中,所述服务端确定所述第四公钥及所述第四函数之后,所述方法还包括:
在所述服务端与所述客户端协商失败的次数等于阈值的情况下,所述服务端修改用于生成所述第一公钥和所述第二公钥的密码,和/或所述服务端修改对所述客户端的认证方式。
第三方面,本申请实施例还提供一种客户端,所述客户端包括:
第一处理单元,用于基于服务端发送的第一消息确定第一公钥及所述第一公钥对应的第一函数的第一计算结果,所述第一消息是与服务端密钥交换消息不同的消息;
基于所述服务端发送的服务端问候消息确定第二公钥及所述第二公钥对应的第二函数的第二计算结果;
其中,所述第一公钥、所述第一计算结果、所述第二公钥和所述第二计算结果用于所述客户端认证所述服务端的合法性。
在一些可选实施例中,所述客户端还包括:
第一发送单元,用于发送第一客户端问候消息,所述第一客户端问候消息中携带第三公钥及所述第三公钥对应的第三函数的第三计算结果。
在一些可选实施例中,所述客户端还包括:
所述第一发送单元,用于发送第二客户端问候消息;
所述第二客户端问候消息中携带第四公钥及所述第四公钥对应的第四函数的第四计算结果;或者,所述第二客户端问候消息中携带所述第三公钥、所述第三计算结果、第四公钥及所述第四公钥对应的第四函数的第四计算结果。
在一些可选实施例中,所述第一公钥包括ECJ-PAKE算法中的X3和X4,所述第一计算结果包括ECJ-PAKE算法中的ZKP(X3)和Z KP(X4);
所述第二公钥包括ECJ-PAKE算法中的Xs,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xs);
所述第三公钥包括ECJ-PAKE算法中的X1和X2,所述第三计算结果包括ECJ-PAKE算法中的ZKP(X1)和Z KP(X2);
所述第二公钥包括ECJ-PAKE算法中的Xc,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xc)。
在一些可选实施例中,所述第一处理单元,用于基于所述第一公钥、所述第一计算结果、所述第二公钥和所述第二计算结果确定秘钥,所述秘钥用于解密所述服务端发送的数据,以认证所述服务端的合法性。
在一些可选实施例中,所述第一消息包括问候重传请求消息。
第四方面,本申请实施例还提供一种服务端,所述服务端包括:
第二处理单元,用于基于客户端发送的第一客户端问候消息确定第三公钥及所述第三公钥对应的第三函数的第三计算结果;
所述服务端基于所述客户端发送的第二客户端问候消息确定第四公钥及所述第四公钥对应的第四函数的第四计算结果;
其中,所述第三公钥、所述第三计算结果、所述第四公钥和所述第四计算结果用于所述服务端认证所述客户端的合法性。
在一些可选实施例中,所述第二客户端问候消息中还携带所述第三公钥和所述第三计算结果。
在一些可选实施例中,所述服务端还包括:
第二发送单元,用于向所述客户端发送第一消息,所述第一消息中携带第一公钥及所述第一公钥对应的第一函数的第一计算结果,所述第一消息是与服务端密钥交换消息不同的消息。
所述第二发送单元,用于向所述客户端发送服务端问候消息,所述服务端问候消息携带第二公钥及所述第二公钥对应的第二函数的第二计算结果。
在一些可选实施例中,所述第一公钥包括ECJ-PAKE算法中的X3和X4,所述第一计算结果包括ECJ-PAKE算法中的ZKP(X3)和Z KP(X4);
所述第二公钥包括ECJ-PAKE算法中的Xs,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xs);
所述第三公钥包括ECJ-PAKE算法中的X1和X2,所述第三计算结果包括ECJ-PAKE算法中的ZKP(X1)和Z KP(X2);
所述第二公钥包括ECJ-PAKE算法中的Xc,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xc)。
在一些可选实施例中,所述第一消息包括问候重传请求消息。
在一些可选实施例中,所述第二处理单元,用于基于所述第三公钥和所述第四公钥确定共享秘钥,所述共享秘钥用于解密所述客户端发送的数据,以认证所述客户端的合法性。
在一些可选实施例中,所述第二处理单元,用于在所述服务端与所述客户端协商失败的次数等于阈值的情况下,修改用于生成所述第一公钥和所述第二公钥的密码,和/或修改对所述客户端的认证方式。
第五方面,本申请实施例提供一种设备,包括处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行上述的认证方法。
第六方面,本申请实施例提供一种存储介质,存储有可执行程序,所述可执行程序被处理器执行时,实现上述的认证方法。
第七方面,本申请实施例提供一种认证系统,包括:客户端和服务端,所述客户端,被配置用于向所述服务端发送第一问候消息,所述第一问候消息包括第一信息和第二信息,所述第一信息包括公钥X1和所述公钥X1对应的第五函数的计算结果,所述第二信息包括公钥X2和所述公钥X2对应的第六函数的计算结果;
所述服务端,被配置用于向所述客户端发送第一问候重传请求消息,所述第一问候重传请求消息包括第三信息和第四信息,所述第三信息包括公钥X3和所述公钥X3对应第七函数的计算结果,所述第四信息包括公钥X4和所述公钥X4对应的第八函数的计算结果;
所述客户端,被配置用于向所述服务端发送第二问候消息,所述第二问候消息包括第五信息,所述第五信息包括公钥Xc和所述公钥Xc对应的第九函数的计算结果;
所述服务端,被配置用于向所述客户端发送第三问候消息,所述第三问候消息包括第六信息,所述第六信息包括公钥Xs和所述公钥Xs对应的第十函数的计算结果;
所述客户端,被配置用于基于所述公钥Xs生成第一共享密钥;
所述服务端,被配置用于基于所述公钥Xc生成第二共享密钥;
所述第一共享密钥用于所述客户端在与所述服务端传输数据时,对所述数据加密和/或解密;
所述第二共享密钥用于所述服务端在与所述客户端传输数据时,对所述数据加密和/或解密。
在一些可选实施例中,所述系统被配置用于运行传输层安全TLS协议V1.3;所述第一共享密钥和所述第二共享密钥基于ECJ-PAKE算法生成。
第八方面,本申请实施例提供一种认证系统,包括:客户端和服务端,所述客户端,被配置用于向所述服务端发送第四问候消息,所述第四问候消息包括第一信息或第二信息,所述第一信息包括公钥X1和所述公钥X1对应的第五函数的计算结果;所述第二信息包括公钥X2和所述公钥X2对应的第六函数的计算结果;
所述服务端,被配置用于向所述客户端发送第二问候重传请求消息,所述第二问候重传请求消息包括第三信息或第四消息,所述第三信息包括公钥X3和所述公钥X3对应第七函数的计算结果,所述第四信息包括公钥X4和所述公钥X4对应的第八函数的计算结果;
所述客户端,被配置用于向所述服务端发送第五问候消息,当所述第三问候消息包括所述第一信息时,所述第五问候消息包括所述第二信息;当所述第三问候消息包括所述第二信息时,所述第五问候消息包括所述第一信息;
所述服务端,被配置用于向所述客户端发送第三问候重传请求消息,当所述第二问候重传请求消息包括所述第三信息时,所述第三问候重传请求消息包括所述第四信息;当所述第二问候重传请求消息包括所述第四信息时,所述第三问候重传请求消息包括所述第三信息;
所述客户端,被配置用于向所述服务端发送第六问候消息,所述第六问候消息包括第五信息,所述第五信息包括公钥Xc和所述公钥Xc对应的第九函数的计算结果;
所述服务端,被配置用于向所述客户端发送第七问候消息,所述第七问候消息包括第六信息,所述第六信息包括公钥Xs和所述公钥Xs对应的第十函数的计算结果;
所述客户端,被配置用于基于所述公钥Xs生成第一共享密钥;
所述服务端,被配置用于基于所述公钥Xc生成第二共享密钥;
所述第一共享密钥,用于所述客户端在与所述服务端传输数据时,对所述数据加密和/或解密;
所述第二共享密钥,用于所述服务端在与所述客户端传输数据时,对所述数据加密和/或解密。
在一些可选实施例中,所述系统被配置用于运行TLS协议V1.3;所述第一共享密钥和所述第二共享密钥基于所述ECJ-PAKE算法生成。
本申请实施例提供的认证方法、客户端、服务端及存储介质,服务端通过与服务端问候消息不同的第一消息向客户端发送第一公钥及第一公钥对应的第一函数,以及服务端通过服务端问候消息向服务端发送第二公钥及第二公钥对应的第二函数,使得客户端能够根据所述第一公钥、所述第一函数、所述第二公钥和所述第二函数确定秘钥,并利用秘钥解码服务端发送的数据,以认证所述服务端的合法性。客户端通过两个不同的客户端问候消息向服务端发送第三公钥、所述第三公钥对应的第三函数、第四公钥及所述第四公钥对应的第四函数,使得服务端能够根据所述第三公钥、所述第三函数、所述第四公钥和所述第四函数确定秘钥,并利用秘钥解码客户端发送的数据,以认证所述客户端的合法性。本申请实施例中所涉及的第一消息、客户端问候消息和服务端问候消息均与TLS协议兼容,因此,在已有的TLS代码库的基础上增加少量代码即可便捷地实现本申请实施例的认证方法,建立安全的通信通道。另外,本申请实施例中,服务端能够在与客户端协商失败的次数等于阈值的情况下,修改用于生成所述第一公钥和所述第二公钥的密码、和/或修改对所述客户端的认证方式,使得服务端能够主动控制和缓解穷举密码攻击。
附图说明
图1为本申请实施例提供的通信系统的组成结构示意图;
图2为本申请实施例提供的认证方法的一种可选处理流程示意图;
图3为本申请实施例提供的认证方法的另一种可选处理流程示意图;
图4为本申请实施例提供的认证方法的一种详细可选处理流程示意图;
图5为本申请实施例提供的认证方法的另一种详细可选处理流程示意图;
图6为本申请实施例提供的认证方法的又一种详细可选处理流程示意图;
图7为本申请实施例提供的认证方法的还有一种详细可选处理流程示意图;
图8为本申请实施例提供的客户端的组成结构示意图;
图9为本申请实施例提供的接收端的组成结构示意图;
图10为本申请实施例提供的电子设备的硬件组成结构示意图。
具体实施方式
以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例的技术方案可以应用于各种通信系统,例如:全球移动通讯(globalsystem of mobile communication,GSM)系统、码分多址(code division multipleaccess,CDMA)系统、宽带码分多址(wideband code division multiple access,WCDMA)系统、通用分组无线业务(general packet radio service,GPRS)、LTE系统、LTE频分双工(frequency division duplex,FDD)系统、LTE时分双工(time division duplex,TDD)系统、先进的长期演进(advanced long term evolution,LTE-A)系统、新无线(new radio,NR)系统、NR系统的演进系统、非授权频段上的LTE(LTE-based access to unlicensedspectrum,LTE-U)系统、非授权频段上的NR(NR-based access to unlicensed spectrum,NR-U)系统、通用移动通信系统(universal mobile telecommunication system,UMTS)、全球互联微波接入(worldwide interoperability for microwave access,WiMAX)通信系统、无线局域网(wireless local area networks,WLAN)、无线保真(wireless fidelity,WiFi)、下一代通信系统或其他通信系统等。
本申请实施例描述的系统架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
需要说明的是,本申请实施例中的客户端(client)是指主动发起连接的设备(或APP),也可以是指本申请中的主动连接端;连接时,客户端向服务端(server)证明自己的控制权。服务端(server)是指被动连接的设备,也可以是指本申请中的被动连接端;连接时,服务端认证客户端的身份,验证客户端具有控制权。客户端和服务端可以是服务器、终端设备、“电视”、“音箱”等物联网(Internet of Things,IoT)设备等,客户端与服务端之间的连接可以是通过有线网络建立的连接,也可以是通过无线网络建立的连接,还可以是通过可移动的网络建立的连接。
可选的,服务器和终端设备可以部署在陆地上,包括室内或室外、手持或车载;也可以部署在水面上;还可以部署在空中的飞机、气球和人造卫星上。本申请的实施例对服务器和终端设备的应用场景不做限定。
可选的,服务器和终端设备之间以及终端设备和终端设备之间可以通过授权频谱(licensed spectrum)进行通信,也可以通过非授权频谱(unlicensed spectrum)进行通信,也可以同时通过授权频谱和非授权频谱进行通信。服务器和终端设备之间以及终端设备和终端设备之间可以通过7吉兆赫(gigahertz,GHz)以下的频谱进行通信,也可以通过7GHz以上的频谱进行通信,还可以同时使用7GHz以下的频谱和7GHz以上的频谱进行通信。本申请的实施例对服务器和终端设备之间所使用的频谱资源不做限定。
通常来说,传统的通信系统支持的连接数有限,也易于实现,然而,随着通信技术的发展,移动通信系统将不仅支持传统的通信,还将支持例如,设备到设备(device todevice,D2D)通信,机器到机器(machine to machine,M2M)通信,机器类型通信(machinetype communication,MTC),以及车辆间(vehicle to vehicle,V2V)通信等,本申请实施例也可以应用于这些通信系统。
示例性的,本申请实施例应用的通信系统100,如图1所示。该通信系统100可以包括服务器110,服务器110可以是与终端设备120(或称为通信终端、终端)通信的设备。服务器110可以为特定的地理区域提供通信覆盖,并且可以与位于该覆盖区域内的终端设备进行通信。可选地,该服务器110可以是GSM系统或CDMA系统中的基站(Base TransceiverStation,BTS),也可以是WCDMA系统中的基站(NodeB,NB),还可以是LTE系统中的演进型基站(Evolutional Node B,eNB或eNodeB),或者是云无线接入网络(Cloud Radio AccessNetwork,CRAN)中的无线控制器,或者该服务器可以为移动交换中心、中继站、接入点、车载设备、可穿戴设备、集线器、交换机、网桥、路由器、5G网络中的网络侧设备或者未来演进的公共陆地移动网络(Public Land Mobile Network,PLMN)中的服务器等。
该通信系统100还包括位于服务器110覆盖范围内的至少一个终端设备120。作为在此使用的“终端设备”包括但不限于经由有线线路连接,如经由公共交换电话网络(Public Switched Telephone Networks,PSTN)、数字用户线路(Digital SubscriberLine,DSL)、数字电缆、直接电缆连接;和/或另一数据连接/网络;和/或经由无线接口,如,针对蜂窝网络、无线局域网(Wireless Local Area Network,WLAN)、诸如DVB-H网络的数字电视网络、卫星网络、AM-FM广播发送器;和/或另一终端设备的被设置成接收/发送通信信号的装置;和/或物联网(Internet of Things,IoT)设备。被设置成通过无线接口通信的终端设备可以被称为“无线通信终端”、“无线终端”或“移动终端”。移动终端的示例包括但不限于卫星或蜂窝电话;可以组合蜂窝无线电电话与数据处理、传真以及数据通信能力的个人通信系统(Personal Communications System,PCS)终端;可以包括无线电电话、寻呼机、因特网/内联网接入、Web浏览器、记事簿、日历以及/或全球定位系统(Global PositioningSystem,GPS)接收器的PDA;以及常规膝上型和/或掌上型接收器或包括无线电电话收发器的其它电子装置。终端设备可以指接入终端、用户设备(User Equipment,UE)、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置。接入终端可以是蜂窝电话、无绳电话、会话启动协议(Session InitiationProtocol,SIP)电话、无线本地环路(Wireless Local Loop,WLL)站、个人数字处理(Personal Digital Assistant,PDA)、具有无线通信功能的手持设备、计算设备或连接到无线调制解调器的其它处理设备、车载设备、可穿戴设备、5G网络中的终端设备或者未来演进的PLMN中的终端设备等。
可选地,终端设备120之间可以进行终端直连(Device to Device,D2D)通信。
可选地,5G系统或5G网络还可以称为新无线(New Radio,NR)系统或NR网络。
图1示例性地示出了一个服务器和两个终端设备,可选地,该通信系统100可以包括多个服务器并且每个服务器的覆盖范围内可以包括其它数量的终端设备,本申请实施例对此不做限定。
可选地,该通信系统100还可以包括网络控制器、移动管理实体等其他网络实体,本申请实施例对此不作限定。
应理解,本申请实施例中网络/系统中具有通信功能的设备可称为通信设备。以图1示出的通信系统100为例,通信设备可包括具有通信功能的服务器110和终端设备120,服务器110和终端设备120可以为上文所述的具体设备,此处不再赘述;通信设备还可包括通信系统100中的其他设备,例如网络控制器、移动管理实体等其他网络实体,本申请实施例中对此不做限定。
本申请实施例提供的认证方法的一种可选流程,如图2所示,至少可以包括以下步骤:
步骤S101,客户端基于服务端发送的第一消息确定第一公钥及所述第一公钥对应的第一函数的第一计算结果。
在一些实施例中,服务端向客户端发送第一消息,所述第一消息中携带所述服务端的第一公钥及第一公钥对应的第一函数的第一计算结果。
在一些实施例中,所述第一公钥可以是服务端在第一回合需要传输的ECJ-PAKE算法中的X3和X4,第一计算结果可以是服务端在第一回合需要传输的ECJ-PAKE算法中的X3对应的ZKP(X3)、以及X4对应的ZKP(X4);其中,ZKP可以是ECJ-PAKE算法使用的零知识证明。以ZKP(X3)为例,通过ZKP函数产生一段数据,通过这段数据能够证明服务端是X3所对应私钥的持有者。客户端通过ZKP对应算法验证这段数据,以验证是否持有私钥。
在具体实施时,客户端可以先接收ECJ-PAKE算法中的X3以及X3对应的ZKP(X3);再接收ECJ-PAKE算法中的X4以及X4对应的ZKP(X4)。或者,客户端可以先接收ECJ-PAKE算法中的X4以及X4对应的ZKP(X4);再接收ECJ-PAKE算法中的X3以及X3对应的ZKP(X3)。即X3以及X3对应的ZKP(X3),与X4以及X4对应的ZKP(X4)通过两条不同的消息中传输。或者,客户端可以同时接收ECJ-PAKE算法中的X4、X4对应的ZKP(X4)、X3以及X3对应的ZKP(X3),即X3、X3对应的ZKP(X3)、X4以及X4对应的ZKP(X4)在同一条消息中传输。
在一些实施例中,所述第一消息是与服务端密钥交换(Server Key Exchange)消息不同的消息,如所述第一消息为问候重传请求(Hello Retry Request)消息。
在相关技术中,Hello Retry Request消息用于请求客户端修改握手参数,重新发起协商。而本申请实施例中,Hello Retry Request消息用于服务端向客户端发送ECJ-PAKE算法中服务端第一回合需要传输的X3、ZKP(X3)、X4以及ZKP(X4)。
步骤S102,客户端基于所述服务端发送的服务端问候消息确定第二公钥及所述第二公钥对应的第二函数的第二计算结果。
在一些实施例中,服务端向客户端发送Server Hello消息,Server Hello消息中携带第二公钥和第二公钥对应的第二函数的第二计算结果。
在一些实施例中,所述第二公钥可以是服务端在第二回合需要传输的ECJ-PAKE算法中Xs,第二计算结果可以是ECJ-PAKE算法中服务端在第二回合需要传输的Xs对应的ZKP(Xs)。其中,Xs内添加有“密码”,所述“密码”是服务端和客户端预先约定或预先共享的。
其中,Xs由服务端根据X1、X2和X3生成;ZKP(Xs)由服务端根据X4生成。
在一些实施例中,客户端在确定完第一公钥、第一计算结果、第二公钥、第二计算结果之后,所述认证方法还可以包括:
步骤S103,客户端基于所述第一公钥和所述第二公钥确定共享秘钥。
在一些实施例中,所述客户端根据服务端发送的第一公钥、第一计算结果、第二公钥和第二计算结果确定服务端和客户端之间的共享秘钥,并利用所确定的共享秘钥对服务端发送的数据进行解密;若客户端利用共享秘钥解密数据成功,则客户端认证服务端合法,即服务端认证通过;若客户端利用共享秘钥解密数据失败,则客户端认证服务端不合法,即服务端认证不通过。
其中,服务端生成的共享密钥为:Ka=(Xs-(X4×[x2*s]))×[x2]。
Ka是服务端生成的共享密钥,x2是X2对应的私钥,s是预共享密钥。
上述步骤S101至步骤S103中,客户端获取共享秘钥,并能够基于获取的共享秘钥对服务端进行认证。在具体实施时,客户端也需要向服务端发送客户端的公钥,以使服务端基于客户端的公钥获取共享秘钥;因此,在执行步骤S101之前,本申请实施例提供的认证方法还可以包括:
步骤S104,客户端发送第一客户端问候消息,所述第一客户端问候消息中携带第三公钥及所述第三公钥对应的第三计算结果。
在一些实施例中,客户端可以主动发起认证过程,即客户端主动向服务端发送第一客户端问候(Client Hello)消息,所述第一Client Hello消息中可以携带客户端的第三公钥和第三公钥对应的第三计算结果。
在一些实施例中,所述第三公钥可以是ECJ-PAKE算法中客户端在第一回合需要传输的X1和X2,所述第三计算结果可以是ECJ-PAKE算法中客户端在第一回合需要传输的X1对应的ZKP(X1)、以及X2对应的ZKP(X2)。
步骤S105,客户端发送第二客户端问候消息。
在一些实施例中,所述第二Client Hello消息中可以携带第四公钥及所述第四公钥对应的第四函数的第四计算结果;其中,第四公钥可以是ECJ-PAKE算法中客户端在第二回合需要传输的Xc,第四计算结果可以是ECJ-PAKE算法中客户端在第二回合需要传输的Xc对应的ZKP(XC)。
在另一些实施例中,所述第二Client Hello消息中可以携带第四公钥及所述第四公钥对应的第四计算结果,以及第三公钥和第三公钥对应的第三计算结果;其中,第四公钥可以是客户端在第二回合需要传输的ECJ-PAKE算法中的Xc,第四计算结果可以是客户端在第二回合需要传输的ECJ-PAKE算法中的Xc对应的ZKP(XC);第三公钥可以是客户端在第一回合需要传输的ECJ-PAKE算法中的X1和X2,所述第三计算结果可以是客户端在第一回合需要传输的ECJ-PAKE算法中的X1对应的ZKP(X1)、以及X2对应的ZKP(X2)。
在具体实施时,客户端可以先发送ECJ-PAKE算法中的X1以及X1对应的ZKP(X1);再接收ECJ-PAKE算法中的X2以及X2对应的ZKP(X2)。或者,客户端可以先发送ECJ-PAKE算法中的X2以及X2对应的ZKP(X2);再发送ECJ-PAKE算法中的X1以及X1对应的ZKP(X1)。即X1以及X1对应的ZKP(X1),与X2以及X2对应的ZKP(X2)通过两条不同的消息中传输。或者,客户端可以同时发送ECJ-PAKE算法中的X1、X1对应的ZKP(X1)、X2以及X2对应的ZKP(X2),即X1、X1对应的ZKP(X1)、X2以及X2对应的ZKP(X2)在同一条消息中传输。
由于连接的不可靠性,第一Client Hello消息可能由客户端以外的其他设备(也成为不存在的来源)发起,因此,服务端在处理第一Client Hello消息时,不保留ECJ-PAKE算法的状态数据。若服务端保留ECJ-PAKE算法的状态数据,服务端可能会由于大量不存在的来源导致服务端的资源被耗尽,进而服务端无法接收新的通信连接。而客户端若能够根据服务端的Hello Retry Request消息正确应答第二Client Hello消息,且第二ClientHello消息中携带第一Client Hello消息中的第三公钥和第三公钥对应的第三函数的计算结果,则能够证明客户端是可靠的,则服务端可以开始保留与客户端的连接状态,与客户端执行后续的协商认证过程。
上述步骤S104至步骤S105中,客户端向服务端发送第三公钥、第三函数、第四公钥和第四函数,使得服务端能够根据第三公钥和第四公钥确定共享秘钥,服务端根据共享秘钥对客户端发送的数据进行解密;若服务端利用共享秘钥解密数据成功,则服务端认证客户端合法,即客户端认证通过;若服务端利用共享秘钥解密数据失败,则服务端认证服客户端不合法,即客户端认证不通过。
本申请实施例提供的认证方法可以基于TLS的扩展能力和TLS协议的安全协商能力实现。本申请实施例所涉及的Hello Retry Request消息、第一Client Hello消息、第二Client Hello消息以及Server Hello消息的消息结构均与现有技术TLS1.3协议中定义的消息的消息结构相同;即本申请实施例利用已有的消息结构传输本申请实施例所需的信息(X1、X2、X3、X4、Xs、Xc、ZKP(X1)、ZKP(X2)、ZKP(X3)、ZKP(X4)、ZKP(Xs)和ZKP(Xc)),与现有技术中的TLS1.3协议兼容,在已有的TLS代码库的基础上增加少量代码即可便捷地实现本申请实施例的认证方法,建立安全的通信通道,本申请实施例的认证方法的时限难度低。
本申请实施例提供的认证方法的另一种详细可选流程,如图3所示,至少可以包括以下步骤:
步骤S201,服务端基于客户端发送的第一客户端问候消息确定第三公钥及所述第三公钥对应的第三函数的第三计算结果。
在一些实施例中,客户端主动向服务端发送第一Client Hello消息,所述第一Client Hello消息中可以携带客户端的第三公钥和第三公钥对应的第三函数的第三计算结果。
在一些实施例中,所述第三公钥可以是客户端在第一回合需要传输的ECJ-PAKE算法中X1和X2,所述第三计算结果可以是客户端在第一回合需要传输的ECJ-PAKE算法中X1对应的ZKP(X1)、以及X2对应的ZKP(X2)。
在具体实施时,服务端可以先接收ECJ-PAKE算法中的X1以及X1对应的ZKP(X1);再接收ECJ-PAKE算法中的X2以及X2对应的ZKP(X2)。或者,客户端可以先接收ECJ-PAKE算法中的X2以及X2对应的ZKP(X2);再接收ECJ-PAKE算法中的X1以及X1对应的ZKP(X1)。或者,客户端可以同时接收ECJ-PAKE算法中的X1、X1对应的ZKP(X1)、X2以及X2对应的ZKP(X2)。
步骤S202,服务端基于所述客户端发送的第二客户端问候消息确定第四公钥及所述第四公钥对应的第四函数的第四计算结果。
在一些实施例中,第二Client Hello消息中可以携带第四公钥及所述第四公钥对应的第四函数;其中,第四公钥可以是客户端在第二回合需要传输的ECJ-PAKE算法中的Xc,第四计算结果可以是客户端在第二回合需要传输的ECJ-PAKE算法中的Xc对应的ZKP(XC)。
在另一些实施例中,第二Client Hello消息中可以携带第四公钥及所述第四公钥对应的第四函数的第四计算结果,以及第三公钥和第三公钥对应的第三函数的第三计算结果;其中,第四公钥可以是客户端在第二回合需要传输的ECJ-PAKE算法中的Xc,第四计算结果可以是客户端在第二回合需要传输的ECJ-PAKE算法中的Xc对应的ZKP(XC);第三公钥可以是客户端在第一回合需要传输的ECJ-PAKE算法中的X1和X2,所述第三函数可以是客户端在第一回合需要传输的ECJ-PAKE算法中的X1对应的ZKP(X1)、以及X2对应的ZKP(X2)。
由于连接的不可靠性,第一Client Hello消息可能由客户端以外的其他设备(也成为不存在的来源)发起,因此,服务端在处理第一Client Hello消息时,不保留ECJ-PAKE算法的状态数据。若服务端保留ECJ-PAKE算法的状态数据,服务端可能会由于大量不存在的来源导致服务端的资源被耗尽,进而服务端无法接收新的通信连接。而客户端若能够根据服务端的Hello Retry Request消息正确应答第二Client Hello消息,且第二ClientHello消息中携带第一Client Hello消息中的第三公钥和第三公钥对应的第三函数的第三计算结果,则能够证明客户端是可靠的,则服务端可以开始保留与客户端的连接状态,与客户端执行后续的协商认证过程。
在一些实施例中,在执行步骤S202之后,所述方法还可以包括:
步骤S203,服务端基于第三公钥和第四公钥确定共享秘钥。
在一些实施例中,客户端向服务端发送第三公钥、第三计算结果、第四公钥和第四计算结果,使得服务端能够根据第三公钥和第四公钥确定共享秘钥,服务端根据共享秘钥对客户端发送的数据进行解密;若服务端利用共享秘钥解密数据成功,则服务端认证客户端合法,即客户端认证通过;若服务端利用共享秘钥解密数据失败,则服务端认证服客户端不合法,即客户端认证不通过。
其中,服务端生成的共享密钥为:Kb=(Xc-(X2×[x4*s]))×[x4]。
Kb是最终生成的共享密钥,x4是X4对应的私钥,s是预共享密钥。
上述步骤S201至步骤S203中,服务端获取共享秘钥,并能够基于获取的共享秘钥对客户端进行认证。在具体实施时,服务端也可以向客户端发送服务端的公钥,以使客户端基于服务端的公钥获取共享秘钥;因此,在步骤S201之后,本申请实施例提供的认证方法还可以包括:
步骤S204,服务端向所述客户端发送第一消息。
在一些实施例中,第一消息中可以携带第一公钥及所述第一公钥对应的第一函数的第一计算结果。
在一些实施例中,所述第一公钥可以是服务端在第一回合需要传输的ECJ-PAKE算法中的X3和X4,第一计算结果可以是服务端在第一回合需要传输的ECJ-PAKE算法中的X3对应的ZKP(X3)、以及X4对应的ZKP(X4);其中,ZKP可以是ECJ-PAKE算法使用的零知识证明。
在具体实施时,服务端可以先发送ECJ-PAKE算法中的X3以及X3对应的ZKP(X3);再发送ECJ-PAKE算法中的X4以及X4对应的ZKP(X4)。或者,服务端可以先是ECJ-PAKE算法中的X4以及X4对应的ZKP(X4);再发送ECJ-PAKE算法中的X3以及X3对应的ZKP(X3)。即X3以及X3对应的ZKP(X3),与X4以及X4对应的ZKP(X4)通过两条不同的消息中传输。或者,服务端可以同时接收ECJ-PAKE算法中的X4、X4对应的ZKP(X4)、X3以及X3对应的ZKP(X3),即X3、X3对应的ZKP(X3)、X4以及X4对应的ZKP(X4)在同一条消息中传输。
在一些实施例中,所述第一消息是与服务端密钥交换(Server Key Exchange)消息不同的消息,如所述第一消息为问候重传请求(Hello Retry Request)消息。
在相关技术中,Hello Retry Request消息用于请求客户端修改握手参数,重新发起协商。而本申请实施例中,Hello Retry Request消息用于服务端向客户端发送ECJ-PAKE算法中服务端第一回合需要传输的X3、ZKP(X3)、X4以及ZKP(X4)。
在步骤S202之后,所述方法还包括:
步骤S205,服务端向客户端发送服务端问候消息。
在一些实施例中,服务端向客户端发送Server Hello消息,Server Hello消息中携带第二公钥和第二公钥对应的第二函数的第二计算结果。
在一些实施例中,所述第二公钥可以是服务端在第二回合需要传输的ECJ-PAKE算法中的Xs,第二计算结果可以服务端在第二回合需要传输的是ECJ-PAKE算法中的Xs对应的ZKP(Xs)。其中,Xs内添加有“密码”,所述“密码”是服务端和客户端预先约定或预先共享的。
其中,Xs由服务端根据X1、X2和X3生成;ZKP(Xs)由服务端根据X4生成。
上述步骤S204至步骤S205中,所述客户端根据服务端发送的第一公钥、第一计算结果、第二公钥和第二计算结果确定服务端和客户端之间的共享秘钥,并利用所确定的共享秘钥对服务端发送的数据进行解密;若客户端利用共享秘钥解密数据成功,则客户端认证服务端合法,即服务端认证通过;若客户端利用共享秘钥解密数据失败,则客户端认证服务端不合法,即服务端认证不通过。
在一些实施例中,在执行步骤S205之后,所述方法还可以包括:
步骤S206,在服务端与客户端协商失败的次数等于阈值的情况下,服务端修改用于生成所述第一公钥和所述第二公钥的密码,和/或服务端修改对客户端的认证方式。
在一些实施例中,服务端与客户端协商失败至少可以包括:客户端无法解密服务端发送的信息或数据,或者,服务端无法解密客户端发送的信息或数据,或者,客户端验证数据错误,或者,服务端验证数据错误等导致传输的数据不符合预期而造成的协商失败。
在一些实施例中,服务端记录协商失败的次数,在协商失败的次数等于阈值或大于阈值的情况下,服务端修改用于生成所述第一公钥和所述第二公钥的密码,和/或服务端修改对客户端的认证方式。可选地,服务端修改对客户端的认证方式可以是完全不用密码认证、或者延迟认证。如此,通过修改用于生成所述第一公钥和所述第二公钥的密码、和/或修改对所述客户端的认证方式,使得服务端能够主动控制和缓解穷举密码攻击,提高通信通道的安全性。其中,用于生成第一公钥和第二公钥的密码可以是PIN码,该密码在本申请实施例提供的认证方法执行之前,由服务端通过广播等方式发送给客户端,以便客户端利用该密码生成Xc。
本申请实施例提供的认证方法可以基于TLS的扩展能够力和TLS协议的安全协商能力实现。本申请实施例所涉及的Hello Retry Request消息、第一Client Hello消息、第二Client Hello消息以及Server Hello消息的消息结构均与现有技术TLS1.3协议中定义的消息的消息结构相同;即本申请实施例利用已有的消息结构传输本申请实施例所需的信息(X1、X2、X3、X4、Xs、Xc、ZKP(X1)、ZKP(X2)、ZKP(X3)、ZKP(X4)、ZKP(Xs)和ZKP(Xc)),与现有技术中的TLS1.3协议兼容,在已有的TLS代码库的基础上增加少量代码即可便捷地实现本申请实施例的认证方法,建立安全的通信通道,本申请实施例的认证方法的时限难度低。
基于上述图2和图3所示的认证方法,本申请实施例提供的认证方法的一种详细处理流程,如图4所示,至少包括以下步骤:
步骤S301,客户端向服务端发送Client Hello消息。
在一些实施例中,Client Hello消息中携带客户端第一回合需要传输的ECJ-PAKE算法中的{(X1,ZKP(X1))}和{(X2,ZKP(X2))}。
步骤S302,服务端向客户端发送Hello Retry Request消息。
在一些实施例中,Hello Retry Request消息中携带服务端第一回合需要传输的ECJ-PAKE算法中的{(X3,ZKP(X3))}和{(X4,ZKP(X4))}。
步骤S303,客户端向服务端发送Client Hello消息,Client Hello消息中携带{(Xc,ZKP(Xc))}。
在一些实施例中,Client Hello消息中携带客户端第二回合需要传输的ECJ-PAKE算法中的{(Xc,ZKP(Xc))}。
步骤S304,服务端向客户端发送Sevice Hello消息。
在一些实施例中,Sevice Hello消息中携带服务端第二回合需要传输的ECJ-PAKE算法中的{(Xs,ZKP(Xs))}。
步骤S305,服务端向客户端发送EncryptedExtensions消息。
在一些实施例中,EncryptedExtensions消息用于传输被加密的扩展数据。
步骤S306,服务端向客户端发送Finished消息。
在一些实施例中,服务端发送Finished消息之后,由客户端对传输过程的上下文进行校验,防止攻击者在通信通道中间修改消息。
步骤S307,客户端向服务端发送Finished消息。
在一些实施例中,客户端向服务端发送Finished消息之后,由服务端对传输过程的上下文进行校验,防止攻击者在通信通道中间修改消息。
步骤S308,客户端与服务端之间传输应用数据。
在一些实施例中,在服务端与客户端协商失败的次数等于阈值的情况下,服务端修改用于生成所述第一公钥和所述第二公钥的密码,和/或服务端修改对客户端的认证方式。其中,服务端与客户端协商失败至少可以包括:步骤S305至步骤S307中任何一个步骤中客户端无法解密服务端发送的信息或数据,或者,服务端无法解密客户端发送的信息或数据,或者,客户端验证数据错误,或者,服务端验证数据错误等导致传输的数据不符合预期而造成的协商失败。
在一些实施例中,服务端记录协商失败的次数,在协商失败的次数等于阈值或大于阈值的情况下,服务端修改用于生成所述第一公钥和所述第二公钥的密码,和/或服务端修改对客户端的认证方式。可选地,服务端修改对客户端的认证方式可以是完全不用密码认证、或者延迟认证。
基于上述图2和图3所示的认证方法,本申请实施例提供的认证方法的一种详细处理流程,如图5所示,至少包括以下步骤:
步骤S401,客户端向服务端发送Client Hello消息。
在一些实施例中,Client Hello消息中携带客户端第一回合需要传输的ECJ-PAKE算法中的{(X1,ZKP(X1))}和{(X2,ZKP(X2))}。
步骤S402,服务端向客户端发送Hello Retry Request消息。
在一些实施例中,Hello Retry Request消息中携带服务端第一回合需要传输的ECJ-PAKE算法中的{(X3,ZKP(X3))}和{(X4,ZKP(X4))}。
步骤S403,客户端向服务端发送Client Hello消息,Client Hello消息中携带ECJ-PAKE算法中的{(Xc,ZKP(Xc))}、{(X1,ZKP(X1))}和{(X2,ZKP(X2))}。
在一些实施例中,Client Hello消息中携带客户端第二回合需要传输的ECJ-PAKE算法中的{(Xc,ZKP(Xc))}。
步骤S404,服务端向客户端发送Sevice Hello消息。
在一些实施例中,Sevice Hello消息中携带服务端第二回合需要传输的ECJ-PAKE算法中的{(Xs,ZKP(Xs))}。
步骤S405,服务端向客户端发送EncryptedExtensions消息。
在一些实施例中,EncryptedExtensions消息用于传输被加密的扩展数据。
步骤S406,服务端向客户端发送Finished消息。
在一些实施例中,服务端发送Finished消息之后,由客户端对传输过程的上下文进行校验,防止攻击者在通信通道中间修改消息。
步骤S407,客户端向服务端发送Finished消息。
在一些实施例中,客户端向服务端发送Finished消息之后,由服务端对传输过程的上下文进行校验,防止攻击者在通信通道中间修改消息。
步骤S408,客户端与服务端之间传输应用数据。
在一些实施例中,在服务端与客户端协商失败的次数等于阈值的情况下,服务端修改用于生成所述第一公钥和所述第二公钥的密码,和/或服务端修改对客户端的认证方式。其中,服务端与客户端协商失败至少可以包括:步骤S405至步骤S407中任何一个步骤中客户端无法解密服务端发送的信息或数据,或者,服务端无法解密客户端发送的信息或数据,或者,客户端验证数据错误,或者,服务端验证数据错误等导致传输的数据不符合预期而造成的协商失败。
基于上述图2和图3所示的认证方法,本申请实施例提供的认证方法的又一种详细处理流程,如图6所示,至少包括以下步骤:
步骤S801,客户端向服务端发送Client Hello消息。
在一些实施例中,Client Hello消息中携带客户端需要传输的ECJ-PAKE算法中的{(X1,ZKP(X1))}。
步骤S802,服务端向客户端发送Hello Retry Request消息。
在一些实施例中,Hello Retry Request消息中携带服务端需要传输的ECJ-PAKE算法中的{(X3,ZKP(X3))}。
步骤S803,客户端向服务端发送Client Hello消息。
在一些实施例中,Client Hello消息中携带客户端需要传输的ECJ-PAKE算法中的{(X2,ZKP(X2))}。
在一些实施例中,若在步骤S801中,Client Hello消息中携带客户端需要传输的ECJ-PAKE算法中的{(X2,ZKP(X2))},则在步骤S803中,Client Hello消息中携带客户端需要传输的ECJ-PAKE算法中的{(X1,ZKP(X1))}。
步骤S804,服务端向客户端发送Hello Retry Request消息。
在一些实施例中,Hello Retry Request消息中携带服务端需要传输的ECJ-PAKE算法中的{(X4,ZKP(X4))}。
在一些实施例中,若在步骤S802中,Client Hello消息中携带客户端需要传输的ECJ-PAKE算法中的{(X3,ZKP(X3))},则在步骤S804中,Client Hello消息中携带客户端需要传输的ECJ-PAKE算法中的{(X4,ZKP(X4))}。
步骤S805,客户端向服务端发送Client Hello消息,Client Hello消息中携带{(Xc,ZKP(Xc))}。
在一些实施例中,Client Hello消息中携带客户端需要传输的ECJ-PAKE算法中的{(Xc,ZKP(Xc))}。
步骤S806,服务端向客户端发送Sevice Hello消息。
在一些实施例中,Sevice Hello消息中携带服务端需要传输的ECJ-PAKE算法中的{(Xs,ZKP(Xs))}。
步骤S807,服务端向客户端发送EncryptedExtensions消息。
在一些实施例中,EncryptedExtensions消息用于传输被加密的扩展数据。
步骤S808,服务端向客户端发送Finished消息。
在一些实施例中,服务端发送Finished消息之后,由客户端对传输过程的上下文进行校验,防止攻击者在通信通道中间修改消息。
步骤S809,客户端向服务端发送Finished消息。
在一些实施例中,客户端向服务端发送Finished消息之后,由服务端对传输过程的上下文进行校验,防止攻击者在通信通道中间修改消息。
步骤S810,客户端与服务端之间传输应用数据。
在一些实施例中,在服务端与客户端协商失败的次数等于阈值的情况下,服务端修改用于生成所述第一公钥和所述第二公钥的密码,和/或服务端修改对客户端的认证方式。其中,服务端与客户端协商失败至少可以包括:步骤S807至步骤S809中任何一个步骤中客户端无法解密服务端发送的信息或数据,或者,服务端无法解密客户端发送的信息或数据,或者,客户端验证数据错误,或者,服务端验证数据错误等导致传输的数据不符合预期而造成的协商失败。
在一些实施例中,服务端记录协商失败的次数,在协商失败的次数等于阈值或大于阈值的情况下,服务端修改用于生成所述第一公钥和所述第二公钥的密码,和/或服务端修改对客户端的认证方式。可选地,服务端修改对客户端的认证方式可以是完全不用密码认证、或者延迟认证。
基于上述图2和图3所示的认证方法,本申请实施例提供的认证方法的还有一种详细处理流程,如图7所示,至少包括以下步骤:
步骤S901,客户端向服务端发送Client Hello消息。
在一些实施例中,Client Hello消息中携带客户端需要传输的ECJ-PAKE算法中的{(X2,ZKP(X2))}。
步骤S902,服务端向客户端发送Hello Retry Request消息。
在一些实施例中,Hello Retry Request消息中携带服务端需要传输的ECJ-PAKE算法中的{(X4,ZKP(X4))}。
步骤S903,客户端向服务端发送Client Hello消息。
在一些实施例中,Client Hello消息中携带客户端需要传输的ECJ-PAKE算法中的{(X1,ZKP(X1))}。
在一些实施例中,若在步骤S901中,Client Hello消息中携带客户端需要传输的ECJ-PAKE算法中的{(X1,ZKP(X1))},则在步骤S903中,Client Hello消息中携带客户端需要传输的ECJ-PAKE算法中的{(X2,ZKP(X2))}。
步骤S904,服务端向客户端发送Hello Retry Request消息。
在一些实施例中,Hello Retry Request消息中携带服务端需要传输的ECJ-PAKE算法中的{(X3,ZKP(X3))}。
在一些实施例中,若在步骤S902中,Client Hello消息中携带客户端需要传输的ECJ-PAKE算法中的{(X4,ZKP(X4))},则在步骤S904中,Client Hello消息中携带客户端需要传输的ECJ-PAKE算法中的{(X3,ZKP(X3))}。
步骤S905,客户端向服务端发送Client Hello消息,Client Hello消息中携带ECJ-PAKE算法中的{(Xc,ZKP(Xc))}、{(X1,ZKP(X1))}和{(X2,ZKP(X2))}。
在一些实施例中,Client Hello消息中携带客户端第二回合需要传输的ECJ-PAKE算法中的{(Xc,ZKP(Xc))}。
步骤S906,服务端向客户端发送Sevice Hello消息。
在一些实施例中,Sevice Hello消息中携带服务端第二回合需要传输的ECJ-PAKE算法中的{(Xs,ZKP(Xs))}。
步骤S907,服务端向客户端发送EncryptedExtensions消息。
在一些实施例中,EncryptedExtensions消息用于传输被加密的扩展数据。
步骤S908,服务端向客户端发送Finished消息。
在一些实施例中,服务端发送Finished消息之后,由客户端对传输过程的上下文进行校验,防止攻击者在通信通道中间修改消息。
步骤S909,客户端向服务端发送Finished消息。
在一些实施例中,客户端向服务端发送Finished消息之后,由服务端对传输过程的上下文进行校验,防止攻击者在通信通道中间修改消息。
步骤S910,客户端与服务端之间传输应用数据。
在一些实施例中,在服务端与客户端协商失败的次数等于阈值的情况下,服务端修改用于生成所述第一公钥和所述第二公钥的密码,和/或服务端修改对客户端的认证方式。其中,服务端与客户端协商失败至少可以包括:步骤S907至步骤S909中任何一个步骤中客户端无法解密服务端发送的信息或数据,或者,服务端无法解密客户端发送的信息或数据,或者,客户端验证数据错误,或者,服务端验证数据错误等导致传输的数据不符合预期而造成的协商失败。
在一些实施例中,服务端记录协商失败的次数,在协商失败的次数等于阈值或大于阈值的情况下,服务端修改用于生成所述第一公钥和所述第二公钥的密码,和/或服务端修改对客户端的认证方式。可选地,服务端修改对客户端的认证方式可以是完全不用密码认证、或者延迟认证。
需要说明的是,本申请实施例中,图2至图7所示的认证方法可以基于TSL协议V1.3实现。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为实现上述认证方法,本申请实施例还提供一种客户端,客户端500的组成结构示意图,如图8所示,包括:
第一处理单元501,用于基于服务端发送的第一消息确定第一公钥及所述第一公钥对应的第一函数的第一计算结果,所述第一消息是与服务端密钥交换消息不同的消息;
基于所述服务端发送的服务端问候消息确定第二公钥及所述第二公钥对应的第二函数的第二计算结果;
其中,所述第一公钥、所述第一计算结果、所述第二公钥和所述第二计算结果用于所述客户端认证所述服务端的合法性。
在一些实施例中,所述客户端500还包括:
第一发送单元502,用于发送第一客户端问候消息,所述第一客户端问候消息中携带第三公钥及所述第三公钥对应的第三函数的第三计算结果;
所述第一发送单元,用于发送第二客户端问候消息;所述第二客户端问候消息中携带第四公钥及所述第四公钥对应的第四函数的第四计算结果;或者,所述第二客户端问候消息中携带所述第三公钥、所述第三计算结果、第四公钥及所述第四公钥对应的第四函数的第四计算结果。
在一些实施例中,所述第一公钥包括ECJ-PAKE算法中的X3和X4,所述第一计算结果包括ECJ-PAKE算法中的ZKP(X3)和Z KP(X4);
所述第二公钥包括ECJ-PAKE算法中的Xs,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xs);
所述第三公钥包括ECJ-PAKE算法中的X1和X2,所述第三计算结果包括ECJ-PAKE算法中的ZKP(X1)和Z KP(X2);
所述第二公钥包括ECJ-PAKE算法中的Xc,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xc)。
在一些实施例中,所述第一处理单元501,用于基于所述第一公钥和所述第二公钥确定共享秘钥,所述共享秘钥用于解密所述服务端发送的数据,以认证所述服务端的合法性。
在一些实施例中,所述第一消息包括问候重传请求消息。
为实现上述认证方法,本申请实施例还提供一种服务端,服务端600的组成结构示意图,如图9所示,包括:
第二处理单元601,用于基于客户端发送的第一客户端问候消息确定第三公钥及所述第三公钥对应的第三函数的第三计算结果;
所述服务端基于所述客户端发送的第二客户端问候消息确定第四公钥及所述第四公钥对应的第四函数的第四计算结果;
其中,所述第三公钥、所述第三计算结果、所述第四公钥和所述第四计算结果用于所述服务端认证所述客户端的合法性。
在一些实施例中,所述第二客户端问候消息中还携带所述第三公钥和所述第三计算结果。
在一些实施例中,所述服务端600还包括:
第二发送单元602,用于向所述客户端发送第一消息,所述第一消息中携带第一公钥及所述第一公钥对应的第一函数的第一计算结果,所述第一消息是与服务端密钥交换消息不同的消息;
所述第二发送单元,用于向所述客户端发送服务端问候消息,所述服务端问候消息携带第二公钥及所述第二公钥对应的第二函数的第二计算结果。
在一些实施例中,所述第一公钥包括ECJ-PAKE算法中的X3和X4,所述第一计算结果包括ECJ-PAKE算法中的ZKP(X3)和Z KP(X4);
所述第二公钥包括ECJ-PAKE算法中的Xs,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xs);
所述第三公钥包括ECJ-PAKE算法中的X1和X2,所述第三计算结果包括ECJ-PAKE算法中的ZKP(X1)和Z KP(X2);
所述第二公钥包括ECJ-PAKE算法中的Xc,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xc)。
在一些实施例中,所述第一消息包括问候重传请求消息。
在一些实施例中,所述服务端600还包括:
在一些实施例中,所述第二处理单元601,用于基于所述第三公钥和所述第四公钥确定共享秘钥,所述共享秘钥用于解密所述客户端发送的数据,以认证所述客户端的合法性。
在一些实施例中,所述第二处理单元601,用于在所述第二处理单元与所述客户端协商失败的次数等于阈值的情况下,修改用于生成所述第一公钥和所述第二公钥的密码,和/或修改对所述客户端的认证方式。
本申请实施例还提供一种认证系统,包括:客户端和服务端,所述客户端,被配置用于向所述服务端发送第一问候消息,所述第一问候消息包括第一信息和第二信息,所述第一信息包括公钥X1和所述公钥X1对应的第五函数的计算结果,所述第二信息包括公钥X2和所述公钥X2对应的第六函数的计算结果;其中,第一问候消息可以是第一Client hello消息,第五函数的计算结果可以是ZKP(X1),第六函数的计算结果可以是ZKP(X2)。
所述服务端,被配置用于向所述客户端发送第一问候重传请求消息,所述第一问候重传请求消息包括第三信息和第四信息,所述第三信息包括公钥X3和所述公钥X3对应第七函数的计算结果,所述第四信息包括公钥X4和所述公钥X4对应的第八函数的计算结果;其中,第一问候重传请求消息可以是第一Hello Retry Request消息,第七函数的计算结果可以是ZKP(X3),第八函数的计算结果可以是ZKP(X4)。
所述客户端,被配置用于向所述服务端发送第二问候消息,所述第二问候消息包括第五信息,所述第五信息包括公钥Xc和所述公钥Xc对应的第九函数的计算结果;其中,第二问候消息可以是第二Client hello消息,第九函数的计算结果可以是ZKP(Xc)。
所述服务端,被配置用于向所述客户端发送第三问候消息,所述第三问候消息包括第六信息,所述第六信息包括公钥Xs和所述公钥Xs对应的第十函数的计算结果;其中,第三问候消息可以是第三Sevice Hello消息,第十函数的计算结果可以是ZKP(Xs)。
所述客户端,被配置用于基于所述公钥Xs生成第一共享密钥;
所述服务端,被配置用于基于所述公钥Xc生成第二共享密钥;
所述第一共享密钥用于所述客户端在与所述服务端传输数据时,对所述数据加密和/或解密;
所述第二共享密钥用于所述服务端在与所述客户端传输数据时,对所述数据加密和/或解密。
在一些实施例中,所述系统被配置用于运行传输层安全TLS协议V1.3;所述第一共享密钥和所述第二共享密钥基于ECJ-PAKE算法生成。
本申请实施例还提供另一种认证系统,包括:客户端和服务端,
所述客户端,被配置用于向所述服务端发送第四问候消息,所述第四问候消息包括第一信息或第二信息,所述第一信息包括公钥X1和所述公钥X1对应的第五函数的计算结果;所述第二信息包括公钥X2和所述公钥X2对应的第六函数的计算结果;其中,第四问候消息可以是第四Client hello消息,第五函数的计算结果可以是ZKP(X1),第六函数的计算结果可以是ZKP(X2)。
所述服务端,被配置用于向所述客户端发送第二问候重传请求消息,所述第二问候重传请求消息包括第三信息或第四消息,所述第三信息包括公钥X3和所述公钥X3对应第七函数的计算结果,所述第四信息包括公钥X4和所述公钥X4对应的第八函数的计算结果;其中,第二问候重传请求消息可以是第二Hello Retry Request消息,第七函数的计算结果可以是ZKP(X3),第八函数的计算结果可以是ZKP(X4)。
所述客户端,被配置用于向所述服务端发送第五问候消息,当所述第三问候消息包括所述第一信息时,所述第五问候消息包括所述第二信息;当所述第三问候消息包括所述第二信息时,所述第五问候消息包括所述第一信息;其中,第五问候消息可以是第五Client hello消息。
所述服务端,被配置用于向所述客户端发送第三问候重传请求消息,当所述第二问候重传请求消息包括所述第三信息时,所述第三问候重传请求消息包括所述第四信息;当所述第二问候重传请求消息包括所述第四信息时,所述第三问候重传请求消息包括所述第三信息;其中,所述第三问候重传请求消息可以是第三Hello Retry Request消息。
所述客户端,被配置用于向所述服务端发送第六问候消息,所述第六问候消息包括第五信息,所述第五信息包括公钥Xc和所述公钥Xc对应的第九函数的计算结果;其中,第九函数的计算结果可以是ZKP(Xc)。
所述服务端,被配置用于向所述客户端发送第七问候消息,所述第七问候消息包括第六信息,所述第六信息包括公钥Xs和所述公钥Xs对应的第十函数的计算结果;其中第七问候消息可以是第七Sevice Hello消息,第十函数的计算结果可以是ZKP(Xs)。
所述客户端,被配置用于基于所述公钥Xs生成第一共享密钥;
所述服务端,被配置用于基于所述公钥Xc生成第二共享密钥;
所述第一共享密钥,用于所述客户端在与所述服务端传输数据时,对所述数据加密和/或解密;
所述第二共享密钥,用于所述服务端在与所述客户端传输数据时,对所述数据加密和/或解密。
在一些实施例中,所述系统被配置用于运行TLS协议V1.3;所述第一共享密钥和所述第二共享密钥基于所述ECJ-PAKE算法生成。
需要说明的是,本申请实施例中的认证系统所包括的客户端还可以称为主动发送端,认证系统所包括的服务端还可以称为被动接收端。
本申请实施例还提供一种客户端,包括处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行上述客户端执行的认证方法的步骤。
本申请实施例还提供一种服务端,包括处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,所述处理器用于运行所述计算机程序时,执行上述服务端执行的认证方法的步骤。
本申请实施例还提供一种芯片,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行上述客户端执行的认证方法。
本申请实施例还提供一种芯片,包括:处理器,用于从存储器中调用并运行计算机程序,使得安装有所述芯片的设备执行上述服务端执行的认证方法。
本申请实施例还提供一种存储介质,存储有可执行程序,所述可执行程序被处理器执行时,实现上述客户端执行的认证方法。
本申请实施例还提供一种存储介质,存储有可执行程序,所述可执行程序被处理器执行时,实现上述服务端执行的认证方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行上述客户端执行的认证方法。
本申请实施例还提供一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行上述服务端执行的认证方法。
本申请实施例还提供一种计算机程序,所述计算机程序使得计算机执行上述客户端执行的认证方法。
本申请实施例还提供一种计算机程序,所述计算机程序使得计算机执行上述服务端执行的认证方法。
图10是本申请实施例的电子设备(客户端和服务端)的硬件组成结构示意图,电子设备700包括:至少一个处理器701、存储器702和至少一个网络接口704。电子设备700中的各个组件通过总线系统705耦合在一起。可理解,总线系统705用于实现这些组件之间的连接通信。总线系统705除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图10中将各种总线都标为总线系统705。
可以理解,存储器702可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,ErasableProgrammable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,ElectricallyErasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagneticrandom access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,SynchronousStatic Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random AccessMemory)、同步动态随机存取存储器(SDRAM,Synchronous Dynamic Random AccessMemory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data RateSynchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器702旨在包括但不限于这些和任意其它适合类型的存储器。
本申请实施例中的存储器702用于存储各种类型的数据以支持电子设备700的操作。这些数据的示例包括:用于在电子设备700上操作的任何计算机程序,如应用程序7022。实现本申请实施例方法的程序可以包含在应用程序7022中。
上述本申请实施例揭示的方法可以应用于处理器701中,或者由处理器701实现。处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器701可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器701可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器702,处理器701读取存储器702中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,电子设备700可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,ProgrammableLogic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、FPGA、通用处理器、控制器、MCU、MPU、或其他电子元件实现,用于执行前述方法。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围,凡在本申请的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本申请的保护范围之内。

Claims (26)

1.一种认证方法,其特征在于,所述方法包括:
客户端基于服务端发送的第一消息确定第一公钥及所述第一公钥对应的第一函数的第一计算结果,所述第一消息是与服务端密钥交换消息不同的消息;
所述客户端基于所述服务端发送的服务端问候消息确定第二公钥及所述第二公钥对应的第二函数的第二计算结果;
所述客户端对所述第一计算结果验证,以验证所述服务端是所述第一公钥所对应私钥的持有者,并对所述第二计算结果验证,以验证所述服务端是所述第二公钥所对应私钥的持有者;
所述客户端基于所述第一公钥和所述第二公钥确定共享密钥,所述共享密钥用于解密所述服务端发送的数据,以认证所述服务端的合法性。
2.根据权利要求1所述的方法,其特征在于,所述客户端接收所述第一消息之前,所述方法还包括:
所述客户端发送第一客户端问候消息,所述第一客户端问候消息中携带第三公钥及所述第三公钥对应的第三函数的第三计算结果;
所述客户端接收所述第一消息之后,所述方法还包括:
所述客户端发送第二客户端问候消息;所述第二客户端问候消息中携带第四公钥及所述第四公钥对应的第四函数的第四计算结果;或者,所述第二客户端问候消息中携带所述第三公钥、所述第三计算结果、第四公钥及所述第四公钥对应的第四函数的第四计算结果。
3.根据权利要求2所述的方法,其特征在于,所述第一公钥包括ECJ-PAKE算法中的X3和X4,所述第一计算结果包括ECJ-PAKE算法中的ZKP(X3)和ZKP(X4);
所述第二公钥包括ECJ-PAKE算法中的Xs,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xs);
所述第三公钥包括ECJ-PAKE算法中的X1和X2,所述第三计算结果包括ECJ-PAKE算法中的ZKP(X1)和ZKP(X2);
所述第二公钥包括ECJ-PAKE算法中的Xc,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xc)。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述第一消息包括问候重传请求消息。
5.一种认证方法,其特征在于,所述方法包括:
服务端基于客户端发送的第一客户端问候消息确定第三公钥及所述第三公钥对应的第三函数的第三计算结果;
所述服务端基于所述客户端发送的第二客户端问候消息确定第四公钥及所述第四公钥对应的第四函数的第四计算结果;
所述服务端对所述第三计算结果验证,以验证所述客户端是所述第三公钥所对应私钥的持有者,并对所述第四计算结果验证,以验证所述客户端是所述第四公钥所对应私钥的持有者;
所述服务端基于所述第三公钥和所述第四公钥确定共享密钥,所述共享密钥用于解密所述客户端发送的数据,以认证所述客户端的合法性。
6.根据权利要求5所述的方法,其特征在于,所述第二客户端问候消息中还携带所述第三公钥和所述第三计算结果。
7.根据权利要求5或6所述的方法,其特征在于,所述服务端接收到所述第一客户端问候消息之后,所述方法还包括:
所述服务端向所述客户端发送第一消息,所述第一消息中携带第一公钥及所述第一公钥对应的第一函数的第一计算结果,所述第一消息是与服务端密钥交换消息不同的消息;
所述服务端接收到所述第二客户端问候消息之后,所述方法还包括:
所述服务端向所述客户端发送服务端问候消息,所述服务端问候消息携带第二公钥及所述第二公钥对应的第二函数的第二计算结果。
8.根据权利要求7所述的方法,其特征在于,所述第一公钥包括ECJ-PAKE算法中的X3和X4,所述第一计算结果包括ECJ-PAKE算法中的ZKP(X3)和ZKP(X4);
所述第二公钥包括ECJ-PAKE算法中的Xs,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xs);
所述第三公钥包括ECJ-PAKE算法中的X1和X2,所述第三计算结果包括ECJ-PAKE算法中的ZKP(X1)和ZKP(X2);
所述第二公钥包括ECJ-PAKE算法中的Xc,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xc)。
9.根据权利要求7所述的方法,其特征在于,所述第一消息包括问候重传请求消息。
10.根据权利要求5或6所述的方法,其特征在于,所述服务端确定所述第四公钥及所述第四函数之后,所述方法还包括:
在所述服务端与所述客户端协商失败的次数等于阈值的情况下,所述服务端修改用于生成第一公钥和第二公钥的密码,和/或所述服务端修改对所述客户端的认证方式。
11.一种客户端,其特征在于,所述客户端包括:
第一处理单元,用于基于服务端发送的第一消息确定第一公钥及所述第一公钥对应的第一函数的第一计算结果,所述第一消息是与服务端密钥交换消息不同的消息;
基于所述服务端发送的服务端问候消息确定第二公钥及所述第二公钥对应的第二函数的第二计算结果;
所述第一处理单元,还用于对所述第一计算结果验证,以验证所述服务端是所述第一公钥所对应私钥的持有者,并对所述第二计算结果验证,以验证所述服务端是所述第二公钥所对应私钥的持有者;
所述客户端基于所述第一公钥和所述第二公钥确定共享密钥,所述共享密钥用于解密所述服务端发送的数据,以认证所述服务端的合法性。
12.根据权利要求11所述的客户端,其特征在于,所述客户端还包括:
第一发送单元,用于发送第一客户端问候消息,所述第一客户端问候消息中携带第三公钥及所述第三公钥对应的第三函数的第三计算结果;
所述第一发送单元,用于发送第二客户端问候消息;
所述第二客户端问候消息中携带第四公钥及所述第四公钥对应的第四函数的第四计算结果;或者,所述第二客户端问候消息中携带所述第三公钥、所述第三计算结果、第四公钥及所述第四公钥对应的第四函数的第四计算结果。
13.根据权利要求12所述的客户端,其特征在于,所述第一公钥包括ECJ-PAKE算法中的X3和X4,所述第一计算结果包括ECJ-PAKE算法中的ZKP(X3)和Z KP(X4);
所述第二公钥包括ECJ-PAKE算法中的Xs,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xs);
所述第三公钥包括ECJ-PAKE算法中的X1和X2,所述第三计算结果包括ECJ-PAKE算法中的ZKP(X1)和Z KP(X2);
所述第二公钥包括ECJ-PAKE算法中的Xc,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xc)。
14.根据权利要求11至13任一项所述的客户端,其特征在于,所述第一消息包括问候重传请求消息。
15.一种服务端,其特征在于,所述服务端包括:
第二处理单元,用于基于客户端发送的第一客户端问候消息确定第三公钥及所述第三公钥对应的第三函数的第三计算结果;
所述服务端基于所述客户端发送的第二客户端问候消息确定第四公钥及所述第四公钥对应的第四函数的第四计算结果;
所述第二处理单元,用于对所述第三计算结果验证,以验证所述客户端是所述第三公钥所对应私钥的持有者,并对所述第四计算结果验证,以验证所述客户端是所述第四公钥所对应私钥的持有者;
所述服务端基于所述第三公钥和所述第四公钥确定共享密钥,所述共享密钥用于解密所述客户端发送的数据,以认证所述客户端的合法性。
16.根据权利要求15所述的服务端,其特征在于,所述第二客户端问候消息中还携带所述第三公钥和所述第三计算结果。
17.根据权利要求15或16所述的服务端,其特征在于,所述服务端还包括:
第二发送单元,用于向所述客户端发送第一消息,所述第一消息中携带第一公钥及所述第一公钥对应的第一函数的第一计算结果,所述第一消息是与服务端密钥交换消息不同的消息;
所述第二发送单元,用于向所述客户端发送服务端问候消息,所述服务端问候消息携带第二公钥及所述第二公钥对应的第二函数的第二计算结果。
18.根据权利要求17所述的服务端,其特征在于,所述第一公钥包括ECJ-PAKE算法中的X3和X4,所述第一计算结果包括ECJ-PAKE算法中的ZKP(X3)和Z KP(X4);
所述第二公钥包括ECJ-PAKE算法中的Xs,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xs);
所述第三公钥包括ECJ-PAKE算法中的X1和X2,所述第三计算结果包括ECJ-PAKE算法中的ZKP(X1)和Z KP(X2);
所述第二公钥包括ECJ-PAKE算法中的Xc,所述第二计算结果包括ECJ-PAKE算法中的ZKP(Xc)。
19.根据权利要求17所述的服务端,其特征在于,所述第一消息包括问候重传请求消息。
20.根据权利要求15或16所述的服务端,其特征在于,
所述第二处理单元,还用于在所述第二处理单元与所述客户端协商失败的次数等于阈值的情况下,修改用于生成第一公钥和第二公钥的密码,和/或修改对所述客户端的认证方式。
21.一种设备,包括处理器和用于存储能够在处理器上运行的计算机程序的存储器,其中,
所述处理器用于运行所述计算机程序时,执行权利要求1至4任一项所述的认证方法,或执行权利要求5至10任一项所述的认证方法。
22.一种存储介质,存储有可执行程序,所述可执行程序被处理器执行时,实现权利要求1至4任一项所述的认证方法,或执行权利要求5至10任一项所述的认证方法。
23.一种认证系统,包括:客户端和服务端,其特征在于,
所述客户端,被配置用于向所述服务端发送第一问候消息,所述第一问候消息包括第一信息和第二信息,所述第一信息包括公钥X1和所述公钥X1对应的第五函数的计算结果,所述第二信息包括公钥X2和所述公钥X2对应的第六函数的计算结果;
所述服务端,被配置用于向所述客户端发送第一问候重传请求消息,所述第一问候重传请求消息包括第三信息和第四信息,所述第三信息包括公钥X3和所述公钥X3对应第七函数的计算结果,所述第四信息包括公钥X4和所述公钥X4对应的第八函数的计算结果;
所述客户端,被配置用于向所述服务端发送第二问候消息,所述第二问候消息包括第五信息,所述第五信息包括公钥Xc和所述公钥Xc对应的第九函数的计算结果;
所述服务端,被配置用于向所述客户端发送第三问候消息,所述第三问候消息包括第六信息,所述第六信息包括公钥Xs和所述公钥Xs对应的第十函数的计算结果;
所述客户端,被配置用于基于所述公钥Xs生成第一共享密钥;
所述服务端,被配置用于基于所述公钥Xc生成第二共享密钥;
所述第一共享密钥用于所述客户端在与所述服务端传输数据时,对所述数据加密和/或解密;
所述第二共享密钥用于所述服务端在与所述客户端传输数据时,对所述数据加密和/或解密。
24.根据权利要求23所述的系统,其特征在于,所述系统被配置用于运行传输层安全TLS协议V1.3;
所述第一共享密钥和所述第二共享密钥基于ECJ-PAKE算法生成。
25.一种认证系统,包括:客户端和服务端,其特征在于,
所述客户端,被配置用于向所述服务端发送第四问候消息,所述第四问候消息包括第一信息或第二信息,所述第一信息包括公钥X1和所述公钥X1对应的第五函数的计算结果;所述第二信息包括公钥X2和所述公钥X2对应的第六函数的计算结果;
所述服务端,被配置用于向所述客户端发送第二问候重传请求消息,所述第二问候重传请求消息包括第三信息或第四信息,所述第三信息包括公钥X3和所述公钥X3对应第七函数的计算结果,所述第四信息包括公钥X4和所述公钥X4对应的第八函数的计算结果;
所述客户端,被配置用于向所述服务端发送第五问候消息,当所述第四问候消息包括所述第一信息时,所述第五问候消息包括所述第二信息;当所述第四问候消息包括所述第二信息时,所述第五问候消息包括所述第一信息;
所述服务端,被配置用于向所述客户端发送第三问候重传请求消息,当所述第二问候重传请求消息包括所述第三信息时,所述第三问候重传请求消息包括所述第四信息;当所述第二问候重传请求消息包括所述第四信息时,所述第三问候重传请求消息包括所述第三信息;
所述客户端,被配置用于向所述服务端发送第六问候消息,所述第六问候消息包括第五信息,所述第五信息包括公钥Xc和所述公钥Xc对应的第九函数的计算结果;
所述服务端,被配置用于向所述客户端发送第七问候消息,所述第七问候消息包括第六信息,所述第六信息包括公钥Xs和所述公钥Xs对应的第十函数的计算结果;
所述客户端,被配置用于基于所述公钥Xs生成第一共享密钥;
所述服务端,被配置用于基于所述公钥Xc生成第二共享密钥;
所述第一共享密钥,用于所述客户端在与所述服务端传输数据时,对所述数据加密和/或解密;
所述第二共享密钥,用于所述服务端在与所述客户端传输数据时,对所述数据加密和/或解密。
26.根据权利要求25所述的系统,其特征在于,所述系统被配置用于运行TLS协议V1.3;
所述第一共享密钥和所述第二共享密钥基于ECJ-PAKE算法生成。
CN202010901001.9A 2020-08-31 2020-08-31 一种认证方法、客户端、服务端及存储介质 Active CN114124423B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202010901001.9A CN114124423B (zh) 2020-08-31 2020-08-31 一种认证方法、客户端、服务端及存储介质
CN202080102851.0A CN115812293A (zh) 2020-08-31 2020-10-30 一种认证方法、电子设备及存储介质
PCT/CN2020/125567 WO2022041473A1 (zh) 2020-08-31 2020-10-30 一种认证方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010901001.9A CN114124423B (zh) 2020-08-31 2020-08-31 一种认证方法、客户端、服务端及存储介质

Publications (2)

Publication Number Publication Date
CN114124423A CN114124423A (zh) 2022-03-01
CN114124423B true CN114124423B (zh) 2023-04-07

Family

ID=80354476

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010901001.9A Active CN114124423B (zh) 2020-08-31 2020-08-31 一种认证方法、客户端、服务端及存储介质
CN202080102851.0A Pending CN115812293A (zh) 2020-08-31 2020-10-30 一种认证方法、电子设备及存储介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202080102851.0A Pending CN115812293A (zh) 2020-08-31 2020-10-30 一种认证方法、电子设备及存储介质

Country Status (2)

Country Link
CN (2) CN114124423B (zh)
WO (1) WO2022041473A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101431415A (zh) * 2008-12-12 2009-05-13 天柏宽带网络科技(北京)有限公司 一种双向认证的方法
CN107483195A (zh) * 2017-09-08 2017-12-15 哈尔滨工业大学深圳研究生院 物联网环境下安全的双方认证与密钥协商协议
CN109302369A (zh) * 2017-07-24 2019-02-01 贵州白山云科技股份有限公司 一种基于密钥验证的数据传输方法及装置
CN109314705A (zh) * 2016-07-14 2019-02-05 英特尔公司 使用组加密密钥的用于大规模可伸缩动态多点虚拟私有网络的系统、装置和方法
CN112425136A (zh) * 2018-05-16 2021-02-26 伊耐斯克泰克-计算机科学与技术系统工程研究所 采用多方计算(mpc)的物联网安全性

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2334008A1 (en) * 2009-12-10 2011-06-15 Tata Consultancy Services Limited A system and method for designing secure client-server communication protocols based on certificateless public key infrastructure
US8782774B1 (en) * 2013-03-07 2014-07-15 Cloudflare, Inc. Secure session capability using public-key cryptography without access to the private key
US10050789B2 (en) * 2015-04-24 2018-08-14 Red Hat, Inc. Kerberos preauthentication with J-PAKE
US20170279788A1 (en) * 2016-03-28 2017-09-28 Internet Brands, Inc. Secure remote password retrieval
CN110999203B (zh) * 2017-05-08 2021-09-07 亚马逊技术有限公司 用于生成共享密钥的方法和系统
US20190034919A1 (en) * 2017-12-29 2019-01-31 Intel Corporation Securing Electronic Wallet Transactions
CN111464486B (zh) * 2019-01-22 2023-04-07 阿里巴巴集团控股有限公司 信息交互方法、装置以及计算设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101431415A (zh) * 2008-12-12 2009-05-13 天柏宽带网络科技(北京)有限公司 一种双向认证的方法
CN109314705A (zh) * 2016-07-14 2019-02-05 英特尔公司 使用组加密密钥的用于大规模可伸缩动态多点虚拟私有网络的系统、装置和方法
CN109302369A (zh) * 2017-07-24 2019-02-01 贵州白山云科技股份有限公司 一种基于密钥验证的数据传输方法及装置
CN107483195A (zh) * 2017-09-08 2017-12-15 哈尔滨工业大学深圳研究生院 物联网环境下安全的双方认证与密钥协商协议
CN112425136A (zh) * 2018-05-16 2021-02-26 伊耐斯克泰克-计算机科学与技术系统工程研究所 采用多方计算(mpc)的物联网安全性

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Comprehensive analysis of the authentication methods in wireless body area networks;Mohammad Masdari,Saflyeh Ahmadzadeh;《Wiley Online Library》;20161017;全文 *
标准模型下口令认证密钥交换协议的分析与设计;胡学先;《中国优秀博士学位论文全文库》;20110731;全文 *

Also Published As

Publication number Publication date
CN114124423A (zh) 2022-03-01
WO2022041473A1 (zh) 2022-03-03
CN115812293A (zh) 2023-03-17

Similar Documents

Publication Publication Date Title
US11665542B2 (en) Method and device for network slice authentication
CN111373783A (zh) 一种信息传输方法及装置、通信设备
CN108012264A (zh) 用于802.1x载体热点和Wi-Fi呼叫认证的基于经加密的IMSI的方案
WO2017133021A1 (zh) 一种安全处理方法及相关设备
CN113938880B (zh) 一种应用的验证方法及装置
CN114584969B (zh) 基于关联加密的信息处理方法及装置
WO2021165056A1 (en) Privacy protection for sidelink communications
CN116723507B (zh) 针对边缘网络的终端安全方法及装置
CN114124423B (zh) 一种认证方法、客户端、服务端及存储介质
CN115550074A (zh) 零信任验证方法、装置、系统及电子设备
JP7235879B2 (ja) 無線通信及び機器
CN113348682B (zh) 无线通信的方法、终端设备、接入网设备和核心网设备
CN115280803A (zh) 多媒体广播组播服务认证方法、装置、设备及介质
CN116528234B (zh) 一种虚拟机的安全可信验证方法及装置
US20230362150A1 (en) Re-authentication of user equipment (ue) triggered by home network
WO2023143022A1 (zh) 用于随机接入过程中数据处理的方法和装置
RU2783340C1 (ru) Способ и устройство беспроводной связи
CN118265031A (zh) 信息安全方法、装置、通信设备和存储介质
CN118265033A (zh) 一种信息处理方法、装置及可读存储介质
CN116210246A (zh) 一种蓝牙设备接入认证方法、电子设备及存储介质
CN113574917A (zh) 无线通信的方法和设备
CN115443736A (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