mirror of
https://github.com/GrapheneOS/matrix.grapheneos.org.git
synced 2025-01-29 08:33:22 -05:00
disable traditional stateful TLS session cache
This is useless for TLSv1.3 since there's no longer any distinction in the protocol based on whether the server is using stateless or stateful session resumption. OpenSSL has a non-standard anti-replay mechanism for 0-RTT based on stateful session resumption but 0-RTT still ends up being a downgrade for the TLS security properties. nginx disables that feature since otherwise 0-RTT wouldn't work with the default stateless approach. Since this cache is only used for TLSv1.2 when stateless resumption isn't disabled and nearly all TLSv1.2 clients support tickets, it isn't getting any significant use. It provides worse forward secrecy than tickets because we implement ticket key rotation based on the expiry time and sessions aren't actively purged from the stateful cache when they expire. Cached session state varies in size and nginx ends up writing errors to the log when clearing out a session fails to make room for a new one due to it being larger. It's best to finally get rid of this flawed approach to session resumption. TLSv1.3 provides the option of forward secrecy for resumed sessions and it's the only approach that's normally enabled so we don't need to worry about this anymore once TLSv1.2 is disabled as long as we never enable 0-RTT which weakens forward secrecy and other security properties.
This commit is contained in:
parent
a703ab5d8c
commit
087c1a6349
@ -47,13 +47,12 @@ http {
|
||||
ssl_certificate /etc/letsencrypt/live/matrix.grapheneos.org/fullchain.pem;
|
||||
ssl_certificate_key /etc/letsencrypt/live/matrix.grapheneos.org/privkey.pem;
|
||||
|
||||
ssl_session_cache shared:SSL:10m;
|
||||
ssl_session_timeout 1d;
|
||||
# maintained by nginx-rotate-session-ticket-keys in ramfs
|
||||
ssl_session_ticket_key session-ticket-keys/4.key;
|
||||
ssl_session_ticket_key session-ticket-keys/3.key;
|
||||
ssl_session_ticket_key session-ticket-keys/2.key;
|
||||
ssl_session_ticket_key session-ticket-keys/1.key;
|
||||
ssl_session_timeout 1d;
|
||||
ssl_buffer_size 4k;
|
||||
|
||||
ssl_trusted_certificate /etc/letsencrypt/live/matrix.grapheneos.org/chain.pem;
|
||||
|
Loading…
x
Reference in New Issue
Block a user