draft-ietf-tls-ecdhe-psk-aead-03.txt   draft-ietf-tls-ecdhe-psk-aead-04.txt 
Network Working Group J. Mattsson Network Working Group J. Mattsson
Internet-Draft D. Migault Internet-Draft D. Migault
Intended status: Standards Track Ericsson Intended status: Standards Track Ericsson
Expires: November 4, 2017 May 3, 2017 Expires: November 19, 2017 May 18, 2017
ECDHE_PSK with AES-GCM and AES-CCM Cipher Suites for Transport Layer ECDHE_PSK with AES-GCM and AES-CCM Cipher Suites for Transport Layer
Security (TLS) Security (TLS)
draft-ietf-tls-ecdhe-psk-aead-03 draft-ietf-tls-ecdhe-psk-aead-04
Abstract Abstract
This document defines several new cipher suites for the Transport This document defines several new cipher suites for the Transport
Layer Security (TLS) protocol. The cipher suites are all based on Layer Security (TLS) protocol. The cipher suites are all based on
the Ephemeral Elliptic Curve Diffie-Hellman with Pre-Shared Key the Ephemeral Elliptic Curve Diffie-Hellman with Pre-Shared Key
(ECDHE_PSK) key exchange together with the Authenticated Encryption (ECDHE_PSK) key exchange together with the Authenticated Encryption
with Associated Data (AEAD) algorithms AES-GCM and AES-CCM. PSK with Associated Data (AEAD) algorithms AES-GCM and AES-CCM. PSK
provides light and efficient authentication, ECDHE provides perfect provides light and efficient authentication, ECDHE provides forward
forward secrecy, and AES-GCM and AES-CCM provides encryption and secrecy, and AES-GCM and AES-CCM provides encryption and integrity
integrity protection. protection.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on November 4, 2017. This Internet-Draft will expire on November 19, 2017.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 16 skipping to change at page 2, line 16
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Requirements notation . . . . . . . . . . . . . . . . . . . . 2 1. Requirements notation . . . . . . . . . . . . . . . . . . . . 2
2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 2. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
3. ECDHE_PSK with AES-GCM and AES-CCM Cipher Suites . . . . . . 3 3. ECDHE_PSK with AES-GCM and AES-CCM Cipher Suites . . . . . . 3
4. Applicable TLS Versions . . . . . . . . . . . . . . . . . . . 3 4. Applicable TLS Versions . . . . . . . . . . . . . . . . . . . 3
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4
6. Security Considerations . . . . . . . . . . . . . . . . . . . 4 6. Security Considerations . . . . . . . . . . . . . . . . . . . 5
7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5 7. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 5
8. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 6
8.1. Normative References . . . . . . . . . . . . . . . . . . 5 8.1. Normative References . . . . . . . . . . . . . . . . . . 6
8.2. Informative References . . . . . . . . . . . . . . . . . 6 8.2. Informative References . . . . . . . . . . . . . . . . . 7
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 6 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 7
1. Requirements notation 1. Requirements notation
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
2. Introduction 2. Introduction
This document defines new cipher suites that provide Pre-Shared Key This document defines new cipher suites that provide Pre-Shared Key
skipping to change at page 3, line 8 skipping to change at page 3, line 8
shared keys and makes sure that they provide a high level of entropy. shared keys and makes sure that they provide a high level of entropy.
Perfect Forward Secrecy (PFS) is a strongly recommended feature in Perfect Forward Secrecy (PFS) is a strongly recommended feature in
security protocol design and can be accomplished by using an security protocol design and can be accomplished by using an
ephemeral Diffie-Hellman key exchange method. Ephemeral Elliptic ephemeral Diffie-Hellman key exchange method. Ephemeral Elliptic
Curve Diffie-Hellman (ECDHE) provides PFS with excellent performance Curve Diffie-Hellman (ECDHE) provides PFS with excellent performance
and small key sizes. ECDHE is mandatory to implement in both HTTP/2 and small key sizes. ECDHE is mandatory to implement in both HTTP/2
[RFC7540] and CoAP [RFC7252]. [RFC7540] and CoAP [RFC7252].
AEAD algorithms that combine encryption and integrity protection are AEAD algorithms that combine encryption and integrity protection are
strongly recommended [RFC7525] and non-AEAD algorithms are forbidden strongly recommended for (D)TLS [RFC7525] and non-AEAD algorithms are
to use in TLS 1.3 [I-D.ietf-tls-tls13]. The AEAD algorithms forbidden to use in TLS 1.3 [I-D.ietf-tls-tls13]. The AEAD
considered in this document are AES-GCM and AES-CCM. The use of AES- algorithms considered in this document are AES-GCM and AES-CCM. The
GCM in TLS is defined in [RFC5288] and the use of AES-CCM is defined use of AES-GCM in TLS is defined in [RFC5288] and the use of AES-CCM
in [RFC6655]. is defined in [RFC6655].
[RFC4279] defines Pre-Shared Key (PSK) cipher suites for TLS but does [RFC4279] defines Pre-Shared Key (PSK) cipher suites for TLS but does
not consider Elliptic Curve Cryptography. [RFC4492] introduces not consider Elliptic Curve Cryptography. [RFC4492] introduces
Elliptic Curve Cryptography for TLS but does not consider PSK Elliptic Curve Cryptography for TLS but does not consider PSK
authentication. [RFC5487] describes the use of AES-GCM in authentication. [RFC5487] describes the use of AES-GCM in
combination with PSK authentication, but does not consider ECDHE. combination with PSK authentication, but does not consider ECDHE.
[RFC5489] describes the use of PSK in combination with ECDHE but does [RFC5489] describes the use of PSK in combination with ECDHE but does
not consider AES-GCM or AES-CCM. not consider AES-GCM or AES-CCM.
3. ECDHE_PSK with AES-GCM and AES-CCM Cipher Suites 3. ECDHE_PSK with AES-GCM and AES-CCM Cipher Suites
The cipher suites defined in this document are based on the AES-GCM The cipher suites defined in this document are based on the AES-GCM
and AES-CCM Authenticated Encryption with Associated Data (AEAD) and AES-CCM Authenticated Encryption with Associated Data (AEAD)
algorithms AEAD_AES_128_GCM, AEAD_AES_256_GCM and AEAD_AES_128_CCM algorithms AEAD_AES_128_GCM, AEAD_AES_256_GCM and AEAD_AES_128_CCM
defined in [RFC5116], and AEAD_AES_128_CCM_8 defined in [RFC6655]. defined in [RFC5116], and AEAD_AES_128_CCM_8 defined in [RFC6655].
Messages and pre-master secret construction in this document are Messages and pre-master secret construction in this document are
based on [RFC4279]. The elliptic curve parameters used in in the defined in [RFC5489]. The ServerKeyExchange and ClientKeyExchange
messages are used and the pre-master secret is computed as for the
ECDHE_PSK key exchange. The elliptic curve parameters used in in the
Diffie-Hellman parameters are negotiated using extensions defined in Diffie-Hellman parameters are negotiated using extensions defined in
[I-D.ietf-tls-rfc4492bis]. [I-D.ietf-tls-rfc4492bis].
For TLS1.2, the following cipher suites are defined: For TLS 1.2, the following cipher suites are defined:
TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 = {0xTBD,0xTBD}; TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 = {0xTBD,0xTBD};
TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384 = {0xTBD,0xTBD}; TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384 = {0xTBD,0xTBD};
TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256 = {0xTBD,0xTBD}; TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256 = {0xTBD,0xTBD};
TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256 = {0xTBD,0xTBD}; TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256 = {0xTBD,0xTBD};
The assigned code points can only be used for TLS 1.2. The assigned code points can only be used for TLS 1.2.
4. Applicable TLS Versions 4. Applicable TLS Versions
The cipher suites defined in this document MUST NOT be negotiated for
any version of (D)TLS other than TLS 1.2.
TLS version 1.3 and later negotiate these features in a different
manner. Unlike TLS 1.2, TLS 1.3 separates authentication and cipher
suite negotiation [I-D.ietf-tls-tls13] Section 1.2. TLS 1.3 supports
PSK with ECDHE key exchange and the cipher suites
TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384,
TLS_AES_128_CCM_8_SHA256 and TLS_AES_128_CCM_SHA256 are part of the
specification. As a result, TLS 1.3 and higher versions, negotiate
and support these cipher suites in a different way.
The cipher suites defined in this document make use of the The cipher suites defined in this document make use of the
authenticated encryption with additional data (AEAD) defined in TLS authenticated encryption with additional data (AEAD) defined in TLS
1.2 [RFC5246] and DTLS 1.2 [RFC6347]. Earlier versions of TLS do not 1.2 [RFC5246] and DTLS 1.2 [RFC6347]. Earlier versions of TLS do not
have support for AEAD and consequently, these cipher suites MUST NOT have support for AEAD and consequently, the cipher suites defined in
be negotiated in TLS versions prior to 1.2. Clients MUST NOT offer this document MUST NOT be negotiated in TLS versions prior to 1.2.
these cipher suites if they do not offer TLS 1.2 or later. Servers, In addition, it is worth noting that TLS 1.0 [RFC2246] and TL1.2
which select an earlier version of TLS MUST NOT select one of these [RFC4346] splits the pre-master in two parts. The PRF results from
cipher suites. A client MUST treat the selection of these cipher mixing the two pseudorandom streams with distinct hash functions (MD5
suites in combination with a version of TLS that does not support and SHA-1) by exclusive-ORing them together. In the case of
AEAD (i.e., TLS 1.1 or earlier) as an error and generate a fatal ECDHE_PSK authentication, the PSK and pre-master are treated by
'illegal_parameter' TLS alert. distinct hash function with distinct properties. This may introduce
vulnerabilities over the expected security provided by the
constructed pre-master. As such TLS 1.0 and TLS 1.1 should not be
used with ECDHE_PSK.
TLS 1.3 and above version, negotiate and support these cipher suites A client that offers the cipher suites from this document in
in a different way. ClientHello.cipher_suites in combination with (3,1) "TLS 1.0" or
(3,2) "TLS 1.1" in ClientHello.client_version MUST support TLS 1.2
and MUST accept the server to negotiate TLS 1.2 for the current
session. If the client does not support TLS 1.2 or is not willing to
negotiate TLS 1.2, then this client MUST NOT offer any of these
cipher suites with a lower protocol version than (3,3) "TLS 1.2" in
ClientHello.client_version.
A server receiving a ClientHello and a client_version indicating
(3,1) "TLS 1.0" or (3,2) "TLS 1.1" and any of the cipher suites from
this document in ClientHello.cipher_suites can safely assume that the
client supports TLS 1.2 and is willing to use it. The server MUST
NOT negotiate these cipher suites with TLS protocol versions earlier
than TLS 1.2. Not requiring clients to indicate their support for
TLS 1.2 cipher suites exclusively through ClientHello.client_hello
improves the interoperability in the installed base and use of TLS
1.2 AEAD cipher suites without upsetting the installed base of
version-intolerant TLS servers, results in more TLS handshakes
succeeding and obviates fallback mechanisms.
5. IANA Considerations 5. IANA Considerations
This document defines the following new cipher suites, whose values This document defines the following new cipher suites, whose values
have been assigned in the TLS Cipher Suite Registry defined by have been assigned in the TLS Cipher Suite Registry defined by
[RFC5246]. [RFC5246].
TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 = {0xTBD; 0xTBD} {0xD0,0x01}; TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 = {0xTBD; 0xTBD} {0xD0,0x01};
TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384 = {0xTBD; 0xTBD} {0xD0,0x02}; TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384 = {0xTBD; 0xTBD} {0xD0,0x02};
TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256 = {0xTBD; 0xTBD} {0xD0,0x03}; TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256 = {0xTBD; 0xTBD} {0xD0,0x03};
TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256 = {0xTBD; 0xTBD} {0xD0,0x05}; TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256 = {0xTBD; 0xTBD} {0xD0,0x05};
The cipher suite numbers listed in the last column are numbers used NOTE TO THE RFC EDITOR: PLEASE REMOVE THIS PARAGRAPH. The cipher
for cipher suite interoperability testing and it's suggested that suite numbers listed in the last column are numbers used for cipher
IANA use these values for assignment. suite interoperability testing and it's suggested that IANA use these
values for assignment.
6. Security Considerations 6. Security Considerations
The security considerations in TLS 1.2 [RFC5246], DTLS 1.2 [RFC6347], The security considerations in TLS 1.2 [RFC5246], DTLS 1.2 [RFC6347],
TLS 1.3 [I-D.ietf-tls-tls13], ECDHE_PSK [RFC5489], AES-GCM [RFC5288], TLS 1.3 [I-D.ietf-tls-tls13], ECDHE_PSK [RFC5489], AES-GCM [RFC5288],
and AES-CCM [RFC6655] apply to this document as well. and AES-CCM [RFC6655] apply to this document as well.
All the cipher suites defined in this document provide All the cipher suites defined in this document provide
confidentiality, mutual authentication, and perfect forward secrecy. confidentiality, mutual authentication, and forward secrecy. The
The AES-128 cipher suites provide 128-bit security and the AES-256 AES-128 cipher suites provide 128-bit security and the AES-256 cipher
cipher suites provide at least 192-bit security. However, suites provide at least 192-bit security. However, AES_128_CCM_8
AES_128_CCM_8 only provides 64-bit security against message forgery. only provides 64-bit security against message forgery.
Use of Pre-Shared Keys of limited entropy may allow an active Use of Pre-Shared Keys of limited entropy may allow an active
attacker attempts to connect to the server and try different keys. attacker attempts to connect to the server and try different keys.
For example, limited entropy may be provided by using short PSK in For example, limited entropy may be provided by using a short PSK in
which case an attacker may perform a brute-force attack. Another which case an attacker may perform a brute-force attack. Another
example includes the use of a PSK chosen by a human and thus may be example includes the use of a PSK chosen by a human which thus may be
exposed to dictionary attacks. exposed to dictionary attacks.
The Pre-Shared Keys used for authentication MUST have a security The Pre-Shared Keys used for authentication MUST have a security
level equal or higher than the cipher suite used, i.e. at least level equal or higher than the cipher suite used, i.e., at least
128-bit for the AES-128 cipher suites and at least 192-bit for the 128-bit for the AES-128 cipher suites and at least 192-bit for the
AES-256 cipher suites. AES-256 cipher suites.
GCM or CCM encryption - even of different clear text - re-using a
nonce with a same key undermines the security of GCM and CCM. As a
result, GCM and CCM MUST only be used with a system guaranteeing
nonce uniqueness [RFC5116].
7. Acknowledgements 7. Acknowledgements
The authors would like to thank Ilari Liusvaara, Eric Rescorla, Dan The authors would like to thank Ilari Liusvaara, Eric Rescorla, Dan
Harkins, Russ Housley, Dan Harkins, Martin Thomson, Nikos Harkins, Russ Housley, Dan Harkins, Martin Thomson, Nikos
Mavrogiannopoulos, Peter Dettman, Xiaoyin Liu, Joseph Salowey, Sean Mavrogiannopoulos, Peter Dettman, Xiaoyin Liu, Joseph Salowey, Sean
Turner and Kathleen Moriarty for their valuable comments and Turner Dave Garrett, Martin Rex and Kathleen Moriarty for their
feedback. valuable comments and feedback.
8. References 8. References
8.1. Normative References 8.1. Normative References
[I-D.ietf-tls-rfc4492bis] [I-D.ietf-tls-rfc4492bis]
Nir, Y., Josefsson, S., and M. Pegourie-Gonnard, "Elliptic Nir, Y., Josefsson, S., and M. Pegourie-Gonnard, "Elliptic
Curve Cryptography (ECC) Cipher Suites for Transport Layer Curve Cryptography (ECC) Cipher Suites for Transport Layer
Security (TLS) Versions 1.2 and Earlier", draft-ietf-tls- Security (TLS) Versions 1.2 and Earlier", draft-ietf-tls-
rfc4492bis-16 (work in progress), March 2017. rfc4492bis-17 (work in progress), May 2017.
[I-D.ietf-tls-tls13] [I-D.ietf-tls-tls13]
Rescorla, E., "The Transport Layer Security (TLS) Protocol Rescorla, E., "The Transport Layer Security (TLS) Protocol
Version 1.3", draft-ietf-tls-tls13-20 (work in progress), Version 1.3", draft-ietf-tls-tls13-20 (work in progress),
April 2017. April 2017.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>. <http://www.rfc-editor.org/info/rfc2119>.
[RFC2246] Dierks, T. and C. Allen, "The TLS Protocol Version 1.0",
RFC 2246, DOI 10.17487/RFC2246, January 1999,
<http://www.rfc-editor.org/info/rfc2246>.
[RFC4279] Eronen, P., Ed. and H. Tschofenig, Ed., "Pre-Shared Key [RFC4279] Eronen, P., Ed. and H. Tschofenig, Ed., "Pre-Shared Key
Ciphersuites for Transport Layer Security (TLS)", Ciphersuites for Transport Layer Security (TLS)",
RFC 4279, DOI 10.17487/RFC4279, December 2005, RFC 4279, DOI 10.17487/RFC4279, December 2005,
<http://www.rfc-editor.org/info/rfc4279>. <http://www.rfc-editor.org/info/rfc4279>.
[RFC4346] Dierks, T. and E. Rescorla, "The Transport Layer Security
(TLS) Protocol Version 1.1", RFC 4346,
DOI 10.17487/RFC4346, April 2006,
<http://www.rfc-editor.org/info/rfc4346>.
[RFC5116] McGrew, D., "An Interface and Algorithms for Authenticated [RFC5116] McGrew, D., "An Interface and Algorithms for Authenticated
Encryption", RFC 5116, DOI 10.17487/RFC5116, January 2008, Encryption", RFC 5116, DOI 10.17487/RFC5116, January 2008,
<http://www.rfc-editor.org/info/rfc5116>. <http://www.rfc-editor.org/info/rfc5116>.
[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
(TLS) Protocol Version 1.2", RFC 5246, (TLS) Protocol Version 1.2", RFC 5246,
DOI 10.17487/RFC5246, August 2008, DOI 10.17487/RFC5246, August 2008,
<http://www.rfc-editor.org/info/rfc5246>. <http://www.rfc-editor.org/info/rfc5246>.
[RFC5288] Salowey, J., Choudhury, A., and D. McGrew, "AES Galois [RFC5288] Salowey, J., Choudhury, A., and D. McGrew, "AES Galois
 End of changes. 22 change blocks. 
41 lines changed or deleted 91 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/