SO CHE QUELLO SOTTO È LUNGO, MA È DETTAGLIATO, MA ABBASTANZA SEMPLIFICATO. LEGGI ATTENTAMENTE E TI GARANTISCO CHE INIZIERAI A TROVARE QUESTO ARGOMENTO NON E 'COSI' COMPLICATO.
Prima di tutto, chiunque può creare 2 chiavi. Uno per crittografare i dati e un altro per decrittografare i dati. La prima può essere una chiave privata e la seconda una chiave pubblica, AND VICERZA.
In secondo luogo, in termini più semplici, un'autorità di certificazione (CA) offre il servizio di creare un certificato per te. Come? Usano determinati valori (il nome dell'emittente della CA, la chiave pubblica del tuo server, il nome dell'azienda, il dominio, ecc.) E usano la loro chiave privata SUPER DUPER ULTRA SECURE SECRET e crittografano questi dati. Il risultato di questi dati crittografati è una FIRMA.
Quindi ora la CA ti restituisce un certificato. Il certificato è fondamentalmente un file contenente i valori precedentemente menzionati (nome dell'emittente della CA, nome dell'azienda, dominio, chiave pubblica del server, ecc.), INCLUSA la firma (ovvero una versione crittografata di questi ultimi valori).
Ora, con tutto ciò che viene detto, ecco una parte VERAMENTE IMPORTANTE da ricordare: il tuo dispositivo / sistema operativo (Windows, Android, ecc.) Mantiene praticamente un elenco di tutte le principali CA / attendibili e le loro CHIAVI PUBBLICHE (se stai pensando che queste chiavi pubbliche siano usate per decrittare le firme all'interno dei certificati, SEI CORRETTO! ).
Ok, se leggi quanto sopra, questo esempio sequenziale sarà un gioco da ragazzi ora:
- Example-Company chiede a Example-CA di creare per loro un certificato.
- La CA di esempio utilizza la propria chiave super privata per firmare questo certificato e fornisce il certificato alla società di esempio.
- Domani, l'utente di Internet-Bob utilizza Chrome / Firefox / ecc. per navigare su https://example-company.com . La maggior parte, se non tutti, i browser oggigiorno si aspetteranno un certificato dal server.
- Il browser ottiene il certificato da example-company.com. Il certificato dice che è stato emesso da Example-CA. È solo che il sistema operativo di Bob ha già CA di esempio nell'elenco delle CA affidabili, quindi il browser ottiene la chiave pubblica di CA di esempio. Ricorda: tutto questo sta accadendo nel computer / cellulare / ecc. Di Bob, non via cavo.
- Quindi ora il browser decrittografa la firma nel certificato. INFINE, il browser confronta i valori decrittografati con il contenuto del certificato stesso. SE IL CONTENUTO CORRISPONDE, SIGNIFICA CHE LA FIRMA È VALIDA!
Perché? Pensaci, solo questa chiave pubblica può decrittografare la firma in modo tale che i contenuti appaiano come prima che la chiave privata li crittografasse.
Che ne dici degli attacchi man in the middle?
Questo è uno dei motivi principali (se non il motivo principale) per cui è stato creato lo standard di cui sopra.
Diciamo che l'hacker Jane intercetta la richiesta dell'utente di Internet Bob e risponde con il proprio certificato. Tuttavia, l'hacker-Jane è ancora abbastanza attenta da dichiarare nel certificato che l'emittente era Example-CA. Infine, l'hacker-Jane ricorda che deve includere una firma sul certificato. Ma quale chiave usa Jane per firmare (ovvero creare un valore crittografato del contenuto principale del certificato) il certificato ?????
Quindi, anche se l'hacker-Jane ha firmato il certificato con la sua chiave, vedi cosa succederà dopo. Il browser dirà: "ok, questo certificato è emesso da Example-CA, decifriamo la firma con la chiave pubblica di Example-CA". Dopo la decrittografia, il browser rileva che i contenuti del certificato non corrispondono affatto. Quindi, il browser fornisce un avviso molto chiaro all'utente e dice che non si fida della connessione.