idnits 2.17.1 draft-hoyland-tls-layered-exported-authenticator-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 date (June 25, 2018) is 2133 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 (-15) exists of draft-ietf-tls-exported-authenticator-07 Summary: 0 errors (**), 0 flaws (~~), 2 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Engineering Task Force J. Hoyland, Ed. 3 Internet-Draft Royal Holloway, University of London 4 Intended status: Standards Track June 25, 2018 5 Expires: December 27, 2018 7 Layered Exported Authenticators in TLS 8 draft-hoyland-tls-layered-exported-authenticator-00 10 Abstract 12 This document describes an extension that allows for Exported 13 Authenticators (EAs) to authenticate each other. The extension 14 includes a reference to a previous EA. An EA containing this 15 extension constitues an attestation of the authenticity of the 16 referenced EA. 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 December 27, 2018. 35 Copyright Notice 37 Copyright (c) 2018 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 Language . . . . . . . . . . . . . . . . . . 3 54 2. Extension Format . . . . . . . . . . . . . . . . . . . . . . 3 55 3. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 4 56 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 4 57 5. Security Considerations . . . . . . . . . . . . . . . . . . . 4 58 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 5 59 6.1. Normative References . . . . . . . . . . . . . . . . . . 5 60 6.2. Informative References . . . . . . . . . . . . . . . . . 5 61 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 5 63 1. Introduction 65 Exported Authenticators (EAs)[EA] provide a method for authenticating 66 one party of a Transport Layer Security (TLS) communication to the 67 other after the session has been established. EAs are defined for 68 TLS 1.3[TLS13] and TLS 1.2 with extended master secret, RFC 7627 69 [RFC7627]. Multiple EAs sent on the same channel do not prove joint 70 authentication. They prove that the sender is individually 71 authoritative over each certificate, but not jointly authoritative 72 over all certificates. By including this extension a sender can 73 prove joint authentication. This extension can be included in 74 CertificateRequest messages and Certificate messages. 76 Joint authentication could be used, for example, to securely update 77 pinned certificates. When a client connects to a server for which it 78 has a pinned certificate, the server could send the new certificate 79 to be pinned, and then bind the previously pinned certificate to it. 80 This proves to the client that the server is jointly authoritative 81 over both certificates. To defeat this mechanism an attacker is 82 required to both compromise the key of the old certificate and 83 improperly obtain a certificate from the PKI. 85 Another potential use is to provide proof that a certificate has been 86 accepted. Because EAs do not have a response mechanism, the sender 87 of an EA does not know the receiver's view of its authentication 88 status. By using this extension to reference EAs sent by its peer, a 89 party can prove to its peer that it has accepted a particular 90 certificate. 92 By constructing a chain of referenced EAs complex joint 93 authentication properties can be achieved. 95 1.1. Requirements Language 97 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 98 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 99 document are to be interpreted as described in RFC 2119 [RFC2119]. 101 2. Extension Format 103 The "extension_data" field of this extension SHALL contain: 105 struct { 106 opaque prev_certificate_request_context<0..2^8-1>; 107 opaque binding[Hash.length]; 108 } LayeredEA; 110 where "prev_certificate_request_context" is the certificate request 111 context of the EA you are referencing, and "binding" is the Finished 112 message of that same EA. The hash used is that used in the exported 113 authenticator, which is the hash function used by the TLS connection. 115 A party who wishes its peer to prove it is jointly authoritative over 116 multiple certificates can request a sequence of certificates, each 117 bound to its predecessor. Receipt of a series of EAs binding these 118 certificates into a chain proves the sender is jointly authoritative 119 over all those certificates. 121 A party who receives a CertificateRequest with this extension MUST 122 verify that it previously received or sent an EA with the appropriate 123 certificate request context and Finished message. If so then the 124 party MAY respond with a Certificate fulfilling the request, or it 125 MAY choose to not fulfil the request. 127 A party who receives a request from its peer for which it does not 128 recognise the referenced certificate or does not want to link to the 129 referenced certificate for some other reason, but still wishes to 130 respond with an EA MAY send an EA omitting the extension, or it MAY 131 choose to not fulfil the request. If the peer receives an EA with 132 the extension omitted it proves the sender is authoritative over the 133 certificate in the EA, but makes no claims about the previous EA 134 referenced in the request. 136 For spontaneous certificates The server MUST include a unique (within 137 the context of the connection) certificate_request_context for any EA 138 it may wish to bind to. To be able to verify bindings both parties 139 must keep a list of accepted EAs they are willing to bind to, 140 including certificate_request_contexts and Finished messages. A 141 client that receives a spontaneous EA with a 142 certificate_request_context that it has already seen and for which it 143 is willing to receive a binding MUST ignore it. 145 3. Acknowledgements 147 4. IANA Considerations 149 This document requests IANA to update the TLS ExtensionsType 150 registry, defined in [TLS13], to include the 151 layered_exported_authenticator extension. 153 5. Security Considerations 155 For the authentication guarantees to apply, requests, and thus 156 responses, must unambiguously identify previous EAs. Because EAs do 157 not place a restriction on both parties to a connection using the 158 same certificate_request_context, the certificate_request_context is 159 not sufficient to unambiguously identify previous EAs. Because EAs 160 are unidirectional, and the Finished message is dependent on the 161 labels used to enforce this, the Finished message is sufficient to 162 identify previous EAS unambiguously. In the case of spontaneous EAs 163 a malicious server or an attacker who had compromised the TLS channel 164 could send two identical spontaneous EAs. To militate against this a 165 client receiving such an EA MUST check that it has not already 166 accepted an EA with the same certificate_request_context that it is 167 willing to bind to. If it previously accepted such a certificate but 168 did not add it to the list of certificates which it was willing to 169 bind to, adding it to the list is still secure. The 170 certificate_request_context is included in the request to ease 171 identification of the previous EA, but is not sufficient alone. 173 Both parties can be sure the Finished messages that are used to 174 reference previous EAs are unique. For requested EAs the inclusion 175 of the certificate_request_context, which is generated by the 176 requestor, guarantees this is the case. For spontaneous certificates 177 the client may only accept EAs after checking it does not have any 178 EAs it is willing to bind to with the same 179 certificate_request_context. 181 The Finished messages amount to channel bindings as defined in 182 RFC5056 [RFC5056], and thus publication of them should not weaken the 183 security of either the referenced EA or the TLS channel. 185 This extension only authenticates prior EAs. Thus, an attacker who 186 is able to compromise a TLS connection could append authentications 187 to the connection. Any attempt to bind to these certificates by an 188 honest agent would not be accepted by the peer. 190 6. References 192 6.1. Normative References 194 [EA] Sullivan, N., "Exported Authenticators in TLS", draft- 195 ietf-tls-exported-authenticator-07 (work in progress), 196 June 2018. 198 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 199 Requirement Levels", BCP 14, RFC 2119, 200 DOI 10.17487/RFC2119, March 1997, 201 . 203 [RFC7627] Bhargavan, K., Ed., Delignat-Lavaud, A., Pironti, A., 204 Langley, A., and M. Ray, "Transport Layer Security (TLS) 205 Session Hash and Extended Master Secret Extension", 206 RFC 7627, DOI 10.17487/RFC7627, September 2015, 207 . 209 [TLS13] Rescorla, E., "The Transport Layer Security (TLS) Protocol 210 Version 1.3", draft-ietf-tls-tls13-28 (work in progress), 211 March 2018. 213 6.2. Informative References 215 [RFC5056] Williams, N., "On the Use of Channel Bindings to Secure 216 Channels", RFC 5056, DOI 10.17487/RFC5056, November 2007, 217 . 219 Author's Address 221 Jonathan Hoyland (editor) 222 Royal Holloway, University of London 223 Egham 224 UK 226 Email: jonathan.hoyland@gmail.com