Quando digito example.com
senza alcuno schema nella barra del browser e preme Invio, viene interpretato come HTTP://example.com
, non HTTPS://example.com
. Perché? E dove sono i piani per risolvere questo problema?
(Per essere chiari, sto parlando di solo sugli indirizzi digitati / incollati provenienti da un utente "pigro", non su azioni definite dal software come i seguenti URL relativi allo schema, window.location = "url"
ecc. E ovviamente digitare / incollare HTTP://example.com
deve ancora funzionare.)
EDIT : poiché alcune risposte indicano che i siti principalmente possono raggiungere questo obiettivo con reindirizzamenti + HSTS. Il guadagno tecnico centrale restringerebbe il problema della prima connessione (anch'esso affrontato dal precarico dell'HSTS ma non può essere scalato su tutti i siti). Posso vedere come questa sia una debole giustificazione per rompere le cose ora ; quello a cui sono più interessato è se è un ovvio endgame tra 5 anni? 10? 20?
Riesco a vedere diversi problemi sulla modalità di default dell'interpretazione di https:
-
Esperienza utente con siti che funzionano solo su http. L'impostazione predefinita di https mostrerebbe un errore ma l'utente di solito non ha idea se dovrebbe funzionare, cioè se questo sito non ha mai funzionato su https o si tratta di un attacco di downgrade.
Se la pagina di errore per questa situazione conterrà un facile "intendevi http: ...?" link (*), gli utenti si abitueranno a fare clic su quel sito che non funziona e non abbiamo guadagnato molto (?). E se non è facile (ad esempio, l'utente deve modificare
https
- >http
, gli utenti non utilizzeranno tale browser.EDIT : avrei dovuto chiarire che l'indicazione di errore deve essere diversa dall'accesso esplicito a un indirizzo HTTPS che non è riuscito - questo scenario non è tanto "fallito" quanto "l'interpretazione sicura non ha lavoro". E per i principianti, anche il "soft failing" automaticamente su HTTP con una barra di avviso in cima sarebbe OK.
Ma penso che otteniamo ancora 3 cose: andare su un sito non sicuro è un'azione consapevole, informiamo gli utenti che HTTP non protetto è non normale , e facciamo pressione sui siti per implementare https.
-
Inconveniente di dover digitare
http://
in alcuni casi. IMO completamente superato dalla convenienza di non dover digitarehttps://
in più casi. -
"Compatibilità" con il valore storico predefinito. Non sono sicuro che sia incluso in alcuni standard, ma IMO è chiaro che dovremo cambiarlo un giorno , quindi non è un fermo apparente.
-
Politica / economia: il sistema CA ha i suoi problemi e i browser potrebbero essere riluttanti a fare pressioni sugli amministratori del sito perché li paghino (se non vedono altrimenti valore in questo). Ignoriamo i soldi per un momento e facciamo finta che Let's Encrypt CA gratuito sia arrivato.
Posso capire perché il cambiamento in questo momento può essere controverso; quello che mi sconcerta è il motivo per cui non è ampiamente discusso come l'ovvio obiettivo a lungo termine, con qualche piano messo in scena a causa della deprivazione dei cerattivi SHA-2 anche se forse più lento. Quello che vedo sembra presupporre che http rimarrà praticamente in pratica per sempre:
-
Lo spostamento di Chrome verso il nascondere
http://
nella barra degli URL è un passo indietro. Il primo passo verso l'impostazione predefinita di https avrebbe dovuto mostrare http in rosso; in un secondo momento, eventualmente, passerai a nasconderehttps://
(mostrando solo il lucchetto verde) ... -
L'HSTS si muove nella giusta direzione, ma con cautela nell'accesso per sito. È sia più debole che più strong - i siti optano per forzare l'https anche per URL http espliciti, senza ricorso da parte dell'utente per errori - ma RFC non menziona nemmeno l'idea che https potrebbe essere un default globale , o che lo schema predefinito del browser è la causa del bootsrap MITM problema.
-
Ho visto DNSSEC menzionato come vettore futuro per l'opt-in simile a HSTS, ma di nuovo non ho mai visto proposte di opt-out ...
Inoltre, ci sono dei browser (o estensioni) che offrono questa opzione?