As far as I know, this is the process of establishing a TLS connection between a client and a web server:
- Client sends a TLS request (using a packet called Client Hello) to the server.
- Server answers to the request with a Server Hello and a Certificate.
- Client verifies the certificate using public key of the certificate's signer CA and if everything was okay with the certificate, then the client extract server's public key from it.
- Client generate a random number as symmetric cryptography key and encrypt this key with server's public key and sends it to the server.
- Server decrypts the received data using his private key and extract that symmetric key.
- Client and server start an encrypted communication using that symmetric key.
The question is that what is the usage of Diffie Hellman in above process?
If there is no usage of Diffie Hellman in above process, then what does meaning of following lines in Client Hello and Server Hello of a TLS connection: