Internet è un canale non attendibile di comunicazione. Quando si inviano o ricevi informazioni da un vecchio sito HTTP http: //www.esempio.com Nel tuo browser, molte cose possono succedere a metà strada per i tuoi pacchetti.
I primi due problemi possono essere risolti crittografando il messaggio prima che venga inviato su Internet al server. Vale a dire, passando a HTTPS. Tuttavia, l'ultimo problema, il problema dell'identità è dove entra in gioco un'autorità di certificazione.
Iniziare le sessioni HTTP crittografate
Il problema principale con la comunicazione crittografata su un canale insicuro è “Come si avvia?"
Il primo passo comporterebbe le due parti, il browser e il server, per scambiare le chiavi di crittografia per essere scambiate sul canale insicuro. Se non hai familiarità con il termine tasti, pensa a loro come una password generata in modo casuale davvero a lungo con cui i tuoi dati verranno crittografati prima di essere inviati sul canale insicuro.
Bene, se le chiavi vengono inviate su un canale insicuro, chiunque può ascoltarlo e compromettere la sicurezza della tua sessione HTTPS in futuro. Inoltre, come possiamo fidarci del fatto che la chiave viene inviata da un server che afferma di essere www.esempio.com è davvero il proprietario reale di quel nome di dominio? Possiamo avere una comunicazione crittografata con una festa dannosa mascherata da sito legittimo e non conoscere la differenza.
Quindi, il problema di garantire l'identità è importante se desideriamo garantire lo scambio chiave sicuro.
Autorità di certificazione
Potresti aver sentito parlare di LetSencrypt, Digicert, Comodo e alcuni altri servizi che offrono certificati TLS per il tuo nome di dominio. Puoi scegliere quello che si adatta alla tua necessità. Ora, la persona/organizzazione che possiede il dominio deve dimostrare in qualche modo all'autorità di certificazione che hanno effettivamente il controllo sul dominio. Questo può essere fatto da uno dei due creazione di un record DNS con un valore univoco in esso, come richiesto dall'autorità di certificazione, oppure è possibile aggiungere un file al tuo server Web, con contenuti specificati dall'autorità di certificazione, la CA può quindi leggere questo file e confermare di essere un proprietario valido del dominio.
Quindi negozi un certificato TLS con la CA e che si traduce in una chiave privata e un certificato TLS pubblico rilasciato al tuo dominio. I messaggi crittografati dalla tua chiave privata possono quindi essere decrittuiti dal certificato pubblico e viceversa. Questo è noto come crittografia asimmetrica
I browser client, come Firefox e Chrome (a volte anche il sistema operativo) hanno la conoscenza delle autorità di certificazione. Queste informazioni sono cotte nel browser/dispositivo fin dall'inizio (vale a dire, quando sono installate) in modo che sappiano di poter fidarsi di alcuni CAS. Ora, quando provano a connettersi a www.esempio.com su https e vedere un certificato emesso da, diciamo digicert, il browser può effettivamente verificare che l'utilizzo dei tasti memorizzati a livello locale. In realtà, ci sono alcuni altri passaggi intermediari, ma questa è una buona panoramica semplificata di ciò che sta accadendo.
Ora che il certificato fornito da www.esempio.Si può fidarsi di com, questo viene utilizzato per negoziare una chiave di crittografia simmetrica univoca che viene utilizzata tra il client e il server per il restante sessione. Nella crittografia simmetrica, una chiave viene utilizzata per crittografare e decrittare ed è di solito molto più veloce della sua controparte asimmetrica.
Sfumature
Se l'idea di TLS e di sicurezza Internet ti fa appello, puoi esaminare ulteriormente questo argomento scavando su LetSTancrypt e il loro TLS CA gratuito. C'è molto più minimo in tutto questo rigmarole di quanto indicato sopra.
Altre risorse che posso raccomandare per saperne di più su TLS sono il blog di Troy Hunt e il lavoro svolto da EF come HTTPS ovunque e Certbot. Tutte le risorse sono gratuite per l'accesso e davvero economiche da implementare (devi solo pagare per la registrazione dei nomi di dominio e gli addebiti orari dei VPS) e ottenere un'esperienza pratica.