Network Working Group | F. Fieau, Ed. |
Internet-Draft | E. Stephan |
Intended status: Standards Track | Orange |
Expires: May 3, 2018 | S. Mishra |
Verizon | |
October 30, 2017 |
CDNI extensions for HTTPS delegation
draft-fieau-cdni-interfaces-https-delegation-02
The delivery of content over HTTPS involving multiple CDNs raises credential management issues. This document proposes extensions in CDNI Control and Metadata interfaces to setup HTTPS delegation from a uCDN to a dCDN.
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 May 3, 2018.
Copyright (c) 2017 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 Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
Content delivery over HTTPS using one or more CDNs along the path requires credential management. This is specifically needed when an entity delegates delivery of encrypted content to another trusted entity.
Several delegation methods are currently proposed within different IETF working groups (refer to [I-D.fieau-cdni-https-delegation] for an overview of delegation works ongoing at the IETF). They specify different methods for provisioning HTTPS delivery credentials.
This document proposes an extension to the CDNI control / Triggers and Metadata interfaces to setup HTTPS delegation between an uCDN and dCDN. Furthermore, it includes a proposal of registry to enable the adding of new methods in the future.
Section 2 is about terminology used in this document. Section 3 presents delegation methods specified at the IETF. Section 4 introduces delegation metadata in CDNI. Section 5 addresses the delegation methods objects. Section 6 describes simple data types. Section 7 is about an IANA registry for delegation methods. Section 8 raises the security issues.
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], CDNI Control interface / Triggers [RFC8007] and Logging interface [RFC7937].
A few methods are currently being proposed at the IETF to handle delegation of HTTPS delivery between entities, refer to [I-D.fieau-cdni-https-delegation].
Regading the existing delegation methods, we need a common framework in CDNI that provides new requirements on the CDNI interfaces.
This document considers the following methods supporting HTTPS delegation. It may be used between two or more CDNs with applicable interface support following the CDNI framework, such as the CI/Triggers and Metadata Interface:
- Sub-certificates [I-D.rescorla-tls-subcerts]
- Short-term certificates in ACME using STAR API [I-D.ietf-acme-star]
Two metadata models for enforcing delegation in CDNI between two entities are suggested in this document:
- New standalone object: SecureDelegation
- Extension to current CDNI metadata model
This section presents an alternative to the approach presented in section 5.1. The section proposes to specify a new metadata object, SecureDelegation, dedicated to provide delegation information between two entities. It aims at fully describing a secured delegation between an uCDN and dCDN by indicating the delegated domain, the start and end duration of a delegation, and the delegation method used.
property: delegateddomains
property: pathpatterns
property: timewindow
Property: supporteddelegationmethods
As an example: a SecureDelegation object (which contains a TimeWindow, SupportedDelegationMethods and a HostMatch metadata) that only allows the dCDN to deliver content to clients between 09:00 01/01/2000 UTC and 17:00 01/01/2000 UTC:
SecureDelegation object: { "generic-metadata-type": "MI.SecureDelegation", "generic-metadata-value": { “timewindow”: {start: 946717200, end: 946746000}, “supporteddelegationmethods”: [“MI.AcmeStarDelegationMethod”, “MI.SubcertsDelegationMethod”], “pathpatterns”: [{ "pattern": "/movies/*", "case-sensitive": true }], ”delegatedDomains": [“www.origin.com”] } }
Such an object shall be conveyed over the CDNI metadata interface.
This approach consists of reusing the current metadata model by adding delegation information, like the aforementioned "supportedDelegationMethod" property.
Example:
As an example, the PathMatch object can reference a path-metadata that would point at the delegation information. Delegation metadata are added to PathMetaData object.
PathMatch: { "path-pattern": { "pattern": "/movies/*", "case-sensitive": true }, "path-metadata": { "type": "MI.PathMetadata", "href": "https://metadata.ucdn.example/video.example.com/movies" } } PathMetaData Object related to /movie/* PathMetadata: { "metadata": [ { "generic-metadata-type": "MI.TimeWindowACL", "generic-metadata-value": { "times": [ "windows": [ { "start": "1213948800", "end": "1478047392" } ], "action": "allow", }}, { "generic-metadata-type": "MI.SecureDelegation" "generic-metadata-type": { "supporteddelegationmethods ": [“MI.AcmeStarDelegationMethod”], } } ] }
The existence of the "MI.SecureDelegation" object in a PathMetaData Object shall enable the use of one of the supported Methods, chosen by the delegate. See next section for more details about delegation methods metadata specification.
This section defines the delegation methods objects metadata. Each object of the section consists in defining metadata related to the following steps:
This section defines the AcmeStarDelegationMethod object which describes metadata related to the use of Acme Star API presented in [I-D.ietf-acme-star]
As expressed in [I-D.ietf-acme-star] and [I-D.nir-saag-star], 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-time certificate bound to the master certificate.
Property: starproxy
Property: acmeserver
Property: credentialslocationuri
Property: periodicity
As an example, AcmeStarDelegationMethod object could express the Acme-Star-delegation as the following:
AcmeStarDelegationMethod: { "generic-metadata-type": "MI.AcmeStarDelegationMethod", "generic-metadata-value": { “starproxy”: “10.2.2.2”, “acmeserver”: “10.2.3.3”, "credentialslocationuri": “www.ucdn.com/credentials”, "periodicity": 36000 } }
This section defines the SubcertsDelegationMethod object which describes metadata related to the use of Subcerts as presented in [I-D.rescorla-tls-subcerts]
As expressed in [I-D.rescorla-tls-subcerts], when an origin has set a delegation to a specific domain (i.e. dCDN), the dCDN should present the Origin or uCDN certificate or "delegated_credential" during the TLS handshake to the end-user client application, instead of its own certificate.
Property: credentialsdelegatingentity
Property: credentialrecipiententity
Property: credentialslocationuri
Property: periodicity
As an example, AcmeStarDelegationMethod object could express the Acme-Star-delegation as the following:
SubcertsDelegationMethod: { "generic-metadata-type": "MI.SubcertsDelegationMethod", "generic-metadata-value": { "credentialsdelegatingentity": “10.2.2.2”, “credentialsrecepiententity”: “10.2.3.3”, "credentialslocationuri": “www.ucdn.com/credentials”, "periodicity": 36000 } }
This section describes the simple data types that are used for properties for objects in this document.
A time value expressed in seconds to indicate a periodicity.
Type: Integer
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.SecureDelegation | TBD | | MI.AcmeStarDelegationMethod| TBD | | MI.SubCertDelegationMethod | TBD | | ... | | +----------------------------+---------------+
Purpose: The purpose of this Payload Type is to distinguish SecureDelegation MI objects (and any associated capability advertisement)
Interface: MI/FCI
Encoding: see Section 5.1
Purpose: The purpose of this Payload Type is to distinguish AcmeStarDelegationMethod MI objects (and any associated capability advertisement)
Interface: MI/FCI
Encoding: see Section 5.1
Purpose: The purpose of this Payload Type is to distinguish SubcertsDelegationMethod MI objects (and any associated capability advertisement)
Interface: MI/FCI
Encoding: see Section 5.2
Extensions proposed here do not change Security Considerations as outlined in the CDNI Metadata and Footprint and Capabilities RFCs [RFC8006].
[I-D.fieau-cdni-https-delegation] | Fieau, F., Emile, S. and S. Mishra, "HTTPS delegation in CDNI", Internet-Draft draft-fieau-cdni-https-delegation-02, July 2017. |
[I-D.ietf-acme-star] | Sheffer, Y., Lopez, D., Dios, O., Pastor, A. and T. Fossati, "Use of Short-Term, Automatically-Renewed (STAR) Certificates to Delegate Authority over Web Sites", Internet-Draft draft-ietf-acme-star-00, June 2017. |
[I-D.mglt-lurk-tls] | Migault, D., "LURK Protocol for TLS/DTLS1.2 version 1.0", Internet-Draft draft-mglt-lurk-tls-01, March 2017. |
[I-D.nir-saag-star] | Nir, Y., Fossati, T. and Y. Sheffer, "Considerations For Using Short Term Certificates", Internet-Draft draft-nir-saag-star-00, October 2017. |
[I-D.reschke-http-oob-encoding] | Reschke, J. and S. Loreto, "'Out-Of-Band' Content Coding for HTTP", Internet-Draft draft-reschke-http-oob-encoding-12, June 2017. |
[I-D.rescorla-tls-subcerts] | Barnes, R., Iyengar, S., Sullivan, N. and E. Rescorla, "Delegated Credentials for TLS", Internet-Draft draft-rescorla-tls-subcerts-02, October 2017. |