¿Cuál es la diferencia en la seguridad entre una VPN y una conexión SSL?

62

Me gustaría diseñar una aplicación cliente-servidor donde el servidor esté ubicado en Internet. Supongo que podría configurar la conexión cliente-servidor mediante VPN (¿está utilizando IPSec?) O utilizando una conexión SSL (posiblemente https). ¿Cuáles son las diferencias entre VPN / IPsec y SSL / https para asegurar una conexión de servidor de cliente a través de Internet?

    
pregunta Jonas 06.01.2011 - 14:12
fuente

8 respuestas

74

VPN significa "Red privada virtual". Es un concepto genérico que designa una parte de una red más grande (por ejemplo, Internet en general) que está lógicamente aislada de la red más grande a través de medios que no son hardware (eso es lo que significa "virtual"): no es que estemos usando distintos cables e interruptores; más bien, el aislamiento se realiza mediante el uso de la criptografía.

SSL (ahora conocido como TLS) es una tecnología que toma un medio de transporte bidireccional y proporciona un medio bidireccional asegurado . Requiere que el medio de transporte subyacente sea "en su mayoría confiable" (cuando no está atacado, los bytes de datos se transfieren en el orden debido, sin pérdida y sin repetición). SSL proporciona confidencialidad, integridad (las alteraciones activas se detectan de manera confiable) y cierta autenticación (generalmente autenticación del servidor, posiblemente autenticación mutua cliente-servidor si se usan certificados en ambos lados).

Así que VPN y SSL no son del mismo nivel. Una implementación de VPN requiere algo de criptografía en algún momento. Algunas implementaciones de VPN realmente utilizan SSL, lo que da como resultado un sistema de capas: la VPN transfiere paquetes IP (de la red virtual) al serializarlos en una conexión SSL, que a su vez utiliza TCP como medio de transporte, que se construye sobre paquetes IP Red física desprotegida). IPsec es otra tecnología que está más profundamente integrada en los paquetes, que suprime algunas de esas capas y, por lo tanto, es un poco más eficiente (menos sobrecarga de ancho de banda). Por otro lado, IPsec debe administrarse bastante dentro del código de red del sistema operativo, mientras que una VPN basada en SSL solo necesita una forma de secuestrar el tráfico entrante y saliente; el resto puede estar inactivo en el software de nivel de usuario.

Según entiendo su pregunta, tiene una aplicación donde algunas máquinas deben comunicarse a través de Internet. Tiene algunos requisitos de seguridad y está pensando en utilizar SSL (sobre TCP sobre IP) o posiblemente en HTTPS (que es HTTP sobre SSL sobre TCP) o configurar una VPN entre cliente y servidor y usar TCP "simple" en esa red privada (el punto de la VPN es que le proporciona una red segura en la que ya no tiene que preocuparse más por la confidencialidad). Con SSL, su código de conexión debe ser consciente de la seguridad; desde el punto de vista de la programación, no abre una conexión SSL como si fuera "solo un socket". Algunas bibliotecas lo hacen relativamente simple, pero aún así, debe administrar la seguridad en el nivel de la aplicación. Una VPN, por otro lado, está configurada a nivel de sistema operativo, por lo que la seguridad no es entre su aplicación en el cliente y su aplicación en el servidor, sino entre el sistema operativo cliente y el sistema operativo del servidor: no es la misma seguridad modelo, aunque en muchas situaciones la diferencia resulta no ser relevante.

En la práctica, una VPN significa que se necesita algún paso de configuración en el sistema operativo del cliente. Es bastante invasivo. El uso de dos aplicaciones basadas en VPN en el mismo cliente puede ser problemático (desde el punto de vista de la seguridad, ya que el cliente actúa como un puente que une dos VPN que deberían estar aisladas entre sí, y también en la práctica, debido a colisiones en la dirección espacio). Si el cliente es un cliente, hacer que configure una VPN correctamente parece una tarea imposible. Sin embargo , una VPN significa que las aplicaciones no necesitan estar al tanto de la seguridad, por lo que esto hace que sea mucho más fácil integrar el software de terceros dentro de su aplicación.

    
respondido por el Thomas Pornin 06.01.2011 - 15:12
fuente
15

