Cómo deshabilitar TLS 1.0 y TLS 1.1 en un servidor web Apache.
Microsoft, Google y Mozilla han declarado que dejarán de ofrecer soporte para TLS 1.0 y TLS 1.1 en marzo de 2020 en sus navegadores web (Edge, Chrome y Firefox, respectivamente).
Cuando accedemos a una web por HTTPS, cliente y servidor negocian la encriptación con un protocolo que ambos soporten (TLS 1.0, TLS 1.2, TLS 1.3, etc.). A partir de marzo de 2020, TLS 1.1 ya no será aceptado como protocolo válido por los navegadores web de las compañías mencionadas.
Aprovechando que los navegadores web actuales ya no podrán usar TLS 1.1 o inferior, podemos aprovechar para deshabilitar estos protocolos de encriptación HTTPS obsoletos e inseguros en nuestros servidores web. Por un lado ganaremos en seguridad; por otro lado perderemos en compatibilidad con ordenadores que usen navegadores antiguos (NOTA: nadie debería usar navegadores antiguos).
Apache, en su rama actual 2.4.x, soporta TLS 1.0 y TLS 1.1 por defecto.
Para deshabilitar estos protocolos, debemos editar el archivo ssl-global.conf:
HOST# vi /etc/apache2/ssl-global.conf
En este archivo, encontraremos la siguiente sección:
# SSL protocols
# Supporting TLS only is adequate nowadays
SSLProtocol all -SSLv2 -SSLv3
Por defecto, Apache ya no acepta encriptación SSL, solo TLS.
Opciones
Para dejar de aceptar TLS 1.0 y TLS 1.1 en Apache, deberemos cambiar la directiva SSLProtocol all. Al modificarla, podemos usar uno de estos dos métodos, segun si queremos aceptar o rechazar cipher suites en nuestro servidor web.
Método 1
Con el método 1, indicamos al servidor web qué protocolos no acepta. Es decir, el servidor aceptará todos aquellos cipher suites que no estén en la lista.
Para quitar protocolos de encriptación, debemos usar el signo "-" precediendo el nombre del protocolo:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1.0 -TLSv1.1
Método 2
Con el método 2 indicamos solo aquellos cipher suites que sí acepta el servidor.
Para permitir solo ciertos protocolos, los indicamos explícitamente:
SSLProtocol all TLSv1.2 TLSv1.3
Conclusión
Personalmente, prefiero el método 1, ya que de este modo, podemos ir especificando los protocolos que van quedando obsoletos a medida que vayan quedando obsoletos. Bajo mi punto de vista, es más fácil estar al día sobre qué protocolos se "deprecan" que sobre qué protocolos se lanzan.
Esta línea falla en algunas versiones de Apache:
ResponderEliminarSSLProtocol all -SSLv2 -SSLv3 -TLSv1.0 -TLSv1.1
Debería ser:
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
Un saludo
¡Gracias por tu aportación!
EliminarMuy buen aporte. Lo probaré
ResponderEliminarSaludos