0Pricing
Cryptology Academy · Lezione

Downgrade HTTP e rischi dei contenuti misti

Comprenda come gli aggressori sfruttano il fallback a HTTP e perché i contenuti misti compromettono le garanzie di sicurezza.

Downgrade HTTP e rischi dei contenuti misti è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.

HTTP Strict Transport Security

L'intestazione HTTP Strict Transport Security (HSTS) indica ai browser di connettersi a un sito solo tramite HTTPS per un periodo specificato. Una volta ricevuta, il browser rifiuta le connessioni HTTP e converte automaticamente gli URL http:// in https://.

Un'intestazione HSTS tipica è: "Strict-Transport-Security: max-age=31536000; includeSubDomains; preload". max-age è espresso in secondi (31536000 = 1 anno). Una volta memorizzato nella cache, il browser impone l'uso di HTTPS per un anno senza alcun intervento del server.

HSTS max-age e includeSubDomains

Il parametro max-age stabilisce per quanto tempo il browser deve imporre connessioni esclusivamente HTTPS, in secondi. Per i siti di produzione si consigliano valori di almeno un anno (31536000).

La direttiva includeSubDomains estende l'applicazione di HSTS a tutti i sottodomini. In questo modo si impediscono gli attacchi in cui un attaccante declassa a HTTP la connessione a un sottodominio e la usa per sottrarre cookie impostati senza il flag Secure sul dominio principale.

L'elenco di precaricamento HSTS

I browser includono un elenco incorporato di domini che richiedono sempre HTTPS, anche alla prima visita. Questo elenco, gestito all'indirizzo hstspreload.org, comprende migliaia di siti web importanti.

Il precaricamento elimina la vulnerabilità della prima visita: senza precaricamento, un visitatore alla prima visita potrebbe essere intercettato prima di ricevere l'intestazione HSTS. I siti precaricati accettano solo HTTPS fin dalla prima richiesta, indipendentemente dallo stato della cache HSTS.

Attacco di SSL stripping

Lo SSL stripping, presentato da Moxie Marlinspike al Black Hat 2009, è un attacco MITM che declassa le connessioni HTTPS a HTTP. L'attaccante intercetta la richiesta HTTP iniziale dell'utente, esegue richieste HTTPS al server reale per conto dell'utente e inoltra il contenuto all'utente tramite HTTP.

La vittima visualizza normalmente il contenuto, ma tramite HTTP. Le credenziali inserite vengono inviate all'attaccante. Prima di HSTS, questo attacco era molto efficace perché gli utenti non notavano l'assenza del lucchetto.

HSTS contrasta lo SSL stripping

HSTS contrasta lo SSL stripping perché il browser rifiuta di procedere con connessioni HTTP verso i domini che lo adottano. Anche se un attaccante tenta di fornire una pagina tramite HTTP, il browser si rifiuta semplicemente di connettersi e mostra un errore.

L'applicazione di HSTS da parte del browser avviene prima di qualsiasi richiesta di rete, quindi l'attaccante non può interferire. L'unica vulnerabilità residua è la prima visita, prima che HSTS venga ricevuto; il precaricamento la elimina.

Contenuti misti attivi e passivi

Si parla di contenuto misto quando una pagina HTTPS carica risorse tramite HTTP. I contenuti misti passivi includono immagini, audio e video caricati tramite HTTP. Non possono modificare direttamente la pagina, ma possono rivelare informazioni sull'utente tramite le intestazioni HTTP e consentire il tracciamento.

I contenuti misti attivi includono script, fogli di stile, iframe e XMLHttpRequests caricati tramite HTTP. Uno script HTTP può compromettere completamente la sicurezza della pagina HTTPS perché dispone dell'accesso completo al DOM e può leggere cookie e dati dei moduli.

Blocco degli script di contenuto misto da parte del browser

I browser moderni bloccano per impostazione predefinita i contenuti misti attivi (script, fogli di stile e iframe tramite HTTP) quando la pagina che li contiene è HTTPS. Viene mostrato un errore nella console e la risorsa non viene caricata.

