In telecomunicazioni e informatica lHyperText Transfer Protocol over Secure Socket Layer (HTTPS), (anche noto come HTTP over TLS, HTTP over SSL e HTTP Secure) è un protocollo per la comunicazione sicura attraverso una rete di computer utilizzato su Internet. La porta utilizzata generalmente (ma non necessariamente) è la 443. Consiste nella comunicazione tramite il protocollo HTTP (Hypertext Transfer Protocol) all'interno di una connessione criptata, tramite crittografia asimmetrica, dal Transport Layer Security (TLS) o dal suo predecessore, Secure Sockets Layer (SSL) fornendo come requisiti chiave: un'autenticazione del sito web visitato; protezione della privacy (riservatezza o confidenzialità); integrità dei dati scambiati tra le parti comunicanti.

Generalità Nel suo popolare funzionamento su Internet, HTTPS fornisce la sicurezza del sito web e del server web associato con cui una delle parti sta comunicando, proteggendo la comunicazione dagli attacchi noti tramite la tecnica del man in the middle. Inoltre, HTTPS fornisce una cifratura bidirezionale delle comunicazioni tra un client e un server, che protegge la stessa contro le possibili operazioni di eavesdropping, (azione mediante la quale viene ascoltata segretamente la conversazione privata tra le parti senza il loro consenso) e tampering (letteralmente manomissione o alterazione della comunicazione) falsificandone i contenuti. In pratica, tale meccanismo fornisce una garanzia soddisfacente del fatto che si sta comunicando esattamente con il sito web voluto (al contrario di un sito falso), oltre a garantire che i contenuti delle comunicazioni tra l'utente e il sito web non possano essere intercettate o alterate da terzi.

Storicamente, le connessioni HTTPS erano usate soprattutto per i pagamenti nelle transazioni sul World Wide Web (in particolare per il commercio elettronico), e-mail e per le transazioni sensibili all'interno dei sistemi informativi aziendali. Nel tardo 2000 e nei primi anni del 2010, HTTPS ha iniziato ad avere una larga diffusione e ampio utilizzo per proteggere l'autenticità delle pagine web, la sicurezza degli account utente e per mantenere private le comunicazioni, l'identità e la navigazione web dell'utente.

Storia Questo sistema fu progettato dalla Netscape Communications Corporation che si occupa delle autenticazioni e delle comunicazioni crittografate ed è largamente usato nel World Wide Web per situazioni che richiedono particolari esigenze in ambito di sicurezza come per esempio il pagamento di transazioni online. In questo caso SSL garantisce la cifratura dei dati inviati e ricevuti su internet.

Descrizione Nei browser web, la URI (Uniform Resource Identifier) che si riferisce a tale tecnologia ha nome di schema https ed è in tutto e per tutto analoga alle URI http. Tuttavia, HTTPS segnala al browser di usare il livello di cifratura aggiuntivo SSL/TLS per proteggere il traffico internet. SSL/TLS è particolarmente adatto al protocollo HTTP, dato che può fornire una qualche protezione, anche se tra le parti comunicanti solo una è autenticata. Questo è il caso di HTTP nelle transazioni su internet, dove tipicamente è il server l'unica parte ad essere autenticata, mentre il client esamina il certificato del server.

HTTPS si occupa di creare un canale di comunicazione sicuro attraverso una rete di computer non sicura. Ciò garantisce una protezione accettabile dagli eavesdropper (ascoltatori indiscreti) e dagli attacchi man in the middle, purché sia usata una cifratura adeguata della comunicazione e che il certificato del server sia verificato e fidato.

Alla base del funzionamento di HTTPS, sopra il Transport Layer Security, risiede interamente il protocollo HTTP; per questo motivo quest'ultimo può essere criptato del tutto. La cifratura del protocollo HTTP include: la richiesta URL (la pagina web che è stata richiesta) i parametri di query le intestazioni della connessione (headers) i cookies (i quali spesso contengono le informazioni sull'identità dell'utente)

