it-swarm-es.com

¿Cuál es la diferencia entre SSL y SSH? ¿Cuál es más seguro?

¿Cuál es la diferencia entre SSH y SSL? ¿Cuál es más seguro, si usted puede compararlos juntos?
¿Cuál tiene más vulnerabilidades potenciales?

212
Am1rr3zA

SSL y SSH proporcionan los elementos criptográficos para construir un túnel para el transporte de datos confidenciales con integridad comprobada. Para esa parte, usan técnicas similares y pueden sufrir el mismo tipo de ataques, por lo que deberían proporcionar una seguridad similar (es decir, buena seguridad) suponiendo que ambos estén implementados correctamente. Que ambos existan es una especie de síndrome NIH : los desarrolladores de SSH deberían haber reutilizado SSL para la parte del túnel (el protocolo SSL es lo suficientemente flexible como para adaptarse a muchas variaciones, incluyendo no usar certificados).

Difieren en las cosas que están alrededor del túnel. SSL utiliza tradicionalmente certificados X.509 para anunciar claves públicas de servidor y cliente; SSH tiene su propio formato. Además, SSH viene con un conjunto de protocolos para lo que va dentro del túnel (multiplexando varias transferencias, realizando autenticación basada en contraseña dentro del túnel, gestión de terminales. ..) si bien no existe tal cosa en SSL, o, más exactamente, cuando tales cosas se usan en SSL, no se consideran parte de SSL (por ejemplo, cuando se realiza una autenticación HTTP basada en contraseña en un túnel SSL, decir que es parte de "HTTPS", pero realmente funciona de manera similar a lo que sucede con SSH).

Conceptualmente, podría tomar SSH y reemplazar la parte del túnel con la de SSL. También puede tomar HTTPS y reemplazar la cosa SSL con SSH-with-data-transport y un enlace para extraer la clave pública del servidor de su certificado. No hay imposibilidad científica y, si se hace correctamente, la seguridad seguirá siendo la misma. Sin embargo, no existe un conjunto generalizado de convenciones o herramientas existentes para eso.

Entonces, no usamos SSL y SSH para las mismas cosas, pero eso se debe a las herramientas que históricamente vinieron con las implementaciones de esos protocolos, no debido a un diferencia relacionada con la seguridad. Y a quien implemente SSL o SSH se le aconsejaría observar qué tipo de ataques se probaron en ambos protocolos.

199
Thomas Pornin

Esta no es una comparación razonable de hacer. SSL es un método general para proteger los datos transportados a través de una red, mientras que SSH es una aplicación de red para iniciar sesión y compartir datos con una computadora remota.

La protección de la capa de transporte en SSH es similar en capacidad a SSL, por lo que "más seguro" depende de lo que requiera su modelo de amenaza específico y de si las implementaciones de cada uno abordan los problemas que está tratando de resolver.

SSH luego tiene una capa de autenticación de usuario que carece de SSL (porque no la necesita, SSL solo necesita autenticar las dos interfaces de conexión que SSH también puede hacer). En el arte UTF-8:

      SSL              SSH
+-------------+ +-----------------+
| Nothing     | | RFC4254         | Connection multiplexing
+-------------+ +-----------------+
| Nothing     | | RFC4252         | User authentication
+-------------+ +-----------------+
| RFC5246     | | RFC4253         | Encrypted data transport
+-------------+ +-----------------+

Con respecto al tema del cual hay más ataques potenciales contra, parece claro que SSH tiene una superficie de ataque más grande. Pero eso es solo porque SSH tiene una aplicación completa incorporada: la superficie de ataque de SSL + cualquier aplicación que necesite proporcionar no se puede comparar porque no tenemos suficiente información.

87
user185

Desde un punto de vista criptográfico estricto, ambos proporcionan cifrado autenticado, pero de dos maneras diferentes.

SSH utiliza el denominado cifrado y MAC, es decir, el mensaje cifrado se yuxtapone a un código de autenticación de mensaje (MAC) del mensaje claro para agregar integridad. No se ha demostrado que esto sea siempre completamente seguro (incluso si en casos prácticos debería ser suficiente).

SSL usa MAC-then-Encrypt: un MAC se yuxtapone al texto claro, luego ambos están encriptados. Esto tampoco es lo mejor, ya que con algunos modos de cifrado de bloques, partes del MAC pueden ser adivinables y revelar algo en el cifrado. Esto condujo a vulnerabilidades en TLS 1.0 (ataque BEAST).

Entonces tienen ambas debilidades teóricas potenciales. El método más seguro es Encrypt-then-MAC (agregue un MAC del mensaje cifrado), que se implementa, por ejemplo, en IPsec ESP.

12
Halberdier

Creo que hay un aspecto de esta comparación que se pasó por alto. user185 estuvo cerca, pero no llegó allí. Estoy de acuerdo en que estas son manzanas y naranjas y siento una mejor comparación de manzanas con manzanas para ser HTTPS y SSH. HTTPS y SSH utilizan diferentes capas del modelo OSI y, por lo tanto, encriptan los datos en diferentes momentos de la transmisión. Entonces, las preguntas reales que uno debería plantearse serían las de cuándo se encriptan y no encriptan estos datos durante la transmisión. Esto revelará sus posibles superficies de ataque. Con HTTPS, una vez que el paquete es recibido por un dispositivo en la red de destino (servidor web, enrutador de borde, equilibrador de carga, etc.), no se encripta y pasa el resto de su viaje en texto plano. Muchos argumentarían que esto no es un gran problema ya que el tráfico es interno en este momento, pero si la carga útil contiene datos confidenciales, se almacena sin cifrar en los archivos de registro de cada dispositivo de red que atraviesa hasta que llega a su destino final. Con SSH, normalmente, se especifica el dispositivo de destino y la transmisión se cifra hasta que llega a este dispositivo. Hay formas de volver a cifrar los datos HTTPS, pero estos son pasos adicionales que la mayoría olvida tomar al implementar una solución HTTPS en su entorno.

3
Sam Moore

ssh es como una llave (privada) y la cerradura (pública)

sSL es como la puerta y los ladrillos.

sSL proporciona un enlace seguro entre los dos servidores de la computadora. por ejemplo, el tuyo y el que estás conectando.

ssh es cómo la computadora conectada puede verificarse a sí misma y obtener acceso.

2
datsusarachris

El problema es doble, no es solo la fuerza y ​​la debilidad del cifrado. Pero es la facilidad y conveniencia de la entrega. Por lo tanto, desde la perspectiva empresarial, SSL/TLS es más conveniente y fácil porque solo requiere un navegador y un certificado público o privado.

Y SSH requiere la aplicación o el cliente ligero instalado para usarlo. Eso es más un problema desde la perspectiva y el soporte de un cliente de Internet del usuario.

No todos los usuarios son brillantes, especialmente los que tienen problemas tecnológicos.

mis 2 centavos.

0
Stanley Hutchinson

SSL es una capa de protocolo que se abstrae del contenido que se está tunelizando. SSH es una versión segura de Shell (SH), no fue diseñada para contener una capa abstracta debajo de ella, fue diseñada específicamente para transportar tráfico de Shell. Entonces, aunque las operaciones criptográficas se usan en ambos, y esas operaciones criptográficas podrían incluso ser las mismas, el propósito y, por lo tanto, el diseño general es bastante diferente.

Tenga en cuenta que existen diferencias específicas (como se ha citado anteriormente), pero la mayoría, si no todas, esas diferencias tienen su origen en el propósito de los diferentes protocolos.

0
Gobbly