A partire da Chrome 81 (2020), i browser hanno iniziato a convertire automaticamente in HTTPS i contenuti misti passivi. Se esiste la versione HTTPS, questa viene caricata. In caso contrario, la risorsa viene bloccata.

Contenuti misti negli strumenti per sviluppatori del browser

La console per sviluppatori del browser mostra avvisi ed errori relativi ai contenuti misti. In Chrome, apra DevTools, vada alla scheda Console e filtri per "Mixed Content". Per ogni risorsa bloccata viene mostrato l'URL non sicuro da aggiornare.

Il pannello Security di DevTools mostra una panoramica completa della sicurezza: dettagli del certificato, informazioni sulla connessione ed elenco di tutte le risorse non sicure presenti nella pagina.

Direttiva CSP upgrade-insecure-requests

La direttiva "upgrade-insecure-requests" della Content Security Policy (CSP) indica ai browser di convertire automaticamente in HTTPS tutte le richieste HTTP della pagina. In questo modo è possibile gestire contenuti legacy con URL HTTP codificati direttamente.

A differenza del blocco dei contenuti misti, upgrade-insecure-requests tenta prima di recuperare la versione HTTPS. È utile durante la migrazione da HTTP a HTTPS, quando aggiornare tutti gli URL incorporati nei contenuti legacy sarebbe poco pratico.

Iniezione di annunci da parte degli ISP su HTTP

Senza HTTPS, gli ISP possono iniettare contenuti nelle risposte HTTP. È stato scoperto che diversi ISP iniettavano annunci pubblicitari in pagine web che ne erano prive, aggiungevano pixel di tracciamento o inserivano pagine di avviso quando gli utenti si avvicinavano al limite del proprio piano dati.

Questa forma di iniezione dei contenuti è impossibile nelle pagine HTTPS perché la risposta è autenticata e cifrata. Qualsiasi modifica farebbe fallire la verifica del MAC TLS, producendo un errore di connessione invece di fornire contenuti modificati.

Perché la prima visita via HTTP resta rischiosa

Prima che un browser abbia ricevuto un'intestazione HSTS per un dominio, la primissima visita tramite HTTP è vulnerabile. Un attaccante può intercettare questa richiesta iniziale ed eseguire SSL stripping senza attivare alcun avviso del browser.

Questa vulnerabilità del trust on first use è il motivo per cui esiste l'elenco di precaricamento HSTS. Inviare un sito all'elenco di precaricamento assicura che i browser impongano HTTPS per quel dominio fin dalla prima richiesta, chiudendo completamente la finestra della prima visita.

Quiz su HSTS

Verifichi la propria comprensione di HTTP Strict Transport Security.

Concetti chiave: HSTS e contenuti misti

HSTS indica ai browser di imporre connessioni esclusivamente HTTPS per un dominio e per una durata specificata. L'elenco di precaricamento estende la protezione alle prime visite, memorizzando le policy HSTS direttamente nei browser.

Lo SSL stripping (Moxie Marlinspike, 2009) declassa HTTPS a HTTP; HSTS lo contrasta. I contenuti misti attivi (script HTTP su pagine HTTPS) vengono bloccati dai browser. La direttiva CSP upgrade-insecure-requests automatizza la migrazione da HTTP a HTTPS per i contenuti legacy.

Domande Frequenti

La lezione «Downgrade HTTP e rischi dei contenuti misti» è gratuita?

Sì — il testo completo di «Downgrade HTTP e rischi dei contenuti misti» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.

Cosa imparerò in «Downgrade HTTP e rischi dei contenuti misti»?

Comprenda come gli aggressori sfruttano il fallback a HTTP e perché i contenuti misti compromettono le garanzie di sicurezza. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Cryptology Academy?

Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Downgrade HTTP e rischi dei contenuti misti»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?

Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. L’icona del lucchetto: che cosa significa davvero
  2. Come i siti web ottengono i certificati SSL
  3. Avvisi sui certificati TLS e come gestirli
  4. Downgrade HTTP e rischi dei contenuti misti
← Torna a Cryptology Academy