TLS protects data in transit, but most deployments give too much trust. Least privilege means giving each endpoint only what it needs to function—nothing more. This starts with narrowing cipher suites to strong, current algorithms. Disable legacy options like RC4, 3DES, and any weak Diffie-Hellman parameters. Use AES-GCM or ChaCha20-Poly1305 with forward secrecy. Enforce TLS 1.3 wherever possible, and only fall back to TLS 1.2 with vetted ciphers.
Set strict certificate validation. Pin certificates to known hosts. Reject self-signed certs unless absolutely required and isolated. Limit which internal services can negotiate TLS with production workloads. Every connection should have a defined purpose, agreed on by both sides.
Control session lifetimes. Keep them short to reduce capture windows. Require re-authentication for sensitive transactions. Monitor for renegotiations—most apps do not need them, and disabling renegotiation can cut attack surfaces.