Noticias

Eludir la inspección profunda de paquetes: tunelizar el tráfico de datos a través de TLS VPN

En algunos países, los operadores utilizan técnicas de inspección profunda de paquetes para cercar ciertos tipos de tráfico. Por ejemplo, el tráfico en una red privada potencial (VPN) se puede analizar y cercar para evitar que los usuarios envíen paquetes cifrados a través de dichas redes.

Al observar que HTTPS funciona en todo el mundo (configurado para una cantidad extremadamente prócer de servidores web) y no se puede analizar fácilmente (la carga útil generalmente está encriptada), argumentamos que el túnel VPN se puede organizar de la misma guisa: enmascarando el tráfico VPN con TLS. o su traducción precedente, SSL, podemos construir una red confiable y segura. Los paquetes enviados a través de dichos túneles pueden atravesar varios dominios que tienen políticas de seguridad diferentes (estrictas y menos estrictas). Aunque SSH se puede usar potencialmente para configurar una red de este tipo, tenemos indicios de que en ciertos países las conexiones a través de dichos túneles se analizan estadísticamente: si la carga de la red a través de dichos túneles es inscripción, hay ráfagas o conexiones duraderas, entonces subyacentes Los operadores de red restablecen las conexiones TCP.

Por lo tanto, estamos llevando a término un intento real en esta dirección aquí: Primero, describiremos varias soluciones de VPN que están disponibles en Internet; y en segundo oficio, describimos nuestros esfuerzos experimentales con software basado en Python y Linux que permiten a los usuarios crear túneles VPN utilizando el protocolo TLS y canalizar el tráfico de Small Office / Home Office (SOHO) a través de dichos túneles.

I. INTRODUCCIÓN

Las redes privadas virtuales (VPN) son vitales en los tiempos modernos. Al encapsular y mandar el tráfico del cliente en túneles protegidos, es posible que los usuarios obtengan servicios de red que de otro modo serían bloqueados por un cámara de red. Las soluciones VPN igualmente son efectos al penetrar a la red de intranet de una empresa. Por ejemplo, los empleados de la empresa pueden penetrar de forma segura a la red interna estableciendo una conexión VPN y dirigiendo todo el tráfico a través del túnel con destino a la red de la empresa. De esta guisa, pueden percibir servicios que de otro modo no estarían disponibles en el mundo extranjero.

II. ANTECEDENTES

Hay varias soluciones diferentes que se pueden utilizar para crear VPN. Un ejemplo son los protocolos de identidad de host (HIP) [7]. HIP es una posibilidad de Capa 3.5 (en sinceridad se encuentra entre las capas de transporte y de red) y se desarrolló originalmente para dividir la función dual de las direcciones IP: identificador y localizador. Por ejemplo, una empresa indicación Tempered Networks utiliza el protocolo HIP para crear redes seguras (para ver ejemplos, consulte [4]).

LEER  Parece que la estación de trabajo Fedora 34 se enviará con el escritorio GNOME 40 de forma predeterminada

Otra posibilidad es el protocolo Secure Shell (o SSH). SSH es un protocolo de capa de aplicación que proporciona un canal secreto para redes inseguras. SSH se diseñó originalmente para permitir una semirrecta de comandos remota segura, el inicio de sesión y la ejecución de comandos [5]. De hecho, cualquier servicio de red puede defenderse con SSH. Adicionalmente, SSH ofrece la posibilidad de establecer túneles VPN entre las redes separadas espacialmente. Desafortunadamente, la conexión SSH se puede analizar y cercar (si está tan extendida como el protocolo TLS, por ejemplo, podría hallarse diferente).

Como SSH, OpenVPN [6] se ejecuta en el protocolo TCP (de hecho, OpenVPN igualmente puede funcionar en el protocolo de transporte UDP). Tenemos evidencia de que los gobiernos han bloqueado con éxito OpenVPN en ciertos países. Obviamente, es más difícil detectar estos protocolos porque el tráfico está encapsulado en conexiones TCP / UDP. Aquí, se requieren soluciones de inspección profunda de paquetes para cercar de guisa efectiva dichos túneles.

Otro protocolo de capa 3 ampliamente utilizado para la creación de VPN es el protocolo IPSec. [2]. IPSec SA se puede establecer mediante claves preinstaladas o mediante protocolos de intercambio de claves de Internet (IKE e IKEv2) [1]. Regalado que IPsec se ejecuta directamente en el protocolo IP, se puede cachear fácilmente sin el uso de sofisticadas soluciones de inspección de paquetes.

III. HARDWARE, SOFTWARE Y ARQUITECTURA

En la Figura 1 mostramos la olfato genérico de la casa. Tenga en cuenta que estamos asumiendo que el cuadro de cliente SOHO VPN es un cuadro de Linux separado, no está en la ruta y está en la intranet.

Para implementar el cliente y servidor VPN usamos el situación Python y la distribución Ubuntu Linux. La implementación consta de aproximadamente 1.2K líneas de código (LOC) y todas las funciones se implementan en el espacio de adjudicatario. Publicamos la implementación en nuestro repositorio de Git. [3] para que todos puedan usarlo arbitrario.

