Come funziona HTTPS? - Guida per principianti

Come funziona HTTPS? - Guida per principianti
Le autorità del certificato sono una delle pietre angolari più importanti per la sicurezza di Internet. Un'autorità di certificazione è qualcuno di cui si fida di tutti, all'inizio, quando nessuno si fida di nessun altro. È quindi il lavoro di questa autorità di certificazione (a.K.una ca) per garantire che sia stabilita la fiducia tra server e clienti prima di stabilire la comunicazione su Internet.Una CA è importante non solo per HTTPS utilizzato da browser e app Web, ma anche per e -mail crittografate, aggiornamenti software firmati, VPN e molto di più. Prenderemo l'esempio prototipico di HTTPS e impareremo in CA, in questo particolare contesto. Sebbene sia possibile estrapolare il risultato in qualsiasi altra suite di software.

Problemi con HTTP e testo normale

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.

  1. Un cattivo attore può intercettare la comunicazione, copiare i dati per se stessi, prima di renderli di nuovo sul canale verso di te o sul server con cui stavi parlando. Senza la conoscenza di entrambe le parti, le informazioni sono compromesse. Dobbiamo garantire che la comunicazione sia privato.
  2. Un cattivo attore può modificare le informazioni in quanto vengono inviate sul canale. Bob potrebbe aver inviato un messaggio "X" Ma Alice avrebbe ricevuto "Y" da Bob, perché un cattivo attore ha intercettato il messaggio e lo ha modificato. In altre parole, il integrità del messaggio è compromesso.
  3. Infine, e soprattutto, dobbiamo assicurarci che la persona con cui stiamo parlando sia davvero chi dicono di essere. Tornando al esempio.com dominio. Come possiamo assicurarci che il server che ci ha risposto sia davvero il legittimo titolare di WWW.esempio.com? In qualsiasi momento della tua rete, puoi essere indirizzato erroneamente a un altro server. Un DNS da qualche parte è responsabile della conversione di un nome di dominio, come WWW.esempio.com, in un indirizzo IP su Internet pubblico. Ma il tuo browser non ha modo di verificare che l'indirizzo IP tradotto DNS.

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.