Re: Eric Rescorla's Discuss on draft-ietf-httpbis-cdn-loop-01: (with DISCUSS and COMMENT)

Eric Rescorla <ekr@rtfm.com> Mon, 04 February 2019 03:49 UTC

Return-Path: <ietf-http-wg-request+bounce-httpbisa-archive-bis2juki=lists.ie@listhub.w3.org>
X-Original-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Delivered-To: ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6BD4F130E65 for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 3 Feb 2019 19:49:28 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.041
X-Spam-Level:
X-Spam-Status: No, score=-3.041 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, MAILING_LIST_MULTI=-1, SPF_PASS=-0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
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 OyAk_3aNvN-b for <ietfarch-httpbisa-archive-bis2Juki@ietfa.amsl.com>; Sun, 3 Feb 2019 19:49:25 -0800 (PST)
Received: from frink.w3.org (frink.w3.org [IPv6:2603:400a:ffff:804:801e:34:0:38]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0B15C130E2F for <httpbisa-archive-bis2Juki@lists.ietf.org>; Sun, 3 Feb 2019 19:49:25 -0800 (PST)
Received: from lists by frink.w3.org with local (Exim 4.89) (envelope-from <ietf-http-wg-request@listhub.w3.org>) id 1gqVEf-0000v8-Nw for ietf-http-wg-dist@listhub.w3.org; Mon, 04 Feb 2019 03:47:53 +0000
Resent-Date: Mon, 04 Feb 2019 03:47:53 +0000
Resent-Message-Id: <E1gqVEf-0000v8-Nw@frink.w3.org>
Received: from titan.w3.org ([2603:400a:ffff:804:801e:34:0:4c]) by frink.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from <ekr@rtfm.com>) id 1gqVEd-0000uV-HI for ietf-http-wg@listhub.w3.org; Mon, 04 Feb 2019 03:47:51 +0000
Received: from mail-lf1-x132.google.com ([2a00:1450:4864:20::132]) by titan.w3.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.89) (envelope-from <ekr@rtfm.com>) id 1gqVEa-0007Q2-Kb for ietf-http-wg@w3.org; Mon, 04 Feb 2019 03:47:51 +0000
Received: by mail-lf1-x132.google.com with SMTP id f5so9198310lfc.13 for <ietf-http-wg@w3.org>; Sun, 03 Feb 2019 19:47:28 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=yGJxbmqLy0gA4PNcU1x8Pyjtrh0vxufAgCXeaX0P9Bw=; b=MGGy8wIZAH0+szefIBLbzv/XGIsvYTOHfNmHapF23DKWy4SHC3iaGrV4LbrDKWZzed zXVwtrVwVgC2qlSQ2d/dfPBUkQHhii1W1wFxKpnsZdzeXcQ8pbKowOPWrklWrvY0hmuV AkUeKABQar1pv2H7dZYJ3Bfa7fghaAtJtlKBkwNJxNVbPkZ6FZMbOz9EZXuGRUq5DnI9 t0vaJeRPvxOg850kwpBEHpFH15dRSdvaukQGdLCK1W6J6l1U9B6OvVkAh9dWWZAtkCfk DNqTygOwFCSh8QZw6Sdxo/8yXQY1JZZPxFUVRppwWgkO7oAszzvD8b6MwnMMCWtyxheU 7IVQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=yGJxbmqLy0gA4PNcU1x8Pyjtrh0vxufAgCXeaX0P9Bw=; b=iAIp+d895FeZACoteoFxzYWDVK2GFT/CJYmzz/EAmkge1+3eYBvzDu++aFPR/zbaTp UEGqJixIlHgLUAtSZL+idaLn7dxoYxZEIyazy6c1MMQ/+LflKJ9a5q2nbl63pKCDYF1X NJvTxt1ahhaorYj6tGGnyNSxvd5Uh2kZyzIG/oKCKrLIIBKTj+qoVwh5is5fapJoAnyX zSUjRqHOqC/4yI9pYBg5XBn6+rdgvc8D8HEJT4nRPL3SCufE9vudiS4v2aVUy+D6VVnv 6OKer2ZZgFyJOP5jNNvd6Rmtkjdh8kfwie5bFvcKfC4OoMJaRvSA3t5U8Pjx6QJYxLNi LvnQ==
X-Gm-Message-State: AHQUAuZ85NXFSSi1p3oZSzUc1oT719u6BtyCGCmn2XaRKrucK5TcSz85 n4WIuHzkR0B6xRkUGhK1T4bwwCg9rcZMvTqrLWuZ9g==
X-Google-Smtp-Source: AHgI3IYAK6QcdOM5XUOx3kCZkHKzj5pFfpgGa7/FLDibmjfWWPn8Y37HxX0rRTy1WWno5YYwFGIKP6YM/RwuhqgIgFA=
X-Received: by 2002:a19:2d44:: with SMTP id t4mr4822403lft.90.1549252047037; Sun, 03 Feb 2019 19:47:27 -0800 (PST)
MIME-Version: 1.0
References: <154531198708.18983.3168853259323074744.idtracker@ietfa.amsl.com> <E33E5661-C847-4A34-8FB0-BD106CA6F2CC@mnot.net> <CABcZeBPvzo67PoNsnDG=-yymp_famkzyJE+tjUioVv0uOQkgtg@mail.gmail.com> <43903EB3-ECE6-49A5-B315-999164ECA6A5@mnot.net> <CABcZeBPHUBSvy+vR9Ws4iLHPcULb=VoB3qJ4atNuL-KS87kG-A@mail.gmail.com> <4f51b917-0337-ac11-d69b-8f7f0cb6f267@nostrum.com> <E6A1C9A7-B633-4143-8D5A-4ACAE303A03B@mnot.net> <00331e00-e1a5-e12a-6462-826033dcad6b@nostrum.com> <79B0A90B-AED5-4737-BDC7-63B331E3EED6@mnot.net> <CABcZeBP94pTfgrncpd00ZW8cUmsiAMfUdbuqR3b1x=aw3=GUOw@mail.gmail.com> <9EA540D0-E7EE-4BB0-9853-FB9A4FDE9591@mnot.net> <CABcZeBOs9PvR0zngZgr4H2OvAPaCu6G4aQ2aovWXdfBtgtwyDg@mail.gmail.com> <F8ADD0FF-BEBB-4B68-923C-D89ADBAC387B@mnot.net> <CABcZeBPz-S=6dnPSs46GS_KgTjii1gY5Q+8peZE_a2eTM6fKiA@mail.gmail.com> <5B78EB92-5F41-42F7-A314-FB93B9C104E8@mnot.net> <CABcZeBM=q6AMP04oP_S7zsT3s31f5wab=snke_af7Ty7UcfBLA@mail.gmail.com> <cc60f573-8093-b6fb-d8ee-e50d45b6f2b4@it.aoyama.ac.jp> <CAJEGKNumnwV_N+CO_ErnqyUaUrk9wxBiBg92zxGiKdXcurDfHA@mail.gmail.com> <CABcZeBNHmmqtoQqksG9YzHUJ4QzVg4XQdpmiVAcQ+WGUwH_XsQ@mail.gmail.com> <1DEBE7F9-A76E-4803-B92D-3BD1E0E5313C@mnot.net>
In-Reply-To: <1DEBE7F9-A76E-4803-B92D-3BD1E0E5313C@mnot.net>
From: Eric Rescorla <ekr@rtfm.com>
Date: Sun, 03 Feb 2019 19:46:50 -0800
Message-ID: <CABcZeBPJtFKEdv5XYm0wFFy=3RujrbE-4dQKab5=uhoWnxBT-Q@mail.gmail.com>
To: Mark Nottingham <mnot@mnot.net>
Cc: Chris Lemmons <alficles@gmail.com>, "Martin J. Dürst" <duerst@it.aoyama.ac.jp>, Adam Roach <adam@nostrum.com>, "draft-ietf-httpbis-cdn-loop@ietf.org" <draft-ietf-httpbis-cdn-loop@ietf.org>, "httpbis-chairs@ietf.org" <httpbis-chairs@ietf.org>, Patrick McManus <mcmanus@ducksong.com>, The IESG <iesg@ietf.org>, Tommy Pauly <tpauly@apple.com>, HTTP Working Group <ietf-http-wg@w3.org>
Content-Type: multipart/alternative; boundary="000000000000ee7a640581095946"
X-W3C-Hub-Spam-Status: No, score=-3.6
X-W3C-Hub-Spam-Report: AWL=2.339, BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, W3C_AA=-1, W3C_DB=-1, W3C_IRA=-1, W3C_WL=-1
X-W3C-Scan-Sig: titan.w3.org 1gqVEa-0007Q2-Kb e0c0cd13218ff9a4b29d350f6422cae2
X-Original-To: ietf-http-wg@w3.org
Subject: Re: Eric Rescorla's Discuss on draft-ietf-httpbis-cdn-loop-01: (with DISCUSS and COMMENT)
Archived-At: <https://www.w3.org/mid/CABcZeBPJtFKEdv5XYm0wFFy=3RujrbE-4dQKab5=uhoWnxBT-Q@mail.gmail.com>
Resent-From: ietf-http-wg@w3.org
X-Mailing-List: <ietf-http-wg@w3.org> archive/latest/36359
X-Loop: ietf-http-wg@w3.org
Resent-Sender: ietf-http-wg-request@w3.org
Precedence: list
List-Id: <ietf-http-wg.w3.org>
List-Help: <https://www.w3.org/Mail/>
List-Post: <mailto:ietf-http-wg@w3.org>
List-Unsubscribe: <mailto:ietf-http-wg-request@w3.org?subject=unsubscribe>

