L'invio tramite posta elettronica di un codice di recupero della password è negativo quanto l'invio di una password via e-mail in testo normale? [duplicare]

4

Sto creando un'app mobile in cui la funzione di recupero della password implica l'invio di un codice di recupero password (stringa generata casualmente) all'indirizzo email dell'utente. Ricevono il codice, quindi lo inseriscono nell'app. I servizi web controllano se il codice è valido (questo scade dopo 24 ore) e se lo è, l'app richiede all'utente di aggiornare la propria password.

Vorrei utilizzare un link per la reimpostazione della password, ma non sono bravo a programmare e sto cercando alternative per ora.

In termini di sicurezza, l'invio del codice randomizzato alla posta elettronica dell'utente è tanto grave quanto l'invio della password via e-mail in testo normale? Anche se userò il codice Blowfish per crittografare il codice quando viene memorizzato nel database?

Per chiarire questo si tratta di inviare via email codici / token di recupero password e non di password

    
posta Theman 17.03.2016 - 19:03
fonte

3 risposte

4

No, non è così male. Personalmente, non sono un grande fan dell'uso dell'email come meccanismo di recupero della password solo perché ci sono così tanti "what if" s, ma un sacco di siti rispettabili lo fanno, quindi scrollando le spalle .

Il motivo per cui non è così male è che se invii una password via e-mail, l'utente malintenzionato avrà un accesso silenzioso all'account e l'utente non sarà più saggio. E come sottolinea @drewbenn, compromette anche ogni altro sito per il quale l'utente usa la stessa password, aiuta gli aggressori a costruire dizionari attorno a modelli di password (se presenti), ecc. Con un codice di ripristino, il codice dovrebbe essere monouso, e l'utente saprà molto rapidamente se è già stato utilizzato.

    
risposta data 17.03.2016 - 19:11
fonte
1

Penso che tu stia facendo la domanda sbagliata. Questo è stato toccato nei commenti sulla tua domanda; hai confermato che stai chiedendo di inviare un codice di ripristino e di inviare la password originale in testo semplice.

Se sei grado capace di inviare all'utente la loro password, allora il tuo codice non è sicuro. Non si dovrebbe mai essere in grado di recuperare una password utente se si stanno facendo le cose correttamente. Dovresti avere un hash lento e unidirezionale della password memorizzata, insieme a un sale. Non è possibile recuperare una password in chiaro da un hash lento unidirezionale. Questo è l'intero scopo di usarli.

Quindi direi: è sicuramente più sicuro per inviare un codice di ripristino nella posta di una password in chiaro. Perché, se puoi inviare una password in chiaro, il tuo sistema è necessariamente insicuro proprio per questo fatto. Ma ci sono modi per inviare i codici di reset senza che l'intero sistema sia difettoso, quindi almeno se lo fai, c'è speranza di sicurezza.

    
risposta data 17.03.2016 - 19:56
fonte
0

Il modo in cui il codice è memorizzato nel database è (quasi) del tutto irrilevante data la natura transitoria di questi codici, soprattutto perché se qualcuno ha già accesso al tuo database per trovare questi valori, probabilmente potrebbero fare molto più danni che non reimpostare le password delle persone; sono solo leggermente più "pericolosi" di conoscere il nome di login di un utente. L'invio del valore in testo normale è perfettamente corretto, a condizione che scada una volta che la password è stata cambiata correttamente o il timer scade (24 ore, come hai notato). Da una prospettiva UX, suggerirei di non scadere del ticket fino a una modifica riuscita, poiché una connessione di rete scarsa potrebbe rendere il ticket non valido senza che l'utente sia in grado di reimpostare la propria password. Ovviamente, vorresti inviare un'email e preferibilmente una seconda comunicazione (ad esempio, SMS) una volta cambiata la password.

    
risposta data 17.03.2016 - 19:16
fonte

Leggi altre domande sui tag