¿Debo hacer un túnel de varias conexiones TCP a través de un túnel TLS / SSL o usar TLS / SSL para cada conexión?

9

Estoy desarrollando una aplicación que se ejecuta en PC con Windows. La aplicación es capaz de conectarse a algún tipo de dispositivo dentro de una LAN. Puede crear múltiples conexiones TCP al dispositivo al que está conectado. Quiero asegurar cada una de las conexiones TCP con TLS / SSL.

La solución ingenua para esto sería usar TLS / SSL para cada conexión TCP entre mi aplicación y el dispositivo en el otro lado. Sin embargo, no estoy seguro de la cantidad de sobrecarga que esto producirá ya que cada conexión TCP tendrá que pasar por todo el proceso de negociación / autenticación TLS / SSL. No veo ninguna necesidad de eso ya que la aplicación / PC solo necesita negociar / autenticar. Todas las conexiones TCP utilizarán el mismo cifrado. También hay un servidor FTP en el dispositivo que quiero usar (estoy pensando en FTP sobre SSL).

¿Es posible crear una sola conexión TLS / SSL desde mi PC al dispositivo y luego enviar todos mis datos TCP / FTP a través de este túnel? ¿Es esta la solución correcta o sería mejor crear una única conexión TLS / SSL para cada conexión que pretendo hacer entre mi aplicación y el dispositivo?

    
pregunta WMEZ 14.11.2013 - 08:54
fuente

4 respuestas

1

Esto suena como si estuvieras buscando una VPN pero quieres que TLS proporcione la seguridad (en lugar de, por ejemplo, IPSec). Si la compatibilidad de la plataforma no es su preocupación, entonces Microsoft ha desarrollado un Secure Socket Tunneling Protocol que utiliza dicho esquema SSL-VPN.
Si el "algún tipo de dispositivo" del que habla también está basado en Windows, es posible que ni siquiera necesite un software adicional para implementar el SSTP.

No tengo más conocimientos sobre SSTP, pero el enlace de Wikipedia y los recursos de MSDN que se encuentran en el artículo de Wikipedia deben proporcionar toda la información necesaria.

Una alternativa sería OpenVPN, que también puede usar TLS como protocolo de conexión subyacente, y es compatible con los certificados del lado del servidor y del lado del cliente para la autenticación.

    
respondido por el Alexander Stumpf 27.04.2016 - 15:01
fuente
0

Depende del tipo de tráfico que tenga o, en otras palabras, de las necesidades de su aplicación.

¿Es la latencia para las nuevas comunicaciones un punto crítico? Entonces es posible que desee mantener abierta la conexión TCP y canalizar todo a través de la misma sesión SSL. ¿O tal vez necesita transferir muchos datos y puede ser paralelizado? Entonces definitivamente elige múltiples conexiones TCP con su propia capa SSL en la parte superior.

    
respondido por el Pedro Perez 18.12.2015 - 14:24
fuente
0

Debes usar múltiples conexiones TLS. Sin embargo, debe asegurarse de que su aplicación abra la conexión múltiple utilizando el protocolo de enlace abreviado TLS y la reanudación de la sesión, posiblemente con tickets de sesión.

El uso de abreviatura abreviada y la reanudación de la sesión le permite a la aplicación reutilizar los parámetros de cifrado y la clave maestra de un protocolo de enlace completo anterior, lo que reduce enormemente el costo de establecer una nueva conexión TLS. Un protocolo de enlace TLS completo realiza varios viajes de ida y vuelta para negociar la versión TLS, los cifrados y la clave maestra, e implica operaciones de certificado RSA costosas para autenticar la cadena de certificados; comparado con un protocolo de intercambio abreviado que es solo un viaje de ida y vuelta y una operación de cifrado simétrico barato.

Además, es posible que también desee experimentar con TLS False Start si su infraestructura lo admite. El inicio falso de TLS le permite comenzar a enviar datos mucho antes, lo que reduce el tiempo hasta el primer byte aún más.

    
respondido por el Lie Ryan 09.05.2016 - 20:52
fuente
-4

Si te gusta el ancho de banda, entonces funcionarán múltiples TLS / SSL al mismo tiempo. Por otro lado, si desea guardar el desgarre / configuración de la conexión, usar una es la manera de hacerlo.

Lo que hace surgir la pregunta, cómo hacerlo con la mínima cantidad de problemas. Usted podría, diseñar su propio protocolo, o ir con algún tipo de agente de conexión ... etc. Lo que esto significa en pocas palabras es que no sabe si está en el primer ciclo de optimización, donde podría estar. sobre diseño de la solución.

    
respondido por el munchkin 15.01.2015 - 02:18
fuente

Lea otras preguntas en las etiquetas