4장. Planning and implementing TLS
When hardening TLS configuration, balance strict security settings against client compatibility. Implementing the strictest configuration limits client support, whereas relaxing settings increases compatibility but lowers overall system security
TLS (Transport Layer Security) is a cryptographic protocol used to secure network communications. When hardening system security by configuring preferred key-exchange protocols, authentication methods, and encryption algorithms, the broader the range of supported clients, the lower the resulting security.
Conversely, strict security settings limit compatibility with clients, potentially locking some users out of the system. Be sure to target the strictest available configuration and relax it only when required for compatibility.
4.1. SSL and TLS protocols 링크 복사링크가 클립보드에 복사되었습니다!
Review the history and usage recommendations for SSL and TLS protocols. This helps you understand which protocol versions are secure for network communication and which should be avoided.
The Secure Sockets Layer (SSL) protocol was originally developed by Netscape Corporation to provide a mechanism for secure communication over the Internet. Subsequently, the protocol was adopted by the Internet Engineering Task Force (IETF) and renamed to Transport Layer Security (TLS).
The TLS protocol sits between an application protocol layer and a reliable transport layer, such as TCP/IP. It is independent of the application protocol and can thus be layered underneath many different protocols, for example: HTTP, FTP, SMTP, and so on.
| Protocol version | Usage recommendation |
|---|---|
| SSL v2 | Do not use. Has serious security vulnerabilities. Removed from the core cryptographic libraries since RHEL 7. |
| SSL v3 | Do not use. Has serious security vulnerabilities. Removed from the core cryptographic libraries since RHEL 8. |
| TLS 1.0 | Not recommended to use. Has known issues that cannot be mitigated in a way that guarantees interoperability, and does not support modern cipher suites. In RHEL 10, disabled in all cryptographic policies. |
| TLS 1.1 | Use for interoperability purposes where needed. Does not support modern cipher suites. In RHEL 10, disabled in all cryptographic policies. |
| TLS 1.2 | Uses the AEAD cipher suites. This version is enabled in all system-wide cryptographic policies. However, optional parts of this protocol contain vulnerabilities, and TLS 1.2 specification also includes support for outdated algorithms. |
| TLS 1.3 | Recommended version. TLS 1.3 removes known problematic options, provides additional privacy by encrypting more of the negotiation handshake, and can be faster thanks to the usage of more efficient cryptographic algorithms. TLS 1.3 is also enabled in all system-wide cryptographic policies. |