Sistema di codice di sistema con reimpostazione della password e hash lungo

2

Al momento sto creando un sistema di reimpostazione della password e mi sono imbattuto in un dilemma.

Attualmente disponiamo di un sistema che crea un long md5 con (16 caratteri) e invia un link a un cliente che fa clic su di esso e può reimpostare la password.

Tuttavia ora vogliamo uscire dal mettere i link in e-mail e rendere i clienti consapevoli di questo per contrastare gli attacchi di phishing.

La mia soluzione è creare un numero di pin di 5-6 cifre e inviarlo via email a un cliente via email.

Tuttavia, sembra che stiamo aumentando la sicurezza spostandoci dai link nella posta elettronica ma riducendo la sicurezza rendendo più facile indovinare un token di sicurezza.

Qualcuno ha qualche raccomandazione o opinione su questo?

    
posta Callum 02.07.2014 - 17:25
fonte

2 risposte

2

Il token serve solo per verificare che tu abbia ricevuto l'e-mail di cui sei proprietario.

I link di reimpostazione della password nelle e-mail sono una comodità che fornisce la prova della proprietà dell'account e-mail e ti consentono di accedere facilmente al flusso di lavoro per la reimpostazione della password.

Questi token non devono vivere ovunque per lungo tempo e puoi invalidarli dopo alcuni tentativi persi se ne hai voglia. Quindi non hai bisogno di un'enorme entropia allo stesso modo dei token MFA.

    
risposta data 02.07.2014 - 17:37
fonte
2

Sono d'accordo con @schroeder che le e-mail di reimpostazione della password sono una delle aree in cui tende ad essere più accettabile per indicare agli utenti di fare clic sui collegamenti. Dopo tutto, l'utente è stato colui che ha attivato la reimpostazione della password e dovrebbe aspettarsi un messaggio di posta elettronica. Potresti aggiungere del testo nell'email che dice "Questa email è stata inviata a causa della tua richiesta." Se non hai richiesto la reimpostazione della password, non fare clic su questo link. Normalmente non devi fare clic su alcun link in un'email inaspettata, anche se appare essere legittimi. "

La ragione per cui ti incoraggio a riconsiderare questo è perché la tua alternativa (usando un PIN) sarà più complicata per gli utenti e probabilmente causerà più mal di testa per te. La complessità del PIN a parte per un momento, dovrai istruire gli utenti su cosa fare, e queste istruzioni ti richiederanno di dire loro dove sul tuo sito andare per inserire il codice. Mentre dici "Vai alla home page del nostro sito, fai clic su Password dimenticata, e fai clic su" Inserisci reimposta PIN ". Non è razziale che gli utenti continuino a lamentarsi del fatto che non riescono a trovare i pulsanti o altrimenti si confondono su cosa fare. Facendo semplicemente clic su un link si elimina un sacco di questa confusione.

Per quanto riguarda la complessità del PIN, dovresti essere in grado di fare alcune cose per neutralizzare lo "spazio delle chiavi" ridotto di un PIN casuale a 6 cifre rispetto al tuo hash. È possibile aggiungere lettere e alcuni simboli per aumentare il numero di combinazioni possibili. È possibile richiedere all'utente non solo il PIN di reimpostazione ma anche l'indirizzo e-mail (che richiede a un utente malintenzionato di indovinare più di un semplice PIN). Puoi anche aggiungere un CAPTCHA o un altro controllo "liveness" per ostacolare l'indovinello automatico all'input del PIN. Infine, puoi monitorare i tentativi di reimpostazione del PIN e bloccare gli IP (o in caso contrario ritardarli) che presentano un numero elevato di tentativi.

Proprio come con una funzione di reimpostazione della password basata su link, questi PIN dovrebbero essere validi per un singolo uso e dovrebbero scadere entro 30-60 minuti, indipendentemente dal fatto che siano usati o meno.

Adottando misure come queste è possibile eliminare le minacce più probabili contro un sistema di reimpostazione della password basato su PIN.

    
risposta data 02.07.2014 - 17:57
fonte

Leggi altre domande sui tag