Ambos tienen problemas de seguridad si no están configurados correctamente. Pero primero comencemos con algunas definiciones:

Cisco tiene una buena definición de una VPN:

  

VPN puede tomar varias formas. Una VPN puede estar entre dos sistemas finales, o puede estar entre dos o más redes. Una VPN puede construirse usando túneles o encriptación (esencialmente en cualquier capa de la pila de protocolos), o ambos, o alternativamente construirse usando MPLS o uno de los métodos de "enrutador virtual". Una VPN puede consistir en redes conectadas a la red de un proveedor de servicios por líneas arrendadas, Frame Relay o ATM, o una VPN puede consistir en suscriptores de acceso telefónico que se conectan a servicios centralizados u otros suscriptores de acceso telefónico. enlace

En cuanto a SSL:

  

SSL (Secure Sockets Layer), también conocido como TLS (Transport Layer Security), es un protocolo que permite que dos programas se comuniquen entre sí de manera segura. Al igual que TCP / IP, SSL permite a los programas crear "sockets", puntos finales para la comunicación, y hacer conexiones entre esos sockets. Pero SSL, que está construido sobre TCP, agrega la capacidad adicional de cifrado. enlace

En relación con su pregunta, la principal diferencia es que SSL a menudo utiliza el navegador para cifrar los datos entre el usuario final y el servidor, y se usa comúnmente para áreas de sitios web que requieren la protección de la confidencialidad y la integridad de los datos. .

VPN / IPSEC requiere un software de cliente VPN específico y generalmente es para proporcionar acceso remoto a sistemas o redes. También existe la opción de elegir L2TP o L2F en lugar de IPSEC.

Sin embargo, las SSL VPN son cada vez más frecuentes como un medio para proporcionar acceso a redes / sistemas a través del navegador web. Este enfoque tiene muchos beneficios, ya que utiliza el navegador web común para habilitar la conexión segura. La granularidad de este enfoque también es una buena manera de controlar los accesos a aplicaciones específicas.

En cuanto a los problemas de seguridad -

SSL -

  • Los cifrados de seguridad débiles podrían llevar a la capacidad de llevar a cabo ataques de estilo intermediario contra el usuario final, lo que provocaría una pérdida de confidencialidad / integridad de los datos.

    • La combinación mal configurada de contenido HTTP / HTTPS también podría llevar a una pérdida de confidencialidad / integridad de los datos.

IPSEC -

  • Introducción de una posible condición de DoS. Un ejemplo de esto sería enlace

  • Problemas de pérdida de confidencialidad, como un problema de Microsoft de 2008, que podría hacer que los sistemas ignoren las políticas de IPsec y transmitan el tráfico de red en texto claro. enlace

respondido por el David Stubley 06.01.2011 - 14:48
fuente
6

Algunas respuestas muy buenas aquí, no repetiré lo que ya se dijo.
Sin embargo, faltaba un punto: SSL es mucho más fácil de configurar sobre una base ad hoc, especialmente si no tiene un requisito de certificados de cliente.
Por otro lado, IPsec siempre requiere certificados de cliente (asumiendo una configuración normal y típica), y también existen otras dificultades en la configuración y distribución iniciales.

Como tal, IPsec suele ser más adecuado para una red controlada, y no tanto en Internet. Vea más información en esta otra pregunta: " hechos sobre IPsec (Seguridad del protocolo de Internet) ".

Por lo tanto, volviendo a su pregunta real, en casi todos los casos en los que está poniendo el servidor en Internet, no esperaría que sus usuarios se conecten mediante una VPN. (Las excepciones existen, por supuesto.)
En su lugar, simplemente configure los certificados SSL en su servidor, señale a sus clientes y estará listo (solo asegúrese de validar explícitamente el certificado, dependiendo del idioma / tecnología / biblioteca que esté usando ... )

    
respondido por el AviD 06.01.2011 - 21:09
fuente
5

¿Estás considerando estas opciones para crear una VPN segura? Por lo general, SSL es más fácil de implementar y está mejor soportado para un tipo de VPN de escritorio a red, como cuando un empleado en el hogar se conecta a la red corporativa. Si está realizando una implementación más compleja, como una VPN cifrada de red a red (por ejemplo, entre dos organizaciones diferentes), IPSEC proporcionará un mejor control y más opciones de personalización.

