When RSA is used for Key Exchange, the pre-master key is encoded with the server certificate public key, so the server would not be able to decode it if it didn't possess the private key.

However, when ECDHE is used for Key Exchange, how does the client make sure the server is legit and possess the private key relative to the provided certificate?

1 Answer 1


The ECDHE key exchange does not care about the private key of the certificate. The private key is only used for authentication, which is like the key exchange part of the TLS handshake. But authentication is not part of the ECDHE key exchange.

Basically, the authentication is done by the server signing some data which are at least in part depend on client data. The client can then verify this signature using the public key in the certificate.

  • Hey Steffen. Thanks for your answer. The problem is that I am unable to find when the authentication happens (when the server private key is validated). For example, here: tls12.ulfheim.net - Would you be able to point where the server authentication happens? Thank you very much May 10, 2021 at 19:19
  • 1
    @AndréPena: See at the details of the Server Key Exchange and then you'll find a Signature there. May 10, 2021 at 19:24
  • 1
    OP, see tlseminar.github.io/first-few-milliseconds for a good walkthrough of TLS1.2, including what happens at the client side, what happens at the server side, and what gets sent over the wire. As @SteffenUllrich mentions, you'll find the signature that you are looking for in the ServerKeyExchange.
    – mti2935
    May 10, 2021 at 20:08
  • @SteffenUllrich The explanation is right there and I missed it. Thank you very much May 10, 2021 at 20:34
  • @mti2935 - That is a very good resource. Thank you very much May 10, 2021 at 20:35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .