Re: [CDNi] I-D Action: draft-ietf-cdni-uri-signing-12.txt

Phil Sorber <sorber@apache.org> Wed, 19 July 2017 07:21 UTC

Return-Path: <sorber@apache.org>
X-Original-To: cdni@ietfa.amsl.com
Delivered-To: cdni@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7090F131BF7 for <cdni@ietfa.amsl.com>; Wed, 19 Jul 2017 00:21:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.42
X-Spam-Level:
X-Spam-Status: No, score=-6.42 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_SORBS_SPAM=0.5, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Fk85RpJR9Puf for <cdni@ietfa.amsl.com>; Wed, 19 Jul 2017 00:21:52 -0700 (PDT)
Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by ietfa.amsl.com (Postfix) with SMTP id A3AB213178D for <cdni@ietf.org>; Wed, 19 Jul 2017 00:21:52 -0700 (PDT)
Received: (qmail 76489 invoked by uid 99); 19 Jul 2017 07:21:52 -0000
Received: from mail-relay.apache.org (HELO mail-relay.apache.org) (140.211.11.15) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 19 Jul 2017 07:21:52 +0000
Received: from mail-it0-f47.google.com (mail-it0-f47.google.com [209.85.214.47]) by mail-relay.apache.org (ASF Mail Server at mail-relay.apache.org) with ESMTPSA id B7B8F1A002E for <cdni@ietf.org>; Wed, 19 Jul 2017 07:21:51 +0000 (UTC)
Received: by mail-it0-f47.google.com with SMTP id v127so15640620itd.0 for <cdni@ietf.org>; Wed, 19 Jul 2017 00:21:51 -0700 (PDT)
X-Gm-Message-State: AIVw110QuENcZVw3b79F90vipK1D6C2UzaDOVOU5teiUNx601KLbOQx+ eHZM7Tz46ySOViVIgUCoMeu7u/5eGw==
X-Received: by 10.36.144.133 with SMTP id x127mr1054029itd.2.1500448911211; Wed, 19 Jul 2017 00:21:51 -0700 (PDT)
MIME-Version: 1.0
References: <149842148725.3124.11919861730574680552@ietfa.amsl.com> <CABF6JR3gidTD_S2vnrjxzxkmjYxVHsHG3J9VKzaZsiN+pC7WRA@mail.gmail.com> <21D2B0F2-9D1E-45BB-B216-44FFBCD56DE0@niven-jenkins.co.uk> <07d84d59a86f4dcdb19d4e8679bf26f2@XCH-RTP-006.cisco.com> <A14BE764-C40F-4D03-B067-4253178180C4@niven-jenkins.co.uk> <a79e35933ce241c78267514fa39f289a@XCH-RTP-006.cisco.com> <B8EE3C9B-244F-4E72-A5CF-BB5FBA2334A7@gmail.com>
In-Reply-To: <B8EE3C9B-244F-4E72-A5CF-BB5FBA2334A7@gmail.com>
From: Phil Sorber <sorber@apache.org>
Date: Wed, 19 Jul 2017 07:21:40 +0000
X-Gmail-Original-Message-ID: <CABF6JR2ybg2cO-TH06VW5vsNVouYX1g_LUmGJQdos-KcdWPn0Q@mail.gmail.com>
Message-ID: <CABF6JR2ybg2cO-TH06VW5vsNVouYX1g_LUmGJQdos-KcdWPn0Q@mail.gmail.com>
To: "Kevin J. Ma" <kevin.j.ma.ietf@gmail.com>, "Kent Leung (kleung)" <kleung@cisco.com>, Ben Niven-Jenkins <ben@niven-jenkins.co.uk>
Cc: "cdni@ietf.org" <cdni@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c07fd465b7e430554a67c1d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/cdni/qQ7ekglwXqlNs8BVlLZyT8PVGZM>
Subject: Re: [CDNi] I-D Action: draft-ietf-cdni-uri-signing-12.txt
X-BeenThere: cdni@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "This list is to discuss issues associated with the Interconnection of Content Delivery Networks \(CDNs\)" <cdni.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cdni>, <mailto:cdni-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cdni/>
List-Post: <mailto:cdni@ietf.org>
List-Help: <mailto:cdni-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cdni>, <mailto:cdni-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 19 Jul 2017 07:21:56 -0000

I agree with Kevin on the historic factor, and I think people are going to
want to have an option to do something that is comfortable. I also think
that we won't have to worry as much about implementations since most of the
heavy lifting will be done in a JOSE or JWT library. If you do it right,
you get both in one code path. I have a POC that I wrote to validate the
examples.

As far as having to deal with the confidentiality of secret keys, an
implementation will likely still have to deal with that if they include PII
such as client IP since that needs to be encrypted.

On Wed, Jul 19, 2017 at 12:38 AM Kevin J. Ma <kevin.j.ma.ietf@gmail.com>
wrote:

