Descifrando código binario de una cadena base64 [duplicado]

0

Por lo tanto, esta función de discusión en línea utiliza nombres de cuenta decodificados en cada publicación, junto con los que llaman "datos de registro", un ejemplo de esto puede ser:

Datos de registro: 10878
Información codificada de la cuenta: U2FsdGVkX19bCgrkbEjt4gDrFKNANCce

Ahora, la primera parte de la cadena cuando se ejecuta a través de un decodificador base64 ("U2FsdGVkX1") es solo la cadena "Salted__" y el resto es lo que parece ser algo binario.

Entonces, la cadena de cuenta cambia para cada entrada por parte del usuario, y lo que estoy tratando de hacer es decodificar esta cadena para determinar si el valor después de "Salted__" es el mismo, y sabiendo que esto es algo que Los propietarios del software pueden hacer, debo asumir que los "datos de registro" son una especie de sal para los datos binarios resultantes.

Entonces, mi pregunta es: ¿hay alguna manera para que yo (o usted) pueda descubrir cómo se codifican los datos binarios y cómo decodificarlos? Y de nuevo, se puede decodificar, siempre que se sepa cómo. :)

Esta información no contiene (a mi entender) ninguna información personal y, como mucho, puede contener el nombre de inicio de sesión o el ID de inicio de sesión del usuario, por lo que no estoy tratando de exponer ninguna información personal. Solo determine si alguien está publicando con varios "nicks" desde la misma cuenta.

    
pregunta Sandman 26.05.2016 - 22:04
fuente

1 respuesta

3

El prefijo Salted__ casi seguramente significa que este es el salida del comando openssl enc o algo diseñado para ser compatible con él. Hay muchos otros esquemas de derivación, hash o cifrado basados en contraseña que usan salt , pero ninguno usa este formato muy simple en particular.

La sal está en el texto cifrado, justo después del prefijo Salted__ , por lo que los 'datos de registro' no son la sal; a partir de la información que presenta, es imposible decir qué es lo que es. Dado que el salt es aleatorio para cada cifrado, el cifrado de los mismos datos (posiblemente el inicio de sesión o la cuenta que está buscando) varias veces generará un cifrado completamente diferente cada vez y no se podrán vincular, excepto mediante el descifrado.

Para descifrar esto, necesita saber, descubrir o adivinar:

  • el cifrado / modo utilizado: claramente es una secuencia o un bloque de 8 bytes y lo más probable es que sea el último. Si puede de-base64 numerosos textos cifrados y cualquiera tiene longitudes que no son múltiplos de 8, definitivamente es un cifrado de flujo (RC4) o modo (CFB, OFB, CTR); si todos son un múltiplo de 8, es extremadamente probable que sea un modo de bloque (CBC o ECB generalmente malo) de TDES o tal vez otro cifrado de bloque de 8 bytes. En el peor de los casos, hay algunas docenas de posibilidades para intentar, un obstáculo pero no insuperable.

  • el hash de derivación: casi con seguridad el MD5 predeterminado; pocas personas saben que hay opciones

  • la contraseña utilizada: si el sistema está correctamente diseñado y operado, esta contraseña debería estar protegida para que no pueda obtenerla, y lo suficientemente fuerte como para no adivinarla Menos de un millón o mil millones de años. Dicho esto, el openssl enc PBKDF es débil, por lo que si una persona (o personas) conoce la contraseña en lugar de una tarjeta inteligente o una memoria USB, es probable que la fuerza bruta sea suficiente si tiene suficiente tiempo y Potencia de la CPU.

respondido por el dave_thompson_085 27.05.2016 - 07:28
fuente

Lea otras preguntas en las etiquetas