What's the purpose of ServerKeyExchange
when using ephemeral Diffie-Hellman? In this case, the ClientHello
advertised EDH and EECDH (and not anonymous protocols), and the server selected TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
in its ServerHello
.
According to RFC 5246, Section 7.4.3:
This message will be sent immediately after the server Certificate
message (or the ServerHello message, if this is an anonymous
negotiation).
The ServerKeyExchange message is sent by the server only when the
server Certificate message (if sent) does not contain enough data
to allow the client to exchange a premaster secret. This is true
for the following key exchange methods:
DHE_DSS
DHE_RSA
DH_anon
I understand RSA is being used for authentication (and not key transport). But since Diffie-Hellman is being used, both sides contribute material to the final master_secret
. So there's no need for a message that allows the client to contribute more material earlier for the premaster_secret
.
What's the purpose of ServerKeyExchange
when using ephemeral Diffie-Hellman?