Una Red Privada Virtual (VPN) encripta todos los datos a medida que viajan entre su computadora y un servidor VPN. En esta Guía Completa de cifrado VPN, analizamos en detalle qué es el cifrado y cómo se usa en las conexiones VPN.
Quizás lo más importante, explicaremos la variedad de términos de cifrado utilizados por los servicios VPN. Esperamos que, después de leer esta guía, tenga una mayor comprensión de este tema complejo y que pueda evaluar mejor las afirmaciones de seguridad realizadas por los proveedores de VPN.
- Preliminares
- ¿Qué Es el Cifrado?
- Lo básico
- Longitud de la clave de cifrado
- Cifrados de computadora
- Longitud de clave de cifrado
- Secreto directo perfecto
- Protocolos de cifrado VPN
- PPTP
- PROS
- CONTRAS
- ¿Qué es PPTP?
- L2TP / IPsec
- PROS
- Los CONTRAS
- ¿Qué es L2TP e IPsec?
- SSTP
- PROS
- CONTRAS
- ¿Qué es SSTP?
- IKEv2
- PROS
- CONS
- ¿Qué es IKEv2?
- OpenVPN
- PROS
- ¿Qué es OpenVPN?
- Cifrado OpenVPN
- Cifrados
- Blowfish
- AES
- Camellia
- Cifrado de apretón de manos
- RSA
- Diffie-Hellman y ECDH
- Autenticación Hash SHA
- ¿Es seguro SHA?
- Notas
- NIST
- AES-CBC vs AES-GCM
- OpenVPN UDP vs. OpenVPN TCP
- Derrota la censura con OpenVPN en el puerto TCP 443
- Resúmenes
- Protocolos VPN
- Cifrado OpenVPN
- Conclusión
Preliminares
Si no está seguro de qué es una VPN y qué puede hacer por usted, consulte nuestra Guía de VPN para principiantes.
Nuestro objetivo es presentar las características clave del cifrado VPN en términos tan simples como sea posible. Aunque no hay escapatoria, del hecho de que el cifrado es un tema complejo.
Si incluso el término cifrado hace que sus ojos empiecen a desvanecerse, pero aún desea saber qué buscar en un buen servicio VPN, puede saltar directamente a los resúmenes utilizando la Tabla de Contenido.
¿Qué Es el Cifrado?
«Comenzar por el principio,» dijo el Rey, muy gravemente, «y seguir adelante hasta llegar a la final: luego se detendrá.»
Lewis Carroll, Alicia en el país de las maravillas
La analogía más simple es que el cifrado es un bloqueo. Si tiene la llave correcta, la cerradura es fácil de abrir. Si alguien no tiene la llave correcta, pero quiere acceder al contenido de una caja fuerte (es decir, sus datos) protegida por ese candado, puede intentar romper el candado.
De la misma manera que la cerradura que asegura la bóveda de un banco es más fuerte que la que asegura una maleta, un cifrado es más fuerte que otro cifrado.
Si desea una VPN con el cifrado más sólido, consulte nuestra lista de VPN más seguras para obtener más información.
Lo básico
Cuando eras niño, ¿alguna vez jugaste el juego en el que creaste un «mensaje secreto» sustituyendo una letra del mensaje por otra? La sustitución se hizo de acuerdo con una fórmula elegida por usted.
Usted podría, por ejemplo, haber sustituido cada letra del mensaje original con una de tres letras detrás de ella en el alfabeto. Si alguien más supiera lo que es esta fórmula, o fuera capaz de resolverla, entonces sería capaz de leer su «mensaje secreto».»
En la jerga criptográfica, lo que estabas haciendo era «cifrar» el mensaje (datos) de acuerdo con un algoritmo matemático muy simple. Los criptógrafos se refieren a esta fórmula como un «cifrado».»Para descifrarlo, necesitas la clave. Este es un parámetro variable que determina la salida final del cifrado. Sin este parámetro, es imposible descifrar el cifrado.
Si alguien quiere leer un mensaje cifrado pero no tiene la clave, debe intentar «descifrar» el cifrado. Cuando el cifrado utiliza un cifrado de sustitución de letras simple, es fácil descifrarlo. Sin embargo, el cifrado se puede hacer más seguro haciendo que el algoritmo matemático (el cifrado) sea más complejo.
Puede, por ejemplo, sustituir cada tercera letra del mensaje por un número correspondiente a la letra.
Longitud de la clave de cifrado
Los cifrados de computadora modernos son algoritmos muy complejos. Incluso con la ayuda de supercomputadoras, estas son muy difíciles de descifrar, si no imposibles para todos los propósitos prácticos. La forma más cruda de medir la fuerza de un cifrado es por la complejidad del algoritmo utilizado para crearlo.
Cuanto más complejo es el algoritmo, más difícil es descifrar el cifrado usando lo que llamamos un ataque de fuerza bruta.
Un ataque de fuerza bruta si una forma de ataque muy primitiva es (también conocida como búsqueda exhaustiva de claves), básicamente implica probar todas las combinaciones de números posibles hasta que se encuentre la clave correcta.
Los ordenadores realizan todos los cálculos utilizando números binarios: ceros y unos. La complejidad de un cifrado depende de su tamaño de clave en bits, el número bruto de unos y ceros necesarios para expresar su algoritmo, donde cada cero o uno está representado por un solo bit.
Esto se conoce como la longitud de clave y también representa la viabilidad práctica de realizar con éxito un ataque de fuerza bruta en cualquier cifrado dado.
El número de combinaciones posibles (y por lo tanto la dificultad para forzarlas brutalmente) aumenta exponencialmente con el tamaño de la clave. Usando el cifrado AES (ver más adelante):
Para poner esto en perspectiva:
- En 2011, el superordenador más rápido del mundo era el Fujitsu K. Este era capaz de alcanzar una velocidad máxima Rmax de 10,51 petaflops. Basándose en esta cifra, a Fujitsu K le tomaría 1,02 x 10^18 – alrededor de mil millones de millones (un quintillón) – años descifrar una clave AES (Estándar de Cifrado Avanzado) de 128 bits por la fuerza. Esto es más antiguo que la edad del universo (13,75 mil millones de años).
- El superordenador más potente del mundo ahora (2017) es el Sunway TaihuLight en China. Esta bestia es capaz de alcanzar una velocidad máxima de 93,02 petaflops. Esto significa que la computadora más poderosa del mundo aún tardaría unos 885 cuatrillones de años en forzar brutalmente una clave AES de 128 bits.
- El número de operaciones necesarias para forzar brutalmente un cifrado de 256 bits es de 3,31 x 10^56. Esto es aproximadamente igual al número de átomos en el universo!
Cifrados de computadora
Mientras que la longitud de la clave de cifrado se refiere a la cantidad de números brutos involucrados, los cifrados son las matemáticas, las fórmulas o algoritmos reales, utilizados para realizar el cifrado. Como acabamos de ver, los cifrados de computadora modernos de fuerza bruta son tremendamente poco prácticos.
Son las debilidades (a veces deliberadas) en estos algoritmos de cifrado las que pueden llevar a que se rompa el cifrado. Esto se debe a que la salida del cifrado (mal diseñado) aún puede revelar alguna estructura de la información original antes del cifrado. Esto crea un conjunto reducido de combinaciones posibles para probar, lo que en efecto reduce la longitud de clave efectiva.
El cifrado Blowfish, por ejemplo, es vulnerable a un ataque que explota las matemáticas detrás del problema del cumpleaños en la teoría de la probabilidad. El estudio de las debilidades en los algoritmos criptográficos se conoce como criptoanálisis.
Las longitudes de clave más largas compensan tales debilidades, ya que aumentan en gran medida el número de posibles resultados.
En lugar de atacar el propio cifrado, un adversario puede atacar la clave en sí. Esto puede afectar a un sitio en particular o a cierto producto de software. Pero la seguridad del algoritmo de cifrado sigue intacta, y otros sistemas que utilizan el mismo algoritmo pero tienen una generación segura de claves no se ven afectados por la interrupción.
Longitud de clave de cifrado
La fuerza de un cifrado depende tanto de las matemáticas del propio cifrado, como de su longitud de clave expresada en bits. Por esta razón, los cifrados generalmente se describen junto con la longitud de clave utilizada.
Por lo tanto, AES-256 (el cifrado AES con una longitud de clave de 256 bits) generalmente se considera más fuerte que AES-128. Tenga en cuenta que digo generalmente porque estamos tratando con matemáticas muy complejas aquí (vea mis notas sobre AES más adelante).
Es importante tener en cuenta que la longitud de la clave por sí sola no es un buen indicador de la fuerza de un cifrado. Es la combinación de longitud de clave y cifrado lo que importa. Los cifrados utilizados para el cifrado asimétrico, por ejemplo, utilizan tamaños de clave mucho más largos que los utilizados para el cifrado simétrico para proporcionar la protección equivalente.
Esta tabla está un poco desactualizada, ya que no tiene en cuenta los ataques más nuevos que se han descubierto en RSA. También vale la pena señalar que las variantes de curva elíptica y Diffie-Hellman de RSA son mucho más fuertes que las tradicionales. Pero con suerte, entenderás la idea.
Una cosa a tener en cuenta es que cuanto mayor sea la longitud de la clave, más cálculo implica, por lo que se necesita más potencia de procesamiento. Esto afecta a la velocidad a la que se pueden cifrar y descifrar los datos. Por lo tanto, los proveedores de VPN y similares deben decidir la mejor manera de equilibrar la seguridad frente a la usabilidad práctica al elegir esquemas de cifrado. Hay algunos proveedores de VPN que han logrado alcanzar bien este delicado equilibrio. Para obtener más información, consulte nuestra guía de VPN rápidas.
Discutimos los cifrados principales utilizados por varios protocolos VPN un poco más tarde, pero los cifrados más comunes que probablemente encontrará son Blowfish y AES. Además de esto, RSA se usa para cifrar y descifrar las claves de un cifrado, y SHA-1 o SHA-2 se usa como función hash para autenticar datos.
Cifrado asimétrico
Secreto directo perfecto
El Secreto directo perfecto (PFS) también se conoce como el uso de claves de cifrado efímeras, o simplemente Secreto directo (FS) por aquellos que se sienten incómodos con el uso de la palabra «perfecto».»
La comunicación en línea segura más moderna se basa en SSL / TLS. Es utilizado por sitios web HTTPS y el protocolo OpenVPN. TLS (Transport Layer Security) es un protocolo de cifrado asimétrico. El uso de un cifrado asimétrico significa que los datos están protegidos mediante una clave pública, que está disponible para todos. Sin embargo, solo puede ser descifrado por un destinatario que tenga la clave privada correcta.
Esta clave privada debe mantenerse en secreto. Si es robado o agrietado por un adversario, entonces ese adversario puede interceptar y leer fácilmente cualquier comunicación asegurada por él.
Desafortunadamente, es común que los servidores o incluso empresas enteras utilicen una sola clave de cifrado privada para proteger todas las comunicaciones. ¿Por qué? Porque es fácil. Sin embargo, si esa clave está comprometida, un atacante puede acceder a todas las comunicaciones cifradas con ella.
Esta clave de cifrado privada, por lo tanto, se convierte en una «clave maestra» que se puede usar para desbloquear todas las comunicaciones con un servidor o empresa. Se sabe que la NSA ha explotado esta debilidad para recopilar vastas cantidades de datos supuestamente seguros.
La solución es Perfecta Confidencialidad Directa. Este es un sistema mediante el cual se genera una clave de cifrado privada nueva y única para cada sesión. Es una idea simple, incluso si las matemáticas de intercambio Diffie-Hellman son complejas. Significa que cada sesión TLS tiene su propio conjunto de claves. De ahí el término «llaves efímeras»: se usan una vez y luego desaparecen.
No hay, por lo tanto, ninguna «llave maestra» que pueda ser explotada. Incluso si una sesión está comprometida, es solo esa sesión la que está comprometida, ¡no todas las demás sesiones que alguien tiene con ese servidor o compañía!
Aunque es poco común, incluso es posible actualizar las claves PFS dentro de una sesión (por ejemplo, cada hora). Esto limita aún más la cantidad de datos que pueden ser interceptados por un adversario, incluso si una clave privada está comprometida.
Cuando escribí este artículo sobre el tema hace unos años, el uso del Secreto Directo Perfecto para sitios web HTTPS y conexiones OpenVPN era lamentablemente raro. Afortunadamente, esta situación ha cambiado un poco. Aunque de ninguna manera universal, el uso de llaves efímeras ha aumentado mucho últimamente.
Protocolos de cifrado VPN
Un protocolo VPN es el conjunto de instrucciones (mecanismo) que se utiliza para negociar una conexión cifrada segura entre dos equipos. Varios de estos protocolos VPN son comúnmente compatibles con servicios VPN comerciales. Los más notables de estos son PPTP, L2TP/IPsec, OpenVPN, SSTP e IKEv2.
Miro cada uno de estos a continuación, pero OpenVPN es ahora el protocolo VPN estándar de la industria utilizado por los servicios VPN comerciales, por una buena razón. Es muy seguro y se puede usar en casi todos los dispositivos compatibles con VPN. Por lo tanto, pasaré tinta digital adicional discutiendo OpenVPN en detalle.
PPTP
PROS
- Cliente construido en casi todas las plataformas
- Muy fácil de configurar
CONTRAS
- Muy inseguro
- Definitivamente comprometida por la NSA
- Fácilmente bloqueado
¿Qué es PPTP?
Es solo un protocolo VPN y se basa en varios métodos de autenticación para proporcionar seguridad. Entre los proveedores de VPN comerciales, esto es casi invariablemente MS-CHAP v2. El protocolo de cifrado (similar a un cifrado estándar) utilizado por PPTP es Microsoft Point-to-Point Encryption (MPPE).
El Protocolo de túnel punto a punto (PPTP) fue desarrollado por un consorcio fundado por Microsoft para crear VPN a través de redes de acceso telefónico. Como tal, PPTP ha sido durante mucho tiempo el protocolo estándar para las redes VPN corporativas.
PPTP está disponible de serie en casi todas las plataformas y dispositivos compatibles con VPN. Es fácil de configurar, sin necesidad de instalar software adicional. Esto garantiza que PPTP siga siendo una opción popular tanto para las VPN comerciales como para los servicios de VPN comerciales.
También tiene la ventaja de requerir una sobrecarga computacional baja para implementar, ¡por lo que es rápido!
Desafortunadamente, PPTP no es seguro. En absoluto. Aunque ahora por lo general solo se encuentra usando claves de cifrado de 128 bits, en los años desde que se incluyó por primera vez con Windows 95 OSR2 en 1999, una serie de vulnerabilidades de seguridad han salido a la luz.
El más grave de ellos es la posibilidad de autenticación MS-CHAP v2 sin encapsular. Usando este exploit, PPTP se ha descifrado en dos días. Microsoft ha corregido el error, pero ha emitido una recomendación para usar L2TP / IPsec o SSTP en su lugar.
No debería sorprender que la NSA casi con certeza descifre las comunicaciones cifradas PPTP como estándar. Aún más preocupante es que la NSA recopiló grandes cantidades de datos antiguos que se cifraron cuando PPTP se consideraba seguro. Es casi seguro que también puede descifrar estos datos heredados.
PPTP requiere el puerto TCP 1723 y el protocolo GRE. Es fácil cortafuegos GRE, lo que facilita el bloqueo de conexiones PPTP.
L2TP / IPsec
PROS
- Generalmente se considera seguro
- Fácil de configurar
- Disponible en todas las plataformas modernas
- Más rápido que OpenVPN (tal vez)
Los CONTRAS
- Pueden verse comprometidos por la NSA (no comprobada)
- Probablemente debilitados deliberadamente por la NSA (no comprobada)
- Pueden tener problemas con cortafuegos restrictivos
- A menudo implementados mal
¿Qué es L2TP e IPsec?
El protocolo de túnel de capa 2 (L2TP) está integrado en casi todos los sistemas operativos modernos y dispositivos compatibles con VPN. Por lo tanto, es tan fácil y rápido de configurar como PPTP.
Por sí solo, L2TP no proporciona cifrado ni confidencialidad al tráfico que pasa a través de él, por lo que generalmente se implementa con la suite de autenticación IPsec (L2TP/IPsec). Incluso si un proveedor solo se refiere a L2TP o IPsec (como algunos lo hacen), es casi seguro que en realidad significa L2TP/IPsec.
L2TP / IPsec puede utilizar los cifrados 3DES o AES. 3DES es vulnerable a los ataques de colisión Meet-in-the-middle y Sweet32, por lo que en la práctica es poco probable que lo encuentres en estos días.
Pueden surgir problemas porque el protocolo L2TP / IPsec utiliza solo un número limitado de puertos. Esto puede causar complicaciones cuando se usa detrás de cortafuegos NAT. Esta dependencia de puertos fijos también hace que el protocolo sea bastante fácil de bloquear.
L2TP / IPsec encapsula los datos dos veces, lo que ralentiza las cosas. Esto se ve compensado por el hecho de que el cifrado/descifrado se produce en el núcleo y L2TP/IPsec permite el subproceso múltiple. OpenVPN no. El resultado es que L2TP/IPsec es teóricamente más rápido que OpenVPN.
L2TP / IPsec que utiliza el cifrado AES no tiene vulnerabilidades conocidas importantes, y si se implementa correctamente, aún puede ser seguro. Sin embargo, las revelaciones de Edward Snowden han insinuado fuertemente que el estándar está siendo comprometido por la NSA.
John Gilmore es especialista en seguridad y miembro fundador de la Electronic Frontier Foundation. Explica que es probable que IPsec se debilitara deliberadamente durante su fase de diseño.
Un problema posiblemente mucho mayor es que muchos servicios VPN implementan L2TP / IPsec de manera deficiente. Específicamente, utilizan claves pre-compartidas (PSK) que se pueden descargar libremente desde sus sitios web.
Estos PSK solo se utilizan para autenticar la conexión, por lo que, incluso si se ven comprometidos, los datos permanecen cifrados de forma segura mediante AES. Sin embargo, un atacante podría usar la clave previamente compartida para hacerse pasar por un servidor VPN. A continuación, podría espiar el tráfico cifrado, o incluso inyectar datos maliciosos en la conexión.
Resumen
A pesar de algunos problemas en gran medida teóricos, L2TP / IPsec generalmente se considera seguro si no se utilizan claves pre-compartidas publicadas abiertamente. Su compatibilidad incorporada con una gran cantidad de dispositivos puede hacer que sea una muy buena opción.
SSTP
PROS
- Muy seguro
- Completamente integrado en Windows
- Soporte de Microsoft
- Puede omitir la mayoría de los firewalls
CONTRAS
- Estándar propietario propiedad de Microsoft
¿Qué es SSTP?
SSTP es un tipo de cifrado que utiliza SSL 3.0 y ofrece ventajas similares a OpenVPN. Esto incluye la capacidad de usar el puerto TCP 443 para evadir la censura. La estrecha integración con Windows puede hacer que sea más fácil de usar y más estable que OpenVPN en esa plataforma.
Sin embargo, a diferencia de OpenVPN, SSTP es un estándar propietario propiedad de Microsoft. Esto significa que el código no está abierto al escrutinio público. La historia de cooperación de Microsoft con la NSA, y la especulación sobre posibles puertas traseras incorporadas al sistema operativo Windows, no inspiran confianza en el estándar.
El protocolo de túnel de Sockets seguros (SSTP) fue introducido por Microsoft en Windows Vista SP1. Aunque ahora está disponible para VPN de Linux e incluso para Mac OS X, sigue siendo principalmente una plataforma solo para Windows.
Otro problema es que SSL v3. 0 es vulnerable a lo que se conoce como el ataque POODLE, y por lo tanto ahora no se recomienda. No está claro si este problema también afecta al SSTP, pero, de nuevo, apenas inspira confianza.
Resumen
En papel, SSTP ofrece muchas de las ventajas de OpenVPN. Sin embargo, ser un estándar propietario de Microsoft socava gravemente su credibilidad.
IKEv2
PROS
- Rápido
- Estable, especialmente al cambiar de red o volver a conectarse después de perder una conexión a Internet
- Seguro (si se utiliza AES)
- Fácil de configurar (al menos en el extremo del usuario!)
- El protocolo es compatible con dispositivos Blackberry
CONS
- No es compatible con muchas plataformas
- La implementación de IKEv2 en el extremo del servidor es complicada, lo que podría dar lugar a problemas para desarrollar
- Solo implementaciones de código abierto de confianza
¿Qué es IKEv2?
Intercambio de claves por Internet versión 2 (IKEv2) fue desarrollado conjuntamente por Microsoft y Cisco. Es compatible de forma nativa con dispositivos Windows 7+, Blackberry e iOS. Esta es la razón por la que muchos servicios VPN de iOS usan IKEv2 en lugar de OpenVPN.
Se han desarrollado versiones compatibles de IKEv2 desarrolladas independientemente para Linux y otros sistemas operativos. Muchas de estas iteraciones son de código abierto. Como siempre, sugiero tener cuidado con cualquier cosa desarrollada por Microsoft. Sin embargo, las versiones de código abierto de IKEv2 no deberían tener problemas.
IKEv2 forma parte del conjunto de protocolos IPsec. Garantiza que el tráfico sea seguro al entregar el atributo SA (Asociación de seguridad) dentro de IPsec y mejora IKEv1 de muchas maneras. Por lo tanto, IKEv2 se conoce a veces como IKEv2/IPsec. IKEv1, por otro lado, a menudo se conoce simplemente como IPsec.
Apodado VPN Connect por Microsoft, IKEv2 es particularmente bueno para restablecer automáticamente una conexión VPN cuando los usuarios pierden temporalmente sus conexiones a Internet. Por ejemplo, al entrar o salir de un túnel de tren.
Debido a su compatibilidad con el protocolo de Movilidad y Multihoming (MOBIKE), IKEv2 también es altamente resistente a las redes cambiantes. Esto hace que IKEv2 sea una gran opción para los usuarios de teléfonos celulares que cambian regularmente entre WiFi doméstico y conexiones móviles, o que se mueven regularmente entre puntos de acceso.
IKEv2 no es tan común como L2TP/IPsec, ya que es compatible con muchas menos plataformas (aunque esta situación está cambiando rápidamente). Sin embargo, se considera al menos tan bueno como, si no superior, L2TP/IPsec en términos de seguridad, rendimiento (velocidad), estabilidad y la capacidad de establecer (y restablecer) una conexión.
OpenVPN
PROS
- Muy seguro (si se utiliza PFS)
- Altamente configurable
- De código abierto
- Puede omitir firewalls
- Necesita software de terceros
¿Qué es OpenVPN?
OpenVPN es una tecnología de código abierto que utiliza la biblioteca OpenSSL y los protocolos TLS, junto con una amalgama de otras tecnologías, para proporcionar una solución VPN sólida y confiable. Ahora es el protocolo VPN estándar de la industria utilizado por los servicios VPN comerciales, por una buena razón.
Una de las principales fortalezas de OpenVPN es que es altamente configurable. No es compatible de forma nativa con ninguna plataforma, pero está disponible en la mayoría de las plataformas a través de software de terceros. Los clientes y aplicaciones OpenVPN personalizados a menudo están disponibles en proveedores de VPN individuales, pero el código fuente abierto principal es desarrollado por el proyecto OpenVPN.
Muchos desarrolladores y colaboradores del proyecto OpenVPN también trabajan para OpenVPN Technologies Inc., que supervisa el proyecto.
OpenVPN se ejecuta mejor en un puerto UDP, pero se puede configurar para que se ejecute en cualquier puerto (consulte las notas más adelante). Esto incluye el puerto TCP 443, que es utilizado por el tráfico HTTPS regular. Al ejecutar OpenVPN a través del puerto TCP 443, es difícil distinguir las conexiones VPN del tipo de conexiones seguras utilizadas por los bancos, los servicios de correo electrónico y los minoristas en línea. Esto hace que OpenVPN sea muy difícil de bloquear.
Otra ventaja de OpenVPN es que la biblioteca OpenSSL utilizada para proporcionar cifrado admite varios cifrados. En la práctica, sin embargo, solo Blowfish y AES son comúnmente utilizados por los servicios VPN comerciales. Discuto estos a continuación.
A la luz de la información obtenida de Edward Snowden, parece que mientras se utilice el Secreto Directo Perfecto, OpenVPN no se verá comprometida ni debilitada por la NSA.
Se ha completado una auditoría de OpenVPN con colaboración colectiva reciente, al igual que otra financiada por Private Internet Access. No se descubrieron vulnerabilidades graves que afecten la privacidad de los usuarios. Se descubrieron un par de vulnerabilidades que hicieron que los servidores OpenVPN estuvieran potencialmente abiertos a un ataque de Denegación de Servicio (DoS), pero se han corregido en OpenVPN 2.4.2.
OpenVPN generalmente se considera el protocolo VPN más seguro disponible y es ampliamente compatible en toda la industria de VPN. Por lo tanto, analizaré el cifrado OpenVPN en detalle a continuación.
Cifrado OpenVPN
El cifrado OpenVPN consta de dos partes: cifrado de canal de datos y cifrado de canal de control. El cifrado de canales de datos se utiliza para proteger sus datos. El cifrado de canales de control asegura la conexión entre su computadora y el servidor VPN.
Cualquier defensa es tan fuerte como su punto más débil, por lo que es desafortunado que algunos proveedores de VPN usen un cifrado mucho más fuerte en un canal que en el otro (generalmente más fuerte en el canal de control).
No es raro, por ejemplo, ver un servicio VPN anunciado como que usa un cifrado AES-256 con cifrado de apretón de manos RSA-4096 y autenticación hash SHA-512. Esto suena muy impresionante hasta que te das cuenta de que solo se refiere al cifrado del canal de control y no al canal de datos, que está cifrado con meros Blowfish-128 con autenticación hash SHA1. Esto se hace solo por razones de marketing.
Si se utiliza un cifrado diferente en los canales de datos y control, la verdadera fuerza de la conexión OpenVPN se mide por el conjunto de cifrado más débil utilizado.
Para la máxima seguridad, tanto el cifrado de datos como el de canales de control deben ser lo más fuertes posible. Sin embargo, cuanto más fuerte sea el cifrado utilizado, más lenta será la conexión, por lo que algunos proveedores escatiman en el cifrado de canales de datos.
El cifrado de canal de control también se denomina cifrado TLS porque TLS es la tecnología utilizada para negociar de forma segura la conexión entre su computadora y el servidor VPN. Esta es la misma tecnología que utiliza su navegador para negociar de forma segura una conexión a un sitio web cifrado con HTTPS.
- El cifrado de canal de control consiste en un cifrado, cifrado de apretón de manos y autenticación hash.
- El cifrado de canales de datos consiste en una autenticación de cifrado y hash.
Los proveedores de VPN a menudo utilizan el mismo nivel de cifrado para canales de control y de datos. En nuestras tablas de reseñas y «semáforos», solo las listamos por separado si se usan valores diferentes para cada canal.
Si declaramos que un proveedor utiliza un cifrado AES-256, esto significa que se utiliza un cifrado AES-256 para los canales de control y de datos.*
(*Este debería ser el caso, al menos. Algunas revisiones heredadas no cumplen con nuestras directrices actuales, pero estas deberían eliminarse gradualmente a tiempo).
Cifrados
OpenVPN puede utilizar una serie de cifrados de clave simétrica para asegurar los datos tanto en canales de control como de datos. En la práctica, los únicos utilizados por los proveedores de VPN comerciales son Blowfish, AES y (muy raramente) Camellia.
Blowfish
Blowfish-128 es el cifrado predeterminado utilizado por OpenVPN. Los tamaños de clave pueden, en teoría, oscilar entre 32 bits y 448 bits, pero Blowfish-128 es la única versión que es probable que encuentre en la naturaleza.
El pez globo a menudo se considera lo suficientemente seguro para fines casuales, pero tiene debilidades conocidas. Fue creado por el renombrado criptógrafo Bruce Schneier, quien en 2007 dijo: «en este momento, sin embargo, me sorprende que todavía se siga utilizando.»
En nuestra opinión, el uso de Blowfish – 128 es aceptable como segunda línea de defensa en el canal de datos OpenVPN. Sin embargo, no debe considerarse seguro cuando se utiliza en el canal de control.
AES
AES se ha convertido en el cifrado de clave simétrica «estándar de oro» para toda la industria de VPN. AES está certificado por NIST y se considera casi universalmente muy seguro. El AES – 256 es utilizado por el gobierno de los Estados Unidos para proteger los datos «seguros».
El hecho de que tenga un tamaño de bloque de 128 bits en lugar del tamaño de bloque de 64 bits de Blowfish también significa que puede manejar archivos más grandes (más de 4 GB) mejor que Blowfish. Además de esto, el conjunto de instrucciones AES se beneficia de la aceleración de hardware incorporada en la mayoría de las plataformas.
El AES suele estar disponible en tamaños de clave de 128 y 256 bits (también existe AES de 192 bits). AES-128 permanece seguro hasta donde cualquiera sabe. Sin embargo, dado lo que ahora sabemos sobre el alcance del asalto de la NSA a los estándares de cifrado, la mayoría de los expertos coinciden en que AES-256 proporciona un margen de seguridad más alto.
Solo para asegurarse de que nadie encuentre este tema demasiado fácil, sin embargo, hay un cierto debate sobre este tema. AES-128 tiene un programa clave más sólido que AES-256, lo que lleva a algunos expertos muy eminentes a argumentar que AES-128 es en realidad más sólido que AES-256.
El consenso general, sin embargo, es que AES-256 es más fuerte.
Camellia
Camellia es un cifrado seguro moderno y es al menos tan seguro y rápido como AES. Está disponible en tamaños de clave de 128, 192 y 256 bits. Sin embargo, gracias a la certificación NIST y su uso por parte del gobierno de los Estados Unidos, el AES casi siempre se usa en lugar de la Camelia.
Pero como analizo a continuación, hay razones para no confiar en los cifrados certificados por NIST. El hecho de que la Camelia sea un cifrado no NIST es la razón principal para elegirlo en lugar de AES. Sin embargo, esta opción solo está disponible en raras ocasiones.
También vale la pena señalar que la camelia no está tan bien probada para detectar debilidad como los EA.
Cifrado de apretón de manos
Para negociar de forma segura una conexión entre su dispositivo y un servidor VPN, OpenVPN utiliza un apretón de manos TLS. Esto permite que el cliente OpenVPN y el servidor VPN establezcan las claves secretas con las que se comunican.
Para proteger este apretón de manos, TLS generalmente utiliza el criptosistema de clave pública RSA. Se trata de un algoritmo de cifrado y firma digital utilizado para identificar certificados TLS/SSL. Sin embargo, también puede usar un intercambio de claves Diffie-Hellman o ECDH en su lugar.
RSA
RSA es un sistema de cifrado asimétrico: se utiliza una clave pública para cifrar los datos, pero se utiliza una clave privada diferente para descifrarlos. Ha sido la base de la seguridad en Internet durante los últimos 20 años.
Ahora está bien establecido que RSA con una longitud de clave de 1024 bits (RSA-1024) o menos no es seguro, y casi con certeza ha sido descifrado por la NSA. En consecuencia, se ha producido un movimiento concertado entre las empresas de Internet para abandonar la RSA-1024.
Desafortunadamente, todavía encontramos que algunos servicios VPN continúan usando RSA-1024 para proteger los apretones de manos. Esto no es bueno.
RSA-2048 y versiones posteriores siguen considerándose seguras. Por sí sola, el RSA no proporciona un Secreto Directo Perfecto (PFS). Sin embargo, esto se puede implementar incluyendo un intercambio de claves Diffie-Hellman (DH) o de curva elíptica Diffie-Hellman (ECDH) en su conjunto de cifrado.
En este caso, la fuerza de la clave DH o ECDH no importa, ya que se utiliza solo para proporcionar un perfecto Secreto hacia adelante. La conexión se asegura mediante RSA.
Debido a que puede causar confusión, también observaré que el criptosistema RSA no tiene nada que ver con la deshonrada empresa de tecnología estadounidense RSA Security LLC. Esta compañía debilitó deliberadamente sus productos de cifrado BSAFE insignia después de haber sido sobornada por 1 10 millones por la NSA.
Diffie-Hellman y ECDH
Un cifrado de apretón de manos alternativo (rival) que a veces usa OpenVPN es el intercambio de claves criptográficas Diffie-Hellman (DH). Esto generalmente tiene una longitud de clave de 2048 bits o 4096 bits. Tenga en cuenta que cualquier cosa que no sea DH-2048 debe evitarse debido a la susceptibilidad al ataque de estancamiento.
La principal ventaja de un apretón de manos Diffie-Hellman sobre RSA es que proporciona de forma nativa un Secreto directo Perfecto. Sin embargo, como ya se señaló, simplemente agregar un intercambio de claves DH a un apretón de manos RSA logra un fin similar.
Diffie-Hellman ha causado una gran controversia sobre su reutilización de un conjunto limitado de números primos. Esto la hace vulnerable a ser agrietada por un adversario poderoso, como la NSA. Diffie-Hellman por sí solo, por lo tanto, no hace que el cifrado de apretón de manos sea seguro. Sin embargo, está bien cuando se usa como parte de un conjunto de cifrado RSA.
La curva elíptica Diffie-Hellman (ECDH) es una nueva forma de criptografía que no es vulnerable a este ataque. Esto se debe a que utiliza las propiedades de un tipo particular de curva algebraica en lugar de números primos grandes para cifrar conexiones.
El ECDH se puede utilizar como parte de un apretón de manos RSA para proporcionar un secreto directo Perfecto, o puede cifrar de forma segura un apretón de manos por sí solo (con una firma ECDSA). Esto también proporciona SLP.
La longitud de la clave ECDH comienza en 384 bits. Esto se considera seguro, pero cuando se usa por sí solo para asegurar un apretón de manos TLS, cuanto más tiempo mejor (en términos de seguridad, de todos modos).
Autenticación Hash SHA
Esto también se conoce como autenticación de datos o código de autenticación de mensajes hash (HMAC).
El algoritmo Hash seguro (SHA) es una función hash criptográfica utilizada (entre otras cosas) para autenticar datos y conexiones SSL/TLS. Esto incluye conexiones OpenVPN.
Crea una huella digital única de un certificado TLS válido, que puede ser validado por cualquier cliente OpenVPN. Incluso el cambio más pequeño es detectable. Si se manipula el certificado, se detectará de inmediato y se rechazará la conexión.
Esto es importante para prevenir un ataque Man-in-the-middle (MitM), en el que un adversario intenta desviar su conexión OpenVPN a uno de sus propios servidores en lugar de a su proveedor de VPN. Podría hacer esto, por ejemplo, hackeando su enrutador.
Si un adversario puede descifrar el hash del certificado TLS genuino de su proveedor, puede revertir el hash para crear un certificado falsificado. Su software VPN abierto autenticaría la conexión como genuina.
¿Es seguro SHA?
Cuando se usa para proteger sitios web HTTPS, SHA-1 está roto. Esto se sabe desde hace algún tiempo. Todavía se pueden encontrar sitios web SHA-1, pero se están eliminando gradualmente. La mayoría de los navegadores ahora emitirán una advertencia cuando intente conectarse a un sitio web protegido con SHA-1.
Ahora se recomiendan las funciones hash SHA-2 y SHA-3, que son seguras. SHA-2 incluye SHA-256, SHA-384 y SHA-512. Sin embargo Open
OpenVPN solo usa SHA para HMAC. No creo que sea útil entrar en demasiados detalles aquí, pero la autenticación hash SHA es parte del algoritmo HMAC. Atacar HMAC integrado con SHA-1 es mucho más difícil que atacar la propia función hash SHA-1.
En otras palabras, el HMAC SHA-1 utilizado por OpenVPN se considera seguro y hay una prueba matemática de esto. Por supuesto, HMAC SHA-2 y HMAC SHA-3 son aún más seguros. De hecho, la reciente auditoría de OpenVPN reconoce que HMAC SHA-1 es seguro, pero recomienda la transición a HMAC SHA-2 o HMAC SHA-3 en su lugar.
Notas
NIST
AES, RSA, SHA-1 y SHA-2 fueron desarrollados y/o certificados por el Instituto Nacional de Estándares y Tecnología de los Estados Unidos (NIST). Se trata de un organismo que, por su propia admisión, trabaja en estrecha colaboración con la NSA en el desarrollo de sus cifrados.
Dado lo que ahora sabemos de los esfuerzos sistemáticos de la NSA para debilitar o construir puertas traseras en los estándares internacionales de cifrado, hay muchas razones para cuestionar la integridad de los algoritmos del NIST.
El NIST, por supuesto, refuta enérgicamente tales acusaciones:
«El NIST no debilitaría deliberadamente un estándar criptográfico.»
También ha invitado a la participación del público en una serie de estándares de cifrado propuestos próximamente, en un movimiento diseñado para reforzar la confianza del público.
El New York Times, sin embargo, acusó a la NSA de eludir los estándares de encriptación aprobados por el NIST al introducir puertas traseras indetectables o subvertir el proceso de desarrollo público para debilitar los algoritmos.
Esta desconfianza se reforzó aún más cuando RSA Security (una división de EMC) les dijo en privado a los clientes que dejaran de usar un algoritmo de cifrado que supuestamente contiene un defecto diseñado por la NSA. Este algoritmo también había sido respaldado por el NIST.
Además, Dual_EC_DRBG (Generador de Bits Aleatorios Deterministas de Curva Elíptica Dual) es un estándar de cifrado diseñado por NIST. Se sabe que es inseguro durante años.
En 2006, la Universidad de Tecnología de Eindhoven en los Países Bajos señaló que un ataque contra ella era bastante fácil de lanzar en «un PC ordinario».»Los ingenieros de Microsoft también marcaron una puerta trasera sospechosa en el algoritmo.
A pesar de estas preocupaciones, donde el NIST lidera, la industria sigue. Microsoft, Cisco, Symantec y RSA incluyen el algoritmo en las bibliotecas criptográficas de sus productos. Esto se debe en gran parte a que el cumplimiento de las normas del NIST es un requisito previo para obtener contratos con el gobierno de los Estados Unidos.
Los estándares criptográficos con certificación NIST son prácticamente omnipresentes en todo el mundo, en todas las áreas de la industria y los negocios que dependen de la privacidad. Esto hace que la situación sea bastante escalofriante.
Quizás precisamente porque tanto depende de estos estándares, los expertos en criptografía no han estado dispuestos a enfrentar el problema.
AES-CBC vs AES-GCM
Hasta hace poco, el único cifrado AES que era probable que encontrara en el mundo de las VPN era AES-CBC (Encadenamiento de bloques de cifrado). Esto se refiere al modo de cifrado por bloques, un tema complejo que no vale la pena abordar aquí. Aunque teóricamente el CBC puede tener algunas vulnerabilidades, el consenso general es que el CBC es seguro. De hecho, CBC se recomienda en el manual de OpenVPN.
OpenVPN ahora también es compatible con AES-GCM (Modo Galios/Contador).
- GCM proporciona autenticación, eliminando la necesidad de una función de hash HMAC SHA.
- También es ligeramente más rápido que CBC porque utiliza aceleración de hardware (al enhebrar a múltiples núcleos de procesador).
AES-CBC sigue siendo el modo más común en uso general, pero ahora estamos empezando a encontrar AES-GCM «en la naturaleza.»Dadas las ventajas del MCG, es probable que esta tendencia continúe. Desde una perspectiva criptográfica, tho9ugh, tanto AES-CBC como AES-GCM son muy seguros.
OpenVPN UDP vs. OpenVPN TCP
OpenVPN puede ejecutarse sobre TCP (Protocolo de Control de Transmisión) o UDP (Protocolo de Datagramas de usuario).
- TCP = fiable. Cada vez que un equipo envía un paquete de red usando TCP, espera la confirmación de que el paquete ha llegado antes de enviar el siguiente paquete. Si no se recibe confirmación, volverá a enviar el paquete. Esto se conoce como corrección de errores. Hay una» entrega garantizada » de todos los datos, pero puede ser bastante lenta.
- UDP = rápido. Al usar UDP, no se realiza ninguna corrección de errores. Los paquetes se envían y reciben simplemente sin acuses de recibo ni reintentos. Esto hace que UDP sea mucho más rápido que TCP, pero menos confiable.
Si se le da la opción, sugiero usar el protocolo UDP más rápido a menos que experimente problemas de conexión. Esta es la estrategia predeterminada adoptada por la mayoría de los proveedores de VPN.
Derrota la censura con OpenVPN en el puerto TCP 443
Una de las grandes ventajas de OpenVPN es que se puede ejecutar sobre cualquier puerto, incluido el puerto TCP 443. Este es el puerto utilizado por HTTPS, el protocolo cifrado que protege todos los sitios web seguros.
Sin HTTPS, ninguna forma de comercio en línea, como compras o banca, sería posible. Por lo tanto, es muy raro que este puerto esté bloqueado.
Como beneficio adicional, el tráfico VPN en el puerto TCP 443 se puede enrutar dentro del cifrado TLS de la misma manera que lo usa HTTPS. Esto hace que sea mucho más difícil de detectar utilizando técnicas avanzadas de Inspección Profunda de Paquetes. El puerto TCP 443 es, por lo tanto, el puerto preferido para evadir bloques VPN.
Muchos proveedores de VPN ofrecen la posibilidad de cambiar el número de puerto utilizado por OpenVPN utilizando su software personalizado.
Incluso si el suyo no lo hace, muchos proveedores de VPN realmente admiten OpenVPN utilizando el puerto TCP 443 a nivel de servidor. Puede cambiar a él con una simple edición de su configuración de OpenVPN (.ovpn). Por lo tanto, vale la pena preguntarle a su proveedor de VPN sobre esto.
Vale la pena señalar que a los ingenieros de red no les gusta esta táctica, ya que TCP sobre TCP es muy ineficiente. Sin embargo, cuando se trata de derrotar la censura, a menudo funciona.
SSTP utiliza el puerto TCP 443 de forma predeterminada.
Resúmenes
Protocolos VPN
- PPTP es muy inseguro y debe evitarse. Si bien su facilidad de configuración y compatibilidad multiplataforma son atractivas, L2TP/IPsec tiene las mismas ventajas y es mucho más seguro.
- L2TP / IPsec es una buena solución VPN para uso no crítico. Esto es especialmente cierto en dispositivos heredados que no son compatibles con OpenVPN. Sin embargo, se ha visto gravemente comprometida por la NSA.
- SSTP ofrece la mayoría de las ventajas de OpenVPN, pero es principalmente un protocolo de Windows. Esto significa que está mejor integrado en el sistema operativo, pero está mal soportado por los proveedores de VPN gracias a esta limitación. Además de esto, su naturaleza propietaria y el hecho de que fue creada por Microsoft significa que, por mi parte, no confío en ella.
- IKEv2 es un protocolo muy bueno (seguro y rápido). Los usuarios móviles, en particular, pueden incluso preferirlo a OpenVPN debido a su capacidad mejorada para volver a conectarse cuando se interrumpe una conexión a Internet. Para los usuarios de Blackberry, es prácticamente la única opción disponible. Utilice versiones de código abierto siempre que sea posible.
- OpenVPN es el protocolo VPN recomendado en la mayoría de las circunstancias. Es rápido, confiable, seguro y de código abierto. No tiene desventajas reales, per se., pero para estar verdaderamente seguro es importante que se implemente bien. Esto significa un cifrado fuerte con un Secreto Directo Perfecto.
Cifrado OpenVPN
Cuando se trata de cifrado, el diablo está en los detalles. Es común ver que los proveedores de VPN dicen que usan cifrado AES OpenVPN «ultra fuerte de 256 bits», pero esto, en realidad, no nos dice mucho. AES-256 es, de hecho, un cifrado sólido, pero si otros aspectos del conjunto de cifrado utilizado son débiles, sus datos no estarán seguros.Cifrado
- : protege sus datos reales. AES-256 es ahora el estándar de la industria y se recomienda.
- Apretón de manos: esto asegura su conexión al servidor VPN. RSA-2048+ o ECDH-384 + son seguros. Es importante destacar que los apretones de manos RSA-1024 y Diffie-Hellman no lo son.
- Autenticación Hash: crea una huella digital única, que se utiliza para validar datos y certificados TLS (es decir, para comprobar que el servidor al que se está conectando realmente es el que cree que se está conectando). HMAC SHA-1 está absolutamente bien, pero HMAC SHA-2 (SHA-256, SHA-384 y SHA-512) y HMAC SHA-3 son aún más seguros. Tenga en cuenta que la autenticación hash no es necesaria si se utiliza el cifrado AES-GCM.
- Secreto directo perfecto (PFS): esto garantiza que se creen nuevas claves de cifrado para cada sesión. OpenVPN no debe considerarse seguro a menos que se implemente PFS. Esto se puede hacer incluyendo un intercambio de claves Diffie-Hellman o ECDH en un apretón de manos RSA, o un apretón de manos DH o ECDH.
- El cifrado es tan seguro como su punto más débil. Esto significa que la configuración de cifrado debe ser fuerte tanto en los canales de datos como de control.
- Usar longitudes de bits más altas para cifrados y claves casi siempre es más seguro, pero esto tiene un costo en velocidad.
OpenVPN negociará los cifrados entre el cliente y el servidor a voluntad. A menos que se definan parámetros muy específicos, OpenVPN puede tener configuraciones débiles por defecto. Como mínimo, OpenVPN utilizará por defecto el cifrado Blowfish-128, el apretón de manos RSA-1024 sin PFS y la autenticación hash HMAC SHA-1.
Conclusión
Esperemos que ahora tenga una mejor comprensión de lo que hace que una conexión VPN segura. Sin embargo, cuando se trata de configurar correctamente una VPN, el cifrado es solo la mitad de la historia. La otra mitad es asegurarse de que ningún tráfico entre o salga de su computadora fuera de la conexión VPN.
Para obtener más información sobre esto, consulte nuestra Guía Completa de fugas de IP.