Qual è il termine corretto in una tabella pre-calcolata con coppie password / hash?

4

La tabella ha il seguente aspetto:

123456 -> asfty18u78t489yh  
password -> 89y203rupdifhof  
something -> 2r892389n89rfsd  

E l'idea è che se hai l'hash ( asfty18u78t489yh ), conosci la password che lo ha generato ( 123456 ).

Li ho visti qui chiamati "tabelle hash", ma altre fonti definiscono una "tabella hash" come metodo crittografico per l'indicizzazione degli array. Ho visto il termine "hash precalcolati" o "tabelle hash pre-calcolate" ma solo in alcuni post / siti web. Ho anche visto altri termini strani e persino un po 'di confusione con i termini (ad esempio chiamandolo "tavolo arcobaleno" o "attacco dizionario") che potrebbe essere effettivamente corretto ma non ne ho idea.

Qual è il termine corretto (o, almeno, generalmente accettato?

    
posta Lucas Cioffi 03.03.2017 - 14:40
fonte

2 risposte

4

Se ci sono gli hash completi per ogni password, è una tabella hash precalcolata, in un contesto di sicurezza solitamente viene chiamata solo tabelle hash.

Se hai una struttura come:

End of hash1 -> Password1, Password2, Password3, ...
End of hash2 -> Password4, Password5, Password6, ...

Quindi si chiama una tabella arcobaleno, la differenza principale qui è che si raggruppano tutte le password che producono hash che hanno lo stesso finale (ad esempio, gli ultimi 32 bit di sha256). Questo è fatto per risparmiare spazio a spese del tempo di calcolo, in questo caso prendi l'hash che stai cercando di crackare, guarda il finale e prova le password che hai associato a quel finale di hash

Infine, tabelle hash (mappe AKA cancelletto) nel contesto della scienza generale del computer è una struttura di dati che utilizza una funzione di hash (non necessariamente una funzione di hash crittografico) per memorizzare, ordine e / o dati di accesso in un array. Funziona così:

k = Hash(object.id)
Array[k] = object

Quando vuoi cercare un oggetto nella tabella, ottieni solo Array[Hash(object_id)]

Esistono anche alcune mappe hash che consentono più valori per lo stesso hash (in caso di collisioni), in questo caso ogni voce dell'array è un elenco collegato

    
risposta data 03.03.2017 - 18:19
fonte
2

Come spiegato in Quali sono le tabelle arcobaleno e come vengono utilizzati? , il contenuto specifico della tabella che fornisci come esempio renderebbe il termine tecnico corretto una tabella hash. Questo perché hai un hash "completo" per ogni password, quindi per ottenere una password per un dato hash (se ignoriamo salatura, ecc.), Fai una ricerca.

Le tabelle arcobaleno sono tecnicamente differenti come menzioni, basandosi sulle collisioni, piuttosto che sul precalcolo.

Quindi, in termini tecnici, ciò che stai descrivendo è una tabella hash, in cui ottieni una risposta con una ricerca. Se avessi una tabella arcobaleno, dovresti calcolare qualcosa.

Detto questo, il link che hai fornito spiega in questo modo (come l' articolo di Wikipedia ).

Penso che utilizzerei ancora i tavoli arcobaleno nell'uso quotidiano, ma questo mi rende tecnicamente sbagliato. E ora lo so meglio, testardo.

    
risposta data 03.03.2017 - 14:47
fonte

Leggi altre domande sui tag