Come posso identificare e utilizzare la funzione hash con un numero sufficiente di testo e il loro hash?

1

Quindi, ho questo vecchio programma attualmente in uso, dato che ho accesso al database ho adottato tutti i dati di cui ho bisogno eccetto le password degli utenti ..

Ora gli utenti mi forniranno la password in testo semplice e dovranno eseguirne l'hash prima di abbinarli a quelli nel database

Ho accesso alla versione binaria e posso generare hash da qualsiasi testo

Sono sicuro che solo il testo della password viene utilizzato durante l'hashing, poiché nomi utente diversi con la stessa password ottengono lo stesso hash.

Un hash è di lunghezza fissa indipendentemente dal testo della password.

Ho già provato tutti gli algoritmi di hashing più diffusi, ma nessun hash fornito corrisponde al valore creato da questo programma.

Sì, potrei decompilare questo programma e dare un'occhiata ... ma probabilmente potrebbe essere illegale o impossibile

    
posta konzo 11.03.2016 - 11:12
fonte

2 risposte

5

In definitiva, il reverse engineering è il metodo più completo ed è certamente possibile. È inoltre disponibile un sito dedicato allo scambio di stack per il reverse engineering. Probabilmente, provando le password conosciute e verificando i valori hash risultanti, hai già iniziato a decodificare quel pezzo di software binario. Non c'è nulla di qualitativamente speciale alla decompilazione: ciò che costituisce il reverse engineering è il tentativo di comprensione, e tu hai fatto il primo passo su questa strada.

Per quanto riguarda la legalità, dipende molto dalla giurisdizione. Ciò che è tradizionalmente detto è che il reverse engineering a fini di interoperabilità è un gioco leale in Europa (a patto che tu usi, non pubblichi, i tuoi risultati) ma forse non negli Stati Uniti. Le leggi su questo argomento tendono a cambiare rapidamente, con cose come DMCA , quindi non fidarti troppo dell'affidabilità della tradizione.

I suggerisco che tu usi il software binario per verificare la password per ogni utente quando quell'utente accede, ma poi, dato che hai la password disponibile a quel punto, ri-scambialo con un altro, sicuro e completamente specificato funzione di hashing della password (ad esempio, bcrypt); questo nuovo hash verrà utilizzato per verificare ulteriori tentativi di accesso per quell'utente.

In questo modo, puoi gradualmente spostare tutti gli hash delle password su un nuovo sistema, e dopo un po 'sarai in grado di rimuovere le autorizzazioni dal vecchio sistema con l'hashing binario. In ogni caso, quel vecchio hashing è debole, poiché non è salato (un attaccante che può guardare il database sarà in grado di accelerare molto gli attacchi attraverso il parallelismo), quindi dovresti costruire un piano di transizione per un sistema più sicuro. / p>     

risposta data 11.03.2016 - 15:44
fonte
0

IANAL, ma non vedo come ciò sarebbe illegale. Sembra che tu sia lo sviluppatore responsabile della sostituzione del vecchio software con una versione più recente che non condivide il binario, ma condivide il database (incluso l'hash della password). Non stai cercando di decifrare le password (o se lo sei, la domanda se la decompilazione è illegale non si presenterebbe in realtà;)).

A condizione che tutte le altre legalità siano in ordine (vale a dire, la tua azienda o te stesso possiedono la licenza per usare quel software, possiedi i dati, ecc. ecc.), allora è sicuramente giusto decompilare l'algoritmo hash, solo per vedere quale è.

Se si scopre che si tratta di un algoritmo liberamente disponibile (qualsiasi vecchia funzione di hash standard) con un sale fisso, allora si procede semplicemente da lì. Se si tratta di un algoritmo di hash "speciale", allora puoi pensare se riutilizzarlo. Quindi ti trovi di fronte al can-of-worms che è la discussione sugli algoritmi di copyright ...

    
risposta data 11.03.2016 - 15:42
fonte

Leggi altre domande sui tag