Is it to contribute to the entropy in the master secret...
Sì. Assicura che entrambe le parti contribuiscano al segreto principale.
Il segreto principale è il seme utilizzato per derivare le chiavi successive utilizzate per la crittografia e l'autenticazione in blocco.
... or for uniformity with other key exchange algorithms such as DH?
No. Diffie-Hellman richiede ad entrambe le parti di contribuire selezionando un valore segreto casuale a
(o b
), quindi inviando l'altra parte A=G^a
(o B=G^b
). Il comportamento dei contributori è inserito in Diffie-Hellman.
Esistono altri schemi di accordi chiave. RSA è uno schema di trasporto chiave, ma non offre l'opportunità al server di contribuire al segreto premaster. Cioè, non esiste un comportamento contributivo inerente al trasporto di chiavi RSA.
Nel caso del trasporto di chiavi RSA, il modo per garantire che entrambe le parti contribuiscano al segreto principale è:
master_secret = Transform(premaster_secret + client_random + server_random)
Un problema pratico che il comportamento contributivo risolve è, immagina un dispositivo IoT che ha un generatore di numeri casuali rotto o inutile. Il comportamento contributivo garantisce che il canale sia [soprattutto] sicuro anche quando il client non ha casualità.