Riorganizzare l'hash non aggiunge sicurezza?

0

Sono un principiante quando si tratta di sicurezza delle informazioni, quindi ho letto molte delle domande principali su questo stackexchange per motivi di apprendimento. Mi sono imbattuto in questa domanda che tratta dell'hash. Nel criticare un algoritmo di sicurezza della birra in casa, la gente dice ripetutamente che mescolare un hash non aggiunge sicurezza.

Un commento per il quale non riesco a trovare una risposta:

$nt = substr($pass,0,8); // <--- BAD BAD BAD - why shuffle an MD5 hash?!?!?

e qui:

Again hash = sha1($salt+md5'($password)). Rearranging the MD5 adds no security (swap(00112233445566778899aabbccddeeff) becomes ccddeeff8899aabb0011223344556677) the swap does not prevent you from using md5 rainbow tables after (e.g., look at the code and reverse the swap). However, the presence of the unique salt makes the rainbow tables infeasible.

Deve esserci qualcosa che non capisco dell'hashing. Mi sembra che riorganizzare a caso i personaggi dell'hash offrirà una sorta di sicurezza? Chiaramente non è il caso, ma quale errore sto facendo? Sono ignorante della mia stessa ignoranza in questo momento.

    
posta bbenz 14.03.2018 - 12:22
fonte

2 risposte

2

È sicurezza per oscurità. Mischiare l'hash migliora la sicurezza, perché se l'individuo che sta tentando di crackare le password non si rende conto di aver mescolato gli hash, allora non troverà le password appropriate, a meno che non riescano in qualche modo a trovare una password completamente separata che hash riarrangiato (noto come collisione hash).

La ragione per cui la maggior parte della gente dice che questo non migliora la sicurezza è perché la maggior parte della gente pensa che se qualcuno è riuscito ad accedere al proprio database, molto probabilmente avrà accesso alla funzione di login che ha riorganizzato l'hash in primo luogo. Questa funzione viene regolarmente verificata perché è qui che l'utente malintenzionato identifica eventuali tecniche di hashing non standard utilizzate. Quindi riorganizzare l'hash non è un ottimo metodo per migliorare la sicurezza in quanto è significativamente meno efficace rispetto all'utilizzo di un sale standard.

    
risposta data 14.03.2018 - 13:28
fonte
3

Innanzitutto, in base al principio di Kerckhoffs , devi presupporre che un utente malintenzionato conosca l'algoritmo utilizzato hash le password, quindi fare le cose diversamente dagli altri non ti renderà sicuro per impostazione predefinita.

Mentre il tuo algoritmo è basato su MD5, è un algoritmo completamente diverso. Come fai ad assicurarti di non ridurre la sua forza eseguendo i tuoi calcoli su di essa?

Infine, questa domanda sembra riguardare l'hashing delle password. In questo contesto, gli algoritmi di hash dovrebbero essere lenti. MD5 è veloce. Mischiare un MD5 è veloce. Il tuo algoritmo è veloce. Quindi non dovresti usarlo per l'hashing della password.

    
risposta data 14.03.2018 - 13:15
fonte

Leggi altre domande sui tag