idnits 2.17.1 draft-sheffer-acme-star-lurk-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 : ---------------------------------------------------------------------------- ** The document seems to lack an Introduction section. ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (October 25, 2016) is 2738 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 (-18) exists of draft-ietf-acme-acme-03 == Outdated reference: A later version (-05) exists of draft-iab-web-pki-problems-03 -- Obsolete informational reference (is this intentional?): RFC 6844 (Obsoleted by RFC 8659) Summary: 2 errors (**), 0 flaws (~~), 3 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 ACME Working Group Y. Sheffer 3 Internet-Draft Intuit 4 Intended status: Standards Track D. Lopez 5 Expires: April 28, 2017 O. Gonzalez de Dios 6 Telefonica I+D 7 T. Fossati 8 Nokia 9 October 25, 2016 11 Use of Short-Term, Automatically-Renewed (STAR) Certificates to address 12 the LURK problem 13 draft-sheffer-acme-star-lurk-00 15 Abstract 17 This memo proposes two mechanisms that work in concert to address the 18 LURK problem statement, allowing a third party (e.g., a content 19 delivery network) to terminate TLS sessions on behalf of a domain 20 name owner (e.g., a content provider). 22 The proposed mechanisms are: 24 1. An extension to the ACME protocol to enable the issuance of 25 short-term and automatically renewed certificates, and 26 2. A protocol that allows a domain name owner to delegate to a third 27 party control over a certificate that bears its own name. 29 It should be noted that these are in fact independent building blocks 30 that could be used separately to solve completely different problems. 32 Status of This Memo 34 This Internet-Draft is submitted in full conformance with the 35 provisions of BCP 78 and BCP 79. 37 Internet-Drafts are working documents of the Internet Engineering 38 Task Force (IETF). Note that other groups may also distribute 39 working documents as Internet-Drafts. The list of current Internet- 40 Drafts is at http://datatracker.ietf.org/drafts/current/. 42 Internet-Drafts are draft documents valid for a maximum of six months 43 and may be updated, replaced, or obsoleted by other documents at any 44 time. It is inappropriate to use Internet-Drafts as reference 45 material or to cite them other than as "work in progress." 47 This Internet-Draft will expire on April 28, 2017. 49 Copyright Notice 51 Copyright (c) 2016 IETF Trust and the persons identified as the 52 document authors. All rights reserved. 54 This document is subject to BCP 78 and the IETF Trust's Legal 55 Provisions Relating to IETF Documents 56 (http://trustee.ietf.org/license-info) in effect on the date of 57 publication of this document. Please review these documents 58 carefully, as they describe your rights and restrictions with respect 59 to this document. Code Components extracted from this document must 60 include Simplified BSD License text as described in Section 4.e of 61 the Trust Legal Provisions and are provided without warranty as 62 described in the Simplified BSD License. 64 Table of Contents 66 1. A Solution for the HTTPS CDN Use Case . . . . . . . . . . . . 2 67 2. Conventions used in this document . . . . . . . . . . . . . . 3 68 3. Protocol Flow . . . . . . . . . . . . . . . . . . . . . . . . 3 69 3.1. Preconditions . . . . . . . . . . . . . . . . . . . . . . 4 70 3.2. Bootstrap . . . . . . . . . . . . . . . . . . . . . . . . 4 71 3.3. Refresh . . . . . . . . . . . . . . . . . . . . . . . . . 6 72 3.4. Termination . . . . . . . . . . . . . . . . . . . . . . . 7 73 4. Security Considerations . . . . . . . . . . . . . . . . . . . 8 74 4.1. Restricting CDNs to the Delegation Mechanism . . . . . . 8 75 5. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 9 76 6. References . . . . . . . . . . . . . . . . . . . . . . . . . 9 77 6.1. Normative References . . . . . . . . . . . . . . . . . . 9 78 6.2. Informative References . . . . . . . . . . . . . . . . . 9 79 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 10 81 1. A Solution for the HTTPS CDN Use Case 83 A content provider, and Domain Name Owner (DNO), has agreements in 84 place with one or more Content Delivery Networks (CDN) that are 85 contracted to serve its content over HTTPS. The CDN terminates the 86 HTTPS connection at one of its edge cache servers and needs to 87 present its clients (browsers, set-top-boxes) a certificate whose 88 name matches the authority of the URL that is requested, i.e. that of 89 the DNO. However, many DNOs balk at sharing their long-term private 90 keys with another organization and, equally, CDN providers would 91 rather not have to handle other parties' long-term secrets. This 92 problem has been discussed at the IETF under the LURK (limited use of 93 remote keys) title. 95 This document proposes a solution to the above problem that involves 96 the use of short-term certificates with a DNO's name on them, and a 97 scheme for handling the naming delegation from the DNO to the CDN. 98 The generated short-term credentials are automatically renewed by an 99 ACME Certification Authority (CA) [I-D.ietf-acme-acme] and routinely 100 rotated by the CDN on its edge cache servers. The DNO can end the 101 delegation at any time by simply instructing the CA to stop the 102 automatic renewal and let the certificate expire shortly after. 104 Using short-term certificates makes revocation cheap and effective 105 [Topalovic] [I-D.iab-web-pki-problems] in case of key compromise or 106 of termination of the delegation; seamless certificate issuance and 107 renewal enable the level of workflow automation that is expected in 108 today's cloud environments. Also, compared to other keyless-TLS 109 solutions [I-D.cairns-tls-session-key-interface] 110 [I-D.erb-lurk-rsalg], the proposed approach doesn't suffer from 111 scalability issues or increase in connection setup latency, while 112 requiring virtually no changes to existing COTS caching software used 113 by the CDN. 115 2. Conventions used in this document 117 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 118 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 119 "OPTIONAL" in this document are to be interpreted as described in 120 [RFC2119]. 122 TODO: glossary. 124 3. Protocol Flow 126 The protocol flow can be split into two: a LURK interface, used by 127 CDN and DNO to agree on the name delegation, and the ACME STAR 128 interface, used by DNO to obtain the short-term and automatically 129 renewed certificate from the CA, which is eventually consumed by the 130 CDN. The latter is also used to terminate the delegation, if so 131 needed. 133 The following subsections describe the preconditions (Section 3.1), 134 and the three main phases of the protocol: 136 o Bootstrap: the CDN requests from the DNO the delegation of a 137 specific name and in turn DNO asks an ACME CA to create the 138 corresponding short-term and auto-renewed (STAR) certificate 139 (Section 3.2); 140 o Auto-renewal: the ACME CA periodically re-issues the short-term 141 certificate and posts it to a public URL (Section 3.3); 142 o Termination: the DNO (indirectly) stops name delegation by 143 explicitly requesting the ACME CA to discontinue the automatic 144 renewal of the certificate (Section 3.4). 146 3.1. Preconditions 148 The protocol assumes the following preconditions are met: 150 o A mutually authenticated channel between CDN and DNO pre-exists. 151 This is called "LURK channel" and all LURK protocol exchanges 152 between CDN and DNO are run over it. It provides the guarantee 153 that the LURK requests and responses are authentic [[_1: Note 154 that, under this assumption, the key used to authenticate the CDN 155 to the DNO becomes a critical asset for the security of the 156 proposed protocol, and that certain interactions (e.g., CSR 157 submission) might require a stronger authentication mechanism. 158 For example, stacking a further authentication factor on top of 159 CDN's LURK key would allow to distinguish an attacker that has 160 only managed to successfully attack the CDN's LURK key from the 161 legitimate CDN. --tf]]. 162 o CDN and DNO have agreed on a "CSR template" to use, including at a 163 minimum: 165 - Subject name (e.g., "somesite.DNO.com"), 166 - Validity (e.g., 24 to 72 hours), 167 - Requested algorithms, 168 - Key length, 169 - Key usage. 171 The CDN is required to use this template for every CSR created 172 under the same delegation. 173 o DNO has registered through the ACME interface exposed by the 174 Certificate Authority (CA) using the usual ACME registration 175 procedure. The DNO shall, at the registration stage, query the 176 ACME server for the supported STAR capabilities - for example: the 177 minimum validity period of the issued certificate, the maximum 178 duration of the automatic renewal process (either as a maximum 179 number of renewal events, or as its maximum absolute life-span). 181 3.2. Bootstrap 183 CDN (LURK client) generates a key-pair, wraps it into a Certificate 184 Signing Request (CSR) according to the agreed CSR template, and sends 185 it to the DNO (LURK server) over the pre-established LURK channel. 186 The DNO uses the CDN identity provided on the LURK channel to look up 187 the CSR template that applies to the requesting CDN and decides 188 whether or not to accept the request. (TBD: This is probably a case 189 that would require a further authentication stage over the one 190 provided by the mutual-authenticated LURK channel?) Assuming 191 everything is in order, it then "forwards" the CDN request to the 192 ACME CA by means of the usual ACME application procedure. 194 Specifically, DNO, in its role as a ACME/STAR client, requests the CA 195 a STAR certificate, i.e., one that: 197 o Has a short validity (e.g., 24 to 72 hours); 198 o Is automatically renewed by the CA for a certain period of time; 199 o Is downloadable from a (highly available) public link without 200 requiring any special authorisation. 202 Other than that, the ACME protocol flows as normal between DNO and 203 CA, in particular DNO is responsible for satisfying the requested 204 ACME challenges until the CA is willing to issue the requested 205 certificate. The DNO is given back a unique identifier for the 206 issued STAR certificate to be used in subsequent interaction with the 207 CA (e.g., if the certificate needs to be terminated.) 209 Concurrently, a 202 response has been sent back to the CDN with an 210 endpoint to poll for completion of the certificate generation 211 process. 213 The bootstrap phase ends when the DNO obtains the OK from the ACME CA 214 and posts the certificate's URL to the "completion endpoint" where 215 the CDN can retrieve it. The information that is passed on to the 216 CDN at this stage also includes details about how much time before 217 the certificate expires can the CDN expect the replacement to be 218 ready. 220 ........................... 221 LURK : LURK ACME/STAR: ACME/STAR 222 Client : Server Client : Server 223 | : | | : | 224 | : | | ACME registration | 225 +-------. : | |<--------------------->| 226 | | : | | STAR capabilities | 227 | generate CSR : | | : | 228 | | : | | : | 229 |<------' : | | : | 230 | : | | : | 231 | Request new : | | : | 232 +---------------------->| | : | 233 | cert for CSR : | | : | 234 | : +-------. | : | 235 | : | | | : | 236 | : | Verify CSR | : | 237 | : | | | : | 238 | : +<------' | : | 239 | Accepted, poll at | | : | 240 |<----------------------+ | : | 241 | "completion URL" |- - - - - - - >| Application for | 242 | : | +---------------------->| 243 | : | | STAR certificate | 244 | : | | : | 245 | GET "completion URL" | | : Challenge | 246 |<--------------------->| |<--------------------->| 247 | 202, in progress | | : Response | 248 | : | | : | 249 | : | | Finalize/Certificate | 250 | : | |<----------------------+ 251 | GET "completion URL" |< - - - - - - -| : + STAR Id | 252 +---------------------->| | : | 253 | : | | : | 254 | 200, certificate URL | | : | 255 |<----------------------+ | : | 256 | and other metadata | | : | 257 | : | | : | 258 `.........................' 260 Figure 1: Bootstrap 262 3.3. Refresh 264 The CA automatically re-issues the certificate (using the same CSR) 265 before it expires and publishes it to the URL that the CDN has come 266 to know at the end of the bootstrap phase. The CDN downloads and 267 installs it. This process goes on until either: 269 o DNO terminates the delegation, or 270 o Automatic renewal expires. 272 LURK ACME/STAR 273 Client Server 274 | Retrieve cert | [...] 275 |<--------------------->| | 276 | +------. / 277 | | | / 278 | | Automatic renewal : 279 | | | \ 280 | |<-----' \ 281 | Retrieve cert | | 282 |<--------------------->| 72 hours 283 | | | 284 | +------. / 285 | | | / 286 | | Automatic renewal : 287 | | | \ 288 | |<-----' \ 289 | Retrieve cert | | 290 |<--------------------->| 72 hours 291 | | | 292 | +------. / 293 | | | / 294 | | Automatic renewal : 295 | | | \ 296 | |<-----' \ 297 | | | 298 | [...] | [...] 300 Figure 2: Auto renewal 302 3.4. Termination 304 DNO requests termination of the STAR certificate by including the 305 previously obtained identifier in a STAR certificate termination 306 request to the ACME interface. After CA receives and verifies the 307 request, it shall: 309 o Cancel the automatic renewal process for the LURK certificate; 310 o Change the certificate publication resource to return an error 311 indicating the termination of the delegation to external clients, 312 including the CDN; 314 Note that it is not necessary to explicitly revoke the short-term 315 certificate. 317 LURK ACME/STAR ACME/STAR 318 Client Client Server 319 | | | 320 | | Terminate STAR Id | 321 | +---------------------->| 322 | | +-------. 323 | | | | 324 | | | End auto renewal 325 | | | Remove cert link 326 | | | etc. 327 | | | | 328 | | Done |<------' 329 | |<----------------------+ 330 | | | 331 | | 332 | Retrieve cert | 333 +---------------------------------------------->| 334 | Error: terminated | 335 |<----------------------------------------------+ 336 | | 338 Figure 3: Termination 340 4. Security Considerations 342 o CDN's client certificate key is first order security asset and 343 MUST be protected. Absent 2FA/MFA, an attacker that can 344 compromise the key might be able to obtain certificates bearing 345 DNO's identity. 346 o Consider collusion of two or more CDNs with contracts with the 347 same DNO (?) 349 4.1. Restricting CDNs to the Delegation Mechanism 351 Currently there are no standard methods for the DNO to ensure that 352 the CDN cannot issue a certificate through mechanisms other than the 353 one described here, for the URLs under the CDN's control. For 354 example, regardless of the STAR solution, a rogue CDN employee can 355 use the ACME protocol (or proprietary mechanisms used by various CAs) 356 to create a fake certificate for the DNO's content. 358 The best solution currently being worked on would consist of several 359 related configuration steps: 361 o Make sure that the CDN cannot modify the DNS records for the 362 domain. Typically this would mean that the content owner 363 establishes a CNAME resource record from a subdomain into a CDN- 364 managed domain. 366 o Restrict certificate issuance for the domain to specific CAs that 367 comply with ACME. This assumes universal deployment of CAA 368 [RFC6844] by CAs, which is not the case yet. 369 o Deploy ACME-specific methods to restrict issuance to a specific 370 authorization key which is controlled by the content owner 371 [I-D.landau-acme-caa], and/or to specific ACME authorization 372 methods. 374 This solution is recommended in general, even if an alternative to 375 the mechanism described here is used. 377 5. Acknowledgments 379 This work is partially supported by the European Commission under 380 Horizon 2020 grant agreement no. 688421 Measurement and Architecture 381 for a Middleboxed Internet (MAMI). This support does not imply 382 endorsement. 384 6. References 386 6.1. Normative References 388 [I-D.ietf-acme-acme] 389 Barnes, R., Hoffman-Andrews, J., and J. Kasten, "Automatic 390 Certificate Management Environment (ACME)", draft-ietf- 391 acme-acme-03 (work in progress), July 2016. 393 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 394 Requirement Levels", BCP 14, RFC 2119, 395 DOI 10.17487/RFC2119, March 1997, 396 . 398 6.2. Informative References 400 [I-D.cairns-tls-session-key-interface] 401 Cairns, K., Mattsson, J., Skog, R., and D. Migault, 402 "Session Key Interface (SKI) for TLS and DTLS", draft- 403 cairns-tls-session-key-interface-01 (work in progress), 404 October 2015. 406 [I-D.erb-lurk-rsalg] 407 Erb, S. and R. Salz, "A PFS-preserving protocol for LURK", 408 draft-erb-lurk-rsalg-01 (work in progress), May 2016. 410 [I-D.iab-web-pki-problems] 411 Housley, R. and K. O'Donoghue, "Problems with the Public 412 Key Infrastructure (PKI) for the World Wide Web", draft- 413 iab-web-pki-problems-03 (work in progress), September 414 2016. 416 [I-D.landau-acme-caa] 417 Landau, H., "CA Account URI Binding for CAA Records", 418 draft-landau-acme-caa-01 (work in progress), October 2016. 420 [RFC6844] Hallam-Baker, P. and R. Stradling, "DNS Certification 421 Authority Authorization (CAA) Resource Record", RFC 6844, 422 DOI 10.17487/RFC6844, January 2013, 423 . 425 [Topalovic] 426 Topalovic, E., Saeta, B., Huang, L., Jackson, C., and D. 427 Boneh, "Towards Short-Lived Certificates", 2012, 428 . 430 Authors' Addresses 432 Yaron Sheffer 433 Intuit 435 EMail: yaronf.ietf@gmail.com 437 Diego Lopez 438 Telefonica I+D 440 EMail: diego@telefonica.es 442 Oscar Gonzalez de Dios 443 Telefonica I+D 445 EMail: oscar.gonzalezdedios@telefonica.com 447 Thomas Fossati 448 Nokia 450 EMail: thomas.fossati@nokia.com