¿Es TLS 1.0 más seguro que TLS 1.2?

17

Solo quería confirmar, el administrador de mi sistema me está diciendo que TLS 1.0 es más seguro que TLS 1.2 y me dijo que debería permanecer en TLS 1.0 ... ¿es esto correcto?

Mencionó que TLS 1.2 es más vulnerable y que TLS 1.0 es más seguro. Y que el error Heartbleed es el más vulnerable de TLS 1.1. y TLS 1.2 y NO de TLS 1.0.

¡Gracias!

    
pregunta olimits7 01.05.2015 - 16:50
fuente

4 respuestas

48

Su administrador lo entendió realmente mal (o hubo algún contratiempo en la traducción).

TLS 1.1 y 1.2 solucionan algunos problemas en TLS 1.0 (es decir, la previsibilidad de IV para el cifrado de registros CBC). Es posible solucionar este problema en TLS 1.0, pero depende de la dificultad con la que trabajen las implementaciones. Entonces, en ese sentido, TLS 1.1 y 1.2 son más seguros que TLS 1.0, ya que son más fáciles de implementar de forma segura.

El llamado "heartbleed" no es un defecto de protocolo ; es un error de implementación que está presente en algunas versiones de OpenSSL (OpenSSL es una implementación generalizada de SSL / TLS , pero ciertamente no es el único). Cuando una versión de OpenSSL tiene ese error, lo tiene para todas las versiones de protocolo, incluido TLS 1.0. Por lo tanto, cuando se aplica Heartbleed, se aplica igualmente a TLS 1.0, TLS 1.1 y TLS 1.2. Cuando no se aplica, bueno, no se aplica.

La fuente de la confusión es que su administrador (o sus fuentes) no parece entender o conceptualizar la diferencia entre los protocolos y implementaciones . TLS 1.0 y TLS 1.2 son protocolos descritos en estándares relevantes ( RFC 2246 y RFC 5246 , respectivamente). Un protocolo dice qué bytes deben enviarse cuando. Una implementación es una pieza de software que ejecuta el protocolo. OpenSSL es una implementación. Sucede que el error "heartbleed" se produce en la implementación de una característica de protocolo relativamente nueva (la "extensión de latido") que las implementaciones de OpenSSL muy antiguas no conocen. Por lo tanto, las implementaciones muy antiguas de OpenSSL no tienen problemas de corazón (aunque tienen otros problemas graves, son muy antiguas). Las mismas muy antiguas implementaciones no saben nada de TLS 1.1 y TLS 1.2. Por lo tanto, en la mente de su administrador, los dos hechos independientes se fusionaron en un mantra único (pero defectuoso), que dice erróneamente que el corazón de corazón es un problema de seguridad de TLS 1.1 y 1.2.

    
respondido por el Tom Leek 01.05.2015 - 17:06
fuente
22

TLS 1.0

TLS 1.0 fue una actualización de SSL 3.0 y las diferencias no fueron dramáticas, pero son lo suficientemente significativas como para que SSL 3.0 y TLS 1.0 no interactúen.

Algunas de las principales diferencias entre SSL 3.0 y TLS 1.0 son:

  • Las funciones de derivación de claves son diferentes
  • Los MAC son diferentes: SSL 3.0 usa una modificación de un HMAC temprano, mientras que TLS 1.0 usa HMAC.
  • Los mensajes terminados son diferentes
  • TLS tiene más alertas
  • TLS requiere soporte DSS / DH

TLS 1.1

TLS 1.1 es una actualización de TLS 1.0.

Los principales cambios son:

  • El Vector de Inicialización Implícita (IV) se reemplaza con un IV explícito para proteger contra los ataques de Cipher Block Chaining (CBC).
  • El manejo de los errores rellenados se cambia para usar la alerta bad_record_mac en lugar de la alerta decryption_failed para proteger contra los ataques de CBC.
  • Los registros de la IANA están definidos para parámetros de protocolo
  • Los cierres prematuros ya no hacen que una sesión no sea reanudable.

