As a regular Internet user, how do I check if my current HTTPS connection to some website is using perfect forward secrecy?


I've taken two screenshots from my HTTPS connection to Google. Can anyone help me to interpret the information?

enter image description here

enter image description here


Short answer: if you see the string "ECDHE" or "DHE" in the "Technical Details" section, the connection is using forward secrecy.

Long answer: the "Technical Details" section in your second screenshot displays what's called the "cipher suite". In your screenshot, the cipher suite is TLS_ECDHE_RSA_WITH_RC4_128_SHA. This can be broken down as follows:

  • Transport protocol: TLS (Transport Layer Security)
  • Key exchange: ECDHE (Elliptic Curve Diffie-Hellman with Ephemeral key). This is the cryptographic primitive used during the TLS handshake to establish the keys used for the rest of the connection. Any key exchange that uses ephemeral keys provides forward secrecy.
  • Certificate signature algorithm: RSA. This is the cryptographic primitive used to verify the server's identity.
  • Cipher: RC4_128 (RC4 with a 128-bit key). This is the cryptographic primitive used to encrypt the data.
  • Hash algorithm: SHA (SHA-1 to be precise). This is the cryptographic primitive used to ensure the connection is not tampered with.
  • But not Perfect forward secrecy unless a One-Time Pad is used. – NH. Jan 30 '18 at 5:45
  • Forward Secrecy also needs the session ticket keys, if used, to be rotated in < 24 hrs. (Twitter does it every 12 hrs, fyi). And if you are using session identifiers, then lifetime should be low. – Ethan Jul 6 '18 at 0:48

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.