Re: [TLS] WGLC for draft-ietf-tls-rfc8446bis and draft-ietf-tls-rfc8447bis

Rob Sayre <sayrer@gmail.com> Wed, 05 April 2023 20:05 UTC

Return-Path: <sayrer@gmail.com>
X-Original-To: tls@ietfa.amsl.com
Delivered-To: tls@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 77E52C15153E for <tls@ietfa.amsl.com>; Wed, 5 Apr 2023 13:05:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.094
X-Spam-Level:
X-Spam-Status: No, score=-2.094 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DVlZ-_PNg75w for <tls@ietfa.amsl.com>; Wed, 5 Apr 2023 13:05:26 -0700 (PDT)
Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com [IPv6:2a00:1450:4864:20::531]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 37A7AC14EB19 for <TLS@ietf.org>; Wed, 5 Apr 2023 13:05:26 -0700 (PDT)
Received: by mail-ed1-x531.google.com with SMTP id eh3so143940522edb.11 for <TLS@ietf.org>; Wed, 05 Apr 2023 13:05:26 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1680725124; x=1683317124; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=QYBEgkXHmktEAIslF0TGXEU754elSuIAKKvzAYiU/HI=; b=nJcX1MRpgOpDaVqA5jnXGPecphcFlEzmNnUXdyew76UOkApNXalyl3Cd5DGCraMuSE izxojdFlCBE2ydLrMrRkanfQ9YnBTeSHHpeUh4LnFCAz1yQOuYv0pCJIKOzzZNjf1dEP hHDJX4SxqCkiGp/sr/OB+2GBo1fzGwQ2LlSoUMu01SwFxRYC0cuzqIC31aL0rPh+n8sE ZefqZE1RTdaydx+AvaFUTRDGqFjXRi3Q33p2KV5hqIN4qMcYtn9AT2MC0rDH901BRwtW nrkE3f5WjIJXqkonz6dtV88MqLdZbDLJSGjyUtHkOFzRdAgNGgUGvHnO9F3TwXdLgB1B MAlw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680725124; x=1683317124; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=QYBEgkXHmktEAIslF0TGXEU754elSuIAKKvzAYiU/HI=; b=tfXJfTGOFqpzo6QRFiUa4dtlZqvEMYfYMjUIAKNoWYVCNHYdPstG3qGmNDe6taM/Wt GQJvGSwm2Fv5XV3kLC49C4qnKryYjYQJJtYUO4NtiUHsYh26YSiOFKhRnXRcvvH6t80r JZwajR5vpi9YiiK9wH3cqD88yXbWAGQNLr+EH0Xem52mOrau4S03qKgBmvP7QXr78qqV qDjNutwd5JgtUa+k4G0Y/5dybheJ94lywmlYqTa/R0hc9PXXUpvl9XHQ1YkZPLT+ie6V TETRaG6kJpIAelDjGTI7LJXArB7ZmGNvA+BiNVa2ROqXXYjr6AyIeQaNq/0FCrF455Ct DShA==
X-Gm-Message-State: AAQBX9eMwpplQzIMeLuAkVkwbqQff+VR30Wmo0miWThmWMu1YtMkH13U iTo+X3J4mGnYtUNxNgZFIhATrV+K8g0u9ntspwYULEvu6ns=
X-Google-Smtp-Source: AKy350ZKQjA0jeqO9cwdd1ObTj6AXLfQB91MbPS/vMxnQSItJQBfxKNrW3pix1/a46BE78/vMUerfemgbExmCIzKozY=
X-Received: by 2002:a17:906:9b90:b0:93a:6e4d:e772 with SMTP id dd16-20020a1709069b9000b0093a6e4de772mr2322195ejc.7.1680725124300; Wed, 05 Apr 2023 13:05:24 -0700 (PDT)
MIME-Version: 1.0
References: <E7A22BA0-4EDD-4B0D-B5D1-6FA7AF466398@heapingbits.net> <5CBA62B3-CFD0-4062-B66D-AFA6F887128B@sn3rd.com> <d3ccffd1-2f92-f2e2-0e96-32ee6f5cd7b3@cs.tcd.ie> <CAChr6SwCeWMbPuuPCX7_=JiWe+6712tsXyva+eEB=GpCbQxX4w@mail.gmail.com> <CABcZeBMiZLfBbJSB48hL2Mot+6S1FVNpLH7HfLAJQRKfOqf2uA@mail.gmail.com> <CAChr6SzRBNfacz5z6WQxvmVwNEnkf-LU4xsyJqV16Devh7qHjQ@mail.gmail.com> <CABcZeBOWuKAYuSP4QkUcPxSgfRYDeG=fDCQfRsWy3r+YEcqu1Q@mail.gmail.com>
In-Reply-To: <CABcZeBOWuKAYuSP4QkUcPxSgfRYDeG=fDCQfRsWy3r+YEcqu1Q@mail.gmail.com>
From: Rob Sayre <sayrer@gmail.com>
Date: Wed, 05 Apr 2023 13:05:13 -0700
Message-ID: <CAChr6SzV8oXpEm044H5GmhPCArNaxq4bz5usCsFrz-GeQr=BqQ@mail.gmail.com>
To: Eric Rescorla <ekr@rtfm.com>
Cc: Stephen Farrell <stephen.farrell@cs.tcd.ie>, TLS List <TLS@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000ffccc005f89c4fc7"
Archived-At: <https://mailarchive.ietf.org/arch/msg/tls/6xRVcETNg3QTsq4SAzcAMCq0I0o>
Subject: Re: [TLS] WGLC for draft-ietf-tls-rfc8446bis and draft-ietf-tls-rfc8447bis
X-BeenThere: tls@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "This is the mailing list for the Transport Layer Security working group of the IETF." <tls.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/tls>, <mailto:tls-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tls/>
List-Post: <mailto:tls@ietf.org>
List-Help: <mailto:tls-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/tls>, <mailto:tls-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 05 Apr 2023 20:05:30 -0000

