TLS Elliptic Curve Cipher Suites with SHA-256/384 and AES Galois Counter Mode (GCM)
Extracted elements (11)
This document was motivated by analytic weaknesses found in SHA-1 (Wang et al., CRYPTO 2005), prompting the IETF to move away from SHA-1 toward stronger hash algorithms such as SHA-256 and SHA-384 for TLS ECC cipher suites.
The eight HMAC-based cipher suites are identical to the corresponding RFC 4492 cipher suites (with names ending in '_SHA') except for the MAC and PRF algorithms; they use SHA-256 or SHA-384 instead of SHA-1.
The GCM cipher suites use AEAD_AES_128_GCM and AEAD_AES_256_GCM as defined in RFC 5116, and GCM operation follows RFC 5288; these suites require TLS 1.2 or later.
For cipher suites ending with _SHA256, the PRF SHALL be the TLS PRF with SHA-256 as the hash function, and the MAC SHALL be HMAC with SHA-256.
For cipher suites ending with _SHA384, the PRF SHALL be the TLS PRF with SHA-384 as the hash function, and the MAC SHALL be HMAC with SHA-384.
For GCM cipher suites ending with _SHA256, the PRF SHALL be the TLS PRF with SHA-256; for those ending with _SHA384, the PRF SHALL use SHA-384. GCM is used as described in RFC 5288.
Eight GCM-based cipher suites use AES in Galois Counter Mode: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 {0xC0,0x2B}, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 {0xC0,0x2C}, TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 {0xC0,0x2D}, TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 {0xC0,0x2E}, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 {0xC0,0x2F}, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 {0xC0,0x30}, TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 {0xC0,0x31}, TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 {0xC0,0x32}.
Eight HMAC-based cipher suites use AES in CBC mode: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 {0xC0,0x23}, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 {0xC0,0x24}, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 {0xC0,0x25}, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 {0xC0,0x26}, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 {0xC0,0x27}, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 {0xC0,0x28}, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 {0xC0,0x29}, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 {0xC0,0x2A}.
Sixteen new TLS cipher suites are defined using Elliptic Curve Cryptography for key exchange and digital signature. Eight use AES-CBC with HMAC-SHA-256 or HMAC-SHA-384, and eight use AES-GCM with SHA-256 or SHA-384 as the PRF hash.
IANA assigned 16 new TLS cipher suite codepoints ranging from {0xC0,0x23} through {0xC0,0x32} for the ECC cipher suites with SHA-256/384 and AES-CBC/GCM defined in this document.
These cipher suites may only be used with TLS 1.2 or greater, as referenced from RFC 5288. The security considerations in RFC 4346, RFC 4492, and RFC 5288 all apply.