Tuttavia, poiché gli indirizzi IP degli host (siti web) e i numeri di porta fanno parte dei protocolli sottostanti del TCP/IP, HTTPS non può proteggere la loro divulgazione. In pratica, significa che anche se un web server è correttamente configurato, gli eavesdropper possono dedurre l'indirizzo IP e il numero di porta (qualche volta anche il nome del dominio, ad esempio "www.example.org", ma non il resto dell'URL) del web server con cui si sta comunicando, oltre alla quantità dei dati trasferiti e la durata della comunicazione (lunghezza della sessione), ma non il contenuto della comunicazione.

I browser web sanno come fidarsi dei siti web HTTPS basati su certificati di autorità che vengono preinstallati nel loro software. Le autorità di certificazione (come Symantec, Comodo, GoDaddy e GlobalSign) sono fidate per i creatori di browser web, per fornire certificati validi ai fini della comunicazione. Pertanto, un utente dovrebbe fidarsi di una connessione HTTPS verso un sito web se e solo se tutti i punti seguenti sono verificati: L'utente si fida del fatto che il software del browser implementi correttamente il protocollo HTTPS con dei certificati di autorità correttamente preinstallati. L'utente si fida dell'autorità di certificazione che garantisce solo siti web legittimi. Il sito web fornisce un certificato valido, che significa che è stato firmato da un'autorità di fiducia. Il certificato identifica correttamente il sito web (ad esempio quando il browser visita "https://example.com", il certificato ricevuto è appropriatamente quello relativo a "example.com" e non di qualche altra entità). L'utente si fida del fatto che il livello di crittografia del protocollo (SSL/TLS) è sufficientemente sicuro contro le possibili operazioni degli eavesdropper.

HTTPS è particolarmente importante attraverso le reti insicure (come i punti di accesso WiFi pubblici), dato che chiunque sulla stessa rete locale può effettuare uno sniffing di pacchetti e scoprire informazioni sensibili e non protette da HTTPS. Oltre a ciò, molti vengono pagati per impegnarsi nel fare packet injection ("iniezione di pacchetti") all'interno di reti wireless allo scopo di fornire un servizio per le pubblicità delle proprie pagine web, mentre altri lo fanno liberamente. Tuttavia, questa operazione può essere sfruttata malignamente in molti modi, come iniettare dei malware su pagine web e rubare informazioni private agli utenti.

HTTPS è anche molto importante con le connessioni sulla rete Tor (acronimo di The Onion Router) per preservare l'anonimato su internet, siccome i nodi Tor maligni possono danneggiare o alterare i contenuti che li attraversano in maniera insicura e iniettano malware dentro la connessione. Per questa ragione l'Electronic Frontier Foundation (EFF) e il progetto Tor hanno avviato lo sviluppo del protocollo HTTPS Everywhere, il quale è incluso all'interno del pacchetto Tor Browser.

Nonostante siano divulgate più informazioni riguardo alla sorveglianza globale di massa e al furto di informazioni personali da parte degli hacker, l'uso di HTTPS per la sicurezza su tutti i siti web sta diventando sempre più importante, a prescindere dal tipo di connessione ad internet usata. Mentre i metadati delle pagine individuali che un utente visita non sono informazioni sensibili, quando queste informazioni sono combinate insieme possono svelare molto sull'identità dell'utente e comprometterne la privacy stessa.

L'impiego di HTTPS inoltre consente l'utilizzo dei protocolli SPDY/HTTP/2, che sono nuove generazioni del protocollo HTTP, progettate per ridurre i tempi di caricamento e la latenza delle pagine web.

È raccomandato usare HTTP Strict Transport Security (HSTS) con HTTPS per proteggere gli utenti dagli attacchi man in the middle, in particolare SSL stripping.

HTTPS non dovrebbe essere confuso con il protocollo poco utilizzato Secure HTTP (S-HTTP) descritto nella specifica RFC 2660.

