Out of curiosity I wonder why in the Handshake Protocol of TLS there is an explicit message, i.e. CertificateVerify, that serves to verify that the client is indeed the owner of the certificate he claims to own, while such a message is lacking for the server's certificate? Verification is achieved through signing a hash of the formerly exchanged messages.

In my understanding it is at least equally as important for the server to verify his ownership, because in practice it is often the client who is going to trust the server with delicate information.

1 Answer 1


I don't know how you get the impression that there isn't a message to verify the servers certificate, there is a message to request certificate verification in both directions, though the server certificate request is always implied with the ClientHello and the client certificate verification response is bundled with the ServerHello:

enter image description here

The key exchange mechanism also validates that the peers own matching private keys. Due to the maths involved, it is not possible to successfully do the key exchange unless both parties have the private keys matching their respective certificates.

Image credit: https://zoompf.com/blog/2014/12/optimizing-tls-handshake

  • @foobar There is no “shared private key”: each party has its private key. (That's why it's called private.) The key exchange mechanism verifies that the server knows the private key corresponding to the public key contained in the server certificate. Commented Oct 3, 2015 at 20:52
  • @foobar: the terminology "private key" is usually used to refer to the private half of a key pair used in asymmetric cryptography. The key used in symmetric cryptography is usually referred to as "shared secret". TLS uses asymmetric cryptography to derive a session key (i.e. shared secret) which is used for a symmetric cryptography to encrypt the bulk of the application data.
    – Lie Ryan
    Commented Oct 4, 2015 at 12:33

You must log in to answer this question.

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