SSL / TLS - Il client seleziona la chiave simmetrica per la crittografia dei dati?

0

Dopo aver letto le eccellenti risposte qui e documenti su come funziona SSL. Ho un dubbio su quale sia la funzione del passo ClientKeyExchange. Nella risposta e nel documento sopra riportati si dice che la parte client della chiave viene inviata crittografata tramite la chiave pubblica del server.

Ciò significa che il cliente è responsabile della selezione della chiave simmetrica utilizzata per codificare / decrittografare i dati effettivi?

In questo caso, il client può essere considerato abbastanza affidabile da generare una chiave di crittografia avanzata?

Qual è il ruolo del server nella generazione della chiave simmetrica?

    
posta ng.newbie 11.12.2017 - 13:13
fonte

1 risposta

2

... that the client is responsible for selecting the symmetric key ...

Le chiavi utilizzate per la crittografia simmetrica non sono create dal solo client. Con lo scambio di chiavi RSA il client crea il segreto pre-master e lo trasferisce crittografato con la chiave pubblica del server sul server. Il master secret viene quindi calcolato in base ai dati client e server. Da RFC 5246 (TLS 1.2) sezione 8.1 :

  master_secret = PRF(pre_master_secret, "master secret",
                      ClientHello.random + ServerHello.random)
                      [0..47];

E da questo segreto principale sono derivate le chiavi per la crittografia e MAC e IV, come specificato in sezione 6.3 " Calcolo chiave ".

Per lo scambio di chiavi DH già il segreto pre-master viene generato combinando le informazioni da client e server. La generazione del master secret dal pre-master rimane la stessa.

    
risposta data 11.12.2017 - 13:47
fonte

Leggi altre domande sui tag