Un grupo de investigadores de la Universidad de Michigan publicó los resultados de un estudio sobre la posibilidad de identificación (VPN Fingerprinting) de conexiones a servidores basados en OpenVPN durante la monitorización del tráfico de tránsito. Como resultado, se identificaron tres métodos para distinguir el protocolo OpenVPN entre otros paquetes de red, que pueden ser utilizados en sistemas de inspección de tráfico para bloquear redes virtuales basadas en OpenVPN.
Las pruebas de los métodos propuestos en la red del proveedor de internet Merit, que cuenta con más de un millón de usuarios, mostraron la posibilidad de identificar el 85% de las sesiones de OpenVPN con un bajo nivel de falsos positivos. Para la verificación, se preparó una herramienta que, inicialmente en modo pasivo, identificaba sobre la marcha el tráfico de OpenVPN, y luego confirmaba la exactitud del resultado mediante una verificación activa del servidor. El analizador creado por los investigadores recibió un espejo del flujo de tráfico, con una intensidad de aproximadamente 20 Gbps.

Durante el experimento, el analizador pudo identificar con éxito 1718 de las 2000 conexiones de prueba de OpenVPN establecidas por un cliente simulado, en el cual se utilizaron 40 configuraciones típicas diferentes de OpenVPN (el método funcionó con éxito para 39 de 40 configuraciones). Además, en un período de ocho días de experimentación, se identificaron 3638 sesiones de OpenVPN en el tráfico de tránsito, de las cuales se confirmaron 3245 sesiones. Se destaca que el límite superior de falsos positivos en el método propuesto es tres órdenes de magnitud más bajo que en los métodos anteriores basados en el uso de aprendizaje automático.
Se evaluó por separado el rendimiento de los métodos de protección contra el seguimiento del tráfico de OpenVPN en servicios comerciales — de los 41 servicios probados, el tráfico pudo ser identificado en 34 casos. VPN-servicios que usan métodos de ocultación del tráfico de OpenVPN, el tráfico fue identificado en 34 casos. Los servicios que no pudieron ser detectados, además de OpenVPN, utilizaron capas adicionales para ocultar el tráfico (por ejemplo, enrutar el tráfico de OpenVPN a través de un túnel cifrado adicional). En la mayoría de los servicios que se identificaron con éxito, se utilizó la distorsión del tráfico mediante la operación XOR, capas adicionales de ofuscación sin el debido complemento aleatorio del tráfico o la presencia de servicios OpenVPN no ofuscados en el mismo. servidor.
Los métodos de identificación utilizados se basan en la vinculación con patrones específicos de OpenVPN en los encabezados de paquetes no cifrados, el tamaño de los paquetes ACK y las respuestas del servidor. En el primer caso, como objeto para la identificación en la etapa de negociación de la conexión, se puede usar la vinculación al campo "opcode" en el encabezado de los paquetes, que adopta un rango fijo de valores y cambia de cierta manera dependiendo de la etapa de establecimiento de la conexión. La identificación se reduce a detectar una secuencia particular de cambio de opcode en los primeros N paquetes de la transmisión.
El segundo método se basa en que los paquetes ACK se utilizan en OpenVPN únicamente en la fase de negociación de la conexión y, al mismo tiempo, tienen un tamaño específico. La identificación se basa en que los paquetes ACK de un tamaño dado solo aparecen en ciertas partes de la sesión (por ejemplo, al utilizar OpenVPN, el primer paquete ACK normalmente es el tercer paquete con datos transmitidos en la sesión).

El tercer método es un chequeo activo y se debe a que, en respuesta a una solicitud de reinicio de la conexión, el servidor OpenVPN envía un paquete RST específico (la verificación no funciona en el modo "tls-auth" ya que el servidor OpenVPN ignora las solicitudes de clientes no autenticados a través de TLS).

Fuente: opennet.ru
