idnits 2.17.1 draft-nir-tls-tlsflags-00.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. 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 lack the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords -- however, there's a paragraph with a matching beginning. Boilerplate error? (The document does seem to have the reference to RFC 2119 which the ID-Checklist requires). -- The document date (March 25, 2019) is 1859 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) == Outdated reference: A later version (-07) exists of draft-ietf-tls-tls13-cert-with-extern-psk-00 Summary: 0 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 TLS Y. Nir 3 Internet-Draft DellEMC 4 Intended status: Standards Track March 25, 2019 5 Expires: September 26, 2019 7 A Flags Extension for TLS 1.3 8 draft-nir-tls-tlsflags-00 10 Abstract 12 A number of extensions are proposed in the TLS working group that 13 carry no interesting information except the 1-bit indication that a 14 certain optional feature is supported. Such extensions take 4 octets 15 each. This document defines a flags extension that can provide such 16 indications with only 1 octet each. 18 Status of This Memo 20 This Internet-Draft is submitted in full conformance with the 21 provisions of BCP 78 and BCP 79. 23 Internet-Drafts are working documents of the Internet Engineering 24 Task Force (IETF). Note that other groups may also distribute 25 working documents as Internet-Drafts. The list of current Internet- 26 Drafts is at https://datatracker.ietf.org/drafts/current/. 28 Internet-Drafts are draft documents valid for a maximum of six months 29 and may be updated, replaced, or obsoleted by other documents at any 30 time. It is inappropriate to use Internet-Drafts as reference 31 material or to cite them other than as "work in progress." 33 This Internet-Draft will expire on September 26, 2019. 35 Copyright Notice 37 Copyright (c) 2019 IETF Trust and the persons identified as the 38 document authors. All rights reserved. 40 This document is subject to BCP 78 and the IETF Trust's Legal 41 Provisions Relating to IETF Documents 42 (https://trustee.ietf.org/license-info) in effect on the date of 43 publication of this document. Please review these documents 44 carefully, as they describe your rights and restrictions with respect 45 to this document. Code Components extracted from this document must 46 include Simplified BSD License text as described in Section 4.e of 47 the Trust Legal Provisions and are provided without warranty as 48 described in the Simplified BSD License. 50 Table of Contents 52 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 53 1.1. Requirements and Other Notation . . . . . . . . . . . . . 2 54 2. The tls_flags Extension . . . . . . . . . . . . . . . . . . . 3 55 3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 3 56 4. Security Considerations . . . . . . . . . . . . . . . . . . . 4 57 5. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 4 58 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 4 59 6.1. Normative References . . . . . . . . . . . . . . . . . . 4 60 6.2. Informative References . . . . . . . . . . . . . . . . . 5 61 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 5 63 1. Introduction 65 Since the publication of TLS 1.3 ([RFC8446]) there have been several 66 proposal for extensions to this protocol, where the presence of the 67 content-free extension in both the ClientHello and either the 68 ServerHello or EncryptedExtensions indicates nothing except either 69 support for the optional feature or an intent to use the optional 70 feature. Examples: 72 o An extension that allows the server to tell the client that cross- 73 SNI resumption is allowed: [I-D.sy-tls-resumption-group]. 75 o An extension that is used to negotiate support for authentication 76 using both certificates and external PSKs: 77 [I-D.ietf-tls-tls13-cert-with-extern-psk]. 79 This document proposes a single extension called tls_flags that can 80 enumerate such flag extensions and allowing both client and server to 81 indicate support for optional features in a concise way. 83 1.1. Requirements and Other Notation 85 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 86 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 87 document are to be interpreted as described in BCP 14 [RFC2119] 88 [RFC8174] when, and only when, they appear in all capitals, as shown 89 here. 91 The term "flag extension" is used to denote an extension where the 92 extension_data field is zero-length in all cases and the presence of 93 the extension denotes either support for some feature or the intent 94 to use that feature. 96 The term "flag-type feature" denotes an options TLS 1.3 feature the 97 support for which is negotiated using a flag extension, whether that 98 flag extension is its own extension or a value in the extension 99 defined in this document. 101 2. The tls_flags Extension 103 This document defines the following extension code point: 105 enum { 106 ... 107 tls_flags(TBD), 108 (65535) 109 } ExtensionType; 111 This document also defines the data for this extension as a list of 112 enums. Note that this document does not define any values to 113 FlagExtensionType. That is left to the actual protocol document such 114 as the ones in the examples from the previous section. 116 enum { 117 (255) 118 } FlagExtensionType; 120 struct { 121 FlagExtensionType flags<1..2^8-1> 122 } FlagExtensions; 124 A client that supports this extension and also supports at least one 125 of the flag-type features that use this extension SHALL send this 126 extension with the FlagExtensions data containing all those 127 extensions that it supports. 129 A server that supports this extension and also supports at least one 130 of the flag-type features that use this extension and that were 131 declared by the ClientHello extension SHALL send this extension with 132 the intersection of the flags it supports with the flags declared by 133 the client. The server may need to send two tls_flags extensions, 134 one in the ServerHello and the other in the EncryptedExtensions 135 message. It is up to the document for the specific feature to 136 determine whether support should be acknowledged in the ServerHello 137 or the EncryptedExtensions message. 139 3. IANA Considerations 141 IANA is requested to assign a new value from the TLS ExtensionType 142 Values registry: 144 o The Extension Name should be tls_flags 145 o The TLS 1.3 value should be CH,SH,EE 147 o The Recommended value should be Y 149 o The Reference should be this document 151 IANA is also requested to create a new registry under the TLS 152 namespace with name "TLS Flags" and the following fields: 154 o Value, which is a value between 0 and 255. The values 240-255 155 should be Reserved for Private Use, while the rest should be 156 available for assignment. 158 o Flag Name, which is a string 160 o Message, which like the "TLS 1.3" field in the ExtensionType 161 registry contains the abbreviations of the messages that may 162 contain the flag: CH, SH, EE, etc. 164 o Recommended, which is a Y/N value determined in the document 165 defining the optional feature 167 o Reference, which is a link to the document defining this flag. 169 The policy for this shall be "Specification Required" as described in 170 [RFC8126]. 172 4. Security Considerations 174 The extension described in this document provides a more concise way 175 to express data that could otherwise be expressed in individual 176 extensions. It does not send in the clear any information that would 177 otherwise be sent encrypted, nor vice versa. For this reason this 178 extension is neutral as far as security is concerned. 180 5. Acknowledgements 182 The idea for writing this was expressed at the mic during the TLS 183 session at IETF 104 by EKR. 185 6. References 187 6.1. Normative References 189 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 190 Requirement Levels", BCP 14, RFC 2119, 191 DOI 10.17487/RFC2119, March 1997, 192 . 194 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 195 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 196 May 2017, . 198 [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol 199 Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, 200 . 202 6.2. Informative References 204 [I-D.ietf-tls-tls13-cert-with-extern-psk] 205 Housley, R., "TLS 1.3 Extension for Certificate-based 206 Authentication with an External Pre-Shared Key", draft- 207 ietf-tls-tls13-cert-with-extern-psk-00 (work in progress), 208 February 2019. 210 [I-D.sy-tls-resumption-group] 211 Sy, E., "TLS Resumption across Server Name Indications for 212 TLS 1.3", draft-sy-tls-resumption-group-00 (work in 213 progress), March 2019. 215 [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for 216 Writing an IANA Considerations Section in RFCs", BCP 26, 217 RFC 8126, DOI 10.17487/RFC8126, June 2017, 218 . 220 Author's Address 222 Yoav Nir 223 DellEMC 224 9 Andrei Sakharov St 225 Haifa 3190500 226 Israel 228 Email: ynir.ietf@gmail.com