idnits 2.17.1 draft-hoffman-tls-additional-random-ext-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** You're using the IETF Trust Provisions' Section 6.b License Notice from 12 Sep 2009 rather than the newer Notice from 28 Dec 2009. (See https://trustee.ietf.org/license-info/) Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- == The page length should not exceed 58 lines per page, but there was 1 longer page, the longest (page 1) being 200 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year == The document seems to contain a disclaimer for pre-RFC5378 work, but was first submitted on or after 10 November 2008. The disclaimer is usually necessary only for documents that revise or obsolete older RFCs, and that take significant amounts of text from those RFCs. If you can contact all authors of the source material and they are willing to grant the BCP78 rights to the IETF Trust, you can and should remove the disclaimer. Otherwise, the disclaimer is needed and you can ignore this comment. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (February 11, 2010) is 5187 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Downref: Normative reference to an Experimental draft: draft-hoffman-tls-master-secret-input (ref. 'MASTERSECRETINPUT') ** Obsolete normative reference: RFC 5246 (Obsoleted by RFC 8446) Summary: 3 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group P. Hoffman 3 Internet-Draft VPN Consortium 4 Intended status: Standards Track February 11, 2010 5 Expires: August 15, 2010 7 Additional Random Extension to TLS 8 draft-hoffman-tls-additional-random-ext-01 10 Abstract 12 This document specifies a TLS/DTLS extension that uses the additional 13 master secret inputs to achieve useful security properties. 15 Status of this Memo 17 This Internet-Draft is submitted to IETF in full conformance with the 18 provisions of BCP 78 and BCP 79. 20 Internet-Drafts are working documents of the Internet Engineering 21 Task Force (IETF), its areas, and its working groups. Note that 22 other groups may also distribute working documents as Internet- 23 Drafts. 25 Internet-Drafts are draft documents valid for a maximum of six months 26 and may be updated, replaced, or obsoleted by other documents at any 27 time. It is inappropriate to use Internet-Drafts as reference 28 material or to cite them other than as "work in progress." 30 The list of current Internet-Drafts can be accessed at 31 http://www.ietf.org/ietf/1id-abstracts.txt. 33 The list of Internet-Draft Shadow Directories can be accessed at 34 http://www.ietf.org/shadow.html. 36 This Internet-Draft will expire on August 15, 2010. 38 Copyright Notice 40 Copyright (c) 2010 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents 45 (http://trustee.ietf.org/license-info) in effect on the date of 46 publication of this document. Please review these documents 47 carefully, as they describe your rights and restrictions with respect 48 to this document. Code Components extracted from this document must 49 include Simplified BSD License text as described in Section 4.e of 50 the Trust Legal Provisions and are provided without warranty as 51 described in the BSD License. 53 This document may contain material from IETF Documents or IETF 54 Contributions published or made publicly available before November 55 10, 2008. The person(s) controlling the copyright in some of this 56 material may not have granted the IETF Trust the right to allow 57 modifications of such material outside the IETF Standards Process. 58 Without obtaining an adequate license from the person(s) controlling 59 the copyright in such materials, this document may not be modified 60 outside the IETF Standards Process, and derivative works of it may 61 not be created outside the IETF Standards Process, except to format 62 it for publication as an RFC or to translate it into languages other 63 than English. 65 1. Introduction 67 This document defines a TLS 1.2 [RFC5246] and DTLS 1.2 [4347bis] 68 extension to provide additional random values for the derivation of 69 the master_secret. This extension is a "extensions with master 70 secret input" as defined in [MASTERSECRETINPUT]. 72 1.1. Conventions Used In This Document 74 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 75 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 76 document are to be interpreted as described in [RFC2119]. 78 2. The additional_random Extension 80 TLS and DTLS use a 32-byte "Random" value consisting of a 32-bit time 81 value and 28 randomly generated bytes. The client and server each 82 contribute a Random value which is then mixed with secret keying 83 material to produce the final per-association keying material. In 84 some application environments, it is desirable to have the client 85 and/or the server be able to input more random material in the master 86 key calculation than is allowed by the fixed-length Random value. 87 For example, one peer might want to add session-specific public 88 entropy of a sufficient length for the chosen hash function to 89 influence all bits of the outcome in case the other peer has a 90 deficient entropy source. 92 The additional_random extension to TLS and DTLS adds a variable 93 amount of client-specified and/or server-specified opaque randomness 94 to the master key calculation. 96 The extension data field of the additional_random extention contains 97 a Additional_Random_Data structure: 99 struct { 100 opaque additional_random_value<0..2^16> 101 } Additional_Random_Data; 103 The additional_random_value is a single opaque random octet string. 104 The client and server MUST generate the additional_random_value data 105 using a secure random number generator; [RFC4086] gives guidance on 106 the generation of random values. The recipient of an 107 additional_random extension MUST NOT try to parse the 108 additional_random_value. 110 Negotiating the additional_random extension has the same semantics as 111 negotiating any other TLS/DTLS extension. In addition, the size of 112 the additional_random_value provided by the client does not indicate 113 anything about the expected size of the additional_random_value from 114 the server. Specifically, the client is not requesting a particular 115 size of response from the server. 117 The extension type for the additional_random extension is {TBD}. 119 The additional_random extension is a extension with master secret 120 input as defined in [MASTERSECRETINPUT]. The body of the extension, 121 Additional_Random_Data, is used as the additional_ms_input value for 122 calculating the master secret. 124 3. Security Considerations 126 Adding greater entropy to the master secret calculation does not have 127 any negative security impacts on the master secret. 129 4. IANA Considerations 131 This document defines an extension to TLS, in accordance with RFC 132 4366. The following is to be added to the TLS Extensions registry 133 (http://www.iana.org/assignments/tls-extensiontype-values/ tls- 134 extensiontype-values.xhtml): 136 enum { additional_random(TBD) } 137 ExtensionType; 139 5. Acknowledgements 141 Much of the text in this document is derived from text written by 142 Eric Rescorla, Margaret Salter, and Jerry Solinas. 144 6. Normative References 146 [4347bis] Rescorla, E. and N. Modadugu, "Datagram Transport Layer 147 Security version 1.2", draft-ietf-tls-rfc4347-bis (work in 148 progress), October 2009. 150 [MASTERSECRETINPUT] 151 Hoffman, P., "Additional Master Secret Inputs for TLS", 152 draft-hoffman-tls-master-secret-input (work in progress), 153 January 2010. 155 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 156 Requirement Levels", BCP 14, RFC 2119, March 1997. 158 [RFC4086] Eastlake, D., Schiller, J., and S. Crocker, "Randomness 159 Requirements for Security", BCP 106, RFC 4086, June 2005. 161 [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security 162 (TLS) Protocol Version 1.2", RFC 5246, August 2008. 164 Appendix A. Differences between -00 and -01 166 [[ This section to be removed before final publication. ]] 168 Clarified that this extension applies only to TLS 1.2 and DTLS 1.2. 170 Added a clearer explanation of when the extension might be used: "For 171 example, one peer might want to add session-specific public entropy 172 of a sufficient length for the chosen hash function to influence all 173 bits of the outcome in case the other peer has a deficient entropy 174 source." 176 Changed what gets put into the master secret from "the entire 177 extension" to "the body of the extension". 179 Added "The client and server MUST generate the 180 additional_random_value data using a secure random number generator; 181 [RFC4086] gives guidance on the generation of random values." 183 Author's Address 185 Paul Hoffman 186 VPN Consortium 188 Email: paul.hoffman@vpnc.org