On Mon, Mar 08, 2021 at 07:08:31PM -0800, Carrick Bartle wrote:

> > I think the blanket prohibition of reuse of ECDHE keys is maybe not
> > really justified.
> 
> Why is that?

Because there are still many TLS (non-web) implementations that don't
do ECDHE.

Is there a credible active MiTM attack that can cause a server and
client both capable of ECDHE to use FFDHE or RSA key exchange?

If so, a properly scoped (to the web or the public Internet, ...)
deprecation of FFDHE and RSA key exchange is then justified.

If not, then I am cursed to ever repeat a key message of RFC7435:

    * In practice security improves more when you raise the ceiling,
      rather the floor.

    * If you set the bar too high, users will resort to less secure,
      but more accessible technologies.

If your basic protocol is basically sound (has downgrade-resistant
feature negotiation) then deprecation can be counter-productive in
the short to medium term, so long as a non-negligible fraction of
the installed base is then no longer tall enough to take the ride.

Therefore, a better approach may be to recommend that for key
exchange ECDHE should be prioritised ahead of EDH and RSA.

The effort may also be largely redundant, affecting only the
deployments that are likely to end up resorting to suboptimal
choices.

Below, for example, is the default TLS 1.2 ordered cipherlist for
OpenSSL 1.1.1.  All other parameters being equal, in each group
the order is kECDHE+aECDSA, kECDHE+aRSA and finally kDHE+aRSA:

  ECDHE-ECDSA-AES256-GCM-SHA384 TLSv1.2 Kx=ECDH   Au=ECDSA Enc=AESGCM(256) 
Mac=AEAD
  ECDHE-RSA-AES256-GCM-SHA384   TLSv1.2 Kx=ECDH   Au=RSA  Enc=AESGCM(256) 
Mac=AEAD
  DHE-RSA-AES256-GCM-SHA384     TLSv1.2 Kx=DH     Au=RSA  Enc=AESGCM(256) 
Mac=AEAD

  ECDHE-ECDSA-CHACHA20-POLY1305 TLSv1.2 Kx=ECDH   Au=ECDSA 
Enc=CHACHA20/POLY1305(256) Mac=AEAD
  ECDHE-RSA-CHACHA20-POLY1305   TLSv1.2 Kx=ECDH   Au=RSA  
Enc=CHACHA20/POLY1305(256) Mac=AEAD
  DHE-RSA-CHACHA20-POLY1305     TLSv1.2 Kx=DH     Au=RSA  
Enc=CHACHA20/POLY1305(256) Mac=AEAD

  ECDHE-ECDSA-AES128-GCM-SHA256 TLSv1.2 Kx=ECDH   Au=ECDSA Enc=AESGCM(128) 
Mac=AEAD
  ECDHE-RSA-AES128-GCM-SHA256   TLSv1.2 Kx=ECDH   Au=RSA  Enc=AESGCM(128) 
Mac=AEAD
  DHE-RSA-AES128-GCM-SHA256     TLSv1.2 Kx=DH     Au=RSA  Enc=AESGCM(128) 
Mac=AEAD

  ECDHE-ECDSA-AES256-SHA384     TLSv1.2 Kx=ECDH   Au=ECDSA Enc=AES(256)  
Mac=SHA384
  ECDHE-RSA-AES256-SHA384       TLSv1.2 Kx=ECDH   Au=RSA  Enc=AES(256)  
Mac=SHA384
  DHE-RSA-AES256-SHA256         TLSv1.2 Kx=DH     Au=RSA  Enc=AES(256)  
Mac=SHA256

  ECDHE-ECDSA-AES128-SHA256     TLSv1.2 Kx=ECDH   Au=ECDSA Enc=AES(128)  
Mac=SHA256
  ECDHE-RSA-AES128-SHA256       TLSv1.2 Kx=ECDH   Au=RSA  Enc=AES(128)  
Mac=SHA256
  DHE-RSA-AES128-SHA256         TLSv1.2 Kx=DH     Au=RSA  Enc=AES(128)  
Mac=SHA256

  ECDHE-ECDSA-AES256-SHA        TLSv1 Kx=ECDH     Au=ECDSA Enc=AES(256)  
Mac=SHA1
  ECDHE-RSA-AES256-SHA          TLSv1 Kx=ECDH     Au=RSA  Enc=AES(256)  Mac=SHA1
  DHE-RSA-AES256-SHA            SSLv3 Kx=DH       Au=RSA  Enc=AES(256)  Mac=SHA1

  ECDHE-ECDSA-AES128-SHA        TLSv1 Kx=ECDH     Au=ECDSA Enc=AES(128)  
Mac=SHA1
  ECDHE-RSA-AES128-SHA          TLSv1 Kx=ECDH     Au=RSA  Enc=AES(128)  Mac=SHA1
  DHE-RSA-AES128-SHA            SSLv3 Kx=DH       Au=RSA  Enc=AES(128)  Mac=SHA1

  -- Finally, last resort kRSA
  AES256-GCM-SHA384             TLSv1.2 Kx=RSA    Au=RSA  Enc=AESGCM(256) 
Mac=AEAD
  AES128-GCM-SHA256             TLSv1.2 Kx=RSA    Au=RSA  Enc=AESGCM(128) 
Mac=AEAD
  AES256-SHA256                 TLSv1.2 Kx=RSA    Au=RSA  Enc=AES(256)  
Mac=SHA256
  AES128-SHA256                 TLSv1.2 Kx=RSA    Au=RSA  Enc=AES(128)  
Mac=SHA256
  AES256-SHA                    SSLv3 Kx=RSA      Au=RSA  Enc=AES(256)  Mac=SHA1
  AES128-SHA                    SSLv3 Kx=RSA      Au=RSA  Enc=AES(128)  Mac=SHA1

There's hardly any need to goad the ecosystem to prefer ECDHE when
available, that's already done.

> > IMO that's the part that should have deprecation of RSA cipher
> > suites done at the same time.

Here of course RSA means RSA key exchange, not RSA signatures.

> RSA seems to me to be too off-topic for this draft. (It also seems to
> me that RSA is still too widely used and not broken enough to merit
> deprecation.) If you think this draft requires that RSA key exchange
> also be deprecated, that could be done in a parallel draft.

I think there's a valid point here, either deprecate "kRSA" first
or both together.  Making it clear that no auditor's checklist
should become "green" by disabling DHE and leaving just RSA
key exchange standing.

-- 
    Viktor.

_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to