A quale dimensione della tabella il riutilizzo del sale rende redditizie le tavole arcobaleno?

1

Pur sapendo che il sale non dovrebbe mai essere riutilizzato, mi interessa sapere se si tratta di un problema significativo se abbiamo solo un piccolo numero di hash per i quali è riutilizzato.

Quindi diciamo che abbiamo una tabella con N hash delle password per cui è usato lo stesso sale. Il sale è unico ma è riutilizzato per tutti gli hash.

Le dimensioni del tavolo hanno un impatto sulla quantità di sicurezza persa? Ad esempio, una tabella con una sola password avrebbe ovviamente zero perdite di sicurezza, mentre una tabella con 10 password sarebbe meno sicura, ma non significativamente.

L'entità della perdita di sicurezza dipende dalla dimensione N , e a che punto una tavola arcobaleno diventa economica? A che punto la sicurezza diventa seriamente compromessa? È N=10 o N=100 o N=1000 ?

Modifica: Supponiamo anche che ogni password sia univoca nella tabella. Non siamo interessati a nessun altro tipo di perdita di sicurezza, eccetto che le tavole a arcobaleno diventano più convenienti.

Modifica 2: Diciamo che misuriamo la spesa computazionale in termini di teraFLOPS per password incrinata. L'efficacia in termini di costi dipende molto dal payoff previsto, ma mettiamo solo un valore arbitrario: consideriamo 1 teraFLOP / password crackata per essere redditizia.

    
posta sashoalm 20.10.2016 - 17:28
fonte

2 risposte

2

Dipende

Lo scopo di Salt è forzare un utente malintenzionato a utilizzare un attacco dizionario invece di un attackbow attack . Il motivo del passaggio dipenderà dall'intenzione e dalle risorse disponibili.

Utente singolo

Se un hacker sta cercando di ottenere la password per un singolo utente, non userebbe comunque un attacco arcobaleno. Un attacco dizionario è in realtà più veloce su una riga del database (a meno che l'hacker non sia estremamente sfortunato).

Solo targeting per password comuni

Se un hacker sta solo cercando di trovare utenti che usano password molto comuni, può costruire una tabella arcobaleno piuttosto piccola, una per ciascun valore di sale. Più sali hai, più tavoli dovrà creare. Ma non c'è un numero magico. Dipenderà dalle risorse disponibili per l'hacker e dalla dimensione dell'elenco delle password che sta cercando. Poiché ogni tavolo arcobaleno sarebbe piccolo, potrebbe essere disposto a crearne centinaia o migliaia.

Cercando di ottenere ogni singola password

Se un hacker tenta di decifrare ogni singola password nella propria base di utenti, dovrà costruire una tabella arcobaleno completa per ogni singolo sale. Se ci sono troppi sali, deciderà che è più facile passare ad un attacco di dizionario. La soglia per questo sarebbe probabilmente soggettiva e indicativa ... ad es. se l'hacker avesse abbastanza spazio di archiviazione per 100 tabelle arcobaleno, l'uso di 101 sali lo avrebbe indotto a passare a un attacco di dizionario.

D'altra parte, se la tua tabella ha pochissimi utenti (non pochi sali) allora un attacco di dizionario potrebbe essere più veloce comunque. Quando hai milioni e milioni di utenti, un utente malintenzionato vorrebbe fare molto di più per evitare di dover utilizzare un attacco di dizionario.

    
risposta data 20.10.2016 - 20:39
fonte
1

Il sale statico ha la stessa efficacia del sale. Non avresti alcuna difesa contro qualcuno che costruisca un tavolo arcobaleno. Gli utenti con password in collisione potrebbero conoscere la cui password corrisponde alla loro. E non aumenterebbe la complessità o rallenterebbe l'hashing in alcun modo; non è un sostituto di un algoritmo di tipo pbkdf2.

Se la sicurezza del tuo sistema si basa sul fatto che il sale sia un segreto, allora devi trattarlo come una chiave segreta, non salata.

    
risposta data 20.10.2016 - 19:41
fonte

Leggi altre domande sui tag