Negotiation
ClientHello
Supported ciphers, TLS version, random
ServerHello
Chosen cipher, random
Server Authentication
Certificate
Server's X.509 certificate
ServerKeyExchange
Signed ECDH params → proves key ownership
CertificateRequest
Server requests client cert
Client Auth + Key Exchange
Certificate
Client's X.509 certificate
ClientKeyExchange
Client's ECDH public value
CertificateVerify
Signed hash → proves key ownership
Finished
Encrypted verification
Finished
Encrypted verification