CN114651421A - 使用临时密钥的传输层安全中的正向安全 - Google Patents

使用临时密钥的传输层安全中的正向安全 Download PDF

Info

Publication number
CN114651421A
CN114651421A CN202080077907.1A CN202080077907A CN114651421A CN 114651421 A CN114651421 A CN 114651421A CN 202080077907 A CN202080077907 A CN 202080077907A CN 114651421 A CN114651421 A CN 114651421A
Authority
CN
China
Prior art keywords
key
server
certificate
session
public key
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
CN202080077907.1A
Other languages
English (en)
Other versions
CN114651421B (zh
Inventor
M.格雷
N.A.马迪内尼
M.格林
S.麦克马洪
L.麦克莱恩
S.麦克肯齐
L.伯吉斯
P.沃尔藤伯格
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN114651421A publication Critical patent/CN114651421A/zh
Application granted granted Critical
Publication of CN114651421B publication Critical patent/CN114651421B/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • 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/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • 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/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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/3265Cryptographic 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 chains, trees or paths; Hierarchical trust model
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)

Abstract

使用临时(暂时)密钥对来实现针对客户端和服务器之间的新会话的传输层安全(TLS)连接建立。响应于请求,服务器通过使用服务器的私钥对临时公钥进行签名来生成临时证书。至少包括临时证书连同服务器证书的证书链被充当下级证书授权机构由服务器向客户端输出,该临时证书包括临时公钥。客户端验证证书,生成会话密钥并且输出由临时公钥包装的会话密钥。为了完成连接建立,服务器应用临时私钥来恢复针对新会话的在客户端处导出的会话密钥。此后,客户端和服务器使用该会话密钥来对链路上的数据进行加密和解密。该临时密钥对不被重复使用。

Description

