Credenciales delegadas para TLS: ¿qué es este nuevo protocolo?

Hoy en día la privacidad y la seguridad de los usuarios es la prioridad número uno de muchas empresas. Como todos sabéis, a la hora de navegar por Internet, tenemos el protocolo HTTPS, el cual utiliza el protocolo TLS (Transport Layer Security) para cifrar las comunicaciones punto a punto. Hoy en RedesZone os vamos a hablar de un proyecto para mejorar la seguridad de TLS, concretamente para mejorar la política de los certificados digitales, su nombre es «Delegated Credentials for TLS», es decir, credenciales delegadas para TLS.

La famosa empresa Mozilla, desarrolladora del navegador Mozilla Firefox, junto a la red social Facebook, el famoso hosting Cloudfare, y más miembros de la comunidad IETF (Internet Engineering Task Force), anunciaron las especificaciones técnicas para el nuevo protocolo llamado “Delegated Credentials for TLS”, o también conocido como credenciales delegadas para TLS.

¿Qué son las credenciales delegadas para TLS?

Son una nueva forma sencilla de poder implementar certificados temporales sin tener que sacrificar la confianza de las conexiones seguras, es decir, es una extensión del protocolo TLS actual, cuyo objetivo es evitar el uso indebido de certificados robados. Para conseguir esto, la idea es reducir la validez de los certificados al mínimo posible, llegando a ser válidos incluso solo unas horas, con el objetivo de proteger a los usuarios.

Comó funciona actualmente TLS

Para poder comprender cómo funcionarán las nuevas credenciales TLS, es necesario que repasemos cómo funcionan actualmente. Casi todas las páginas web utilizan hoy en día certificados TLS, para que la conexión sea segura usando el protocolo HTTPS.

Para que una página web obtenga un certificado SSL/TLS para incorporarlo al servidor web y que el navegador de los clientes lo reconozcan, es necesario que una CA (Autoridad de Certificación) emita y firme digitalmente dicho certificado, el cual es válido por norma general durante uno o dos años. Hay excepciones como la CA Let’s Encrypt, la cual emite certificaciones con una duración de tan solo 3 meses, pero con un sistema automatizado podremos renovarlo muy fácilmente. Cuando nos conectamos a una página web usando el protocolo HTTPS, el servidor web proporciona el certificado SSL/TLS al navegador, para así confirmar su identidad antes de intercambiar cualquier información.

Rompen el certificado TLS en Chrome y Firefox

¿Por qué necesitamos credenciales delegadas para TLS?

Entonces la pregunta que os estaréis haciendo es: por qué necesitamos credenciales delegadas para TLS. La respuesta es que si un certificado se ve comprometido antes de que caduque, lo único que puede hacer el webmaster que gestiona la página web afectada, es solicitar a la autoridad de certificación CA, que cancele el certificado robado y vuelva a crear uno nuevo con una pareja de claves público/privada diferente.

Sin embargo, en los tiempos que corren, los mecanismos para cancelar un certificado filtrado no son del todo óptimo. Lo ideal para todo el mundo sería que los navegadores pudieran detectar si el certificado ya no es válido o seguro de manera instantánea, y que el navegador bloquee el acceso automáticamente. Sin embargo, este proceso no es instantáneo, y es posible que en el intervalo de tiempo entre que se cancela el certificado y que se actualiza la base de datos de certificados, hayamos entrado en una web con un certificado digital falso, lo que afectaría a nuestra seguridad y privacidad.

Muchas empresas y sitios web están probando desde hace un tiempo, certificados TLS, que tienen una validez inferior a lo «normal», para intentar que el tiempo de exposición sea lo más corto posible. Algunas empresas que hacen esto son Facebook, para que así sea más seguro navegar a través de la red social.

Sin embargo, el problema reside en que la CA es una organización aparte de todas los sitios web, y una página web que use este sistema de corta duración de los certificados, como es lógico, necesitará obtener nuevos certificados con mucha más frecuencia, y actualmente no existe ninguna manera para que los sitios web cambien continuamente los certificados cada pocas horas.

