Si noti che non si tratta di come avviene la comunicazione SSL tra browser (l'ho ricercata e compresa) e client ma altri aspetti.
Utilizzo della spiegazione del meccanismo SSL di Digicert Ho capito in che modo i dati vengono crittografati tra browser e server. Di seguito è la mia comprensione
- Il browser invierà una richiesta al server per ottenere alcune risorse. Il server verifica se il protocollo della richiesta è HTTPS, in tal caso quindi invierà il relativo certificato (questo certificato è già stato firmato da alcuni CA (autorità di certificazione, come Digicert)) nella risposta.
- Il browser controllerà se il certificato è valido convalidando la ricerca dell'autorità di firma nel suo pool di CA valido.
- Se il browser rileva che questo certificato è firmato da una CA valida, genera una chiave di sessione e la crittografa utilizzando la chiave pubblica presente nel certificato.
- Il browser invierà questa chiave di sessione crittografata al server e il server decodificherà la chiave di sessione. Il server invierà una conferma al browser che verrebbe crittografata utilizzando la chiave di sessione.
- I passaggi precedenti completano un handshake SSL e quindi iniziano le comunicazioni sicure tra browser e server.
Domande:
In base alla mia comprensione precedente:
- Il browser genera una chiave di sessione e la crittografa utilizzando la chiave pubblica del server. Ma quale algoritmo di crittografia (o comunemente chiamato algoritmo di cifratura) verrà utilizzato dal browser?
- Come viene determinata la selezione della cifra e browser e server utilizzano entrambi la stessa dimensione della chiave / crittografia per la crittografia e la decrittografia?
- Una volta completato l'handshake SSL, tutte le comunicazioni verranno crittografate utilizzando la chiave di sessione simmetrica, ma ancora quale algoritmo di crittografia verrà utilizzato dal browser?
- L'algoritmo di crittografia utilizzato dal browser dipende in qualsiasi modo dal certificato ricevuto dal server?
- Oppure tutta la crittografia eseguita dal browser viene eseguita con lo stesso algoritmo di cifratura?
- Per favore correggimi se ho torto, l'algoritmo o le informazioni cifrate sono presenti anche nel certificato? Come vengono archiviate tali informazioni nel certificato?
- Durante la generazione del certificato devo specificare quale algoritmo, quanti bit di cifratura, padding ecc.?
In base alla risposta di cui sopra avrò la domanda più importante - supponiamo che fornisca la chiave privata del mio server a qualcuno in modo che possa monitorare il traffico SSL per il mio server, quindi oltre a fornirgli la chiave privata cosa tutte le altre cose Ho bisogno di stare attento. E ho bisogno di dirgli l'algoritmo o il codice che sto usando sul server?