Sin bloqueo, durante los experimentos consideramos la posterior configuración. Hemos seleccionado una microinstancia de DigitalOcean como hardware. La instancia tenía una CPU de un solo núcleo, 25 GB de almacenamiento de datos y 1 GB de RAM y estaba ubicada en Nueva York, EE. UU. El cliente VPN estaba situado en Tashkent, Uzbekistán, y se estaba ejecutando en un microcontrolador Raspberry PI. Así es como imitamos el enrutador SOHO. Igualmente usamos wget Útil para determinar el rendimiento y hemos utilizado ping Utilidad para determinar los tiempos de ida y envés.

IV. EVALUACIÓN EXPERIMENTAL

Hemos realizado varios experimentos en el curso de nuestro trabajo. El primer test implicó hacer ping al servidor DNS de Google y observar las diferencias en los tiempos de ida y envés (básicamente obtuvimos los tiempos de ida y envés entre el momento en que estaba el túnel y el entorno en el que estaba presente el túnel, en comparación con el que no existe).

A continuación, nos sentamos a determinar el rendimiento entre las máquinas locales y remotas. Básicamente, tomamos 50 mediciones para una configuración en la que el tráfico estaba en el interior del túnel y la misma cantidad de mediciones para la configuración en la que el tráfico era común (es aseverar, sin acelerar y no encapsulado en paquetes TLS). Para determinar el rendimiento utilizamos wget Útil para descargar el archivo del kernel de Linux1 (1,3 MB) de Internet.

En la Figura 2 mostramos la distribución de los tiempos de ida y envés (RTT). El RTT medio para una conexión VPN fue 293,7 ms y el RTT medio para ICMP puro fue 103,3 ms.

Distribución de RTT

En la Figura 3 mostramos la distribución del rendimiento obtenido tanto para túneles protegidos con TLS como para conexiones TCP regulares. El rendimiento medio de la conexión VPN fue de 608,7 Kbit / s, y el rendimiento medio de la conexión TCP pura fue de 1890,4 Kbit / s. Dados estos resultados, creemos que el cuello de botella en este caso es nuestra implementación. Sin bloqueo, creemos que nuestra implementación del túnel VPN es lo suficientemente buena para la mayoría de los entornos de oficinas pequeñas.

Distribución de rendimientos

V. POSIBLE RENOVACIÓN

A pesar de que el túnel funcionó sin detener durante varias horas e implementamos la capa de autenticación, todavía vimos múltiples intentos de conexión, aunque fallidos, del mundo extranjero. En el futuro, planeamos ocultar el servidor VPN detrás del servidor web para que solo los usuarios que conocen un cierto secreto puedan penetrar al servidor VPN. La idea es simple: cuando el adjudicatario pira enviando solicitudes HTTP GET a un sitio secreto, el servidor web abre un puerto y redirige el tráfico del cliente al servidor VPN. Tan pronto como se establece la conexión, el servidor cierra el puerto.

VI. CONCLUSIONES

En este breve noticia, intentamos describir cómo los operadores de red pueden cercar las soluciones VPN. Argumentamos que el tráfico de VPN aún se puede ocultar a los observadores enmascarando los túneles utilizando el protocolo TLS. Nuestros experimentos sugieren que este enfoque es útil cuando se necesita un canal seguro, pero los operadores de red están ansiosos por cercar el tráfico de VPN.

Si perfectamente es difícil hacer negocios con esta posibilidad (a grande plazo, los operadores pueden simplemente cercar todas las direcciones IP que pertenecen a los servidores VPN alojados por una empresa), sin bloqueo, argumentamos que las personas están usando este software y pueden implementarlo en su propia cúmulo. máquinas (pueden perdurar en secreto las direcciones IP de los servidores). De esta forma, los operadores de red tienen pocas posibilidades de determinar las direcciones IP de los servidores: (i) el tráfico se parece al tráfico HTTPS común (al final se utiliza el túnel SSL con puertos HTTPS normalizado); (ii) Es una tarea conveniente compleja para los operadores de red averiguar en todas las direcciones IP y encontrar las que se utilizan para mandar tráfico VPN.

Hemos puesto el software a disposición para su descarga en una página de GitHub. Esperamos que este plan pueda hacer que Internet sea más espléndido en ciertos países.

REFERENCIAS

[1] Intercambio de claves de internet. https://en.wikipedia.org/wiki/Internet_Key_Exchange

[2] IPSec. https://en.wikipedia.org/wiki/IPsec

[3] Cliente y servidor SOHO VPN. https://github.com/dmitriykuptsov/soho-vpn-over-tls/

[4] Las redes templadas simplifican la microsegmentación y la conectividad de red segura. https://www.networkworld.com/article/3405853/tempered-networks-simplified-secure-network-connectivity-and-microsegmentation.html

[5] DJ Barrett, RE Silverman y RG Byrnes. SSH, Safe Shell: la timonel definitiva. O’Reilly Media, Inc., 2005

[6] M. Feilner. OpenVPN: cree e integre redes privadas virtuales: aprenda a crear VPN seguras utilizando esta poderosa aplicación de código campechano. Packt Publishing, 2006.

[7] A. Gurtov. Protocolo de identidad de host (HIP): en camino con destino a una Internet móvil segura. Serie Wiley sobre redes de comunicaciones y sistemas distribuidos. Wiley, 2008.

1https://mirrors.edge.kernel.org/pub/linux/kernel/v1.0/linux-1.0.tar.gz

LEER  Arm anuncia los primeros núcleos Armv9, incluida la central eléctrica Cortex-X2

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba