Diferencia entre SSL y TLS

Respuestas:

60

En resumen, TLSv1.0 es más o menos SSLv3.1. Puede encontrar más detalles en esta pregunta sobre ServerFault .

La mayoría de los sitios web son compatibles con SSLv3 y TLSv1.0 al menos, como indica este estudio (artículo de Lee, Malkin y Nahum: Resistencia criptográfica de los servidores SSL / TLS: prácticas actuales y recientes , IMC 2007) (enlace obtenido de la lista de TLS de IETF ). Más del 98% admite TLSv1 +.

Creo que la razón por la que SSLv3 todavía está en uso fue para el soporte heredado (aunque la mayoría de los navegadores admiten TLSv1 y algunos TLSv1.1 o incluso TLSv1.2 en la actualidad). Hasta hace poco, algunas distribuciones todavía tenían SSLv2 (considerado inseguro) de forma predeterminada junto con las demás.

(También puede encontrar esta pregunta interesante, aunque se trata del patrón de uso de TLS en lugar de SSL frente a TLS (de hecho, podría tener el mismo patrón con SSL). Esto no se aplica a HTTPS de todos modos, ya que HTTPS usa SSL / TLS desde el comienzo de la conexión.)

Bruno
fuente
23

De http://www.thoughtcrime.org/blog/ssl-and-the-future-of-authenticity/

A principios de los 90, en los albores de la World Wide Web, algunos ingenieros de Netscape desarrollaron un protocolo para realizar solicitudes HTTP seguras, y lo que se les ocurrió se denominó SSL. Dado el relativamente escaso conocimiento sobre protocolos seguros en ese momento, así como la intensa presión bajo la que todos trabajaban en Netscape, sus esfuerzos solo pueden verse como increíblemente heroicos. Es sorprendente que SSL haya perdurado tanto como lo ha hecho, a diferencia de otros protocolos de la misma época. Sin embargo, definitivamente hemos aprendido mucho desde entonces, pero lo que pasa con los protocolos y las API es que hay muy poco retroceso.

Hubo dos actualizaciones importantes del protocolo SSL, SSL 2 (1995) y SSL 3 (1996). Estos se hicieron cuidadosamente para ser compatibles con versiones anteriores, para facilitar la adopción. Sin embargo, la compatibilidad con versiones anteriores es una restricción para un protocolo de seguridad para el que puede significar vulnerabilidad hacia atrás.

Por lo tanto, se decidió romper la compatibilidad hacia atrás y el nuevo protocolo llamado TLS 1.0 (1999). (En retrospectiva, podría haber sido más claro nombrarlo TLS 4)

Las diferencias entre este protocolo y SSL 3.0 no son dramáticas, pero son lo suficientemente significativas como para que TLS 1.0 y SSL 3.0 no interoperen.

TLS se ha revisado dos veces, TLS 1.1 (2006) y TLS 1.2 (2008).

A partir de 2015, todas las versiones de SSL están rotas e inseguras (el ataque POODLE) y los navegadores están eliminando el soporte. TLS 1.0 es omnipresente, pero solo el 60% de los sitios admiten TLS 1.1 y 1.2 , un lamentable estado de cosas.


Si está interesado en estas cosas, le recomiendo la charla inteligente y divertida de Moxie Marlinspike en https://www.youtube.com/watch?v=Z7Wl2FW2TcA

Coronel Panic
fuente
Recuerdo una publicación de Usenet news: comp.sources.unix llamada Secure Sockets Layer a fines de la década de 1980. Dudo que tenga mucha o ninguna relación con lo que hizo Netscape además del nombre.
Marqués de Lorne
11

tls1.0 significa sslv3.1

tls1.1 significa sslv3.2

tls1.2 significa sslv3.3

el rfc acaba de cambiar el nombre, puede encontrar que el código hexadecimal de tls1.0 es 0x0301, lo que significa sslv3.1

zhenyu li
fuente
2

TLS mantiene la compatibilidad con SSL y, por lo tanto, el protocolo de comunicación es casi idéntico en cualquiera de las versiones mencionadas aquí. Las dos diferencias importantes entre SSL v.3, TLS 1.0 y TLS 1.2 son la función pseudoaleatoria (PRF) y la función hash HMAC (SHA, MD5, handshake), que se utiliza para construir un bloque de claves simétricas para Cifrado de datos de la aplicación (claves del servidor + claves del cliente + IV). La principal diferencia entre TLS 1.1 y TLS 1.2 es que 1.2 requiere el uso de IV "explícito" para proteger contra ataques CBC, aunque no se necesitan cambios en PRF o protocolo para esto. TLS 1.2 PRF es específico de la suite de cifrado, lo que significa que la PRF se puede negociar durante el protocolo de enlace. SSL fue desarrollado originalmente por Netscape Communications (histórico) y luego mantenido por Internet Engineering Task Force (IETF, actual). TLS es mantenido por el Network Working Group. Aquí están las diferencias entre las funciones de PRF HMAC en TLS:

TLS 1.0 y 1.1

PRF (secreto, etiqueta, semilla) = P_MD5 (S1, etiqueta + semilla) XOR P_SHA-1 (S2, etiqueta + semilla);

TLS 1.2

PRF (secreto, etiqueta, semilla) = P_hash (secreto, etiqueta + semilla)

SensorVista
fuente
0

"Si no está roto, no lo toques". SSL3 funciona bien en la mayoría de los escenarios (se encontró una falla fundamental en el protocolo SSL / TLS en octubre, pero esta es una falla de las aplicaciones más que de un procol en sí), por lo que los desarrolladores no se apresuran a actualizar sus módulos SSL. TLS trae una serie de extensiones útiles y algoritmos de seguridad, pero son una adición útil y no imprescindible. Entonces, TLS en la mayoría de los servidores sigue siendo una opción. Si tanto el servidor como el cliente lo admiten, se utilizará.

Actualización: en '2016 SSL 3, e incluso TLS hasta 1.2, son vulnerables a varios ataques y se recomienda la migración a TLS 1.2. También existen ataques a las implementaciones de TLS 1.2, aunque dependen del servidor. TLS 1.3 está actualmente en desarrollo. Y ahora TLS 1.2 es imprescindible.

Devolución de llamada de Eugene Mayevski
fuente
2
No, se trata de una falla de protocolo y los desarrolladores deben actualizar sus pilas SSL. Dicho esto, existen pautas para usar la extensión de renegociación en RFC 5746 para SSLv3, además de las de TLS.
Bruno
Si matas a alguien con el cuchillo, este no es el defecto del cuchillo, sino el de tu cerebro. Igual que aquí. Si el protocolo se usó de la manera en que no fue diseñado, no es una falla del protocolo.
Devolución de llamada de Eugene Mayevski el
1
El protocolo se diseñó de manera que la aplicación además de él debería tratarlo como un socket normal tanto como sea posible. El problema de la renegociación, sin la nueva extensión, fuerza el conocimiento de la capa de aplicación (por ejemplo, HTTP). Hay un hilo interesado sobre este tema en la lista de correo IETF TLS: ietf.org/mail-archive/web/tls/current/msg04000.html
Bruno
1
Estoy de acuerdo en que parte de esto debería hacerse a nivel de aplicación, pero no tengo conocimiento de ninguna implementación y el protocolo lo tiene en cuenta. Las pilas normalmente pueden hacer frente a la renegociación que inician legítimamente, pero no tanto si un MITM la inicia (que es el problema). Es por eso que el grupo IETF TLS decidió arreglarlo en el nivel TLS, y también es por eso que la gente realmente debería activar esa extensión o deshabilitar la renegociación por completo.
Bruno
1
Hay un problema más fundamental en SSL 3.0 que el que mencionas. Por ejemplo, oráculo de relleno CBC, así como la reutilización del IV o del registro anterior. El primero todavía afecta a TLS, pero se puede solucionar, mientras que el segundo se corrige en TLS 1.1.
Nikos
0

https://hpbn.co/transport-layer-security-tls/ es una buena introducción

El protocolo SSL se desarrolló originalmente en Netscape para habilitar la seguridad de las transacciones de comercio electrónico en la Web, lo que requería cifrado para proteger los datos personales de los clientes, así como garantías de autenticación e integridad para garantizar una transacción segura. Para lograr esto, se implementó el protocolo SSL en la capa de aplicación, directamente encima de TCP (Figura 4-1), permitiendo que los protocolos por encima de él (HTTP, correo electrónico, mensajería instantánea y muchos otros) funcionen sin cambios al tiempo que brindan seguridad en las comunicaciones comunicarse a través de la red.

Cuando SSL se usa correctamente, un observador de terceros solo puede inferir los puntos finales de la conexión, el tipo de cifrado, así como la frecuencia y una cantidad aproximada de datos enviados, pero no puede leer ni modificar ninguno de los datos reales.

SSL 2.0 fue la primera versión del protocolo publicada públicamente, pero fue rápidamente reemplazada por SSL 3.0 debido a una serie de fallas de seguridad descubiertas. Debido a que el protocolo SSL era propiedad de Netscape, el IETF hizo un esfuerzo por estandarizar el protocolo, lo que resultó en RFC 2246, que se publicó en enero de 1999 y se conoció como TLS 1.0. Desde entonces, el IETF ha seguido iterando en el protocolo para abordar fallas de seguridad, así como para extender sus capacidades: TLS 1.1 (RFC 2246) se publicó en abril de 2006, TLS 1.2 (RFC 5246) en agosto de 2008, y el trabajo está ahora en curso para definir TLS 1.3.

Coronel Panic
fuente