¿Cómo saber si una conexión está encriptada?

3

Estoy olfateando una conexión que usa ICEP (ZeroC ICE Protocol), y sus paquetes se comprimen usando el algoritmo BZ2 (GNU BZip 2).

Quiero averiguar si los paquetes están encriptados o no. ICEP puede usar OpenSSL para cifrar el tráfico.

Información adicional

Es una red local, y uso WireShark para analizar el tráfico. El cliente es una aplicación .Net en Windows, y el Servidor es una aplicación Python en una máquina Gnu / Linux. Si utilizan algún cifrado, posiblemente sea el cifrado ADH (cifrado anónimo Diffie-Hellman).

También intenté usar el comando # openssl s_client , pero dice:

CONNECTED(00000003) 3894:error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol:s23_clnt.c:583:

    
pregunta Aidin 19.03.2011 - 09:35
fuente

1 respuesta

2

Observe el flujo y busque la negociación mediante protocolos de cifrado definidos. Si sabe que los datos están comprimidos con bzip2, busque las cadenas 0x314159265359 y 0x177245385090. A menos que los encabezados estén totalmente eliminados, aparecerán una vez por cada bloque. Puede adivinar si los datos están encriptados siguiendo la secuencia y verificando la entropía. Cuanta más entropía por bit, más probable es que esté viendo el cifrado. Desafortunadamente, esto también se aplica a la compresión.

Yo diría que se puede discernir cifrado conocido o no cifrado conocido. Diferenciar el cifrado o la compresión llevaría un tiempo e involucraría un código más complejo sin información de encabezado para cadenas mágicas (como la anterior) para revelarlo.

    
respondido por el Jeff Ferland 19.03.2011 - 15:02
fuente

Lea otras preguntas en las etiquetas