Re: [Uta] Robert Wilton's Discuss on draft-ietf-uta-rfc7525bis-09: (with DISCUSS and COMMENT)

Peter Saint-Andre <stpeter@stpeter.im> Tue, 19 July 2022 15:45 UTC

Return-Path: <stpeter@stpeter.im>
X-Original-To: uta@ietfa.amsl.com
Delivered-To: uta@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 1A4B2C15AE3C; Tue, 19 Jul 2022 08:45:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.109
X-Spam-Level:
X-Spam-Status: No, score=-2.109 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, NICE_REPLY_A=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, 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=stpeter.im header.b=kqiznjLk; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=GT0gMpTN
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 6wQXdGVCr2sN; Tue, 19 Jul 2022 08:45:49 -0700 (PDT)
Received: from wout3-smtp.messagingengine.com (wout3-smtp.messagingengine.com [64.147.123.19]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 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 19D42C157B59; Tue, 19 Jul 2022 08:45:48 -0700 (PDT)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.west.internal (Postfix) with ESMTP id 2388F3200916; Tue, 19 Jul 2022 11:45:45 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Tue, 19 Jul 2022 11:45:45 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stpeter.im; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to; s=fm1; t=1658245544; x= 1658331944; bh=CCprNIZi3gU/30BM7zYUUBzEZbAEml02hFiaPgr3P0M=; b=k qiznjLk8F2BOZIQ5XVxoj74xvX6U6z9f6vJL4+y1f+785njTZt/VolceKqlEHKMv eBXVPmrdC8WyDSOhW2g4NHuHB6NFxA8oQLUwrdW/HBOeUR+I15cqbTr5Qr1TzF+V zHFNLzbLrrsRc8ELyILYsz1lpSbqvW6vF3k570wU2qBXv9sviH2zD1T5eWxZbAe4 ehrhW0UuUnPLPLv8Doe+06wlqk0j8DSGf3hLLmReq6HzO28Jw7qjVRA/sf4JUnsg nMSm3WADKGKOG/sZvnIyQagsaRPiJJbGC+nYzyQ2YH3csLzc+4ZiFXKc2SQx/TbR PLJv9cGngYIF7nPhheiqw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:sender:subject:subject:to:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1658245544; x= 1658331944; bh=CCprNIZi3gU/30BM7zYUUBzEZbAEml02hFiaPgr3P0M=; b=G T0gMpTNrMK7FyyL9Ir5AALCN4BszGVzvSDO13yIKnVEPSCgrDTMhZl78nfVoD6tE 6mI+/idx1JHDWaS8D3nmogYFAZRZ50uMqYISvvJicmcD8jbR8B4pKqSYxWuq3ts1 wQKe51emY7kEYUl5c1BKNygmEh7gibV40ZKF/gKDzJW/+jXOoMdzG/i+GYJ9qTeo Zo6bm3Uw3V+8/jiOm5s9Ie7j9yBeNVqdZZ2dFN+nDiaBfJmnNo2mQHuo61PRTzWZ jgbjiXtnRi/cybsxEgZTQRsWsfqLVj7AiZVQSJKCcCaMS0AH0tRGWThUtRNGxZLC Ga4e58NdFJQnkJ3jHYycw==
X-ME-Sender: <xms:p9HWYvoiAHDgbmmpKFINQoktXWmwbswZ88SPu3KTcsh7ZmlsEuFJhw> <xme:p9HWYpqc6SHMYChq0q6-bUUNyC9TR0xk0ypOPNY1eWA-vxLASY6oGt7cmCek_zezl 7q7zgOCBG_tNdUgng>
X-ME-Received: <xmr:p9HWYsNhgjRfDtGCne492glR4AcG-qJX5OX5FvLMl8hYEUq8wSFD4a2_zaySb36U>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrudeltddgledvucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepkfffgggfvfevfhfhufgjtgfgsehtkeertddtfeejnecuhfhrohhmpefrvght vghrucfurghinhhtqdetnhgurhgvuceoshhtphgvthgvrhesshhtphgvthgvrhdrihhmqe enucggtffrrghtthgvrhhnpeevuddtvdehheegueekleelvddtjefhgfdtvdetfefhffev udelgfdtudfhheeggeenucffohhmrghinhepghhithhhuhgsrdgtohhmnecuvehluhhsth gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepshhtphgvthgvrhesshht phgvthgvrhdrihhm
X-ME-Proxy: <xmx:p9HWYi4-AP7odoFuBYdx1lz8i9PAkL-l8StNdQx4tertqqoeqF1XLQ> <xmx:p9HWYu6Ro9DgZ_ZCagg_7bsVFKZNzjal2QjJN8ahKJB4xtH-6vx5Jw> <xmx:p9HWYqiSDzfb_vS2xYF6VMJnBGj0zSyZg7C4VkI7gqNkJCi_ir_xqA> <xmx:qNHWYgS4OHS42wMofz90SahBfGOOgDI2gpaWySLpZbzw2PIi9TTQfQ>
Feedback-ID: i24394279:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA; Tue, 19 Jul 2022 11:45:42 -0400 (EDT)
Message-ID: <6c2da094-3f7b-bbbc-df4d-c21a8c2ad168@stpeter.im>
Date: Tue, 19 Jul 2022 09:45:40 -0600
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.11.0
Content-Language: en-US
To: "Rob Wilton (rwilton)" <rwilton@cisco.com>, The IESG <iesg@ietf.org>
Cc: "draft-ietf-uta-rfc7525bis@ietf.org" <draft-ietf-uta-rfc7525bis@ietf.org>, "uta-chairs@ietf.org" <uta-chairs@ietf.org>, "uta@ietf.org" <uta@ietf.org>, "leifj@sunet.se" <leifj@sunet.se>
References: <165779144446.10023.16857085823147739769@ietfa.amsl.com> <799e5773-9fa4-b06a-38d1-138c43c5cfd9@stpeter.im> <73b662b2-5aba-0b32-12cd-80ffa5cd1fd5@stpeter.im> <MN2PR11MB42073D7A0863D0C3B0100479B58F9@MN2PR11MB4207.namprd11.prod.outlook.com> <7209f5c7-c94b-90e8-c389-db541dce0513@stpeter.im> <BY5PR11MB419644778D6884C0B22F56CDB58F9@BY5PR11MB4196.namprd11.prod.outlook.com>
From: Peter Saint-Andre <stpeter@stpeter.im>
In-Reply-To: <BY5PR11MB419644778D6884C0B22F56CDB58F9@BY5PR11MB4196.namprd11.prod.outlook.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/uta/FoQWHXamAl0T4Dpe27VZAM5Orj4>
Subject: Re: [Uta] Robert Wilton's Discuss on draft-ietf-uta-rfc7525bis-09: (with DISCUSS and COMMENT)
X-BeenThere: uta@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: UTA working group mailing list <uta.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/uta>, <mailto:uta-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/uta/>
List-Post: <mailto:uta@ietf.org>
List-Help: <mailto:uta-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/uta>, <mailto:uta-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Jul 2022 15:45:54 -0000

We're getting there. :-) See below.

On 7/19/22 9:14 AM, Rob Wilton (rwilton) wrote:
> Hi Peter,
> 
> More inline ...
> 
>> -----Original Message-----
>> From: Peter Saint-Andre <stpeter@stpeter.im>
>> Sent: 19 July 2022 14:59
>> To: Rob Wilton (rwilton) <rwilton@cisco.com>; The IESG <iesg@ietf.org>
>> Cc: draft-ietf-uta-rfc7525bis@ietf.org; uta-chairs@ietf.org; uta@ietf.org;
>> leifj@sunet.se
>> Subject: Re: Robert Wilton's Discuss on draft-ietf-uta-rfc7525bis-09: (with
>> DISCUSS and COMMENT)
>>
>> Hi Rob, more follow-up inline.
>>
>> On 7/19/22 3:42 AM, Rob Wilton (rwilton) wrote:
>>> Hi Peter,
>>>
>>> Thanks for the further information.  I'm not sure whether we have quite
>> met in the middle yet, some further comments below.
>>>
>>>
>>>> -----Original Message-----
>>>> From: Peter Saint-Andre <stpeter@stpeter.im>
>>>> Sent: 18 July 2022 18:56
>>>> To: Rob Wilton (rwilton) <rwilton@cisco.com>; The IESG <iesg@ietf.org>
>>>> Cc: draft-ietf-uta-rfc7525bis@ietf.org; uta-chairs@ietf.org; uta@ietf.org;
>>>> leifj@sunet.se
>>>> Subject: Re: Robert Wilton's Discuss on draft-ietf-uta-rfc7525bis-09: (with
>>>> DISCUSS and COMMENT)
>>>>
>>>> Hi Rob, I'm circling back to an earlier point in the thread to cover all
>>>> of the issues. (Thomas and I just discussed these topics, but Yaron was
>>>> not able to join our call because of illness.)
>>>>
>>>> On 7/14/22 9:06 AM, Peter Saint-Andre wrote:
>>>>> Hi Robert, thanks for the review. Comments inline.
>>>>>
>>>>> On 7/14/22 3:37 AM, Robert Wilton via Datatracker wrote:
>>>>>> Robert Wilton has entered the following ballot position for
>>>>>> draft-ietf-uta-rfc7525bis-09: Discuss
>>>>>>
>>
>> <snip/>
>>
>>>>>> (2)
>>>>>>               *  New protocol designs that embed TLS mechanisms SHOULD
>>>>>> use only TLS
>>>>>>                  1.3 and SHOULD NOT use TLS 1.2; for instance, QUIC
>>>>>> [RFC9001]) took
>>>>>>                  this approach.  As a result, implementations of such
>>>>>> newly-
>>>>>>                  developed protocols SHOULD support TLS 1.3 only with no
>>>>>>                  negotiation of earlier versions.
>>>>>>
>>>>>> Why is this only a SHOULD and not a MUST?  If a new protocol (rather
>>>>>> than an
>>>>>> updated version of an existing protocol) was being designed why would
>>>>>> it be
>>>>>> reasonable to design it to support TLS 1.2?  If you want to keep these
>> as
>>>>>> SHOULD rather than MUSTs then please can the document specify
>> under
>>>> what
>>>>>> circumstances it would be reasonable for a new protocol design to use
>>>>>> TLS 1.2.
>>>>>
>>>>> Although personally I'm open to MUST here, I'd like to discuss that with
>>>>> my co-authors (one of whom is offline this week).
>>>>
>>>> Unfortunately Yaron was not able to join our call, but Thomas and I
>>>> discussed it and we think there could be two different cases:
>>>>
>>>> (a) new security-focused protocols such as QUIC
>>>>
>>>> (b) new application protocols (say, for real-time collaboration)
>>>>
>>>> For (a), it definitely makes sense to use TLS 1.3 only (as noted in the
>>>> current text, QUIC uses the TLS handshake protocol with a different
>>>> record layer).
>>>
>>> Okay.  But I still note that the text for this is still only SHOULD rather than
>> MUST.  I can live with this, even though I still believe that MUST would be
>> better.
>>
>> The confusion arises from the fact that this bit of text is making
>> recommendations for two kinds of protocols: secure transport protocols
>> like QUIC and application protocols like IMAP. Their layering with TLS
>> is quite different. I think we probably want to say MUST 1.3 for the
>> former and SHOULD 1.3 for the latter, which would clear up your next
>> point...
> 
> Okay.  I'll leave it to the authors discretion, but I would suggest that it may be worth adding a sentence to indicate under what circumstances the SHOULD applies here.  I.e., you could add a sentence to your rationale to help justify when a new protocol might choose to use TLS 1.2 rather than TLS 1.3.

