Perché è necessario chiudere la finestra del browser dopo aver effettuato la disconnessione da un sito Web?

37

Potrei sbagliarmi, ma credo che la richiesta di chiudere la finestra del browser dopo la disconnessione sia comune, anche se non è completamente chiaro quali potrebbero essere i rischi di non riuscire a chiudere una finestra del browser (supponendo che il browser sia completamente up-to- data) e perché ancora più importante i browser non sono in grado di mitigare la minaccia senza chiudere la finestra del browser. Infine, sta chiudendo il browser meglio della chiusura di una finestra / scheda all'interno del browser?

    
posta blunders 20.05.2015 - 17:22
fonte

5 risposte

36

Dopo un po 'di ricerche, sembra che alcune banche stiano dando questo consiglio a seguito di un attacco a una banca che ha permesso a utenti o siti Web malevoli di riutilizzare i cookie persistenti dopo che un utente si era disconnesso, presumibilmente perché altre schede del browser erano lasciate aperte sul sito in questione e quindi il browser non ha ancora cancellato i cookie.

La ragione per cui una tale vulnerabilità sarebbe possibile indica che uno dei due seguenti meccanismi di sicurezza non ha funzionato:

  • Il browser non ha imposto una rigorosa politica della stessa origine tra siti, consentendo a un terzo -party sito per accedere ai cookie del sito della banca (O per i computer condivisi, hai lasciato una scheda aperta e quella scheda è stata utilizzata da un utente di terze parti non attendibile)
  • Il sito web della banca non ha, o erroneamente, invalidato i cookie in quanto ti ha disconnesso

Per quanto mi riguarda, posso già concludere che questo "consiglio" è il teatro di sicurezza usato da alcuni siti web per rifiutare le proprie responsabilità agli utenti. Che è, ovviamente, molto sbagliato come incentiva gli utenti a sprecare tempo e sforzi applicando misure sciocche invece di risolvere il problema dove si verifica.

I siti web hanno due funzioni quando si registra un utente, secondo OWASP :

  1. Invalida lo stato utente sul lato server, che impedirà la riproduzione o la creazione di query client
  2. Invalida il cookie di sessione (così come i cookie che contengono informazioni normalmente accessibili solo agli utenti autenticati sul sito web, per le app Web) sul browser, per garantire che nessuna informazione rimanga disponibile per il prossimo utente del browser client
  3. I siti web possono anche andare un po 'oltre e assicurati che tutte le schede aperte su un dispositivo siano aggiornate al logout utente . Questo può anche eliminare la necessità per gli utenti di assicurarsi di aver chiuso tutte le loro schede dietro di loro.

Quindi, in un mondo in cui gli sviluppatori di siti web rispettano i loro doveri, non dovrebbe esserci alcuna base per seguire un consiglio così sciocco. E se i siti web non lo fanno, sono suscettibili di essere ritenuti responsabili per non aver preso i mezzi necessari per proteggere i dati personali degli utenti .

    
risposta data 20.05.2015 - 17:40
fonte
8

Devi chiudere il browser web (per evitare la divulgazione di informazioni private) se ...

  1. Qualcuno potrebbe accedere al computer dopo aver fatto

  2. La risposta HTTP (delle informazioni sensibili) non imposta correttamente l'intestazione di Cache-Control

Ad esempio, vai su yourbank.com e guarda il tuo account. Fare clic su Esci. Fai clic sul pulsante Indietro. Vedi le informazioni del tuo account? In alcuni siti lo farai, in altri non lo farai, a seconda dell'intestazione della cache.

Vai su yourbank.com e guarda il tuo account. Nota l'URL. Fare clic su Esci. Chiudi il tuo browser (tutte le finestre / processi). Apri nuovamente il browser con l'URL indicato. Vedi le informazioni del tuo account? Non dovresti.

L'intestazione HTTP corretta è:

Cache-Control: no-store, must-revalidate

Nel caso in cui un utente possa avere lo stesso sito aperto su più schede (ma solo disconnetterne uno), è possibile fare in modo che il browser ricarichi la pagina (mostrando in tal modo la schermata di accesso) utilizzando la seguente intestazione

Refresh: N

Dove N è il numero di secondi fino alla scadenza della sessione dell'utente + un piccolo buffer. Sarebbe comunque vulnerabile per un periodo, ma non per sempre.

    
risposta data 20.05.2015 - 17:33
fonte
5

Questo consiglio viene spesso fornito per soluzioni Single Sign-On (SSO). Questo è per una raccolta di sistemi, in cui un utente effettua l'accesso solo una volta. L'autenticazione dell'utente viene gestita da un sistema centrale chiamato Identity Provider. Dopo l'accesso, vengono stabilite due sessioni con il sistema richiesto e con lo stesso provider di identità. Quando si visita un nuovo sistema, la sessione esistente con Identity Provider viene utilizzata per creare una sessione con questo nuovo sistema senza chiedere nuovamente le credenziali.

La realizzazione di una singola disconnessione (SLO) è un problema complesso in quanto è necessario invalidare le sessioni di ciascun sistema visitato. SLO viene spesso implementato semplicemente dando questo consiglio per chiudere il browser, invalidando quindi tutte le credenziali di sessione.

    
risposta data 20.05.2015 - 21:07
fonte
2

Questa tecnica viene spesso utilizzata quando un sito Web utilizza l'autenticazione di base o Windows poiché non esiste un modo per "disconnettersi". Invece di utilizzare i cookie, il meccanismo di autenticazione viene aggiunto come intestazione di autorizzazione a ogni richiesta inviata al sito Web. Per l'autenticazione di base sarebbe il nome utente / password in una stringa codificata in base 64 e per l'autenticazione di Windows contiene valori relativi all'autorizzazione NTLM o Kerberos. Quindi chiudere il browser è la soluzione più rapida e sicura.

Questo è in contrasto con l'utilizzo dell'autenticazione dei moduli in cui una sessione può essere chiusa semplicemente scadendo il cookie e rimuovendo la sessione dall'applicazione.

    
risposta data 26.05.2015 - 02:19
fonte
0

È difficile sapere cosa pensano le banche, ma c'è un vantaggio reale nel chiudere il browser dopo esserti disconnesso da una banca o da un altro sito sensibile.

I browser non sono perfetti e non saranno mai perfetti. Lo spazio di memoria del browser può contenere informazioni riservate come nomi utente, password, token, saldi contabili, ecc. DOVREBBE non essere disponibile per un utente malintenzionato, ma come tutti sappiamo, nessun programma è completamente sicuro. Come abbiamo visto in Heartbleed, un exploit ha il potenziale di divulgare tali informazioni sensibili a terze parti. La chiusura del browser e l'avvio di un processo completamente nuovo cancella la memoria e rimuove questa potenziale via per perdite.

    
risposta data 26.05.2015 - 01:04
fonte