Reimposta password - dovrei impedire di abusarne?

9

La mia ipotesi è che reimpostare la password sia solo un problema di sicurezza se un utente malintenzionato ha ottenuto l'accesso alla posta elettronica dell'utente.

Ma mi stavo chiedendo, e se qualcuno lo violasse semplicemente (ad esempio, invia una richiesta di "reimpostazione della password" ogni 5 secondi a un'e-mail di ex fidanzata / fidanzato o a un capo odiato ecc.)

  • Esiste una pratica comune per avere una sorta di conteggio / limite di tempo per le richieste di reimpostazione della password? (ad esempio, l'utente non può chiedere di reimpostare la password più di x volte in un periodo y)

  • O è considerato un problema non come le persone non lo fanno spesso? (o almeno quante volte le persone ordinano la pizza all'indirizzo di qualcun altro presumo)

* Questa è la mia prima domanda qui, spero che segua le FAQ, per favore commenta se non è

    
posta Eran Medan 21.11.2012 - 01:44
fonte

3 risposte

7

Sì, è molto probabile che lo stesso rilevamento dei "tentativi eccessivi" applicato ai tentativi di accesso venga applicato anche a "richieste di reimpostazione della password".

Molti sistemi implicano anche un passo in captcha, che rende più difficile lo spamming. L'esempio seguente è la pagina di reimpostazione della password di outlook.com:

Penso che questo sia un attacco abbastanza inefficiente - grazie alla limitazione della velocità, non può indirizzare in modo affidabile un individuo, e anche se fosse possibile, le e-mail potrebbero essere banalmente bloccate con una regola client email.

    
risposta data 21.11.2012 - 02:20
fonte
4

Non dovresti rendere possibile il reset di una password senza alcun tipo di identificazione dell'utente (debole). Questo è importante non solo per proteggere qualcuno dal fastidio reimpostando ripetutamente la password, ma anche perché può essere usato come una forma di DOS a breve termine. Quanto segue è tratto da il grande blog di Troy Hunt sul ripristino della password sicuro :

One thing about each of the examples above is that the old password is only rendered useless after the account owner’s identity has been verified. This is very important as if the account could be reset before verifying identity and then the door is opened for all sorts of malicious activity.

Here’s an example: someone is bidding at an auction site and towards the end of the bidding process they lock out competing bidders by initiating the reset process thus removing their competition. Clearly there can be major adverse results if a poorly designed reset feature can be abused. Mind you, account lockouts by invalid login attempts is a similar story, but that’s one for another post.

As I mentioned earlier, allowing anonymous users the ability to reset anyone’s account simply by knowing their email address is a denial of service attack just waiting to happen. It may not be a DOS in the way we often think of it, but there’s no faster way to lock someone out of their account than though a poorly designed password reset feature.

Le domande di sicurezza sono il metodo di identificazione debole più comunemente usato. Per maggiori dettagli sulle domande di sicurezza, vedi l'articolo di Wikipedia .

    
risposta data 21.11.2012 - 08:42
fonte
4

Inizierò col dire che non ho idea se esista una buona pratica al riguardo, ma andrò avanti e risponderò con due punti di vista in mente; la vista di sicurezza e la vista utente ...

Prima di tutto, quando viene richiesta una password, la password non deve essere rimossa. Cosa succede se l'utente all'improvviso ricorda la propria password? Dovrebbero essere in grado di accedere senza la richiesta di ripristino che influisce sulla loro esperienza. Invece una stringa casuale generata in tempo (lotto di entropia) generata dovrebbe essere generata e memorizzata con l'utente come l'ultimo identificatore di richiesta di reset. Dovrebbe essere anche memorizzato un timestamp. Quindi il link che l'utente fa clic nella e-mail dovrebbe contenere quel codice ontime e il loro indirizzo e-mail per poter effettivamente resettare. Puoi anche controllare il timestamp impostato per vedere se la richiesta è stata fatta negli ultimi 15 minuti circa (solo un esempio). L'altro punto in questo è che se la persona in realtà non ha richiesto, dovrebbero comunque essere in grado di accedere.

In secondo luogo, il modo migliore per limitarlo è usare qualcosa come reCaptcha. Sarà fastidioso per l'utente costantemente spammare.

In terzo luogo, non penso che sia necessario inviare più di 2 email in una finestra temporale specifica.

Penso che il maggior rischio per la sicurezza qui sia qualcuno che impone la tua pagina di password dimenticata per scoprire le informazioni di accesso dell'account. Essere in grado di rilevare che qualcuno è bruce, forzare la tua pagina "Password dimenticata" sarebbe enorme. Forse registrando il numero di richieste di reset dell'account da un indirizzo IP specifico e osservando quando quel numero diventa troppo alto in un certo periodo di tempo e richiedendo alla persona di inviare una email a [email protected] per ottenere il reset dell'account. [Ti consigliamo di giocare con i numeri qui perché devi considerare le persone che stanno dietro NATs, in particolare i dipendenti delle grandi aziende ... non sai mai quando tutti dimenticheranno la password nello stesso giorno].

    
risposta data 21.11.2012 - 02:02
fonte

Leggi altre domande sui tag