La solución con credenciales delegadas para TLS

La solución a este problema viene dada por las credenciales delegadas para TLS, usando un nuevo protocolo criptográfico que equilibra el equilibrio entre la vida útil y la fiabilidad. Gracias a las credenciales delegadas para TLS, los sitios web (las empresas) pueden tomar el control parcial sobre el proceso de firma de los nuevos certificados para ellas mismas, siempre con una limitación de validez de no más de 7 días y así no tener que depender de ninguna autoridad de certificación CA.

Comó funciona

Las credenciales delegadas permiten a las empresas titulares de certificados inscritos, utilizar estos certificados como una especie de sub-sub-CA para firmas sub-certificados, cuya autoridad certificadora es delegada por el certificado de entidad final real. Una manera fácil de entender, sería que una empresa puede obtener un certificado firmado de su autoridad de certificación, y que gracias a él puede generar y firmar un certificado valido como máximo de siete días. Para el usuario del sitio web, los navegadores que son compatibles con el nuevo protocolo, utilizarán una clave pública de credencial delegada de corta duración de la página web, para establecer la conexión TLS segura con el servidor web.

Por lo tanto, la diferencia es que en lugar de implementar la clave privada real asociada con el certificado en todos los servidores, las empresas ahora pueden crear, implementar y emitir credenciales delegadas internamente. La mejora viene dada porque es más fácil para una empresa que tiene una web, crear credenciales delegadas que un certificado firmado por una CA.

Cuando nos conectamos a una página web con un navegador compatible con credenciales delegadas, no usará el certificado TLS «normal»,  sino que el servidor proporciona un token (contraseña) de corta duración al navegador web del usuario para validarlo.

Quien tiene actualmente credenciales delegadas

La red social Facebook ya es compatible con las credenciales delegadas. Las librerías criptográficas OpenSSL y BoringSSL, también son compatibles con las credenciales delegadas para el protocolo TLS. Mozilla en su navegador Firefox admite también las credenciales delegadas en su última versión. Sin embargo, de serie no viene activado para soportar esta funcionalidad.

Próximamente la mayoría de webs adoptarán este protocolo, ya que será adoptado como estándar por la IETF.

Cómo activar en Firefox las credenciales delegadas

Como hemos comentado, de serie no vienen activadas las credenciales en el navegador Mozilla Firefox, pese a ser totalmente compatible en su última versión. Para poder usar las credenciales delegadas debemos seguir los siguientes pasos:

  1. Abrir el navegador Mozilla Firefox e introducir lo siguiente en la barra de búsqueda: about:config
  2. Clicar en acepto el riesgo.
  3. Nos aparecerá una lista de opciones y debemos buscar security.tls.enable_delegated_credentials
  4. Debemos hacer doble clic sobre security.tls.enable_delegated_credentials y cambiar el valor a True
  5. Una vez cambiado cerramos el navegador y volvemos a abrirlo.

Para comprobar que funciona correctamente, podemos ir al siguiente enlace donde nos mostrará si funciona correctamente.

Conclusiones de credenciales delegadas para TLS

Las credenciales delegadas para TLS son un gran avance en cuanto a seguridad y fiabilidad, tanto para los usuarios como las empresas. Gracias a esto, pese a no erradicar que un certificado pueda ser falsificado, sí podemos estar más tranquilos, ya que en cuanto se detecte el problema, se emitirá rápidamente un certificado nuevo para que la confidencialidad esté garantizada.

Si utilizáis el navegador Mozilla Firefox, activéis la opción de “Delegated Credentials for TLS” para que cuando las páginas web empiecen a utilizarlo, estéis completamente preparados. Esperemos que de aquí a poco tiempo ,estos certificados sustituyan a los actuales, que pese a ser seguros, en caso de falsificarlos pueden conseguir engañar a los usuarios.

Os recomendamos acceder al blog de Cloudflare donde hablan sobre esto, y también en el Blogthinkbig de Telefónica donde Sergio De Los Santos habla sobre ello.