Da che mondo e mondo sappiamo quanto sia importante utilizzare il protocollo HTTPS per le nostre transazioni web più sensibili. Lo abbiamo imparato giorno per giorno, grazie anche ai sottili ma continui miglioramenti UI nei nostri browser, vedendo con piacere che sempre più siti lo usavano obbligatoriamente non solo, ovviamente, per il pagamento di un bene ma anche già a livello di login. Facebook, Google, Friendfeed e una lunga lista di altri siti sono poi utilizzabili completamente solo in HTTPS.
Stiamo sicuramente facendo dei passi avanti, in questo contesto, dove anche l'utente medio (quello che per esempio non ha notato che lo schema delle URL è ormai sparito dalla barra degli indirizzi del browser) sta acquistando la sensibilità necessaria per non farsi ingannare in maniera troppo semplice.
Per migliorare ulteriormente la situazione sicurezza e privacy, è stata proposta piuttosto recentemente una semplice, poco intrusiva, specifica: si chiama HSTS, che sta per HTTP Strict Transport Security.
Il sito coscienzioso e attento alla sicurezza dei propri clienti, farà in modo di usare sempre HTTPS, perlomeno nelle operazioni più sensibili. Ma che vuol dire "usare sempre HTTPS"? Ed è veramente possibile, al giorno d'oggi? La risposta è molto vicina ad un netto no. Ed è questo il problema che HSTS cerca di risolvere.
Il fatto è che al nostro sito coscienzioso, da parte del nostro browser, arriverà una richiesta di una pagina sensibile (la login page, per esempio) in HTTP. In tal caso, il sito provvederà a fare un redirect HTTP alla stessa pagina ma stavolta in HTTPS. Per l'utente non cambierà niente (forse un po' di ritardo dovuto al redirect). Il problema ovviamente è che la prima richiesta sarà stata effettuata "in chiaro", in HTTP semplice e alcuni dati sensibili potrebbero aver viaggiato in modalità non criptata.
Per evitare del tutto una possibile transazione in chiaro, è ovvio che l'iniziativa "sempre in HTTPS" dovrà essere presa dal browser e non dal server. Al momento non esiste niente che possa imporre ad un browser l'azione "Visita il sito Paypal.com sempre e solo in HTTPS". Ecco che dunque entra in gioco questa nuova specifica HSTS.
Il funzionamento è molto semplice: tra gli header della risposta HTTPS da parte di un sito "HSTS enabled", verrà inserito un nuovo header Strict-Transport-Security
. Il valore di questo campo è un max-age
che specifica in secondi per quanto tempo tale dominio dovrà essere richiesto solo tramite HTTPS, qualsiasi cosa l'utente scriva sulla barra degli indirizzi. àˆ ovvio dunque che se il numero di secondi è molto alto, quel dominio da parte del browser che ha ricevuto quella risposta HTTP sarà in pratica sempre acceduto in HTTPS.
Il browser manterrà dunque al proprio interno una lista di domini in HSTS. Quando l'utente richiederà uno di questi, il browser effettuerà comunque una richiesta sicura. I browser potranno anche avere una lista predefinita di siti che saranno acceduti in HTTPS sempre e comunque (documentazione per Chromium).
Il supporto dei browser è già discreto: Firefox c'è , e anche Chrome. Opera ci sta lavorando.
Se volete saperne di più e magari provare ad abilitare il vostro sito vi consiglio questa lettura.