The following post from 2017 says that TLS cipher suites are set in stone in order to protect the user from doing harm on themselves. I don’t particularly agree. Can this limit be lifted?
Although technically they do, they will prefer AES-128. In effect AES-256 could not be used. Of course with a client based on something else than Go, then they can negotiate AES-256 with Caddy. Just not Go clients.
Removing knobs from security software/libraries means there’s a much stronger baseline for the web to be secure. Allowing configuration is too strong a risk of users shooting themselves in the foot unless they are literally cryptographers and know what they’re doing.
The Go team has very good reasons for choosing to do it this way, and as you can see in the above article, they’ve explained why they chose that ordering.
This though, must surely be wrong. AES-256 is not more relevant to post-quantum encryption than AES-128. They are basically saying that AES-256 isn’t useful and so does not select it.
AES-256 has a larger key than AES-128, which is usually good, but it also performs more rounds of the core encryption function, making it slower. (The extra rounds in AES-256 are independent of the key size change; they are an attempt to provide a wider margin against cryptanalysis.) The larger key is only useful in multi-user and post-quantum settings, which are not relevant to TLS, which generates sufficiently random IVs and has no post-quantum key exchange support. Since the larger key doesn’t have any benefit, we prefer AES-128 for its speed.
And
Why not make TLS 1.3 cipher suites configurable? Conversely, there is no tradeoff to make with TLS 1.3, as all its cipher suites provide strong security. This lets us leave them all enabled and pick the fastest based on the specifics of the connection without requiring the developer’s involvement.
Again this means AES-256 won’t ever be used between two Go implementations or between Caddy webbserver and clients that have no preference - unless they don’t support AES-128 or only support ChaCha.
In what way? I wanted to use AES-256 or ChaCha in my own private setup, and with Caddy I cannot because of this choice.
Does AES-256 have no security advantages over AES-128? I’ve heard that before and I am a little surprised that AES-256 keeps existing if that is the case. From what I read, AES-256 uses a different key exchange schedule, which could be considered weaker, not that there seems to be any viable attack there yet? Another New AES Attack - Schneier on Security
But to answer your question. Personally, I’d like to choose higher bits if it is has higher security , however little the benefit is.
For TLS, no. Because it’s all transactional traffic, the raw TLS bytes are not stored somewhere long-term, etc. AES-128 is just faster, which is more desirable for TLS traffic.
Mozilla decided to prioritize 128 over 256 because they thought there was less potential risk of timing attacks, and the performance trade-offs were not worth it.
(bunch of various discussion in links you can click through from that issue)
The point is, if you’re not a cryptographer, don’t spend time worrying about this. Let them do their jobs and pick the right defaults, because they know better. They’ve studied this stuff for years upon years.