On Wed, Apr 5, 2023 at 12:53 PM Eric Rescorla <ekr@rtfm.com> wrote:

>
>
> On Wed, Apr 5, 2023 at 12:50 PM Rob Sayre <sayrer@gmail.com> wrote:
>
>> On Wed, Apr 5, 2023 at 12:26 PM Eric Rescorla <ekr@rtfm.com> wrote:
>>
>>> Thanks for your feedback. Most of these are editorial comments and
>>> so I think they're my decision as editor about which ones to take
>>> absent some instruction from the chairs.
>>>
>>
>> I agree concerning most of them. One just finds nitpicks if you read the
>> whole thing carefully.
>>
>> The one thing I think is really substantive is the deprecation of TLS 1.0
>> / 1.1, since you have a strange nesting of MUSTs.
>>
>> I think a descriptive "NOT RECOMMENDED" approach would be better here.
>> Then, describe that servers might choose to accept 1.0/1.1 if they don't
>> actually care whether the traffic is secure. This is a very common pattern.
>> I found a survey that showed popular public sites were likely to accept
>> almost anything (SSL3, unencrypted traffic, etc).*
>>
>
> I don't see how we can use NOT RECOMMENDED here, because we already have
> an RFC which prohibits the use of TLS 1.0 and TLS 1.1 and we're not
> contradicting
> that. The purpose of the text you highlight is to address people who are
> nonconformant
> with that RFC.
>

I see your point. RFC8996 does say "MUST NOT", but that's not deprecation.
It's prohibition, as you say. So, the title of the document is confusing.

I still think what it's in this document is confusing, because it says "if
you don't follow this MUST, you have to follow this MUST...".

But I can see this situation is kind of messy, so I think it's editorial.

thanks,
Rob



