A few more words on this proposal.

- The goal is to protect TLS 1.3 clients and servers from attacks on TLS 1.* 
ciphersuites.
   E.g. if a new attack on the MD5 | SHA1 concatenation in TLS 1.0 is 
announced, 
   connections between TLS 1.3 clients and servers would still be protected.
   Similarly, if the Apache default 1024-bit DHE group is broken, connections 
between
   TLS 1.3 clients and servers remain unaffected.
   (In the current TLS 1.3 design, an attacker could downgrade the connection 
and break
    it in both these cases. No, the fallback SCSV does not help.)

- We propose to fix the first N bits of the server random, but we can carry 
whatever information we want here.
   Protocol version + ciphersuite sounds like a good start to use up 4 bytes.
   (This would, for example, have protected TLS 1.2 against the Logjam attack 
on TLS 1.0.)

- The key idea is that the server random is signed even in older versions of 
TLS, and so
   we will get downgrade protection for free, without modifying these older 
versions in any way.
   (A protocol extension for TLS 1.* would not work, since the extension itself 
could be deleted by the attacker.)

- The first 4 bytes were traditionally used for a timestamp, so using (say) 4 
bytes in a new way 
  does not lose entropy/replay-protection in comparison for servers that 
implement timestamps. 
  However, we do lose some replay-protection when compared to servers that use 
the full 32 bytes. 

- There is a 1/(2^N) chance that valid connections to TLS 1.2 servers will be 
dropped by
   TLS 1.3 clients, because of this proposal. This only happens for servers 
that do not 
   use the unix timestamp (the current timestamp is greater than 0304xxxx).
   Still, we need to carefully choose N so that this risk of connection 
dropping is acceptable.

- The proposed mechanism only protects TLS 1.3 clients and servers that 
exclusively support     
   signature-based ciphersuites (DHE/ECDHE) even for older versions of TLS. 
E.g. it does not 
   protect against downgrade to RSA or PSK ciphersuites. 

- We note that RSA ciphersuites already provide a version downgrade mitigation, 
  although it has itself caused many headaches due to bleichenbacher attacks.
  But if a server implements good side-channel resistance to bleichenbacher 
attacks,
  TLS 1.3 can be protected from downgrades to both RSA and (EC)DHE ciphersuites 
in
  older protocol versions.



> On 09 Oct 2015, at 14:23, Eric Rescorla <e...@rtfm.com> wrote:
> 
> Hi folks,
> 
> Please take a look at the following PR which documents a suggestion
> made by Karthik Bhargavan about how to prevent protection against
> downgrade against downgrade from TLS 1.3 to TLS 1.2 and below.
> 
>   https://github.com/tlswg/tls13-spec/pull/284 
> <https://github.com/tlswg/tls13-spec/pull/284>
> 
> The idea is that if a TLS 1.3 server receives a TLS 1.2 or below
> ClientHello, it sets the top N bits of the ServerRandom to be a
> specific fixed value. TLS 1.3 clients which receive a TLS 1.2 or below
> ServerHello check for this value and abort if they receive it. This
> allows for detection of downgrade attacks over and above the Finished
> handshake as long as ephemeral cipher suites are used (because the
> signature on the ServerKeyExchange covers the random values). No
> protection is provided for static RSA cipher suites, but this still
> has some value if you have an attack which only affects (EC)DHE.
> 
> I've written this up with 48 bits and a specific fixed value (03 04 03
> 04 03 04) but that's just a strawman and we can bikeshed on that if
> people think this is a good idea.
> 
> Thanks,
> -Ekr
> 
> _______________________________________________
> 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

Reply via email to