Ciò presuppone che tu conosca le basi dell'autenticazione della chiave pubblica e di come un browser web comunica con un server web attraverso un nome di dominio.
L'interazione è tra il browser Web dell'utente e il server Web dell'azienda.
Chiavi pubbliche e chiavi private
Il server Web ha una chiave pubblica e una chiave privata.
La chiave privata può decodificare un messaggio crittografato dalla chiave pubblica.
La chiave pubblica può decodificare un messaggio crittografato dalla chiave privata.
L'autorità di certificazione ha la propria chiave pubblica e chiave privata.
Il server Web invia le informazioni sulla società, la chiave pubblica e il nome del dominio (da associare al certificato SSL) all'autorità di certificazione.
L'autorità di certificazione invia un messaggio di conferma all'indirizzo email associato al nome di dominio, al fine di dimostrare che questa richiesta è stata fatta dal vero proprietario del nome di dominio.
A questo punto, l'autorità di certificazione attenderà che il proprietario del nome di dominio convalidi la richiesta via e-mail.
Firma del certificato
L'autorità di certificazione crittografa il nome di dominio del server web, le informazioni sulla società e la chiave pubblica utilizzando la propria chiave privata.
L'autorità di certificazione invia il risultato crittografato al server web.
Questo risultato è il certificato SSL, un messaggio di testo contenente il nome di dominio, le informazioni sulla società e la chiave pubblica del server Web che è stato crittografato con la chiave privata dell'autorità di certificazione.
Il server Web invia questo certificato al browser dell'utente.
Autorità di certificazione attendibili
Il browser Web viene pre-caricato con un elenco di autorità di certificazione attendibili e le loro chiavi pubbliche.
Il browser Web decrittografa il certificato utilizzando la chiave pubblica dell'autorità di certificazione corrispondente.
A questo punto, il browser Web sa che il certificato e il suo contenuto sono affidabili perché solo un messaggio crittografato con la chiave privata dell'autorità di certificazione potrebbe essere stato coerentemente decifrato dalla chiave pubblica dell'autorità di certificazione.
Il browser Web ora conosce le informazioni sull'azienda fidata, la chiave pubblica e il nome di dominio che si suppone siano associati al server Web, che è ancora sospetto.
Il browser Web conferma che il nome del dominio sul certificato corrisponde al nome effettivo del dominio del server web.
A questo punto, se i nomi dei domini corrispondono, il browser Web determina che il server Web è abbastanza affidabile da inviare dati crittografati.
Inoltre, a questo punto, il browser Web determina che può utilizzare la chiave pubblica attendibile del certificato per crittografare i suoi messaggi perché solo la chiave privata del server Web autentico può decrittografarlo.
Si noti che se veniva utilizzata una chiave pubblica non sicura (non passata attraverso la verifica dell'autorità di certificazione), il browser Web potrebbe avere crittografato e inviato informazioni riservate solo per essere decifrato dalla chiave privata di un server dannoso! In altre parole, è fondamentale che la chiave pubblica sia attendibile perché la crittografia di un messaggio con essa è l'unica linea di difesa di intercettazione per le informazioni inviate dal browser.
Proseguendo, il browser Web crittografa il suo messaggio utilizzando la chiave pubblica attendibile e invia il messaggio crittografato al server web.
Il server Web decrittografa il messaggio con la vera chiave privata, se ne ha una, quindi legge correttamente il messaggio decrittografato.
Chiave segreta condivisa
Quando il server web risponde al browser web, anche quel messaggio deve essere inviato in modo sicuro.
Il browser Web potrebbe copiare ciò che il server Web ha appena fatto (escluso il processo dell'autorità di certificazione) generando una chiave pubblica e una chiave privata per sé, inviando quindi la sua chiave pubblica al server web. Questo stabilirà una connessione sicura chiamata crittografia asimmetrica a 2 vie. Tuttavia, tale comunicazione è tassativamente computazionale (relativamente parlando).
Quindi l'approccio standard consiste nell'utilizzare una chiave segreta condivisa in grado di crittografare un messaggio e anche decodificarlo.
Il browser Web genera una chiave segreta, la crittografa utilizzando la chiave pubblica attendibile, quindi la invia al server Web.
Se il server web è autentico, sarà in grado di decrittografare la chiave segreta con successo.
A questo punto, sia il browser Web che il server Web dispongono di una chiave segreta condivisa che possono essere utilizzate per crittografare e decrittografare ulteriori comunicazioni da ora in poi.
Per ulteriori informazioni: