> 1. Why would the server ever receive a TLS 1.2 or below ClientHello from a > client that supports TLS 1.3? Why doesn't the already-standardized downgrade > SCSV mechanism work for those cases?
The attack we’re protecting against is the following: - a TLS 1.3 client sends a client hello and the MitM changes the version field to TLS 1.0 (say) with some weak signature-based ciphersuite (e.g. DHE/DHE-EXPORT + AES-CBC) - for good measure, the MitM also drops any protocol extensions that are inconvenient (e.g. FFDHE/extended master secret/…) - the TLS 1.3 server thinks the client does not support TLS 1.3 and so falls back to the requested protocol - in TLS 1.0, the server signature does not include the version, ciphersuite, or extensions, so the client accepts the server flight and computes a master secret and finished message Now, the crucial step is that if the downgraded protocol is so weak that the attacker can (with some computational effort) forge the server’s finished message, the connection will complete. There are some instances in which the attacker may be able to achieve this: by breaking SHA-1, or a weak DHE group, by redoing some variation of the triple handshake attack, or by exploiting some software bug in a rarely used low-preference ciphersuite. Note that the client did not fallback, the server did, so Fallback SCSV does not apply. The key observation is that downgrade protection in TLS 1.2 (and below) relies on the Finished MAC, but the elements that go into computing this MAC (DH group, hash algorithm) are themselves negotiated within the handshake and may be downgraded. This is a fundamental protocol limitation that is addressed by TLS 1.3. Now, our goal is to protect TLS 1.3 itself from older protocol versions. From an academic researcher’s viewpoint, there are two reasons to suggest such a countermeasure. 1) Historically, signalling the ciphersuite in the server signature would have prevented high-profile attacks like FREAK, Logjam, and the cross-protocol attack between ECDHE/DHE in 2012. I agree that trying to protect from potential attacks may seem speculative, but the idea is to provide some additional protection against future attacks even if all TLS clients and servers are not immediately patched. 2) Looking forward, a number of researchers would like to give a strong security theorem for TLS 1.3, but at present we would not be able to guarantee security for any TLS 1.3 implementation that also implements older protocol versions, because we would then also have to prove secure all the ciphersuites used in these old versions (some of which are certainly broken from the point of view of provable security). For our proofs, we’d like nothing better than to be able to assume that older versions of TLS have been disabled, but I guess that is unlikely to happen soon. It would have been nice not to rely on a “clever” trick, but we could not see how else to add any mechanism that could itself not be deleted by an attacker in older versions. TLS has a long history of signalling downgrades in strange ways. The RSA PMS still includes the protocol version due to an old SSL3->SSL2 downgrade attack. The Fallback SCSV is a signal encoded in a bogus ciphersuite, because SSL3 does not support extensions. These are all unfortunate hacks, made necessary by the limited handshake protections in older versions. The chief benefit is that we can then protect clients and servers that implement our brand new protocol version. Best, Karthik > > Cheers, > Brian > _______________________________________________ > 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