Carrick Bartle <cbartle...@icloud.com> wrote:

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

PFS isn't all-or-nothing. I do think each key should be used when
practical, although I don't know why it would be bad to reuse a key for a
very short period of time. E.g. if one has a key, and as soon as it is used
once, asynchronously kicks off the generation of its replacement, then
using that key until the replacement has been generated seems OK to me.
Things get more problematic the longer/more the key is reused.

IMO that's the part that should have deprecation of RSA cipher suites done
> at the same time.
>
> 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.
>

RSA is on-topic because deprecating DHE cipher suites quite directly leads
to more use of RSA key exchange. There's already evidence of this from
Firefox, where they had to enable more RSA key exchange cipher suites
immediately after disabling the DHE cipher suites.

It is true that RSA key exchange is widely used; the purpose of deprecating
it is to put political pressure on implementers to make it less widely
used. That's the whole point of these deprecation RFCs.

RSA is the worst key exchange mechanism in TLS w.r.t. to PFS, which is the
reason the paper cites for avoiding ECDH key reuse for ECDHE cipher suites.
Why is it horrible to reuse an ECDH key a few times but it's OK to reuse an
RSA key millions of times?

Is RSA "broken enough"? That goes back to my point that while in theory one
could do a perfect job of protecting their server's private keys, in
practice many will fail at it. That's why we mandated PFS cipher suites in
TLS 1.3 and in HTTP/2, to reduce the harm in losing control of the private
key.

The draft makes the good point that it would be hard to secure a DH(E)
implementation against timing attacks. But, RSA is the *hardest* to secure
key exchange mechanism w.r.t. timing attacks. Not only does it require very
careful coding within the core crypto library, but it also requires very
error-prone and non-obvious logic within the TLS implementation. Raccoon
mitigations wouldn't require that. (For the record, the difficulty of
mitigating the timing side channels mentioned in the Raccoon paper seems to
be quite overstated. We could all do it if we wanted to.)

Anyway, to be clear, I'm not advocating for DHE cipher suites in TLS 1.2.
I'm advocating against encouraging more use of RSA cipher suites, and I'm
against encouraging the continued use of TLS 1.2 in general. Deprecating
(EC)DH(E) key exchange without deprecating RSA has the rhetorical effect of
saying RSA key exchange is not as dangerous as (EC)DH(E); I don't think
that's true at all. Things need to upgrade to TLS 1.3 and things need to
drop RSA key exchange in favor of forward secret key exchange.

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

Reply via email to