Reindirizza da HTTP a HTTPS; SSLStrip

1

La home page della nostra app Web reindirizza da HTTP a HTTPS. Il nostro consulente per la sicurezza ci ha detto che questo è un significativo punto debole della sicurezza, che il reindirizzamento potrebbe essere intercettato, ad es. da SSLStrip. Pertanto, dovremmo rimuovere il reindirizzamento e disabilitare completamente HTTP, richiedendo all'utente di digitare manualmente https: // ...

Dopo aver studiato personalmente il problema, mi sembra che la risposta http iniziale possa essere falsificata dal MITM direttamente da un aggressore: non è necessario un reindirizzamento. Quindi, rimuovere il reindirizzamento non ottiene nulla.

Tuttavia non sono sicuro, se lo stesso SSLStrip può farlo, forse prima dovrebbe vedere la risposta HTTP iniziale.

Capisco che l'HSTS possa prevenire questo problema, SE il dispositivo / browser in questione ha contattato la nostra app una volta prima. Ma per il contatto iniziale, la richiesta HTTP può essere dirottata, indipendentemente da ciò che fa l'app - non c'è protezione, a meno che la nostra web app non fosse abbastanza popolare da essere inclusa negli elenchi HSTS del browser.

Cosa mi sono perso? Il reindirizzamento da HTTP a HTTPS è significativo?

Ho il malumore di rimuoverlo poiché impedirebbe a molti utenti tipici di connettersi al nostro sito e non sembra ottenere alcun risultato.

    
posta O'Rooney 05.02.2016 - 07:15
fonte

1 risposta

4

Sì, in uno scenario MITM, è sufficiente una richiesta HTTP iniziale per attaccare con successo (se l'utente non nota l'HTTPS mancante). E l'unico modo per impedire questa richiesta HTTP iniziale è HTTP Strict Transport Security (HSTS) .

Come sai, HSTS significa che le risposte HTTPS del tuo server includono un'intestazione HSTS che dice al browser di usare solo HTTPS, ovvero che il client non sa che deve contattare il server solo tramite HTTPS prima di ottenere la prima risposta HTTPS.

Ma esiste una funzionalità di HSTS che risolve questo problema: preloading! Tutti i browser che supportano HSTS includono anche un elenco di domini hardcoded, che devono essere contattati solo tramite HTTPS. Tutti possono inviare il proprio dominio per essere inclusi nell'elenco HSTS preload se soddisfano i criteri:

  1. Have a valid certificate.
  2. Redirect all HTTP traffic to HTTPS—i.e. be HTTPS only.
  3. Serve all subdomains over HTTPS, specifically including the www subdomain if a DNS record for that subdomain exists.
  4. Serve an HSTS header on the base domain for HTTPS requests:
    • Expiry must be at least eighteen weeks (10886400 seconds).
    • The includeSubdomains token must be specified.
    • The preload token must be specified.
    • If you are serving an additional redirect from your HTTPS site, that redirect must still have the HSTS header (not the page it redirects to).

Disabilitare HTTP sul tuo server non migliora la tua sicurezza: l'utente non saprà che è disabilitato prima della sua prima richiesta e quindi farà comunque la sua richiesta via HTTP e permetterà al MITM di rispondere alla richiesta - anche se il tuo il server non avrebbe risposto.

    
risposta data 05.02.2016 - 07:52
fonte

Leggi altre domande sui tag