HTTPS: significato e funzioni

La sicurezza dei dati e la crittografia sono questioni fondamentali per tutto ciò che fai online. Per la comunicazione sicura tra browser e server viene infatti utilizzato il protocollo HTTPS: in questo articolo approfondiremo cosa significa questa abbreviazione e come funziona una connessione criptata.

HTTPS sta per HyperText Transfer Protocol Secure. Il punto è proprio “Secure”. Infatti, rispetto al precedente standard di trasmissione HTTP, con HTTPS i dati vengono trasmessi in modo sicuro e crittografato.

Questa crittografia si applica a tutte le comunicazioni tra un browser web (client) e un server. Lo scopo di questa comunicazione è la corretta visualizzazione delle pagine, la trasmissione sicura dei dati e una serie di funzioni importanti per la navigazione.

Anche se il protocollo HTTPS non assicura una protezione completa al 100%, il rischio di essere vittima di criminalità informatica e di furti di dati diminuisce notevolmente.

Come funziona l’HTTPS?

Il protocollo sicuro HTTPS si basa su due grandi pilastri: la crittografia e l’autenticazione.

  1. I dati vengono trasmessi in modo criptato tra il server e il client, a più livelli e per ogni richiesta o fase di comunicazione.
  2. Il server deve dimostrare tramite un certificato di essere effettivamente il server richiesto dal cliente e sul quale si trova il sito web in questione.

La crittografia usa il principio end-to-end: solo il client e il server dispongono della chiave per vedere i dati in chiaro. Le stazioni intermedie non dispongono di questa chiave.

La base è il protocollo di crittografia SSL/TLS. SSL (Secure Sockets Layer) è la versione di base, TLS (Transport Layer Security) il suo ulteriore sviluppo usato oggigiorno.

SSL/TLS si interpone tra il protocollo di trasmissione generale HTTP e il protocollo di trasmissione TCP, che determina le modalità di trasmissione. Per dirla in modo molto semplice:

HTTP + SLS/TLS + TCP = HTTPS

Come avviene la crittografia nella trasmissione dei dati?

La connessione HTTPS si basa su una tattica di crittografia a più livelli di chiavi. In sostanza, la sicurezza tramite una porta HTTPS (porta TCP 403) si realizza su più livelli:

  1. Il client e il server si salutano: la richiesta del client al server si chiama “Client Hello“. La risposta invece si chiama “Server Hello“.
  2. Sul “Server Hello”, chi risponde invia contemporaneamente il proprio certificato e una chiave pubblica per la sessione condivisa (“Server Key Exchange”).
  3. Se il client riconosce il certificato come valido (convalida), genera una chiave per la sessione corrispondente.
  4. Il client usa la chiave pubblica del server per cifrare la propria sessione. Il risultato viene quindi inviato al server (“Client Key Exchange”).
  5. Il server, a sua volta, utilizza la propria chiave privata per decodificare la chiave generata dal client e stabilire un canale di sessione “segreto”.

Tutte le ulteriori richieste e risposte tra server e client saranno salvate permanentemente con lo stesso principio.

Quanto è sicuro il protocollo HTTPS?

L’HTTPS è ormai imprescindibile per molte interazioni client-server, basti pensare agli shop online e all’internet banking. Questo non significa però che che tutti i siti vengano crittografati con lo stesso principio. E solo perché un server offre un certificato e una chiave, non significa che la connessione sia davvero sicura.

A tal fine, il client (ad esempio, il browser) deve essere in grado di verificare in modo affidabile se il certificato del server è (ancora) valido. Questa convalida avviene tramite OCSP (Online Certificate Status Protocol) presso l’autorità di certificazione responsabile.

Tuttavia, molti browser sono in ritardo con l’OCSP. Dopo un certo periodo di tempo senza risposta da parte dell’autorità di certificazione, il certificato viene accettato anche senza verifica. Senza contare che terze parti potrebbero violare in altro modo la crittografia o scoprire il codice della chiave.

L’HTTPS, tuttavia, rende il tutto più difficile e il processo molto più complesso. In questo modo, almeno, si riduce la probabilità di essere attaccati da siti in cui l’HTTPS ha un rapporto di utilità/sforzo troppo elevato dal punto di vista degli hacker.

Conclusione

Anche se non è la soluzione a tutti i problemi, il protocollo HTTPS vi si avvicina molto secondo gli standard attuali per la trasmissione sicura dei dati su internet.

La dicitura “HTTPS” sta diventando sempre di più un criterio per decidere se si vuole o meno visitare un determinato sito: i webmaster dovrebbero quindi essere sempre aggiornati su questo argomento se vogliono che i loro siti restino rilevanti.