Supponiamo di avere una hash hash () crittografica strong, una password completamente casuale composta da 15 caratteri pass15, due valori salati a carattere singolo salta, saltb.
Calcoliamo hash hash, hashb applicando la funzione hash alla password pass15 + i sali:
hasha = hash (pass15 + salta)
hashb = hash (pass15 + saltb)
Ora, diciamo che salta, saltb, hash () e hasha sono tutti pubblici. Hashb è più a rischio di cracking che se hasha non fosse noto?
Per coloro che hanno bisogno di specifiche, lascia andare hash () = sha256, ma se è importante per favore dì perché è importante per questo problema.
La mia convinzione è che hashb non sia meno vulnerabile perché solo un attacco di forza bruta è possibile scoprire hashb, e che la conoscenza pubblica di hasha, salta e saltb non ha alcuna rilevanza.
Non so se c'è qualche scorciatoia matematica che potrebbe utilizzare hasha per accelerare il crack. Non sembra teoricamente possibile.
** Riepilogo basato sulle risposte date finora: **
Per prima cosa, lascia che riformuli la domanda in un modo diverso:
Se ho una password strong di 15 caratteri casuali, gli hash salati sono completamente indipendenti e sicuri da usare, tuttavia, anche se i sali sono noti, i singoli caratteri deboli vengono semplicemente aggiunti al fine della password e la funzione di hash è veloce, come SHA256?
La risposta sembra essere sì. Quindi, potrei virare su un carattere% alla fine della password, cancellarlo e usare quell'hash come ID utente. Sarebbe difficile da ricordare e probabilmente troppo a lungo come id utente, ma sarebbe sicuro farlo.
Potrei anche aggiungere un singolo carattere $ alla fine della password, cancellarlo e usare l'hash come password del mio portatile, e sarebbe sicuro farlo, anche se sto usando pubblicamente l'hash% come il mio ID utente. L'elenco potrebbe continuare con quello che potrei fare con la password di 15 caratteri e un salino aggiunto. Ad esempio, potrei virare sul nome di dominio di qualsiasi sito, cancellare il risultato e usare l'hash come password per il sito.
L'ultimo concetto è la base per programmi come PwdHash e PasswordMaker.
L'assunto è che (almeno per me) le password generate da tali programmi sono tenute al sicuro come password, per evitare che la funzione di hash venga "spezzata" o compromessa. Ma sembra che finché la password sicura viene tenuta segreta, che qualsiasi hash salato sia sicuro da usare come voglio io - che pubblicare un tale hash nel mondo non compromette in alcun modo la sicurezza di nessuno degli altri hash.
Stavo semplicemente chiedendo se qualcuno sa di qualche debolezza con questo modo di pensare. La risposta finora è no, i singoli hash possono essere usati comunque.
Per coloro che potrebbero interrogarsi su COME sicuro, ecco una rapida risposta basata sulla matematica (ho tenuto i calcoli visibili in modo che tu possa seguire la tua calcolatrice):
Credo che in questo momento alcuni programmi possano utilizzare la scheda grafica di un computer per calcolare circa 1 billon SHA256 hash al secondo, 1E9 al secondo (entro un ordine di grandezza almeno).
Questo è il motivo per cui SHA256 è povero per le password e dovremmo usare hash più lenti come Bcrypt.
Ora, prendi una password casuale di 15 caratteri. Il numero di possibili password candidate date maiuscole, minuscole e numerali nella password sarebbe 62 ^ 15 = 7.7E26 possibili password.
Usando SHA256 come funzione di hash, il numero di secondi che occorrerebbe, in media per decifrare questa password sarebbe la metà del tempo necessario per enumerare tutte le password possibili:
7.7E26 / 1E9 / 2 = 7.7E17 / 2 = 3.9E17 secondi
Il numero di anni per decifrare la password sarebbe:
3.9E17 / 60/60/24/365 = 1.2E10 anni, o 12 miliardi di anni, solo un miliardo di anni in meno rispetto all'età dell'universo.
Quindi passare da un hash SHA256 pubblico alla password salata a 15 caratteri originale richiederà probabilmente più tempo di quello che ho su questa Terra.
Anche con i miglioramenti apportati all'hardware (ignorando la possibilità dei computer quantistici), il divario nella tecnologia per arrivare a crollare in un anno significa che abbiamo bisogno di computer che sono 10 miliardi di volte più veloci.
Quindi, dovrei sentirmi libero di usare gli hash salati SHA256 come preferisco a patto che la base dell'hash sia una password casuale di 15 caratteri o più.