CN106972919A - 一种密钥协商方法和装置 - Google Patents

一种密钥协商方法和装置 Download PDF

Info

Publication number
CN106972919A
CN106972919A CN201710199150.3A CN201710199150A CN106972919A CN 106972919 A CN106972919 A CN 106972919A CN 201710199150 A CN201710199150 A CN 201710199150A CN 106972919 A CN106972919 A CN 106972919A
Authority
CN
China
Prior art keywords
client
server
public key
key
random number
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201710199150.3A
Other languages
English (en)
Other versions
CN106972919B (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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology 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 Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201710199150.3A priority Critical patent/CN106972919B/zh
Publication of CN106972919A publication Critical patent/CN106972919A/zh
Application granted granted Critical
Publication of CN106972919B publication Critical patent/CN106972919B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/18Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

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

Abstract

本发明实施例提供了一种密钥协商方法和装置,其中的方法包括:针对来自客户端的握手请求,向所述客户端发送携带有服务器公钥的响应消息;述服务器公钥为根据所述服务器生成的关键随机数所生成;通过带外方式向所述客户端发送所述关键随机数;接收所述客户端根据所述关键随机数生成的客户端公钥;根据所述服务器公钥以及所述客户端公钥,确定目标密钥。本发明实施例可以有效防止中间人攻击,提高数据传输的安全性。

Description

一种密钥协商方法和装置
技术领域
本发明涉及通信技术领域,特别是涉及一种密钥协商方法和装置。
背景技术
MITM(Man-in-the-Middle Attack,中间人攻击)是一种间接的入侵攻击,攻击者通过拦截正常的网络通信数据,进行数据篡改和嗅探,而通信双方却毫不知情。
随着通信技术的不断发展,MITM攻击也越来越多样化。最初,由于很多通信协议都是以明文的方式进行传输的,如HTTP(HyperText Transfer Protocol,超文本传输协议)、FTP(File Transfer Protocol,文件传输协议)、Telnet(远程终端协议)等通信协议,因此攻击者只要将网卡设为混杂模式,伪装成代理服务器监听特定的流量就可以实现MITM攻击。如今,越来越多的服务商(如网上银行、邮箱登陆等)开始采用SSL(Secure SocketsLayer,安全套接层)等加密通信技术,例如HTTPS(Hyper Text Transfer Protocol overSecure Socket Layer,安全的HTTP通道)就是建立在SSL基础上的,旨在通过加密方式为网络通信提供安全保障,因此,攻击者可以在客户端与服务器进行HTTPS握手的过程中,通过拦截客户端的请求信息实现MITM攻击。
现有的针对SSL通信过程的MITM攻击过程可以包括:攻击者在客户端与服务器进行HTTPS握手的过程中,拦截客户端的请求信息,由于该请求信息中携带有客户端生成的明文随机数,攻击者可以获取其中的明文随机数,并且向服务器发送伪造的客户端的请求信息;接下来,攻击者拦截服务器向客户端发送的服务器证书和服务器公钥,生成伪造证书和伪造公钥,并且用已拦截到的明文随机数对伪造证书进行签名,再将签名后的伪造证书以及伪造公钥发送给客户端。
由于伪造证书是利用客户端生成的明文随机数进行签名得到的,因此客户端对伪造证书的签名验证通过,客户端会利用攻击者发送的伪造公钥对数据进行加密,并且向服务器发送加密数据;攻击者拦截到该加密数据后,可以通过自身的私钥对加密数据进行解密,然后再利用服务器公钥对解密后的数据进行加密,并发送给服务器。因此,服务器和客户端之间传输的数据对于攻击者来说是透明的,攻击者可以在服务器和客户端毫不知情的情况下,获取数据信息或者篡改数据信息;也即,现有的SSL通信过程仍然难以防止中间人攻击的情况发生,为用户信息带来极大的安全隐患。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种密钥协商方法和装置。
根据本发明的一个方面,提供了一种密钥协商方法,应用于服务器,包括:
针对来自客户端的握手请求,向所述客户端发送携带有服务器公钥的响应消息;所述服务器公钥为根据所述服务器生成的关键随机数所生成;
通过带外方式向所述客户端发送所述关键随机数;
接收所述客户端根据所述关键随机数生成的客户端公钥;
根据所述服务器公钥以及所述客户端公钥,确定目标密钥。
可选地,所述服务器公钥包括:服务器静态公钥和服务器瞬态公钥,则所述针对来自客户端的握手请求,向所述客户端发送携带有服务器公钥的响应消息的步骤,包括:
针对来自客户端的握手请求,生成关键随机数、第一随机数、以及第二随机数;
在预设的椭圆曲线上确定第一基点,根据所述第一随机数和所述第一基点生成服务器静态私钥以及服务器静态公钥;
根据所述关键随机数在所述椭圆曲线上确定第二基点,根据所述第二随机数和所述第二基点生成服务器瞬态私钥以及服务器瞬态公钥;
向所述客户端发送响应消息;所述响应消息中包括所述服务器静态公钥和所述服务器瞬态公钥。
可选地,所述客户端公钥包括:客户端静态公钥和客户端瞬态公钥;其中,所述客户端静态公钥为所述客户端根据预设椭圆曲线上的第三基点和所述客户端的第三随机数所生成;所述客户端瞬态公钥为所述客户端根据所述关键随机数在所述椭圆曲线上确定的第四基点和所述客户端的第四随机数所生成。
可选地,所述根据所述服务器公钥以及所述客户端公钥,确定目标密钥的步骤,包括:
根据所述服务器静态私钥和所述客户端静态公钥计算得到第二静态密钥,以及根据所述服务器瞬态私钥和所述客户端瞬态公钥计算得到第二瞬态密钥;
根据所述第二静态密钥和所述第二瞬态密钥确定目标密钥。
可选地,所述方法还包括:
接收所述客户端发送的、最新客户端静态公钥和最新客户端瞬态公钥;
根据所述服务器静态私钥、服务器瞬态私钥、所述最新客户端静态公钥、以及所述最新客户端瞬态公钥,对所述目标密钥进行更新,得到最新目标密钥。
可选地,所述响应消息中还包括:所述服务器根据所述关键随机数签名得到的服务器证书,以使所述客户端对所述服务器证书进行签名验证。
可选地,所述带外方式包括如下方式中的至少一种:验证码、邮件、以及图片。
依据本发明的另一方面,提供了一种密钥协商方法,应用于客户端,包括:
接收服务器针对所述客户端的握手请求发送的、携带有服务器公钥的响应消息;所述服务器公钥为所述服务器根据关键随机数所生成;
接收所述服务器通过带外方式发送的所述关键随机数;
向所述服务器发送根据所述关键随机数生成的客户端公钥;
根据所述服务器公钥以及所述客户端公钥,确定目标密钥。
可选地,所述客户端公钥包括:客户端静态公钥和客户端瞬态公钥;则所述向所述服务器发送根据所述关键随机数生成的客户端公钥的步骤,包括:
在预设的椭圆曲线上确定第三基点,根据第三随机数和所述第三基点生成客户端静态私钥和客户端静态公钥;
根据所述关键随机数在所述椭圆曲线上确定第四基点,根据第四随机数和所述第四基点生成客户端瞬态私钥和客户端瞬态公钥;
向所述服务器发送所述客户端静态公钥和客户端瞬态公钥。
可选地,所述服务器公钥包括:服务器静态公钥和服务器瞬态公钥;其中,所述服务器静态公钥为所述服务器根据预设椭圆曲线上的第一基点和所述服务器的第一随机数所生成;所述服务器瞬态公钥为所述服务器根据所述关键随机数在所述椭圆曲线上确定的第二基点和所述服务器的第二随机数所生成。
可选地,所述根据所述服务器公钥以及所述客户端公钥,确定目标密钥的步骤,包括:
根据所述客户端静态私钥和所述服务器静态公钥计算得到第一静态密钥,以及根据所述客户端瞬态私钥和所述服务器瞬态公钥计算得到第一瞬态密钥;
根据所述第一静态密钥和所述第一瞬态密钥确定目标密钥。
可选地,所述方法还包括:
接收所述服务器发送的、最新服务器静态公钥和最新服务器瞬态公钥;
根据所述客户端静态私钥、客户端瞬态私钥、最新服务器静态公钥、以及最新服务器瞬态公钥,对所述目标密钥进行更新,得到最新目标密钥。
可选地,所述响应消息中还包括:所述服务器根据所述关键随机数签名得到的服务器证书;
则所述方法还包括:
根据所述关键随机数,对所述服务器证书进行签名验证;
若所述服务器证书通过签名验证,则同意与所述服务器进行密钥协商;否则,拒绝与所述服务器进行密钥协商。
可选地,所述带外方式包括如下方式中的至少一种:验证码、邮件、以及图片。
依据本发明的再一方面,提供了一种密钥协商装置,应用于服务器,包括:
响应消息发送模块,用于针对来自客户端的握手请求,向所述客户端发送携带有服务器公钥的响应消息;所述服务器公钥为根据所述服务器生成的关键随机数所生成;
关键随机数发送模块,用于通过带外方式向所述客户端发送所述关键随机数;
客户端公钥接收模块,用于接收所述客户端根据所述关键随机数生成的客户端公钥;
服务器目标密钥生成模块,用于根据所述服务器公钥以及所述客户端公钥,确定目标密钥。
可选地,所述服务器公钥包括:服务器静态公钥和服务器瞬态公钥,则所述响应消息发送模块,包括:
第一生成子模块,用于针对来自客户端的握手请求,生成关键随机数、第一随机数、以及第二随机数;
第二生成子模块,用于在预设的椭圆曲线上确定第一基点,根据所述第一随机数和所述第一基点生成服务器静态私钥以及服务器静态公钥;
第三生成子模块,用于根据所述关键随机数在所述椭圆曲线上确定第二基点,根据所述第二随机数和所述第二基点生成服务器瞬态私钥以及服务器瞬态公钥;
消息发送子模块,用于向所述客户端发送响应消息;所述响应消息中包括所述服务器静态公钥和所述服务器瞬态公钥。
可选地,所述客户端公钥包括:客户端静态公钥和客户端瞬态公钥;其中,所述客户端静态公钥为所述客户端根据预设椭圆曲线上的第三基点和所述客户端的第三随机数所生成;所述客户端瞬态公钥为所述客户端根据所述关键随机数在所述椭圆曲线上确定的第四基点和所述客户端的第四随机数所生成。
可选地,所述服务器目标密钥生成模块,包括:
第一计算子模块,用于根据所述服务器静态私钥和所述客户端静态公钥计算得到第二静态密钥,以及根据所述服务器瞬态私钥和所述客户端瞬态公钥计算得到第二瞬态密钥;
第一确定子模块,用于根据所述第二静态密钥和所述第二瞬态密钥确定目标密钥。
可选地,所述装置还包括:
客户端更新密钥接收模块,用于接收所述客户端发送的、最新客户端静态公钥和最新客户端瞬态公钥;
服务器目标密钥更新模块,用于根据所述服务器静态私钥、服务器瞬态私钥、所述最新客户端静态公钥、以及所述最新客户端瞬态公钥,对所述目标密钥进行更新,得到最新目标密钥。
可选地,所述响应消息中还包括:所述服务器根据所述关键随机数签名得到的服务器证书,以使所述客户端对所述服务器证书进行签名验证。
可选地,所述带外方式包括如下方式中的至少一种:验证码、邮件、以及图片。
依据本发明的又一方面,提供了一种密钥协商装置,应用于客户端,包括:
响应消息接收模块,用于接收服务器针对所述客户端的握手请求发送的、携带有服务器公钥的响应消息;所述服务器公钥为所述服务器根据关键随机数所生成;
关键随机数接收模块,用于接收所述服务器通过带外方式发送的所述关键随机数;
客户端公钥发送模块,用于向所述服务器发送根据所述关键随机数生成的客户端公钥;
客户端目标密钥生成模块,用于根据所述服务器公钥以及所述客户端公钥,确定目标密钥。
可选地,所述客户端公钥包括:客户端静态公钥和客户端瞬态公钥;则所述客户端公钥发送模块,包括:
第四生成子模块,用于在预设的椭圆曲线上确定第三基点,根据第三随机数和所述第三基点生成客户端静态私钥和客户端静态公钥;
第五生成子模块,用于根据所述关键随机数在所述椭圆曲线上确定第四基点,根据第四随机数和所述第四基点生成客户端瞬态私钥和客户端瞬态公钥;
公钥发送子模块,用于向所述服务器发送所述客户端静态公钥和客户端瞬态公钥。
可选地,所述服务器公钥包括:服务器静态公钥和服务器瞬态公钥;其中,所述服务器静态公钥为所述服务器根据预设椭圆曲线上的第一基点和所述服务器的第一随机数所生成;所述服务器瞬态公钥为所述服务器根据所述关键随机数在所述椭圆曲线上确定的第二基点和所述服务器的第二随机数所生成。
可选地,所述客户端目标密钥生成模块,包括:
第二计算子模块,用于根据所述客户端静态私钥和所述服务器静态公钥计算得到第一静态密钥,以及根据所述客户端瞬态私钥和所述服务器瞬态公钥计算得到第一瞬态密钥;
第二确定子模块,用于根据所述第一静态密钥和所述第一瞬态密钥确定目标密钥。
可选地,所述装置还包括:
服务器更新密钥接收模块,用于接收所述服务器发送的、最新服务器静态公钥和最新服务器瞬态公钥;
客户端目标密钥更新模块,用于根据所述客户端静态私钥、客户端瞬态私钥、最新服务器静态公钥、以及最新服务器瞬态公钥,对所述目标密钥进行更新,得到最新目标密钥。
可选地,所述响应消息中还包括:所述服务器根据所述关键随机数签名得到的服务器证书;
则所述装置还包括:
证书验证模块,用于根据所述关键随机数,对所述服务器证书进行签名验证;
协商确定模块,用于若所述服务器证书通过签名验证,则同意与所述服务器进行密钥协商;否则,拒绝与所述服务器进行密钥协商。
可选地,所述带外方式包括如下方式中的至少一种:验证码、邮件、以及图片。
根据本发明实施例提供的一种密钥协商方法和装置,在服务器和客户端握手的过程中,通过服务器产生关键随机数,并且服务器通过带外方式向客户端发送所述关键随机数,由于带外方式与数据传输采用不同的通信协议以及通信通道,例如,所述带外方式可以为电话、短信等方式,因此,导致中间人无法获取所述关键随机数,也就无法伪造出具有合法签名的服务器证书,从而可以有效防止中间人攻击,提高数据传输的安全性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文可选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出可选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种密钥协商方法的步骤流程图;
图2示出了根据本发明一个实施例的一种密钥协商方法的步骤流程图;
图3示出了根据本发明一个实施例的一种密钥协商装置的结构框图;
图4示出了根据本发明一个实施例的一种密钥协商装置的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照图1,示出了根据本发明一个实施例的一种密钥协商方法的步骤流程图,所述方法应用于服务器,具体可以包括如下步骤:
步骤101、针对来自客户端的握手请求,向所述客户端发送携带有服务器公钥的响应消息;所述服务器公钥为根据所述服务器生成的关键随机数所生成;
步骤102、通过带外方式向所述客户端发送所述关键随机数;
本发明实施例可适用于通信双方进行密钥协商的应用场景,例如,基于HTTPS协议的客户端和服务器之间的密钥协商场景等。可以理解,本发明对于具体的密钥协商场景不加以限制。
为了防止攻击者拦截到客户端和服务器握手过程中用于密钥协商的关键随机数,从而发生中间人攻击的情况,本发明实施例在客户端和服务器握手的过程中,通过服务器生成关键随机数,并且服务器通过带外方式向客户端发送所述关键随机数,以使客户端和服务器可以根据所述关键随机数协商出目标密钥。在本发明的一种可选实施例中,所述带外方式可以包括如下方式中的至少一种:验证码、邮件、以及图片。例如,服务器可以向客户端绑定的手机发送短信验证码,并在该短信验证码中携带所述关键随机数,由于手机短信的传输是通过SMS(Short Message Service,短信息服务)进行传输的,与客户端和服务器之间的通信协议并不相同,故MITM攻击的攻击者无法拦截到所述关键随机数,进而无法实现中间人攻击。
在具体应用中,密钥协商过程可以采用不同的密钥交换算法,例如RSA(RSAalgorithm,RSA加密算法)、DH(Diffie-Hellman,迪菲-赫尔曼密钥交换算法)、ECDH(Elliptic Curve Cryptosystems,椭圆曲线密码体制)密钥交换算法等。
可选地,本发明的密钥协商过程可以采用基于ECC(Elliptic CurvesCryptography,椭圆曲线算法)的ECDH密钥交换算法。所述椭圆曲线算法的基本原理是:在给定的椭圆曲线上选择一个点P,称之为基点,根据基点P和随机数d,可以生成公钥K,例如K=d*P,由于椭圆曲线算法的复杂性,很难从公钥K和基点P推算出随机数d,可以进一步保证数据传输的安全性。可以理解,采用ECDH密钥交换算法进行密钥协商仅作为本发明的一种应用示例,在实际应用中,本发明实施例对于具体的密钥交换算法不加以限制。
在本发明的一种可选实施例中,所述服务器公钥可以包括:服务器静态公钥和服务器瞬态公钥,则所述针对客户端的握手请求,向所述客户端发送携带有服务器公钥的响应消息的步骤,具体可以包括:
步骤S1011、针对来自客户端的握手请求,生成关键随机数、第一随机数、以及第二随机数;
其中,所述关键随机数可用于服务器和客户端之间的密钥协商,服务器可通过带外方式将所述关键随机数发送给客户端,而所述第一随机数和第二随机数分别用于生成服务器静态私钥和服务器静态公钥,所述第一随机数和第二随机数可以不被客户端获知。
步骤S1012、在预设的椭圆曲线上确定第一基点,根据所述第一随机数和所述第一基点生成服务器静态私钥以及服务器静态公钥;
在本发明的一种应用示例中,假设服务器生成的第一随机数为d2,且服务器在预设的椭圆曲线上确定第一基点为P,则服务器可以根据第一随机数d2生成服务器静态私钥,记为以及根据服务器静态私钥和第一基点P生成服务器静态公钥,记为
其中,所述服务器静态私钥可以为对所述第一随机数d2进行哈希处理、或者MD5(Message Digest Algorithm,消息摘要算法第五版)处理所得到的,或者,为了简化计算,还可以直接将所述第一随机数d2作为服务器静态私钥可以理解,本发明实施例对于所述服务器静态私钥的具体确定方式不加以限制。
所述服务器静态公钥可以根据服务器静态私钥和第一随机数d2生成,具体地,可以通过如下公式计算得到:
步骤S1013、根据所述关键随机数在所述椭圆曲线上确定第二基点,根据所述第二随机数和所述第二基点生成服务器瞬态私钥以及服务器瞬态公钥;
假设服务器生成的关键随机数为C,则可以根据C在所述预设的椭圆曲线上确定第二基点,根据所述第二基点和所述第二随机数生成服务器瞬态私钥和服务器瞬态公钥。可选地,为了进一步保证关键随机数的保密性,本发明实施例可以先对所述关键随机数进行SHA或者MD5加密,例如对所述关键随机数C进行MD5加密,然后根据MD5(C)的值确定所述椭圆曲线的第二基点G,最后根据第二基点G和第二随机数生成服务器瞬态私钥以及服务器瞬态公钥
具体地,所述服务器瞬态私钥可以为对所述第二随机数进行哈希处理、或者MD5处理所得到,或者,为了简化计算,还可以直接将所述第二随机数作为服务器瞬态私钥可以理解,本发明实施例对于确定所述服务器瞬态私钥的具体方式不加以限制。
所述服务器瞬态公钥可以根据服务器瞬态私钥和第二基点G生成,具体地,可以通过如下公式计算得到:
步骤S1014、向所述客户端发送响应消息;所述响应消息中包括所述服务器静态公钥和所述服务器瞬态公钥。
在本发明实施例中,服务器和客户端分别生成目标密钥时需使用所述服务器静态公钥和服务器瞬态公钥,在密钥协商过程中服务器将所述服务器静态公钥和服务器瞬态公钥发送给客户端,而服务器静态私钥和服务器瞬态私钥保存在服务器本地,在以后的密钥更新时使用,可以不被客户端获知。
步骤103、接收所述客户端根据所述关键随机数生成的客户端公钥;
可选地,所述客户端公钥可以包括:客户端静态公钥和客户端瞬态公钥;其中,所述客户端静态公钥为所述客户端根据预设椭圆曲线上的第三基点和所述客户端的第三随机数所生成;所述客户端瞬态公钥为所述客户端根据所述关键随机数在所述椭圆曲线上确定的第四基点和所述客户端的第四随机数所生成。
在本发明实施例中,客户端可以采用和服务器相同的方法,生成客户端静态公钥、客户端静态私钥、客户端瞬态公钥、以及客户端瞬态私钥。客户端保存客户端静态私钥和客户端瞬态私钥,并且将客户端静态公钥和客户端瞬态公钥发送给服务器,以使服务器确定目标密钥。
步骤104、根据所述服务器公钥以及所述客户端公钥,确定目标密钥。
在本发明的一种可选实施例中,所述根据所述服务器公钥以及所述客户端公钥,确定目标密钥的步骤,具体可以包括:
步骤S1041、根据所述服务器静态私钥和所述客户端静态公钥计算得到第二静态密钥,以及根据所述服务器瞬态私钥和所述客户端瞬态公钥计算得到第二瞬态密钥;
假设服务器接收到的客户端静态公钥为以及客户端瞬态公钥为则服务器可以根据服务器静态私钥和客户端静态公钥计算得到第二静态密钥以及根据服务器瞬态私钥和客户端瞬态公钥计算得到第二瞬态密钥
具体地,所述第二静态密钥可以通过如下公式计算得到:
所述第二瞬态密钥可以通过如下公式计算得到:
步骤S1042、根据所述第二静态密钥和所述第二瞬态密钥确定目标密钥。
具体地,服务器可以通过产生对称加密AES(Advanced EncryptionStandard,高级加密标准)密钥,也即目标密钥。
在本发明的一种可选实施例中,所述响应消息中还可以包括:所述服务器根据所述关键随机数进行签名的服务器证书,以使所述客户端对所述服务器证书进行签名验证。
由于所述关键随机数通过带外方式发送至客户端,MITM攻击的攻击者无法拦截到所述关键随机数,因此,即使攻击者拦截到服务器发给客户端的服务器证书,也无法伪造出具有合法签名的证书,进而可以防止攻击者通过伪造证书的方式实行中间人攻击。
为了防止攻击者拦截到所述目标密钥,并且通过暴力方式对所述目标密钥进行破解,本发明实施例可以定期对所述目标密钥进行更新,以进一步保证目标密钥的安全性,在本发明的一种可选实施例中,所述方法还可以包括如下步骤:
接收所述客户端发送的、最新客户端静态公钥和最新客户端瞬态公钥;
根据所述服务器静态私钥、服务器瞬态私钥、所述最新客户端静态公钥、以及所述最新客户端瞬态公钥,对所述目标密钥进行更新,得到最新目标密钥。
具体地,本发明实施例对目标密钥进行更新的过程与上述密钥协商得到目标密钥的过程相似,只是更新过程中服务器不用再重新生成关键随机数。服务器和客户端分别采用之前已保存的自身的静态私钥和瞬态私钥,以及对方新生成的最近静态公钥和最近瞬态公钥即可。
综上,本发明实施例的密钥协商方法,在服务器和客户端握手的过程中,通过服务器产生关键随机数,并且服务器通过带外方式向客户端发送所述关键随机数,由于带外方式与数据传输采用不同的通信协议以及通信通道,例如,所述带外方式可以为电话、短信等方式,因此,导致中间人无法获取所述关键随机数,也就无法伪造出具有合法签名的服务器证书,从而可以有效防止中间人攻击,提高数据传输的安全性。
参照图2,示出了根据本发明一个实施例的一种密钥协商方法的步骤流程图,所述方法应用于客户端,具体可以包括如下步骤:
步骤201、接收服务器针对所述客户端的握手请求发送的、携带有服务器公钥的响应消息;所述服务器公钥为所述服务器根据关键随机数所生成;
步骤202、接收所述服务器通过带外方式发送的所述关键随机数;
步骤203、向所述服务器发送根据所述关键随机数生成的客户端公钥;
步骤204、根据所述服务器公钥以及所述客户端公钥,确定目标密钥。
为了防止攻击者拦截到客户端和服务器握手过程中用于密钥协商的关键随机数,从而出现中间人攻击的情况,本发明实施例在客户端和服务器握手的过程中,通过服务器生成关键随机数,并且服务器通过带外方式向客户端发送所述关键随机数。在本发明的一种可选实施例中,所述带外方式可以包括如下方式中的至少一种:验证码、邮件、以及图片。
在本发明的一种可选实施例中,所述客户端公钥可以包括:客户端静态公钥和客户端瞬态公钥;则所述向所述服务器发送根据所述关键随机数生成的客户端公钥的步骤,具体可以包括:
步骤S2031、在预设的椭圆曲线上确定第三基点,根据第三随机数和所述第三基点生成客户端静态私钥和客户端静态公钥;
客户端在向服务器发送握手请求之后,可以生成第三随机数和第四随机数,所述第三随机数和第四随机数用于生成客户端静态私钥和客户端静态公钥。例如,假设客户端生成的第三随机数为d1,且客户端在预设的椭圆曲线上确定第三基点为P,则客户端可以根据第三随机数d1生成客户端静态私钥,记为以及根据客户端静态私钥和第三基点P生成客户端静态公钥,记为其中,客户端在预设的椭圆曲线上确定的第三基点与服务器在预设的椭圆曲线上确定的第一基点可以为相同的基点或者不同的基点,本发明实施例对此不加以限制。
其中,所述客户端静态私钥可以为对所述第三随机数d1进行哈希处理、或者MD5处理所得到的,或者,为了简化计算,还可以直接将所述第三随机数d1作为客户端静态私钥可以理解,本发明实施例对于确定所述客户端静态私钥的具体方式不加以限制。
所述客户端静态公钥可以根据客户端静态私钥和第三随机数d1生成,具体地,可以通过如下公式计算得到:
步骤S2032、根据所述关键随机数在所述椭圆曲线上确定第四基点,根据第四随机数和所述第四基点生成客户端瞬态私钥和客户端瞬态公钥;
假设客户端通过带外方式接收到来自服务器的关键随机数为C,为了进一步保证关键随机数的保密性,客户端可以对所述关键随机数C进行MD5加密,然后根据MD5(C)的值确定所述椭圆曲线的第四基点G,最后根据第四基点G和第四随机数生成客户端瞬态私钥以及生成客户端瞬态公钥
具体地,所述客户端瞬态私钥可以为对所述第四随机数进行哈希处理、或者MD5处理所得到的,或者,为了简化计算,还可以直接将所述第四随机数作为客户端瞬态私钥可以理解,本发明实施例对于确定所述客户端瞬态私钥的具体方式不加以限制。
所述客户端瞬态公钥可以根据客户端瞬态私钥和第四基点G生成,具体地,可以通过如下公式计算得到:
步骤S2033、向所述服务器发送所述客户端静态公钥和客户端瞬态公钥。
在本发明实施例中,服务器和客户端分别生成目标密钥时需使用所述客户端静态公钥和客户端瞬态公钥,在密钥协商过程中客户端将所述客户端静态公钥和客户端瞬态公钥发送给服务器,而客户端静态私钥和客户端瞬态私钥保存在客户端本地,在以后的密钥更新时使用,可以不被服务器获知。
在本发明的一种可选实施例中,所述服务器公钥可以包括:服务器静态公钥和服务器瞬态公钥;其中,所述服务器静态公钥为所述服务器根据预设椭圆曲线上的第一基点和所述服务器的第一随机数所生成;所述服务器瞬态公钥为所述服务器根据所述关键随机数在所述椭圆曲线上确定的第二基点和所述服务器的第二随机数所生成。
在本发明的一种可选实施例中,所述根据所述服务器公钥以及所述客户端公钥,确定目标密钥的步骤,具体可以包括:
步骤S2041、根据所述客户端静态私钥和所述服务器静态公钥计算得到第一静态密钥,以及根据所述客户端瞬态私钥和所述服务器瞬态公钥计算得到第一瞬态密钥;
假设客户端接收到的服务器静态公钥为以及服务器瞬态公钥为则客户端可以根据客户端静态私钥和服务器静态公钥计算得到第一静态密钥以及根据客户端瞬态私钥和服务器瞬态公钥计算得到第一瞬态密钥
具体地,所述第一静态密钥可以通过如下公式计算得到:
所述第一瞬态密钥可以通过如下公式计算得到:
步骤S2042、根据所述第一静态密钥和所述第一瞬态密钥确定目标密钥。
具体地,客户端可以通过产生对称加密AES密钥,也即目标密钥。
根据椭圆曲线原理,必然有因此,客户端根据确定的目标密钥与服务器根据确定的目标密钥相同,在会话过程中,可以通过该目标密钥进行加密。
在本发明的一种可选实施例中,所述响应消息中还可以包括:所述服务器根据所述关键随机数进行签名的服务器证书;所述方法还可以包括如下步骤:
根据所述关键随机数,对所述服务器证书进行签名验证;
若所述服务器证书通过签名验证,则同意与所述服务器进行密钥协商;否则,拒绝与所述服务器进行密钥协商。
在客户端与服务器进行密钥协商的过程中,本发明实施例还可以通过证书校验方式对服务器的身份进行验证,如果服务器证书未通过身份验证,则客户端可以拒绝与服务器继续进行密钥协商的过程,以进一步提高密钥协商过程中的安全性。此外,由于所述关键随机数通过带外方式发送至客户端,攻击者无法拦截到所述关键随机数,因此,即使攻击者拦截到服务器发给客户端的服务器证书,也无法伪造出具有合法签名的服务器证书,进而可以防止攻击者通过伪造证书的方式实行中间人攻击。
为了防止攻击者拦截到所述目标密钥,并且通过暴力方式对所述目标密钥进行破解,本发明实施例可以定期对所述目标密钥进行更新,以进一步保证目标密钥的安全性,在本发明的一种可选实施例中,所述方法还可以包括如下步骤:
接收所述服务器发送的、最新服务器静态公钥和最新服务器瞬态公钥;
根据所述客户端静态私钥、客户端瞬态私钥、最新服务器静态公钥、以及最新服务器瞬态公钥,对所述目标密钥进行更新,得到最新目标密钥。
综上,本发明实施例的密钥协商方法,在客户端向服务器发送握手请求之后,客户端通过带外方式接收来自服务器发送的关键随机数,由于带外方式与数据传输采用不同的通信协议以及通信通道,例如,所述带外方式可以为电话、短信等方式,因此,导致中间人无法获取所述关键随机数,也就无法伪造出具有合法签名的服务器证书,从而可以有效防止中间人攻击,提高数据传输的安全性。
应用示例
为了更清楚的说明本发明的密钥协商方法的实现过程,下面通过应用示例结合客户端和服务器两侧的通信过程进行说明,具体步骤如下:
步骤S11、客户端向服务器发送握手请求;
具体地,客户端可以通过浏览器向服务器发送client_hello消息以发送握手请求,所述client_hello消息中可以包括ECC扩展信息,如客户端支持的椭圆曲线类型和有限域参数、支持的曲线点格式等。
步骤S12、服务器针对来自客户端的握手请求,生成关键随机数C、第一随机数d2以及第二随机数;
步骤S13、服务器根据第一随机数d2生成服务器静态私钥在给定的椭圆曲线上选择第一基点P,根据P和生成服务器静态公钥
步骤S14、服务器根据第二随机数生成服务器瞬态私钥根据关键随机数C确定椭圆曲线上的第二基点G,根据G和生成服务器瞬态公钥
步骤S15、服务器保存服务器静态私钥和服务器瞬态私钥
步骤S16、服务器向客户端发送响应消息;所述响应消息中包括服务器静态公钥和服务器瞬态公钥
具体地,所述响应消息可以包括server_hello消息,以及server_key_exchange消息,其中,server_hello消息中可以包括ECC扩展信息;server_key_exchange消息中可以包括服务器静态公钥和服务器瞬态公钥
步骤S17、服务器通过带外方式向客户端发送关键随机数C;
可选地,所述响应消息还可以包括certificate证书验证消息,该消息中携带有服务器证书,以使客户端可以对服务器证书进行签名验证。
步骤S18、客户端接收服务器的响应消息以及关键随机数C;
客户端可以根据所述关键随机数C,对所述响应消息中的服务器证书进行签名验证;若所述服务器证书通过签名验证,则同意与所述服务器进行密钥协商;否则,拒绝与所述服务器进行密钥协商。
步骤S19、若所述服务器证书通过签名验证,客户端生成第三随机数和第四随机数,根据第三随机数生成客户端静态私钥在给定的椭圆曲线上选择第三基点P,根据P和生成客户端静态公钥
步骤S20、客户端根据第四随机数生成客户端瞬态私钥根据关键随机数C确定椭圆曲线上的第四基点G,根据G和生成客户端瞬态公钥
步骤S21、客户端保存客户端静态私钥和客户端瞬态私钥将客户端静态公钥和客户端瞬态公钥发送给服务器;
步骤S22、客户端根据客户端静态私钥和服务器静态公钥计算得到第一静态密钥以及根据客户端瞬态私钥和服务器瞬态公钥计算得到第一瞬态密钥
步骤S23、服务器根据服务器静态私钥和客户端静态公钥计算得到第二静态密钥以及根据服务器瞬态私钥和客户端瞬态公钥计算得到第二瞬态密钥
步骤S24、客户端根据第一静态密钥和第一瞬态密钥确定会话所需要的目标密钥;
步骤S25、服务器根据第二静态密钥和第二瞬态密钥确定会话所需要的目标密钥。
根据椭圆曲线原理,必然有因此,客户端根据确定的目标密钥和服务器根据确定的目标密钥相同。
具体地,假设则客户端和服务器分别通过Ss和Se产生对称加密AES密钥,也即目标密钥。
密钥协商成功后,客户端和服务器双方会将对方的静态公钥保存下来,同时保存下来的还有自身的静态私钥,在以后的密钥更新时使用。
参照图3,示出了根据本发明一个实施例的一种密钥协商装置的结构框图,所述装置应用于服务器,具体可以包括如下模块:
响应消息发送模块301,用于针对来自客户端的握手请求,向所述客户端发送携带有服务器公钥的响应消息;所述服务器公钥为根据所述服务器生成的关键随机数所生成;
关键随机数发送模块302,用于通过带外方式向所述客户端发送所述关键随机数;
客户端公钥接收模块303,用于接收所述客户端根据所述关键随机数生成的客户端公钥;
服务器目标密钥生成模块304,用于根据所述服务器公钥以及所述客户端公钥,确定目标密钥。
在本发明的一种可选实施例中,所述服务器公钥可以包括:服务器静态公钥和服务器瞬态公钥,则所述响应消息发送模块301,具体可以包括:
第一生成子模块,用于针对来自客户端的握手请求,生成关键随机数、第一随机数、以及第二随机数;
第二生成子模块,用于在预设的椭圆曲线上确定第一基点,根据所述第一随机数和所述第一基点生成服务器静态私钥以及服务器静态公钥;
第三生成子模块,用于根据所述关键随机数在所述椭圆曲线上确定第二基点,根据所述第二随机数和所述第二基点生成服务器瞬态私钥以及服务器瞬态公钥;
消息发送子模块,用于向所述客户端发送响应消息;所述响应消息中包括所述服务器静态公钥和所述服务器瞬态公钥。
在本发明的另一种可选实施例中,所述客户端公钥可以包括:客户端静态公钥和客户端瞬态公钥;其中,所述客户端静态公钥为所述客户端根据预设椭圆曲线上的第三基点和所述客户端的第三随机数所生成;所述客户端瞬态公钥为所述客户端根据所述关键随机数在所述椭圆曲线上确定的第四基点和所述客户端的第四随机数所生成。
在本发明的又一种可选实施例中,所述服务器目标密钥生成模块304,具体可以包括:
第一计算子模块,用于根据所述服务器静态私钥和所述客户端静态公钥计算得到第二静态密钥,以及根据所述服务器瞬态私钥和所述客户端瞬态公钥计算得到第二瞬态密钥;
第一确定子模块,用于根据所述第二静态密钥和所述第二瞬态密钥确定目标密钥。
在本发明的再一种可选实施例中,所述装置还可以包括:
客户端更新密钥接收模块,用于接收所述客户端发送的、最新客户端静态公钥和最新客户端瞬态公钥;
服务器目标密钥更新模块,用于根据所述服务器静态私钥、服务器瞬态私钥、所述最新客户端静态公钥、以及所述最新客户端瞬态公钥,对所述目标密钥进行更新,得到最新目标密钥。
在本发明的再一种可选实施例中,所述响应消息中还包括:所述服务器根据所述关键随机数签名得到的服务器证书,以使所述客户端对所述服务器证书进行签名验证。
在本发明的再一种可选实施例中,所述带外方式包括如下方式中的至少一种:验证码、邮件、以及图片。
参照图4,示出了根据本发明一个实施例的一种密钥协商装置的结构框图,所述装置应用于客户端,具体可以包括如下模块:
响应消息接收模块401,用于接收服务器针对所述客户端的握手请求发送的、携带有服务器公钥的响应消息;所述服务器公钥为所述服务器根据关键随机数所生成;
关键随机数接收模块402,用于接收所述服务器通过带外方式发送的所述关键随机数;
客户端公钥发送模块403,用于向所述服务器发送根据所述关键随机数生成的客户端公钥;
客户端目标密钥生成模块404,用于根据所述服务器公钥以及所述客户端公钥,确定目标密钥。
在本发明的一种可选实施例中,所述客户端公钥可以包括:客户端静态公钥和客户端瞬态公钥;则所述客户端公钥发送模块403,具体可以包括:
第四生成子模块,用于在预设的椭圆曲线上确定第三基点,根据第三随机数和所述第三基点生成客户端静态私钥和客户端静态公钥;
第五生成子模块,用于根据所述关键随机数在所述椭圆曲线上确定第四基点,根据第四随机数和所述第四基点生成客户端瞬态私钥和客户端瞬态公钥;
公钥发送子模块,用于向所述服务器发送所述客户端静态公钥和客户端瞬态公钥。
在本发明的另一种可选实施例中,所述服务器公钥可以包括:服务器静态公钥和服务器瞬态公钥;其中,所述服务器静态公钥为所述服务器根据预设椭圆曲线上的第一基点和所述服务器的第一随机数所生成;所述服务器瞬态公钥为所述服务器根据所述关键随机数在所述椭圆曲线上确定的第二基点和所述服务器的第二随机数所生成。
在本发明的又一种可选实施例中,所述客户端目标密钥生成模块404,具体可以包括:
第二计算子模块,用于根据所述客户端静态私钥和所述服务器静态公钥计算得到第一静态密钥,以及根据所述客户端瞬态私钥和所述服务器瞬态公钥计算得到第一瞬态密钥;
第二确定子模块,用于根据所述第一静态密钥和所述第一瞬态密钥确定目标密钥。
在本发明的再一种可选实施例中,所述装置还可以包括:
服务器更新密钥接收模块,用于接收所述服务器发送的、最新服务器静态公钥和最新服务器瞬态公钥;
客户端目标密钥更新模块,用于根据所述客户端静态私钥、客户端瞬态私钥、最新服务器静态公钥、以及最新服务器瞬态公钥,对所述目标密钥进行更新,得到最新目标密钥。
在本发明的再一种可选实施例中,所述响应消息中还可以包括:所述服务器根据所述关键随机数签名得到的服务器证书;
则所述装置还可以包括:
证书验证模块,用于根据所述关键随机数,对所述服务器证书进行签名验证;
协商确定模块,用于若所述服务器证书通过签名验证,则同意与所述服务器进行密钥协商;否则,拒绝与所述服务器进行密钥协商。
在本发明的再一种可选实施例中,所述带外方式可以包括如下方式中的至少一种:验证码、邮件、以及图片。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的密钥协商方法和装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网平台上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包括”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了A1、一种密钥协商方法,应用于服务器,包括:
针对来自客户端的握手请求,向所述客户端发送携带有服务器公钥的响应消息;所述服务器公钥为根据所述服务器生成的关键随机数所生成;
通过带外方式向所述客户端发送所述关键随机数;
接收所述客户端根据所述关键随机数生成的客户端公钥;
根据所述服务器公钥以及所述客户端公钥,确定目标密钥。
A2、如A1所述的方法,所述服务器公钥包括:服务器静态公钥和服务器瞬态公钥,则所述针对来自客户端的握手请求,向所述客户端发送携带有服务器公钥的响应消息的步骤,包括:
针对来自客户端的握手请求,生成关键随机数、第一随机数、以及第二随机数;
在预设的椭圆曲线上确定第一基点,根据所述第一随机数和所述第一基点生成服务器静态私钥以及服务器静态公钥;
根据所述关键随机数在所述椭圆曲线上确定第二基点,根据所述第二随机数和所述第二基点生成服务器瞬态私钥以及服务器瞬态公钥;
向所述客户端发送响应消息;所述响应消息中包括所述服务器静态公钥和所述服务器瞬态公钥。
A3、如A2所述的方法,所述客户端公钥包括:客户端静态公钥和客户端瞬态公钥;其中,所述客户端静态公钥为所述客户端根据预设椭圆曲线上的第三基点和所述客户端的第三随机数所生成;所述客户端瞬态公钥为所述客户端根据所述关键随机数在所述椭圆曲线上确定的第四基点和所述客户端的第四随机数所生成。
A4、如A3所述的方法,所述根据所述服务器公钥以及所述客户端公钥,确定目标密钥的步骤,包括:
根据所述服务器静态私钥和所述客户端静态公钥计算得到第二静态密钥,以及根据所述服务器瞬态私钥和所述客户端瞬态公钥计算得到第二瞬态密钥;
根据所述第二静态密钥和所述第二瞬态密钥确定目标密钥。
A5、如A4所述的方法,所述方法还包括:
接收所述客户端发送的、最新客户端静态公钥和最新客户端瞬态公钥;
根据所述服务器静态私钥、服务器瞬态私钥、所述最新客户端静态公钥、以及所述最新客户端瞬态公钥,对所述目标密钥进行更新,得到最新目标密钥。
A6、如A1至A5中任一所述的方法,所述响应消息中还包括:所述服务器根据所述关键随机数签名得到的服务器证书,以使所述客户端对所述服务器证书进行签名验证。
A7、如A1至A5中任一所述的方法,所述带外方式包括如下方式中的至少一种:验证码、邮件、以及图片。
本发明公开了B8、一种密钥协商方法,应用于客户端,包括:
接收服务器针对所述客户端的握手请求发送的、携带有服务器公钥的响应消息;所述服务器公钥为所述服务器根据关键随机数所生成;
接收所述服务器通过带外方式发送的所述关键随机数;
向所述服务器发送根据所述关键随机数生成的客户端公钥;
根据所述服务器公钥以及所述客户端公钥,确定目标密钥。
B9、如B8所述的方法,所述客户端公钥包括:客户端静态公钥和客户端瞬态公钥;则所述向所述服务器发送根据所述关键随机数生成的客户端公钥的步骤,包括:
在预设的椭圆曲线上确定第三基点,根据第三随机数和所述第三基点生成客户端静态私钥和客户端静态公钥;
根据所述关键随机数在所述椭圆曲线上确定第四基点,根据第四随机数和所述第四基点生成客户端瞬态私钥和客户端瞬态公钥;
向所述服务器发送所述客户端静态公钥和客户端瞬态公钥。
B10、如B9所述的方法,所述服务器公钥包括:服务器静态公钥和服务器瞬态公钥;其中,所述服务器静态公钥为所述服务器根据预设椭圆曲线上的第一基点和所述服务器的第一随机数所生成;所述服务器瞬态公钥为所述服务器根据所述关键随机数在所述椭圆曲线上确定的第二基点和所述服务器的第二随机数所生成。
B11、如B10所述的方法,所述根据所述服务器公钥以及所述客户端公钥,确定目标密钥的步骤,包括:
根据所述客户端静态私钥和所述服务器静态公钥计算得到第一静态密钥,以及根据所述客户端瞬态私钥和所述服务器瞬态公钥计算得到第一瞬态密钥;
根据所述第一静态密钥和所述第一瞬态密钥确定目标密钥。
B12、如B11所述的方法,所述方法还包括:
接收所述服务器发送的、最新服务器静态公钥和最新服务器瞬态公钥;
根据所述客户端静态私钥、客户端瞬态私钥、最新服务器静态公钥、以及最新服务器瞬态公钥,对所述目标密钥进行更新,得到最新目标密钥。
B13、如B8至B12中任一所述的方法,所述响应消息中还包括:所述服务器根据所述关键随机数签名得到的服务器证书;
则所述方法还包括:
根据所述关键随机数,对所述服务器证书进行签名验证;
若所述服务器证书通过签名验证,则同意与所述服务器进行密钥协商;否则,拒绝与所述服务器进行密钥协商。
B14、如B8至B12中任一所述的方法,所述带外方式包括如下方式中的至少一种:验证码、邮件、以及图片。
本发明公开了C15、一种密钥协商装置,应用于服务器,包括:
响应消息发送模块,用于针对来自客户端的握手请求,向所述客户端发送携带有服务器公钥的响应消息;所述服务器公钥为根据所述服务器生成的关键随机数所生成;
关键随机数发送模块,用于通过带外方式向所述客户端发送所述关键随机数;
客户端公钥接收模块,用于接收所述客户端根据所述关键随机数生成的客户端公钥;
服务器目标密钥生成模块,用于根据所述服务器公钥以及所述客户端公钥,确定目标密钥。
C16、如C15所述的装置,所述服务器公钥包括:服务器静态公钥和服务器瞬态公钥,则所述响应消息发送模块,包括:
第一生成子模块,用于针对来自客户端的握手请求,生成关键随机数、第一随机数、以及第二随机数;
第二生成子模块,用于在预设的椭圆曲线上确定第一基点,根据所述第一随机数和所述第一基点生成服务器静态私钥以及服务器静态公钥;
第三生成子模块,用于根据所述关键随机数在所述椭圆曲线上确定第二基点,根据所述第二随机数和所述第二基点生成服务器瞬态私钥以及服务器瞬态公钥;
消息发送子模块,用于向所述客户端发送响应消息;所述响应消息中包括所述服务器静态公钥和所述服务器瞬态公钥。
C17、如C16所述的装置,所述客户端公钥包括:客户端静态公钥和客户端瞬态公钥;其中,所述客户端静态公钥为所述客户端根据预设椭圆曲线上的第三基点和所述客户端的第三随机数所生成;所述客户端瞬态公钥为所述客户端根据所述关键随机数在所述椭圆曲线上确定的第四基点和所述客户端的第四随机数所生成。
C18、如C17所述的装置,所述服务器目标密钥生成模块,包括:
第一计算子模块,用于根据所述服务器静态私钥和所述客户端静态公钥计算得到第二静态密钥,以及根据所述服务器瞬态私钥和所述客户端瞬态公钥计算得到第二瞬态密钥;
第一确定子模块,用于根据所述第二静态密钥和所述第二瞬态密钥确定目标密钥。
C19、如C18所述的装置,所述装置还包括:
客户端更新密钥接收模块,用于接收所述客户端发送的、最新客户端静态公钥和最新客户端瞬态公钥;
服务器目标密钥更新模块,用于根据所述服务器静态私钥、服务器瞬态私钥、所述最新客户端静态公钥、以及所述最新客户端瞬态公钥,对所述目标密钥进行更新,得到最新目标密钥。
C20、如C15至C19中任一所述的装置,所述响应消息中还包括:所述服务器根据所述关键随机数签名得到的服务器证书,以使所述客户端对所述服务器证书进行签名验证。
C21、如C15至C19中任一所述的装置,所述带外方式包括如下方式中的至少一种:验证码、邮件、以及图片。
本发明公开了D22、一种密钥协商装置,应用于客户端,包括:
响应消息接收模块,用于接收服务器针对所述客户端的握手请求发送的、携带有服务器公钥的响应消息;所述服务器公钥为所述服务器根据关键随机数所生成;
关键随机数接收模块,用于接收所述服务器通过带外方式发送的所述关键随机数;
客户端公钥发送模块,用于向所述服务器发送根据所述关键随机数生成的客户端公钥;
客户端目标密钥生成模块,用于根据所述服务器公钥以及所述客户端公钥,确定目标密钥。
D23、如D22所述的装置,所述客户端公钥包括:客户端静态公钥和客户端瞬态公钥;则所述客户端公钥发送模块,包括:
第四生成子模块,用于在预设的椭圆曲线上确定第三基点,根据第三随机数和所述第三基点生成客户端静态私钥和客户端静态公钥;
第五生成子模块,用于根据所述关键随机数在所述椭圆曲线上确定第四基点,根据第四随机数和所述第四基点生成客户端瞬态私钥和客户端瞬态公钥;
公钥发送子模块,用于向所述服务器发送所述客户端静态公钥和客户端瞬态公钥。
D24、如D23所述的装置,所述服务器公钥包括:服务器静态公钥和服务器瞬态公钥;其中,所述服务器静态公钥为所述服务器根据预设椭圆曲线上的第一基点和所述服务器的第一随机数所生成;所述服务器瞬态公钥为所述服务器根据所述关键随机数在所述椭圆曲线上确定的第二基点和所述服务器的第二随机数所生成。
D25、如D24所述的装置,所述客户端目标密钥生成模块,包括:
第二计算子模块,用于根据所述客户端静态私钥和所述服务器静态公钥计算得到第一静态密钥,以及根据所述客户端瞬态私钥和所述服务器瞬态公钥计算得到第一瞬态密钥;
第二确定子模块,用于根据所述第一静态密钥和所述第一瞬态密钥确定目标密钥。
D26、如D25所述的装置,所述装置还包括:
服务器更新密钥接收模块,用于接收所述服务器发送的、最新服务器静态公钥和最新服务器瞬态公钥;
客户端目标密钥更新模块,用于根据所述客户端静态私钥、客户端瞬态私钥、最新服务器静态公钥、以及最新服务器瞬态公钥,对所述目标密钥进行更新,得到最新目标密钥。
D27、如D22至26中任一所述的装置,所述响应消息中还包括:所述服务器根据所述关键随机数签名得到的服务器证书;
则所述装置还包括:
证书验证模块,用于根据所述关键随机数,对所述服务器证书进行签名验证;
协商确定模块,用于若所述服务器证书通过签名验证,则同意与所述服务器进行密钥协商;否则,拒绝与所述服务器进行密钥协商。
D28、如D22至D26中任一所述的装置,所述带外方式包括如下方式中的至少一种:验证码、邮件、以及图片。

Claims (10)

1.一种密钥协商方法,其特征在于,应用于服务器,所述方法包括:
针对来自客户端的握手请求,向所述客户端发送携带有服务器公钥的响应消息;所述服务器公钥为根据所述服务器生成的关键随机数所生成;
通过带外方式向所述客户端发送所述关键随机数;
接收所述客户端根据所述关键随机数生成的客户端公钥;
根据所述服务器公钥以及所述客户端公钥,确定目标密钥。
2.如权利要求1所述的方法,其特征在于,所述服务器公钥包括:服务器静态公钥和服务器瞬态公钥,则所述针对来自客户端的握手请求,向所述客户端发送携带有服务器公钥的响应消息的步骤,包括:
针对来自客户端的握手请求,生成关键随机数、第一随机数、以及第二随机数;
在预设的椭圆曲线上确定第一基点,根据所述第一随机数和所述第一基点生成服务器静态私钥以及服务器静态公钥;
根据所述关键随机数在所述椭圆曲线上确定第二基点,根据所述第二随机数和所述第二基点生成服务器瞬态私钥以及服务器瞬态公钥;
向所述客户端发送响应消息;所述响应消息中包括所述服务器静态公钥和所述服务器瞬态公钥。
3.如权利要求2所述的方法,其特征在于,所述客户端公钥包括:客户端静态公钥和客户端瞬态公钥;其中,所述客户端静态公钥为所述客户端根据预设椭圆曲线上的第三基点和所述客户端的第三随机数所生成;所述客户端瞬态公钥为所述客户端根据所述关键随机数在所述椭圆曲线上确定的第四基点和所述客户端的第四随机数所生成。
4.如权利要求3所述的方法,其特征在于,所述根据所述服务器公钥以及所述客户端公钥,确定目标密钥的步骤,包括:
根据所述服务器静态私钥和所述客户端静态公钥计算得到第二静态密钥,以及根据所述服务器瞬态私钥和所述客户端瞬态公钥计算得到第二瞬态密钥;
根据所述第二静态密钥和所述第二瞬态密钥确定目标密钥。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的、最新客户端静态公钥和最新客户端瞬态公钥;
根据所述服务器静态私钥、服务器瞬态私钥、所述最新客户端静态公钥、以及所述最新客户端瞬态公钥,对所述目标密钥进行更新,得到最新目标密钥。
6.如权利要求1至5中任一所述的方法,其特征在于,所述响应消息中还包括:所述服务器根据所述关键随机数签名得到的服务器证书,以使所述客户端对所述服务器证书进行签名验证。
7.如权利要求1至5中任一所述的方法,其特征在于,所述带外方式包括如下方式中的至少一种:验证码、邮件、以及图片。
8.一种密钥协商方法,其特征在于,应用于客户端,所述方法包括:
接收服务器针对所述客户端的握手请求发送的、携带有服务器公钥的响应消息;所述服务器公钥为所述服务器根据关键随机数所生成;
接收所述服务器通过带外方式发送的所述关键随机数;
向所述服务器发送根据所述关键随机数生成的客户端公钥;
根据所述服务器公钥以及所述客户端公钥,确定目标密钥。
9.一种密钥协商装置,其特征在于,应用于服务器,所述装置包括:
响应消息发送模块,用于针对来自客户端的握手请求,向所述客户端发送携带有服务器公钥的响应消息;所述服务器公钥为根据所述服务器生成的关键随机数所生成;
关键随机数发送模块,用于通过带外方式向所述客户端发送所述关键随机数;
客户端公钥接收模块,用于接收所述客户端根据所述关键随机数生成的客户端公钥;
服务器目标密钥生成模块,用于根据所述服务器公钥以及所述客户端公钥,确定目标密钥。
10.一种密钥协商装置,其特征在于,应用于客户端,所述装置包括:
响应消息接收模块,用于接收服务器针对所述客户端的握手请求发送的、携带有服务器公钥的响应消息;所述服务器公钥为所述服务器根据关键随机数所生成;
关键随机数接收模块,用于接收所述服务器通过带外方式发送的所述关键随机数;
客户端公钥发送模块,用于向所述服务器发送根据所述关键随机数生成的客户端公钥;
客户端目标密钥生成模块,用于根据所述服务器公钥以及所述客户端公钥,确定目标密钥。
CN201710199150.3A 2017-03-29 2017-03-29 一种密钥协商方法和装置 Expired - Fee Related CN106972919B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710199150.3A CN106972919B (zh) 2017-03-29 2017-03-29 一种密钥协商方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710199150.3A CN106972919B (zh) 2017-03-29 2017-03-29 一种密钥协商方法和装置

Publications (2)

Publication Number Publication Date
CN106972919A true CN106972919A (zh) 2017-07-21
CN106972919B CN106972919B (zh) 2020-04-24

Family

ID=59336027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710199150.3A Expired - Fee Related CN106972919B (zh) 2017-03-29 2017-03-29 一种密钥协商方法和装置

Country Status (1)

Country Link
CN (1) CN106972919B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108259486A (zh) * 2018-01-10 2018-07-06 芯盾网安(北京)科技发展有限公司 基于证书的端到端密钥交换方法
CN108306734A (zh) * 2017-12-28 2018-07-20 飞天诚信科技股份有限公司 一种通信链路保护方法及装置
CN108429620A (zh) * 2018-01-25 2018-08-21 新华三技术有限公司 安全连接的建立方法、系统、以及客户端和服务端
CN111475794A (zh) * 2020-06-19 2020-07-31 支付宝(杭州)信息技术有限公司 活体认证方法、装置及计算机设备
CN114499913A (zh) * 2020-10-26 2022-05-13 华为技术有限公司 加密报文的检测方法及防护设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104205899A (zh) * 2012-03-20 2014-12-10 高通股份有限公司 使用短距离无线通信的网络安全配置
CN105791258A (zh) * 2014-12-26 2016-07-20 中国移动通信集团上海有限公司 一种数据传输方法、终端及开放平台
WO2016131056A1 (en) * 2015-02-13 2016-08-18 Visa International Service Association Confidential communication management
CN105939197A (zh) * 2016-03-17 2016-09-14 天地融科技股份有限公司 一种身份认证方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104205899A (zh) * 2012-03-20 2014-12-10 高通股份有限公司 使用短距离无线通信的网络安全配置
CN105791258A (zh) * 2014-12-26 2016-07-20 中国移动通信集团上海有限公司 一种数据传输方法、终端及开放平台
WO2016131056A1 (en) * 2015-02-13 2016-08-18 Visa International Service Association Confidential communication management
CN105939197A (zh) * 2016-03-17 2016-09-14 天地融科技股份有限公司 一种身份认证方法和系统

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108306734A (zh) * 2017-12-28 2018-07-20 飞天诚信科技股份有限公司 一种通信链路保护方法及装置
CN108306734B (zh) * 2017-12-28 2021-01-01 飞天诚信科技股份有限公司 一种通信链路保护方法及装置
CN108259486A (zh) * 2018-01-10 2018-07-06 芯盾网安(北京)科技发展有限公司 基于证书的端到端密钥交换方法
CN108259486B (zh) * 2018-01-10 2020-12-01 河南芯盾网安科技发展有限公司 基于证书的端到端密钥交换方法
CN108429620A (zh) * 2018-01-25 2018-08-21 新华三技术有限公司 安全连接的建立方法、系统、以及客户端和服务端
CN108429620B (zh) * 2018-01-25 2021-10-12 新华三技术有限公司 安全连接的建立方法、系统、以及客户端和服务端
CN111475794A (zh) * 2020-06-19 2020-07-31 支付宝(杭州)信息技术有限公司 活体认证方法、装置及计算机设备
CN111475794B (zh) * 2020-06-19 2021-10-29 支付宝(杭州)信息技术有限公司 活体认证方法、装置及计算机设备
CN114499913A (zh) * 2020-10-26 2022-05-13 华为技术有限公司 加密报文的检测方法及防护设备
CN114499913B (zh) * 2020-10-26 2022-12-06 华为技术有限公司 加密报文的检测方法及防护设备

Also Published As

Publication number Publication date
CN106972919B (zh) 2020-04-24

Similar Documents

Publication Publication Date Title
CN109309565B (zh) 一种安全认证的方法及装置
CN106972919A (zh) 一种密钥协商方法和装置
WO2018000886A1 (zh) 应用程序通信处理系统、装置、方法及客户端、服务端
CN105553951B (zh) 数据传输方法和装置
CN105007279B (zh) 认证方法和认证系统
US20170134347A1 (en) System amd method for secure transmission of web pages using encryption of their content
CN109067803A (zh) 一种ssl/tls加解密通信方法、装置及设备
CN106790090A (zh) 基于ssl的通信方法、装置及系统
CN109302369B (zh) 一种基于密钥验证的数据传输方法及装置
CN105871797A (zh) 客户端与服务器进行握手的方法、装置及系统
CN106534086B (zh) 一种设备认证方法、终端设备、服务器及系统
Jøsang et al. Security in mobile communications: challenges and opportunities
CN107404469B (zh) 一种会话安全处理系统、设备、装置及方法
CN106941401A (zh) 加速设备以及基于加速设备获取会话秘钥的方法
CN111130799B (zh) 一种基于tee进行https协议传输的方法及系统
CN104378379A (zh) 一种数字内容加密传输方法、设备和系统
US20130019092A1 (en) System to Embed Enhanced Security / Privacy Functions Into a User Client
CN113868672B (zh) 模组无线固件升级方法、安全芯片和无线固件升级平台
CN104735037B (zh) 一种网络认证方法、装置及系统
CN114143117A (zh) 数据处理方法及设备
Elemam et al. Formal verification for a PMQTT protocol
CN105577657B (zh) 一种ssl/tls算法套件的扩展方法
US20240039899A1 (en) System and method for web-browser based end-to-end encrypted messaging and for securely implementing cryptography using client-side scripting in a web browser
CN112291248A (zh) 一种防护HTTPS DDoS攻击的方法及设备
Hallgren et al. Glasstube: A lightweight approach to web application integrity

Legal Events

Date Code Title Description
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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200424

CF01 Termination of patent right due to non-payment of annual fee