Il server ha un certificato, costituito da una chiave privata e pubblica. Il server non fornisce mai la chiave privata, ovviamente, ma tutti possono ricevere la chiave pubblica. La chiave pubblica è incorporata in un formato contenitore certificato. Questo formato contiene l'indirizzo IP o il nome di dominio del server, il proprietario di questo indirizzo IP/nome di dominio, un indirizzo e-mail del proprietario, ecc.
Il tutto è firmato da un'autorità fidata. Anche l'autorità fidata, nota anche come autorità di certificazione (CA), ha una coppia di chiavi privata/pubblica. Se dai loro il tuo certificato, verificano che le informazioni nel contenitore siano corrette e firmano con la loro chiave privata, solo a loro hanno accesso.
La chiave pubblica della CA viene installata sul sistema utente per impostazione predefinita, le CA più note sono già incluse nell'installazione predefinita del sistema operativo o del browser preferito.
Quando un utente si connette al server, il server utilizza la chiave privata per firmare alcuni dati, i pacchetti che hanno firmato i dati insieme alla propria chiave pubblica e invia tutto al client.
Cosa può fare ora il cliente? Prima di tutto, può utilizzare la chiave pubblica appena inviata per verificare i dati firmati. Poiché solo il proprietario della chiave privata è in grado di firmare correttamente i dati in modo tale che la chiave pubblica possa verificare la firma, sa che chiunque abbia firmato questo dato, questa persona è proprietaria della chiave privata della chiave pubblica ricevuta . Fin qui tutto bene. Ma cosa impedisce a un hacker di intercettare il pacchetto, sostituire i dati firmati con i dati firmati utilizzando un certificato diverso e anche sostituire la chiave pubblica con la sua chiave pubblica? Niente.
Ecco perché dopo che i dati firmati sono stati verificati (o prima che siano verificati) il client verifica che la chiave pubblica ricevuta abbia una firma CA valida. Utilizzando la chiave CA pubblica già installata, verifica che la chiave pubblica ricevuta sia stata firmata da una CA conosciuta. Altrimenti viene rifiutato (come potrebbe averlo sostituito un hacker sulla strada).
Ultimo ma non meno importante, controlla le informazioni all'interno del contenitore della chiave pubblica. L'indirizzo IP o il nome di dominio corrisponde realmente all'indirizzo IP o al nome di dominio del server con cui sta parlando il client? In caso contrario, qualcosa è di pesce!
Le persone possono chiedere: cosa impedisce a un hacker di creare la propria coppia di chiavi e di inserire semplicemente il nome di dominio o l'indirizzo IP nel certificato? Facile: se lo fa, nessuna CA firmerà la sua chiave. Per ottenere una firma della CA, devi dimostrare di essere realmente il proprietario di questo indirizzo IP o nome di dominio. L'hacker non lo è, non può provarlo, non otterrà una firma. Quindi questo non funzionerà.
Ok, che ne dici se l'hacker registra il proprio dominio, crea un certificato per questo e lo ha firmato da una CA? Funziona, lo farà firmare dalla CA, è il suo dominio, nessun problema. Tuttavia non può usare questo quando si hacking la connessione. Se usa questo certificato, il browser vedrà immediatamente che la chiave pubblica firmata è per domain example.net, ma attualmente sta parlando con example.com, non con lo stesso dominio, quindi qualcosa è di nuovo fasullo.
Buona risposta! Ma ho un'altra domanda correlata ... Preventivo: "le CA più conosciute sono già incluse nell'installazione predefinita del tuo SO o browser preferito." Mi chiedo in che modo il browser espande la CA nota predefinita? Verificherà automaticamente un servizio web? o lo farà solo per la prossima versione della versione del browser? – forestclown
I certificati CA vengono spediti insieme al browser o al sistema operativo. Firefox, Chrome, Opera hanno copie del certificato CA proprie incluse, Internet Explorer e Safari utilizzano certificati CA installati in Windows o OS X. Nulla impedisce a un browser di utilizzare sia le proprie copie che i certificati del sistema operativo (alcuni dei quali citati potrebbero persino fare quella). Ottieni nuovi certificati CA solo aggiornando il browser, aggiornando il sistema operativo o installandoli manualmente (scaricandoli e aggiungendoli al browser o al sistema operativo, entrambi sono possibili). – Mecki
L'unica cosa che i browser controllano online (se possono) è se un certificato CA è ancora valido o meno. Ogni servizio CA esegue un Certificate Revocation Server, in cui un browser può chiedere se un determinato certificato è ancora valido o è stato revocato; ciò avviene tramite il protocollo OCSP: http://tinyurl.com/pcjk2 I certificati contengono l'indirizzo di un server OCSP da richiedere. – Mecki