CDNI extensions for HTTPS delegation
Internet-Draft draft-ietf-cdni-interfaces-https-delegation-11
Frederic Fieau, Ed.
Orange
40-48, avenue de la Republique
Chatillon
92320
France
frederic.fieau@orange.com
Emile Stephan
Orange
2, avenue Pierre Marzin
Lannion
22300
France
emile.stephan@orange.com
Sanjay Mishra
Verizon
13100 Columbia Pike
Silver Spring
MD 20904
USA
sanjay.mishra@verizon.com
25 August 2022
ART
CDNI Working Group
CDNI, CDN, CSP, UA, Interconnection, HTTPS, API, TLS, delegation, LURK, private, key, certificate, STAR, OOB, SLC, SubCert, credential, credentials, delegated, metadata, interface, control, triggers
This document defines a new Footprint and Capabilities metadata objects to support HTTPS delegation between two or more interconnected CDNs. Specifically, this document outlines CDNI Metadata interface objects for delegation method as published in the ACME-STAR document [RFC9115].
Introduction
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.
[RFC9115] defines a mechanism where an upstream entity, that is, holder of an X.509 certificate can give a temporary delegated authority, via issuing a certificate to one or more downstream entities for the purposes of delivering content on its behalf. Furthermore, the upstream entity has the ability to extend the duration of the certificate automatically and iteratively until it allows the last renewal to end and therefore terminate the use of the certificate authority to the downstream entity.
More specifically, [RFC9115] defines a process where the upstream Content Delivery Network (uCDN), the holder of the domain, generates on-demand an X.509 certificate for the downstream CDN (dCDN). The certificate generation process ensures that the certified public key corresponds to a private key controlled by the downstream CDN. [RFC9115] follows [RFC8739] for Short-Term, Automatically Renewed Certificate (STAR) in the Automated Certificate Management Environment (ACME).
This document defines CDNI Metadata to make use of HTTPS delegation between an uCDN and a dCDN based on the mechanism specified in [RFC9115]. Furthermore, it includes an addition of a delegation methods to the IANA registry.
Section 2 defines terminology used in this document. Section 3 presents delegation metadata for the FCI interface. Section 4 addresses the metadata for handling HTTPS delegation with the Metadata Interface. Section 5 addresses IANA registry for delegation methods. Section 6 covers the security considerations.
Terminology
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 Footprint and capabilities [RFC8008].
Advertising delegation metadata for CDNI through FCI
The Footprint and Capabilities interface as defined in [RFC8008], allows a dCDN to send a FCI capability type object to a uCDN.
The FCI.Metadata object shall 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.Metadata",
         "capability-value": {
           "metadata": [
                    "AcmeStarDelegationDelegationMethod",
                    "... Other supported delegation methods ..."
           ]
         }
         "footprints": [
           <Footprint objects>
         ]
       }
      ]
     }

ACME Delegation metadata for CDNI
This section defines the AcmeStarDelegationMethod object which describes metadata related to the use of ACME/STAR API presented in [RFC9115]
This allows bootstrapping ACME delegation method between a uCDN and a delegate dCDN.
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             ACME/STAR         ACME/STAR
 |                   proxy                client                 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
- Description: an array of delegation objects associated with the dCDN account on the uCDN ACME server (see Section 2.3.1 of [RFC9115] for the details).
- Type: Objects
- Mandatory-to-Specify: Yes
Below shows both HostMatch and its Metadata related to a host, for example, here is a HostMatch object referencing "video.example.com" and a list of 2 acme-delegation objects.

Following the example above, the metadata is modeled
for ACMEStarDelegationMethod as follows:

  "generic-metadata-type": "MI.AcmeStarDelegationMethod",
  "generic-metadata-value": {
    "acme-delegations": [
      "https://acme.ucdn.example/acme/delegation/ogfr8EcolOT",
      "https://acme.ucdn.example/acme/delegation/wSi5Lbb61E4"
    ]
  }

IANA considerations
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       |
+-------------------------------+---------------+

[RFC Editor: Please replace RFCthis with the published RFC number for
   this document.]

CDNI MI AcmeStarDelegationMethod Payload Type
Purpose: The purpose of this Payload Type is to distinguish AcmeStarDelegationMethod MI objects (and any associated capability advertisement)
Interface: MI
Encoding: see Section 4
Security considerations
Delegation metadata proposed here do not alter nor change Security Considerations as outlined in the following RFCs: An Automatic Certificate Management Environment (ACME) Profile for Generating Delegated Certificates [RFC9115]; the CDNI Metadata [RFC8006] and CDNI Footprint and Capabilities [RFC8008].
The delegation objects properties such as the list of delegation objects mentionned in section 4 are critical. They should be protected by the proper/mandated encryption and authentication. Please refer to [RFC9115], sections 7.1, 7.2 and 7.4.
References
Normative References
Informative References
[RFC9115]
[RFC8739]
[RFC7336]
[RFC7337]
[RFC8006]
[RFC8008]