Cybersecurity glossary

What is Forward Secrecy?

Learn what forward secrecy means in TLS, how ephemeral Diffie-Hellman and ECDHE protect past sessions, why RSA key transport lacks it, and how to configure modern HTTPS.

Cryptography and TLSUpdated August 11, 2026
Also known asPerfect forward secrecyPFSTLS forward secrecy

Definition

Forward secrecy is a key-exchange property where compromising a server's long-term private key later does not decrypt previously recorded sessions because each connection used fresh ephemeral secrets that were not retained.

Why forward secrecy matters

Attackers can record encrypted traffic today and wait for a private key leak tomorrow. Forward secrecy limits that strategy: a stolen certificate key should not unlock old captures if each session used fresh key-exchange material that was discarded after use.

This is why modern HTTPS configurations prefer TLS 1.3 or TLS 1.2 suites with ECDHE or DHE. The long-term certificate key authenticates the server, but the actual traffic keys come from an ephemeral key agreement unique to the connection.

What has to be in place

Forward secrecy is not a property of the bulk cipher alone. It comes from how the session keys are established and how temporary secrets are handled.

Ephemeral key exchange

Use ECDHE or DHE so each handshake creates fresh private key shares instead of reusing the certificate key to transport secrets.

Authentication

Certificates still authenticate the endpoint; RSA or ECDSA signatures can be safe when they sign the handshake rather than decrypt session keys.

Key derivation

TLS derives record-protection keys from the ephemeral shared secret, transcript hash, and protocol key schedule.

Secret disposal

Ephemeral private shares and old ticket keys must not be retained in a way that turns later compromise into old-session decryption.

How forward-secret TLS works

1

Client offers supported groups

The ClientHello advertises modern key-share groups such as X25519 or P-256, plus cipher suites and protocol versions.

2

Server selects an ephemeral share

The server contributes its own temporary DH or ECDHE share for this connection rather than decrypting a client secret with the certificate key.

3

Handshake is authenticated

The server certificate and signature bind the ephemeral exchange to the real endpoint, preventing a passive observer from silently substituting keys.

4

Traffic keys are derived

Both peers compute the same shared secret and run it through the TLS key schedule to create symmetric keys for encrypted records.

5

Ephemeral secrets are discarded

Once the handshake finishes, temporary private shares are no longer needed; later certificate compromise should not reconstruct them.

ECDHE versus RSA key transport

Older TLS deployments sometimes used cipher suites such as TLS_RSA_WITH_AES_128_CBC_SHA. In that design, the client encrypted pre-master secret material to the server's RSA certificate key. A future leak of that private key could let an attacker decrypt recorded handshakes and recover old traffic keys.

ECDHE changes that dependency. A TLS 1.2 suite such as TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 still uses an RSA certificate, but RSA authenticates a handshake signature; it does not transport the session secret. The session keys come from ephemeral elliptic-curve Diffie-Hellman.

Key exchange modeIf the certificate key leaks laterModern TLS status
TLS 1.3 ECDHE/DHERecorded sessions remain protected if ephemeral secrets and ticket keys were not retained.Preferred default
TLS 1.2 ECDHERecorded sessions remain protected against certificate-key-only compromise.Acceptable fallback when paired with AEAD suites
TLS 1.2 static RSA key transportRecorded sessions can be decrypted if the RSA private key is later compromised.Disable
Static DHNo per-session freshness; compromise of static private material can expose past sessions.Disable

Configuration checklist

  • Enable TLS 1.3 wherever clients support it.
  • For TLS 1.2 fallback, offer only ECDHE or DHE suites with AEAD ciphers such as AES-GCM or ChaCha20-Poly1305.
  • Disable static RSA key transport suites, static DH suites, export suites, NULL suites, RC4, 3DES, and obsolete SSL/TLS protocol versions.
  • Use maintained TLS profiles for nginx, Apache, Envoy, HAProxy, Java, CDNs, and cloud load balancers instead of hand-writing legacy suite strings.
  • Rotate TLS session ticket encryption keys and avoid sharing them more broadly than necessary.
  • Monitor scanners for regressions after certificate, load balancer, library, operating system, or CDN changes.
  • Remember that forward secrecy protects past transport sessions; it does not protect plaintext stored in logs, caches, databases, or analytics systems.

Common pitfalls

Forward secrecy can disappear through compatibility exceptions. A server may advertise strong ECDHE suites first but still keep static RSA enabled for an obsolete client. Scanners will usually flag this because an attacker who can influence negotiation may try to force the weaker mode.

Session resumption also needs care. TLS ticket keys, PSKs, and load-balanced termination layers can expand the amount of key material worth stealing. Rotate those keys, scope them to the smallest practical fleet, and document how long resumption material can decrypt resumed sessions.

The practical takeaway

Forward secrecy means past TLS sessions do not depend solely on the future secrecy of a long-term certificate key. Use TLS 1.3 by default, keep TLS 1.2 fallback limited to ECDHE/DHE with AEAD ciphers, and disable RSA key transport so recorded traffic does not become readable after a later key compromise.

Related security terms

Frequently asked questions

What is forward secrecy in simple terms?

Forward secrecy means old encrypted sessions stay protected even if a server's certificate private key is stolen later, because those sessions used temporary key-exchange secrets that were not stored.

Is perfect forward secrecy different from forward secrecy?

They are commonly used to mean the same operational property. Standards often say forward secrecy, while scanners and older documentation often say perfect forward secrecy or PFS.

How does ECDHE provide forward secrecy?

ECDHE creates fresh elliptic-curve Diffie-Hellman key shares for each handshake. The peers derive session keys from those ephemeral shares, then discard the private shares after the connection.

Why does RSA key transport lack forward secrecy?

With RSA key transport in older TLS, the client encrypts key material to the server's long-term RSA certificate key. If that private key is later compromised, recorded handshakes can be decrypted.

Does TLS 1.3 always provide forward secrecy?

For normal certificate-based TLS 1.3 handshakes, yes. TLS 1.3 removed static RSA key transport and uses ephemeral key agreement such as ECDHE or finite-field DHE.

Can session resumption weaken forward secrecy?

It can if ticket keys or PSKs are retained too long or shared too broadly. Rotate ticket encryption keys, scope them carefully, and prefer TLS 1.3 resumption behavior.

How do I check whether a site supports forward secrecy?

Use TLS scanners such as SSL Labs, testssl.sh, or your cloud load balancer's security report, and confirm the server offers TLS 1.3 or TLS 1.2 ECDHE/DHE suites without static RSA fallback.

References

Explore authoritative guidance and frameworks related to forward secrecy.

Explore every security definition

Return to the glossary to search by term, alias, starting letter, or security category.

Browse glossary