Qualcuno può spiegare i tavoli di ricerca inversa? [chiuso]

-1

Sto trovando difficile capire le tabelle di ricerca inversa e come funziona, e il concetto di catene di hash. Questo è parte del modello di sicurezza del computer che sto prendendo. Quindi capisco che la forza bruta, l'attacco al dizionario e la tabella di ricerca occupano molto tempo, e memorizzano tutte le opzioni e poi cercano in tutto il database. tuttavia, le tabelle di ricerca inversa risolvono questo problema e sacrificano il tempo di archiviazione. Ma come succede mi sto confondendo. Molte grazie

    
posta John 23.03.2015 - 17:12
fonte

1 risposta

4

Diciamo che vuoi crackare le password che sono memorizzate come hash MD5 (questa è una tecnologia molto vecchia). Poiché la forza bruta richiede molto tempo e questa funzione è "non reversibile", l'attacco è la tabella di ricerca inversa.

L'idea è di creare una tabella che memorizzi ciò che inserisci come input e l'hash che genera. Dopo aver eseguito la tua routine con tutti gli input che ritieni siano validi, puoi attaccare il file della password con una tabella di ricerca inversa: navighi nel database sfogliando non con la password ma con quello che corrisponde a Hash.

Ricerca inversa quindi, semplicemente non sta guardando lo stesso input, ma per gli input che generano lo stesso output. Ad esempio:

input | Hash generated

admin |  21232f297a57a5a743894a0e4a801fc3

Invece di cercare la stringa admin , nella tua tabella cercherai la stringa che corrisponde all'hash 21232f297a57a5a743894a0e4a801fc3 .

Per ulteriori dettagli, cerca le tabelle di Raibow nella wikipedia , penso che noterai che non sono esattamente il lo stesso, ma nell'articolo puoi trovare la differenza tra entrambi.

Quanto sacrifica il tempo di archiviazione? L'idea è che avresti bisogno di un database completo con i dati come simile a quello sopra, e questo è l'archiviazione. Il tempo per query , è solo una ricerca B-tree (O (log n)) sul database, poiché la chiave potrebbe essere l'hash. Questo non significa che per generare il tavolo non passi il tempo. Significa solo che una volta che hai il database, puoi interrogarlo in un tempo molto breve.

    
risposta data 23.03.2015 - 17:41
fonte

Leggi altre domande sui tag