Hay un libro blanco decente sobre el tema de Juniper Redes, aunque podría estar sesgada a las fortalezas de sus productos.

    
respondido por el Eugene Kogan 24.01.2011 - 19:27
fuente
2

Esta podría ser una respuesta muy larga, pero intentaré la corta.

Cuando utiliza https, su navegador (actúa como un cliente SSL) solo cifrará esta conexión al servidor web.

Cuando usa VPN, necesita un cliente especial y establecer un túnel entre el cliente y el servidor. A continuación, puede configurar qué tráfico pasa por el túnel. Esto puede ser todo o solo tu tráfico http.

Cuando solo desea configurar una aplicación cliente / servidor que pueda comunicarse con http, la solución más sencilla debería ser el tráfico https, cuando debe estar cifrado. Es mucho más complicado configurar una VPN y mantenerla.

    
respondido por el Christian 06.01.2011 - 14:35
fuente
2

Esto depende de su modelo de amenaza, de la naturaleza del protocolo de servidor de cliente que necesita y de sus clientes.

¿Está pensado para usuarios finales no sofisticados? Luego use SSL: en este punto, la complejidad de la VPN simplemente apagará a muchos usuarios potenciales.

¿Desea implementar el cliente como una aplicación de navegador (perahps con javascript)? Entonces, nuevamente https / ssl parece ser el camino a seguir.

¿Alguna vez el servidor necesita notificar algo al cliente de forma asíncrona? Entonces, puede que HTTPS no sea lo que quieres (aunque se puede hacer para hacerlo).

¿Qué tan grande es el riesgo del phishing? Si a los atacantes les resultaría fácil atraer a la gente como un MITM, es probable que SSL sea mejor, ya que autentica cada servidor al cliente. Una VPN típica, una vez configurada, no ayuda al usuario a evitar a un atacante que haya ingresado a otros hosts en la VPN. Es probable que esto no sea un gran riesgo, pero nuevamente depende de lo que estés haciendo.

Si está implementando esto en la nube (cliente y servidor), entonces puede obtener una VPN de forma casi gratuita que puede abordar algunas amenazas muy casuales.

    
respondido por el nealmcb 06.01.2011 - 18:12
fuente
2

Bueno, la diferencia es algo así como la diferencia entre un círculo y un cuadrado (ambos son formas, pero difieren mucho). Ambos protegen las comunicaciones, pero lo hacen a diferentes niveles y de diferentes maneras. IPSEC es un cifrado y autorización alámbricos, mientras que SSL es específico de la aplicación.

IPSEC tiene control de acceso, mientras que SSL no.

¿Puedes ser más específico con lo que estás tratando de averiguar?

    
respondido por el Steve 24.01.2011 - 19:07
fuente
0

Estoy lejos de ser un experto en seguridad, pero creo que la diferencia más importante entre los dos no está en las otras respuestas.

Por VPN la comunicación va de esta manera:

HTTP client <-[raw]-> VPN client
  <-[encrypted]-> 
VPN server <-[raw]-> HTTP server

Por HTTPs va de esta manera:

HTTP client
  <-[encrypted]-> 
HTTP server

Por VPN, los datos no protegidos pueden viajar en la red local de los clientes y en la red local de los servidores. Si no confías en esas redes por completo, entonces es una buena idea usar HTTPs. Tenga en cuenta que la VPN y el cliente-cliente HTTP, los pares servidor-servidor no están necesariamente en computadoras idénticas, por ejemplo. Los enrutadores se pueden configurar para que sean servidores o clientes VPN.

Dado que estas tecnologías funcionan en un nivel diferente, no se excluyen mutuamente, por lo que puede usar ambas si desea otra capa de protección y no le importa la caída de rendimiento que viene con ella o simplemente puede usar la de Ellos, que mejor se adapte a sus necesidades. Por lo que sé, ambas tecnologías se consideran seguras si están configuradas correctamente.

    
respondido por el inf3rno 18.12.2017 - 21:46
fuente

Lea otras preguntas en las etiquetas