HTTP

Come funziona HTTPS? - Guida per principianti

Come funziona HTTPS? - Guida per principianti
Le autorità di certificazione sono una delle pietre miliari più importanti per la sicurezza di Internet. Un'autorità di certificazione è qualcuno di cui tutti si fidano, all'inizio, quando nessuno si fida di nessun altro. È quindi compito di questa autorità di certificazione (a.K.a CA) per garantire che venga stabilita la fiducia tra server e client prima che stabiliscano 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 altro ancora. Prenderemo l'esempio prototipo di HTTPS e impareremo a conoscere CA, in questo particolare contesto. Sebbene sia possibile estrapolare il risultato a qualsiasi altra suite di software.

Problemi con HTTP e testo normale

Internet è un canale di comunicazione non affidabile. Quando invii o ricevi informazioni da un vecchio sito HTTP http://www.esempio.come nel tuo browser, molte cose possono accadere a metà dei tuoi pacchetti.

  1. Un cattivo attore può intercettare la comunicazione, copiare i dati per sé, prima di reinviarla nuovamente sul canale verso di te o verso il server con cui stavi parlando. All'insaputa di nessuna delle parti, le informazioni sono compromesse. Dobbiamo garantire che la comunicazione sia privato.
  2. Un cattivo attore può modificare le informazioni mentre vengono inviate sul canale. Bob potrebbe aver inviato un messaggio "X" ma Alice riceverebbe "sì" da Bob, perché un cattivo attore ha intercettato il messaggio e l'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 dice di essere. Tornando al esempio.come dominio. Come possiamo assicurarci che il server che ci ha risposto sia effettivamente il legittimo titolare di www.esempio.come? In qualsiasi punto 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 dal 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.

Avvio di sessioni HTTP crittografate

Il problema principale con la comunicazione crittografata su un canale non sicuro è "Come iniziamo??"

Il primissimo passo comporterebbe che le due parti, il tuo browser e il server, si scambino le chiavi di crittografia da scambiare sul canale non sicuro. Se non hai familiarità con il termine chiavi, pensale come una password generata casualmente molto lunga con la quale i tuoi dati verranno crittografati prima di essere inviati sul canale non sicuro.

Bene, se le chiavi vengono inviate su un canale non sicuro, chiunque può ascoltarlo e compromettere la sicurezza della tua sessione HTTPS in futuro. Inoltre, come possiamo fidarci che la chiave inviata da un server che dichiara di essere www.esempio.com è effettivamente il proprietario effettivo di quel nome di dominio? Possiamo avere una comunicazione crittografata con una parte dannosa mascherata da sito legittimo e non conoscere la differenza.

Quindi, il problema di garantire l'identità è importante se desideriamo garantire uno scambio di chiavi 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 alle tue esigenze. Ora, la persona/organizzazione proprietaria del dominio deve dimostrare in qualche modo alla propria autorità di certificazione di avere effettivamente il controllo sul dominio. Questo può essere fatto creando un record DNS con un valore univoco al suo interno, come richiesto dall'Autorità di Certificazione, oppure puoi aggiungere un file al tuo server web, con i contenuti specificati dall'Autorità di Certificazione, la CA può quindi leggere questo file e conferma di essere un valido proprietario del dominio.

Quindi negozi un certificato TLS con la CA e ciò si traduce in una chiave privata e in un certificato TLS pubblico rilasciato al tuo dominio. I messaggi crittografati dalla tua chiave privata possono quindi essere decifrati 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 vengono inserite nel browser/dispositivo fin dall'inizio (vale a dire, quando vengono installate) in modo che sappiano che possono fidarsi di determinate CA. 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 utilizzando le chiavi memorizzate localmente. In realtà, ci sono alcuni passaggi intermedi in più, ma questa è una buona panoramica semplificata di ciò che sta accadendo.

Ora che il certificato fornito da www.esempio.com può essere attendibile, questo viene utilizzato per negoziare una chiave di crittografia simmetrica univoca che viene utilizzata tra il client e il server per il resto della loro sessione. Nella crittografia simmetrica, una chiave viene utilizzata sia per crittografare che per decifrare ed è solitamente molto più veloce della sua controparte asimmetrica.

sfumature

Se l'idea di TLS e della sicurezza Internet ti attira, puoi approfondire questo argomento scavando in LetsEncrypt e nella loro CA TLS gratuita. Ci sono molte più minuzie in tutta questa trafila di quanto detto sopra.

Altre risorse che posso consigliare per saperne di più su TLS sono il blog di Troy Hunt e il lavoro svolto da EFF come HTTPS Everywhere e Certbot. Tutte le risorse sono ad accesso gratuito e sono davvero economiche da implementare (devi solo pagare per la registrazione del nome di dominio e le tariffe orarie del VPS) e ottenere un'esperienza pratica.

Recensione del mouse wireless Microsoft Sculpt Touch
Ho letto di recente del Microsoft Scolpisci il tocco mouse wireless e ho deciso di acquistarlo. Dopo averlo usato per un po', ho deciso di condividere...
Trackpad e puntatore del mouse su schermo AppyMouse per tablet Windows
Gli utenti di tablet spesso mancano il puntatore del mouse, soprattutto quando sono abituati a usare i laptop laptop. Gli smartphone e i tablet touchs...
Il pulsante centrale del mouse non funziona in Windows 10
Il tasto centrale del mouse ti aiuta a scorrere lunghe pagine web e schermate con molti dati. Se si ferma, finirai per usare la tastiera per lo scorri...