Come utente, le password crittografate con MD5 sui siti Web sono una buona pratica? [duplicare]

0

Dichiarazione di non responsabilità: dal punto di vista dell'utente. Assumiamo quindi che il sito Web di destinazione (ad esempio Paypal o Netflix) utilizzi già un algoritmo di hash strong con sali (bcrypt di pbkdf2, ad esempio) e accetta password di 32 caratteri.

Contesto: supponiamo che Bob sia un utente che conosce alcune cose sui computer, ma non è un esperto. Ad esempio, capisce che l'utilizzo di password complesse è una buona cosa, ma non riesce a ricordare una lunga lista di password complicate. Utilizza quindi solo una password sicura su tutti i siti, una pratica che considera rischiosa.

Ma poi lo ha colpito: non deve ricordare password forti! Invece, ricorda semplicemente quelli facili e li ha cancellati con una semplice funzione per ottenere password sicure. In questo modo, non deve preoccuparsi troppo delle violazioni del database, in quanto la sua password memorizzata richiederebbe massicci cluster di GPU per crearsi in un ragionevole lasso di tempo.

Funzionerebbe in questo modo:

  1. Vai al sito web di destinazione.
  2. Inserisci il nome utente
  3. Hash la sua password facile da ricordare con un algoritmo veloce per generare una lunga password
  4. Inserisci la password con hash e ottieni l'autenticazione dal sito web.

Domanda : sarebbe una buona pratica, o anche accettabile? È qualcosa che potresti consigliare a qualcuno di fare? Perché / perché no?

Questo dipende un po 'da una variante di sicurezza attraverso l'oscurità forse: l'hacker deve solo sapere che una password semplice è stata crittografata con MD5 per renderla inefficace, o addirittura dannosa (perché l'utente tenderà utilizzare le password di pre-crittografia più deboli). In quanto tale, questo non funzionerebbe su larga scala, vale a dire. non potresti dire a milioni di persone di farlo.

Grazie in anticipo per il tuo contributo!

    
posta MadWard 22.07.2016 - 15:56
fonte

2 risposte

5

Non c'è dubbio che questo strato MD5 extra sia migliore della sola password originale.

La domanda è se starai meglio usando un gestore di password che genera semplicemente password casuali e le archivia in forma crittografata.

Vedo l'eleganza della soluzione su un gestore di password.

  • Poiché la password finale è derivata, non memorizzata, la soluzione è portatile. Non è necessario sincronizzare le password su Internet per più dispositivi.

  • La password "facile da ricordare" sblocca la password "effettiva" per un solo sito . Questo sembra meglio dell'utilizzo di una "Master" singola per sbloccare la password "effettiva" per qualsiasi sito come normalmente funzionerebbe un gestore di password.

Da una prospettiva di violazione sul lato server, questa è una pratica insolita (oscura) che gli aggressori andranno a bersagli più facili.

Tuttavia, è vero che una password veramente casuale (da un gestore di password) sarebbe più sicura di una da un semplice hash MD5.

Ti suggerisco di estendere la tua soluzione in qualche modo.

  1. Usa un hash più strong, non MD5. Probabilmente dovresti usare PBKDF2, ma potresti usare SHA-256 o SHA-1 se è più facile per te. Più strong significa anche più lento. Quindi se usi un hash veloce, dovresti aggiungere la ripetizione. (numero di Round )

  2. Aggiungi un po ' Pepper , che è memorizzato con il tuo programma di hashing, e ha circa 72 bit di entropia.

Inserisci questo stesso Pepper e il numero di Round per l'algoritmo hash su tutti i tuoi dispositivi, in modo che tutti possano generare le stesse password. Inoltre, conservalo in un file da qualche parte in modo da poter sempre riprodurre il tuo schema di hashing in caso di perdita della copia elettronica.

contro un gestore di password

  • Non hai una password principale, quindi non c'è perdita del 100% quando quella password viene rubata insieme ai dati del tuo dispositivo.

  • Se i dati del dispositivo vengono rubati, il Pepper viene immediatamente compromesso perché è archiviato in forma semplice. Tuttavia, devono ancora indovinare la tua password "facile da ricordare".

Ci saranno alcuni ostacoli relativi ai requisiti di sicurezza della password . Un gestore di password può memorizzare una password di stile diversa per soddisfare i requisiti specifici, ma il tuo programma di hash funzionerà allo stesso modo per tutti i siti.

  • Modifica il tuo programma di hashing per produrre una lettera maiuscola, una lettera minuscola, un numero e un carattere speciale. Questo si adatta alle esigenze della maggior parte dei requisiti di sicurezza delle password là fuori.
  • Potrebbe essere necessario troncare l'hash risultante poiché alcuni siti hanno una lunghezza massima. Questo non è un grosso problema. Se si prendono solo i primi 20 caratteri dell'hash risultante, la forza non viene diminuita. Solo quando si scende a circa 72 bit di entropia (18 caratteri esadecimali o 12 Base64) il troncamento diventa una debolezza notevole.
risposta data 22.07.2016 - 16:49
fonte
2

C'è un principio generale che una funzione di hash come MD5 non può aggiungere entropia - il che significa che se questo metodo fosse uno strumento, un pezzo di software a cui le persone tentassero di scoprire la password venissero a conoscenza, sarebbe semplicemente un'altra regola, un'altra passo nei loro tentativi e li rallenterebbe solo marginalmente.

Tuttavia, se questo era un metodo che Bob ha usato personalmente e non pubblicizza questo metodo di produzione della sua password, potrebbe essere che aggiungerebbe effettivamente entropia alla password - poiché aumenterebbe la lunghezza e forse il set di caratteri del risultato. Come dici tu, questa è sicurezza attraverso l'oscurità, non si basa su nessuno che conosca l'algoritmo di Bob. Se scrive questo programma, diciamo, lo ha sul suo telefono e non lo condivide mai con nessuno.

Per Bob, questo è probabilmente un vantaggio. Per un utente generale, non è certamente uno strumento utile.

Non mi piace strongmente promuovere tutto ciò che sa di sicurezza attraverso l'oscurità, ma qualsiasi generazione di password "algoritmica" ("Scegli 4 parole da questi elenchi di parole", "Esegui un sottoinsieme casuale di queste trasformazioni in questa parola lunga comune") che può funzionare in modo ragionevole per generare password complesse, ma si interrompe se l'hacker conosce i dettagli dell'algoritmo. Questo certamente non sarebbe adatto come metodo pubblicato e consigliato di scegliere una password.

    
risposta data 22.07.2016 - 16:14
fonte

Leggi altre domande sui tag