Non è sicuro rivelare se una password viene utilizzata per un altro account dopo un determinato periodo di tempo?

3

Il riutilizzo della password può essere considerato una pandemia di sicurezza. Il modo ovvio per risolvere questo problema è incoraggiare le persone a utilizzare i gestori di password, ma (relativamente) poche persone lo fanno effettivamente.

La mia idea è di avere siti Web, una volta che un utente si registra o cambia la propria password, per verificare tutti gli altri account con la stessa password. Se ne viene trovato uno, dopo un ritardo impostato di circa un giorno, verrà inviata una email all'utente che si è iscritto o modificato la sua password avvisandoli di questo fatto e raccomandando di cambiarne la password.

Posso immaginare un problema immediato con questo, che è risorse di sistema. È costoso disporre di password hash sicure e hashing di una singola password per il confronto con migliaia, probabilmente milioni di account sarebbero tassati. Un altro possibile problema è lo spam, ma credo che questo possa essere risolto facilmente con la verifica dell'e-mail.

Supponendo che le pratiche di archiviazione delle password siano corrette e presumendo che le risorse di sistema non siano un problema, ci sono dei problemi di sicurezza riguardo a ciò?

Per ripetere:

  1. Un utente si registra o modifica la password.
  2. Il sistema controlla se quella password è utilizzata in qualsiasi altro account. Durante questo periodo, la password viene memorizzata. Se il sistema subisce un errore durante questo periodo, il controllo viene annullato e si presume che la password sia univoca.
  3. Se viene riutilizzato, l'utente riceve un'e-mail il giorno successivo semplicemente dicendo che la sua password è utilizzata altrove e raccomanda all'utente di cambiarla.
posta Daffy 17.03.2016 - 03:49
fonte

3 risposte

2

Sì. Dovrebbe essere considerata una violazione della sicurezza per rivelare queste informazioni. Volutamente indebolisce la sicurezza del servizio. E il tempismo non è un problema qui.

È una falsa premessa che due utenti con la stessa password pongono un problema di sicurezza che dovrebbe essere evitato. Non è così.

Tuttavia, rivelare questo fatto è un problema di sicurezza che deve essere mitigato applicando salting e password di hashing. Queste precauzioni hanno lo scopo di nascondere il fatto che due utenti utilizzano la stessa password.

Per illustrare il rischio: pensa a cosa potresti scrivere in una e-mail di questo tipo:

Hey, we have just found that the password you registered yesterday is actually used by one of our users.

Please update your dictionaries for password crackers. And don't forget to immediately check it against our and other companies' leaked account databases.

    
risposta data 17.03.2016 - 04:07
fonte
2

Stai fraintendendo il problema, è quando le persone usano la stessa password su più servizi con lo stesso nome utente, indirizzo email o vero nome. Ciò accade perché una volta che un utente malintenzionato riceve un indirizzo email e una combinazione di password per un sito, può provare la stessa combinazione su altri siti.

Non c'è alcun problema se due utenti sullo stesso servizio hanno la stessa password, in quanto non è possibile per un utente malintenzionato associare i due account. Anche se il database è trapelato, le password, se memorizzate correttamente, avranno diversi sali e saranno irriconoscibili.

La tua proposta fornisce molte informazioni. Ad esempio, consentirebbe a un utente malintenzionato di identificare quali password sono in uso nel sistema creando nuovi account con password comuni. Una volta trovata una password, un utente malintenzionato può quindi utilizzarlo per provare ad accedere agli account esistenti sul proprio sistema. Se l'utente malintenzionato è in grado di ottenere un elenco completo di nomi utente, ciò garantisce che sarà in grado di accedere ad almeno uno di essi. Questo tipo di attacco sarà difficile da attaccare perché i tentativi di accesso avverranno attraverso account di diversi utenti.

Come @kasperd ha menzionato, la cosa principale che il controllo di password duplicate tra diversi utenti identificherà è l'uso di password deboli poiché la probabilità che due password forti siano le stesse è effettivamente nulla. Se il tuo obiettivo è verificare la presenza di password deboli, esistono strategie migliori da utilizzare che non indeboliscono la sicurezza del sistema.

Quindi la tua proposta indebolisce la sicurezza nel tentativo di risolvere un problema. Di solito è meglio attenersi alle strategie password provate e vere.

[Grazie a @techraf per avermi stimolato per uno scenario di attacco migliore.]

    
risposta data 17.03.2016 - 06:14
fonte
0

È anche buona norma non sapere quali password usano gli utenti. Le password crittografate MD5, ad esempio, possono essere facilmente indovinate. Utilizza un metodo di encyrption migliore che assicuri che anche se tutti gli utenti hanno la stessa password non la vedrai nel tuo database.

    
risposta data 17.03.2016 - 08:53
fonte

Leggi altre domande sui tag