> Hi Ben/Kent,
>
>   (as an individual)  It's been my experience that symmetric keys have
> been more prevelant, historically; and I think we were originally trying to
> match existing schemes.  Since JWTs supported both symmetric and
> asymmetric, it was a freebie from that point of view.
>
>   At this point, though, JWT has strayed sufficiently far from legacy
> implementations that I think we could probably define the scope for CDNI to
> be only asymmetric, if we wanted, without much resistance.
>
>   I don't have any particular affinity for symmetric keys.  If the WG
> wants to drop them, it's ok with me.
>
> thanx.
>
> --  Kevin J. Ma
>
> Sent from my iPhone
>
> On Jul 18, 2017, at 5:37 PM, Kent Leung (kleung) <kleung@cisco.com> wrote:
>
> Hi Ben. I’m trying to recall the rationale. I think initially, URI signing
> was based on the non-CDNI environment where both symmetric and asymmetric
> keys were supported and confidentiality was not an issue between CSP and
> CDN. The issue for symmetric key is encountered for key distribution
> between CSP/uCDN and dCDN. This concern has been documented:
>
>
>
>   “In CDNI, there are two methods for request routing: DNS-based and
>
>    HTTP-based.  For DNS-based request routing, the Signed URI (i.e.,
>
>    Target CDN URI) provided by the CSP reaches the Downstream CDN
>
>    directly.  In the case where the Downstream CDN does not have a trust
>
>    relationship with the CSP, this means that only an asymmetric public/
>
>    private key method can be used for computing the URI Signature
>
>    because the CSP and Downstream CDN are not able to exchange symmetric
>
>    shared secret keys.  Since the CSP is unlikely to have relationships
>
>    with all the Downstream CDNs that are delegated to by the Upstream
>
>    CDN, the CSP may choose to allow the Authoritative CDN to
>
>    redistribute the shared key to a subset of their Downstream CDNs .”
>
>
>
>   “Two types of keys can be used for URI Signing: asymmetric keys and
>
>    symmetric keys.  …  With symmetric keys, the same key is
>
>    used by both the signing entity for signing the URI as well as by the
>
>    validating entity for validating the Signed URI.  …  Key distribution
> for
>
>    symmetric keys requires confidentiality to prevent another party from
>
>    getting access to the key, since it could then generate valid Signed
>
>    URIs for unauthorized requests.”
>
>
>
>   “With DNS-based request routing, URI Signing does not match well the
>
>    general chain of trust model of CDNI when used with symmetric keys
>
>    because the symmetric key information needs to be distributed across
>
>    multiple CDNI hops including non-adjacent hops.  This raises a
>
>    security concern for applicability of URI Signing with symmetric keys
>
>    in case of DNS-based inter-CDN request routing.”
>
>
>
> In light of keeping things simple and the path of least existence, I’m
> fine with defining only asymmetric key.
>
>
>
> Maybe thoughts from Phil and Kevin and others?
>
>
>
> Kent
>
>
>
>
>
> *From:* Ben Niven-Jenkins [mailto:ben@niven-jenkins.co.uk
> <ben@niven-jenkins.co.uk>]
> *Sent:* Tuesday, July 18, 2017 4:34 PM
> *To:* Kent Leung (kleung) <kleung@cisco.com>
> *Cc:* Phil Sorber <sorber@apache.org>; cdni@ietf.org
> *Subject:* Re: [CDNi] I-D Action: draft-ietf-cdni-uri-signing-12.txt
>
>
>
> Hi Kent,
>
>
>
> See inline
>
>
>
> On 5 Jul 2017, at 22:23, Kent Leung (kleung) <kleung@cisco.com> wrote:
>
> *From:* CDNi [mailto:cdni-bounces@ietf.org <cdni-bounces@ietf.org>] *On
> Behalf Of *Ben Niven-Jenkins
>
> *Sent:* Tuesday, July 4, 2017 3:59 AM
>
>
>
> Hi Phil & URI Signing authors,
>
>
>
> I read the latest draft (-12) and below are some questions / thoughts, in
> no particular order, that occurred to me while reading the document.
>
>
>
> * Why support both symmetric & asymmetric keys? What is the advantage to
> having both options versus just picking one option (probably asymmetric
> keys as they work for all use cases)?
>
>
>
> KL> There are pros and cons of using either asymmetric keys vs symmetric
> key. Key distribution limitations and relationships between CSP and CDNs
> are factors. So I think supporting both allows flexibility for deployments
> of URI signing. Existing URI signing proprietary implementations typically
> support both already.
>
>
>
> Apologies if I’m raking up discussions you’ve already had when writing the
> document. Can you expand on what factors justify having two different
> methods for signing URIs?
>
>
>
> I am coming from the point of view that I can’t think of sufficient
> justification for having two methods. symmetric keys have the downside of
> requiring confidentiality. asymmetric keys do not suffer that issue. What
> is the downside of asymmetric keys that justifies using symmetric keys and
> tackling the issue of maintaining confidentiality?
>
>
>
> In other words, why not just specify asymmetric keys and leave it at that?
>
>
>
> I am also worried about interoperability because if you specify both
> symmetric & asymmetric keys I think it is far from guaranteed that all
> implementations will implement both variants and I’m yet to be convinced
> that we need to take that risk at all.
>
>
>
> Ben
>
>
>
>
>
>
>
> * How are the keys distributed between CDNs? I don’t see a property in the
> UriSigning Metadata object that would include (or link to) the keys (I’m
> assuming you need to support distribution of at least 2 keys to support key
> rotation)?
>
>
>
> KL> Key distribution is out of scope. I noticed following text was dropped
> when method converted to JWT. We can put this back in CDNI Overview
> section, where the asymmetric and symmetric key methods are mentioned.
>
>
>
> “Two types of keys can be used for URI Signing: asymmetric keys and
>
>    symmetric keys.  Asymmetric keys are based on a public/private key
>
>    pair mechanism and always contain a private key only known to the
>
>    entity signing the URI (either CSP or uCDN) and a public key for the
>
>    verification of the Signed URI.  With symmetric keys, the same key is
>
>    used by both the signing entity for signing the URI as well as by the
>
>    validating entity for validating the Signed URI.  Regardless of the
>
>    type of keys used, the validating entity has to obtain the key
>
>    (either the public or the symmetric key).  There are very different
>
>    requirements for key distribution (out of scope of this document)
>
>    with asymmetric keys and with symmetric keys.  Key distribution for
>
>    symmetric keys requires confidentiality to prevent another party from
>
>    getting access to the key, since it could then generate valid Signed
>
>    URIs for unauthorized requests.  Key distribution for asymmetric keys
>
>    does not require confidentiality since public keys can typically be
>
>    distributed openly (because they cannot be used for URI signing) and
>
>    private keys are kept by the URI signing function.”
>
>
>
>
>
> * How does a uCDN know whether it is OK/safe/within policy to
> re-distribute symmetric keys to a dCDN?
>
>
>
> KL> See above.
>
>
>
> * In the case of Signed Token chains, how does a CDN obtain the keys
> required to sign the new tokens in the chain as it generates them?
>
>
>
> KL> See above.
>
>
>
> Kent
>
>
>
>
>
> * Section 3.3.1 I think needs to be more explicit, I don’t know how one
> could communicate a token chain via the query string as specified in the
> document, as there is no “back channel” for the CDN to communicate the next
> token in the chain to the UA.
>
>
>
> HTH
>
> Ben
>
>
>
> On 25 Jun 2017, at 21:19, Phil Sorber <sorber@apache.org> wrote:
>
>
>
> Really hoping to get some feedback on this at the meeting in Prague. It's
> got all the changes that have been discussed so I'm not aware of any more
> substantive changes needed. However, lots of editorial nits I suspect.
>
> Thanks.
>
>
>
> On Sun, Jun 25, 2017 at 2:12 PM <internet-drafts@ietf.org> wrote:
>
>
> A New Internet-Draft is available from the on-line Internet-Drafts
> directories.
> This draft is a work item of the Content Delivery Networks Interconnection
> of the IETF.
>
>         Title           : URI Signing for CDN Interconnection (CDNI)
>         Authors         : Ray van Brandenburg
>                           Kent Leung
>                           Phil Sorber
>         Filename        : draft-ietf-cdni-uri-signing-12.txt
>         Pages           : 35
>         Date            : 2017-06-25
>
> Abstract:
>    This document describes how the concept of URI signing supports the
>    content access control requirements of CDNI and proposes a URI
>    signing method as a JSON Web Token (JWT) [RFC7519] profile.
>
>    The proposed URI signing method specifies the information needed to
>    be included in the URI to transmit the signed JWT as well as the
>    claims needed by the signed JWT to authorize a UA.  The mechanism
>    described can be used both in CDNI and single CDN scenarios.
>
>
> The IETF datatracker status page for this draft is:
> https://datatracker.ietf.org/doc/draft-ietf-cdni-uri-signing/
>
> There are also htmlized versions available at:
> https://tools.ietf.org/html/draft-ietf-cdni-uri-signing-12
> https://datatracker.ietf.org/doc/html/draft-ietf-cdni-uri-signing-12
>
> A diff from the previous version is available at:
> https://www.ietf.org/rfcdiff?url2=draft-ietf-cdni-uri-signing-12
>
>
> Please note that it may take a couple of minutes from the time of
> submission
> until the htmlized version and diff are available at tools.ietf.org.
>
> Internet-Drafts are also available by anonymous FTP at:
> ftp://ftp.ietf.org/internet-drafts/
>
> _______________________________________________
> CDNi mailing list
> CDNi@ietf.org
> https://www.ietf.org/mailman/listinfo/cdni
>
> _______________________________________________
> CDNi mailing list
> CDNi@ietf.org
> https://www.ietf.org/mailman/listinfo/cdni
>
>
>
>
>
> _______________________________________________
> CDNi mailing list
> CDNi@ietf.org
> https://www.ietf.org/mailman/listinfo/cdni
>
> _______________________________________________
> CDNi mailing list
> CDNi@ietf.org
> https://www.ietf.org/mailman/listinfo/cdni
>