RFC 9677: Content Delivery Network Interconnection (CDNI) Metadata for Delegated Credentials
- F. Fieau,
- E. Stephan,
- G. Bichot,
- C. Neumann
Abstract
The delivery of content over HTTPS involving multiple Content Delivery Networks (CDNs) raises credential management issues. This document defines metadata in the Content Delivery Network Interconnection (CDNI) Control and Metadata interface to set up HTTPS delegation using delegated credentials from an upstream CDN (uCDN) to a downstream CDN (dCDN).¶
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://
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://
1. Introduction
Content delivery over HTTPS utilizing one or more Content Delivery Networks (CDNs) along the delivery path necessitates the management of credentials. This requirement is particularly pertinent when an entity delegates the delivery of content via HTTPS to another trusted entity.¶
This document specifies the CDNI Metadata interface for establishing HTTPS delegation through the use of delegated credentials, as defined in [RFC9345], between an upstream CDN (uCDN) and a downstream CDN (dCDN).¶
2. Terminology
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.¶
This document uses terminology from the CDNI specifications -- CDNI framework [RFC7336], CDNI requirements [RFC7337], and CDNI Metadata interface [RFC8006].¶
3. CDNI Footprint and Capabilities Advertisement Interface (FCI) Capabilities Object for Delegated Credentials
A dCDN should advertise its supported delegation methods using the
Footprint and Capabilities Advertisement interface (FCI) as defined in [RFC8008].
The FCI.Metadata object enables a dCDN to communicate its capabilities and the Metadata interface (MI) objects it supports.
To indicate support for delegated credentials, the dCDN should announce the support for MI
This document also defines an object that informs the uCDN of the number of delegated credentials supported by the dCDN,
enabling the uCDN to supply the appropriate number of delegated credentials. To this end, the FCI object, FCI
3.1. FCI.DelegatedCredentials
The FCI
The property Private
- Property:
- number
-delegated -certs -supported¶ - Description:
- Number of delegated credentials supported by the dCDN.¶
- Type:
- integer¶
- Mandatory
-to -Specify : - Yes¶
- Property:
- Private
Key Encryption Key¶ - Description:
- Public key in JSON Web Key (JWK) format [RFC7517] of the dCDN to be used by the uCDN to encrypt private keys.¶
- Type:
- string¶
- Mandatory
-to -Specify : - No¶
The following is an example of the FCI
3.2. Expected Usage of the Property Number of Supported Delegated Credentials
The dCDN uses the FCI
When the uCDN receives the FCI
The FCI
4. CDNI Metadata Interface (MI) Metadata Object for Delegated Credentials
As expressed in [RFC9345], when an uCDN has delegated to a dCDN, the dCDN presents the
"delegated
This section defines the MI
The properties of the MI
- Property:
- delegated
-credentials¶ - Description:
- Array of delegated credentials¶
- Type:
- Array of Delegated
Credential Object objects¶ - Mandatory
-to -Specify : - Yes¶
The Delegated
- Property:
- delegated
-credential¶ - Description:
- Base64-encoded (as defined in Section 4 of [RFC4648]) version of a Certificate
Entry as defined in Section 4.4.2 of [RFC8446]. The Certificate Entry MUST contain a Delegated Credential structure (as defined in [RFC9345]) using the extension in the Certificate Entry of its end-entity certificate (see Section 4.1.1 of [RFC9345]).¶ - Type:
- string¶
- Mandatory
-to -Specify : - Yes¶
- Property:
- private-key¶
- Description:
- Encrypted private key corresponding to the public key contained in the Delegated
Credential . The envelope format for this property is JSON Web Encryption (JWE) [RFC7516] using the base64 compact serialization (Section 7.1 of [RFC7516]).¶ - Type:
- string¶
- Mandatory
-to -Specify : - No¶
The private-key property is not mandatory. If not specified, it is assumed that the dCDN generated the public-private key pair for the delegated credential itself and provided the public key information with an out-of-band mechanism to the uCDN. See Section 7 for constraints regarding the usage of the private key.¶
If the private-key property is used, the transported private key MUST be encrypted using the Private
Below, please see an example of an MI
5. Delegated Credentials Call Flow
An example call-flow using delegated credentials is depicted in Figure 1. The steps are as follows.¶
6. IANA Considerations
IANA has registered the following payload types in the "CDNI Payload Types" registry in the "Content Delivery Network Interconnection (CDNI) Parameters" registry group.¶
Sections 6.1 and 6.2 provide additional necessary information for the registration of those CDNI payload types (see Section 2.2 of [RFC7736]).¶
6.2. CDNI FCI.DelegatedCredentials Payload Type
- Purpose:
- The purpose of this payload type is to advertise the number of delegated credentials needed (and any associated capability advertisement).¶
- Interface:
- FCI¶
- Encoding:
- See Section 3.1.¶
7. Security Considerations
The extensions defined enable providing delegated credentials to dCDNs. A delegated credential can only be used by a dCDN if it is in possession of the associated private key. Similarly, an attacker requires access to the private key in order to exploit a delegated credential and impersonate dCDN nodes. Thus, leakage of only the delegated credential without the private key represents a limited security risk.¶
Delegated credentials and associated private keys are short-lived (per default, the maximum validity period is set to 7 days in [RFC9345]) and as such a single leaked delegated credential with its private key represents a limited security risk. Still, it is NOT RECOMMENDED to send private keys through the MI. Omitting the private key further limits the possible ways an attacker could exploits the delegated credential.¶
If this recommendation is not followed, i.e., the private key is communicated via the MI, the transported private key MUST be encrypted within a JWE envelope using the encryption key
It is also important to ensure that an attacker is not able to systematically retrieve a consecutive or consistent set of delegated credentials and associated private keys.
Such an attack would allow the attacker to systematically impersonate dCDN nodes.
The MI objects defined in the present document are transferred via the interfaces defined in CDNI [RFC8006].
[RFC8006] describes how to secure these interfaces, protecting the integrity and confidentiality
8. Privacy Considerations
The FCI and MI objects and the information defined in the present document do not contain any personally identifiable information (PII). As such, this document does not change or alter the confidentiality and privacy considerations outlined in Section 8.2 of [RFC8006] and Section 7 of [RFC8008].¶
A single or systematic retrieval of delegated credentials and associated private keys would allow the attacker to decrypt any data sent by the end user intended for the end service, which may include PII.¶
9. References
9.1. Normative References
- [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10
.17487 , , <https:///RFC2119 www >..rfc -editor .org /info /rfc2119 - [RFC4648]
-
Josefsson, S., "The Base16, Base32, and Base64 Data Encodings", RFC 4648, DOI 10
.17487 , , <https:///RFC4648 www >..rfc -editor .org /info /rfc4648 - [RFC7516]
-
Jones, M. and J. Hildebrand, "JSON Web Encryption (JWE)", RFC 7516, DOI 10
.17487 , , <https:///RFC7516 www >..rfc -editor .org /info /rfc7516 - [RFC7517]
-
Jones, M., "JSON Web Key (JWK)", RFC 7517, DOI 10
.17487 , , <https:///RFC7517 www >..rfc -editor .org /info /rfc7517 - [RFC8006]
-
Niven-Jenkins, B., Murray, R., Caulfield, M., and K. Ma, "Content Delivery Network Interconnection (CDNI) Metadata", RFC 8006, DOI 10
.17487 , , <https:///RFC8006 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 , , <https:///RFC8008 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 , , <https:///RFC8174 www >..rfc -editor .org /info /rfc8174 - [RFC8446]
-
Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10
.17487 , , <https:///RFC8446 www >..rfc -editor .org /info /rfc8446 - [RFC9345]
-
Barnes, R., Iyengar, S., Sullivan, N., and E. Rescorla, "Delegated Credentials for TLS and DTLS", RFC 9345, DOI 10
.17487 , , <https:///RFC9345 www >..rfc -editor .org /info /rfc9345
9.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 , , <https:///RFC7336 www >..rfc -editor .org /info /rfc7336 - [RFC7337]
-
Leung, K., Ed. and Y. Lee, Ed., "Content Distribution Network Interconnection (CDNI) Requirements", RFC 7337, DOI 10
.17487 , , <https:///RFC7337 www >..rfc -editor .org /info /rfc7337 - [RFC7736]
-
Ma, K., "Content Delivery Network Interconnection (CDNI) Media Type Registration", RFC 7736, DOI 10
.17487 , , <https:///RFC7736 www >..rfc -editor .org /info /rfc7736