Prevenire perdite di informazioni durante la restituzione di un messaggio di errore

0

Il mio sito web contiene 2 funzioni:

  1. Permetti a un utente di cambiare la propria password
  2. Permetti a un amministratore di cambiare la password di un utente (l'utente deve cambiare nuovamente prima di accedere)

Ora diciamo che esiste un requisito aziendale che stabilisce che a un utente non è consentito riutilizzare una password precedente.

In 1, è corretto restituire un messaggio "Non è possibile riutilizzare una password precedente", a condizione che l'utente si sia autenticato correttamente con la sua password corrente.

In 2, ho bisogno di prevenire la fuga di informazioni. L'amministratore non deve ricevere informazioni sulla password precedente di un utente. L'ho implementato restituendo un messaggio generico "Invalid password". Tuttavia penso che un utente intelligente possa ancora capire che se viene restituito un messaggio "Password non valida" per una stringa perfettamente valida, allora sta succedendo qualcos'altro.

C'è un modo per aggirare questo o sono semplicemente troppo meticoloso? Il mio primo pensiero è che la soluzione è rimuovere 2 e aggiungere una funzione di reimpostazione della password.

EDIT - Penso che ci sia un po 'di fraintendimento del problema. Il problema è che l'utente potrebbe aver usato una delle password precedenti su un altro sito (es .: Bank). Pensando un po 'di più a questo, non sono sicuro di quanto sia più problematica la fonte di fuga di "modifica di un'altra password utente" rispetto a qualcuno che sta semplicemente cercando di forzare il modulo di accesso principale ...

    
posta Kev 20.05.2016 - 14:01
fonte

3 risposte

4

Perché l'amministratore deve conoscere la nuova password?

2) è in realtà solo un problema se l'amministratore fornisce una nuova password, ma non se la password temporanea viene assegnata in modo casuale e comunicata all'utente da un mezzo che l'amministratore non può origliare.

Non lasciare che l'amministratore selezioni la password e non può più ottenere alcuna informazione sulla nuova o su qualsiasi password precedente.

    
risposta data 20.05.2016 - 18:53
fonte
2

Perché non fai un'eccezione per 2? Voglio dire, se l'amministratore imposta una nuova password, non esegue il processo di verifica delle vecchie password. Basta impostare la nuova password e contrassegnarla in modo che sia necessario cambiarla al prossimo accesso.

In questo modo puoi essere sicuro che l'amministratore non ha accesso al file storico della password.

C'è un piccolo rischio per la password ripetuta dal momento che verrà modificata al prossimo accesso dell'utente; ma qualsiasi amministratore capirà cosa sta succedendo se tenta di usare "password temporanea" due volte come password per un utente che dimentica la sua password di frequente.

    
risposta data 20.05.2016 - 15:34
fonte
1

a business requirement [...] stipulates that a user is not allowed to reuse a previous password.

L'utente non può riutilizzare la sua password precedente, ma non impedisce a un utente di riutilizzare una password di qualcun altro, non è vero? Voglio dire, se Jack e Mary stanno cambiando le loro password e Jack digita la password precedente di Mary, non dovrebbe restituire un errore, dovrebbe?

Questo significa anche che un amministratore che dirotta un account di un utente può riutilizzare anche la password dell'utente. Perchè no? Non è lo stesso utente (a meno che un amministratore non possa dirottare il proprio account), quindi la stessa regola si applica anche qui.

Se si avvisa l'amministratore che la password di dirottamento è effettivamente la vera password dell'account, allora si stanno effettivamente perdendo le informazioni personali di un utente a un altro. La parte peggiore è che l'amministratore senza scrupoli che riceve l'errore ha un suggerimento che potrebbe semplicemente accedere come a un utente, senza continuare la procedura di dirottamento.

    
risposta data 20.05.2016 - 14:44
fonte

Leggi altre domande sui tag