2009-09-20 35 views
11

È meglio quando un utente dimentica la propria password per fare in modo che reimposti la propria password o semplicemente rispedisca la password persa?È meglio reimpostare la password o inviare la password persa?

+0

dare un'occhiata a: http://stackoverflow.com/questions/647514/questo-è-il-best-way-to-implement-2-way-encryption-with-php – Jacco

+8

non si dovrebbe avere password originale in primo luogo, deve essere irrecuperabilmente cancellata. – Stann

risposta

1

È più sicuro reimpostare la password, poiché una terza parte potrebbe intercettare la password inviata.

Modifica: per reset, presumo intendete lo schema comune di invio all'utente di un token che consente all'utente di definire una nuova password. Ovviamente se si genera una nuova password e la si invia per posta, è altrettanto insicuro quanto semplicemente inviare la password originale. Il token dovrebbe ovviamente essere utilizzabile solo una volta, altrimenti sarà altrettanto buono quanto una password.

unico rischio è che una terza parte intercetta il token e cambiamento della password prima l'utente fa. Questo è un rischio inferiore rispetto all'invio della password, dal momento che una password intercettata sarà utile fino a quando la password è in uso, mentre il token sarà utile solo una volta, e scoprirete se qualcuno ha usato il token.

Si noti che il rischio più elevato probabilmente non sono le persone che intercettano il traffico di posta elettronica, ma piuttosto qualcuno che guarda attraverso la posta in seguito o violi il proprio account webmail, quindi è davvero pessimo avere password ancora valide nella propria casella di posta.

+2

Quindi, in che modo l'utente riceverà una password di ripristino, dato che l'invio non è sicuro? :) – Zed

+0

@Zed: invia un collegamento all'utente che contiene un valore monouso casuale (che ricordi) in modo tale che quando cliccano su di esso puoi reimpostare la password e inviarne una nuova (oltre https). –

+1

@Greg: questo è il punto. Non vi è alcuna differenza tra l'invio di una "password casuale" o un "valore casuale che l'utente può utilizzare per ...". Li usi entrambi per _temporaneamente_ identificare l'utente. La terza parte può manomettere qualcuno di loro. – Zed

40

L'invio della password persa implica che vengono mantenuti in testo normale o crittografati in crittografia bidirezionale che non è sicura.

Io suggerirei seguente meccanismo Wordpress per resettare la password:

  1. inviare un collegamento con la conferma di reimpostazione della password
  2. Segui link di conferma alla pagina che genererebbe password casuale e inviarlo all'utente
  3. Consentire l'accesso utente con nuova password e cambiarlo in qualcosa di meglio ricordando.
+0

Stavo pensando di inviare una password di reimpostazione anche se sembra più facile per l'utente mandare lì la vecchia password indietro. –

+2

Se non altro, è una questione di fiducia: vorresti davvero gli amministratori di ogni sito che utilizzi sapendo quali password scegli? Certo, idealmente le persone userebbero password diverse per ogni sito, ma pochi lo fanno davvero - è troppo di una seccatura. – Amber

+6

Basta aggiungere un po 'alla risposta di Eimantas. Per sicurezza, il server non dovrebbe mai salvare la password di un utente in testo normale. Dovrebbe salvare la password crittografata a una via. Quando un utente effettua l'accesso, il client deve crittografare la password con javescript e inviare la stringa crittografata al server. Questo è un po 'come funziona il login di Unix. Spesso un utente usa la stessa password per diversi siti web. Se lo tieni in chiaro, otterrai l'accesso a tutti loro. Come utente, mi preoccuperei profondamente di ciò. – user172818

17

In primo luogo, non si dovrebbe essere in grado di restituire la password. La migliore possibilità è di generare una password casuale monouso e inviarla all'indirizzo e-mail registrato dell'utente.

È possibile distribuire domande di sicurezza (come "il nome del tuo primo cane") e altro misticismo, ma credo che gli utenti tendono a dimenticare le risposte a questi ancora più delle loro password, riportandoti al punto di partenza.

+1

Se si utilizzano domande di sicurezza (in), tuttavia, NON DEVONO essere trattate come una password di backup, ma solo come gatekeeper di accesso a un meccanismo di reimpostazione della password.In caso contrario, il tuo account di posta elettronica viene violato quando qualcuno cerca la scuola superiore in cui sei andato e lo prova come una risposta per "Dove hai incontrato il tuo coniuge?" (come è successo a Sarah Palin l'anno scorso). –

+0

Ma è importante inviare una password casuale solo dopo un'e-mail di conferma iniziale. Se si dimentica di ciò, una persona malintenzionata può fare clic sul pulsante di richiesta password, inserire l'indirizzo e-mail lasciando il proprio account inaccessibile. Se si desidera accedere con la password originale senza prima controllare la posta elettronica, si verifica un errore di accesso. Questa è una brutta esperienza utente e fastidiosa. Questa tecnica utilizzata da uno script bot può eseguire un denial-of-service per ogni indirizzo e-mail conosciuto utilizzando il servizio. – DEAD10CC

7

Molti utenti utilizzano la stessa password su molti siti Web. Per rispettare la privacy delle persone si consiglia di memorizzare sempre le password crittografate a una via con funzioni hash come SHA-256 o MD5. Ma non dovresti usarli senza sale aggiuntive, dal momento che gli attacchi di dizionario possono essere semplicemente eseguiti su quelle password. Prendersi cura della privacy degli utenti costituisce la base di una relazione di fiducia tra voi e i vostri clienti.

Raccomando anche il meccanismo di ripristino password menzionato da Eimantes. Il messaggio e-mail di conferma è l'attività principale in questo processo. Lascia sempre che l'utente confermi la sua richiesta di reimpostazione della password per evitare che richieste false portino a un account inaccessibile.

Invece di calcolare una password casuale, è possibile inoltrare l'utente a una pagina in cui è possibile immettere una nuova password.

Inoltre, tenere a mente che l'invio di password su http senza ssl è molto insicuro, specialmente nelle reti pubbliche come gli hotspot wlan. Dai un'occhiata ai metodi di autenticazione dei messaggi come HMAC in combinazione con Diffie-Hellman-Key-Exchange. O almeno utilizzare una funzione hash + salt aggiuntiva durante il login.

+2

SHA-256 e MD5 sono troppo veloci per essere considerati sicuri. Scopri BCrypt o PBKDF2. –

Problemi correlati