GNU/Linux >> Tutoriales Linux >  >> Ubuntu

TLS vs SSL:¿Cuál es la diferencia?

Introducción

TLS (Transport Layer Security) y SSL (Secure Sockets Layer) se mencionan a menudo cuando se habla de la seguridad de Internet y del sitio web. Para hacer las cosas aún más confusas para los legos, estos términos a menudo se usan indistintamente.

Pero, ¿cómo funcionan realmente TLS y SSL? ¿Hay alguna diferencia que deba tener en cuenta?

En este tutorial, explicaremos los protocolos de seguridad TLS y SSL, las diferencias entre ellos y cuál debe usar.

TLS frente a SSL

Tanto TLS como SSL funcionan como protocolos criptográficos que se utilizan para cifrar datos entre un servidor web y los usuarios.

La versión original de SSL fue desarrollada por Netscape en 1994, pero nunca se lanzó oficialmente debido a fallas de seguridad fácilmente explotables. En febrero de 1995 se lanzó una versión mejorada 2.0, pero tenía graves fallas propias, que serían parcheadas por SSL 3.0 solo un año después.

TLS fue concebido por Consensus Development como una actualización de SSL 3.0. Fue lanzado en 1999 y sería reemplazado en 2006 por TLS 1.1, que agregó protección contra CBC (Cipher Block Chaining). En 2008, TLS 1.2 agregó un conjunto adicional de actualizaciones, siendo la última versión TLS 1.3, lanzada en 2018.

Si bien TLS y SSL son fundamentalmente similares, teniendo en cuenta que TLS 1.0 se basó en SSL 3.0, aún existen diferencias en la forma en que funcionan:

Cuestión de apretones de manos

Un "apretón de manos" se refiere a la parte del proceso de comunicación entre un servidor web y un usuario que establece una conexión segura y determina qué tipo de cifrado se utiliza.

En términos generales, tanto el proceso de protocolo de enlace SSL como el TLS siguen estos pasos:

1. El sistema del usuario final solicita una conexión segura y recibe una lista de conjuntos de cifrado, conjuntos de herramientas algorítmicas que se utilizan para cifrar datos, desde el servidor. El sistema compara esto con su propia lista de conjuntos de cifrado y selecciona uno que tanto él como el servidor pueden usar.

2. El servidor proporciona un certificado digital como prueba de identidad. La máquina del usuario recibe el certificado y confirma su autenticidad.

3. Utilizando la clave pública del servidor, el sistema del usuario final y el servidor acuerdan una clave de sesión utilizan para cifrar datos.

Nota: Como su nombre lo indica, una clave de sesión solo se usa para una única sesión de comunicación. Si la conexión entre el usuario y el servidor se interrumpe por algún motivo, se crea una nueva clave de sesión una vez que se restablece la comunicación.

Al realizar un protocolo de enlace, SSL utiliza un puerto para establecer la conexión (de forma predeterminada, este es el puerto 443). TLS, por otro lado, comienza el primer paso del protocolo de enlace (solicitando una conexión segura) a través de un canal no seguro y cambia al puerto 443 una vez que comienza el protocolo de enlace.

¿Cómo funcionan TLS y SSL para proteger los datos?

Como discutimos anteriormente, el proceso de negociación implica que el servidor envíe un certificado digital y una clave pública al sistema del usuario final para establecer una conexión segura. La instalación de un certificado SSL/certificado TLS autentica el servidor web y proporciona claves públicas y privadas que se utilizan durante el protocolo de enlace.

Sin un certificado, un usuario que intenta acceder al servidor web recibe un mensaje “su conexión no es privada” mensaje de error. Esto le indica al usuario que sus datos pueden estar expuestos y es probable que haga que abandone su sitio web.

¿Debe utilizar TLS o SSL?

Actualmente, tanto SSL como las versiones anteriores de TLS se consideran obsoletas. SSL 2.0 y 3.0 quedaron obsoletos por IETF en 2015, mientras que TLS 1.0 y 1.1 quedaron obsoletos a principios de 2020 y actualmente se están eliminando de las nuevas versiones de los navegadores.

Al elegir entre los dos, TLS es la opción obvia. No solo sirve como una actualización a SSL, sino que también funciona mucho mejor.

Nota: Las versiones más nuevas de los navegadores web han dejado de ser compatibles con SSL y están alentando a los propietarios de sitios web a pasarse a TLS. Por ejemplo, Google Chrome comenzó a mostrar la ERR_SSL_OBSOLETE_VERSION advertencia en sitios web que aún usan SSL.

¿Cómo verificar qué protocolo TLS/SSL está habilitado?

Si no está seguro de si un servidor web está utilizando una versión obsoleta de TLS/SSL, puede comprobarlo rápidamente utilizando un navegador web.

En Google Chrome y Microsoft Edge, haz clic derecho en un área en blanco de una página web y haz clic en Inspeccionar . En la Inspeccionar ventana, debajo de Seguridad pestaña, encuentre una descripción general del certificado digital del sitio web.

Usando Firefox, haga clic derecho en la página y haga clic en Ver información de la página . Encontrará los detalles del certificado digital en Seguridad pestaña.