TLS 1.2

TLS 1.2 se basa en TLS 1.1, contiene una flexibilidad mejorada.

Las principales diferencias incluyen:

  • La combinación MD5 / SHA-1 en la función pseudoaleatoria (PRF) se reemplazó con las PRF especificadas en la suite de cifrado.
  • La combinación MD5 / SHA-1 en el elemento con firma digital se reemplazó con un solo hash. Los elementos firmados incluyen un campo que especifica explícitamente el algoritmo hash utilizado.
  • Hubo una limpieza sustancial en la capacidad del cliente y del servidor para especificar qué algoritmo de hash y de firma aceptarán.
  • Adición de compatibilidad con el cifrado autenticado con modos de datos adicionales.
  • La definición de las extensiones TLS y los conjuntos de cifrado AES se fusionaron.
  • Comprobación más estricta de los números de versión de EncryptedPreMasterSecret.
  • Muchos de los requisitos fueron ajustados
  • La longitud de Verify_data depende de la suite de cifrado
  • La descripción de las defensas de ataque Bleichenbacher / Dlima se ha limpiado.

Esta respuesta se basa en las siguientes fuentes:

respondido por el Ali 01.05.2015 - 16:54
fuente
5

Quienquiera que le haya dicho esto, probablemente no entienda de qué se trata Heartbleed: es una vulnerabilidad específica de la implementación (en algunas versiones de OpenSSL), no está realmente relacionado con la versión de SSL / TLS.

De enlace :

  

Las versiones vulnerables han estado disponibles durante más de dos años y han sido adoptadas rápidamente por los sistemas operativos modernos. Un factor importante que contribuyó ha sido que las versiones 1.1 y 1.2 de TLS estaban disponibles con la primera versión vulnerable de OpenSSL (1.0.1) y la comunidad de seguridad ha estado presionando a la TLS 1.2 debido a ataques anteriores contra TLS (como BEAST).

Esto no dice de ninguna manera que TLS 1.1 y 1.2 sean más vulnerables que 1.0. Solo significa que las versiones anteriores de OpenSSL no tenían ese error, pero tampoco eran compatibles con TLS 1.1 y 1.2. Al actualizar a versiones más recientes de OpenSSL para obtener soporte para versiones más nuevas de TLS (debido a problemas con versiones anteriores de TLS), se realizaron otros cambios en la base de código de OpenSSL, incluida la introducción de ese error. Esto tiene más que ver con la línea de tiempo de desarrollo de OpenSSL que con las versiones TLS.

Desde entonces, OpenSSL se ha corregido para este problema en particular (por lo que obviamente se recomienda usar una versión que no sea vulnerable).

En general, las versiones más recientes de TLS tienen mejoras de seguridad, en particular, TLS 1.2 tiene soporte para conjuntos de cifrado que generalmente se consideran más seguros.

    
respondido por el Bruno 01.05.2015 - 17:05
fuente
3
  

Y que el error Heartbleed es el más vulnerable de TLS 1.1. y TLS 1.2 y NO de TLS 1.0.

Es posible que su administrador haya confundido algunos hechos: Es cierto, que Heartbleed está conectado de una manera a TLS 1.1 y TLS 1.2. Pero la conexión es solo, que la versión 1.0.1 de OpenSSL no solo agregó soporte para TLS 1.1 y TLS 1.2, sino que también introdujo soporte para la extensión Heartbeat. El error Heartbleed fue causado por errores de implementación en el manejo de esta extensión. Y, por lo tanto, solo los servidores más nuevos que admiten TLS 1.1 y TLS 1.2 están afectados por el problema.

El error de Heartbleed ahora está arreglado, pero el soporte para TLS 1.1 y TLS 1.2 y también la extensión Heartbeat siguen ahí. Además, otras pilas TLS tienen soporte para las versiones más nuevas de TLS sin tener soporte para la extensión Heartbeat.

    
respondido por el Steffen Ullrich 01.05.2015 - 18:03
fuente

Lea otras preguntas en las etiquetas