A TLS-compliant application MUST implement the TLS_AES_128_GCM_SHA256 [GCM] cipher suite and SHOULD implement the TLS_AES_256_GCM_SHA384 [GCM] and TLS_CHACHA20_POLY1305_SHA256 [RFC8439] cipher suites (see Appendix B.4).
The cryptographic handshake, which is used to establish secure connections, is an operation for which the cost is highly influenced by private key size. Using a key that is too short is insecure, but using a key that is too long will result in ātoo muchā security and slow operation. For most web sites, using RSA keys stronger than 2,048 bits and ECDSA keys stronger than 256 bits is a waste of CPU power and might impair user experience. Similarly, there is little benefit to increasing the strength of the ephemeral key exchange beyond 2,048 bits for DHE and 256 bits for ECDHE. There are no clear benefits of using encryption above 128 bits.
It screws some old clients, and p384 is much slower than p256 (on my VPS itās even twice slower than rsa2048), so itās better not to use this in production, unless you are extremely paranoid about the possibility of cracking AES-128 and/or EC P-256.
After reading lots on the topic, I cannot find any authoritative/expert recommendations that recommend/urge to make sure that ssllabs shows 100% Key Exchange and 100% Cipher Strength instead of āonly 90%ā on top of an existing A+ rating. On the contrary, most are discouraging it.
The security gain is disputed, cannot be quantified, worsens compatibility, isnāt common security practice. Even websites that deal with millions or even billions of USD value such as banks and crypto exchanges donāt go for this. Neither any security-focused operating systems.
Since Whonix isnāt a web application project, bank or crypto exchange Iāve decided not to attempt to be special here.
Hello,
thanks for the suggestion, but improving the Key Exchange is not possible, as it is not yet supported by Let's Encrypt to issue ECC certificates with more than 384 bits and 521 is also not supported by most browsers anyway. The only way to archive this is by using RSA keys instead of ECC, which is much slower, requires more bandwidth and will eventually get deprecated, as more and more people are migrating to modern ECC keys.
Cipher strength can be limited, but this will break compatibility with some clients. Modern clients will try to use the most secure ciphers first, but there are still some that will break by removing 128 bit ciphers.
Regards,
Daniel
Which is better than ours which has expired cert with RSA:
According to:
If the signing key is P-384, the signature MUST use ECDSA with SHA-384. When encoded, the AlgorithmIdentifier MUST be byte-for-byte identical with the following hex-encoded bytes: 300a06082a8648ce3d040303.
This means I need to take the default CipherSuites and simply remove any that use a cipher smaller than 256bit.
We need to remove ciphers which are 128 and keep 256 or above: (for 1.3 and 1.2)
By this we will have 100% best ciphers, But only best available Key Exchange not 100%.
We can have 100% key exchange but only available now with RSA 4096 (according to daneil its slower) but not with ECC P-521 due to the limitation mentioned above.
This is a non-issue according to letsencrypt. Quote:
What should you do? For most people, nothing at all!
Test websites also not showing a warning or downgrade the rating.
Moving to a EC 384 bits (SHA384withECDSA) certificate might make sense but thereās no rush.
Awesome.
In theory, yes. I tested the authorās website blog.bracebin.com with ssllabs and it didnāt have 4x 100%. Therefore it might be outdated and not work anymore. Also instructions arenāt for nginx so I cannot apply them.
I was also reading:
In one reply, the author included a link to a blog post:
And then tested the authorās website dawnbringer.net on ssllabs but it has only 2x 100% and 2x 90%.
My website uses Cloudflare as a proxy and waf but scores lower than that. But all my internal hosts use this profile since I only want to use TLS1.2 or newer to begin with. This domain (oceandns) does have the above profile running: Check SSL Labs here. For an ECC/ECDSA enabled site check: here
The test result is āonlyā 4x 100% but with an A rather than an A+ rating. So still not the perfection youāre seeking here.
Your certificateās public key is only 2048-bit RSA. The key exchange score comes from the strength of the ephemeral key exchange and the strength of the public key. You need a 4096-bit RSA (or 384-bit ECC) key on your certificate to get 100%.