¿Identificando el tráfico SSL?

3

¿Cómo identifica DPI básicamente el tráfico de datos SSL? ¿Solo por el número "443" en la sección del puerto o el tráfico SSL tiene otras propiedades particulares distintas de "443"?

Gracias de antemano,

    
pregunta user38350 22.04.2014 - 12:13
fuente

2 respuestas

6

SSL / TLS tiene un formato muy específico en línea para los datos: los datos se envían como registros . Además, al comienzo de cada conexión:

  • El cliente habla primero.
  • El cliente envía un registro de "reconocimiento" que contiene un mensaje de reconocimiento de tipo ClientHello .

Entonces, el primer byte del cliente será 0x16. Luego sigue la versión del protocolo, que será de dos bytes: 0x03, luego un byte de (normalmente) valor 0x00 (para SSL 3.0) a 0x03 (para TLS 1.2). Entonces la longitud de registro como dos bytes. Dentro de la carga útil de registro se encuentra el encabezado del mensaje de intercambio: un byte de valor 0x01 (tipo para un ClientHello ) seguido de una longitud de tres octetos.

En algún momento, había usado un multiplexor para SSL y RDP en el mismo puerto: desde que comenzó la conexión RDP con un byte de valor 0x03 del cliente, mientras que el primer byte de SSL es 0x16, por lo que podría escribir un programa simple que reenvía los datos al servidor web o al servidor RDP, dependiendo de ese primer byte.

No todos los sistemas DPI son sofisticados, y algunos pueden ser engañados aplicando variantes del protocolo. Por ejemplo, el cliente puede dividir el mensaje ClientHello en varios registros, y posiblemente comenzar con una larga secuencia de registros vacíos. Algunas implementaciones de servidor realmente tolerarán una secuencia inicial de mil mensajes de alerta (de tipo "advertencia") que pueden evadir el escrutinio del sistema de DPI de varias maneras:

  • El sistema DPI puede esperar un primer byte de valor 0x16, y lo considera no SSL si se envía cualquier otro byte (por ejemplo, un 0x15 para un registro de "alerta").
  • El sistema DPI puede esperar que ClientHello esté contenido dentro de un solo registro, sin fragmentación, y por lo tanto no reconozca el protocolo de enlace SSL.
  • El sistema DPI puede esperar ClientHello dentro del primer paquete de la conexión TCP, y todos los registros vacíos adicionales o el registro de alerta pueden empujar arbitrariamente al ClientHello a la conexión TCP.

El truco aquí es encontrar variantes que sean aceptadas por las implementaciones de servidor SSL (que tienen algunas limitaciones arbitrarias más o menos) pero que no están cubiertas por el sistema de DPI que intenta ocultar.

(Si no está seguro, intente implementar una biblioteca SSL personalizada, por supuesto, no para uso de producción. Esto le enseñará muchas cosas sobre los detalles del protocolo).

    
respondido por el Thomas Pornin 22.04.2014 - 15:01
fuente
0

Para establecer TLS / SSL, las partes deben primero handshake (que se lleva a cabo de forma clara, en la capa 5 del modelo OSI). Un intruso puede reconocer fácilmente este proceso y registrar que la conexión está utilizando TLS / SSL.

Posteriormente, la comunicación entre las partes se cifra (en la capa 6) y un intruso no puede interceptar los datos de la aplicación (en la capa 7).

Sin embargo, como ha notado, aún se pueden observar niveles más bajos: en particular, uno puede inferir el protocolo de aplicación de número de puerto TCP (en la capa 4). El puerto 443 está reservado por IANA para HTTPS, por lo que HTTP sería una buena conjetura (incluso se podría realizar un ataque activo e intentar comunicarse con el servidor para ver si responde a una solicitud HTTP sobre TLS en ese puerto). / p>

Además, no olvide que el análisis de tráfico puede resultar extremadamente informativo. Con SMTP, uno esperaría un breve apretón de manos bidireccional seguido de una gran cantidad de datos enviados por el cliente, seguido de una corta despedida bidireccional; esto contrastaría con HTTP, donde uno esperaría que el cliente envíe una breve solicitud seguida por una respuesta más amplia del servidor. De hecho, solo con el análisis del tráfico, los investigadores han podido adivinar con bastante precisión exactamente qué recursos HTTP tienen ha sido solicitado por clientes a través de TLS.

    
respondido por el eggyal 22.04.2014 - 15:12
fuente

Lea otras preguntas en las etiquetas