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]