Conoscere il sale è un problema?

3

Capisco che l'aggiunta di un sale potrebbe ostacolare l'uso dei tavoli arcobaleno.

Non capisco il tempo necessario per creare una tabella arcobaleno per un certo sale e naturalmente ciò dipende dal limite di dimensioni della password che si utilizza, dalla dimensione del sale, dal metodo hash e anche dalla potenza di calcolo. Quindi questa domanda potrebbe essere irrilevante.

Tuttavia, in teoria, se qualcuno avesse accesso a tutte le tabelle arcobaleno salate per tutte le password fino a x caratteri e il sale fino a x caratteri e l'attaccante conoscesse i sali allora questo renderebbe possibile recuperare le password vero?

    
posta Dane 05.04.2016 - 16:14
fonte

4 risposte

7

Il valore del sale non è nella sua segretezza, è nella sua differenziazione e nella complessità aggiunta. L'hai toccato un po '.

In primo luogo, due hash delle password con diversi sali hanno diversi hash risultanti. Pertanto, un utente malintenzionato non può visualizzare una tabella delle password e scoprire utenti che condividono la stessa password.

In secondo luogo, mentre scrivi, una tabella arcobaleno potrebbe essere pre-calcolata per un ampio set di input per password, consentendo un recupero veloce della password, O (1). Tuttavia, questo è spesso per le password non salate.

In terzo luogo, l'hash di salt per una password è univoco per quell'hash e dovrebbe avere la stessa dimensione (lunghezza del bit) dell'algoritmo di hash. Una singola tabella arcobaleno è la dimensione di tutti gli input della password. Supponendo password di 8 caratteri, caratteri alfanumerici maiuscole e minuscole (diciamo 10 extra), quindi 72 caratteri. 8 * log2 (72) è di circa 50 bit. Pertanto, la memoria della tabella arcobaleno per le password hash sha-1 è 50 + 160 o 2 ^ 210 bit.

A 2 ^ 202 byte di spazio di archiviazione, questo è già più grande di tutto lo spazio di archiviazione attuale sul pianeta. Penso che possiamo concludere due cose: 1) non tutte le password sono posizionate in una tabella arcobaleno e 2) le tabelle arcobaleno non salate sono già abbastanza grandi.

Ora, creare arcobaleni per ogni sale possibile significa richiedere 210 * 160 o 2 ^ 33600 bit di memoria. Dove mettere tutti quei dati (altri universi) impallidisce rispetto al tempo richiesto per crearli (oltre la fine del nostro universo).

Le tabelle arcobaleno per sale non accadrà.

L'attacco corretto consiste nell'acquisire il database delle password ed eseguire un attacco dizionario contro singole voci usando i sali non segreti e specifici per la password.

    
risposta data 05.04.2016 - 16:43
fonte
4

Come è stato detto, è teoricamente possibile, ma a causa di limiti computazionali e di archiviazione praticamente ben oltre il possibile:

Il calcolo di una tabella arcobaleno per l'intero spazio hash di un algoritmo di hashing è impossibile come indicato qui . Per non parlare di hash più grandi come SHA-512 o SHA3.

Esistono tabelle arcobaleno per MD5 che coprono password semplici (alfanumeriche, fino a 9 caratteri). Ma anche in questo caso, lo spazio di archiviazione mette un colpo nella tua ruota:
questi sono circa 600 GB di dimensioni (come si può vedere nel link). Se viene utilizzato un valore casuale per password di soli 4 caratteri alfanumerici, la dimensione di una tabella arcobaleno di password e sali aumenta fino a 600 GB * (26 * 2 + 10) ^ 4 = 5.3 Zettabyte (ovvero 5 milioni di terabyte). Non è possibile memorizzare, ma cercare quella quantità di dati.

    
risposta data 05.04.2016 - 16:44
fonte
0

Sì, ma questo è computazionalmente impossibile da oggi.

Il sale espande tecnicamente la tua password da personaggi così casuali ma conosciuti. È quindi possibile creare una "tabella arcobaleno salato" con tutte le combinazioni di password fino a n caratteri con, per ogni password, tutti i sali di m caratteri ( m è noto). Ma questo non è fattibile da un punto di vista computazionale (calcoli e archiviazione).

    
risposta data 05.04.2016 - 16:31
fonte
0

In teoria, sì, ma hai intenzione di imbatterti nei limiti di archiviazione.

Ad esempio, matematica back-of-the-envelope:

  • Password di lunghezza: < 12
  • Lunghezza del sale: 32 byte

combinazioni salda e password: 6x10 100 (~ 6x10 88 TB). La capacità totale di archiviazione di tutti i computer del pianeta è approssimativamente 10 zettabyte, o 8x10 10 TB , quindi buona fortuna a conservare questo tavolo.

Ho anche sentito dire che avere un contatore a 256 bit in realtà ++ da 0 a 2 256 consumerebbe più energia del sole, quindi uhh, avresti bisogno di qualche bel nucleare reattori per costruire quel tavolo arcobaleno.

    
risposta data 05.04.2016 - 16:51
fonte

Leggi altre domande sui tag