Alternativamente, use una herramienta de verificación de TLS/SSL en línea.

¿Cómo deshabilitar versiones anteriores de TLS y SSL?

TLS 1.3 es el protocolo criptográfico más reciente y seguro que se utiliza para establecer una comunicación segura entre el sistema de un usuario y un servidor web. Las versiones obsoletas de TLS y SSL representan un riesgo de seguridad debido a las vulnerabilidades de seguridad. Por motivos de seguridad, deshabilite las versiones 2 y 3 de SSL y las versiones 1.0 y 1.1 de TLS en los servidores activos.

Los únicos protocolos permitidos en un servidor web deben ser TLS 1.2 y TLS 1.3.

Los pasos para deshabilitar SSL 2.0, 3.0 o TLS 1.0 dependen de si el servidor usa Apache, NGINX o Tomcat.

Apache

Para deshabilitar SSL 2 y 3, y TLS 1.0 y 1.1 en un servidor Apache, siga los pasos a continuación.

1. Localice el archivo de configuración de Apache. La ubicación predeterminada del archivo depende de su sistema:

  • En los sistemas basados ​​en Debian/Ubuntu, la ubicación predeterminada del archivo es /etc/apache2/apache2.conf
  • En los sistemas basados ​​en Debian/Ubuntu configurados en un host virtual, la ubicación predeterminada del archivo es /etc/apache2/sites-enabled/
  • En los sistemas basados ​​en Red Hat/CentOS, la ubicación predeterminada del archivo es /etc/httpd/conf/httpd.conf
  • En los sistemas basados ​​en Red Hat/CentOS configurados en un host virtual, la ubicación predeterminada del archivo es /etc/httpd/sites-enabled/

2. Abra el archivo de configuración y busque el SSLProtocol entrada.

3. Edite la entrada para deshabilitar SSL 2.0, SSL 3.0, TLS 1.0 y TLS 1.1:

SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1

4. Reinicie el servicio Apache para que los cambios surtan efecto:

service apache2 restart

o

service httpd restart

Nota: Según la configuración de su servidor, es posible que deba realizar estos cambios en varios lugares, no solo en el archivo de configuración predeterminado.

NGINX

Para deshabilitar SSL 2 y 3, y TLS 1.0 y 1.1 en un servidor NGINX, siga los pasos a continuación.

1. Busque el archivo de configuración de NGINX. La ubicación predeterminada del archivo de configuración global es /etc/nginx/nginx.conf , pero puede haber configuraciones de bloqueo de servidor individuales en /etc/nginx/sites-enabled/ .

2. Edite el archivo de configuración para habilitar TLS 1.2:

ssl_protocols TLSv1.2;

3. Reinicie el servicio NGINX:

service nginx restart

Nota: Aprenda a instalar un certificado SSL en NGINX.

Tomcat

Para deshabilitar SSL 2 y 3, y TLS 1.0 y 1.1 en un servidor Tomcat, siga los pasos a continuación.

1. Busque el archivo de configuración de Tomcat. La ubicación predeterminada es TOMCAT_HOME/conf/server.xml .

2. Edite el archivo de configuración para habilitar TLS 1.2.

  • Para Tomcat 5 y 6 (anteriores a 6.0.38):
sslProtocols = "TLSv1.2"
  • Para Tomcat 6 y 7 (6.0.38 o posterior), edite la siguiente línea:
sslEnabledProtocols = "TLSv1.2"

3. Reinicie el servicio Tomcat para que los cambios surtan efecto.


Ubuntu
  1. Linux vs Unix:¿Cuál es la diferencia?

  2. Ubuntu Server vs Desktop:¿Cuál es la diferencia?

  3. ¿La diferencia entre [[ $a ==Z* ]] y [ $a ==Z* ]?

  4. ¿Cuál es la diferencia entre los métodos Tasksel y Normal?

  5. ¿La diferencia entre Lubuntu y Lxde?

RPM frente a YUM:aprenda la diferencia

VPN vs VDI:¿Cuál es la diferencia?

Conmutación por error frente a Conmutación por recuperación:¿Cuál es la diferencia?

Sabores de Ubuntu:¿Cuál es la diferencia?

Cómo comprobar la fecha de caducidad de SSL en Plesk

¿Cuál es la diferencia entre una consola, una terminal y un shell?

    SSL TLS
    Conjuntos de cifrado Ofrece soporte para el paquete de cifrado Fortezza. Ofrece soporte para RC4, Triple DES, AES, IDEA.
    Mensajes de alerta Mensaje de alerta "Sin certificado". Diferentes mensajes de alerta según la situación.
    Protocolo de registro Utiliza MAC (Código de autenticación de mensajes). Utiliza HMAC (Código de autenticación de mensajes basado en hash).
    Proceso de apretón de manos El cálculo de hash incluye el secreto maestro y el pad. Los hashes se calculan sobre el mensaje de protocolo de enlace.
    Autenticación de mensajes Método ad-hoc para adjuntar detalles clave y datos de la aplicación. Adjuntar detalles clave y datos de la aplicación a través de HMAC.