Sicuramente hai visto svariate volte indirizzi che cominciano con https://, ti sei chiesto cosa significasse, e sei atterrato su questo articolo. Per introdurti il concetto, ti dico che quella “s” finale sta per Secure Socket Layer. Per ora non ci interessa sapere cosa significa Socket Layer, ma prenderemo solamente la parola Secure. L’HTTPS, infatti, rispetto all’HTTP, fornisce un livello di sicurezza maggiore. L’idea alla base di questo protocollo, è di garantire la riservatezza della comunicazione, crittografando le informazioni trasmesse. Cosa che con HTTP non avviene. Attenzione, non sto dicendo che HTTP è un protocollo non sicuro, ma che per proteggere informazioni private, sarebbe meglio utilizzare HTTPS. HTTPS, infatti, è d’obbligo per tutte quelle applicazioni Web che raccolgono informazioni come estremi di pagamento e dati personali. Pensa che senza HTTPS non è possibile integrare i commenti sociali di Facebook sul tuo sito!
Ora vediamo come funziona questo bel protocollo sicuro…
A Cosa Serve questo HTTPS?
Nell’introduzione a questo articolo, hai già letto che serve per proteggere le informazioni trasmesse. Ora vediamo meglio questo discorso.
Innanzitutto, questa comunicazione, tra chi è? Quali sono le parti coinvolte?
Molto banalmente, i due interlocutori sono il webserver su cui gira il sito e te. Con HTTPS, si aggiunge un terzo interlocutore, che fa da garante. Certifica che la trasmissione è cifrata, e ti fornisce informazioni sull’identità del sito. Questo terzo interlocutore, è chiamato Certificate Authority (CA).
Con HTTPS, si evitano tutti gli attacchi di tipo MIM (Man In The Middle), in cui un attaccante intercetta il traffico tra due interlocutori. Si evita proprio perchè la comunicazione è cifrata.
Leggeresti qualcosa come questo:
Come Funziona?
La cifratura delle informazioni avviene grazie all’utilizzo del protocollo SSL/TLS, rispettivamente acronomi di Secure Socket Layer e Transport Layer Security.
Devi sapere che sono due protocolli diversi, ma sono scritti in coppia perchè TLS è l’evoluzione di SSL. Come tale, le principali differenze rispetto al suo padre, sono la suddivisione in sottolivelli.
Vediamo nel dettaglio.
Sottolivelli del TLS
- TLS Handshake Protocol:
- Handshake Protocol: negozia i parametri per l’inizio della connessione;
- Alert State Protocol: segnala errori e chiusura della connessione;
- Change Cypher Protocol: notifica il cambio dell’algoritmo di cifratura.
- TLS Record Protocol: scambia i dati con l’applicazione.
I parametri della connessione, infatti, sono negoziati dal protocollo per l’handshake. Le parti che negoziano sono sempre il webserver e il client. La comunicazione con SSL/TLS è cifrata in un algoritmo a chiave simmetrica (es. AES), la cui chiave è generata da una delle due parti con un algoritmo a chiave asimmetrica (es. RSA)
Verificare i Certificati di un Sito
Puoi verificare i certificati di un sito dal tuo browser. La procedura può cambiare a seconda del browser, ma generalmente ti basta collegarti ad un sito con protocollo HTTPS (es. https://www.twitter.com), e cliccare a sinistra dell’URL, per visualizzare le informazioni sull’identità.
In Conclusione
HTTPS garantisce la sicurezza di una connessione. Questa sicurezza è ottenuta unendo ad HTTP il protocollo a livello applicativo SSL/TLS, che cifra la trasmissione in modo notevolmente sicuro. Le caratteristiche di una comunicazini con SSL/TLS sono:
- Collegamento privato: crittografia a chiave simmetrica tra due interlocutori;
- Autenticazione: crittografia a chiave asimmetrica e certificazione del server;
- Affidabilità: utilizza algoritmi di hashing per verificare l’integrità delle informazioni.
Questo articolo è stato scritto da Davide Fondatore ed Autore at FortyZone