Network Working Group                                        E. Rescorla
Internet-Draft                                                RTFM, Inc.
Intended status:  Informational                                M. Salter
Expires:  May 5, 2009                           National Security Agency
                                                        November 1, 2008


                     Extended Random Values for TLS
               draft-rescorla-tls-extended-random-01.txt

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   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 May 5, 2009.

Abstract

   This document describes an extension for using larger client and
   server Random values with Transport Layer Security (TLS) and Datagram
   TLS (DTLS).











Rescorla & Salter          Expires May 5, 2009                  [Page 1]


Internet-Draft             Extended TLS Random             November 2008


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
     4.2.  Scope of Randomness . . . . . . . . . . . . . . . . . . . . 5
   5.  IANA Considerations . . . . . . . . . . . . . . . . . . . . . . 5
   6.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . 6
   7.  References  . . . . . . . . . . . . . . . . . . . . . . . . . . 6
     7.1.  Normative References  . . . . . . . . . . . . . . . . . . . 6
     7.2.  Informative References  . . . . . . . . . . . . . . . . . . 6
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . . . 6
   Intellectual Property and Copyright Statements  . . . . . . . . . . 8


































Rescorla & Salter          Expires May 5, 2009                  [Page 2]


Internet-Draft             Extended TLS Random             November 2008


1.  Introduction

   TLS [RFC5246] 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 May 5, 2009                  [Page 3]


Internet-Draft             Extended TLS Random             November 2008


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 May 5, 2009                  [Page 4]


Internet-Draft             Extended TLS Random             November 2008


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.

4.2.  Scope of Randomness

   TLS specifies that when a session is resumed the extensions from the
   original connection are used:

        If, on the other hand, the older session is resumed, then the
        server MUST ignore the extensions and send a server hello
        containing none of the extension types.  In this case, the
        functionality of these extensions negotiated during the original
        session initiation is applied to the resumed session.

   This motivates why the the extended randomness does not get mixed
   into the PRF when generating the keying material from the master
   secret.  Because the same values would be used for every connection
   in a session, they would not provide any differentiation in the
   keying material between the connections.


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 ]]






Rescorla & Salter          Expires May 5, 2009                  [Page 5]


Internet-Draft             Extended TLS Random             November 2008


6.  Acknowledgements

   This work was supported by the US Department of Defense.


7.  References

7.1.  Normative References

   [RFC4086]  Eastlake, D., Schiller, J., and S. Crocker, "Randomness
              Requirements for Security", BCP 106, RFC 4086, June 2005.

   [RFC5246]  Dierks, T. and E. Rescorla, "The Transport Layer Security
              (TLS) Protocol Version 1.2", RFC 5246, August 2008.

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-10 (work in progress),
              October 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







Rescorla & Salter          Expires May 5, 2009                  [Page 6]


Internet-Draft             Extended TLS Random             November 2008


   Margaret Salter
   National Security Agency
   9800 Savage Rd.
   Fort Meade  20755-6709
   USA

   Email:  msalter@restarea.ncsc.mil












































Rescorla & Salter          Expires May 5, 2009                  [Page 7]


Internet-Draft             Extended TLS Random             November 2008


Full Copyright Statement

   Copyright (C) The IETF Trust (2008).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND
   THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS
   OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
   THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.











Rescorla & Salter          Expires May 5, 2009                  [Page 8]