Here is the provisional text I just checked into GitHub, see 
https://github.com/yaronf/I-D/pull/464/files

###

* New transport protocols that integrate the TLS/DTLS handshake protocol 
and/or record layer MUST use only TLS/DTLS 1.3 (for instance, QUIC 
{{RFC9001}}) took this approach) and new application protocols that 
employ TLS/DTLS for channel or session encryption MUST use TLS/DTLS 1.2 
and/or 1.3.  Implementations would then adhere to the TLS/DTLS version 
used by the relevant protocol.

   Rationale: Although secure deployment of TLS 1.3 is easier and less 
error-prone than TLS 1.2 because of the need to follow the 
recommendations provided in this document for secure deployment of TLS 
1.2, development of new transport protocols is significantly more 
complex than simply re-using the existing support for TLS/DTLS in 
underlying libraries or operating systems as is usually done in 
application protocols.

###

>>>> For (b), we see reasons why it might make sense to build on top of both
>>>> TLS 1.2 and TLS 1.3 at the present time: for instance, implementations
>>>> might want to "cast a wide net" in terms of underlying library or
>>>> operating support and thus avoid the significant effort involved in
>>>> building a secure transport protocol such as QUIC. Naturally, this
>>>> advice will probably change in 7525ter a few years from now.
>>>
>>> Yes, I can see why it *might* make sense and implementations *might*
>> want to cast a wide net, which is why I think that SHOULD is better than
>> MUST.  I.e., SHOULD means that implementations must support TLS 1.2
>> unless they have a good reason not to, whereas MUST means that they are
>> required to deploy TLS 1.2 even in scenarios where they know that all clients
>> support TLS 1.3, and don't want to pay the additional administration
>> overhead of safely deploying and maintaining TLS 1.2 ...
>>>
>>> However, I think that I've stated my opinion, and if you want to keep it as a
>> MUST, I will acquiesce and remove my blocking discuss on this point.
>>
>> Would the change suggested above address your concerns?
> 
> Not sure.  Although the placing of my comment above wasn't particularly clear, it was intended to be related to the "Implementations MUST support TLS 1.2" statement.
> 
> So, consider NETCONF, a network management protocols for configuring network devices and retrieving operational data, there is a new draft to allow NETCONF to run over TLS 1.3.  NETCONF effectively runs in a closed management domain where a single entity (the operator) has control over all NETCONF servers (i.e., network devices) and all management clients and controllers.  In this scenario, if all clients and devices support TLS 1.3 then I would think that it is easier/simpler for them to just deploy TLS 1.3, but that would seem to conflict with the "Implementations must support TLS 1.2" statement.
> 
> But it is possible that I'm misunderstanding this section/text. Perhaps the disagreement (or my confusion) is that I interpret "Implementations MUST support TLS 1.2" to mean that deployments MUST allow clients to use TLS 1.2 (e.g., if I setup an IMAP server, I have to allow TLS 1.2 clients), whereas the constraint is only mean to be on the software itself.  I.e., my IMAP server code must be capable of supporting TLS 1.2, but it can be deployed to only negotiate TLS 1.3?

