<?xml version="1.0" encoding="UTF-8"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
  which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
  There has to be one entity for each item to be referenced.
  An alternate method (rfc include) is described in the references. --> 
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2818 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2818.xml">
<!ENTITY RFC5280 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5280.xml">
<!ENTITY RFC7230 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7230.xml">
<!ENTITY RFC3444 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3444.xml">
<!ENTITY RFC3466 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3466.xml">
<!ENTITY RFC5246 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5246.xml">
<!ENTITY RFC6844 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6844.xml">
<!ENTITY RFC5424 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.5424.xml">
<!ENTITY RFC3568 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3568.xml">
<!ENTITY RFC6770 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6770.xml">
<!ENTITY RFC6707 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6707.xml">
<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY RFC6698 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.6698.xml">
<!ENTITY RFC7337 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7337.xml">
<!ENTITY RFC7540 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.7540.xml">
<!ENTITY I-D.barnes-hard-problem SYSTEM 
                     "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.barnes-hard-problem.xml">
<!ENTITY I-D.fieau-lurk-https-delegation SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.cdni-fieau-lurk-https-delegation.xml">
<!ENTITY I-D.thomson-http-scd SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.thomson-http-scd">
<!ENTITY I-D.thomson-http-bc SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.thomson-http-bc">
<!ENTITY I-D.reschke-http-oob-encoding SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.reschke-http-oob-encoding">
<!ENTITY I-D.thomson-http-mice SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.thomson-http-mice">
<!ENTITY I-D.ietf-httpbis-encryption-encoding SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-httpbis-encryption-encoding">
<!ENTITY I-D.rescorla-tls-subcerts SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.rescorla-tls-subcerts">
<!ENTITY I-D.ietf-acme-star SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-acme-star">
<!ENTITY I-D.ietf-acme-caa SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.ietf-acme-caa">
<!ENTITY eacute "&#x00E9;"> 
<!ENTITY acirc "&#x00E2;"> 


]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
  please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
  (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="no" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- Display comments -->
<?rfc comments="no"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<?rfc inline="yes"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
  (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std"
     docName="draft-fieau-cdni-https-delegation-02">
	<!-- category values: std, bCSP, info, exp, and historic
  ipr values: full3667, noModification3667, noDerivatives3667
  you can add the attributes updates="NNNN" and obsoletes="NNNN"
  they will automatically be output with "(if approved)" -->

	<!-- ***** FRONT MATTER ***** -->
	<front>
		<!-- The abbreviated title is used in the page header - it is only necessary if the
  full title is longer than 39 characters -->

		<title abbrev="HTTPS delegation in CDNI">HTTPS delegation in CDNI</title>

		<!-- add 'role="editor"' below for the editors if appropriate -->

		<!-- Another author who claims to be an editor -->

		<author fullname="Frederic Fieau"
		        initials="F.F"
		        surname="Fieau"
				role="editor">
			<organization>Orange</organization>

			<address>
				<postal>
					<street>40-48, avenue de la R&eacute;publique</street>

					<!-- Reorder these if your country does things differently -->

					<city>Ch&acirc;tillon</city>

					<region/>

					<code>92320</code>

					<country>France</country>
										
				</postal>


				<email>frederic.fieau@orange.com</email> 

				<!-- uri and facsimile elements may also be added -->
			</address>
		</author>

		<author fullname="Emile Stephan"
		        initials="E.S"
		        surname="Stephan"
				>
			<organization>Orange</organization>

			<address>
				<postal>
					<street>2, avenue Pierre Marzin</street>

					<!-- Reorder these if your country does things differently -->

					<city>Lannion</city>

					<region/>

					<code>22300</code>

					<country>France</country>
										
				</postal>


				<email>emile.stephan@orange.com</email> 

				<!-- uri and facsimile elements may also be added -->
			</address>
		</author>
		
		<author fullname="Sanjay Mishra"
		        initials="S.M"
		        surname="Mishra"
				>
			<organization>Verizon</organization>

			<address>
				<postal>
					<street>13100 Columbia Pike</street>

					<!-- Reorder these if your country does things differently -->

					<city>Silver Spring</city>

					<region/>
									
					<code>MD 20904</code>

					<country>USA</country>
										
				</postal>


				<email>sanjay.mishra@verizon.com</email> 

				<!-- uri and facsimile elements may also be added -->
			</address>
		</author>		

		<date day="3"
		      month="July"
		      year="2017" />

		<!-- If the month and year are both specified and are the current ones, xml2rfc will fill
  in the current day for you. If only the current year is specified, xml2rfc will fill
  in the current day and month for you. If the year is not the current one, it is
  necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the
      purpose of calculating the expiry date).  With drafts it is normally sufficient to
  specify just the year. -->

		<!-- Meta-data Declarations -->

		<area>ART</area>

		<workgroup>Network Working Group</workgroup>

		<!-- WG name at the upperleft corner of the doc,
  IETF is fine for individual submissions.
  If this element is not present, the default is "Network Working Group",
  which is used by the RFC Editor as a nod to the history of the IETF. -->

		<keyword>CDNI, CDN, CSP, UA, Interconnection, HTTPS, TLS, delegation, LURK, private keys, certificate, OOB, SLC, SubCerts, Credentials, delegated</keyword>

		<!-- Keywords will be incorporated into HTML output
  files in a meta tag but they have no effect on text or nroff
  output. If you submit your draft to the RFC Editor, the
  keywords will be used for the search engine. -->

		<abstract>
			<t>
 This document examines probable solutions for delegating encrypted content delivery within the context of CDN interconnection. The HTTPS delegation also expects delivering content without compromising security, integrity and user privacy.
			</t>
		</abstract>

	</front>

	<middle>
		<section title="Introduction">
			<t>Currently, sixty percent of the HTTP traffic on the internet is encrypted, that is, it is transported over TLS <xref target="RFC5246" />. At the same time, HTTP traffic served by CDNs is on the rise as well. The traffic on CDNs is estimated to raise to seventy-five percent in year 2020 <xref target="ciscotraffic"/>.
			</t>
			<t>
			This document discusses viability of and solution for addressing delegation of HTTP over TLS  <xref target="RFC2818"/> traffic within the context of CDN interconnection.  HTTPS delegation allows delivering party, e.g. a CDN, to deliver content for and on-behalf of an origin server.
			</t><t>
			This draft considers three approaches for delegating HTTPS traffic in a CDNI context. These include Limited Use of Remote Keys (LURK), Out-of-Band, Short-Lived Certificates and Sub-Certificates (or delegated credentials). We examine these approaches focusing on the following three issues:
			</t><t>
			<list style="symbols">
				<t>Modification (or no) changes in the user agent
				</t><t>
				Trust delegation (transitivity, that is, Is a CDN allowed to delegate the trust it received directly from the Origin?)
				</t><t>
				Maintain the user experience (privacy, integrity and performance)</t>
			</list>
			</t>
			<t>
			To recap CDNi goals, the CDNi WG focuses on the relationship between the upstream CDN and the downstream CDN. Therefore, this document examines applicability of HTTPS delegation between two CDNs in response to a UA request while maintaining end-to-end integrity of UA request. 
			</t>
		</section>
		
		<section title="Terminology"><t>
		<list style="symbols">
			<t>UA: User Agent</t>
			<t>CDNI: Content Delivery Network</t>
			<t>SLC: Short-Lived certificates</t>
			<t>LURK: Limited Use of Remote Keys</t>
			<t>dCDN: downstream Content Delivery Network</t>
			<t>uCDN: upstream Content Delivery Network</t>
			<t>CSP: Content Service Provider</t>
			<t>OOB: Out-of-Band</t>
			<t>PKS: Private Key Server</t>
			</list>
			</t>
		</section>
		
		<section title="LURK for CDNI">
		<t>
		<xref target="I-D.cdni-fieau-lurk-https-delegation"/> shows 2 use cases related to CDN interconnection based on LURK <xref target="I-D.mglt-lurk-tls-use-cases"/>: 
		</t>
		<t>
		<list  style="symbols">
		<t>
		uCDN Key Server: uCDN is authoritative on several origin domains. Its key Server hosts certificates and private keys of these origins. An interface between uCDN and dCDN allows dCDN to query credentials per session for these origins. Note that a dCDN is typically connected to several uCDNs.
		</t>
		<t>
		CSP Key Server: a Content Service Provider is authoritative source for origin domains. CSPs key Server hosts certificates and private keys for its domains. An interface between this key Server and the dCDN allows the dCDN to query credentials for a given session for these origins.		
		</t>
		</list></t>
		<section title="uCDN Key Server (CDNI framework)">
		<t>
		dCDNs have an interface to a Key Server hosted at the uCDN side. It may be typically a case of CDNI regional delivery delegation. 
		</t><t>
		When the UA has been redirected from the uCDN to a dCDN,it initiates a TLS connection with a dCDN cache to get its content. Since dCDN cache does not store the private keys for the requested certificate, it queries the uCDN Key Server (KS) to get credentials to establish the TLS session. Once the UA establishes a TLS connections with the dCDN, the dCDN can finally begin to deliver HTTP over TLS content to the UA.
		</t><t>
		This framework makes two assumptions:</t>
		<t>
		<list  style="symbols">
		<t>The UA includes the Origin domain name in the SNI field of the TLS ClientHello to enable a dCDN to select the Key Server of uCDN to generate credentials for the session.</t>
		<t>The uCDN Key Server is provisioned with the certificate and the private key for this Origin domain name.</t>
		</list>
		</t>
		</section>
		
		<section title="CSP Key server">
		<t>In this framework the CSP provides a Key Server for the origin domains it is authoritative for to ensure an end-to-end HTTPS delegation, from the origin to the dCDN which eventually delivers the HTTPS content to the UA. The CSP provides the LURK Key Server and interface.</t><t>
		The CSP delegates the HTTPS content delivery to an uCDN that in turn delegates the HTTPS delivery to a dCDN. The CSP provides the uCDN with a Key Server interface to delegate the content delivery. In that case, the dCDN relies on credentials received from a CSP Key Server (KS) to deliver HTTPS content.</t><t>
		This framework supports 2 options:</t><t><list  style="symbols"><t>
		direct: The dCDN requests directly the CSP key server</t><t>
		cascaded: the dCDN session key requests are relayed by the uCDN to the Key Server</t>
		</list></t>
		</section>
	</section>	
	
	<section title="Out-of-Band for CDNI">
	<t>
	This section presents the usage of HTTP Out-of-Band mechanism <xref target="I-D.reschke-http-oob-encoding"/> to deliver HTTPS content in CDNI.
	</t>
	
	<section title="OOB overview">
	<t>
	Out-of-Band HTTPS content delivery (OOB) relies on the use of the "out-of-band" value in  "Accept-encoding" HTTP header of the request. It indicates that the UA supports downloading the resource from alternative locations than the Origin.  To that purpose, when the out-of-band content encoding is set, the Origin server may respond with a list of caches to fetch the requested resource. </t>
	<figure><preamble>Example:</preamble><artwork type="message/http; msgtype=&#34;request&#34;"><![CDATA[
{sr: [{r:"https://ori/path/content1", r:"https://cdn1/path/content1"}]}
  ]]></artwork></figure>
<figure>
<artwork type="drawing">
<![CDATA[
+----------+             +----------------+             +-------------+
|   UA     |--3) GET --->|     cache      |--4) GET---> |Origin Server|
+----+-----+     content +----------------+     content +----+--------+
     |   ^                                                   |     ^
     |   |---------- 2) 2OO OK, OOB + resource map-----------+     |
     |--------------------- 1) HTTP GET content -------------------+
	 
 Figure 1: OOB general principle
]]>
</artwork>
</figure>	
	<t>
	Out-of-Band framework involves the following functional entities:
	</t>
	<t>Origin server:</t>
	<t><list  style="symbols"><t>
	OOB specifies the first step of the HTTPS delivery delegation: the soft redirection toward alternative locations that Origin trusts in a resource map. </t><t>
	The Origin server receives new HTTP header value "accept-encoding" and responses with a "content-encoding"
	</t></list></t><t>
	UA: </t><t>
	<list  style="symbols"><t>
	must store resource map received from the Origin server</t><t>
	must support new HTTP header "accept-encoding" values to comply with OOB</t>
	</list>
	</t>
	<t>
	Cache server: </t><t><list  style="symbols"><t>
	has standard cache functions, and supports TLS for delivery and content provisioning from origin. </t>
	<t>When the cache receives a request from the UA, it uses the "http referer" of the request to know the origin url from where to pull and store the requested content.</t></list></t>
	</section>
		
	<section title="OOB applied to CDNI">
    <t>In CDNI, uCDN may use OOB to direct a UA to dCDN by indicating a resource map where it can fetch content. In CDNI, an end-to-end delegation allows an origin delegate HTTPS delivery to uCDN which in turns delegates it to dCDN.</t><t>
	For instance, end-to-end delegation may involve cascaded resource maps. The Origin delegates HTTPS delivery to the uCDN using OOB, and uCDN delegates HTTPS delivery to dCDN through OOB. In that case, the UA requests Origin that sends back a resource map pointing at the uCDN. Then UA requests the uCDN which sends back a resource map (OOB) pointing at dCDN hosted resources.</t>
