| name | cis-nginx-v300-4-1-11 |
| description | Ensure Secure Session Resumption is Enabled (Manual) |
| category | cis-nginx |
| version | 3.0 |
| author | cyberstrike-official |
| tags | ["cis","nginx","web-server","reverse-proxy","tls-ssl","encryption"] |
| cis_id | 4.1.11 |
| cis_benchmark | CIS NGINX Benchmark v3.0.0 |
| tech_stack | ["nginx","linux","web-server"] |
| cwe_ids | [] |
| chains_with | [] |
| prerequisites | [] |
| severity_boost | {} |
CIS 4.1.11 — Ensure Secure Session Resumption is Enabled
Profile Applicability
- Level 1 - Webserver
- Level 1 - Proxy
- Level 1 - Loadbalancer
Description
TLS 1.3 introduces a secure session resumption mechanism using Pre-Shared Keys (PSKs) that significantly improves performance for returning clients by reducing the handshake latency. This modern mechanism should be enabled to enhance user experience without compromising security.
Rationale
Unlike older TLS versions, the TLS 1.3 resumption mechanism preserves Perfect Forward Secrecy (PFS). It accomplishes this by combining the PSK with a fresh Ephemeral Diffie-Hellman key exchange (ECDHE) for every resumed session. This ensures that a compromise of the resumption key does not compromise any past or future session keys. Disabling this feature provides no security benefit and negatively impacts performance.
Impact
Enabling session resumption has a positive performance impact. There are no significant negative security implications when using a TLS 1.3-only configuration.
Audit Procedure
Run the following command to verify that ssl_session_tickets is not explicitly turned off.
grep -ir "ssl_session_tickets" /etc/nginx/ | grep -i "off"
If the command produces any output containing ssl_session_tickets off;, this recommendation is not implemented.
Remediation
Ensure that ssl_session_tickets is not set to off. The recommended approach is to remove the directive entirely, as the default value is on.
If the directive is present, either remove it or set it to on:
# REMOVE this line from your configuration:
# ssl_session_tickets off;
# OR, if you want to be explicit, ensure it is set to ON (optional):
ssl_session_tickets on;
Default Value
ssl_session_tickets is enabled (on) by default. This is the desired and secure state for TLS 1.3.
References
- https://datatracker.ietf.org/doc/html/rfc8446