On Wed, Apr 5, 2023 at 12:26 PM Eric Rescorla <e...@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 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 <say...@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.farr...@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 >> >
_______________________________________________ TLS mailing list TLS@ietf.org https://www.ietf.org/mailman/listinfo/tls