Internet-Draft | CDNI extensions for HTTPS delegation | March 2022 |
Fieau, et al. | Expires 8 September 2022 | [Page] |
The delivery of content over HTTPS involving one or more CDNs raises credential management issues. This document defines new CDNI FCI and Metadata objects to support HTTPS delegation, especially the ACME-STAR [RFC9115] method.¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 8 September 2022.¶
Copyright (c) 2022 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.¶
Content delivery over HTTPS using one or more CDNs along the path requires credential management. This specifically applies when an entity delegates delivery of encrypted content to another trusted entity.¶
The ACME WG has published ACME STAR [RFC9115] allowing a dCDN to request a x.509 certificate from uCDN.¶
This document proposes the CDNI Metadata interface to setup HTTPS delegation between an upstream CDN (uCDN) and downstream CDN (dCDN) using the ACME STAR proposal. Furthermore, it includes a proposal of IANA registry to enable adding of new methods.¶
Section 2 is about terminology used in this document. Section 3 presents delegation methods specified at the IETF. Section 4 addresses the extension for handling HTTPS delegation in CDNI. Section 5 describes simple data types. Section 6 addresses IANA registry for delegation methods. Section 7 covers the security issues. Section 8 is about comments and questions.¶
This document uses terminology from CDNI framework documents such as: CDNI framework document [RFC7336], CDNI requirements [RFC7337] and CDNI interface specifications documents: CDNI Metadata interface [RFC8006] and CDNI Control interface / Triggers [RFC8007].¶
The Footprint and Capabilities interface as defined in RFC8008, allows a dCDN to send a FCI capability type object to a uCDN. This draft adds an object named FCI.SupportedDelegationMethods.¶
This object will allow a dCDN to advertise the capabilities regarding the supported delegation methods and their configuration.¶
The following is an example of the supported delegated methods capability object for a CDN supporting STAR delegation method.¶
{ "capabilities": [ { "capability-type": "FCI.SupportedDelegationMethods", "capability-value": { "delegation-methods": [ "AcmeStarDelegationDelegationMethod", "... Other delegation methods ..." ] } "footprints": [ <Footprint objects> ] } ] }¶
This section defines Delegation metadata using the current Metadata interface model. This allows bootstrapping delegation methods between a uCDN and a delegate dCDN.¶
This section presents the use of CDNI Delegation metadata of an HostMatch object, as defined in [RFC8006] as specified in the following sections.¶
The existence of the delegation methods in metadata in a CDNI Object shall enable the use of one of this methods, chosen by the delegating entity. In the case of an HostMatch object, the delegation method will be activated for the set of Host defined in the HostMatch. See Section 4.2 for more details about delegation methods metadata specification.¶
The HostMatch object can reference a host metadata that points at the delegation information. Delegation metadata are added to a Metadata object.¶
Below shows both HostMatch its Metadata related to a host, for example, here is a HostMatch object referencing "video.example.com":¶
HostMatch: { "host": "video.example.com", "host-metadata": { "type": "MI.HostMetadata", "href": "https://metadata.ucdn.example/host1234" } } Following the example above, the metadata can be modeled for ACMEStarDelegationMethod as: "generic-metadata-value": { "acme-delegations": [ "https://acme.ucdn.example/acme/delegation/ogfr8EcolOT", "https://acme.ucdn.example/acme/delegation/wSi5Lbb61E4" ] }¶
This extension allows to explicitly indicate support for a given method. Therefore, the presence (or lack thereof) of an AcmeStarDelegationMethod, and/or further delegation methods, implies support (or lack thereof) for the given method.¶
Those metadata can apply to other MI objects such as PathMatch object metadata.¶
This section defines the AcmeStarDelegationMethod object which describes metadata related to the use of ACME/STAR API presented in [RFC9115]¶
As expressed in [RFC9115], when an origin has set a delegation to a specific domain (i.e. dCDN), the dCDN should present to the end-user client, a short-term certificate bound to the master certificate.¶
dCDN uCDN Content Provider CA | ACME/STAR proxy ACME/STAR client ACME/STAR srv | | | | | 1. GET Metadata incl. Delegation Method object with CSR template| +-------------------->| | | | 200 OK + Metadata incl. CSR template [CDNI] | |<--------------------+ | | | 2. Request delegation: video.dcdn.example + dCDN public key | +-------------------->| | | | | 3. Request STAR Cert + dCDN public key | | +-------------------->| 4. Request STAR cert| | | | + Pubkey | | | |-------------------->| | | | 5. STAR certificate | | | 6. STAR certificate |<--------------------| | 7. STAR certificate |<--------------------+ | +<--------------------| | | | | | | | 8. Retrieve STAR certificate (credential-location-uri) | +---------------------------------------------------------------->| | | | 9. renew +--| | | | cert | | | 10. Star certificate | +->| |<----------------------------------------------------------------+ | ... | | | Figure 1: Example call-flow of STAR delegation in CDNI showing 2 levels of delegation¶
Property: acme-delegations¶
This document requests the registration of the following entries under the "CDNI Payload Types" registry hosted by IANA regarding "CDNI delegation":¶
+-------------------------------+---------------+ | Payload Type | Specification | +-------------------------------+---------------+ | MI.AcmeStarDelegationMethod | RFCthis | +-------------------------------+---------------+ | FCI.SupportedDelegationMethods| RFCthis | +-------------------------------+---------------+ [RFC Editor: Please replace RFCthis with the published RFC number for this document.]¶
Purpose: The purpose of this Payload Type is to distinguish AcmeStarDelegationMethod MI objects (and any associated capability advertisement)¶
Interface: MI¶
Encoding: see Section 5¶
Purpose: The purpose of this Payload Type is to distinguish SupportedDelegationMethods FCI objects (and any associated capability advertisement)¶
Interface: FCI¶
Encoding: see Section 4¶
Extensions proposed here do not alter nor change Security Considerations as outlined in the CDNI Metadata and Footprint and Capabilities RFCs [RFC8006].¶
However there are still some security questions that should be addressed such as: Are there concerns about using this incorrectly or limitations on how this can safely be used?¶
Some privacy questions are still pending: Are there any concerns with sharing the information that is in the metadata? Is the metadata safe to redistribute, or is it something that is only valid between adjacent CDNs?¶