Protocollo HTTPS: cos’è?
Per capire cosa si intende con HTTPS, bisogna prima di tutto capire cos’è l’HTTP. HTTP è l’acronimo di HyperText Transfer Protocol (protocollo di trasferimento di un ipertesto), ed è il principale protocollo utilizzato per la trasmissione di dati attraverso Internet. Il suo funzionamento è abbastanza semplice: il client, ad esempio il computer di un utente, invia una richiesta al server che ospita il sito Web che si vuole consultare; il server invia quindi una risposta al client, contenente la pagina Web.
La comunicazione tramite protocollo HTTP presenta però alcuni problemi. Il traffico è infatti anonimo e non criptato, quindi vulnerabile agli attacchi informatici. Questo può essere pericoloso, soprattutto quando si inviano dati sensibili. Se, ad esempio, la comunicazione verso il sito della propria banca avvenisse tramite protocollo HTTP, un abile hacker sarebbe in grado di impossessarsi delle credenziali di accesso. È proprio la mancanza di sicurezza che ha spinto alla ricerca di un nuovo protocollo, l’HTTPS, che garantisce una sicurezza maggiore.
Protocollo HTTPS: Cos’è?
HTTPS è l’acronimo di HyperText Transfer Protocol over Secure Socket Layer. È molto simile al protocollo HTTP, ma in questo caso la comunicazione è criptata. In pratica, l’HTTPS introduce un passaggio intermedio tra il client e il server, cioè un certificato SSL o TLS, che permette di avere tre livelli di protezione:
- Crittografia. Tutti i dati che vengono inviati e ricevuti sono criptati, e possono essere decriptati solo da chi è in possesso della chiave, cioè gli interlocutori diretti (client e server).
- Integrità. I dati che vengono scambiati sono protetti da qualsiasi modifica.
- Autenticazione. Il protocollo garantisce che il sito visitato sia effettivamente quello richiesto dall’utente.
Se si vuole essere sicuri che i dati inseriti in un sito Web non possano essere intercettati da qualcun altro, bisogna quindi sempre verificare che il sito in questione utilizzi il protocollo HTTPS. Si tratta di un’operazione molto semplice: in alcuni browser, viene semplicemente visualizzata la stringa https://nell’URL del sito che si sta visitando; in altri browser, invece, al suo posto viene visualizzato un lucchetto.
Con il protocollo HTTPS a essere protette sono, però, soltanto le informazioni inviate, mentrerimane visibile all’esterno qual è il sito visitato. Se si vuole avere un livello di protezione ancora più alto, può essere una buona idea installare una VPN, in modo che a essere mascherata sia l’intera comunicazione. Cliccare qui per scoprire che cos’è una VPN.
Diffusione del protocollo HTTPS
Inizialmente, il protocollo HTTP era l’unico utilizzato sul Web. Con il passare del tempo, l’aumento del traffico e la diffusione di servizi online che richiedono l’inserimento di informazioni personali, il protocollo HTTPS è stato implementato sempre più spesso, per riuscire a garantire quella sicurezza di cui si è già parlato. Gli effetti sono evidenti non soltanto per l’esperienza utente, ma anche per chi gestisce servizi online, siti Web, ecc.
Da alcuni anni, infatti, i siti che utilizzano il protocollo HTTPS vengono premiati dai motori di ricerca, che li mostrano alle prime posizioni a scapito di siti che utilizzano ancora il protocollo HTTP. Inoltre, i browser ormai segnalano come non sicuri tutti quei siti che richiedono l’inserimento di dati personali ma che non utilizzano il protocollo HTTPS. In pratica, qualsiasi sito che non è in grado di garantire la sicurezza degli utenti, viene enormemente penalizzato, riducendone la visibilità.
Come passare al protocollo HTTPS
Il protocollo HTTPS non è importante solo per gli utenti che visitano i siti Web, ma è fondamentale anche per chi i siti Web li gestisce. Per implementare questo protocollo nei propri siti, è necessario eseguire una serie di operazioni che richiedono un certo grado di competenza.
Prima di tutto è necessario ottenere un certificato SSL o TLS. SSL (Secure Sockets Layer, livello di socket sicuri) è una tecnologia che permette di criptare i dati che vengono trasmessi. TLS (Transport Layer Security, sicurezza del livello di trasporto) è la versione più recente della stessa tecnologia. Questi certificati vengono emessi da autorità di certificazione (CA, Certificate Authority), e possono essere di tre tipi diversi:
1. Certificati di validazione del dominio (DV). Si tratta di certificati che è possibile ottenere facilmente e in pochissimo tempo. Il richiedente (persona o ente legale) deve semplicemente fornire all’autorità di certificazione una prova del possesso del dominio per cui desidera ottenere il certificato. Questo certificato permette di ottenere una connessione sicura, ma non fornisce informazioni sull’azienda proprietaria del dominio. Un visitatore, quindi, avrà una garanzia di sicurezza sul trasferimento dei dati ma non sul destinatario finale.
2. Certificati di validazione dell’organizzazione (OV). Per ottenere questa tipologia di certificato è necessario fornire la documentazione di possesso del dominio all’autorità di certificazione, ed è necessario aspettare alcuni giorni in modo che vengano eseguite le dovute verifiche. Il certificato così ottenuto garantisce una connessione sicura e che il dominio sia effettivamente appartenente all’azienda richiedente.
3. Certificato di validazione estesa (EV). Si tratta del certificato più completo e affidabile, ma è ovviamente anche il più costoso e difficile da ottenere.
Una volta scelto il tipo di certificato, bisogna eseguire alcune operazioni per implementarlo nel proprio sito.
1. Generare una richiesta CSR. Sul server che ospita il proprio sito, è necessario eseguire una richiesta CSR, cioè creare una Certificate Signing Request. In questo modo, viene generato un file contenente informazioni sul server e sulla chiave pubblica che servirà in seguito a ottenere la chiave privata.
2. Richiedere il certificato SSL o TLS. Tra le autorità di certificazione (CA) disponibili, è necessario scegliere quella a cui si vuole fare riferimento. Alcune di queste autorità offrono questo servizio a titolo gratuito, mentre altre a pagamento; inoltre, bisogna fare attenzione a scegliere un’autorità che offra tutti i servizi di cui si ha bisogno. La cosa più importante è, comunque, sceglierne una che sia riconosciuta come affidabile, in modo da non rischiare di limitare la fruibilità del proprio sito.
3. Installare il certificato SSL o TLS. Dopo aver ottenuto il certificato, è necessario installarlo sul server che ospita il sito. A questo punto, bisogna configurare il server stesso in modo che possa trasmettere dati tramite il protocollo HTTPS.
4. Verificare il corretto funzionamento del sito. Questa operazione può richiedere anche molto tempo, perché prevede il controllo completo di tutta la struttura del sito Web. Vanno verificati tutti i link interni ed esterni, eventuali funzionalità che non sono più disponibili sotto HTTPS, ecc. È necessario anche reindirizzare tutte le pagine già indicizzate alla loro versione HTTPS.
5. Rinnovare il certificato. I certificati SSL e TLS hanno solitamente validità annuale, e vanno rinnovati prima della scadenza. Le operazioni da eseguire per il rinnovo sono sostanzialmente le stesse della richiesta iniziale. Alcune autorità di certificazione che offrono servizi gratuiti rilasciano certificati con validità più breve, quindi è sempre opportuno verificare con attenzione l’effettiva scadenza.
Possibili problemi con i certificati
Il protocollo HTTPS con relativi certificati dovrebbe garantire la sicurezza di un sito. In realtà, purtroppo, anche questa barriera protettiva è aggirabile. Ad esempio, può capitare che un truffatore riesca ad ottenere un certificato SSL/TLS registrando preventivamente un’azienda con un nome simile a un’altra, sfruttando poi questa somiglianza per dedicarsi al phishing.
Fortunatamente, molte delle autorità di certificazione che non eseguono i dovuti controlli sono note a browser come Firefox e Google, che ritengono quindi i certificati da loro emessi come non affidabili. In ogni caso, è sempre consigliabile fare attenzione quando si usa Internet e non dare mai per scontata la sicurezza della connessione, anche se lo sembra.