HSTS extra sicurezza su HTTPS

27

È HSTS buono da usare anche se i miei server sono configurati per utilizzare HTTPS (quando viene utilizzato HTTP, le regole di riscrittura in Apache lo trasforma in HTTPS?

Dovrebbe essere usato anche HSTS anche su risorse come CSS e immagini, o solo quando il tipo di contenuto è text / html?

    
posta Novice User 16.07.2012 - 17:51
fonte

2 risposte

16

Sì, se stai usando SSL in tutto il sito, ti consiglio vivamente di abilitare HSTS .

L'HSTS è un'importante misura di sicurezza per sconfiggere gli attacchi man-in-the-middle che spostano l'utente su http e quindi attaccano l'utente. Ad esempio, sslstrip è uno strumento ben noto per montare un attacco del genere. Per maggiori dettagli su questo tipo di attacco, vedere le seguenti domande: Come bloccare l'attacco sslstrip? , Opzioni per la difesa contro SSLstrip? , e questa risposta .

HSTS dice al browser: non usare mai HTTP con questo sito. Accedici solo tramite HTTPS. Quindi, per abilitare HSTS, devi assicurarti che il tuo sito funzioni con HTTPS e solo HTTPS. Questo include tutto: HTML, CSS, Javascript, tutto. Assicurati che tutti i CSS e Javascript sul tuo sito siano disponibili su HTTPS. Inoltre, ti suggerisco di convertire le tue pagine in riferimento a tutto su HTTPS (consiglio che le tue pagine evitino di caricare qualsiasi altra risorsa Javascript o CSS su HTTP, in quanto ciò potrebbe causare avvertimenti o problemi di sicurezza per alcuni browser).

Ad esempio, supponiamo che il tuo sito sia www.example.com e che tu abbia una pagina https://www.example.com/buy.html che include alcuni Javascript dal tuo sito. Devi assicurarti che il tuo file Javascript sia disponibile su un URL HTTPS (ad esempio https://www.example.com/library.js ). Ti consiglio di caricarlo tramite un URL HTTPS (ad esempio <SCRIPT SRC="https://www.example.com/library.js"> ).

P.S. Ti consiglio anche di impostare il flag secure su tutti i cookie che utilizzi.

    
risposta data 16.07.2012 - 20:17
fonte
23

, la rigorosa sicurezza del trasporto offre un vantaggio reale.

HSTS dice al browser di comunicare solo con il server tramite HTTPS. La prima volta che il browser vede l'intestazione HSTS dal server, la ricorda. Quando l'utente visita nuovamente il sito, il browser impone che tutte le comunicazioni avvengano tramite HTTPS. Ciò funzionerà finché l'utente malintenzionato non spaccherà l'intestazione durante la prima visita al sito.

Questo impedisce attacchi di stripping SSL, una forma di attacco man-in-the-middle che presenta all'utente una risorsa di testo libero invece di quella SSL. Normalmente, l'utente non verrebbe avvisato e la maggior parte degli utenti "medi" non riconoscerebbe che il lucchetto SSL o l'evidenziazione verde / blu non sono visualizzati nella barra degli indirizzi. Nel caso di HSTS, il browser avvertirà immediatamente l'utente che il browser sta tentando di violare la propria politica di sicurezza.

  1. Il client crea una connessione in chiaro al server.
  2. Il server risponde con un reindirizzamento all'indirizzo HTTPS, con l'intestazione HSTS impostata.
  3. Client e server comunicano su SSL.
  4. La sessione termina.
  5. Il client ritorna più tardi, il browser ha memorizzato il flag HSTS per questo dominio.
  6. L'attaccante tenta di eseguire un attacco con strip SSL e fornisce testo in chiaro al client.
  7. Il client riconosce che la politica HSTS non consente questo e avvisa l'utente.

Per maggiore sicurezza, alcuni propongono che HSTS sia implementata come opzione in DNSSEC, in modo che l'intestazione HSTS sia impostata come parte della ricerca DNS. Dal momento che DNSSEC offre una strong sicurezza tramite i certificati di autorità pre-distribuiti, ciò renderebbe estremamente difficile per un utente malintenzionato sconfiggere il meccanismo HSTS, anche se sta tentando attivamente di eseguire lo strip SSL alla prima visita al sito.

    
risposta data 16.07.2012 - 17:59
fonte

Leggi altre domande sui tag