diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc9538.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc9538.txt')
-rw-r--r-- | doc/rfc/rfc9538.txt | 447 |
1 files changed, 447 insertions, 0 deletions
diff --git a/doc/rfc/rfc9538.txt b/doc/rfc/rfc9538.txt new file mode 100644 index 0000000..7b9989a --- /dev/null +++ b/doc/rfc/rfc9538.txt @@ -0,0 +1,447 @@ + + + + +Internet Engineering Task Force (IETF) F. Fieau, Ed. +Request for Comments: 9538 E. Stephan +Category: Standards Track Orange +ISSN: 2070-1721 S. Mishra + Verizon + February 2024 + + + Content Delivery Network Interconnection (CDNI) Delegation Using the + Automated Certificate Management Environment + +Abstract + + This document defines metadata to support delegating the delivery of + HTTPS content between two or more interconnected Content Delivery + Networks (CDNs). Specifically, this document defines a Content + Delivery Network Interconnection (CDNI) Metadata interface object to + enable delegation of X.509 certificates leveraging delegation schemes + defined in RFC 9115. Per RFC 9115, delegating entities can remain in + full control of the delegation and can revoke it at any time. This + avoids the need to share private cryptographic key material between + the involved entities. + +Status of This Memo + + This is an Internet Standards Track document. + + This document is a product of the Internet Engineering Task Force + (IETF). It represents the consensus of the IETF community. It has + received public review and has been approved for publication by the + Internet Engineering Steering Group (IESG). Further information on + Internet Standards is available in Section 2 of RFC 7841. + + Information about the current status of this document, any errata, + and how to provide feedback on it may be obtained at + https://www.rfc-editor.org/info/rfc9538. + +Copyright Notice + + Copyright (c) 2024 IETF Trust and the persons identified as the + document authors. All rights reserved. + + This document is subject to BCP 78 and the IETF Trust's Legal + Provisions Relating to IETF Documents + (https://trustee.ietf.org/license-info) in effect on the date of + publication of this document. Please review these documents + carefully, as they describe your rights and restrictions with respect + to this document. Code Components extracted from this document must + include Revised BSD License text as described in Section 4.e of the + Trust Legal Provisions and are provided without warranty as described + in the Revised BSD License. + +Table of Contents + + 1. Introduction + 1.1. Terminology + 2. Advertising Delegation Metadata for CDNI through FCI + 3. ACME Delegation Metadata for CDNI + 3.1. ACMEDelegationMethod Object + 3.1.1. Examples + 4. IANA Considerations + 4.1. CDNI MI ACMEDelegationMethod Payload Type + 5. Security Considerations + 6. References + 6.1. Normative References + 6.2. Informative References + Acknowledgments + Authors' Addresses + +1. Introduction + + Content delivery over HTTPS using two or more cooperating CDNs along + the path requires credential management, specifically when DNS-based + redirection is used. In such cases, an upstream CDN (uCDN) needs to + delegate its credentials to a downstream CDN (dCDN) for content + delivery. + + [RFC9115] defines delegation methods that allow a uCDN on behalf of + the content provider, the holder of the domain, to generate on-demand + an X.509 certificate that binds the designated domain name with a key + pair owned by the dCDN. For further details, please refer to + Sections 1 and 5.1.2.1 of [RFC9115]. + + This document defines CDNI Metadata to make use of HTTPS delegation + between a uCDN and a dCDN based on the mechanism specified in + [RFC9115]. Furthermore, it adds a delegation method to the "CDNI + Payload Types" IANA registry. + + Section 2 presents delegation metadata for the Footprint & + Capabilities Advertisement interface (FCI). Section 3 addresses the + metadata for handling HTTPS delegation with the Metadata interface. + +1.1. Terminology + + This document uses terminology from CDNI framework documents such as: + CDNI framework document [RFC7336] and CDNI interface specifications + documents: CDNI Metadata interface [RFC8006] and CDNI Footprint and + Capabilities Advertisement interface [RFC8008]. It also uses + terminology from Section 1.2 of [RFC8739] and Section 1.1 of + [RFC9115], including Short-Term, Automatically Renewed (STAR), as + applied to X.509 certificates. + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and + "OPTIONAL" in this document are to be interpreted as described in + BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all + capitals, as shown here. + +2. Advertising Delegation Metadata for CDNI through FCI + + The Footprint & Capabilities Advertisement interface (FCI) defined in + [RFC8008] allows a dCDN to send a FCI capability type object to a + uCDN. + + This document uses the CDNI Metadata capability object serialization + from [RFC8008] for a CDN that supports delegation methods. + + The following is an example of the supported delegated methods + capability object for a dCDN implementing the ACME delegation method. + + { + "capabilities": [ + { + "capability-type": "FCI.Metadata", + "capability-value": { + "metadata": [ + // list of supported delegation methods + "ACMEDelegationMethod" + ] + }, + "footprints": [ + "Footprint objects" + ] + } + ] + } + +3. ACME Delegation Metadata for CDNI + + When a uCDN delegates the delivery of HTTPS traffic to a dCDN using + DNS redirection [RFC7336], the dCDN must use a certificate bound to + the origin's name to successfully authenticate to the end-user (see + also Section 5.1.2.1 of [RFC9115]). + + To that end, this section defines the AcmeDelegationMethod object, + which describes metadata for using the ACME delegation interface + [RFC9115]. + + The ACMEDelegationMethod applies to both ACME STAR delegation, which + provides a delegation model based on short-term certificates with + automatic renewal (Section 2.3.2 of [RFC9115]), and non-STAR + delegation, which allows delegation between CDNs using long-term + certificates (Section 2.3.3 of [RFC9115]). + + Figure 1 provides a high-level view of the combined CDNI and ACME + delegation message flows to obtain a STAR certificate from the + Certification Authority (CA) bound to the Content Provider's (CP) + name. + +.----. .----. .----. .----. +|dCDN| |uCDN| | CP | | CA | +'-+--' '-+--' '--+-' '--+-' + | GET metadata | | | + +--------[CDNI]------>| | | + | 200 OK, metadata | | | + | (inc. dele config) | | | + |<-------[CDNI]-------+ | | + | | | | + | GET delegation | | | + +-----[ACME dele]---->| | | + | 200 OK, delegation | | | + | (inc. CSR template) | | | + |<----[ACME dele]-----+ | | + | | | | + +----. | | | + | | | | | + | create key pair and| | | + | CSR w/ delegated | | | + | name | | | + | | | | | + |<---' | | | + | | | | + | POST Order1 | | | + +-----[ACME dele]---->| | | + | | forward Order1 | | + | +-----[ACME dele]---->| | + | | | POST Order2 | + | | +-----[ACME STAR]----->| + | | | | + | | |<---authorizations--->| + | | | | + |<---wait issuance--->|<---wait issuance--->|<---wait issuance---->| + | | + | (unauthenticated) GET star-certificate | + +----------------------------------------------------------------->| + | certificate #1 | + |<-----------------------------------------------------------------+ + | ... | + + Figure 1: Example Call Flow of STAR Delegation in CDNI Showing + Two Levels of Delegation + + | Note: The delegation object defined in Section 2.3.1.3 of + | [RFC9115] only allows DNS mappings to be specified using CNAME + | RRs. A future document updating [RFC9115] could expand the + | delegation object to also include SVCB/HTTPS-based mappings + | [RFC9460]. + + Section 3.1 defines the objects used for bootstrapping the ACME + delegation method between a uCDN and a delegate dCDN. + +3.1. ACMEDelegationMethod Object + + The ACMEDelegationMethod object allows a uCDN to define both STAR and + non-STAR delegations. The dCDN, the consumer of the delegation, can + determine the type of delegation by the presence (or absence) of the + "lifetime" property. That is, the presence of the "lifetime" + property explicitly means a short-term delegation with lifetime of + the certificate based on that property (and the optional "lifetime- + adjust" attribute). A non-STAR delegation will not have the + "lifetime" property in the delegation. See also the examples in + Section 3.1.1. + + The ACMEDelegationMethod object is defined with the properties shown + below. + + * Property: acme-delegation + + - Description: A URL pointing at an ACME delegation object, + either STAR or non-STAR, associated with the dCDN account on + the uCDN ACME server (see Section 2.3.1.3 of [RFC9115] for the + details). The URL MUST use the https scheme. + + - Type: String + + - Mandatory-to-Specify: Yes + + * Property: time-window + + - Description: Validity period of the certificate. According to + Section 4.3.4 of [RFC8006], a TimeWindow object is defined by a + window "start" time and a window "end" time. In the case of a + STAR method, the "start" and "end" properties of the window + MUST be understood respectively as the start-date and end-date + of the certificate validity. In the case of a non-STAR method, + the "start" and "end" properties of the window MUST be + understood, respectively, as the notBefore and notAfter fields + of the certificate. + + - Type: TimeWindow + + - Mandatory-to-Specify: Yes + + * Property: lifetime + + - Description: See lifetime in Section 3.1.1 of [RFC8739] + + - Type: Integer + + - Mandatory-to-Specify: Yes, only if a STAR delegation method is + specified + + * Property: lifetime-adjust + + - Description: See lifetime-adjust in Section 3.1.1 of [RFC8739] + + - Type: Integer + + - Mandatory-to-Specify: No + +3.1.1. Examples + + The following example shows an ACMEDelegationMethod object for a + STAR-based ACME delegation. + + { + "generic-metadata-type": "MI.ACMEDelegationMethod", + "generic-metadata-value": { + "acme-delegation": "https://acme.ucdn.example/delegation/ogfr", + "time-window": { + "start": 1665417434, + "end": 1665676634 + }, + "lifetime": 345600, + "lifetime-adjust": 259200 + } + } + + The example below shows an ACMEDelegationMethod object for a non-STAR + ACME delegation. The delegation object is defined as per Section 4.3 + of [RFC8006]. + + { + "generic-metadata-type": "MI.ACMEDelegationMethod", + "generic-metadata-value": { + "acme-delegation": "https://acme.ucdn.example/delegation/wSi5", + "time-window": { + "start": 1570982234, + "end": 1665417434 + } + } + } + +4. IANA Considerations + + Per this document, the following type has been registered in the + "CDNI Payload Types" registry: + + +=========================+===========+ + | Payload Type | Reference | + +=========================+===========+ + | MI.ACMEDelegationMethod | RFC 9538 | + +-------------------------+-----------+ + + Table 1 + +4.1. CDNI MI ACMEDelegationMethod Payload Type + + Purpose: The purpose of this Payload Type is to distinguish + AcmeDelegationMethod MI objects (and any associated capability + advertisement) + + Interface: MI/FCI + + Encoding: See Section 3.1 + +5. Security Considerations + + The metadata object defined in this document does not introduce any + new security or privacy concerns over those already discussed in + [RFC9115], [RFC8006], and [RFC8008]. + + The reader is expected to understand the ACME delegation trust model + (Section 7.1 of [RFC9115]) and security goal (Section 7.2 of + [RFC9115]). In particular, the reader is expected to understand that + it is critical to protect the user account associated with the + delegation; this account authorizes all the security-relevant + operations between a dCDN and a uCDN over the ACME channel. The + dCDN's ACME account is also relevant to the privacy of the entire + scheme; for example, the acme-delegation resource in the Metadata + object is only accessible to the holder of the account key, who is + allowed to fetch its content exclusively via POST-as-GET + (Section 2.3.1.2 of [RFC9115]). + + In addition, the Metadata interface authentication and + confidentiality requirements defined in Section 8 of [RFC8006] MUST + be followed. + + Implementers MUST adhere to the security considerations defined in + Section 7 of [RFC8008], "Content Delivery Network Interconnection + (CDNI) Request Routing: Footprint and Capabilities Semantics". + + When TLS is used to achieve the above security objectives, the + general TLS usage guidance in [RFC9325] MUST be followed. + +6. References + +6.1. Normative References + + [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate + Requirement Levels", BCP 14, RFC 2119, + DOI 10.17487/RFC2119, March 1997, + <https://www.rfc-editor.org/info/rfc2119>. + + [RFC8006] Niven-Jenkins, B., Murray, R., Caulfield, M., and K. Ma, + "Content Delivery Network Interconnection (CDNI) + Metadata", RFC 8006, DOI 10.17487/RFC8006, December 2016, + <https://www.rfc-editor.org/info/rfc8006>. + + [RFC8008] Seedorf, J., Peterson, J., Previdi, S., van Brandenburg, + R., and K. Ma, "Content Delivery Network Interconnection + (CDNI) Request Routing: Footprint and Capabilities + Semantics", RFC 8008, DOI 10.17487/RFC8008, December 2016, + <https://www.rfc-editor.org/info/rfc8008>. + + [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC + 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, + May 2017, <https://www.rfc-editor.org/info/rfc8174>. + + [RFC8739] Sheffer, Y., Lopez, D., Gonzalez de Dios, O., Pastor + Perales, A., and T. Fossati, "Support for Short-Term, + Automatically Renewed (STAR) Certificates in the Automated + Certificate Management Environment (ACME)", RFC 8739, + DOI 10.17487/RFC8739, March 2020, + <https://www.rfc-editor.org/info/rfc8739>. + + [RFC9115] Sheffer, Y., López, D., Pastor Perales, A., and T. + Fossati, "An Automatic Certificate Management Environment + (ACME) Profile for Generating Delegated Certificates", + RFC 9115, DOI 10.17487/RFC9115, September 2021, + <https://www.rfc-editor.org/info/rfc9115>. + + [RFC9325] Sheffer, Y., Saint-Andre, P., and T. Fossati, + "Recommendations for Secure Use of Transport Layer + Security (TLS) and Datagram Transport Layer Security + (DTLS)", BCP 195, RFC 9325, DOI 10.17487/RFC9325, November + 2022, <https://www.rfc-editor.org/info/rfc9325>. + +6.2. Informative References + + [RFC7336] Peterson, L., Davie, B., and R. van Brandenburg, Ed., + "Framework for Content Distribution Network + Interconnection (CDNI)", RFC 7336, DOI 10.17487/RFC7336, + August 2014, <https://www.rfc-editor.org/info/rfc7336>. + + [RFC9460] Schwartz, B., Bishop, M., and E. Nygren, "Service Binding + and Parameter Specification via the DNS (SVCB and HTTPS + Resource Records)", RFC 9460, DOI 10.17487/RFC9460, + November 2023, <https://www.rfc-editor.org/info/rfc9460>. + +Acknowledgments + + We would like to thank authors of the [RFC9115], Antonio Augustín + Pastor Perales, Diego López, Thomas Fossati, and Yaron Sheffer. + Additionally, our gratitude to Thomas Fossati who participated in the + drafting, reviewing, and giving his feedback in finalizing this + document. We also thank CDNI co-chair Kevin Ma for his continual + review and feedback during the development of this document. + +Authors' Addresses + + Frédéric Fieau (editor) + Orange + 40-48, avenue de la République + 92320 Châtillon + France + Email: frederic.fieau@orange.com + + + Emile Stephan + Orange + 2, avenue Pierre Marzin + 22300 Lannion + France + Email: emile.stephan@orange.com + + + Sanjay Mishra + Verizon + 13100 Columbia Pike + Silver Spring, MD 20904 + United States of America + Email: sanjay.mishra@verizon.com |