Re: [art] On BCP 190

Mark Nottingham <mnot@mnot.net> Wed, 24 July 2019 17:24 UTC

Return-Path: <mnot@mnot.net>
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 E4B1612028E for <art@ietfa.amsl.com>; Wed, 24 Jul 2019 10:24:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=mnot.net header.b=XjXGWuDq; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=PVn30HX7
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 Ijvbi1x_5qNW for <art@ietfa.amsl.com>; Wed, 24 Jul 2019 10:24:55 -0700 (PDT)
Received: from wout2-smtp.messagingengine.com (wout2-smtp.messagingengine.com [64.147.123.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 87BD3120112 for <art@ietf.org>; Wed, 24 Jul 2019 10:24:55 -0700 (PDT)
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id D527D2EB; Wed, 24 Jul 2019 13:24:54 -0400 (EDT)
Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Wed, 24 Jul 2019 13:24:55 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mnot.net; h= content-type:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; s=fm3; bh=O Z062ESBzSHFzYngCAv7dsZ11F5STmLdRCnveWJ2P8Q=; b=XjXGWuDqHyT7JQypZ XPGR519TZxt5x6s8EdPbwB75edRjA+2dUk/TEqRkNkbb4MAxZZ/rgznpPe0/hoPW udg+2VnswKU7XypgvWHryENtS0x+7IFOAOqs4BPjwB1GEHXF9aHWSeXI5U7seOtc iykn+Rxh8OmhM1nlRd04fTN10gXbcoIpPzivPUIPeguCE6FLU6zMnTo5p2mYXQZU 36Z9ho7032Db+nzr5litf/ztbHEgb6TAugvw0Hb9vqPXZApayiU/5aduar7mGtgl dpHF/074PlQjsecFl5y/oX2aHPmFv9g//ZWDtAEJxJQ9V+JdtRhbvjo/f1HIhQiX /dmaA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm3; bh=OZ062ESBzSHFzYngCAv7dsZ11F5STmLdRCnveWJ2P 8Q=; b=PVn30HX7dCxktE7HNRT7OiFDc2rT6ZZOowiSzDoNDB0buqHYT9+pvFzpb o1OrZMpD3GD6jMve1K1E60dQNNNC9wZg6i0ZsklOuaDYUSrnGinuh0wAvI9e9NPh Ir8uBfxLY/5eDh7o7eus36YrxGuXPGLQfu6kx+poc4NkLye8/WnQUdoP0WylzMsF mNrR5hD98yZuFTwDeF13SXjfFCAUVh0P/mRaicl7Kuw/S5US4A/oAd+oACJpq+Ro 0Yk9olHQKiHcx83eZOw814uJacQGRkbx9q3LEKeyDkcPAhGflDYoJy17E3oG8ZyP W/vzNaIwHJrxQC+swfUC0k8TAF1sQ==
X-ME-Sender: <xms:ZZQ4XXMwowTZFkuJyJJcBhvbNH-yFqOZ5WVfwbwYsAi9SXsxcKt9VQ>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduvddrkedtgddutdekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurheptggguffhjgffgffkfhfvofesthhqmhdthhdtjeenucfhrhhomhepofgrrhhk ucfpohhtthhinhhghhgrmhcuoehmnhhothesmhhnohhtrdhnvghtqeenucffohhmrghinh eptggvrhhtihhfihgtrghtvgdqthhrrghnshhprghrvghntgihrdhorhhgpdhtfihithht vghrrdgtohhmpdhmnhhothdrnhgvthenucfkphepfedurddufeefrdduheehrddvgeekne curfgrrhgrmhepmhgrihhlfhhrohhmpehmnhhothesmhhnohhtrdhnvghtnecuvehluhhs thgvrhfuihiivgeptd
X-ME-Proxy: <xmx:ZZQ4XYdok-ymuTi4yyZ3Y-bVhMBC-dUyoXNUH6Gvy4xDVxlUHYmb5g> <xmx:ZZQ4XZdsHfjOeqJ92JFQg_CJRiprA0vd1GVTkyymbB_1YS_Od-7-XQ> <xmx:ZZQ4XVt7q19r0K9RmdOijLsHE1xTcmNGFRUGbl2DkCYVwq9iki455A> <xmx:ZpQ4XY45PQYM3zPe1Dpb0f030FO_pVCLIvKbkVb83xheRfslG85EhQ>
Received: from dhcp-9bf8.meeting.ietf.org (dhcp-9bf8.meeting.ietf.org [31.133.155.248]) by mail.messagingengine.com (Postfix) with ESMTPA id 0DA9C80061; Wed, 24 Jul 2019 13:24:53 -0400 (EDT)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
From: Mark Nottingham <mnot@mnot.net>
In-Reply-To: <CAN3x4Q=Jo1uBvfCG6CSrociYgdG+E4jq+4cB1txPjgboth2q9g@mail.gmail.com>
Date: Wed, 24 Jul 2019 13:24:50 -0400
Cc: ART Area <art@ietf.org>, Devon O'Brien <devon.obrien@gmail.com>
Content-Transfer-Encoding: quoted-printable
Message-Id: <372FA049-7B33-4981-A0E0-41BD454CB770@mnot.net>
References: <58BF6171-03BB-4F83-940F-3A101EFDD67F@mnot.net> <CAN3x4Q=Jo1uBvfCG6CSrociYgdG+E4jq+4cB1txPjgboth2q9g@mail.gmail.com>
To: Jacob Hoffman-Andrews <jsha@letsencrypt.org>
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/art/Y9N9QEhxL5Sk1XdSp1X1s-XAlIk>
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: Wed, 24 Jul 2019 17:24:58 -0000

On 24 Jul 2019, at 12:51 pm, Jacob Hoffman-Andrews <jsha@letsencrypt.org> wrote:
> 
> So CT is totally fine with regards to this part of BCP 190 Section 2.3:
> 
> >    For example, an application ought not specify a fixed URI path
> >   "/myapp", since this usurps the host's control of that space.

Yep.


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


> On Tue, Jul 23, 2019 at 11:14 AM Mark Nottingham <mnot@mnot.net> wrote:
> common practices for an API that's implemented once and deployed on one server that's under the control of the designer (e.g., api.twitter.com) are often not appropriate for an API that is implemented many times, deployed on many servers owned by different people, and sometimes evolved independently
> 
> This is a valuable and subtle point, and I think the crux of the matter. It's actually surprisingly rare to see an HTTP API that is designed to be implemented many times. But if you look at those that are (RFC 7482, RFC 7808, RFC 8040, Mastodon, and Git, for example), what they have in common is that they are all organized around a hostname and path prefix, just like CT.

Agreed. 

The discussion I had with Devon the other day led to two paths (not that there aren't others; these just seem most likely as ways forward):

1) Using .well-known. This is precisely what well-known is for, and if hosting multiple logs is a concern, you can just require that /.well-known/mumble/ be the prefix you use; e.g., you could use something like /.well-known/ct-logs/2019/ as a prefix if you want to shard by year.

2) Getting an exception. 

AFAICT the arguments against #1 are:

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.

b) aesthetic   ¯\_(ツ)_/¯

#2's main downside is the process of getting the exception and agreeing on text. FWIW I'm happy to support an exception here (but would be happier if someone could explain why #1 isn't a sufficient option), and help come up with a small bit of text. You might want to talk to ADs about how much process they want to impose before walking down this path, but I can't see it taking that long personally.

Cheers,

--
Mark Nottingham   https://www.mnot.net/