Decifrare il codice binario da una stringa base64 [duplicato]

0

Quindi, questa funzione di discussione online utilizza nomi di account decodificati in ogni post, insieme a quello che chiamano "dati di registrazione", un esempio di questo può essere:

Dati di accesso: 10878
Informazioni sull'account codificato: U2FsdGVkX19bCgrkbEjt4gDrFKNANCce

Ora, la prima parte della stringa quando si esegue un decodificatore base64 ("U2FsdGVkX1") è solo la stringa "Salted__" e il resto è quello che sembra essere qualcosa di binario.

Quindi la stringa di account cambia per ogni input dall'utente, e quello che sto cercando di fare è decodificare questa stringa per determinare se il valore dopo "Salted__" è lo stesso, e sapendo che questo è qualcosa che i proprietari del software possono fare, devo supporre che i "dati di accesso" siano una sorta di sale per i dati binari risultanti.

Quindi, la mia domanda è - esiste un modo per me (o te) per capire come vengono codificati i dati binari e come decodificarli? E ancora: può essere decodificato, purché tu sappia come. :)

Questi dati non contengono (a mia conoscenza) alcuna informazione personale e possono al massimo contenere il nome di accesso o l'ID di accesso dell'utente, quindi non sto cercando di esporre alcuna informazione personale. Determina solo se qualcuno sta pubblicando con più "nick" dallo stesso account.

    
posta Sandman 26.05.2016 - 22:04
fonte

1 risposta

3

Il prefisso Salted__ indica quasi certamente che questo è output del comando openssl enc o qualcosa progettato per essere compatibile con esso. Esistono molti altri schemi di derivazione, hashing o crittografia basati su password che usano salt , ma nessuno usa questo particolare formato molto semplice.

Il sale è nel testo cifrato, subito dopo il prefisso Salted__ , quindi i "dati di accesso" non sono il sale; dalle informazioni che presenti, è impossibile dire cosa sia, se non altro. Dal momento che il sale è casuale per ogni crittografia, la crittografia degli stessi dati (probabilmente il login o l'account che si sta cercando) più volte produrrà una crittografia completamente diversa ogni volta e questi non possono essere collegati se non decrittografando.

Per decrittografarlo, devi sapere, scoprire o indovinare:

  • la cifra / modalità utilizzata - chiaramente è il flusso o il blocco da 8 byte e molto probabilmente il secondo. Se è possibile declassare64 numerosi testi cifrati e qualsiasi lunghezza che non è un multiplo di 8, è sicuramente un codice di flusso (RC4) o modo (CFB, OFB, CTR); se tutti sono multipli di 8 è estremamente probabile una modalità di blocco (CBC o ECB di solito) di TDES o forse un altro codice a blocchi di 8 byte. Nel peggiore dei casi ci sono alcune dozzine di possibilità da provare, un ostacolo ma non insormontabile.

  • l'hash di derivazione - quasi certamente l'MD5 predefinito; poche persone sanno anche che ci sono opzioni

  • la password utilizzata - se il sistema è stato progettato e gestito correttamente, questa password dovrebbe essere protetta in modo da non poterla ottenere, e abbastanza strong da non poterlo indovinare meno di dire un milione o miliardi di anni. Detto questo, il openssl enc PBKDF è debole, quindi se la password è effettivamente nota a una persona (o persone) piuttosto che a qualcosa come una smartcard o una chiavetta USB è probabilmente fattibile a forzare la forza se si ha abbastanza tempo e Potenza della CPU.

risposta data 27.05.2016 - 07:28
fonte

Leggi altre domande sui tag