> On Sep 9, 2021, at 15:40, David Benjamin <david...@chromium.org> wrote: > > On Thu, Sep 9, 2021 at 2:12 PM Sean Turner <s...@sn3rd.com> wrote: > > > On Sep 4, 2021, at 17:45, David Benjamin <david...@chromium.org> wrote: > > > > On Fri, Sep 3, 2021 at 1:24 PM Hubert Kario <hka...@redhat.com> wrote: > > On Friday, 3 September 2021 18:00:12 CEST, internet-dra...@ietf.org wrote: > > > A New Internet-Draft is available from the on-line > > > Internet-Drafts directories. > > > This draft is a work item of the Transport Layer Security WG of the IETF. > > > > > > Title : Deprecating MD5 and SHA-1 signature > > > hashes in (D)TLS 1.2 > > > Authors : Loganaden Velvindron > > > Kathleen Moriarty > > > Alessandro Ghedini > > > Filename : draft-ietf-tls-md5-sha1-deprecate-08.txt > > > Pages : 6 > > > Date : 2021-09-03 > > > > > > Abstract: > > > The MD5 and SHA-1 hashing algorithms are increasingly vulnerable to > > > attack and this document deprecates their use in TLS 1.2 digital > > > signatures. However, this document does not deprecate SHA-1 in HMAC > > > for record protection. This document updates RFC 5246. > > > > > > > > > The IETF datatracker status page for this draft is: > > > https://datatracker.ietf.org/doc/draft-ietf-tls-md5-sha1-deprecate/ > > > > > > There is also an htmlized version available at: > > > https://datatracker.ietf.org/doc/html/draft-ietf-tls-md5-sha1-deprecate-08 > > > > > Servers SHOULD NOT include MD5 and SHA-1 in CertificateRequest > > > messages. > > > > > Clients MUST NOT include MD5 and SHA-1 in CertificateVerify messages. > > > If a server receives a CertificateVerify message with MD5 or SHA-1 it > > > MUST abort the connection with handshake_failure or > > > insufficient_security alert. > > > > As written, this would make already existing implementations not RFC > > compliant > > when they are configured to not support SHA-1. > > > > RFC5246 requires the server to abort with illegal_parameter if the > > CV included an algorithm that wasn't advertised in CR. > > > > Ah, good catch. There's also some odd asymmetry here. Section 4 talks about > > a server being unable to *send* a ServerKeyExchange (and uses the correct > > alerts). It says nothing about the client *receiving* an invalid (by > > ClientHello) ServerKeyExchange which is, as in the case you describe, an > > illegal_parameter. Meanwhile, Section 5 talks about the server *receiving* > > an invalid (by CertificateRequest) CertificateVerify, and with the wrong > > alerts. It says nothing about the client being unable to *send* a > > CertificateVerify. > > > > I don't feel very strongly about whether we talk about sending, receiving, > > or both, for each of these messages. But we should be consistent and use > > the right alerts. (Or we could just talk about preferences and let the > > message behavior fall out of that.) > > I think what might solve this is the following (I just included all of the > text with 2119-language because there isn’t much of it): > > 2. Signature Algorithms > > Clients MUST include the signature_algorithms extension. Clients > MUST NOT include MD5 and SHA-1 in this extension. > > 3. Certificate Request > > Servers SHOULD NOT include MD5 and SHA-1 in CertificateRequest > messages. > > 4. Server Key Exchange > > Servers MUST NOT include MD5 and SHA-1 in ServerKeyExchange messages. > If the client receives a ServerKeyExchange message indicating MD5 or > SHA-1, then it MUST abort the connection with an illegal_parameter > alert. > > 5. Certificate Verify > > Clients MUST NOT include MD5 and SHA-1 in CertificateVerify messages. > If a server receives a CertificateVerify message with MD5 or SHA-1, then > it MUST abort the connection with illegal_parameter alert. > > LGTM with one comment. (Sorry, for all the last-minute comments! I didn't > notice this in my last email. :-( ) It is a little odd that servers > advertising MD5/SHA1 in CertificateRequest is merely a SHOULD NOT, but > rejecting them in CertificateVerify is a MUST NOT. Though that's also present > in the existing text. I forget how we ended up here. Was it to allow for > SHA-1 in the Certificate message? > > ...I wonder if that's why we ended up with the funny alerts. Because if the > server declines to do the SHOULD NOT, the client isn't doing anything wrong, > protocol-wise, by taking the server up on its offer of SHA-1. > > If we want to keep it very simple, we could upgrade section 3 to MUST NOT and > avoid this problem, but I don't know if there was some reason for the > asymmetric expectations here. We could also condition the server rule in > section 5 on having taken the SHOULD NOT in section 3. (Prior to TLS 1.3, > there is no way to say "SHA-1 is okay in Certificate, but not okay in > CertificateVerify/ServerKeyExchange".) > > David
A lot of this was born out of the deprecate TLS 1/1.1 RFC that spun this I-D off. I believe this is the thread back in mid-2019: https://mailarchive.ietf.org/arch/msg/tls/qTlDYpSlSe6Mf2zDV_iqOXO-6xo/ spt _______________________________________________ TLS mailing list TLS@ietf.org https://www.ietf.org/mailman/listinfo/tls