Domanda

Ho ricevuto la sfortunata esigenza di costruire una pagina che visualizza una nuova password per l'utente autenticato. Ho protestato, senza successo, questo requisito come generalmente cattiva idea, ma penso che la giuria è ancora fuori quindi forse ci sono argomenti contro la visualizzazione di una nuova password che non ho ancora provato. Avete qualche suggerimento?

In secondo luogo, sarebbe meglio per visualizzare la password per l'utente come un'immagine, piuttosto che come testo. Sono preoccupato per il testo in fase di "raschiato", che sto assumendo sarebbe più difficile con un'immagine. Come faccio a fare in modo che l'immagine non verrà memorizzata nella cache dal browser degli utenti?

grazie in anticipo,

È stato utile?

Soluzione

Non sono sicuro di quello che stai costruire e quali sono i requisiti, ma come regola generale, non ritengo questo un titolo preoccupazione grave. Vediamo i vettori di attacco:

  1. L'uomo in mezzo l'attacco sul testo traffico HTTP -. Un'immagine, in particolare uno offuscato contro OCR (stile CAPTCHA) impedirà questo tipo di attacco, ma anche semplicemente utilizzando HTTPS come detto porneL
  2. screen scraping da un'applicazione desktop remoto - HTTPS protezione non aiuterà né un'immagine come il pasticcio su uno schermo deve essere letto da un essere umano in ogni caso (un attaccante umano può anche aggirare la protezione immagine offuscato contro "l'uomo nel mezzo" istruendo l'ascoltatore per archiviare l'immagine e poi andare su di loro manualmente). Se un essere umano è dietro lo schermo raschietto, allora si ha alcuna protezione.
  3. sopra la spalla intercettazioni - se l'attaccante è semplicemente in piedi dietro l'utente, poi di nuovo -. Si dispone di alcuna protezione

Da notare che se la password viene generata automaticamente, quindi è necessario mostrare all'utente, non v'è alcun modo per aggirare questo. One way siti cercano di mitigare la minaccia è di inviare la password via e-mail - sotto l'ipotesi che un utente può fare in modo che leggere l'e-mail quando nessuno sta guardando, al proprio tempo. Purtroppo email non sarà nemmeno ti permettono di avere il vantaggio di crittografia per proteggere il trasferimento.

A mio parere, il modo migliore è quello di lasciare l'input dell'utente la password (in un campo password offuscamento, come di solito è fatto) e quindi memorizzare solo l'hash della password in modo non è necessario memorizzare la password effettiva, impedendo si da mostrare all'utente. Se è necessario mostrare all'utente (forse perché si sta generando esso), quindi assicurarsi che si sono su HTTPS e basta vederlo -. Tutte le fanfare complica solo la realizzazione senza dare prestazioni di sicurezza

Altri suggerimenti

L'immagine non sarà sicuro molto.

Se si utilizza HTTPS, quindi la password sarà sicuro in entrambi i casi. Se si utilizza HTTP, quindi password verrà inviata in chiaro dalla forma (presumo si sta visualizzando per qualche tipo di conferma), e come è visualizzata secondi dopo, non importa.

La cosa importante è garantire che pagina che visualizza la password non è cache'able.

Cache-control: no-cache, no-store, must-revalidate

Hai provato la seguente?

  • non si può mostrare password perché non riporlo.

Non so se è davvero una cattiva idea. È necessario inviare la nuova password per l'utente in entrambi i casi. L'invio di email in chiaro ha gli stessi problemi -. Beeing catturati o vi trovate nella cache quando si utilizza la posta web

Vorrei suggerire di utilizzare un'immagine, può essere un po 'come uno captcha. Ma questo protegge solo un po 'di più contro gli attacchi automatizzati, non contro gli attacchi umani.

L'unico modo per ottenere la cosa sicura è quella di utilizzare enryption, suggerendo HTTPS. Quindi, utilizzando il vostro sito web per visualizzare può diventare ancora più sicuro che fare affidamento su e-mail o soluzioni del genere.

Leting l'utente immettere una nuova password ha lo stesso problema - ora devi inviarla al server

.

Ho semplicemente suggerisco di usare HTTPS per crittografare il traffico e memorizzare solo gli hash di password temporanee, in modo che la password attuale non viene memorizzata all'interno del database. Naturalmente, non è possibile impedire "hacker" fisiche (come ad esempio le persone in cerca dietro la spalla) di rubare una password temporanea, ma, se possibile, si può richiedere agli utenti di modificare la propria password nel momento in cui il log-in con una password temporanea, in modo che i rischi con una password temporanea sono attenuati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top