Domanda

Sto cercando di scoprire quale algoritmo sta utilizzando l'applicazione client per restituire la chiave di sessione.

Quando inizio una connessione, il server invia prima una chiave di sessione univoca. Il client deve quindi rispondere con una password crittografata o hash e inviare insieme al nome utente al server.

Esempio di traccia di rete tra client e server: (nome utente: serv1ce / password: test12)

App ricevuta dal server << 52 D7 1C 3F 9F 2C 05 C9 (chiave di sessione di tempo)
App inviata al server >> 11 83 2d 7d ff 0c 51 8c 53 45 52 56 31 43 45 20

La parte "53 45 52 56 31 43 45 20" è il nome utente nel testo chiaro come valori di byte (serv1ce).

Qualcuno sa come i byte "11 83 2d 7d ff 0c 51 8c" sono stati creati con la password 'test12' e la chiave di sessione a 64 bit (8byte) "52 d7 1c 3f 9f 2c 05 c9"?

È stato utile?

Soluzione

Se stanno usando un hash crittograficamente sicuro, in linea di principio da input e output non dovresti essere in grado di scoprirlo.

In pratica stanno restituendo 8 byte, che sono 64 bit, il che suggerisce che stanno usando una variante di MD5. Se seguono la pratica tipica, è probabile che abbia creato una stringa in qualche modo che include una combinazione di nome utente, password, chiave di sessione e un hash segreto, quindi l'hash. (Nota che ho detto pratica tipica, non best practice. La migliore pratica è quella di usare qualcosa di lento per calcolare a questo scopo, un tale bcrypt.) Se capisci la combinazione magica, hai la risposta.

Hai due approcci decenti. La più semplice è la ricerca della forza bruta. Se cerchi md5 gpu cracking Puoi trovare molti strumenti che ti consentono di scaricare i calcoli MD5 sulla tua scheda video. Questi sono ideali per la ricerca della forza bruta e possono farti provare un numero sorprendente di variazioni sul tema sopra. (La fattibilità di questo attacco è il motivo per cui le persone dovrebbero usare bcrypt per questo genere di cose.)

L'altro è che hai l'applicazione. Esistono vari modi per tracciare ciò che accade realmente all'interno dell'applicazione mentre sta facendo quel calcolo. Riesce a capirlo e avrai la risposta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top