LGTM

On Sun, Feb 3, 2019 at 7:43 PM Mark Nottingham <mnot@mnot.net> wrote:

> Yes, that's correct. I've made this commit --
>
> """
> The cdn-id identifies the CDN using either a hostname under its control or
> a pseudonym. Hostnames
> are preferred, to help avoid accidental collisions. If a pseudonym is
> used, unintentional collisions are more likely, and therefore values should
> be carefully chosen to prevent them; for example, using a well-known value
> (such as the recognized name of the CDN in question), or a generated value
> with enough entropy to make collisions unlikely (such as a UUID
> {{?RFC4122}}).
> """
>
> Happy to adjust that if need be.
>
> Cheers,
>
>
>
> > On 1 Feb 2019, at 12:06 pm, Eric Rescorla <ekr@rtfm.com> wrote:
> >
> > Mark and I met last night and came to the conclusion that it would be
> acceptable to document the risk of collision and say that people should
> choose strings in such a way that they have a very high probability of
> non-collision and suggest a few ways.
> >
> > Mark, does this match your memory of our discussion?
> > -Ekr
> >
> >
> > On Thu, Jan 31, 2019 at 3:21 PM Chris Lemmons <alficles@gmail.com>
> wrote:
> > It's worth noting that it's possible that this header, at some point
> > in the future, could be used in situations where DNS isn't even
> > applicable. (Consider a hypothetical CDN whose edges are found via
> > some distributed mesh system. Or even some more esoteric and creative
> > situation.) As far as I can tell, there's no particularly compelling
> > reason to require a DNS registration for CDN-Loop to operate
> > correctly.
> >
> > In fact, if each host in a CDN simply picked a fairly long random
> > string at boot time, it would still prevent non-terminating loops. (I
> > wouldn't advise this generally, of course, since a request could still
> > "bounce" a little before terminating.)
> >
> > CDNs aren't useful if they don't deliver content. Mark is exactly
> > right that the natural incentives will lead CDN operators to choose
> > values that are very unlikely to collide. I like the advice provided
> > that encourages the use of DNS names, since it's an easy way to pick a
> > non-colliding name and it works very well in today's Internet
> > landscape.
> >
> > Regarding the other point, most (all?) CDNs have the concept of
> > "Delivery Lanes" for groups of content managed by a single person or
> > group. Some CDNs may want to use different tokens for each Lane,
> > effectively treating each Lane as a unique CDN. This can be used to
> > mitigate the topology discovery attack Eric was discussing by making
> > the token used for a given lane difficult to determine without control
> > of the lane or its origin. (Consider: <random-string>.lane.cdn.example
> > .) Now, that doesn't directly conflict with the "identifies the CDN as
> > a whole" text, but the text does imply a different implementation.
> > Clarification on this sort of usage might be useful... or it might
> > obscure more than it clarifies.
> >
> > On Tue, Jan 29, 2019 at 12:10 AM Martin J. Dürst <duerst@it.aoyama.ac.jp>
> wrote:
> > >
> > > On 2019/01/29 12:09, Eric Rescorla wrote:
> > > > On Mon, Jan 28, 2019 at 6:18 PM Mark Nottingham <mnot@mnot.net>
> wrote:
> > > >
> > > >> Adam seemed to be OK with the current text in <
> > > >>
> https://www.w3.org/mid/00331e00-e1a5-e12a-6462-826033dcad6b@nostrum.com>,
> > > >> so I think it's just you.
> > > >>
> > > >
> > > > 1. I'd like to hear Adam comment after reading my note below.
> > > > 2. I'm not sure how this changes the points I'm making.
> > >
> > > I think on the other side, it's not just Mark, but it's Mark, the WG,
> > > and, as Mark has described again recently (still included below),
> > > between 20 and 30 years of deployment experience with similar headers.
> > >
> > > Regards,   Martin.
> > >
> > > >
> > > > -Ekr
> > > >
> > > >
> > > >>
> > > >>> On 29 Jan 2019, at 11:13 am, Eric Rescorla <ekr@rtfm.com> wrote:
> > > >>>
> > > >>> I feel like we're talking past each other a bit.
> > > >>>
> > > >>> The original text just has some opaque string and then assumes
> there
> > > >> will be no collisions, but doesn't provide any mechanism for
> preventing
> > > >> them. Saying that people should use DNS-based names is a mechanism
> of
> > > >> preventing them, but if you also allow opaque strings then there's
> still no
> > > >> mechanism for preventing them from colliding. So, either we believe
> that
> > > >> arbitrarily chosen opaque names have a nontrivial chance of
> collision (in
> > > >> which case we need to provide a mechanism about how to not have that
> > > >> happen) or we believe they don't, in which case no text is needed.
> It seems
> > > >> to me that Adam and I think there is a nontrivial chance, and Mark
> doesn't,
> > > >> but that's the point to resolve.
> > > >>>
> > > >>> -Ekr
> > > >>>
> > > >>>
> > > >>> On Sun, Jan 27, 2019 at 4:51 PM Mark Nottingham <mnot@mnot.net>
> wrote:
> > > >>> Some advisory text to guide using them?
> > > >>>
> > > >>>
> > > >>>> On 28 Jan 2019, at 9:45 am, Eric Rescorla <ekr@rtfm.com> wrote:
> > > >>>>
> > > >>>> Well, this argument has some force, but my point is that this
> isn't
> > > >> substantively different from the initial version of the draft in
> this
> > > >> respect.
> > > >>>>
> > > >>>> -Ekr
> > > >>>>
> > > >>>>
> > > >>>> On Sun, Jan 27, 2019 at 2:10 PM Mark Nottingham <mnot@mnot.net>
> wrote:
> > > >>>> HTTP has used similar constructs for 20+ years and collisions
> have not
> > > >> been an issue:
> > > >>>>
> > > >>>> https://httpwg.org/specs/rfc7230.html#header.via
> > > >>>> https://httpwg.org/specs/rfc7231.html#header.user-agent
> > > >>>> https://httpwg.org/specs/rfc7231.html#header.server
> > > >>>>
> > > >>>> All of them address the issue of pseudonym collision by
> recognising
> > > >> that implementers have an interest in distinguishing their
> implementations
> > > >> from others if they want to rely upon a field for debugging (as all
> of
> > > >> these are, effectively). None of them addresses the case of an
> active,
> > > >> *intentional* collision (as we see sometimes with User-Agent),
> because
> > > >> doing so would require far too much infrastructure, compared to any
> benefit
> > > >> seen.
> > > >>>>
> > > >>>> Notably, doing something like rooting product tokens in the DNS
> name
> > > >> space would have done *nothing* to prevent the issues we're seeing
> with
> > > >> User-Agent. Doing so would have also brought about the usual
> questions
> > > >> around whether something needs to listen at that hostname, whether
> it needs
> > > >> to resolve, and what happens when a name changes hands.
> > > >>>>
> > > >>>> The failure case of a collision is also pretty straightforward;
> if I
> > > >> run a CDN and another CDN usurps my value, they're only shooting
> themselves
> > > >> in the foot, because it'll look like they're in a loop if I'm
> configured to
> > > >> forward traffic to them, and they'll start refusing requests --
> thereby
> > > >> screwing their customers. Their natural incentive is to avoid this
> > > >> situation.
> > > >>>>
> > > >>>> So, the properties you're looking for are already naturally
> emergent
> > > >> from the documented protocol. While we could require a hostname, I
> think
> > > >> doing so is effectively cargo-cult protocol design; it won't
> actually
> > > >> improve collision avoidance in practice.
>
> --
> Mark Nottingham   https://www.mnot.net/
>
>