Hyper Text Transfer Protocol Secure (HTTPS) è la versione sicura di HTTP. HTTPS viene utilizzato per comunicazioni Internet riservate, ad esempio per transazioni online e scambi di messaggi su social media.
HTTPS è un protocollo Internet stabilito attraverso una sessione handshake SSL/TLS. In browser Web quali Internet Explorer, Firefox e Chrome viene visualizzata l'icona del lucchetto nella barra degli indirizzi per indicare che è attiva una connessione HTTPS.
SSL (Secure Sockets Layer) / TLS (Transport Layer Security) è la tecnologia standard per mantenere sicura la connessione HTTP. Utilizza algoritmi di crittografia per impedire la lettura e la modifica delle informazioni da parte di sistemi o persone non autorizzate. Gli algoritmi di autenticazione di SSL/TLS forniscono un'identità sicura del punto finale. TLS è una versione aggiornata, più sicura, di SSL. Attualmente TLS è il modo principale per proteggere il traffico in Internet. Tuttavia, il termine SSL viene ancora utilizzato per descrivere la tecnologia di sicurezza di sessioni HTTPS.
In questo manuale, SSL/TLS si riferisce alla tecnologia SSL.
Per stabilire una connessione HTTPS tra un client e un server, è necessario almeno il Certificato di identità del server per l'autenticazione.
La sessione handshake SSL/TLS è il primo passaggio per avviare una connessione HTTPS. Durante l'handshake SSL/TLS, il server e il client eseguono procedure di autenticazione e negoziazione. Negoziano sulla versione di TLS, sull'algoritmo di scambio di chiave e sull'algoritmo per crittografare lo scambio di informazioni. Il set di algoritmi di crittografia è noto anche come pacchetto di crittografia.
Esempio:
Di seguito è disponibile uno schema in cui sono illustrati i passaggi principali dell'handshake SSL/TLS tra un server Web e un browser.
Il browser richiede una connessione HTTPS.
Il server Web invia una copia del proprio Certificato di identità incorporato con la chiave pubblica.
Il browser verifica il Certificato di identità e la chiave pubblica.
Il browser e il server Web concordano una chiave di crittografia condivisa.
Il browser e il server Web utilizzano la stessa chiave condivisa per crittografare il testo normale in testo crittografato ed eseguono la decrittografia del testo crittografato in testo normale.
Per garantire la sicurezza della connessione, per ogni nuova sessione viene negoziata e creata una nuova chiave condivisa.