Se le password sono memorizzate con l'hash, come fa un computer a sapere che la tua password è simile all'ultima se provi a reimpostare la password?


11

Se le password sono memorizzate con l'hash, come fa un computer a sapere che la tua password è simile all'ultima se provi a reimpostare la password? Le due password non sarebbero totalmente diverse dal momento che una è sottoposta a hash e non può essere annullata?


5
Il computer non saprebbe se sono simili. Saprebbe solo se fossero identici (eseguendo l'hashing della nuova password e confrontandola con l'hash memorizzato della password originale).
Robert Harvey,

Tuttavia, ci sono modi per generare un hash che acquisisce parte delle caratteristiche della password. La disponibilità di tali hash, tuttavia, è una grande scappatoia, poiché i cracker di password possono anche utilizzare tali informazioni per restringere la ricerca della forza bruta della password di molti ordini di grandezza.
rwong

Se devi confrontare le password, non utilizzerai gli hash. È probabile che utilizzerai AES o altre forme di crittografia simmetrica
Laiv

Risposte:


15

Un modo per implementarlo è se reimposta la password, di solito ti viene chiesto di inserire anche la tua vecchia password. Puoi semplicemente usare il normale confronto di somiglianza di stringa in quella situazione perché a quel punto hai entrambe le password in formato testo normale.

Un altro modo per implementare questo è normalizzare la password, ad esempio i caratteri accentati sono normalizzati agli alfabeti inglesi più vicini, provare a trascrivere il testo foneticamente, rimuovere i numeri, ecc. E precalcolando più versioni degli hash che vengono generati dalla password che era stato normalizzato in diversi modi. Si noti che ciò indebolisce il meccanismo di hashing di un importo non specificato. Non considero tali come le migliori pratiche di sicurezza.


"Reimposta password" si riferisce generalmente a "Ho dimenticato la mia password e desidero reimpostarla", quindi non ti verrà chiesta la vecchia password. La seconda parte della tua risposta è precisa però.
Casablanca

3
@casablanca: ci sono molti sistemi là fuori che ti hanno "resettato" la tua password ogni X giorni ....
whatsisname

1
@casablanca: anche la prima metà è accurata, "reimpostare la password" può avere entrambi i significati, la terminologia non è così rigida. Dobbiamo chiedere all'OP cosa significano esattamente.
Doc Brown,

12

La semplice risposta è che un sistema sicuro non sa se sono simili.

Ma alcuni sistemi riducono intenzionalmente la sicurezza di una password specifica in qualche modo per impedire che le nuove password siano vecchie password o simili a loro. Il vantaggio in termini di costi è che verrà creata una nuova password prima che qualcuno crei maliziosamente la password corrente anche con le informazioni di somiglianza.

  • Potrebbero archiviare gli ultimi N hash di password che hai usato. Se si immette una vecchia password risulta evidente perché l'hash della nuova password corrisponde a un hash della vecchia password.
  • Il meccanismo di hash utilizzato potrebbe contenere un meccanismo di inchiodamento del pollice oppure una miniatura di hash potrebbe essere memorizzata accanto all'hash. In sostanza, alcuni pattern di bit all'interno dell'anteprima hash esprimono un insieme di pattern di bit molto simili nel valore sottostante.
  • Allo stesso modo potrebbero tenere le statistiche a lato della tua password, il che consentirebbe una misura accurata di somiglianza.

In generale ciascuna di queste tecniche riduce la sicurezza delle password.

  • Mantenere le vecchie password riduce la sicurezza di tali password. Se una di queste password dovesse essere violata, è molto probabile che la password corrente sia simile a loro, la maggior parte delle persone cambia solo un numero.

  • Inchiodare il pollice e le statistiche possono eliminare più rapidamente le ipotesi di password errate rispetto al tentativo di eseguire l'hash del confronto e confrontarle. Questo perché gli hash, in particolare gli hash sicuri, sono complicati da calcolare e richiedere, anche se l'hardware ha accelerato. Mentre un calcolo più semplice che dice "sicuramente no" o "forse" può eliminare la maggior parte di queste ipotesi, dopo tutto i controlli di somiglianza hanno lo scopo di impedirti di utilizzare password simili, non di utilizzare una password completamente nuova che non assomiglia per niente alla vecchia.

In breve, fai attenzione a qualsiasi sito che indica una misura di somiglianza con la tua password attuale / precedente. A meno che non stiano dicendo che la nuova password è la vecchia password.


7

Se le password sono memorizzate con l'hash, come fa un computer a sapere che la tua password è simile all'ultima se provi a reimpostare la password? Le due password non sarebbero totalmente diverse dal momento che una è sottoposta a hash e non può essere annullata?

Generate più password simili da quella immessa dall'utente e verificate se uno dei loro hash corrisponde a quello della vecchia password.


Sì, le persone sono abbastanza prevedibili nel tipo di cambiamenti che faranno, quindi questo potrebbe essere un modo decente per farlo.
cyborg,

Ciò farebbe esplodere molto rapidamente in termini di elaborazione necessaria con solo le password più brevi. Quindi non credo che questa sia una pratica reale.
Martin Maat,

Ho lavorato in un posto per un bel po 'di tempo, e quando ho lasciato la mia password era supersecurepassword39. (Sono vere solo le ultime due cifre). È ovvio se una password inizia o termina con un numero per vedere se è stato utilizzato il numero precedente.
gnasher729,

@MartinMaat Sarebbe però? Puoi rilevare aggiungere o incrementare un numero eliminando i caratteri uno a uno dalla password originale. Vale a dire "password", hai "assword" (heehee), "pssword", "pasword" ecc. Potresti persino cavartela usando un ha più debole per questi a causa della complessità aggiuntiva di dover provare 256 permutazioni di ognuno se ti capita di aumentare la forza dell'hash secondario. (Altro se li memorizzi in ordine casuale e non sai quale personaggio è stato eletto in quale, quindi è 256 * N per ognuno.)
millimoose

Rende l'impostazione di una nuova password N volte più costosa quando N è la lunghezza della password, esclusi i controlli di somiglianza che dovrebbero essere molto meno costosi dell'hash. Ma hai le password di hash ogni volta che un utente accede, e questo probabilmente accade molto più spesso delle modifiche della password, quindi dubito che il carico aggiuntivo sarebbe così evidente.
millimoose

2

Un altro modello è che il tuo sistema esegue l'hashing di alcuni sottoinsiemi caratteristici della tua password e memorizza tali hash per verificare se i sottoinsiemi della nuova password corrispondono a quelli precedenti, ovvero: password: "Admin2018" e sottoinsieme: "Admin" = impossibile inserire "Admin2019" come nuovo.


1

Un modo sarebbe quello di archiviare le ultime cinque password con hash in una tabella come "Cronologia password" e quando l'utente sta cercando di impostare una nuova password, l'hash e confrontarla con le password con hash nella tabella.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.