Determine si está comprimido o encriptado [cerrado]

2

Tengo un montón de datos de red y me gustaría determinar si está 1) encriptado o 2) comprimido. Dudo que sean ambas, pero el potencial existe. Si asumo que los encabezados de compresión tradicionales se eliminan (evitando que simplemente ejecute el archivo en los datos), ¿cómo determinaría si los datos que estoy viendo están comprimidos o encriptados, si fuera uno?

La razón por la que creo que se eliminan los encabezados de compresión es porque sería información innecesaria, ya que tanto el cliente como el servidor conocen el método exacto para comprimir y descomprimir los datos.

Los ejemplos de datos de la capa de aplicación se publican en enlace y enlace

    
pregunta zz3star90 10.02.2015 - 01:02
fuente

2 respuestas

2

En teoría, esto puede ser difícil porque tanto el cifrado como la compresión buscan producir datos de alta entropía. Los resultados prácticos dependen del algoritmo de compresión específico utilizado; por ejemplo, un informe sobre / dev / ttys0 afirma el éxito en utilizando ciertas técnicas estadísticas (Chi-Square o aproximación de Monte Carlo pi) para diferenciar ciertas técnicas de compresión / encriptación.

    
respondido por el Ari Trachtenberg 10.02.2015 - 04:17
fuente
1

Si puede obtener un lote suficientemente grande de los datos del "sujeto", podría analizarlo estadísticamente. Un buen cifrado, sobre un conjunto de datos suficientemente grande, debe mostrar una alta entropía y distribución. Cada valor posible para los bytes (es decir, en el rango de 00h a FFh) debería, en particular, mostrar aproximadamente el 0.39216% del tiempo. HxDen te permitirá pegar tus valores hexadecimales y guardarlos como un archivo binario y te dará un recuento estadístico general. Las utilidades DieHard te permitirán evaluar la distribución, incluida la distribución de repeticiones y otras cualidades de aleatoriedad. (Ninguno de los tamaños de muestra vinculados en su pregunta es lo suficientemente grande como para hacer un buen análisis).

Si su flujo de datos incorpora bloques de datos (encriptados o no) que están rociados con HMAC u otros bloques de verificación / autenticación, esto no se mantendrá incluso si los datos están encriptados.

En la mayoría de los casos, los datos comprimidos mostrarán una distribución de bytes un poco más variada, a menudo con la apariencia de una forma de diente de sierra si mi memoria sirve.

Es bastante difícil proporcionar una mejor ayuda sin algunos detalles adicionales.

    
respondido por el boggart 10.02.2015 - 02:29
fuente

Lea otras preguntas en las etiquetas