L'invio della password all'email dell'utente è sicuro?

94

Quanto è sicuro l'invio di password tramite e-mail a un utente, poiché l'e-mail non è protetta da HTTPS.

Qual è il modo migliore per assicurarlo? Dovrei usare la crittografia?

    
posta user310291 01.08.2012 - 12:18
fonte

5 risposte

149

Dovresti mai inviare le password in chiaro, né memorizzarle in chiaro. Dovresti eseguirne l'hash usando un hash crittografico a una via lento come bcrypt o PBKDF2. Se un utente dimentica la propria password, offre loro una funzione di "reimpostazione della password", che invia un link di ripristino una tantum al proprio account.

Uno schema come il seguente è ragionevole:

  • Hash tutte le password utilizzando un sale plus bcrypt / PBKDF2. Vedi il mio ragionamento qui .
  • Convalida gli hash al login.
  • Se un utente dimentica la propria password, invia loro un link di ripristino una tantum sicuro, utilizzando un token di ripristino generato in modo casuale memorizzato nel database. Il token deve essere univoco e segreto, quindi eseguire l'hash del token nel database e confrontarlo quando viene utilizzato il collegamento.
  • Imponi che un token possa essere utilizzato solo per reimpostare la password dell'utente che lo ha richiesto.
  • Una volta utilizzato il token, deve essere eliminato dal database e non deve essere più permesso di essere utilizzato.
  • tutti i token che identificano la password, inclusi i token di ripristino, scadono dopo un breve periodo, ad es. 48 ore. Ciò impedisce a un utente malintenzionato di sfruttare i token inutilizzati in un secondo momento.
  • Visualizza immediatamente un modulo per consentire all'utente di impostare una nuova password. Non usare password temporanee generate casualmente!
  • Fai tutto questo su SSL.

Consiglio vivamente di leggere attraverso La guida definitiva al sito Web basato su moduli Autenticazione per un set completo di linee guida su come creare sistemi di accesso sicuri.

    
risposta data 01.08.2012 - 12:33
fonte
41

L'email non è sicura. L'invio di una password tramite e-mail è quindi un rischio per la sicurezza. Per mitigare il rischio, puoi (in alcune situazioni) fare in modo che la password inviata via email sia una password unica, che sblocca solo la possibilità per l'utente di selezionare una nuova password.

Questo è ciò che fanno i sistemi I-forgot-my-password-for-this-Web-site: l'utente fa clic sul pulsante "Dammit, ho dimenticato la mia password" e viene inviata un'email, che contiene un URL (con HTTPS) che incorpora un identificatore di sessione casuale e punta a una pagina che consente all'utente di scegliere una nuova password. L'URL è la "password monouso". Con questo schema, puoi almeno, dal lato server, sapere quando è stato utilizzato l'URL.

Se puoi eseguire la crittografia correttamente , ovvero se puoi inviare un messaggio OpenPGP o S / MIME crittografato con la chiave pubblica dell'utente, l'utente ha un privato / coppia di chiavi pubbliche: in tal caso, perché dovresti usare le password?

    
risposta data 01.08.2012 - 13:31
fonte
22

È una cattiva pratica inviare password all'utente, poiché ciò significherebbe che si dispone di una copia in chiaro della password dell'utente.

Non riesco a pensare a nessuna buona ragione per farlo. Esistono altri modi più sicuri per realizzare ciò che è necessario.

Per una risposta generale in merito alla sicurezza della posta elettronica, ti suggerisco di leggere questo link, che contiene alcune buone informazioni.

Se DEVI inviare informazioni sensibili via email, utilizza uno schema come PGP o altre tecniche di crittografia per proteggere i dati.

    
risposta data 01.08.2012 - 12:26
fonte
4

Se hai la "password chiara" da inviare in primo luogo (a parte il processo di registrazione), stai sbagliando. Mai e poi mai memorizzare la password in chiaro! Un sacco di aziende come Sony Music e simili sono state bruciate di recente da quel ... e lasciatemi dire che i consumatori non sono felici.

    
risposta data 01.08.2012 - 23:58
fonte
3

Facendo eco ai post precedenti, la posta elettronica non è sicuramente sicura e dovresti non inviare mai email di dati sensibili , in particolare password. Soprattutto perché non sono crittografati e il nostro trovato in chiaro, è estremamente facile per chiunque hackerare nella tua e-mail e ottenere l'accesso a questi attraverso la rete pubblica.

Se tu o il tuo cliente avete problemi a ricordare le vostre password, dovreste usare un gestore di password sicuro. Questo è un sito Web che contiene un elenco di password in un deposito completamente crittografato. I buoni sono KeePass o LastPass.

Se si è un'azienda che sta tentando di inviare nuovamente ai client la propria password, è necessario impostare domande di sicurezza che i clienti rispondano quando creano inizialmente il proprio account. In questo modo, se lo dimenticano, possono fare clic su un link che li invia per rispondere correttamente a queste domande e reimpostare la password.

Per tua conoscenza, questo è un blog informativo, che rende il caso per la crittografia e mette in guardia contro l'utilizzo di determinate password link di Ziptr.

    
risposta data 01.08.2012 - 15:13
fonte

Leggi altre domande sui tag