viernes, 25 de marzo de 2016

Las implementaciones de VPN y sus peculiaridades

En uno de los posts anteriores hablamos sobre la definición de VPN (red privada virtual), su propósito y varios casos de uso. Hoy hablaremos de sus implementaciones más predominantes, sus ventajas y sus desventajas.
vpn-impementations-featured
Por definición, VPN es un concepto versátil y es difícil de entender si una implementación es de VPN o no. Hasta cierto punto, el predecesor de Internet, ARPANET, podría ser considerado VPN. Curiosamente, casi todos los conceptos de red y, evidentemente, los protocolos, empezaron como tecnologías corporativas y solo a partir de entonces se convirtieron en comodidades para el promedio de usuarios.
Hoy en día ni la historia ni la infraestructura corporativa nos parecen temas de interés. En este post analizaremos las implementaciones de VPN comunes con las que un usuario sin conocimiento técnico se puede enfrentar.
Primero hablaremos de esas implementaciones que ayudan a proteger a los usuarios cuando se conectan a redes Wi-Fi públicas, o a evitar ciertas restricciones de IP impuestas por un proveedor de servicio. Por regla, los servicios VPN de los consumidores controlan las capacidades del sistema operativo popular y proveen instrucciones detalladas necesarias para establecer una conexión segura.
Últimamente, VPN ha dado un gran paso en términos de simplificación del proceso: un usuario común no tiene que pasar por todas esas tonterías técnicas, y solo necesita seguir las instrucciones primitivas como “paga aquí, descarga la app aquí, presiona aquí y disfruta”. Pero en algunos casos tendría sentido al menos saber cómo difieren las implementaciones una de otra.
Los ajustes de VPN en Android (izquierda) y Windows (derecha)
Implementaciones de VPN populares
El PPTP (en español, protocolo de túnel punto a punto), fue desarrollado hace 20 años, lo cual es, tanto su ventaja, como su mayor desventaja. El beneficio más importante es su compatibilidad con casi todos los sistemas operativos, incluso los heredados, lo que hace al protocolo altamente universal y disponible. Además, si lo comparamos con las nuevas soluciones, este no es tan demandante para la potencia de la computadora.
Pero su mayor desventaja se explica por su propia edad: para las realidades de seguridad actuales, ofrece un nivel de seguridad considerablemente bajo. Sus métodos de cifrado estaban muy bien a mediados de los 90s, pero actualmente no son lo suficientemente seguros, problema que se amplifica por una arquitectura defectuosa y ciertos puntos débiles en la implementación más popular de Microsoft.
Además, respecto al PPTP, no ofrece el cifrado por defecto, y a un adversario le tomaría menos de24 horas hackear la contraseña con la producción de hardware que hay disponible hoy en día. Sin embargo, en situaciones en las que no se requiere una conexión muy segura o cuando otras conexiones VPN no están disponibles, es mejor utilizar el PPTP con cifrado débil en vez de continuar completamente desprotegido.
Una vez me encontré en una situación algo confusa: estaba viajando a un país con ciertas regulaciones en Internet (¿sabes a qué me refiero?). Utilicé nuestro servidor PPTP corporativo localizado en mi casa para enviar correos electrónicos, y mis correos llegaban con un retraso de entre dos días hasta dos semanas. Solo me pregunto dónde habrán estado todo ese tiempo. Al mismo tiempo, el uso de una conexión VPN alternativa y más segura estaba restringida. Esta historia demuestra que el PPTP no es lo suficientemente fuerte para protegerte de gente poderosa como el gobierno o autoridades.
El protocolo L2TP (protocolo de túnel de capa 2) es algo similar al PPTP. Estos dos estándares fueron desarrollados y certificados prácticamente al mismo tiempo, aunque el L2TP es considerado más eficiente para redes virtuales, al mismo tiempo demanda una mayor potencia de la computadora. Suele ser el preferido por ISPs y usuarios de empresas. Por cierto, el L2TP no provee un cifrado por defecto y está ligado a otros protocolos (suele estarlo con IPSec).
IPSec (Seguridad del protocolo de Internet) es una colección de protocolos, estándares y recomendaciones. Este paquete está hecho para varios tipos de conexiones seguras. Las primeras elaboraciones de IPSec se llevaron a cabo a principios de los 90s, pero la base de su concepto es la mejora constante y la actualización de acuerdo a los desarrollos de la tecnología, por lo que no es una especificación estática.
Es obvio el tipo de entidades para las que fue desarrollado. IPSec incluyó una docena de estándares (cada una de ellas con más de una implementación), que podían ser utilizadas para facilitar las conexiones de seguridad en todos los niveles. Es cierto que es muy bueno en términos de arquitectura, fiabilidad de sus algoritmos de cifrado, y capacidades.
Con el debido respeto, IPSec también tiene sus desventajas. En primer lugar, la configuración no es fácil para un usuario medio, y si se configura incorrectamente, su seguridad puede verse comprometida. También como hemos dicho anteriormente, es utilizado en un paquete con muchos otros protocolos.
En segundo lugar, es demandante de la potencia de la computadora. Esta desventaja es parcialmente compensada por el uso de la aceleración del hardware de los algoritmos de cifrado AES (que suelen ser ofrecidos en las implementaciones actuales de IPSec, junto con otros algoritmos). Esta función de aceleración de hardware AES es lanzada en procesadores actuales para dispositivos móviles y computadoras, como también para routers de Wi-FI, etc.
Desafortunadamente, las tecnologías creadas por expertos (principalmente por matemáticos), son materializadas en la vida real por mentes prácticas que suelen tener poco conocimiento y entendimiento sobre la ciencia. Una investigación publicada en octubre de 2015, manifestó que un 66% de las conexiones IPSec son hackeables con el mínimo esfuerzo, y la NSA (Agencia de seguridad nacional) suele poseer recursos de hardware adecuados para comprometer el cifrado.
Aquí el problema es el uso incorrecto de protocolos que son utilizados para iniciar una conexión segura. Este problema es aplicable no solo para IPSec, sino para TLS (que discutiremos más adelante) y SSH, al igual que TOR y OTR. En pocas palabras, hay una probabilidad de compromiso para la conexión VPN y otros tipos de conexión segura para ciertas páginas web, servidores de correo electrónico, servicios de mensajería y otros parecidos.
Pero claro, se requiere muchísimo tiempo e importantes recursos informáticos para llevar a cabo el ataque, pero en este caso los investigadores utilizaron las tecnologías de la nube de Amazon y, evidentemente, gastaron una gran cantidad de dinero, técnicamente disponible para un actor privado.
Con estos recursos a la mano, el tiempo de preparación para un ataque puede ser de un minuto en el mejor de los casos o hasta de un mes en el peor de los casos. Al mismo tiempo, algunos expertos estaban escépticos sobre esta prueba de concepto: como ellos dicen, en la vida real el número de sistemas vulnerables es mucho más bajo. En fin, ciertos aspectos de la investigación deberían tomarse en serio, mientras tanto los desarrolladores de software potencialmente vulnerables se están preparando, o ya tienen desarrollados los parches y han alertado a sus usuarios.
Las VPNs SSL (capa de conexión segura) y la TLS (seguridad de la capa de transporte), tal como lo sugieren sus nombres, pertenecen a la clase de soluciones basadas en los protocolos SSL y TLS, que en ocasiones son complementadas por otros medios de protección. Todos se habrán encontrado con SSL/TLS al navegar por Internet; por ejemplo, esta página web también las utiliza: el prefijo de “https” y la cabecera de bloqueo verde confirma que la página web utiliza estos protocolos para conexión segura.
Las primeras implementaciones del protocolo se llevaron a cabo a principios del siglo pasado, aunque la tecnología no ganó terreno hasta el año 2000. La proliferación de protocolos permitió su estudio a fondo y se encontraron un número de vulnerabilidades, ambos en la propia arquitectura y en las diferentes implementaciones. SSL 3.0 fue eliminado en junio de 2015; la versión más actualizada es TLS 1.2, y aunque no sea totalmente segura, depende bastante de la configuración (ver IPSec). Además, ambos protocolos están fuertemente afectados por la necesidad de ofrecer una compatibilidad con versiones anteriores.
Lo que definitivamente puede ser considerada como una ventaja de este tipo de VPN es la prevalencia de SSL/TLS en Internet, lo que significa que la mayoría de redes públicas la dejan pasar libremente. En cuando a desventajas, estas VPNs tienen un bajo rendimiento, son difíciles de configurar y requieren un software adicional.
Dentro de las implementaciones más populares de VPN SSL/TLS están, OpenVPN (SSL 3.0 / TLS 1.2) y Microsoft SSTP (SSL 3.0). De hecho, SSTP está integrado en Windows. OpenVPN, dada su naturaleza abierta, cuenta con muchas implementaciones para la mayoría de plataformas y es considerada como la implementación de VPN de más confianza hoy día.
Conclusión
Hemos repasado las implementaciones VPN más populares conocidas hasta la fecha. Sin embargo, durante la evolución de esta tecnología a lo largo de los años, se han encontrado un número elevado de réplicas. ¡Piensa en todas las soluciones desarrolladas para las empresas y sectores de comunicación!
Para la media de usuarios, recomiendo que os quedéis con OpenVPN debido a su naturaleza abierta. Sin embargo, esta y otras implementaciones de VPN tienen un número de peculiaridades técnicas y legales complicadas de las que hablaré en el próximo post de esta serie.