Network Working Group E. Rescorla Internet-Draft RTFM, Inc. Intended status: Informational M. Salter Expires: September 3, 2009 National Security Agency March 02, 2009 Extended Random Values for TLS draft-rescorla-tls-extended-random-02.txt Status of this Memo This Internet-Draft is submitted to IETF in full conformance with the provisions of BCP 78 and BCP 79. This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. 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." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt. The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on September 3, 2009. Copyright Notice Copyright (c) 2009 IETF Trust and the persons identified as the document authors. All rights reserved. Rescorla & Salter Expires September 3, 2009 [Page 1] Internet-Draft Extended TLS Random March 2009 This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents in effect on the date of publication of this document (http://trustee.ietf.org/license-info). Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Abstract This document describes an extension for using larger client and server Random values with Transport Layer Security (TLS) and Datagram TLS (DTLS). Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Conventions Used In This Document . . . . . . . . . . . . . . . 3 3. The ExtendedRandom Extension . . . . . . . . . . . . . . . . . 3 3.1. Negotiating the ExtendedRandom Extension . . . . . . . . . 4 3.2. PRF Modifications . . . . . . . . . . . . . . . . . . . . . 4 4. Security Considerations . . . . . . . . . . . . . . . . . . . . 5 4.1. Threats to TLS . . . . . . . . . . . . . . . . . . . . . . 5 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5 6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 5 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 5 7.1. Normative References . . . . . . . . . . . . . . . . . . . 5 7.2. Informative References . . . . . . . . . . . . . . . . . . 6 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 6 Rescorla & Salter Expires September 3, 2009 [Page 2] Internet-Draft Extended TLS Random March 2009 1. Introduction TLS [I-D.ietf-tls-rfc4346-bis] and DTLS [RFC4347] use a 32-byte "Random" value consisting of a 32-bit time value time and 28 randomly generated bytes: struct { uint32 gmt_unix_time; opaque random_bytes[28]; } Random; The client and server each contribute a Random value which is then mixed with secret keying material to produce the final per- association keying material. The United States Department of Defense has requested a TLS mode which allows the use of longer public randomness values for use with high security level cipher suites like those specified in Suite B [I-D.rescorla-tls-suiteb]. The rationale for this as stated by DoD is that the public randomness for each side should be at least twice as long as the security level for cryptographic parity, which makes the 224 bits of randomness provided by the current TLS random values insufficient. This document specifies an extension which allows for additional randomness to be exchanged in the Hello messages. 2. Conventions Used In This Document 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]. 3. The ExtendedRandom Extension This document defines a new TLS extension called "extended_random". The "extended_random" extension carried in a new TLS extension called "ExtendedRandom". struct { opaque extended_random_value<0..2^16-1>; } ExtendedRandom; The extended_random_value MUST be a randomly generated byte string. A cryptographically secure PRNG [RFC4086] SHOULD be used. Rescorla & Salter Expires September 3, 2009 [Page 3] Internet-Draft Extended TLS Random March 2009 3.1. Negotiating the ExtendedRandom Extension The client requests support for the extended randomness feature by sending an "extended_random" extension in its ClientHello. The "extension_data" field contains an ExtendedRandom value. When a server which does not recognize the "extended_random" extension receives one, it will ignore it as required. A server which recognizes the extension MAY choose to ignore it, in which case it SHOULD continue with the exchange as if it had not received the extension. If the server wishes to use the extended randomness feature, it MUST send its own "extended_random" extension with an extended_random_value equal in length to the client's extended_random_value. Clients SHOULD check the length of the server's extended_random_value and generate a fatal "illegal_parameter" error if it is present but does does not match the length that was transmitted in the ClientHello. Because TLS does not permit servers to request extensions which the client did not offer, the client may not offer the "extended_random" extension even if the server requires it. In this case, the server should generate a fatal "handshake_failure" alert. Because there is no way to mark extensions as critical, the server may ignore the "extended_random" extension even though the client requires it. If a client requires the extended randomness input feature but the server does not negotiate it, the client SHOULD generate a fatal "handshake_failure" alert. 3.2. PRF Modifications When the extended randomness feature is in use, the extended random values MUST be mixed into the PRF along with the client and server random values during the PMS->MS conversion. Thus, the PRF becomes: master_secret = PRF(pre_master_secret, "master secret", ClientHello.random + ClientHello.extended_random_value + ServerHello.random + ServerHello.extended_random_value)[0..47]; Because new extensions may not be introduced in resumed handshakes, mixing in the extended inputs during the MS->keying material conversion would simply involve mixing in the same material twice. Therefore, the extended random inputs are only used when the PMS is converted into the MS. Rescorla & Salter Expires September 3, 2009 [Page 4] Internet-Draft Extended TLS Random March 2009 4. Security Considerations 4.1. Threats to TLS When this extension is in use it increases the amount of data that an attacker can inject into the PRF. This potentially would allow an attacker who had partially compromised the PRF greater scope for influencing the output. Hash-based PRFs like the one in TLS are designed to be fairly indifferent to the input size (the input is already greater than the block size of most hash functions), however there is currently no proof that a larger input space would not make attacks easier. Another concern is that bad implementations might generate low entropy extented random values. TLS is designed to function correctly even when fed low-entropy random values because they are primarily used to generate distinct keying material for each connection. 5. IANA Considerations This document defines an extension to TLS, in accordance with [I-D.ietf-tls-rfc4366-bis]: enum { extended_random (??) } ExtensionType; [[ NOTE: These values need to be assigned by IANA ]] 6. Acknowledgements This work was supported by the US Department of Defense. 7. References 7.1. Normative References [I-D.ietf-tls-rfc4346-bis] Dierks, T. and E. Rescorla, "The Transport Layer Security (TLS) Protocol Version 1.2", draft-ietf-tls-rfc4346-bis-10 (work in progress), March 2008. [RFC4086] Eastlake, D., Schiller, J., and S. Crocker, "Randomness Requirements for Security", BCP 106, RFC 4086, June 2005. Rescorla & Salter Expires September 3, 2009 [Page 5] Internet-Draft Extended TLS Random March 2009 7.2. Informative References [I-D.ietf-tls-rfc4366-bis] 3rd, D., "Transport Layer Security (TLS) Extensions: Extension Definitions", draft-ietf-tls-rfc4366-bis-03 (work in progress), October 2008. [I-D.rescorla-tls-suiteb] Salter, M., Rescorla, E., and R. Housley, "Suite B Profile for Transport Layer Security (TLS)", draft-rescorla-tls-suiteb-11 (work in progress), November 2008. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC4347] Rescorla, E. and N. Modadugu, "Datagram Transport Layer Security", RFC 4347, April 2006. Authors' Addresses Eric Rescorla RTFM, Inc. 2064 Edgewood Drive Palo Alto, CA 94303 USA Email: ekr@rtfm.com Margaret Salter National Security Agency 9800 Savage Rd. Fort Meade 20755-6709 USA Email: msalter@restarea.ncsc.mil Rescorla & Salter Expires September 3, 2009 [Page 6]