So che l'HSTS reindirizza le richieste HTTP a HTTPS per il dominio di destinazione, o aiuta a limitare il downgrade di HTTPS a HTTP. Ma non ho l'idea di base dietro l'HSTS. Ho seguito vari tutorial, oltre a OWASP Cheat Sheet su HSTS.
Suppongo che tu comprenda i vantaggi di HTTPS su HTTP.
HSTS fornisce un mezzo per dire ai clienti di usare sempre HTTPS quando interagiscono con un sito.
Esistono due modi in cui un cliente può scoprire se utilizzare HTTPS solo per accedere a un sito Web. Può controllare un registro del sito ( precarico ) oppure può visitare il sito (tramite HTTP o HTTPS) e ricevere un header che annuncia che il sito utilizza HSTS. Una volta che il client ha visto il sito utilizza HSTS, dovrebbe ricordarlo per un certo periodo di tempo (l'intestazione specifica un TTL - ma il client può rilasciare le informazioni prima che questo TTL scada, come qualsiasi cache).
Una volta che un client a conoscenza di HSTS sa che un sito è soggetto a HSTS, cambierà automaticamente qualsiasi richiesta fatta a quel sito da HTTP a HTTPS. Nonostante quello che dice sul sito OWASP, questo non è un reindirizzamento: è qualcosa di molto diverso in HTTP, e non è un proxy; l'URL viene modificato nel client prima di essere consegnato al dispatcher della richiesta. A seconda dell'implementazione, questo può apparire come un reindirizzamento ai livelli logici superiori del client, ma nessuna richiesta è mai stata inviata in questa fase di elaborazione.
Se il tuo browser conosce il tuo negozio online preferito utilizza HSTS e un MITM è in grado di presentare un link HTTP a quel sito su cui fai clic, il tuo browser aggiorna automaticamente il protocollo, evitando la maggior parte delle cose brutte che potrebbero accadere in assenza di SSL - cioè il MITM leggendo la tua password, modificando il contenuto inviato dal server, o iniettando richieste false usando le tue credenziali.
L'utilizzo del pre-caricamento fornisce l'implementazione più sicura, ma anche nella risposta dell'intestazione, poiché il tuo cliente memorizza lo stato, l'HSTS è ancora efficace.
Senza HSTS i browser consentono agli utenti di ignorare l'errore del certificato e procedere ulteriormente se vogliono accedere al sito web.
Se HSTS è impostato, implica che i browser non dovrebbero nemmeno dare agli utenti l'opzione di ignorare l'errore e procedere ulteriormente.
HSTS In modo molto semplice.
Supponi di aver digitato link nella barra degli indirizzi, ma il server web sta utilizzando TLS e configurato per reindirizzare il client su link . Ora tutto questo avviene in modo non sicuro , il che significa che questo è vulnerabile agli attacchi del MITM (Man In The Middle).
Quindi l'HSTS viene in soccorso. Il client reindirizza sé stesso internamente a link . Ora, non devi prima andare sul server e poi reindirizzare, tutto avviene sul lato client internamente. Questo impedisce attacchi MITM.
Leggi altre domande sui tag hsts