Ho visto varie domande su questo problema, ma ci sono un paio di domande che non sono state poste. Se l'utente dimentica la propria password, vorrei che fosse in grado di ripristinarla con il proprio indirizzo e-mail (cioè non c'è alcuna domanda/risposta sulla sicurezza). La password è memorizzata come hash salato, quindi non è possibile il recupero. Invece, vorrei solo che l'utente inserisse una nuova password dopo aver confermato di aver richiesto un reset.Ripristinare la password ASP.NET - problemi di sicurezza?
Un metodo comune che è stato menzionato è semplicemente:
1) Creare un GUID casuale/crittografia forte di numeri casuali
2) Invia un URL univoco contenente il numero casuale per e-mail dell'utente affrontare
3) Quando confermata, l'utente è invitato a cambiare la password
Tuttavia, questo non è aperto a un attacco MITM
? Se l'invio di una password temporanea su Internet a un'e-mail non è sicuro, qual è la differenza tra l'operazione e l'invio di un URL univoco a cui l'utente malintenzionato può accedere? Ho perso un passaggio chiave da qualche parte che renderà questo sistema più sicuro (o c'è un modo migliore per reimpostare la password)?
Grazie
mi piace l'idea di tentare di garantire il link di conferma click proviene dallo stesso computer come l'iniziale resetta richiesta. –
Per quanto riguarda l'aspetto IP, sicuramente quella parte sarebbe irrilevante? Come utente malintenzionato, dichiarerei di dimenticarmi la password, quindi la richiesta di reimpostazione della password proviene dal mio PC (l'autore dell'attacco). Eseguendo un attacco MITM, vorrei intercettare l'e-mail, fare clic sul link e cambiare la password poiché continua a vedere il mio indirizzo IP. – keyboardP
Probabilmente, ma ciò presuppone che l'utente malintenzionato abbia già compromesso anche l'account di posta elettronica. L'IP sarebbe solo un piccolo sottoinsieme di informazioni identificative. Potrebbero esserci altre metriche applicate che aumenterebbero la complessità dell'hash. La chiave non sarebbe quella di fare affidamento su una singola metrica, poiché ognuno deve essere compromesso. Più sono richiesti, più difficile è passare. A un certo punto diventa una questione di sforzo rispetto al risultato. –