>
>> I think this approach is more accurate, but also more critical in terms
>> of security than what you have now.
>>
>> thanks,
>> Rob
>>
>> *
>> "In fact, the top 100 sites were more likely to still support SSL 3, TLS
>> 1.0, and TLS 1.1 than servers with much less traffic."
>> <
>> https://www.f5.com/labs/articles/threat-intelligence/the-2021-tls-telemetry-report
>> >
>>
>>
>>
>>> On Tue, Apr 4, 2023 at 10:43 PM Rob Sayre <sayrer@gmail.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> I'm still not sure about the list/vector rename. Aside from that,
>>>> here's what I found:
>>>>
>>>> > It tightens some requirements and contains
>>>> > updated text in areas which were found to be unclear as well as other
>>>> > editorial improvements.
>>>>
>>>> "It contains clarifications and tightened requirements." [let's assume
>>>> some things were unclear and that editorial improvements are clarifications]
>>>>
>>>
>>> Not all editorial improvements are clarifications.
>>>
>>>
>>>>
>>>> > Forbid negotiating TLS 1.0 and 1.1 as they are now deprecated by
>>>> [RFC8996].
>>>>
>>>> I know what's meant here, but deprecated does not mean forbidden. I
>>>> think you want to say "NOT RECOMMENDED" in RFC 2119 words, and give a brief
>>>> reason for that. [but keep reading]
>>>>
>>>
>>> This isn't normative text. However 8996 is entitled "Deprecating TLS 1.0
>>> and TLS 1.1" so I think this
>>> is fine.
>>>
>>>
>>>
>>>> > The protocol does not provide any forward secrecy guarantees for this
>>>> data.
>>>> > The server's behavior determines what forward secrecy
>>>> > guarantees, if any, apply (see Section 8.1). This behavior is
>>>> > not communicated to the client as part of the protocol.
>>>> > Therefore, absent out-of-band knowledge of the server's behavior,
>>>> > the client should assume that this data is not forward secret.
>>>>
>>>> Here, you use the term "out-of-band", but the PSK text replaced
>>>> "out-of-band" with "external[ly]". I can't tell whether this usage is
>>>> intentional.
>>>>
>>>
>>> It is. The PSKs here are resumption PSKs. They're not external. The out
>>> of band in
>>> question is knowledge about the server behavior.
>>>
>>>
>>>
>>>>
>>>> > Because TLS 1.3 forbids renegotiation, if a server has negotiated TLS
>>>> > 1.3 and receives a ClientHello at any other time, it MUST terminate
>>>>
>>>> "TLS 1.3 forbids renegotiation. If a server has negotiated TLS 1.3 and
>>>> receives a ClientHello at any other time, it MUST terminate..."
>>>>
>>>> [No starting sentences with "Because"]
>>>>
>>>
>>> I believe this is editor discretion.
>>>
>>>
>>>>
>>>> > Note that [RFC8996] and Appendix E.5 forbid the negotation of TLS
>>>> > versions below 1.2; implementations which do not follow that guidance
>>>> > MUST behave as described above.
>>>>
>>>> I think this makes my "NOT RECOMMENDED" suggestion above correct. A
>>>> forbidden "MUST NOT" wouldn't need this text.
>>>>
>>>
>>> I don't understand this argument. The point of this text is that people
>>> are forbidden
>>> to do previous versions by 8996, but we know some people won't so this
>>> is
>>> backup guidance. I think this is fine.
>>>
>>>
>>>
>>>
>>>>
>>>> > Unless otherwise specified, trailing data is forbidden.
>>>> > That is, senders MUST NOT include data after the structure in the
>>>> > "extension_data" field.
>>>>
>>>> This doesn't seem like "MUST NOT", since it could be "otherwise
>>>> specified". I think there needs to be a harsher choice made here, or just
>>>> leave it out.
>>>>
>>>
>>> This is actually fairly standard language.
>>>
>>>
>>>
>>>> > When processing an extension, receivers MUST
>>>> > abort the handshake with a "decode_error" alert if there is data left
>>>> > over after parsing the structure. This does not apply if the
>>>> > receiver does not implement or is configured to ignore an extension.
>>>>
>>>> Again, doesn't seem like a "MUST". But the following text says "This
>>>> does not apply", without clarifying what "this" is.
>>>>
>>>
>>> I don't follow your argument here either. It's a MUST for any extension
>>> you understand.
>>> Obviously, if you don't understand it, you can't comply with this. I'll
>>> attempt to clarify.
>>>
>>>
>>>> > After checking ServerHello.random to determine if the server
>>>> > handshake message is a ServerHello or HelloRetryRequest, clients MUST
>>>> > check for this extension prior to processing the rest of the
>>>> > ServerHello.  This will require clients to parse the ServerHello in
>>>> ...
>>>>
>>>> Another "this". Here, I think the text means "This requirement...", but
>>>> usually a rewrite can fix these ambiguities.
>>>>
>>>
>>> I don't think this one is unclear.
>>>
>>>
>>>> > In the absence of some other specification to the
>>>> > contrary, servers which are authenticating with an external PSK MUST
>>>> > NOT send the CertificateRequest message either in the main handshake
>>>> > or request post-handshake authentication.  [RFC8773] provides an
>>>> > extension to permit this, but has not received the level of analysis
>>>> > as this specification.
>>>>
>>>> Another one of these "In the absence of..." paragraphs. Maybe these are
>>>> intentional? They still sound really redundant to me.
>>>>
>>>
>>> They're intentional because we know there is actually such an RFC, but
>>> you have to
>>> actually use it.
>>>
>>>
>>>> > With a 128-bit key as in AES-128, rekeying 2^64 times has a high
>>>> > probability of key reuse within a given connection.  Note that even...
>>>>
>>>> It's almost always possible to drop "Note that..."
>>>>
>>>
>>> It is possible, but I prefer to leave it as-is.
>>>
>>>
>>>> The rest of this paragraph is really heavy on em dashes, and needs to
>>>> be rewritten. Some of them seem to be parentheticals, but I would try to
>>>> rewrite it as short sentences.
>>>>
>>>
>>> I'll take a look.
>>>
>>>
>>>
>>>> > Note that it is common practice in some protocols to use the same
>>>>
>>>> Another "Note that"
>>>>
>>>
>>> See above.
>>>
>>>
>>>>
>>>> > Note that purely deterministic ECC signatures such as deterministic
>>>> ECDSA and EdDSA ...
>>>>
>>>> ...
>>>>
>>>> > If the resumption_master_secret has been
>>>> > compromised, a resumption handshake with EC(DHE) gives protection
>>>> > against passive attackers and a full handshake with EC(DHE) gives
>>>> > protection against active attackers.
>>>>
>>>> Here, you mean "resumption_secret".
>>>>
>>>
>>> Thanks. Good catch.
>>>
>>>
>>>>
>>>> > Note: This specification does not currently permit the server to send
>>>>
>>>> The old text was better. No "Note:".
>>>>
>>>> The "currently" part seems like the wrong thing to write in an
>>>> immutable document. Maybe "TLS 1.3 does not currently..."?
>>>>
>>>
>>> I don't think this is a problem.
>>>
>>>
>>>>
>>>> > In the absence of some other specification to the contrary,
>>>> implementations...
>>>>
>>>> I must be missing the conversation on this stuff. How could anyone
>>>> write a spec if every requirement was prefaced with "in the absence of some
>>>> other specification to the contrary..."
>>>>
>>>
>>> The purpose of this text is to signpost that we know that there might be
>>> or
>>> in fact is is such a specification, as opposed to other requirements
>>> which
>>> we don't have any reason to think that about.
>>>
>>>
>>>>
>>>> > Amplifying existing information leaks caused by side effects like
>>>> > caching.  An attacker...
>>>>
>>>> Not a complete sentence here. I think it's just a typo.
>>>>
>>>
>>> Thanks. Will fix.
>>>
>>> -Ekr
>>>
>>>
>>>>
>>>> thanks,
>>>> Rob
>>>>
>>>>
>>>>
>>>> On Tue, Apr 4, 2023 at 7:32 PM Stephen Farrell <
>>>> stephen.farrell@cs.tcd.ie> wrote:
>>>>
>>>>>
>>>>> Hiya,
>>>>>
>>>>> On 05/04/2023 02:47, Sean Turner wrote:
>>>>> > A post IETF 116 bump to make sure folks get their reviews in. If you
>>>>> > look at the diffs from RFC 8446 you can see not that much has
>>>>> > changed. We will also take “I read it and it looks good” response.
>>>>>
>>>>> I looked at the diff between 8446bis-07 and 8446 and it seems
>>>>> fine to me. My only comment is that C.4 says one "SHOULD NOT
>>>>> reuse a key share" - I'd be happier if that was a "MUST NOT"
>>>>> but understand if we stick with SHOULD NOT. If there were a
>>>>> good reference showing that it's quite feasible to never
>>>>> deliberately re-use a key share, even at scale, that'd be a fine
>>>>> addition. (I don't have such a reference to offer,
>>>>> sorry;-)
>>>>>
>>>>> Cheers,
>>>>> S.
>>>>> _______________________________________________
>>>>> TLS mailing list
>>>>> TLS@ietf.org
>>>>> https://www.ietf.org/mailman/listinfo/tls
>>>>>
>>>> _______________________________________________
>>>> TLS mailing list
>>>> TLS@ietf.org
>>>> https://www.ietf.org/mailman/listinfo/tls
>>>>
>>>