True or False: HSTS is absolutely useless against MITM attacks
False, HSTS protegge da certe categorie di attacchi MITM ma non contro altri.
HKP (so che non l'hai chiesto a riguardo, ma sento che non ha senso guardarne uno senza guardare l'altro) protegge anche da certe categorie di attacchi MITM ma non da altri.
La combinazione di HSTS e HKP protegge da uno scenario di attacco che nessuno dei due è in grado di proteggere.
Ci sono alcuni tipi di attacchi MITM che non possono essere protetti dalla combinazione di HSTS e HKP.
Vediamo alcuni scenari. In tutti gli scenari assumerò che example.com non sia in nessun elenco di prelod del browser. Supporrò anche che il collegamento reindirizzasse al link
Scenario 1:
Il cliente visita il link e non ha visitato example.com prima che il MITM si sia creato.
In questo scenario il MITM avrà successo. Può semplicemente intercettare la connessione iniziale e impedire il reindirizzamento a https.
Scenario 2:
Il cliente visita il link . L'utente malintenzionato non possiede un certificato che superi la normale convalida dei certificati del browser.
In questo scenario la connessione https fallirà la convalida del certificato e il MITM fallirà. HSTS e HKP non sono necessari.
Scenario 3:
Il cliente visita il link e ha visitato example.com prima che il MITM si sia creato. L'utente malintenzionato non possiede un certificato che superi la normale convalida dei certificati del browser.
In questo scenario senza HSTS il MITM avrà successo. Può semplicemente intercettare la connessione iniziale e impedire il reindirizzamento a https.
Con HSTS il browser non tenterà mai di creare una semplice connessione http, ma passerà direttamente a https. La connessione https fallirà la convalida del certificato e il MITM fallirà.
Scenario 4:
Il cliente visita il link e non ha visitato example.com prima che il MITM si sia creato. L'autore dell'attacco ha ottenuto un certificato coverting example.com da una CA nell'elenco delle directory attendibili di default dei browser (tramite l'inganno, la corruzione, il bullismo o qualsiasi altra cosa)
In questo scenario l'autore dell'attacco ha successo.
Scenario 5:
Il cliente visita il link e ha visitato example.com prima che il MITM si sia creato. L'autore dell'attacco ha ottenuto un certificato coverting example.com da una CA nell'elenco di credenziali attendibili predefinito dei browser.
In questo scenario senza HKP l'aggressore ha successo. Con HKP la convalida del certificato fallisce.
Scenario 6:
Il cliente visita il link e ha visitato example.com prima che il MITM si sia creato. L'autore dell'attacco ha ottenuto un certificato coverting example.com da una CA nell'elenco di credenziali attendibili predefinito dei browser.
In questo scenario senza HSTS il MITM avrà successo. Può semplicemente intercettare la connessione iniziale e impedire il reindirizzamento a https.
In questo scenario senza HKP il MITM avrà successo. Può MITM con successo la connessione https.
Sia con HSTS che con HKP il browser non tenterà mai di creare una semplice connessione http, ma passerà direttamente a https. La connessione https fallirà la convalida del certificato grazie a HKP e il MITM fallirà.
Scenario 7:
Il MITM ha ottenuto la chiave privata per (uno dei) certificati legittimi del sito
Il MITM avrà successo
Scenario 8:
Il MITM ha ottenuto un certificato per exampe.com da una CA che è stata aggiunta manualmente all'elenco delle credenziali attendibili.
HKP viene bypassato e il MITM avrà successo. (questo consente ai firewall aziendali che ispezionano https di continuare a lavorare, se questa è una cosa buona o meno è discutibile).