使用临时密钥的传输层安全中的正向安全
技术领域
本发明总体上涉及计算机网络上的信息安全。
背景技术
因为基于网络的安全威胁不断演进,所以基于安全套接层(Secure SocketsLayer,SSL)和/或传输层安全(Transport Layer Security,TLS)的加密在网络通信中的使用现在已变得普遍存在。实际上,现在估计的是全部业务网络流量的超三分之二或更多在SSL/TLS上传送。在典型的场景中,客户端应用和服务器应用彼此握手以建立安全链路。在此过程期间,端点通常使用RSA(Rivest-Shamir-Adelman)公钥密码协议来共享秘密(S),在连接建立之后,秘密(S)将由两侧使用以加密和解密数据。
在上述场景中存在众所周知的问题。具体地,因为服务器的RSA密钥对本质上是静态的,所以服务器的静态RSA私钥的任何泄漏潜在地导致所有会话数据的机密性的丢失。这是因为每个会话的数据利用在服务器的静态RSA密钥下交换的秘密(S)来加密。这种类型的攻击是直截了当的。为此,攻击者简单地记录客户端和服务器之间的针对所有连接的被传输的加密流量。尽管用于每个连接的秘密是不同的,但所有秘密由服务器的私钥保护。因此,当攻击者例如通过蛮力或其他攻击途径获得对密钥的访问时,所有被记录的连接的共享秘密(S)可被解密,并且随后所有应用数据可被恢复和查看。这种情况已知为不具有完美的前向安全(Perfect Forward Secrecy,PFS)。
发明内容
本公开描述了一种方法、装置和计算机程序产品,其防止针对客户端和服务器之间的基于传输层安全(TLS)的链路的导出的会话密钥集的泄漏,由此实现完美的前向保密性。服务器具有包括服务器公钥和相关联的服务器私钥的公钥对。
根据本公开的一方面,TLS连接建立优选地如下操作。响应于在服务器处接收到建立新会话的请求,优选地从预先生成的包括临时公钥和相关联的临时私钥的临时(暂时)密钥对的池中检索这种密钥对。服务器通过使用服务器自己的私钥来对临时公钥签名以生成临时证书。服务器然后向客户端输出证书链,该证书链至少包括临时证书连同服务器证书,该临时证书包括临时公钥,该服务器证书包括服务器公钥。以此方式,服务器充当下级证书管理机构。TLS连接的客户端侧然后尝试验证证书,并且当这样的验证时,通过生成会话密钥(共享秘密(S))和应用临时公钥(在临时证书中从服务器接收)来继续TLS连接建立。此后,该服务器从该客户端接收消息,该消息是由客户端将临时公钥应用于针对新会话在客户端处导出的会话密钥而生成的。然后,服务器通过将临时私钥应用到该消息来恢复针对新会话导出的会话密钥。这完成新会话的建立,并且客户端应用和服务器应用此后使用会话密钥(共享秘密)来加密和解密TLS链路上的数据。临时密钥对不被重复使用。使用此方法,获得完美的前向保密性,因为与新会话的建立相关联的密钥的泄漏不会泄漏该集中的一个或多个其他导出的会话密钥。
前述内容概述了所公开的主题的一些更相关的特征。这些特征应被解释为仅是说明性的。许多其他有益的结果可以通过以不同方式应用所披露的主题或通过修改如将描述的主题来获得。
附图说明
为了更完整地理解主题及其优点,现在参考结合附图进行的以下描述,其中:
图1描绘了其中可以实施说明性实施例的示例性各方面的分布式数据处理环境的示例性框图;
图2是其中可以实施说明性实施例的示例性各方面的数据处理系统的示例性框图;
图3示出了证书层次结构;
图4描绘了传输层安全(TLS)连接建立;以及
图5描绘了本公开的关于针对客户端和服务器导出的会话密钥集提供完美的前向保密保证的技术。
具体实施方式
现在参考附图并且具体参见图1-图2,提供了其中可以实施本发明的说明性实施例的数据处理环境的示例性示图。应当理解,图1-图2仅仅是示例性的,并不旨在断言或暗示对所公开的主题的各方面或实施例可在其中实施的环境的任何限制。在不脱离本发明的范围的情况下,可以对所描绘的环境做出许多修改。
客户端-服务器技术
现在参考附图,图1描绘了其中可以实施说明性实施例的各方面的示例性分布式数据处理系统的图画表示。分布式数据处理系统100可以包括其中可以实施说明性实施例的各方面的计算机网络。分布式数据处理系统100包含至少一个网络102,网络102是用于在分布式数据处理系统100内连接在一起的不同设备和计算机之间提供通信链路的介质。网络102可以包括诸如有线、无线通信链路或光纤电缆之类的连接。
在所描绘的示例中,服务器104和服务器106与存储单元108一起连接到网络102。此外,客户端110、112和114也连接到网络102。这些客户端110、112和114可以是例如个人计算机、网络计算机等。在所描绘的示例中,服务器104向客户端110、112和114提供诸如引导文件、操作系统映像和应用之类的数据。在所描绘的示例中,客户端110、112和114是服务器104的客户端。分布式数据处理系统100可以包括附加的服务器、客户端和未示出的其他设备。
在所描绘的示例中,分布式数据处理系统100是具有网络102的互联网,网络102表示使用传输控制协议/互联网协议(TCP/IP)协议组来彼此通信的网络和网关的全球集合。互联网的核心是主节点或主计算机之间的高速数据通信线路的主干,由数千个路由数据和消息的商业、政府、教育和其他计算机系统组成。当然,分布式数据处理系统100还可被实施为包括多个不同类型的网络,诸如例如内联网、局域网(LAN)、广域网(WAN)等。如上所述,图1旨在作为示例,而不作为对所公开的主题的不同实施例的架构限制,并且因此,在图1中示出的特定元件不应当被认为是对其中可以实施本发明的说明性实施例的环境的限制。
现在参考图2,示出了其中可以实施说明性实施例的各方面的示例性数据处理系统的框图。数据处理系统200是计算机(诸如图1中的客户端110)的示例,实施针对本公开说明性实施例的过程的计算机可用代码或指令可以位于其中。
现在参考图2,示出了其中可以实施说明性实施例的数据处理系统的框图。数据处理系统200是计算机(诸如图1中的服务器104或客户端110)的示例,实施针对说明性实施例的过程的计算机可用程序代码或指令可以位于其中。在该说明性示例中,数据处理系统200包括通信结构202,其提供处理器单元204、存储器206、永久性存储装置208、通信单元210、输入/输出(I/O)单元212和显示器214之间的通信。
处理器单元204用于执行可以被加载到存储器206中的软件的指令。处理器单元204可以是一个或多个处理器的集合,或者可以是多处理器核心,这取决于特定的实施方式。进一步,处理器单元204可以使用一个或多个异构处理器系统来实施,在该异构处理器系统中,主处理器与次级处理器存在于单个芯片上。作为另一说明性实例,处理器单元204可以是包含相同类型的多个处理器的对称多处理器(symmetric multi-processor,SMP)系统。
存储器206和永久性存储装置208是存储设备的示例。存储设备是能够基于临时地和/或永久地存储信息的任何硬件。在这些示例中,存储器206可以是例如随机存取存储器或任何其他合适的易失性或非易失性存储设备。永久性存储器208可以采取各种形式,这取决于特定的实施方式。例如,永久性存储装置208可以包含一个或多个组件或设备。例如,永久存储装置208可以是硬盘驱动器、闪存、可重写光盘、可重写磁带或上述的一些组合。由永久性存储装置208使用的介质也可以是可移动的。例如,可移动硬盘驱动器可以用于永久性存储装置208。
在这些示例中,通信单元210提供与其他数据处理系统或设备的通信。在这些示例中,通信单元210是网络接口卡。通信单元210可通过使用物理和无线通信链路中的任一个或两者来提供通信。
输入/输出单元212允许与可以连接到数据处理系统200的其他设备进行数据的输入和输出。例如,输入/输出单元212可以为通过键盘和鼠标的用户输入提供连接。此外,输入/输出单元212可以将输出发送到打印机。显示器214提供向用户显示信息的机制。
用于操作系统和应用或程序的指令位于永久性存储装置208上。这些指令可被加载到存储器206中以供处理器单元204执行。处理器单元204可以使用计算机实施的指令来执行不同实施例的过程,这些指令可以位于存储器(例如,存储器206)中。这些指令被称为可以由处理器单元204中的处理器读取和执行的程序代码、计算机可用程序代码或计算机可读程序代码。不同实施例中的程序代码可以在不同的物理或有形计算机可读介质上体现,诸如存储器206或永久性存储器208。
程序代码216以功能形式位于选择性可移除的计算机可读介质218上,并且可被加载到或转移到数据处理系统200以供处理器单元204执行。在这些示例中,程序代码216和计算机可读介质218形成计算机程序产品220。在一个示例中,计算机可读介质218可以是有形形式,诸如,插入或放置在驱动器中的光盘或磁盘或作为永久性存储器208的一部分用于转移到存储设备上的其他设备,诸如,作为永久性存储器208的一部分的硬盘驱动器。在有形形式中,计算机可读介质218还可以采取永久性存储装置的形式,诸如连接到数据处理系统200的硬盘驱动器、拇指驱动器或闪存。计算机可读介质218的有形形式也被称为计算机可记录存储介质。在一些实例中,计算机可记录媒质218可能不是可移除的。
可替代地,程序代码216可以从计算机可读介质218通过到通信单元210的通信链路被传输到数据处理系统200,和/或到输入/输出单元212的连接被传输到数据处理系统200。在说明性示例中,通信链路和/或连接可以是物理或无线的。计算机可读介质还可采取非有形介质的形式,诸如包含程序代码的通信链路或无线传输。针对数据处理系统200示出的不同组件不意味着对其中可以实施不同实施例的方式提供架构限制。不同说明性实施例可以在包括除了针对数据处理系统200所示出的那些组件之外的组件或者包括作为针对数据处理系统200所示出的那些组件的替代组件的数据处理系统中实施。图2所示的其它组件可以不同于所示的说明性示例。作为一个示例,数据处理系统200中的存储设备是可以存储数据的任何硬件装置。存储器206、永久性存储装置208以及计算机可读介质218是有形形式的存储设备的示例。
在另一示例中,总线系统可用于实施通信结构202并且可以包括一个或多个总线,诸如系统总线或输入/输出总线。当然,可以使用在附接到总线系统的不同组件或设备之间提供数据传输的任何合适类型的架构来实现总线系统。此外,通信单元可包括用于发送和接收数据的一个或多个设备,诸如调制解调器或网络适配器。进一步,存储器可以是例如存储器206或诸如在可能存在于通信结构202中的接口和存储器控制器集线器中找到的高速缓存。
能够以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如JavaTM、Smalltalk、C++、C#、Objective-C等,还包括常规的过程式程序设计语言。程序代码可以完全地在用户计算机上执行、部分在用户计算机上执行、作为独立软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接至用户计算机,或者可连接至外部计算机(例如,使用互联网服务提供商通过互联网)。
本领域普通技术人员将理解,图1-图2中的硬件可以根据实施方式而变化。除了在图1-图2中描述的硬件之外或者作为在图1-图2中描述的硬件的替代,可以使用其他内部硬件或外围设备,诸如闪存、等效非易失性存储器或光盘驱动器等。此外,在不脱离本公开主题的范围的情况下,说明性实施例的过程可应用于多处理器数据处理系统,而不是前述SMP系统。
如将看到的,本文描述的技术可以在诸如图1所示的标准客户端-服务器范例内协同操作,其中客户端机器与在一组一个或多个机器上执行的互联网可访问的基于Web的门户通信。终端用户操作能够访问门户并与门户交互的互联网可连接设备(例如,台式计算机、笔记本计算机、启用互联网的移动设备等)。通常,每个客户端或服务器机器是诸如图2所示的包括硬件和软件的数据处理系统,并且这些实体通过诸如互联网、内联网、外联网、专用网络或任何其他通信介质或链路的网络彼此通信。数据处理系统通常包括一个或多个处理器、操作系统、一个或多个应用和一个或多个实体。数据处理系统上的应用提供对Web服务的本地支持,包括但不限于对HTTP、SOAP、XML、WSDL、UDDI和WSFL等的支持。关于SOAP、WSDL、UDDI和WSFL的信息可从负责开发和维护这些标准的万维网联盟(World Wide WebConsortium,W3C)获得;关于HTTP和XML的进一步信息可从互联网工程任务组(InternetEngineering Task Force,IETF)获得。假定熟悉这些标准。
公钥密码系统
公钥加密(Public-key cryptography,PKC)是涉及使用非对称密钥算法的加密方法。与对称密钥算法不同,PKC不要求对于发送方和接收方两者的一个或多个秘密密钥的安全初始交换。非对称密钥算法用于创建数学上相关的密钥对:秘密私钥和公布的公钥。通过使用私钥来创建消息的数字签名,这些密钥的使用允许保护消息的真实性,其中该私钥可以使用公钥来验证。它还允许通过公钥加密来保护消息的机密性和完整性,其中该公钥加密是使用公钥来对消息进行加密,该消息仅可以使用私钥解密。
密钥生成是生成用于密码技术的密钥的过程。现代密码系统包括对称密钥算法(例如,DES、AES及其他)和公共密钥算法(例如,RSA、D-H、EDH及其他)。对称密钥算法使用单个共享密钥;如果单个密钥保持私有,则维持数据保密性。公钥算法使用由公钥和私钥组成的密钥对。通常通过数字证书使公钥对任何人可用。发送方用公钥对数据进行加密,只有私钥的持有者才能对该数据进行解密。通常,计算机将整数用于密钥。密钥还可使用随机数发生器(random number generator,RNG)或伪随机数发生器(pseudorandom numbergenerator,PRNG)来随机生成。PRNG是产生在分析中表现为随机的数据的算法。使用系统熵来创建种子数据(seed data)的PRNG通常产生更好的结果,因为这使得攻击者难以猜到PRNG的初始条件。在其他情况下,确定地导出密钥,例如,使用密钥导出函数(keyderivation function,KDF)。KDF通常使用伪随机函数从秘密值(例如主密钥、密码或口令)导出一个或多个秘密密钥。
更一般地,公钥密码技术对于隐私性(通过加密)和认证(使用数字签名)是有用的。加密是在没有秘密解密密钥的情况下将数据转换成任何人无法读取的形式;加密通过保持信息的内容对期望该内容的任何人、甚至是能够看到加密数据的人隐藏来保证隐私。认证是一种过程,由此数字消息的接收者被保证发送者的身份和/或消息的完整性。作为示例(隐私和认证的示例),当发送者加密消息时,接收者的公钥被用于将原始消息内的数据转换成经加密的消息的内容。发送者使用预期的接收者的公钥来加密数据,并且接收者使用其私钥来解密经加密的消息。当认证数据时,可以通过使用签名者的私钥根据数据计算数字签名来对数据进行签名。一旦数据被数字签名,它就可以与签名者的身份一起被存储,并且签名随后证明该数据源自签名者。签名者使用其私钥对数据进行签名,而接收者使用签名者的公钥来验证签名。
公钥密码系统可以全部或部分地用物理认证器来实施,该物理认证器可以用于携带或保护密钥。这些物理认证器包括例如安全令牌、硬件令牌、USB认证器、密钥卡(keyfob)等以携带密钥。这种设备提供基于密码的双因素认证(two-factor authentication,2FA)。双因素认证通过两个不同组件的组合来提供对用户的识别。这些组件可以是用户知道的事物、用户拥有的事物或与用户不可分离的事物。
SSL/TLS
作为进一步的背景,安全套接层/传输层安全(SSL/TLS)是用于保护通过诸如互联网的网络进行通信的众所周知的密码协议。诸如SSL/TLS的密码协议通常基于公钥密码系统,诸如RSA(Rivest、Shamir和Adelman)加密算法。对于传统的基于RSA的SSL/TLS会话,连接的双方同意“预主秘密”(pre-master secret,PMS),其用于为会话的剩余部分生成参数。通常,双方使用RSA非对称加密来建立预主秘密,而不以明文交换实际值。在操作中,SSL/TLS客户端生成预主秘密,并用SSL/TLS服务器的公共可用RSA密钥对其进行加密。这生成加密的预主秘密(ePMS),然后该加密的预主秘密被提供给SSL/TLS服务器。SSL/TLS服务器具有私有的解密密钥,该私有的解密密钥然后用于解密经加密的预主秘密。此时,客户端和服务器两者都具有原始的预主秘密,并且可以使用它来生成用于实际加密和安全数据交换的对称密钥。
证书,信任链
证书是数字文档,其担保特定实体(诸如,个人、计算机系统、在该系统上运行的特定服务器等)的加密密钥的身份和所有权。证书由证书管理机构颁发。证书授权机构(certificate authority,CA)是实体,通常是交易的可信第三方,其被信任来为其他人或实体进行签名或颁发证书。通常,CA为公钥与其所有者之间的绑定的担保承担法律责任,以允许人们信任为证书签名的实体。存在许多商业证书授权机构;这些机构负责在颁发证书时验证实体的身份和密钥所有权。如果CA颁发了实体的证书,则实体必须提供关于该实体的公钥和一些信息。软件工具(例如,web浏览器)可以对该信息进行数字签名,并将其发送到证书授权机构。证书授权机构可以是提供受信第三方证书授权机构服务的商业公司。CA通过将请求实体的公钥(通常连同其他识别信息)嵌入(在证书中),并且然后利用证书授权机构的私钥对数字证书进行签名来创建数字证书。在交易或通信期间接收数字证书的任何人随后可使用证书授权机构的公钥来验证证书内的经签名的公钥。意图是证书授权机构的签名充当数字证书上的防篡改封条,由此确保证书中的数据的完整性。
web上的加密流量由信任链发生。每个web服务器具有其呈现给每个客户端(通常是web浏览器)的证书,以指示它们是他们所说的那些。网络服务器通常从可保证web服务器的合法性的机构(证书机构或CA)获得这些证书。服务器的证书指示从其获得证书的授权机构(“颁发人”)。Web浏览器通常具有他们信任的颁发者列表。当向web浏览器呈现来自web服务器的证书时,浏览器将检查颁发者并将其与其可信列表进行匹配。如果发现匹配,则连接将继续;如果没有发现匹配,则浏览器通常将呈现警告并且可能拒绝连接。CA不一定是除了可信的事实之外的特殊实体。任何实体都可以将自己设置成信任证书或为证书签名。证书可以信任自身,其被称为自签名的证书。为了使用SSL/TLS与客户端互操作,需要创建客户端将隐含地信任的证书。
如上所述,证书授权机构使用它们自己的私钥对它们颁发的证书进行数字签名。因此,另一方可以通过利用证书授权机构自身的公钥验证证书上的签名来验证证书中的信息,包括其扩展。另一方从颁发给证书授权机构的证书得到证书授权机构的公钥,并进行可能涉及来自又一证书的公钥的签名检查。取决于证书层级结构,验证的链可以相当长。图3是使用公钥协议的简单证书层次结构的示例。
如所描绘的,证书层次结构300包含若干实体,其中末端实体证书302由下级证书授权机构(CA#2)304颁布的。CA#2 304的证书303由下级证书授权机构(CA#1)306颁发。CA#1306的证书305由根证书授权机构308颁发。根证书授权机构308的证书307是自颁发的,意味着其证书由其自己的私钥(自签名的证书)签名。签名验证链开始于终端实体证书302。具体地,CA#2的公钥用于验证末端实体证书302的签名。如果该签名有效,则CA#1 306的公钥被用来验证CA#2证书303的签名。如果该签名有效,则根证书的公钥被用来验证CA#1证书305的签名。最后,根证书307的签名使用其自身的公钥来验证。对自己签名的根证书的签名验证简单地提供根证书未被改变的保证。不保证证书中的信息或者证书授权机构本身是可信的,因为任何人都可以创建自签名的证书并且声称其是证书授权机构。因此,必须在使用公钥协议之前建立实体自己选择的证书授权机构的集合和单个证书的信任。所选择的可信证书或CA的集合有时被称为可信根、可信签名者,或简称为可信策略。
服务器可以被配置为实施和强制执行信任策略。这种类型的商业服务器的一个示例是
Figure BDA0003634065310000091
安全服务器。安全服务器是z/OS的可选特征,其允许管理员控制对受保护资源的访问。IBM安全服务器包括IBM
Figure BDA0003634065310000101
(资源访问控制设施)。对于
Figure BDA0003634065310000102
用户,RACF提供一组Java安全管理API集以允许管理来自z/OS RACF或其他非z/OS安全机制的安全储存库中的用户和组。RACF通过RACF密钥环支持如上所述的信任策略。类似于支持数字证书的其他安全软件,RACF具有用于供应可信根证书的预定义集合的方法。为此,RACF包括证书授权机构证书的基本集合,每当系统最初被加载时,证书授权机构证书被添加到RACF数据库。
概括地,在证书链中反映证书授权机构(CA)层级。证书链跟踪证书的路径,例如从层次结构中的分支到层次结构的根。在证书链中,每个证书之后是其颁发者的证书,并且每个证书包含该证书的颁发者的专有名称(distinguished name,DN)。这与证书链中的下一个证书的主题名称相同。每个证书用其颁发者的私钥来签名。可以使用颁发者的证书中的公钥来验证签名,颁发者的证书是证书链中的下一个证书。
图4描绘了在不参考本公开的技术的情况下在客户端400与服务器402之间的SSL/TLS握手。假设客户端400和服务器402使用在它们之间共享的秘密(S)来加密和解密数据。为了共享秘密,进一步假设RSA(Rivest-Shamir-Adelman)公钥密码系统被使用。下面假定熟悉基于标准的TLS 1.0、1.1和1.2。
握手在步骤(1)开始,服务器402从客户端400接收有效的TLS ClientHello消息401。在步骤(2),服务器402以ServerHello消息403作出响应,ServerHello消息403之后是服务器的证书405和链中的任何其他证书(由TLS 1.0、1.1或1.2定义)。证书405包括服务器的公钥,即server-cert-key-pub。在步骤(3),客户端验证服务器的公钥证书。如所描绘的,客户端400然后生成密码地安全秘密(S)并用在服务器的公钥证书中提供的服务器公钥(server-cert-key-pub)加密该秘密。在步骤(4),客户端400在ClientKeyExchange消息(如由TLS 1.0、1.1或1.2定义)407中将经加密的密钥(C)发送到服务器402。在步骤(5),服务器402使用服务器私钥(即,server-cert-key-priv)从经加密的密钥(C)中解密秘密(S)。在步骤(6),服务器402响应客户端400握手过程完成。TLS中的所有未来的经加密的消息(包括应用数据)然后使用秘密(S)来加密,通信的双方现在拥有秘密(S)。例如,在步骤(7),客户端400使用秘密(S)对应用数据进行加密。然后例如在步骤(8),将该应用数据从客户端400发送到服务器402。在服务器上,并且在步骤(9),服务器通过将秘密(S)应用于从客户端接收的数据来恢复应用数据。同样地,由服务器发送的应用数据首先在例如步骤(10)处用秘密(S)加密,例如在步骤(11)处被传输到客户端,例如在步骤(12)处在客户端处使用秘密(S)被解密,等等。当客户端期望关闭连接时,其例如在步骤(13)通知服务器完成会话。
在上述场景中存在问题。具体地,服务器的RSA密钥对(即,server-cert-key-priv和server-cert-key-pub)本质上是静态的,并且因此服务器的静态RSA私钥的泄漏可能导致所有会话数据的机密性的丢失。这是因为每个会话的数据利用在服务器的静态RSA密钥(server-cert-key-priv)下交换的秘密(S)来加密。这种类型的攻击是直截了当的。为此,攻击者简单地记录针对所有连接的在客户端400与服务器402之间传输的加密流量。尽管用于每个连接的秘密是不同的,但所有秘密由服务器的私钥保护。因此,当攻击者例如通过蛮力或其他攻击途径获得对该密钥的访问时,所有被记录的连接的共享秘密(S)可被解密,并且随后所有应用数据可被恢复和查看。这种情况已知为不具有完美的前向安全(PFS)。
将临时传输证书中的临时密钥对用于前向安全
以上内容作为背景,现在描述本发明的技术。
具体地,图4中的技术通过使服务器和客户端使用临时密钥代替服务器的静态RSA私钥来增强。如在本文所使用的,密码密钥被认为是“临时的”(并且因此是“临时密钥”),因为它是针对密钥建立过程的每次执行而生成的,如将看到的。为了实现根据本文的技术的完美的前向安全(PFS),服务器使用临时的(优选地RSA)私钥和公钥来代替其静态的私钥。现在参照图5描述优选的技术。
具体地,图5描绘了根据本公开的客户端500与服务器502之间的SSL/TLS握手。与先前实施例一样,假设客户端500和服务器502使用在它们之间共享的秘密(S)来加密和解密数据。为了共享秘密,进一步假设RSA(Rivest-Shamir-Adelman)公钥密码系统被使用。
再次,握手在步骤(1)开始,服务器502从客户端500接收有效的TLS ClientHello消息501。代替服务器简单地用其服务器证书(和服务器公钥)如之前那样进行响应,执行以下附加处理。具体地,在步骤(2),服务器502获得RSA临时公钥对(temporary-keys)并建立临时证书(temporary-cert)。与其中密钥在颁发时通常具有到期日期集(通常在几年的范围内)或者由于泄漏而手动撤销的RSA的常规使用相比,“临时”的概念在这里指的是单个会话的寿命。该临时公钥对(包括临时公钥及其相关联的私钥)可以即时(即,在握手时)生成,但是优选方法是服务器从预生成的临时密钥对的池中检索密钥对。为了被认为是临时的,每个会话仅使用一次临时密钥(temporary-keys)。优选地,该密钥对以随机或伪随机方式生成,使得密钥值不可预测或能够根据已知数据导出。
在步骤(2)并且如所描绘的,服务器502使用服务器的私钥(server-cert-key-priv)对临时公钥(temporary-key-pub)进行数字签名(即,创建数字签名)以创建临时证书(temporary-cert)。在步骤(3),服务器用包括临时证书(包括临时公钥)、服务器的证书(包括服务器公钥)和链中的任何其他证书(由TLS 1.0、1.1或1.2定义)的ServerHello消息503来响应ClientHello消息501。这些操作(服务器获得临时密钥对并用服务器私钥对临时公钥进行签名以创建临时证书,然后将临时证书包括在服务器响应中)将该流程与图4中示出的流程区分开来。然后,在步骤(4),客户端500执行验证。该验证与先前流程中的不同之处在于,除了客户端验证服务器的公钥证书之外,客户端500还尝试验证临时证书。如果(链中的)所有证书被验证,则客户端500然后生成密码地安全秘密(S),并且在此流程中,用临时公钥(temporary-cert-key-pub)而不是如在先前流程中那样使用服务器公钥对秘密进行加密。在步骤(5),客户端500在ClientKeyExchange消息507中将加密密钥(C)发送到服务器502。在步骤(6),服务器502在这个流程中使用临时公钥对的临时私钥(即,temporary-cert-key-priv)而不是服务器的私钥(如图4所示)从密钥(C)中解密秘密(S)。在步骤(7),服务器502对客户端500作出握手过程完成的响应。
TLS中的所有未来的经加密的消息(包括应用数据)然后使用秘密(S)来加密,通信的双方现在拥有秘密(S)。例如,在步骤(8),客户端500使用秘密(S)对应用数据加密。然后例如在步骤(9),应用数据从客户端500被发送到服务器502。在服务器上,并且在步骤(10),服务器通过将秘密(S)应用于从客户端接收的数据来恢复应用数据。同样地,由服务器发送的应用数据首先在步骤(11)处用秘密(S)加密,例如在步骤(12)处被传输到客户端,例如在步骤(13)处在客户端处使用秘密(S)被解密,等等。当客户端期望关闭连接时,其例如在步骤(14)通知服务器完成会话。
如本领域技术人员将理解的,通过在握手期间使用临时密钥,实现了若干优点。具体地,服务器端实体证书的静态私钥仅用于颁发临时证书,但该静态私钥不再用于导线上的秘密的物理交换。上述服务器私钥的使用等同于数字签名操作,而不是加密,并且因此服务器私钥在将来的任何暴露不会揭示自身使用中的临时密钥,从而确保完美的前向保密性。因此,如果攻击者获得对服务器的私钥的访问,则消息仍然是安全的,因为临时私钥是未知的,并且攻击者无法获得秘密会话密钥(S)。换言之,这些临时密钥对优选地是随机生成的并且通过定义是短寿命的,由此即使在服务器私钥被暴露时也促进前向保密性。服务器实体的证书仅用于对短寿命密钥签名以创建临时证书,并且使得客户端(使用该服务器实体证书)能够验证临时传输证书。该方法具有进一步的优点:当需要使客户端和服务器之间的连接降级时,避免重复协商。
在本文的方法中,将服务器端实体证书用作下级证书授权机构。如所指出的,服务器使用用于会话的临时密钥对来创建临时证书,对该临时证书签名并且将该临时证书作为包括服务器证书的证书链的一部分发送,服务器证书继而随后在客户端处用于验证传输证书。当验证成功时,客户端使用其已经在传输证书中接收的临时公钥来加密客户端生成的共享秘密(S),该共享秘密在服务器处是完成握手所需要的。然后,秘密(S)充当对称会话密钥来加密和解密用于所建立的连接的数据。使用临时密钥来交换会话密钥提供了完美的前向保密性。实际上,服务器私钥的泄漏不具有泄漏许多TLS会话密钥的效果。临时的RSA私钥泄漏仅泄漏其用于建立的会话,并且静态RSA服务器私钥的泄漏仅允许创建无效签名而不泄漏先前的TLS会话。
虽然使用RSA作为优选的公钥密码方案描述了该方法,但这不是必需的,因为支持数字签名操作的其他非对称密码算法可以代替静态密钥对,并且支持加密/解密的其他非对称密码算法可以代替临时密钥对。概括地,本文的技术可以与使用公钥基础设施(PublicKey Infrastructure,PKI)的任何协议一起使用,并且具体地,在静态数字签名密钥对(a)对用于交换(多个)共享密钥的临时不对称加密密钥对(e)进行签名的情况下。
虽然已经描述了优选的操作环境和使用情况,但是本文的技术可用于期望保护去往和/或来自计算系统或设备的网络流量的任何其他操作环境中。
如上所述,上述功能可以实施为独立的方法,例如由处理器执行的基于软件的功能,或者它可以用作服务(包括经由SOAP/XML接口的web服务)。本文描述的特定硬件和软件实施细节仅用于说明性目的并不旨在限制所描述的主题的范围。
更一般地,所公开主题的上下文中的计算设备均是包括硬件和软件的数据处理系统(诸如图2中所示),并且这些实体通过诸如互联网、内联网、外联网、专用网络或任何其他通信介质或链路的网络彼此通信。数据处理系统上的应用提供对Web和其他已知服务和协议的本机支持,包括但不限于对HTTP、FTP、SMTP、SOAP、XML、WSDL、UDDI和WSFL等的支持。关于SOAP、WSDL、UDDI和WSFL的信息可从负责开发和维护这些标准的万维网联盟(W3C)获得;关于HTTP、FTP、SMTP和XML的进一步信息可从互联网工程任务组(IETF)获得。假定熟悉这些已知的标准和协议。
本文中描述的技术可以在不同客户端侧架构(例如,防火墙、NAT设备)中或结合不同客户端侧架构(例如,防火墙、NAT设备)实施,以及在不同服务器侧架构(包括简单n层架构、web门户、联合系统等)中或结合不同服务器侧架构实施。本文的技术可以在松散耦合的服务器(包括基于“云”的)环境中实践。
更一般地,本文描述的主题可以采取完全硬件实施例、完全软件实施例或包含硬件和软件元素两者的实施例的形式。在优选实施例中,可信平台模块功能以软件实现,该软件包括但不限于固件、驻留软件、微代码等。此外,下载和删除界面和功能可以采取可从计算机可用或计算机可读介质访问的计算机程序产品的形式,该计算机可用或计算机可读介质提供用于由计算机或任何指令执行系统使用或结合计算机或任何指令执行系统使用的程序代码。为了本描述的目的,计算机可用或计算机可读介质可以是可包含或存储供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合使用的程序的任何装置。该介质可以是电子、磁性、光学、电磁、红外或半导体系统(或装置或设备)。计算机可读介质的示例包括半导体或固态存储器、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、刚性磁盘和光盘。光盘的当前实例包括致密盘-只读存储器(CD-ROM)、致密盘-读/写(CD-R/W)和DVD。计算机可读介质是有形的、非临时性物品。
计算机程序产品可以是具有用于实施所描述的功能中的一个或多个的程序指令(或程序代码)的产品。这些指令或代码可在通过网络从远程数据处理系统下载之后存储在数据处理系统中的非暂时性计算机可读存储介质中。或者,这些指令或代码可存储在服务器数据处理系统中的计算机可读存储介质中,且适于经由网络下载到远程数据处理系统以供在远程系统内的计算机可读存储介质中使用。
在代表性实施例中,接口和实体在专用计算平台中实施,优选地在由一个或多个处理器执行的软件中实施。软件被维护在与一个或多个处理器相关联的一个或多个数据存储或存储器中,并且软件可以被实施为一个或多个计算机程序。总的来说,该专用硬件和软件包括上述功能。
虽然以上描述了由本发明的某些实施例执行的操作的特定顺序,但应理解,这样的顺序是示例性的,因为替代实施例可以不同顺序执行操作、组合某些操作、重叠某些操作等。说明书中对给定实施例的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以不必包括该特定特征、结构或特性。
最后,虽然已经单独地描述了系统的给定组件,但是本领域普通技术人员将理解,可以在给定指令、程序序列、代码部分等中组合或共享一些功能。
本文的技术总体上提供对技术或技术领域的上述改进,以及对密码安全网络通信的具体技术改进,如以上所描述的。

Claims (20)

1.一种防止针对客户端与服务器之间的基于传输层安全(TLS)的链路的导出的会话密钥集的泄漏的方法,所述服务器具有包括服务器公钥和相关联的服务器私钥的公钥对,所述方法包括:
响应于在所述服务器处接收到建立新会话的请求,检索包括临时公钥和相关联的临时私钥的临时密钥对;
通过使用所述服务器私钥对所述临时公钥进行签名来生成临时证书;
向所述客户端输出证书链,所述证书链至少包括所述临时证书连同服务器证书,所述临时证书包括所述临时公钥,所述服务器证书包括所述服务器公钥;
从所述客户端接收消息,所述消息是由所述客户端将所述临时公钥应用于针对所述新会话导出的会话密钥而生成的;以及
通过将所述临时私钥应用于所述消息来恢复针对所述新会话导出的会话密钥以完成所述新会话的建立;
其中,与所述新会话的建立相关联的密钥的泄漏不泄漏所述集中的一个或多个其他导出的会话密钥。
2.根据权利要求1所述的方法,还包括在接收到所述请求之前生成临时密钥对的池,所述临时密钥对是从所述池中检索的。
3.根据权利要求1所述的方法,其中,所述临时密钥对在所述新会话的关闭之后被丢弃并且不被重复使用。
4.根据权利要求1所述的方法,其中,所述服务器证书用作下级证书授权机构。
5.根据权利要求1所述的方法,其中,所述密钥对中的每一个是Rivest-Shamir-Adelman(RSA)密钥对。
6.根据权利要求1所述的方法,其中,所述临时密钥对是随机生成的。
7.一种被配置为服务器的装置,包括:
处理器;
计算机存储器,其保持由所述处理器执行的计算机程序指令,所述计算机程序指令包括程序代码,所述程序代码被配置为防止针对客户端和所述服务器之间的基于传输层安全(TLS)的链路的导出的会话密钥集的泄漏,所述服务器具有包括服务器公钥和相关联的服务器私钥的公钥对,所述程序代码被配置为:
响应于在所述服务器处接收到建立新会话的请求,检索包括临时公钥和相关联的临时私钥的临时密钥对;
通过使用所述服务器私钥对所述临时公钥进行签名来生成临时证书;
向所述客户端输出证书链,所述证书链至少包括所述临时证书和服务器证书,所述临时证书包括所述临时公钥,所述服务器证书包括所述服务器公钥;
从所述客户端接收消息,所述消息是由所述客户端将所述临时公钥应用于为针对新会话导出的会话密钥而生成的;以及
通过将所述临时私钥应用于所述消息来恢复针对所述新会话导出的会话密钥以完成所述新会话的建立;
其中,与所述新会话的建立相关联的密钥的泄漏不泄漏所述集中的一个或多个其他导出的会话密钥。
8.根据权利要求7所述的装置,其中,所述程序代码还被配置为在接收所述请求之前生成临时密钥对的池,所述临时密钥对从所述池中检索。
9.根据权利要求7所述的装置,其中,所述程序代码还被配置为在所述新会话关闭之后丢弃所述临时密钥对并且防止所述临时密钥对的重复使用。
10.根据权利要求7所述的装置,其中,所述服务器证书用作下级证书授权机构。
11.根据权利要求7所述的装置,其中,所述密钥对中的每一个是Rivest-Shamir-Adelman(RSA)密钥对。
12.根据权利要求7所述的装置,其中,所述程序代码被配置为随机生成所述临时密钥对。
13.一种在非暂存性计算机可读介质中的计算机程序产品,用于数据处理系统,所述计算机程序产品保持由所述数据处理系统执行的计算机程序指令,计算机程序指令用于防止针对客户端和服务器之间的基于传输层安全(TLS)的链路的导出的会话密钥集的泄漏,所述服务器对应于所述数据处理系统并且具有包括服务器公钥和相关联的服务器私钥的公钥对,所述计算机程序指令包括程序代码,所述程序代码被配置为:
响应于在所述服务器处接收到建立新会话的请求,检索包括临时公钥和相关联的临时私钥的临时密钥对;
通过使用所述服务器私钥对所述临时公钥进行签名来生成临时证书;
向所述客户端输出证书链,所述证书链至少包括所述临时证书和服务器证书,所述临时证书包括所述临时公钥,所述服务器证书包括所述服务器公钥;
从所述客户端接收消息,所述消息是由所述客户端将所述临时公钥应用于针对所述新会话导出的会话密钥而生成的;以及
通过将所述临时私钥应用于所述消息来恢复针对所述新会话导出的会话密钥以完成所述新会话的建立;
其中,与所述新会话的建立相关联的密钥的泄漏不泄漏所述集中的一个或多个其他导出的会话密钥。
14.根据权利要求13所述的计算机程序产品,其中,所述程序代码还被配置为在接收所述请求之前生成临时密钥对的池,所述临时密钥对从所述池中检索。
15.根据权利要求13所述的计算机程序产品,其中,所述程序代码还被配置为:在所述新会话关闭之后丢弃所述临时密钥对并防止所述临时密钥对的重复使用。
16.根据权利要求13所述的计算机程序产品,其中,所述服务器证书用作下级证书授权机构。
17.根据权利要求13所述的计算机程序产品,其中,所述密钥对中的每一个是Rivest-Shamir-Adelman(RSA)密钥对。
18.根据权利要求17所述的计算机程序产品,其中,所述程序代码被配置为随机生成所述临时密钥对。
19.一种被配置为客户端的装置,包括:
处理器;
计算机存储器,其保持由所述处理器执行的计算机程序指令,所述计算机程序指令包括程序代码,所述程序代码被配置为防止针对所述客户端和服务器之间的基于传输层安全(TLS)的链路的导出的会话密钥集的泄漏,所述服务器具有包括服务器公钥和相关联的服务器私钥的公钥对,所述程序代码被配置为:
向所述服务器发出建立新会话的请求;
从所述服务器接收证书链,所述证书链包括服务器证书连同临时证书,所述服务器证书包括服务器公钥,所述临时证书包括临时密钥对的临时公钥,所述临时密钥对具有相关联的临时私钥,所述临时证书是通过所述服务器用所述服务器私钥对所述临时公钥进行签名而生成的;
响应于验证所述证书链,导出针对所述新会话的会话密钥;
将所述临时公钥应用于所导出的会话密钥以生成消息;以及
将所述消息输出到所述服务器,所导出的会话密钥可由所述服务器将所述临时私钥应用于所述消息来恢复;
其中,与所述新会话的建立相关联的密钥的泄漏不泄漏所述集中的一个或多个其他导出的会话密钥。
20.根据权利要求19所述的装置,其中,所述公共密钥对和所述临时密钥对是Rivest-Shamir-Adelman(RSA)密钥对。
CN202080077907.1A 2019-11-11 2020-10-29 使用临时密钥的传输层安全中的正向安全 Active CN114651421B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/679,422 US11206135B2 (en) 2019-11-11 2019-11-11 Forward secrecy in Transport Layer Security (TLS) using ephemeral keys
US16/679,422 2019-11-11
PCT/IB2020/060142 WO2021094863A1 (en) 2019-11-11 2020-10-29 Forward secrecy in transport layer security using ephemeral keys

Publications (2)

Publication Number Publication Date
CN114651421A true CN114651421A (zh) 2022-06-21
CN114651421B CN114651421B (zh) 2022-12-27

Family

ID=75847197

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080077907.1A Active CN114651421B (zh) 2019-11-11 2020-10-29 使用临时密钥的传输层安全中的正向安全

Country Status (6)

Country Link
US (2) US11206135B2 (zh)
JP (1) JP2023501449A (zh)
CN (1) CN114651421B (zh)
DE (1) DE112020004236B4 (zh)
GB (1) GB2603096B (zh)
WO (1) WO2021094863A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9531685B2 (en) * 2011-12-16 2016-12-27 Akamai Technologies, Inc. Providing forward secrecy in a terminating SSL/TLS connection proxy using Ephemeral Diffie-Hellman key exchange
US11991273B2 (en) * 2018-09-04 2024-05-21 International Business Machines Corporation Storage device key management for encrypted host data
US11088829B2 (en) 2018-09-04 2021-08-10 International Business Machines Corporation Securing a path at a node
US11038698B2 (en) 2018-09-04 2021-06-15 International Business Machines Corporation Securing a path at a selected node
US11405191B2 (en) * 2020-05-13 2022-08-02 Apple Inc. Guaranteed encryptor authenticity
US20210367767A1 (en) * 2020-05-21 2021-11-25 Marvell Asia Pte. Ltd. Methods and systems for secure network communication
US20210377309A1 (en) * 2020-06-02 2021-12-02 Hid Global Cid Sas System and method for establishing secure session with online disambiguation data
CN113411345B (zh) * 2021-06-29 2023-10-10 中国农业银行股份有限公司 一种安全会话的方法和装置
CN113556332A (zh) * 2021-07-09 2021-10-26 深圳市高德信通信股份有限公司 一种数据加密传输方法
CN113591109B (zh) * 2021-07-23 2023-05-02 上海瓶钵信息科技有限公司 可信执行环境与云端通信的方法及系统
US11930009B2 (en) 2021-10-17 2024-03-12 Oversec, Uab Optimized authentication mechanism
US20230153398A1 (en) * 2021-11-18 2023-05-18 DUDU Information Technologies, Inc. Apparatus and method for maintaining security of video data
US12015690B2 (en) * 2022-02-09 2024-06-18 Ivanti, Inc. Automated validation of data sources in a managed network
CN115150099B (zh) * 2022-07-06 2023-02-17 渔翁信息技术股份有限公司 数据抗抵赖传输方法、数据发送端及数据接收端
CN115589305A (zh) * 2022-08-25 2023-01-10 重庆长安汽车股份有限公司 一种车控数据的处理方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101459506A (zh) * 2007-12-14 2009-06-17 华为技术有限公司 密钥协商方法、用于密钥协商的系统、客户端及服务器
CN102510387A (zh) * 2011-12-29 2012-06-20 西安西电捷通无线网络通信股份有限公司 一种安全传输层协议tls握手方法和装置及ttp
US20150106624A1 (en) * 2011-12-16 2015-04-16 Akamai Technologies, Inc. Providing forward secrecy in a terminating TLS connection proxy
CN105993146A (zh) * 2013-03-07 2016-10-05 云耀公司 不访问私钥而使用公钥密码的安全会话能力
US20190245659A1 (en) * 2015-01-08 2019-08-08 Marvell World Trade Ltd. Downlink signaling in a high efficiency wireless local area network (wlan)
US20190253261A1 (en) * 2011-12-16 2019-08-15 Akamai Technologies, Inc. Providing forward secrecy in a terminating SSL/TLS connection proxy using ephemeral Diffie-Hellman key exchange

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2822002B1 (fr) 2001-03-12 2003-06-06 France Telecom Authentification cryptographique par modules ephemeres
JP3842100B2 (ja) 2001-10-15 2006-11-08 株式会社日立製作所 暗号化通信システムにおける認証処理方法及びそのシステム
US7409545B2 (en) * 2003-09-18 2008-08-05 Sun Microsystems, Inc. Ephemeral decryption utilizing binding functions
JP4406263B2 (ja) 2003-11-10 2010-01-27 独立行政法人産業技術総合研究所 管理装置、クライアント装置、およびそれらの装置を含むシステム
WO2007121587A1 (en) 2006-04-25 2007-11-01 Stephen Laurence Boren Dynamic distributed key system and method for identity management, authentication servers, data security and preventing man-in-the-middle attacks
US8837741B2 (en) 2011-09-12 2014-09-16 Qualcomm Incorporated Systems and methods for encoding exchanges with a set of shared ephemeral key data
US9565180B2 (en) 2012-09-28 2017-02-07 Symantec Corporation Exchange of digital certificates in a client-proxy-server network configuration
GB2518257A (en) * 2013-09-13 2015-03-18 Vodafone Ip Licensing Ltd Methods and systems for operating a secure mobile device
US10313133B2 (en) * 2017-06-21 2019-06-04 Visa International Service Association Secure communications providing forward secrecy
US11316666B2 (en) * 2017-07-12 2022-04-26 Amazon Technologies, Inc. Generating ephemeral key pools for sending and receiving secure communications

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101459506A (zh) * 2007-12-14 2009-06-17 华为技术有限公司 密钥协商方法、用于密钥协商的系统、客户端及服务器
US20150106624A1 (en) * 2011-12-16 2015-04-16 Akamai Technologies, Inc. Providing forward secrecy in a terminating TLS connection proxy
US20190253261A1 (en) * 2011-12-16 2019-08-15 Akamai Technologies, Inc. Providing forward secrecy in a terminating SSL/TLS connection proxy using ephemeral Diffie-Hellman key exchange
CN102510387A (zh) * 2011-12-29 2012-06-20 西安西电捷通无线网络通信股份有限公司 一种安全传输层协议tls握手方法和装置及ttp
CN105993146A (zh) * 2013-03-07 2016-10-05 云耀公司 不访问私钥而使用公钥密码的安全会话能力
US20190245659A1 (en) * 2015-01-08 2019-08-08 Marvell World Trade Ltd. Downlink signaling in a high efficiency wireless local area network (wlan)

Also Published As

Publication number Publication date
US11206135B2 (en) 2021-12-21
WO2021094863A1 (en) 2021-05-20
US20220038278A1 (en) 2022-02-03
DE112020004236T5 (de) 2022-06-15
JP2023501449A (ja) 2023-01-18
GB202207323D0 (en) 2022-07-06
GB2603096B (en) 2022-11-02
GB2603096A (en) 2022-07-27
CN114651421B (zh) 2022-12-27
US20210144004A1 (en) 2021-05-13
DE112020004236B4 (de) 2023-10-05
US11985239B2 (en) 2024-05-14

Similar Documents

Publication Publication Date Title
CN114651421B (zh) 使用临时密钥的传输层安全中的正向安全
JP6515246B2 (ja) 情報及び階層的で決定性の暗号化鍵のセキュアな交換のための共通秘密の決定
EP3642997B1 (en) Secure communications providing forward secrecy
CN107810617B (zh) 机密认证和供应
RU2718689C2 (ru) Управление конфиденциальной связью
JP4600851B2 (ja) コンピュータシステム間でメッセージを通信するための安全なコンテキストの確立
US10033720B2 (en) Method and system for creating a certificate to authenticate a user identity
US20020038420A1 (en) Method for efficient public key based certification for mobile and desktop environments
EP2173055A1 (en) A method, a system, a client and a server for key negotiating
JP2022519681A (ja) セキュリティシステム及び関連する方法
CN109302369B (zh) 一种基于密钥验证的数据传输方法及装置
CN110622482B (zh) Tls检查中的无高速缓存会话票证支持
CN109861813B (zh) 基于非对称密钥池的抗量子计算https通信方法和系统
US20240187221A1 (en) Agile cryptographic deployment service
JP2010028689A (ja) 公開パラメータ提供サーバ、公開パラメータ提供方法、公開パラメータ提供プログラム、暗号化処理実行装置、暗号化処理実行方法、暗号化処理実行プログラム、署名処理実行装置、署名処理実行方法及び署名処理実行プログラム
KR101793528B1 (ko) 무인증서 공개키 암호 시스템
US11917056B1 (en) System and method of securing a server using elliptic curve cryptography
RU2771928C2 (ru) Безопасный обмен данными, обеспечивающий прямую секретность
CHOUHAN et al. Privacy Preservation and Data Security on Internet Using Mutual SSL
CN117527421A (zh) 一种实现http协议安全传输的方法
WO2018011775A1 (en) Method for providing an enhanced level of authentication related to a secure software client application provided by an application distribution entity in order to be transmitted to a client computing device; system, application distribution entity, software client application, and client computing device for providing an enhanced level of authentication related to a secure software client application, program and computer program product

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