Come posso progettare una funzione di reimpostazione della password, che non riduca la sicurezza per gli utenti che possono ricordare la propria password?

2

Abbiamo un'app Web per cui alcuni utenti desiderano avere una funzione di reimpostazione della password.

Non voglio imporre un particolare livello di sicurezza per gli utenti. Quindi, se un utente sceglie una password sicura che è in grado di ricordare e quindi continua a memorizzare i dati sensibili nel nostro sistema, allora vogliamo mantenere tali dati al sicuro.

Allo stesso tempo c'è un flusso costante di utenti che dimenticano la loro password e che non vogliono affatto preoccuparsi della sicurezza, anzi non vogliono nemmeno essere poste domande sulla sicurezza.

Come posso creare una funzione di reimpostazione della password per il secondo gruppo di utenti senza ridurre la sicurezza per il primo gruppo di utenti?

    
posta kasperd 10.08.2014 - 14:28
fonte

1 risposta

1

Avere un valore booleano configurabile dall'utente per "reset consentito".

Se hai i loro e-mail / alcuni mezzi fuori banda per comunicare con l'utente finale

Quando l'utente fa clic sul collegamento "Ho dimenticato la password", se "reset consentito" è true, invia un link per la reimpostazione della password all'account e-mail associato all'account utente. Assicurati di utilizzare un servizio di posta elettronica che esegua prima la crittografia end-to-end (in modo che, se il loro server di posta lo supporta, il link non venga mai inviato in chiaro e se il loro server non lo supporta, non lo sono t negato il link).

Limita il numero di volte in cui l'e-mail può essere inviata allo stesso account (ad esempio 2 ripristini al giorno), quindi qualcuno non può utilizzarlo per inviare spam all'account. Non far sapere all'utente se è stata inviata un'e-mail o se l'account da loro menzionato esiste addirittura.

Se non fanno clic sul link per la reimpostazione della password, non dovrebbe cambiare nulla. Se fanno clic su di esso dopo un determinato periodo di timeout o se tra l'invio dell'e-mail e il momento in cui viene fatto clic su "reset consentito" è stato impostato su falso, non dovrebbe accadere nulla.

Se non disponi di mezzi di comunicazione fuori banda

Se è impostato "reset consentito", utilizzare un meccanismo di risposta alle sfide, ad esempio domande di sicurezza configurabili dall'utente. Se rispondono correttamente alle domande, consenti loro di inserire una nuova password. Potresti anche prendere in considerazione l'hashing delle risposte.

Potresti, ovviamente, usare anche qualcosa come TOTP , ma è probabile che lo facciano se non lo fanno t avere la password, anche loro non avranno la chiave necessaria per questo.

In entrambi i casi

Conduci l'intero scambio su un canale crittografato. A meno che tu stia cercando di impedire alla NSA di rubare le credenziali, SSL dovrebbe essere sufficiente.

    
risposta data 10.08.2014 - 17:51
fonte

Leggi altre domande sui tag