Re: [Trans] Section 4.2 follow-up

Eric Rescorla <ekr@rtfm.com> Fri, 29 December 2017 14:32 UTC

Return-Path: <ekr@rtfm.com>
X-Original-To: trans@ietfa.amsl.com
Delivered-To: trans@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8639F127AD4 for <trans@ietfa.amsl.com>; Fri, 29 Dec 2017 06:32:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham 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 7sCYBJK3q0Ni for <trans@ietfa.amsl.com>; Fri, 29 Dec 2017 06:32:48 -0800 (PST)
Received: from mail-yw0-x22a.google.com (mail-yw0-x22a.google.com [IPv6:2607:f8b0:4002:c05::22a]) (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 C332A120046 for <trans@ietf.org>; Fri, 29 Dec 2017 06:32:47 -0800 (PST)
Received: by mail-yw0-x22a.google.com with SMTP id n25so9467189ywh.10 for <trans@ietf.org>; Fri, 29 Dec 2017 06:32:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=9vmwjr1iqHiD3KWNKaYKGQfigmoXXaSyHxZs/q/MFNg=; b=ppsxR8dtJWy6C1ffIwgKjKLVymNrYHerZeLf+Jfhd3BNZaFyX+Gn+q+OVcn2Xhpb+I iA+ZP/6/L+iNHO3y1W2NnfdZutZMcA0nFYXjiwzmvty0uej+Erx3U1GudtRb6XxsKRwG yOk4m17aJTciufHPDqjyZB1dEiSVdZRc5boaMdImL7MrhnlFhRkMNbzuWyu1611d2aLJ YCiejhhmw6/M75szUantD2DwyscQt2FKj5Zn9RbGORmfQoY9MGl9dwp5xbcTFVCXCtgy zh25OVfCWehA7hnuWsA25077T9aWVJSyQdpxOXY8+stiv4PX4SSSEhC7Dzkoq1tCQ4Nw spgg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=9vmwjr1iqHiD3KWNKaYKGQfigmoXXaSyHxZs/q/MFNg=; b=qrcsYLbFXpZ58Q4ZEIVnsC50wYdL0sUVXPzS3+D2alvKZn9B0OFnLbxvQBrouAZI2M eA9CZyX67b5pzpsMfhe0ymKEPGfEwcd4axzJKqbYaXQ4Ja3gSPfWc+91xvdg8mPXMAQA E2JXYo/VJZvsJ/I5gAD/ZBUo4WiD/9Hv48LBQDtpEPrfZ8rRHZZodlGhihOrqDcwr4mY 6rbD06F5L2bMnMECuroLesW5tULxo9/puEZw4/yzy3yDJVH+pRtvjP0iAg5hQbvWPbIh ffxP6ugUZXZ/Wc1IG8xxQMfKTAeaqaFAlMyURaaQh6STydKeNr9/MUVrQfo9npzkEf+E 1Qfw==
X-Gm-Message-State: AKGB3mLjKruSBt6lGbdS4G422VxtBM6/Oviy7C1a4fjkfLC3vUplmRmE 9KVz+NYjlj2L86PFqiPFzj90l4gD6b7G6zCgK7XhcNRC
X-Google-Smtp-Source: ACJfBotLYjMp4ILfy3Ann2F2uiDCyHMBcihAbhBfg6gNC0/mbWyUbAMYhQgRH5dZEl69ANIsTfpKwgl5tKjl/Hi22uA=
X-Received: by 10.129.154.22 with SMTP id r22mr23611091ywg.296.1514557966902; Fri, 29 Dec 2017 06:32:46 -0800 (PST)
MIME-Version: 1.0
Received: by 10.129.123.132 with HTTP; Fri, 29 Dec 2017 06:32:06 -0800 (PST)
In-Reply-To: <CALzYgEd7TzMNa=+FkTMDapET9Bsu3vn3QPxLQTje9qF=CUxk1w@mail.gmail.com>
References: <CALzYgEcnUe=0=vE9sw4Ee0H_94w6mv5F2=T-1rtK51WHHeqUbg@mail.gmail.com> <CACM=_OcS2zvQ1O_-YqiNFOg9PYn=jATp6dMmp6qS-maQMtoOOQ@mail.gmail.com> <f284f289-0468-5b2f-f073-2b3022158ea0@comodo.com> <CABcZeBNafvFdEA6ZEotad1VWUb9a0PLf8-etw1wR-ppnxB7Gww@mail.gmail.com> <CALzYgEd7TzMNa=+FkTMDapET9Bsu3vn3QPxLQTje9qF=CUxk1w@mail.gmail.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Fri, 29 Dec 2017 06:32:06 -0800
Message-ID: <CABcZeBO3CGnds8e-ETXTT6YEGrxY=14Q18h_apD81Y=oB28veQ@mail.gmail.com>
To: Eran Messeri <eranm@google.com>
Cc: Rob Stradling <rob.stradling@comodo.com>, Al Cutter <al@google.com>, Trans <trans@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c0bb4e89bfb1d05617b8197"
Archived-At: <https://mailarchive.ietf.org/arch/msg/trans/4T8S4frUpqmzXMyzm0y1ryZHWU4>
Subject: Re: [Trans] Section 4.2 follow-up
X-BeenThere: trans@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Public Notary Transparency working group discussion list <trans.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/trans>, <mailto:trans-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/trans/>
List-Post: <mailto:trans@ietf.org>
List-Help: <mailto:trans-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/trans>, <mailto:trans-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 29 Dec 2017 14:32:50 -0000

On Thu, Dec 14, 2017 at 2:26 AM, Eran Messeri <eranm@google.com> wrote:

> To follow up on some of the points raised in the issue:
>
> Examples of chains that are allowed under the current text:
> * RFC5280-compliant leaf -> intermediate -> trust anchor.
> * RFC5280-compliant leaf -> intermediate -> TA, where the leaf or one of
> the intermediate are revoked or not temporally valid (I don't know of any
> logs that do revocation checking currently).
> * Non RFC5280-compliant leaf (for example, BER-encoded instead of DER
> encoded) -> intermediate -> TA.
> * leaf -> intermediate1 -> intermediate2 without the trust anchor (however
> when the log stores and serves the chain it must serve the trust anchor
> used to accept the submission).
>
> Examples of chains that are not allowed:
> (1) Incomplete chain: leaf -> intermediate1 , missing intermediate2 ->
> trust anchor.
> (2) leaf -> intermediate -> trust anchor _not trusted by the log_.
> (3) leaf -> intermediate -> trust anchor, where the signatures either by
> the intermediate or the TA do not validate.
>

What about leaf -> non-CA cert -> trust anchor? That seems to conform to
the requirement that it have a valid signature chain.



In PR289 <https://github.com/google/certificate-transparency-rfcs/pull/289>,
> the suggestion was to change the MUST restricting chains (2), (3) from
> being admitted at all, to a SHOULD, so such chains may be admitted under
> some circumstances (that is, AFAIUI, the meaning of SHOULD in RFC2119).
>
> The arguments were:
> * Chrome CT policy requires CT logs to be RFC compliant.
> * A bug in a CT log implementation could lead to accepting a submission
> that doesn't chain to a trust anchor accepted by the root.
> * Such a bug would make the CT log non RFC-compliant, and so subject to
> removal from the set of logs trusted by Chrome.
>
> I do not think this is a strong argument in favour of these changes
> because:
> * The Chrome CT policy can be changed to accommodate some deviations from
> the standard (Chrome's policy is dynamic and may change at any time).
> * There have been cases where a log incorrectly accepted chains that do
> not terminate in an accepted TA (Rob Stradling has found at least one). In
> those cases the log was not disqualified from Chrome.
> * Most importantly, it further burdens monitors and log clients - which
> will have to investigate, and be able to cope with, corrupted chains. There
> are already quite a few certificates in 6962 logs that require particularly
> lax parsers and some CT log clients already resort to their own fork of DER
> parsers / X.509 decoders. I think perpetuating this situation in unhealthy
> in the long term.
> * These MUST statements are there to guide implementation - to make it
> clear that no 6962-bis implementation should admit submissions unless it
> can check their validity.
>

As I said in my comment, I think it's ultimately a wg decision what to do
here, as long as the MUST is unambiguous (otherwise it doesn't conform to
our basic requirements). So, my purpose here is primarily to ensure
non-ambiguity.

With that said, these aren't the arguments I was offering. Rather, I was
saying that the MUST is guidance to how a log should operate, but it's not
required for interoperability, and potentially not for security (at most
for DoS, it seems?), so I'm not sure it really belongs in this document.

-Ekr


> While I can appreciate that the narrow view of a log operator would favour
> as few restrictions on the log as possible, relaxing the requirement that
> each chain is signed correctly and terminates at an accepted TA does not
> make sense for the overall protocol. The CT protocol is already biased
> towards ease of log implementation and I don't see a reason to tip the
> balance further towards log implementation (given it has already been
> demonstrated in the workgroup that finding feasible, privacy-preserving
> methods to audit logs or get stronger security guarantees from them is
> hard).
>
> Eran
>
>
> On Wed, Nov 22, 2017 at 4:58 PM, Eric Rescorla <ekr@rtfm.com> wrote:
>
>>
>>
>> On Wed, Nov 22, 2017 at 3:55 AM, Rob Stradling <rob.stradling@comodo.com>
>> wrote:
>>
>>> On 21/11/17 19:33, Al Cutter wrote:
>>>
>>>>
>>>>
>>>> On Tue, Nov 21, 2017 at 7:20 PM, Eran Messeri <eranm@google.com
>>>> <mailto:eranm@google.com>> wrote:
>>>>
>>>>     [shortening subject]
>>>>
>>>>     Two MUSTs are being discussed:
>>>>     (1) "the log MUST NOT accept any submission until it has verified
>>>> ..."
>>>>
>>>>
>>>> Actually it's just this one, I think the one below was included
>>>> possibly by mistake (I mentioned to that to Rob when I spotted it on the
>>>> PR).
>>>>
>>>
>>> Yeah, I misunderstood which MUSTs (in section 4.2) EKR (and Al) thought
>>> should be SHOULDs.
>>>
>>> I've updated the PR.  This discussion is now only about whether or not
>>> that first "MUST NOT" should be changed to "SHOULD NOT".
>>>
>>> From the discussion on the PR, it seems that:
>>>   - Eran and Andrew strongly prefer "MUST NOT".
>>>   - EKR wrote "this is a WG decision" and so I presume he'll accept
>>> either "MUST NOT" or "SHOULD NOT".
>>>
>>
>> I'll accept MUST NOT as long as the MUST NOT is unambiguous. I thought it
>> was but the discussion in the PR suggests that it's not because we don't
>> know what the lax validation exception covers. As long as you have clarity
>> on that point then SHOULD NOT/MUST NOT is totally up to the WG.
>>
>> -Ekr
>>
>>
>>
>>
>>
>>>   - Al is the sole proponent of changing it to "SHOULD NOT".
>>>
>>> Al, can you live with "MUST NOT"?
>>>
>>> --
>>> Rob Stradling
>>> Senior Research & Development Scientist
>>> COMODO - Creating Trust Online
>>>
>>>
>>> _______________________________________________
>>> Trans mailing list
>>> Trans@ietf.org
>>> https://www.ietf.org/mailman/listinfo/trans
>>>
>>
>>
>