Utilizzo nei siti web Alla data del 3 maggio 2017, il 56,8% dei maggiori siti web ha un'implementazione sicura del protocollo HTTPS. HTTPS è utilizzato dal 5,24% del totale dei domini italiani registrati.

Integrazione nei browser La maggior parte dei browser visualizza un messaggio di warning se riceve un certificato non valido dal server che funge come autorità di certificazione. I browser meno recenti, quando si connettevano ad un sito web con un certificato non valido, mostravano all'utente un messaggio di dialogo che chiedeva loro se volevano proseguire con la navigazione. I browser più recenti invece, visualizzano un messaggio di warning che copre l'intera finestra, mostrando per bene all'utente le informazioni di sicurezza del sito visitato sulla barra degli indirizzi del browser. Nei browser moderni la validazione estesa dei certificati mostra la barra degli indirizzi con un colore verde. Inoltre, la maggior parte dei browser visualizza un messaggio di warning all'utente quando esso sta visitando un sito che contiene un misto di contenuti criptati e non criptati.

Firefox usa il protocollo HTTPS per le ricerche Google dalla versione 14, con lo scopo di "proteggere i nostri utenti dall'infrastruttura di rete che può raccogliere dati dagli utenti o modificare/censurare i loro risultati di ricerca".

L'Electronic Frontier Foundation, ha espresso l'opinione che: “In un mondo ideale, ogni richiesta web potrebbe essere trasformata di default in una richiesta HTTPS”. Per i browser Google Chrome, Mozilla Firefox (anche su Android) e Opera è disponibile un add-on chiamato “HTTPS Everywhere” che abilita il protocollo HTTPS di default per centinaia di siti web.

Sicurezza La sicurezza di HTTPS è garantita dal protocollo TLS sottostante, che utilizza chiavi private e pubbliche a lungo termine per generare chiavi di sessione a breve termine. Queste chiavi sono utilizzate successivamente per cifrare il flusso dei dati scambiati tra client e server. I certificati definiti dallo standard X.509 sono utilizzati per autenticare il server (a volte anche il client). Di conseguenza, le autorità certificative e i certificati a chiave pubblica sono necessari al fine di verificare il rapporto che sussiste tra il certificato e il suo proprietario, oltre a generare la firma e gestire la validità dei certificati. Mentre questo può essere più vantaggioso rispetto a verificare le identità attraverso una rete di fiducia, le divulgazioni di massa sulla sorveglianza nel 2013 hanno richiamato all'attenzione le autorità certificative come potenziale punto debole per attacchi man in the middle.Law Enforcement Appliance Subverts SSL , Wired, 2010-04-03.New Research Suggests That Governments May Fake SSL Certificates , EFF, 2010-03-24. Una proprietà importante in questo contesto è la forward secrecy, che garantisce che le comunicazioni cifrate registrate nel passato non possano essere recuperate e decifrate e le chiavi di cifratura a lungo termine o le password non siano compromesse in futuro. Non tutti i web server forniscono la forward secrecy.SSL: Intercepted today, decrypted tomorrow , Netcraft, 2013-06-25.

Un sito web deve essere totalmente ospitato sul protocollo HTTPS, senza avere parte dei suoi contenuti su HTTP - per esempio, avere script caricati online in modo insicuro (in chiaro) - o l'utente sarà vulnerabile a certi attacchi e sottoposto a sorveglianza. Avere anche solo una determinata pagina web di un sito che contiene informazioni sensibili (come una pagina di log-in) sotto protocollo HTTPS, ma avere il resto del sito web caricato su protocollo HTTP in chiaro, esporrà l'utente a possibili attacchi. Su un sito web che ha informazioni sensibili da qualche parte su di esso, ogni volta che il sito è acceduto in HTTP invece che HTTPS, l'utente e la sessione saranno esposte sulla rete. Analogamente, i cookies su un sito web attivo tramite protocollo HTTPS, devono avere l'attributo di protezione abilitato.

Aspetti tecnici Differenza da HTTP