6.9 Ensure that TLSv1.3, or later, is configured

Information

Transport Layer Security (TLS), and its predecessor Secure Sockets Layer (SSL) are cryptographic protocols which can be used to encrypt data sent between client and server.

The TLSv1.0 protocol is vulnerable to the BEAST attack when used in CBC mode (October 2011). TLSv1.0 uses CBC modes for all of the block mode ciphers, which only leaves the RC4 streaming cipher which is also weak and therefore not recommended. As such, it is recommended that the TLSv1.0 protocol is disabled.

The TLSv1.1 protocol does not support

Authenticated Encryption with Associated Data

(AEAD) which is designed to simultaneously provide confidentiality, integrity, and authenticity ad should therefore be disabled.

The TLSv1.2 protocol includes a number of older vulnerable cryptographic algorithms and lacks quantum secure algorithms. It should only be used in situations where TLSv1.3

cannot

be used.

The TLSv1.3 removes older, known vulnerable, cryptographic algorithms, is much faster, and incorporates quantum secure algorithms. It should be deployed by default where possible.

IETF

deprecated TLSv1.0 and TLSv1.1 in March 2021 (see

RFC 8996

).

Solution

Adjust the ssl_min_protocol_version to at least TLSv1.3:

postgres=# ALTER SYSTEM SET ssl_min_protocol_version = 'TLSv1.3';
ALTER SYSTEM

Make the change active:

postgres=# SELECT pg_reload_conf();
pg_reload_conf
----------------
t
(1 row)
postgres=# SHOW ssl_min_protocol_version;
ssl_min_protocol_version
--------------------------
TLSv1.3
(1 row)

See Also

https://workbench.cisecurity.org/benchmarks/19478

Item Details

Category: ACCESS CONTROL, IDENTIFICATION AND AUTHENTICATION, SYSTEM AND COMMUNICATIONS PROTECTION

References: 800-53|AC-17(2), 800-53|IA-5, 800-53|IA-5(1), 800-53|SC-8, 800-53|SC-8(1)

Plugin: PostgreSQLDB

Control ID: d1946c42a1df2de5957a71afeece200fcc9a7e0617a194b343f946f56e55c533