it-swarm.it

L'invio della password all'utente e-mail è sicuro?

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 proteggerlo? Dovrei usare la crittografia?

102
user310291

Non dovresti mai inviare password in chiaro, né archiviarle in chiaro. Dovresti hash loro usando un hash crittografico unidirezionale lento come bcrypt o PBKDF2. Se un utente dimentica la password, offri loro una funzione di "reimpostazione della password", che invia un link di reimpostazione una tantum al proprio account.

Uno schema come il seguente è ragionevole:

  • Hash tutte le password utilizzando un sale più bcrypt/PBKDF2. Vedi il mio ragionamento qui . (EDIT, marzo 2019: sa Argon2 )
  • Convalida gli hash al momento dell'accesso.
  • Se un utente dimentica la password, inviagli un collegamento di ripristino una tantum sicuro, utilizzando un token di ripristino generato casualmente e memorizzato nel database. Il token deve essere univoco e segreto, quindi esegui l'hash nel database e confrontalo quando viene utilizzato il collegamento.
  • Imporre 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 consentito di riutilizzarlo.
  • Tutti i token equivalenti a password, inclusi i token di reimpostazione, scadono dopo poco tempo, ad es. 48 ore. Ciò impedisce a un utente malintenzionato di sfruttare token non utilizzati in un secondo momento.
  • Visualizza immediatamente un modulo per consentire all'utente di impostare una nuova password. Non utilizzare password generate casuali temporanee!
  • Fai tutto questo su SSL.

Consiglio vivamente di leggere La guida definitiva all'autenticazione di siti Web basata su moduli per una serie completa di linee guida su come costruire sistemi di accesso sicuri.

156
Polynomial

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

Questo è ciò che fanno bene i sistemi I-forgot-my-password-for-this-site: l'utente fa clic sul pulsante "dammit, ho dimenticato la mia password" e viene inviata un'e-mail 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 unica". Con questo schema, puoi almeno, dal lato server, sapere quando è stato utilizzato l'URL.

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

42
Thomas Pornin

È buona norma 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 ottenere 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 riservate tramite e-mail, utilizza uno schema come PGP o altre tecniche di crittografia per proteggere i dati.

22
user10211

Se hai la 'password chiara' da inviare in primo luogo (a parte il processo di registrazione), stai sbagliando. Mai e poi mai archiviare la password in chiaro! Molte aziende come Sony Music e simili sono state bruciate di recente da questo ... e lascia che ti dica che i consumatori non sono felici.

4
Vaughan Hilts

Facendo eco ai post precedenti, l'e-mail non è certamente sicura e non dovresti mai non inviare e-mail a dati sensibili , in particolare le password. Soprattutto perché non sono crittografati e sono stati trovati in chiaro, è estremamente facile per chiunque hackerare la tua e-mail e accedervi attraverso la rete pubblica.

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

Se sei una società che sta tentando di inviare nuovamente la password ai clienti, dovresti impostare le domande di sicurezza a cui i clienti rispondono quando creano inizialmente il loro account. In questo modo, se lo dimenticano, possono fare clic su un collegamento che li invia per rispondere correttamente a queste domande e reimpostare la password.

Per tua conoscenza, questo è un blog informativo, che sostiene la crittografia e mette in guardia dall'uso di determinate password http://www.ziptr.com/blog-last-4-digits-ssn-password = da Ziptr.

3
Katie Campbell