Well, implementation != deployment and we've tried to be careful about 
that distinction in the document. Administrators who deploy live 
services using a software or hardware implementation are of course free 
to (and often encouraged to) do so in the most secure manner possible 
for feasible for them. Thus a service isn't forced to offer TLS 1.2 if 
they want to offer 1.3 only, but we're saying that the implementation 
needs to support both of these recommended versions.

>>>>>> (3)
>>>>>>                                                               When TLS-only
>>>>>>          communication is available for a certain protocol, it MUST be used
>>>>>>          by implementations and MUST be configured by
>>>> administrators.  When
>>>>>>          a protocol only supports dynamic upgrade, implementations MUST
>>>>>>          provide a strict local policy (a policy that forbids use of
>>>>>>          plaintext in the absence of a negotiated TLS channel) and
>>>>>>          administrators MUST use this policy.
>>>>>>
>>>>>> The MUSTs feel too strong here, since there are surely deployments
>> and
>>>>>> streams
>>>>>> of data where encryption, whilst beneficial, isn't an absolute
>>>>>> requirement?
>>>>>>
>>>>>> In addition "MUST be used by implementations and MUST be
>> configured
>>>> by
>>>>>> administrators" also seem to conflict, i.e., if the implementation
>>>>>> must use it
>>>>>> then why would an administrator have to enable it?
>>>>>
>>>>> I believe this is a duplicate of an issue that other folks have already
>>>>> raised:
>>>>>
>>>>> https://github.com/yaronf/I-D/issues/437
>>>>
>>>> At https://github.com/yaronf/I-D/pull/461 I'm proposing the following
>> text:
>>>>
>>>> ###
>>>>
>>>> When TLS-only communication is available for a certain protocol, it MUST
>>>> be supported by implementations and MUST be configured by
>> administrators
>>>> in preference to a dynamic upgrade method. When a protocol only
>> supports
>>>> dynamic upgrade, implementations MUST provide a way for
>> administrators
>>>> to set a strict local policy that forbids use of plaintext in the
>>>> absence of a negotiated TLS channel, and administrators MUST use this
>>>> policy.
>>>
>>> I appreciate that the context of this text is the upgrade case (which makes
>> sense), but I'm still able to read this text as casting a wider net than hopefully
>> intended.  I.e., I'm still concerned that someone could quote this text to say
>> that unencrypted comms is strictly not allowed anywhere, whenever a TLS
>> version of the protocol exists, and whilst I entirely agree that using TLS is
>> appropriate in the vast majority of places, I'm not convinced that is
>> everywhere.
>>
>> If people want to run unencrypted communications, that's their business,
>> but this document is about how best to use TLS once you've chosen to do
>> so, not about whether to use TLS in the first place.
> 
> Okay.
> 
> 
>>
>>> Hence, I wonder whether we could restructure the first sentence to ensure
>> that it's scope if focused purely on the upgrade scenario.  I.e., I suggest
>> something like the following for the first sentence:
>>>
>>> "When a protocol defines both a dynamic upgrade method and a separate
>> TLS-only channel, then the separate TLS-only channel MUST be supported by
>> implementations and MUST be configured by administrators to be used in
>> preference to the dynamic upgrade method."
>>
>> That's what we were trying to say, so your phrasing seems fine to me.
>> However, I feel that "channel" could be confusing and would prefer
>> "method" in both cases.
> 
> Sure.

Great. Updated text at https://github.com/yaronf/I-D/pull/461/files as 
follows:

###

* Many existing application protocols were designed before the use of 
TLS became common. These protocols typically support TLS in one of two 
ways: either via a separate port for TLS-only communication (e.g., port 
443 for HTTPS) or via a method for dynamically upgrading a channel from 
unencrypted to TLS-protected (e.g., STARTTLS, which is used in protocols 
such as IMAP and XMPP). Regardless of the mechanism for protecting the 
communication channel (TLS-only port or dynamic upgrade), what matters 
is the end state of the channel. When a protocol defines both a dynamic 
upgrade method and a separate TLS-only method, then the separate 
TLS-only method MUST be supported by implementations and MUST be 
configured by administrators to be used in preference to the dynamic 
upgrade method.  When a protocol supports only a dynamic upgrade, 
implementations MUST provide a way for administrators to set a strict 
local policy that forbids use of plaintext in the absence of a 
negotiated TLS channel, and administrators MUST use this policy.

###

Peter