In SSL, il client genera una chiave pre-master da dati casuali da sé e anche dal server. Quindi lo cripta con la chiave pubblica del server, lo invia al server e da quel momento sia il client che il server generano una chiave master.
Perché il client non genera la chiave master e la invia al server?
La mia ipotesi iniziale è di impedire al master secret di andare oltre il filo in qualsiasi forma o forma. Ma non vedo come sia più sicuro di avere la chiave pre-master inviata sul filo se un Man in the Middle ha osservato l'intera stretta di mano (e quindi conosce il codice utilizzato e i dati casuali inviati dal client e server).