Internet DRAFT - draft-slovetskiy-cdni-https-delegation-approaches

draft-slovetskiy-cdni-https-delegation-approaches







CDNI Working Group                                         S. Slovetskiy
Internet-Draft                                                  Ericsson
Intended status: Informational                             July 06, 2015
Expires: January 7, 2016


     Approaches to HTTPS-based Request Routing and Delegation
       draft-slovetskiy-cdni-https-delegation-approaches-00

Abstract

This document provides a basic non exhaustive background and discusses
potential approaches to the issue of correct delegation of the encrypted
(TLS-based) traffic requests between CDNs in inter CDN networks and
during interactions between client UAs, CSPs, and CDNs.

Status of This Memo

   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 http://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 January 4, 2016.

Copyright Notice

   Copyright (c) 2015 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
   (http://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.

Table of Contents

   1.  Introduction
   2.  The Use Case
   3.  Problem Scope
   4.  Solution Approaches
     4.1.  HTTPS-based Redirection
     4.2.  Relation to CDNI URI Signing
     4.3.  DNS-based Redirection
   5.  Conclusion
   6.  IANA Considerations
   7.  Security Considerations
   8.  Acknowledgements
   9. Informative References
   Authors' Addresses

1.  Introduction

   The potential issue of handling the delegation of encrypted traffic
   between interconnected CDNs has been recently raised at IETF92 CDNI
   meeting in Dallas, see [HTTPS-delegation].

   Brief survey indicates that there is a multitude of ad hoc approaches
   for handling TLS-based traffic in CDN environment. However, many of
   the currently adopted practices seem to have problems of various
   nature, inhibiting and compromising security, scalability, and ease
   of operation and maintenance (see e.g. [HTTPS-CDN] and
   [SSL-Challenges]).

   The nature of the problems is in the end-to-end nature of the
   HTTPs/TLS and the fundamentally 3-party nature of interactions
   between clients, origins, and CDN nodes, where there is a need for
   the origin to delegate content delivery and trust to CDN network and
   assure this trust to a user (client).

   This document is intended as a starting point for discussion. The
   focus is on the Application Layer level request redirects, whereas
   other methods are acknowledged.

2.  The Use Case

   This section discusses the Use Case and provides some relevant
   background information.

   The Use Case is a typical CDN Request-Routing, but now with all
   connections encrypted over TLS. The user (UA) initiates a request to
   the origin server (CSP) for a specific content item, whereas the
   origin CSP subsequently redirects the user UA to a target CDN
   surrogate content server, therefore delegating the content delivery
   to a 3-rd party - CDN.

   There are multiple Request-Routing mechanisms used in practice, many
   of which are introduced in [RFC3568].

   Most popular can be loosely classified as follows:

   - DNS-based redirection
   - HTTP-based redirection
   - URI rewriting

   Out of those three, both HTTP redirection and URL rewriting seem to
   be able to handle the request redirections over TLS transparently and
   without side effects to the user, whereas DNS-based redirects may
   have certificate validation problems. Even if no security warning has
   been issued to the user, there still may be cases when the
   communication has not been properly secured, see e.g. illuminating
   survey and categorization of security issues with HTTPS in
   [SSL-Challenges]. We also gratefully acknowledge a recent survey of
   the problem and current practices, which has been done in
   [HTTPS-CDN]. In many places we follow the logic and reiterate some
   conclusions.

3.  Problem Scope

   When using TLS as an underlying security and encryption mechanism,
   the end-to-end nature of TLS is enforced, involving two parties in
   the secure communication. Involving CDN brings a third party in the
   secure communication process, for which TLS, generally speaking, has
   not been designed.

   In the case of DNS-based redirection, the actual redirect happens
   before the establishment of the TLS tunnel. The problem is that the
   user UA expects the origin CSP's certificate, but instead obtains the
   target CDN surrogate's certificate during the TLS handshake. Mismatch
   between the expected origin CSP URI and the received target CDN URI
   designated in the obtained certificate causes certificate validation
   warnings at the UA. Eventually a client UA displays a warning to the
   end user requiring additional steps, which compromises user
   satisfaction.

   In the case of the HTTP-based redirection, TLS set-up happens before
   the first HTTP request is sent, therefore, the subsequent traffic
   including request URI and query parameters will be encrypted, making
   it impossible to signal UA intent to the CSP before the establishment
   of the TLS tunnel. Therefore, CSP's server would be unable to do any
   preliminary analysis of the request before the completion of the TLS
   tunnel setup.

   Generally speaking, the HTTP-based redirection should not raise any
   warnings for the user. First, the TLS session is established between
   the UA and the origin CSP, authenticating the CSP. Then, the CSP uses
   HTTP mechanisms for redirection, (usually 3xx messages, e.g. 302
   Found) embedding the new target URI (for CDN surrogate) in the
   Location header. UA then sets up a separate TLS session with the CDN
   surrogate, validating the CDN certificate. Trust relationship is
   implied since the redirection message has been received over the
   authenticated TLS tunnel with the origin CSP. However, essentially
   two independent TLS sessions will have to be setup in sequence by the
   UA, the only trust delegation endorsement, tying two sessions
   together being the fact that the target URI has been communicated in
   the redirection message by the authenticated origin CSP over the
   encrypted tunnel.

   However, a user could possibly benefit from a stronger explicit
   mechanism enforcing the redirection and informing end-users of the
   trust delegation.

   The Use Case then becomes as follows: during the redirection over
   TLS, the origin CSP provides a secure mechanism to bind the CSP
   certificate with a target CDN surrogate certificate. Having
   independently obtained the target CDN surrogate certificate during
   the TLS handshake with the surrogate CDN, a UA would then be capable
   of ensuring (validating) that the redirection is correct and
   explicitly endorsed by the CSP.

   Note that the use case may be extended further to a cascading
   network of CDNs as defined in CDNI. Additionally, the
   [ID.leung-cdni-uri-signing] draft defines a mechanism to ensure
   authenticity of the request redirected from the origin CSP.

4. Solution Approaches

   This section outlines some approaches to possible solutions.

4.1.  HTTPS-based Redirection

   The following figure (using the notation from [HTTPS-CDN])
   illustrates a high level example message flow for an "enhanced"
   HTTPS-based redirection using an additional client UA validation
   step:

+----+                +--+               +---+                    +---+
|User|                |UA|               |CDN|                    |CSP|
+----+                +--+               +---+                    +---+
  |                    |                   | 1. Trust establishment,|
  |                    |                   | certificate exchange   |
  |                    |                   |< - - - - - - - - - - ->|
  |                    |                   |                        |
  |2. https://csp.com/.|                   |                        |
  |------------------->|                   |                        |
  |                    |                   |                        |
  |                    |           3.  start TLS                   +-+
  |                    | - - - - - - - - - - - - - - - - - - - - ->| |
  |                    |                   |                       | |
  |                    |          4.  CSP's Cert                   | |
  |                    |<- - - - - - - - - - - - - - - - - - - - - | |
  |                    |                   |                       | |
  |                    |       5.  TLS handshake done              | |
  |                    |<- - - - - - - - - - - - - - - - - - - - ->| |
  |                    |                   |                       | |
  |                    |           6.  HTTP GET                    | |
  |                    |------------------------------------------>| |
  |                    |                   |                       | |
  |+-----------------++-+ 7. 3xx, Location:|                       | |
  ||trTOKEN indicates|| |    https://cdn.csp.com/.                 | |
  ||authenticated    || |    ..?token=trTOKEN                      | |
  ||TLS redirection  || |<-----------------------------------------| |
  |+-----------------+| |                  |                       +-+
  |                   | |                  |                        |
  |                   | |  8.  start TLS  +-+                       |
  |                   | |- - - - - - - - >| |                       |
  |                   | |                 | |                       |
  |                   | |  9.  CDN's Cert | |                       |
  |                   | |<- - - - - - - - | |                       |
  |                   | |                 | |                       |
  |                   | |----+            | |                       |
  |                   | |    | 10.        | |                       |
  |                   | |<---+ Validation | |                       |
  |                   | |                 | |                       |
  |                   | |                 | |                       |
  |                   | | 11.  TLS handshake done                   |
  |                   +-+  - - - - - - - >| |                       |
  |                    |                  | |                       |
  |                    |  12.  HTTP GET   | |                       |
  |                    |----------------->| |                       |
  |                    |                  | |                       |
  |                    |   13.  Content   | |                       |
  |                    |<-----------------| |                       |
  |                    |                  +-+                       |
  |     14.  Video     |                   |                        |
  |<-------------------|                   |                        |
  |                    |                   |                        |

   Figure 1: HTTPS-based Request Routing Redirection

   In this example, a special security token - trTOKEN (TLS redirection
   token) - is used to indicate the trust delegation that the origin CSP
   is willing to communicate to the client UA. The token binds together
   the origin CSP certificate and the target CDN surrogate certificate.
   It is assumed that the origin CSP and target CDN have previously
   established a trust relationship, and at a minimum the CDN has
   provided it's public certificate to the CSP, e.g. by using TLS-based
   server authentication during content upload to a CDN surrogate or by
   other means. Alternatively, in stricter scenarios a client-server
   mutual TLS authentication could be used.

   Origin CSP server then (e.g. to save space in a target URI) hashes
   its own certificate and the target CDN certificate, concatenates
   them, signs and appends to the redirection URI. Redirection URI then
   is returned to the client UA in the Location header of the 3xx
   redirect message (or by other means).

   Having parsed the redirection URI and established the presence of the
   trTOKEN, client UA extracts both hashes of the origin CSP certificate
   and the target CDN surrogate certificate.

   The client UA launches a TLS session with the target CDN surrogate
   using the redirection URI. During TLS handshake, the target CDN
   surrogate certificate is obtained, at which point the client UA has
   the capability to perform an additional validation step including
   e.g.:

      - an assertion that the hash of the expected target CDN
      certificate received in the trTOKEN and the hash computed from the
      actually received target CDN surrogate certificate match, and

      - an assertion that the redirection URI and the URI in the target
      CDN surrogate certificate are the same

   Having asserted the validity of the redirection, the client UA can
   then proceed with completing the TLS handshake with confidence that
   the redirection to the target CDN surrogate has been explicitly
   endorsed by the origin CSP. Similar mechanism can be used for
   additional validation in case of the URL rewrite redirection
   mechanisms.

4.2.  Relation to CDNI URI Signing

   CDNI URI Signing [ID.leung-cdni-uri-signing] draft specifies a
   detailed mechanism to ensure validation of parameters communicated in
   the redirection URI. However, the Use Case mostly focuses on the
   validation by the target CDN of the authenticity of the parameters
   communicated in the redirect URI generated by the origin CSP. CDNI
   URI Signing could be extended or used to include the certificate
   information or hashes either in the provided URI Signing Package
   Attribute, or in an additional Package Attribute (e.g. Redirect
   Authentication Attribute), reusing much of the mechanisms detailed in
   the draft.

4.3.  DNS-based Redirection

   An approach is proposed in [HTTPS-CDN] for the DANE-based [RFC6698]
   front-end authentication using the DNS-based redirection. We
   reproduce a brief overview of the proposal from [HTTPS-CDN] here for
   information as an example of a possible approach. Please review the
   original paper for much more detailed explanation and rationale.

   Using DANE, an origin CSP binds target CDN's certificate with the
   CSP's own certificate and domain name (see section VI. B. of
   [HTTPS-CDN]) by adding both certificates to the CSP's TLSA record
   [RFC6698].

   After initiating a TLS connection to target CDN surrogate, and having
   received CDN's certificate, the UA further issues a DNS query to
   request origin CSP's TLSA records.

   UA then is capable of validating both URIs and Certificates with
   those received in the TLSA record, explicitly ensuring the delegation
   of trust.

+----+                  +--+              +---+                   +---+
|User|                  |UA|              |CDN|                   |CSP|
+----+                  +--+              +---+                   +---+
  | 1. https://csp.com/. |                  |                       |
  |--------------------->|                  |                       |
  |                      |                  |                       |
  |                      |           2.  csp.com A? (DNS)           |
  |                      |- - - - - - - - - - - - - - - - - - - - ->|
  |                      |                  |                       |
  |                      |   3.  CNAME csp.cdn.com (DNS redirect)   |
  |                      |<- - - - - - - - - - - - - - - - - - - - -|
  |                      |                  |                       |
  |                      |  4.  start TLS  +-+                      |
  |                      |- - - - - - - - >| |                      |
  |                      |                 | |                      |
  |                     +-+ 5.  CDN's Cert | |                      |
  |                     | |<---------------| |                      |
  |                     | |                | |                      |
  |                     | |            6.  csp.com TLSA?            |
  |                     | |---------------------------------------->|
  |                     | |                | |                      |
  |                     | | 7. TLSA csp.com (CSP's and CDN's Certs) |
  |                     | |<----------------------------------------|
  |                     | |                | |                      |
  |                     | |                | |                      |
  |                     | |---+            | |                      |
  |                     | |   | 8.         | |                      |
  |                     | |<--+ Validation | |                      |
  |                     +-+                | |                      |
  |                      |  9.  HTTP GET   | |                      |
  |                      |---------------->| |                      |
  |                      |                 | |                      |
  |                      |  10.  Content   | |                      |
  |                      |<----------------| |                      |
  |                      |                 +-+                      |
  |     11.  Video       |                  |                       |
  |<---------------------|                  |                       |
  |                      |                  |                       |

   Figure 2: DNS-based Request Routing Redirection using DANE

5.  Conclusion

   The current draft presents two possible approaches to explicitly
   enforce the trust delegation from the origin CSP of the target CDN
   surrogate in a Request Routing redirection over encrypted TLS tunnel.
   The approaches will work not only for client to CDN, but also for an
   inter-CDN connections.

   The approaches aim at bridging two 2-party end-to-end interactions
   into one 3-party interaction by providing means for trust delegation
   from the origin CSP to the target CDN surrogate, and entrusting a
   client UA with an additional validation step to verify the trust
   delegation.

   Both approaches have dependencies on User Agent behaviour to perform
   an additional validation / authentication step.

   DNS-based approach additionally requires the use deployment and use
   of DNSSEC and DANE [RFC6698].

   We hope that current draft will serve as the basis for discussion,
   consideration of possible approach directions, and feasibility
   assessment of various solutions to address the Request Routing over
   encrypted TLS connections.


6.  IANA Considerations

   This document has no IANA considerations.

7.  Security Considerations

   No security issues are considered at this stage.

8.  Acknowledgements

9.  Informative References

   [HTTPS-delegation] I. Oprescu, "HTTPS and delegation of encrypted
   traffic between interconnected CDNs", Proc. IETF92-Dallas, March 2015
   Available:
   https://www.ietf.org/proceedings/92/slides/slides-92-cdni-5.pdf
   [Accessed: 1-Jul-2015]

   [RFC3568] B. Cain, A. Barbir, R. Nair, and O. Spatscheck, "Known
   Content Network (CN) Request-Routing Mechanisms.", RFC 3568, July
   2003

   [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.

   [ID.leung-cdni-uri-signing] B. Downey, R. van Brandenburg, M. Fisher,
   K. Leung, and F. L. Faucheur, "URI Signing for CDN Interconnection
   (CDNI)." , draft-ietf-cdni-uri-signing-04 (work in progress), June 1,
   2015.

   [RFC6698] P. Hoffman, J. Schlyter, "The DNS-Based Authentication of
   Named Entities (DANE) Transport Layer Security (TLS) Protocol: TLSA."
   RFC 6698, August 2012

Authors' Addresses

   Sergey Slovetskiy
   Ericsson
   8400 boulevard Decarie
   Montreal, QC   H4P 2N2
   Canada

   Phone: +1 514 295 9769
   Email: sergey.slovetskiy@ericsson.com