Network Working Group | M. Green |
Internet-Draft | Cryptography Engineering LLC |
Intended status: Standards Track | R. Droms |
Expires: January 4, 2018 | Interisle Consulting |
R. Housley | |
Vigil Security, LLC | |
P. Turner | |
Venafi | |
S. Fenter | |
July 3, 2017 |
Data Center use of Static Diffie-Hellman in TLS 1.3
draft-green-tls-static-dh-in-tls13-01
Unlike earlier versions of TLS, current drafts of TLS 1.3 have instead adopted ephemeral-mode Diffie-Hellman and elliptic-curve Diffie-Hellman as the primary cryptographic key exchange mechanism used in TLS. This document describes an optional configuration for TLS servers that allows for the use of a static Diffie-Hellman private key for all TLS connections made to the server. Passive monitoring of TLS connections can be enabled by installing a corresponding copy of this key in each monitoring device.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 4, 2018.
Copyright (c) 2017 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
Unlike earlier versions of TLS, current drafts of TLS 1.3 [I-D.ietf-tls-tls13] do not provide support for the RSA handshake -- and have instead adopted ephemeral-mode Diffie-Hellman (DHE) and elliptic-curve Diffie-Hellman (ECDHE) as the primary cryptographic key exchange mechanism used in TLS.
While ephemeral (EC) Diffie-Hellman is in nearly all ways an improvement over the TLS RSA handshake, the use of these mechanisms complicates certain enterprise settings. Specifically, the use of ephemeral ciphersuites is not compatible with current enterprise network monitoring tools such as Intrusion Detection Systems (IDS) and application monitoring systems, which leverage the current TLS RSA handshake passively monitor intranet TLS connections made between endpoints under the enterprise's control. This traffic includes TLS connections made from enterprise network security devices (firewalls) and load balancers at the edge of the enterprise network to internal enterprise TLS servers. It does not include TLS connections traveling over the external Internet.
Such monitoring of the enterprise network is ubiquitous and indispensable in some industries. This monitoring is required for effective and safe operation of enterprise networks. Loss of this capability may slow adoption of TLS 1.3.
This document describes an optional configuration for TLS servers that is compatible with the TLS 1.3 ephemeral ciphersuites without precluding enterprise network monitoring. This configuration allows for the use of a static (EC) Diffie-Hellman private key for all TLS connections made to the server. Passive monitoring of TLS connections can be enabled by installing a corresponding copy of this key in each authorized monitoring device.
An advantage of this proposal is that it can be implemented using software modifications to the TLS server and enterprise network monitoring tools, without the need to make changes to TLS client implementations.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
This document introduces the term “static (elliptic curve) Diffie-Hellman ephemeral”, generally written as “static (EC)DHE”, to refer to long-lived finite field or elliptic curve Diffie-Hellman keys or key pairs that will be used with the TLS 1.3 ephemeral ciphersuites to negotiate traffic keys for multiple TLS sessions.
For clarity, this document also introduces the term “ephemeral (elliptic curve) Diffie-Hellman ephemeral”, generally written as “ephemeral (EC)DHE”, to denote finite field or elliptic curve Diffie-Hellman keys or key pairs that will be used with the TLS 1.3 ephemeral ciphersuites to negotiate traffic keys for a single TLS sessions.
The Cryptographic Message Syntax (CMS) [RFC5652] and asymmetric key packages [RFC5958] are generated using ASN.1 [X680], which uses the Basic Encoding Rules (BER) and the Distinguished Encoding Rules (DER) [X690].
This document describes the use of a static (elliptic-curve) Diffie-Hellman (static (EC)DHE) private key by servers for use in TLS 1.3 sessions internal to an enterprise network where network monitoring is required. In Figure 1, the Web Servers use a static (EC)DHE key pair with the standard TLS 1.3 handshake for connections from the Load Balancer, and the Back-End Services use static (EC)DHE for connections from the Web Servers. The Load Balancer uses ephemeral (EC)DHE key pairs with the standard TLS 1.3 handshake for connections from external Browsers over the Internet, to provide Forward Secrecy on those connections that are exposed to third-party monitoring. Internally, the static (EC)DHE keys are provided to authorized TLS Decrypter devices, such as intrusion detection systems, application monitoring systems or network packet capture devices.
******************************** * * * +--------+ * * TLS | Web | * * Termination + Server + * * | /| |\ * +---------+ +----------+ * +----|-----+/ +--------+ \+----------+ * | | | | * | Load + + Back-end | * | Browser +--+ Internet |-*-+ Balancer | | Server | * | | | | * | | + + | * +---------+ +----------+ * +----------+\ +--------+ /+----------+ * * | .\| Web |/. * * . + Server + . * * . | | . * * . +--------+ . * * . . * * . -------- . * * . / TLS \ . * * | Decrypter| * * \ / * * -------- * * * *** Enterprise Network Boundary ** | <------ Ephemeral (EC)DHE ------>|<-------- Static (EC)DHE --------> |
Figure 1: Enterprise TLS Decryption Architecture
Enterprise networks based on this architecture have operational requirements for traffic monitoring and ex post facto analysis for purposes of:
Specific requirements to meet the listed operational requirements include:
In TLS 1.3, servers exchange keys using two primary modes, DHE and ECDHE. In a simplified view of the full handshake, the following steps occur:
The proposal embodied in this draft modifies the standard TLS handshake summarized above in the following ways:
The Asymmetric Key Package [RFC5958] MUST be used to transfer the centrally managed Diffie-Hellman key pair. The key package contains at least one Diffie-Hellman key pair. Each Diffie-Hellman key pair is associated with a set of attributes, including the key validity period for that Diffie-Hellman key pair.
OneAsymmetricKey is defined in Section 2 of [RFC5958]. The fields are used as follows:
+-------------------------------------------------------------------+ | | | Finite Field Diffie-Hellman | | object identifier: { 1 2 840 10046 2 1 } | | parameter encoding: DomainParameters, Section 2.3.3 of [RFC3279] | | private key encoding: INTEGER | | public key encoding: INTEGER | | | | Elliptic Curve Diffie-Hellman | | object identifier: { 1 3 132 1 12 } | | parameter encoding: ECParameters, Section 2.1.2 of [RFC5480] | | (MUST use the namedCurve CHOICE) | | private key encoding: ECPrivateKey, Section 3 of [RFC5915] | | public key encoding: ECPoint, Section 2.2 of [RFC5480] | | | +-------------------------------------------------------------------+
Figure 2: Popular Diffie-Hellman Algorithm Identifiers
The CMS protecting content types [RFC5652][RFC5083] can be used to provide authentication and confidentiality protection for the Asymmetric Key Package:
The TLS Static DH Key (TSK) Protocol is used in cases where the Diffie-Hellman keys are centrally managed. The two main roles in the TSK protocol are "key manager" and "key consumer". Key consumers can be TLS servers or TLS decrypters. The key manager generates, distributes, and tracks static (EC)DHE keys used by key consumers. TSK messaging is based on HTTPS [RFC2818]. Keys are transferred as Asymmetric Key Packages [RFC5958], using the profile in Section 6 of this document.
-------------- ----------------- | TLS server |-------| key manager | -------------- ----------------- | | | | | | | ----------------- |------------>| TLS decrypter | | ----------------- | | -------------- | TLS client | --------------
Figure 3: TSK protocol components
The key manager can push keys to key consumers:
TLS server key manager TLS decrypter | | | | |-- | | | \ Generate | | | / key pair | | |<- | | | | | |----------------------->| | | Push key pair | |<------------------------| | | Push key pair | |
Figure 4: TSK protocol push model
Alternatively, key consumers can request (or pull) keys from the key manager.
TLS server key manager TLS decrypter | | | | |-- | | | \ Generate | | | / key pair | | |<- | | | | | |<-----------------------| | | Request key pair | |------------------------>| | | Request key pair | |
Figure 5: TSK protocol pull model
An HTTPS-based TSK push is composed of the appropriate HTTP headers, followed by the binary value of the BER (Basic Encoding Rules) encoding of the Asymmetric Key Package.
The Content-Type header MUST be application/cms [RFC7193] if the Asymmetric Key Package is encrypted with CMS [RFC6032]. The Content-Type header MUST be application/pkcs8 if the Asymmetric Key Package is transferred in plain text (within the encrypted HTTPS stream).
A key consumer may request a key by providing a fingerprint [RFC6234] of the public key. The key manager is responsible for determining if the key consumer is authorized to receive a copy of the key being requested.
Example with plain text Asymmetric Key Package:
Example with CMS encrypted and/or signed Asymmetric Key Package:
The response to the TSK push is composed of the appropriate HTTP headers, followed by the binary value of the BER (Basic Encoding Rules) encoding of the Asymmetric Key Package.
The Content-Type header MUST be application/cms [RFC7193] if the Asymmetric Key Package is encrypted with CMS [RFC6032]. The Content-Type header MUST be application/pkcs8 if the Asymmetric Key Package is transferred in plain text (within the encrypted HTTPS stream).
We now consider the security implications of the change described above:
Thus the modification described in Section 10 represents a deliberate weakening of some security properties. Implementers who choose to include this capability should carefully consider the risks to their infrastructure of using a handshake without Forward Secrecy. Static (EC)DHE key pairs should be rotated regularly.
This document contains no actions for IANA.
This modification to TLS was initially suggested by Hugo Krawczyk.