<figure>
<artwork>
<![CDATA[
    User Agent           dCDN    	        uCDN            Origin
        |                  |                  |                |
        | GET http://origin/hash1/content     |                |
        +----------------------------------------------------->|
        | 200 OK + OOB                        |                |
        +<-----------------------------------------------------|
        | GET http://ucdn/hash2/content       |                |
        +------------------------------------>|                |
        |                  200 OK + OOB       |                |
        |<------------------------------------+                |
        |                  |                  |                |
        |GET http://dcdn/hash2/content        |                |
        +----------------->|                  |                |
        |                  | GET http://ucdn/hash2/content     |
        |                  |----------------->|                |
        |                  |  200 OK (encrypted content)       |
        |                  |<-----------------|                |
        |  200 OK (encrypted content)         |                |
        |<-----------------+                  |                |
        |                  |                  |                |
figure 2: OOB with successive resource maps in CDNI
]]>
</artwork>
</figure>	
	
	</section>
	
	</section>
	
	<section title="Sub-certificates and Short-lived Certificates for CDNI">
	<t>
	The need to scale is a central requirement to generalize HTTPS content delivery across CDNs. Both <xref target="I-D.rescorla-tls-subcerts"/> and <xref target="I-D.ietf-acme-star"/> share the same paradigm. They aim to decouple credentials provisioning from content delivery. </t><t>
	The <xref target="I-D.ietf-acme-star"/> cert architecture adds interactions between the CDN and the Origin and between the Origin and the CA which signs the limited authority delegation;</t><t>
	<xref target="I-D.ietf-acme-star"/> certificate implementation do not require modifications in the UA, but requires specific certificate request from CSP to CA and retrieval of certificate by CDN from the CA.
	The <xref target="I-D.rescorla-tls-subcerts"/> proposes an architecture where the TLS server by itself can create a sub-certificate (also referred to as "delegated credentials") based on the original certificate issued to it by the CA. This sub-certificate's scope is only to the credentials issued by the CA corresponding to the original certificate the CA authorized the TLS server. </t><t>
	A possible applicability of this may be where a uCDN may issue "delegated_credentials" to a dCDN for any HTTPS content it delegates to dCDN for delivery.</t><t>
	This new "delegated certificate" will have a validity interval (7 days) along with the public key issued to the Content Service Provider (CSP) or to its surrogate (CDN) by the CA.</t><t>
	The Subcerts require changes to the user agent. The <xref target="I-D.rescorla-tls-subcerts"/> draft proposes User Agent to send an empty "delegated_credential" extension in its ClientHello. The draft also defines a new "DelegationUsage" extension to X.509. Only presence of this this extension shall permit usage of delegated credentials. The draft advises "clients MUST NOT accept delegated credentials associated with certificates without this extension."
	
	The applicability of subcerts in case of CDN would be when a uCDN with a certificate can issue a "delegated credentials" to a dCDN. 
	</t>
	
	<!-- <section title="SubCert Option 1a: Name Constraints">
	<t>
	The proposal outlines an option where a CA can issue subordinate certificate but with a nameConstraints extension with encoded server names the TLS server is authorized for. In this approach, the credentials would just be equivalent of end-entity certificates issued under the subordinate certificate. The use of nameConstraints extension, will only work for clients that indicate its support and will not work for clients that do not support nameConstraints. 
	</t><t>
	Based upon the Name Constraints option, the following two possible use cases can be considered for CDNi:  
	</t><t>
	<list  style="symbols">
	<t>CA issues a subordinate certificate to a CDN on behalf of the Content Service Provider (CSP)</t>
	</list>
	</t>
	<t>
	For a use case when the CSP does not authorizes CDN (uCDN) to request CA on its behalf instead it allows the CDN to request a subordinate certificate on its behalf. In such a case, the CDN (uCDN) can request the CA for a subordinate certificate. Based on this subordinate certificate request, the CA can issue credentials with the nameConstraints extension encoding using the names of servers uCDN would identify in its request to the CA. In this scenario, we assume that CSP and uCDN have a business relationship and an agreement that allows uCDN to request a sub-certificate on behalf of the CSP. However, it is not clear from the <xref target="I-D.rescorla-tls-subcerts"/> draft the scope of request can be cascaded down from one CDN to another CDN, that is, from an uCDN to dCDN. This needs further understanding on scope to request a sub-certificate by one and more dCDN who may or may not have business relationship with the CSP.
	</t>
	<t>
	<list  style="symbols">
	<t>uCDN issues a subordinate certificate to the dCDN</t>
	</list>
	</t>	
	<t>
	When the CSP allows CDN to procure a certificate from the CA on its  behalf,  the uCDN can then issue a subordinate certificate with the nameConstraints extension encoding for the names of server (identified by dCDN to uCDN) in request for any HTTPS content that uCDN shall delegate to dCDN to serve on its behalf. In this scenario we assume that dCDN provides all information regarding servers that will be used for holding content for which uCDN will issue sub-certificates to the dCDN.	
	</t>
	</section>
	
	<section title="SubCert option 1b: End Entities as Issuers">
	<t>In this option, the <xref target="I-D.rescorla-tls-subcerts"/> draft proposes a method where TLS server as an end-entity certificate holder can issue a sub-certificate. This method however requires changes to how the certificates are issued to an end-entity. A mechanism would be needed to enable end-entity issue a sub-certificate. The <xref target="I-D.rescorla-tls-subcerts"/> draft suggests defining a marker value within an end-entity certificate as an indicator that it can issue sub-certificates. The use of marker shall distinguish an existing end-entity certificate holder who should not issue versus holder (uCDN) of an end-entity certificate with a marker that can issue a sub-certificate. Alternatively, the draft also suggests that a marker can even be the fact that an end-entity certificate to not contain KeyEncipherment KeyUsage (Refer to <xref target="RFC5280"/>, section 4.2.1.3). KeyEncipherment bit can be used by older protocols such as SSLv2, therefore, suggestion by authors is that mere absence of this field not only prevents forging of signature but its absence implicitly can also be an indicator and clients can refuse any connections from certificates with with KeyEncipherment KeyUsage field.
	</t>
	<t>
	When applied to CDNi scenario, we consider following two cases:
	</t>
	<t>
	<list  style="symbols">
	<t>CSP as an End-entity Issuer</t>
	</list>
	</t>
	<t>
	In this scenario, CSP does not share private keys and the certificate with the CDN (uCDN), instead the CSP can issues a sub-certificate to the uCDN. It is not clear from the <xref target="I-D.rescorla-tls-subcerts"/>  draft if the scope of request can be cascaded down from one CDN to another CDN, that is, from an uCDN to dCDN. This needs further understanding on scope to request a sub-certificate by one and more dCDN who may or may not have business relationship with the CSP.	
	</t>
	<t>
	<list  style="symbols">
	<t>CDN as an End-entity Issuer</t>
	</list>
	</t>	
	<t>
	In this scenario,  a CSP allows its CDN provider to request on its behalf the private keys and certificate from the CA.  This allows a uCDN as an end-entity certificate holder to issue a sub-certificate for the dCDN. In this case, we assume the dCDN only requires prior business agreements with the uCDN and does not require any business agreements with the CSP.	
	</t>
	</section>
	
	<section title="SubCert option 2: new Structure">
	<t>The <xref target="I-D.rescorla-tls-subcerts"/> draft explores an option to allow creating of new signed objects based on existing X.509 end-entity certificates. The draft requires presence of digitalSignature bit of the KeyUsage (<xref target="RFC5280"/>, section 4.2.1.3) in the certificate to create the new signed object. The drafts states that this approach will require defining a new signed object format with encoding for only the semantics needed for generation of new signed objects.
	</t><t>
	When applied to CDNi scenario, we consider the following two cases:
	</t>
	<t>
	<list  style="symbols">
	<t>CSP Issuing New Signed Object</t>
	</list>
	</t>	
	<t>
	In a scenario when the CSP does not authorize CDN (uCDN) the use of its private keys and certificate, the CSP will need to issue a signed object for use by uCDN. However, given that the uCDN does not hold the original certificate, it may not be able to create another signed object to cascade to a dCDN. Clarification is needed from the <xref target="I-D.rescorla-tls-subcerts"/> authors on any further mechanism to allow support for cascaded issuance of the sub-certs.
	</t>
	<t>
	<list  style="symbols">
	<t>CDN Issuing New Signed Object</t>
	</list>
	</t>	
	<t>
	In scenario the CSP authorizes CDN (uCDN) to request private keys and certificate on its behalf from the CA. In this case, we expect that uCDN can create a new signed object based on X.509 end entity certificates using digitalSignature Key usage (RFC5280 section 4.2.1.3)
	</t>
	</section>
	
	<section title="SubCert option 3: Re-Use of the Master Certificate">
	<t>The <xref target="I-D.rescorla-tls-subcerts"/> draft proposes re-configuring the certificate for use either as an end-entity certificate or to be used for signing sub-certificates. Or, the master certificate can be configured such that it in itself is not directly usable, rather the name-holder to request two certificates. One such certificate can be used for TLS authentication and second for signing credentials.</t><t>
	When applied to CDNi scenario, we consider the following case: </t>
	<t><list  style="symbols"><t>Issuance of Master Certificate to the CDN</t></list></t><t>
	In this scenario, CSP authorizes CDN (uCDN) to request a master certificate. As stated in the <xref target="I-D.rescorla-tls-subcerts"/> draft the master certificate is not directly usable rather the master certificate is issued as the CDN (uCDN) the name-holder. In this scenario, the uCDN can delegate the signed credentials to the dCDN. However, as it is not the intent of <xref target="I-D.rescorla-tls-subcerts"/> to consider CDNi uses, it does not discuss cascaded delegation, therefore, it is not clear if TLS authentication certificate can be conveyed to the dCDN. This will need clarifications from the <xref target="I-D.rescorla-tls-subcerts"/> authors.</t>
	</section> -->
	
	<section title="Short-lived certs use case for CDNI - ACME">
	<t><xref target="I-D.ietf-acme-star"/> specifies mechanisms to allow a third party such as a CDN  to terminate a TLS session on behalf of a content owner (described as domain name owner) The proposal calls for an extension to the ACME protocol to enable the issuance of short term and automatically renewed certificates and a protocol that allows a Domain Name Owner (DNO) to delegate to a third party control over a certificate that bears its own name.</t>
	<t>Compared to per session key exchange, it decouples the credentials provisioning from the content delivery to limit the burden on the CSP side. It limits signaling to periodic short term certificate requests (CSR) sent from the uCDN to the content owner:</t>
	<t><list style="symbols"><t>As a Bootstrap process, the CDN generates a key-pair and wraps it into a Certificate Signing Request (CSR) according to the agreed CSR template and sends a request over the pre-established LURK channel requests to the DNO. The DNO in turn forwards request over an ACME protocol to an ACME CA to create the corresponding short-term and auto-renewed (STAR) certificate;</t>
	<t>The ACME CA posts the certifcate and notifies the DNO and DNO in turn notifies the CDN which downloads the certificate.</t>
	<t>The connection between CDN and the Origin is mutually authenticated. The additional requests are processed as such as:</t>
	</list></t>
	<t>Auto-renewal: the ACME CA periodically re-issues the short-term certificate and posts it to a public URL. The CDN would periodically retrieve the certificate</t>
	<t>Termination: the DNO (indirectly) stops name delegation by explicitly requesting the ACME CA to discontinue the automatic renewal of the certificate.</t>
	<t>CDN and DNO have agreed on a "CSR template" to use, including subject name, Validity, Requested Algorithm, Key length and Key usage.</t>
	<t>The ACME issued CA has a short validity (24 hours to 72 hours).</t>
	<!-- <t>The draft proposes an second architecture where the uCDN requests directly the sub certificate to the CA using the ACME protocol. It relies on the control by the content owner of URI based certificate issuances based on the ACME protocol, using extensions <xref target="I-D.ietf-acme-caa"/> to DNS CAA <xref target="RFC6844"/>.</t> -->
	</section>
	
	</section>
	



	<section title="Discussions">		
	
	<section title="LURK"><t>
	A LURK interface may provide advantages to HTTPS delegation in CDNI such as:</t>
	<t><list  style="symbols"><t>
	The origin of the information can be preserved, provided that DNS is used to redirect a UA from the uCDN to a dCDN</t><t>
	It mitigates the risks of CSP private keys leak by centralizing them.</t><t>
	It doesn't impact the UA nor TLS stack</t><t>
	Revocation of delegation may be straightforward by denying any access to private key server</t>
	</list></t>
	<t>However, preserving UX performances cannot be guaranteed as additional RTT are needed to fetch the needed session credentials from the Key Server. </t>
	</section>

	<section title="OOB">
	<t>OOB may provide advantages to HTTPS delegation in CDNI such as:</t><t><list  style="symbols">
	<t>CDNs can be agnostic of the cached contents; contents can actually remain encrypted on the cache when HTTP encryption encoding <xref target="I-D.ietf-httpbis-encryption-encoding"/> is used, which can be valuable for the Content owner/provider.</t>
	<t>Origin URL stays unchanged in the address bar. So that Origin of information is preserved.</t>
	</list></t><t>However, the use of OOB to ensure HTTPS delegation in CDNI should be clarified in many cases:
	</t><t><list  style="symbols">
	<t>Origin issue: how to preserve Origin in case of OOB chaining in CDNI?</t>
	<t>How to improve OOB performance in E2E delegation, i.e., from the Origin to dCDN, within a single OOB resource map received by the UA? </t>
	<t>OOB for ensuring E2E delegation would raise delegation issues in certain cases:</t>
	</list></t><t>
	1.	For instance, an E2E delegation using OOB with DNS redirect would raise a delegation issue where the requested domain doesn't match the URI which may trigger a warning on the UA. As such, delegation is not solved (HARD problem).</t><t>
	The Origin delegates the delivery to uCDN with OOB, next the uCDN delegates HTTPS delivery to a dCDN using DNS.In that case, the UA requests origin that sends back a resource map pointing at uCDN, UA DNS then queries uCDN.com which is resolved to a dCDN server IP, the UA requests contents on dCDN server</t><t>
	2.	In another example, an E2E delegation using 302 redirect first and OOB next, would raise a delegation issue where the origin of information is the uCDN, not the Origin.</t><t>
	The Origin delegates HTTPS delivery to uCDN through a 302 redirect, next uCDN delegates HTTPS delivery to dCDN using OOB. In that case, the UA requests Origin who redirects it to the uCDN using 302 HTTP, then UA requests the uCDN which answers OOB content pointing at dCDN, then UA requests content on dCDN.
	</t>
	<t>Finally, some clarifications about OOB draft are needed: </t><t><list  style="symbols"><t>
	How to avoid circular redirection</t><t>
	Does the UA insert the out-of-band header in any request?</t><t>
	Does the UA insert the out-of-band header when it requests a resource it selected in a resource map it received in an "out-of-band" response received from the origin?</t>
	</list></t>
	</section>
 
	<section title="Subcerts and SLC">
	<t> 
	The motivation of <xref target="I-D.rescorla-tls-subcerts"/> draft is to remove dependency between the Origin Server or its surrogates and the CA specifically for enabling the ability to issue credentials (sub-certificates) under the authority of its own certificate and importantly, manage lifetime of the certificates and also have the ability to support any new cryptographic algorithms. The intent for the authors is to give Origin Servers (or their surrogates) operational independence when needing to either limit the life of a certificate or when needing to issue a sub-certificate with limited life. This process may be expeditious over needing to work with the CA for either of the aforementioned changes while still preserving the security and integrity of the content and communications between the origin server or it's and surrogate and the client. </t><t>
	The <xref target="I-D.rescorla-tls-subcerts"/> draft explores several options to allow origin server or its surrogate with capabilities to issue a sub-certificate or delegated credentials with limited authority. The draft also provides for ways where a client controls issuance of sub-certificates. This control can be exerted by the clients by use of an optional "delegated_credential" extension field in the clientHello. The draft also calls out rules for its use, such as, a server cannot unilaterally send this extension but that it can only send credentials when presented by the clientHello message. The draft also defines "DelegationUsage" extension to X.509 that determines use of delegated credentials.</t><t>
	However, as noted in sub-sections, 5.2, the applicability of this draft may be limited in cascaded delegation that is from an up stream CDN to the downstream CDN. Further clarity may be required from the <xref target="I-D.rescorla-tls-subcerts"/> draft authors on ability to cascade sub-certificates.  </t><t>
	The <xref target="I-D.ietf-acme-star"/> and the <xref target="I-D.rescorla-tls-subcerts"/> propose approaches where a TLS server, i.e., a uCDN issue certificates or a sub-certificate with limited authority and time without having to share a private key. The approaches avoid any additional infrastructure cost and potential for scaling up the solution.
	One of the key drawbacks with either approach is additional changes required such as uCDN with content owner and CA for <xref target="I-D.ietf-acme-star"/>. Additionally, a short-lived certificate creation system must be fully automated, as manual renewal of certificates every few days is not practical. An automated system requires require business relations and agreement between the SP and CDN, and an initial setup.  In case of <xref target="I-D.rescorla-tls-subcerts"/>, the proposal requires changes to TLS handshake where the client provides an extension in its ClientHello that indicates support for this mechanism. 
	</t>
	</section>

	<section title="HTTPS delegation requirements">
	<t>Generic HTTPS delegations requirements that should be discussed:</t><t><list  style="symbols">
	<t>No changes in the client: delegation doesn't impact code on UA side.</t>
	<t>No (or few) impacts on the CSP side: e.g. the load of signaling introduced by the solution should be limited on CSP side</t>
	<t>Preserves the Origin of information: e.g., Origin URL in address bar is preserved.</t>
	</list>
	</t>
	</section>


	<section title="Implementation status">
	<t>At the time being, LURK, OOB and subcerts are in early stage. Currently SLC and subcerts are not available and need to be clarified. However some prototypes already exists for OOB <xref target="EricssonOOB"/>.</t>
	</section>

	<section title="E2E HTTPS delegation for CDNs">
	<t>
	In order to ensure an end-to-end delegation from the Origin to dCDN, a CDNI HTTPS delegation solution may combine several options described in this document.</t><t><list  style="symbols"><t>
	LURK can allow the preservation of Origin of information, and mitigates the risk of private CSP keys leakage. Regarding performance, requesting a key server can lead to an increase in Time To Service (Time to First Page) for UA but does not impact downloading performances.</t><t>
	OOB allows preserving origin URL while avoiding spreading of private keys on CDN caches, but impacts UA. As far performance is concerned, downloading successive resource maps and direct to the requested resource can increase Time To Service (Time to First Page), but still it does not impact content delivery performance.</t><t>
	SubCerts: The motivation for sub-certificate (delegated_credential) is to give an option to certificate holder to create a sub-certificate and sign the credentials. The sub-certificate shall have a validity interval with limited scope. On top, the server cannot unilateral present a sub-certificate to the client, instead, client will indicate to the user in clientHello that it will support delegated credentials. The solution obviously requires changes in the client and additional changes to the issuance of certificate. Based upon the draft, it is not clear whether sub-certificates can be cascaded (as noted in section 5.1), that is, once a sub-certificate is issued to an entity and whether it can further use mechanism to issue a sub-certificate to the downstream CDN. </t>
	</list></t><t>
	Currently, no single solution fits the cascaded CDNs approach alone. As such, these solutions could be complementary to allow an end-to-end delegation in CDNI. However, the work on these drafts are in progress or in early stages and needs further work to provide an end-to-end solution.</t>
	</section>
		
		
		
	</section>
	
		
		

		<section title="IANA Considerations">
			<t>This document has no IANA considerations.</t>
		</section>

		<section title="Security Considerations">
			<t>The entire document is about security.</t>
		</section>


	</middle>
	<!--  *****BACK MATTER ***** -->

	<back>
		<!-- References split into informative and normative -->

		<!-- There are 2 ways to insert reference entries from the citation libraries:
     1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
     2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
        (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

     Both are cited textually in the same manner: by using xref elements.
     If you use the PI option, xml2rfc will, by default, try to find included files in the same
     directory as the including file. You can also define the XML_LIBRARY environment variable
     with a value containing a set of directories to search.  These can be either in the local
     filing system or remote ones accessed by http (http://domain/dir/... ).-->



		<references title="Normative References">
			<!--?rfc include="http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml"?-->
			<!--&RFC2119;
	     
		  &RFC2629;-->
			<!--&RFC3568;-->
			<!-- &RFC6698; DANE-->			
			&RFC2818; 
			&RFC5246;
			&RFC5280;
			<!--&RFC6770;-->
			&RFC6844;
			<!--&RFC7230;-->
			<!--&RFC7337;-->			
			<!--&RFC7540;-->
		</references>

		<references title="Informative References">
			<!-- Here we use entities that we defined at the beginning. -->			
				
			<!--&I-D.thomson-http-scd;-->
			&I-D.ietf-acme-caa;
			<!--<?rfc include="reference.I-D.thomson-http-bc"?>-->
			<?rfc include="reference.I-D.reschke-http-oob-encoding"?>
			<!--<?rfc include="reference.I-D.thomson-http-mice"?>-->
			<?rfc include="reference.I-D.ietf-httpbis-encryption-encoding"?>
			<?rfc include="reference.I-D.rescorla-tls-subcerts"?>
			&I-D.ietf-acme-star;			

						
			<!--<?rfc include="reference.I-D.ietf-cdni-redirection.xml"?>-->
			<?rfc include="reference.I-D.cdni-fieau-lurk-https-delegation"?>
			
			<?rfc include="reference.I-D.mglt-lurk-tls-use-cases.xml"?>



			<!-- references to add		
				   [HTTPS-CDN] J. Liang, J. Jiang, H. Duan, K. Li, T. Wan, and J. Wu,
		   "When HTTPS Meets CDN: A Case of Authentication in Delegated
		   Service," in 2014 IEEE Symposium on Security and Privacy (SP), 2014,
		   pp. 67-82.

		   [SSL-Challenges] J. Clark and P. C. van Oorschot, "SoK: SSL and
		   HTTPS: Revisiting Past Challenges and Evaluating Certificate Trust
		   Model Enhancements," in 2013 IEEE Symposium on Security and Privacy
		   (SP), 2013, pp. 511-525.
		   
	



			<reference anchor="LURK_Mailing_List"
			           target="https://mailarchive.ietf.org/arch/search/?email_list=lurk">
				<front>
					<title>LURK Mailing List</title>

					<author fullname="">
						<organization/>
					</author>

					<date year=""/>
				</front>
			</reference>
	   -->
	   
		
	   		<reference anchor="ciscotraffic"
			           target="http://www.cisco.com/c/en/us/solutions/collateral/service-provider/visual-networking-index-vni/vni-hyperconnectivity-wp.html]">
				<front>
					<title>The Zettabyte Era—Trends and Analysis</title>

					<author fullname="Cisco">
						<organization />
					</author>

					<date year="2016"/>
				</front>
			</reference>
			
			

			<reference anchor="EricssonOOB"
			           target="https://github.com/EricssonResearch/Blind-Cache-Drafts">
				<front>
					<title>Ericsson BC drafts</title>

					<author fullname="Ericsson">
						<organization />
					</author>

					<date year="2016"/>
				</front>
			</reference>
		</references>
		
		
		

		<!-- Change Log

v00 2006-03-15  EBD   Initial version

v01 2006-04-03  EBD   Moved PI location back to position 1 -
                      v3.1 of XMLmind is better with them at this location.
v02 2007-03-07  AH    removed extraneous nested_list attribute,
                      other minor corrections
v03 2007-03-09  EBD   Added comments on null IANA sections and fixed heading capitalization.
                      Modified comments around figure to reflect non-implementation of
                      figure indent control.  Put in reference using anchor="DOMINATION".
                      Fixed up the date specification comments to reflect current truth.
v04 2007-03-09 AH     Major changes: shortened discussion of PIs,
                      added discussion of rfc include.
v05 2007-03-10 EBD    Added preamble to C program example to tell about ABNF and alternative 
                      images. Removed meta-characters from comments (causes
                      problems).
    2015-04-17 AR     updated ipr attribute.  -->
	</back>


</rfc>