Quanto tempo dovrebbe rimanere valido un token di reimpostazione della password?

2

Qual è la durata di vita raccomandata di un token di reimpostazione della password?

Troppo breve degraderà l'esperienza utente e troppo a lungo comprometterebbe la sicurezza.

Microsoft identity predefinito per un giorno, ma molto lungo.

    
posta mantale 23.11.2018 - 11:47
fonte

2 risposte

4

La risposta dipende in realtà dalla complessità del token di reset. Lo scopo dovrebbe essere che un token di reset non sia ipotizzabile nel tempo valido indicato.

Quindi, ad esempio, se il token di reimpostazione è lungo 5 caratteri, solo le cifre e il server è in grado di rispondere a 100 richieste al secondo senza limitazione della velocità, 15 minuti sono probabilmente troppo lunghi. Pensa al possibile attacco:

  1. Un utente malintenzionato reimposta la propria password per vedere come funzionano i collegamenti
  2. L'utente malintenzionato reimposta l'account della vittima, sapendo che ha un minuto di tempo
  3. L'utente malintenzionato chiama la pagina di reimpostazione della password con più o meno chiavi casuali finché non trova quella corretta.

Questo - specialmente il passaggio 3 - non dovrebbe essere possibile nel tempo richiesto. Ciò significa che se disponi di un universo abbastanza grande da poter estrarre i tasti di ripristino (come 32 caratteri alfanumerici) e la funzione di limitazione della velocità nell'applicazione, anche un giorno non influirà molto sulla tua sicurezza. Inoltre puoi (e dovresti) scegliere di informare il tuo utente con una seconda email / messaggio sulla modifica della password eseguita. Tieni inoltre presente che l'applicazione potrebbe supportare token di reset molto lunghi senza compromettere l'esperienza utente poiché non devono mai digitarli.

Modifica: Ovviamente dovresti calcolare in modo che solo una piccolissima percentuale di chiavi possa essere testata nel tempo richiesto. Ad esempio, una probabilità dello 0,000001% di indovinare la chiave giusta nel periodo temporale specificato potrebbe essere un rischio accettabile. Una piccola quantità di rischio è qualcosa che dovrai accettare in qualsiasi modo.

    
risposta data 23.11.2018 - 13:18
fonte
-1

It is also a good idea to have the random code which your system generates to only have a limited validity period, say no more than 20 minutes or so. That way if the user doesn't get around to checking their email and their email account is later compromised, the random token used to reset the password would no longer be valid if the user never reset their password and the "reset password" token was discovered by an attacker.

Vedi "codice della password dimenticata" sulla wiki di OWASP .

    
risposta data 23.11.2018 - 12:05
fonte

Leggi altre domande sui tag