Re: [art] On BCP 190

Larry Masinter <LMM@acm.org> Sun, 28 July 2019 06:26 UTC

Return-Path: <masinter@gmail.com>
X-Original-To: art@ietfa.amsl.com
Delivered-To: art@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6BF621200CD for <art@ietfa.amsl.com>; Sat, 27 Jul 2019 23:26:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.557
X-Spam-Level:
X-Spam-Status: No, score=-1.557 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.091, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.249, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 dvNudY6RqnXc for <art@ietfa.amsl.com>; Sat, 27 Jul 2019 23:26:29 -0700 (PDT)
Received: from mail-pf1-x430.google.com (mail-pf1-x430.google.com [IPv6:2607:f8b0:4864:20::430]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id E96FC120018 for <art@ietf.org>; Sat, 27 Jul 2019 23:26:28 -0700 (PDT)
Received: by mail-pf1-x430.google.com with SMTP id p184so26407406pfp.7 for <art@ietf.org>; Sat, 27 Jul 2019 23:26:28 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:references:in-reply-to:subject:date:message-id :mime-version:thread-index:content-language; bh=ye1E8R1Fk8E77AeOPSFDmAfAtq2OpBL07aQ+ks7HPz8=; b=SHgqtFipIw7Xge/5Z1UtcXcaRGyQ8fUIdfmcThJhCzhkoPFulAAlm/wHc+X2vOoqDH Bpzcw8tGt6xmDWFn4QCztvJiU8m1VpXjh00pr7Xk12QvwxENTgREYkJ60E8VveQht0vb aXhpHv0fPSFLFAEK+YjmA4Uk+JuWXQ5hHBZRE+xNB8QX9j8H0miHdX+lUaYgJOz4eUdP ybUabqlDkWwoLcVdtZ1Cq62TPQ2m+W7RtvAG7+UImNVIeQBwdbvF/57rdG/8qzXSOEy9 6gSzxnCL8NQq3rYLNZckRKxb40qfcm820sy+jhDDvGEfuNE/tvVro2C8lKu2yyIGTxbI vxww==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:references:in-reply-to:subject :date:message-id:mime-version:thread-index:content-language; bh=ye1E8R1Fk8E77AeOPSFDmAfAtq2OpBL07aQ+ks7HPz8=; b=DBgl9whtoMtjOOfurOcCfmuknr0+y+zmOy1My1ClMT4Gw65N629AVlFLkuRyvrYMKx pSXM64engQB5oegFI9gLwDKLy3MSIiCGXHhcgXqkwZwSQxbA/zCAhvTdow+BtTAs/jAW ldDtu0TX0wVN5Y/DIdOmJbQpwi/zR9VmBZfx6aMqzJQvNdgDkAn++AS1FZYrJ/VtktwR HzdiN00UPFC/DGEuyabCwxDFTUthjefLegQ27CQNpfOjVdy4/hTIOnx8TVPLzNpufnS5 xHgIK7rg5GarwO3Be9zPbF3f8Lq30fscT+vAiCH4QtMhJPc7bV04HzbZq7KfepTYvFBt TIQw==
X-Gm-Message-State: APjAAAW+tv8KTD5kE7X4UHHCfn1R62ZYMC2YG/lYpxN1jCZekWMbG9T1 lDpsnu0lbFKcb8Ci3EcdryZwvSU9
X-Google-Smtp-Source: APXvYqwlCy5/Ft9H2fYrgkBBbyzoytdMjQBI8/HgKyepv5rCkMzqd2DXavtVBfAApjafc9LSt6x2JA==
X-Received: by 2002:aa7:8a99:: with SMTP id a25mr30584697pfc.127.1564295187990; Sat, 27 Jul 2019 23:26:27 -0700 (PDT)
Received: from TVPC (c-67-169-101-78.hsd1.ca.comcast.net. [67.169.101.78]) by smtp.gmail.com with ESMTPSA id h1sm72393479pfg.55.2019.07.27.23.26.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 27 Jul 2019 23:26:27 -0700 (PDT)
Sender: Larry Masinter <masinter@gmail.com>
From: Larry Masinter <LMM@acm.org>
X-Google-Original-From: "Larry Masinter" <lmm@acm.org>
To: 'Jacob Hoffman-Andrews' <jsha@letsencrypt.org>, 'Mark Nottingham' <mnot@mnot.net>
Cc: 'ART Area' <art@ietf.org>, 'Devon O'Brien' <devon.obrien@gmail.com>
References: <58BF6171-03BB-4F83-940F-3A101EFDD67F@mnot.net> <CAN3x4Q=Jo1uBvfCG6CSrociYgdG+E4jq+4cB1txPjgboth2q9g@mail.gmail.com> <372FA049-7B33-4981-A0E0-41BD454CB770@mnot.net> <CAN3x4QmJsfx48MdhcBB+XWX+vfv=skSR2Z6kNPBWGVobvzNuFA@mail.gmail.com>
In-Reply-To: <CAN3x4QmJsfx48MdhcBB+XWX+vfv=skSR2Z6kNPBWGVobvzNuFA@mail.gmail.com>
Date: Sat, 27 Jul 2019 23:26:25 -0700
Message-ID: <004601d5450d$62b33220$28199660$@acm.org>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="----=_NextPart_000_0047_01D544D2.B654F660"
X-Mailer: Microsoft Outlook 16.0
Thread-Index: AQFxlPSiwrtxymI7oXhTAVMNSh8OAAJO5FUZAjbPnJ4BYG1OMqd3uxuA
Content-Language: en-us
Archived-At: <https://mailarchive.ietf.org/arch/msg/art/Ad5CrAXXovZ7C73i5qes52AnB5c>
Subject: Re: [art] On BCP 190
X-BeenThere: art@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Applications and Real-Time Area Discussion <art.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/art>, <mailto:art-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/art/>
List-Post: <mailto:art@ietf.org>
List-Help: <mailto:art-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/art>, <mailto:art-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 28 Jul 2019 06:26:30 -0000

Although it might seem like overkill, JSON HAL 

https://tools.ietf.org/html/draft-kelly-json-hal-08

seems like it’s intended as a way of avoiding having

the client do string-hacking of URL paths

(EXCEPT processing relative URLs and constructing
GET URLs on some kinds of form submissions).

 

The use of / in the path of URLs was supposed to

be restricted to hierarchical data, and yet CT doesn’t
do that.

http://masinter.blogspot.com/2019/05/on-nature-of-hierarchical-urls.html 

 

Now, why JSON-HAL is still an expired  Internet Draft 

is a puzzle.

--

https://LarryMasinter.net 

 

 

From: art <art-bounces@ietf.org> On Behalf Of Jacob Hoffman-Andrews
Sent: Wednesday, July 24, 2019 10:49 AM
To: Mark Nottingham <mnot@mnot.net>
Cc: ART Area <art@ietf.org>; Devon O'Brien <devon.obrien@gmail.com>
Subject: Re: [art] On BCP 190

 

On Wed, Jul 24, 2019 at 10:24 AM Mark Nottingham <mnot@mnot.net <mailto:mnot@mnot.net> > wrote:

> It's this part of BCP 190 Section 2.3 that is causing the issue:
> 
> >  Specifying a fixed path relative to another (e.g., {whatever}/myapp)
> >  is also bad practice (even if "whatever" is discovered as suggested
> >   in Section 3); while doing so might prevent collisions, it does not
> >   avoid the potential for operational difficulties (for example, an
> >   implementation that prefers to use query processing instead, because
> >   of implementation constraints).
> 
> To be clear, the "whatever" in this case is referred to as <log server> in CT, and is discovered via the known logs list (https://www.certificate-transparency.org/known-logs) and browser CT programs.

Yes -- and this text should definitely be considered when revising 190. Like I said, we've moved on a fair amount since then (although we still have a ways to go). 

One thing I'd like to see in a revision is a clearer separation between "you're potentially harming others by doing this; don't do it" and "you're potentially harming yourself by doing this; think carefully before proceeding."

 

Which category to you think that paragraph of Section 2.3 (call it 2.3b) belongs to? It sounds like it belongs to the "harming yourself" category, which means that it's not actually protecting a commons.

 

And to be clear, even though 2.3b sounds advisory-only, it's this clause at the top of Section 2.3 that has broader normative language:

> specifications MUST NOT constrain,

>   or define the structure or the semantics for any path component.

 

a) that some people don't have access to .well-known on their servers -- but this seems like a very poor argument for this particular use case.

 

Andrew Ayer presented one concrete case where the use of ..well-known presented implementation difficulties for Google, a company that presumably has full control over its servers. I don't know the details of why, but I can guess: .well-known is dangerous. As a hosting provider, allowing users to upload abritrary files to /.well-known/acme-challenge means the users can get certificates for the hosted domain name. Probably there are other security-relevant things under /.well-known/. The safe and reasonable thing is to just block access to /.well-known/. I would guess that Google's security team has set a policy: All access to .well-known is blocked at the frontends unless it's gone through a detailed review.

 

So we have advice in BCP 190 meant to ensure that protocols allow implementers to implement any way they want (e.g. with query parameters to represent semantics). But instead, the advice to require /.well-known/ is creating practical barriers for implementers to implement things in the way they want.

 

Also, if the reasoning for 2.3b is that implementers might only be able to use query parameters, not paths, then specifying paths under .well-known doesn't solve that problem at all.

 

Thanks,

Jacob