HTTPS è un protocollo che consente di far viaggiare informazioni personali e dati sensibili su un canale di comunicazione insicuro per antonomasia qual è la rete Internet. Abbiamo più volte ricordato come i siti che gestiscono informazioni che non debbono essere intercettate da parte di malintenzionati utilizzino HTTPS proprio per evitare il cosiddetto attacco dell'”uomo nel mezzo” (man-in-the-middle). Per scongiurare cioè i rischi di monitoraggio ed intercettazione da parte di utenti non autorizzati a visualizzare le informazioni personali.
HTTPS applica l’utilizzo di un protocollo di crittografia asimmetrica al semplice protocollo per il trasferimento di ipertesti HTTP. Quando ci si connette ad un sito web che utilizza HTTPS (utilizzo del protocollo TLS 1.2 insieme con un certificato valido e sicuro), si può essere ragionevolmente sicuri che i dati scambiati tra client e server non possano essere letti da parte di terzi.
Sebbene HTTPS possa essere utilizzato anche con altri protocolli crittografici (e quindi non solo con TLS 1.2), è proprio TLS 1.2 ad offrire oggi il massimo livello di sicurezza. A tal proposito, suggeriamo la lettura dell’articolo Certificato di protezione del sito web: cosa fare quando c’è un problema.
Che cos’è la crittografia asimmetrica
La cifratura asimmetrica o cifratura a chiave pubblica fa sì che ogni messaggio crittografato con una certa chiave pubblica possa essere decifrato solo da chi possiede la relativa chiave privata.
Quando si è sicuri che la chiave pubblica appartiene ad una determinato soggetto od organizzazione, allora si può essere certi che solamente il destinatario del messaggio potrà leggere i contenuti crittografati con quella chiave pubblica in quanto detentore della rispettiva chiave privata. Ovviamente vale anche l’inverso ossia se possiamo decifrare un messaggio usando la stessa chiave pubblica, allora saremo sicuri che quel messaggio è stato precedentemente crittografato dallo stesso soggetto/organizzazione.
Questo meccanismo entra automaticamente in funzione non appena ci si connette ad un sito web HTTPS: browser installato sul client e server web provvedono a gestire, in maniera trasparente, lo scambio cifrato delle informazioni e la loro decodifica (suggeriamo anche la lettura dell’articolo Certificati digitali SSL gratuiti: a cosa servono e come ottenerne uno in pochi minuti).
Chi è più veloce tra HTTP e HTTPS
È ovvio che affiancando ad HTTP tutto un meccanismo di codifica e decodifica dei dati, il trasferimento delle informazioni è più veloce usando il semplice HTTP. Se il server web genera pagine web in maniera dinamica, però, si scoprirà facilmente – in maniera empirica – che la differenza nel download dei dati è quasi trascurabile.
A far confusione, però, ci sta pensando il test raggiungibile a questo indirizzo che proclama una presunta superiorità in termini di performance di HTTPS rispetto ad HTTP.
Ciò non può ovviamente corrispondere al vero. Leggendo in calce alla pagina, si scoprirà come il testo non vada inteso come una comparazione diretta fra HTTP e HTTPS ma HTTP e HTTPS con SPDY.
SPDY è infatti il protocollo creato da Google proprio con l’obiettivo di ridurre al massimo i tempi per il download delle pagine web. Per utilizzare SPDY, però, è necessario che sia browser sia server web ne permettano l’impiego (vedere l’articolo I dati sul web viaggeranno con il protocollo HTTP 2.0). Tra l’altro, proprio in questi giorni i tecnici Google hanno comunicato che a partire da Chrome 40 SPDY inizierà ad essere mandato in pensione per puntare tutto su HTTP/2 (eredita gran parte delle caratteristiche di SPDY; vedere questo articolo).
Disabilitando, nel browser, il supporto SPDY, si noterà come in questo test, HTTP torni ad essere più veloce rispetto ad un HTTPS puro.