Per quanto ne so, questo è il processo per stabilire una connessione TLS tra un client e un server web:
- Il client invia una richiesta TLS (utilizzando un pacchetto chiamato Client Hello ) al server.
- Il server risponde alla richiesta con un server Hello e un certificato .
- Il client verifica il certificato utilizzando la chiave pubblica della CA del firmatario del certificato e se tutto è andato bene con il certificato, quindi il client estrae la chiave pubblica del server da esso.
- Il client genera un numero casuale come chiave di crittografia simmetrica e crittografa questa chiave con la chiave pubblica del server e la invia al server.
- Il server decrittografa i dati ricevuti usando la sua chiave privata ed estrae quella chiave simmetrica.
- Client e server avviano una comunicazione crittografata usando quella chiave simmetrica.
La domanda è: qual è l'utilizzo di Diffie Hellman nel processo precedente?
Se non c'è l'uso di Diffie Hellman nel processo sopra, allora cosa significa il significato delle seguenti righe in Client Hello e Server Hello di una connessione TLS:
Client Hello suggerisce alcune suite di crittografia:
IlserverHelloselezionaTLSECDHERSA...: