E 'possibile rendere crasca una password inutile a un utente malintenzionato con accesso al database?

2

Ho letto informazioni su come rendere sicure le password, ma quali sono le ragioni per cui un utente malintenzionato dovrebbe impegnarsi per ottenere la password originale? Se un utente malintenzionato possiede effettivamente una copia del database, ha una copia del database e tutte le informazioni che otterrebbero effettuando l'accesso all'account.

Ecco alcuni dei motivi per cui posso pensare:

L'utente potrebbe utilizzare la password su un altro sito. Alcuni dati degli utenti potrebbero essere crittografati. L'utente malintenzionato potrebbe voler accedere all'account in un secondo momento. L'utente malintenzionato potrebbe voler modificare i dati degli utenti e avere solo accesso in lettura al database del server. L'autore dell'attacco non ha ottenuto tutte le informazioni dal database.

Politiche come l'autenticazione a due fattori e il prelievo di una password casuale per un utente rendono inutilizzabile una password per un utente malintenzionato che ha già avuto accesso al database?

    
posta DarkChowder 21.09.2015 - 22:23
fonte

3 risposte

5

TL; DR: la risposta è no. Non è possibile impedire a un utente di riutilizzare la password casuale assegnata su altri siti, quindi una password basata su testo avrà sempre valore per un utente malintenzionato. Questo è vero per tutti i siti con nomi utente e password.

Imporre le password casuali funziona raramente: fa sparire i tuoi utenti (clienti?). Suggerire password casuali e offrire uno strumento di generazione, sono buone idee, purché non siano rese obbligatorie. Tuttavia, anche se riesci ad attirare i tuoi utenti nell'uso di password generate a caso per il tuo sito, non puoi impedire che utilizzino le stesse password su un altro sito. Ci si può aspettare che, dopo aver fatto lo sforzo di ricordare una password casuale, una parte sostanziale degli utenti troverà intelligente riutilizzare tale sforzo, cioè riutilizzare la stessa password altrove.

Questa è una proprietà molto generale: finché un utente "conosce" la sua password (e deve certamente saperlo per scriverla), allora può riutilizzare quella password in altri sistemi che sono fuori dalla tua portata. Non puoi farci nulla, tranne cercare di spiegare agli utenti perché non è una buona idea.

Come per l'autenticazione a due fattori: quando è lì, è per una ragione, cioè perché un fattore non era sufficiente. Se un utente malintenzionato incrina una password utente, i due fattori dell'utente si riducono a un solo fattore. Se un fattore non è sufficiente, allora non è sufficiente . O, detto diversamente, se gli utenti si autenticano con una password e un telefono cellulare e il cracking della password non è un problema, allora perché preoccuparsi delle password? Basta usare il telefono.

    
risposta data 21.09.2015 - 23:07
fonte
4

Per almeno due importanti motivi che ti vengono in mente immediatamente (senza dubbio ce ne sono altri):

In primo luogo, la violazione di un database di informazioni di accesso per un servizio Web non è la stessa cosa che l'accesso a un account o account e l'utilizzo del servizio. Per esempio, se dovessi in qualche modo violare il database di autenticazione degli utenti di Amazon (che non proverei mai a fare, e che non avrei mai, mai eventualmente riuscito a fare anche se ci provassi.) Sarebbe una cosa molto diversa da entrare e ordinare le cose come qualcun altro a mio piacimento, o comprare & guardare film online, o qualsiasi altra cosa. Allo stesso modo, come qualcun altro ha detto che vorresti la password di un sito bancario di qualcuno in modo da poter effettuare il log-in ed eseguire alcune transazioni che ti hanno aiutato, o copiare alcune informazioni segrete di pagamento finanziario che potresti utilizzare per commettere una frode finanziaria in un altro modo o fare qualcosa del genere. Un hash della password, o persino una password, è solo una inutile stringa di bit se non ti aiuta ad accedere a qualcosa da qualche parte. E se si vuole abusare dell'account di qualcuno per accedere a un determinato servizio, è necessario rimuovere il proprio hash della password sull'originale per farlo. E fallo prima che il servizio realizzi che il loro database di autenticazione dell'utente è stato violato e reimposta tutte le password esposte.

In secondo luogo, gli esseri umani, nel complesso, sono piuttosto poveri nell'usare le password correttamente. Un sacco di gente - una piccola minoranza, relativamente parlando, ma ancora un sacco di persone in termini assoluti - sceglierà password incredibilmente deboli / indovinate, come sono sicuro che tu sappia. Ma una minoranza ancora più grande riutilizzerà le password tra diversi servizi e amp; siti. E persino riutilizzare le password tra servizi e siti importanti rispetto a servizi e siti molto meno importanti. Quindi, se un hacker viola il database di autenticazione dell'utente per megastupidsportsaroundearth.com e ottiene (all'estremo) indirizzi e-mail e password in chiaro per un milione di persone, è una buona scommessa che migliaia o anche decine di migliaia di tali accessi ti daranno anche nella porta di vari siti bancari, dei principali rivenditori online, servizi di posta elettronica, ecc. ecc. anche in giro per la rete. Pertanto, anche se megastupidsportsaroundearth.com invalida tutte le password che sono state acquisite immediatamente dopo la violazione, quelle di indirizzo e-mail e le combinazioni di password rimarranno attive in tutti gli altri siti in cui l'utente li stava utilizzando. (A meno che, forse , la tua banca abbia un'operazione di cibersicurezza che sta attivamente trascinando la darknet per raccolte di credenziali utente rubate per il suo sito e cancellandole prima che i cattivi possano usarle. Ma è improbabile che ti salvi se la tua banca sembra essere una delle minoranze che sta facendo tali cose finora.)

Riutilizzo della password con account importanti: basta dire di no. :)

    
risposta data 22.09.2015 - 04:43
fonte
2

Quindi un aspetto che non hai menzionato ma potrebbe essere utile. L'autore dell'attacco può avere solo una copia del DB e non il DB attivo. In questo caso lui / lei avrebbe avuto accesso a tutti i dati fino a quando non li ha rubati ma non in corso. Avere delle password gli permetterebbe di accedere legittimamente e accedere ai dati. Su questa stessa linea potrebbe essere usato per causare danni, come cancellare ordini, fare falsi ordini ecc ...

La maggior parte delle implementazioni di due fattori si basano su una password e OTP, l'OTP viene solitamente risolto tramite un server di terze parti, separato dal DB, quindi in questo caso la password potrebbe essere compromessa, se risiede sul DB, mentre l'OTP non lo farei. In effetti OTP può essere un buon modo per capire se il tuo DB è stato rubato, poiché inizierai a vedere molti accessi non riusciti con i codici password corretti e l'OTP errato.

Spero che questo aiuti.

    
risposta data 21.09.2015 - 22:50
fonte