ElevenPaths crea un addon para que Firefox sea compatible con Certificate Transparency (porque Firefox sigue sin hacerlo)

Área de Innovación y Laboratorio de ElevenPaths    18 febrero, 2019
ElevenPaths crea un addon para que Firefox sea compatible con Certificate Transparency (porque Firefox sigue sin hacerlo)
Certificate Transparency es ya obligatorio en Chrome para los nuevos certificados creados desde finales de 2017. Esto significa que se mostrará una alerta en las páginas protegidas por certificados que no estén presentes en los logs que Chrome comprueba para esa fecha. Ningún otro navegador soporta Certificate Transparency todavía. Firefox lleva años intentándolo, pero no ha podido conseguirlo por problemas de rendimiento que no ha solucionado. Veamos qué hemos hecho y por qué.

Connection not private alert imagen


Hemos realizado nuestro propio comprobador a través de una extensión

Visto que en Mozilla no tiene fecha aún para activar esta funcionalidad,
hemos vuelto a crear una extensión propia para el navegador para saber si el sitio cumple con Certificate Transparency, o al menos saber si
tiene los SCT correctos.

Un certificado se considera
dado de alta en los logs si cuenta con un SCT (Signed Certificate
Timestamp
). Este SCT se le otorga al dueño del certificado original cuando
se introduce en el log y el navegador debe verificar si es real y está
al día, esto es lo que Chrome viene realizando durante ya
hace un tiempo.

El SCT puede ofrecerse al usuario de tres maneras
diferentes:

  • Incrustado en el certificado.
  • A través de una extensión TLS.
  • Aprovechando OCSP.

No es sencillo desde la perspectiva técnica de un plugin en
Firefox llegar a la capa de TLS o OCSP y comprobar el SCT. Por eso
nuestro plugin por ahora solo comprueba el SCT incrustado en los propios
certificados.
Aunque no es la solución ideal, es el escenario mayoritario y la
vía por la que se distribuyen la mayoría de los SCT.

Aquí puedes descargarte la extensión directamente desde el repositorio oficial de Firefox, programada por nuestro compañero en Buenos Aires, Tomás Coiro.

Certificate Transparency imagen

¿Por qué no usar la fórmula que se supone ya existe en Mozilla?

Mozilla incluyó hace un tiempo una API para extensiones que permitía
calcular el valor de Certificate Transparency, básicamente, si el lugar
había hecho sus deberes con el certificado.

Certificate Transparency status imagen

Pero no hemos podido usarla porque, por defecto, no funciona. Encontraron problemas de rendimiento en la API, y decidieron hace dos años, desactivarlo por defecto.

Problemas rendimiento API imagen

Aun así, es muy sencillo volverlo a activar desde la configuración del navegador.

Activación API imagen

Aunque no servirá de mucho. No serás capaz de ver nada, a no ser que muestres por consola un log. Sin la opción activa aparecía un “not applicable“. Con ella un “compliant” o “not_enough_scts” según el caso.

Not enough scts imagen

Podríamos haber activado la opción por defecto en la extensión y monitorizar su salida, pero no lo hemos considerado lo más adecuado dado el impacto en el rendimiento y, además, por otras razones que detallamos a continuación.

Ahondando un poco más en el funcionamiento (por ahora, “en pausa”) de Certificate Transparency en Firefox… ¿Cuántos SCT son suficientes para Firefox? Pues no lo tenemos claro, porque realizan unas cuentas algo extrañas.

SCT Policy Enforcer imagen
En cualquier caso (además del problema de rendimiento que reconocen), hemos comprobado que la mayoría de las veces, no son suficientes los SCT para satisfacer la política. Nos aparece constantemente “not_enough_sct, cuando Chrome sí que lo da por válido. 

Not enough SCT imagen
En resumen, Firefox está trabajando para aportar la tecnología Certificate Transparency a su navegador, pero parece que existen otras prioridades y tras un primer intento, el trabajo ha quedado algo atascado. En todo caso, mientras lo solucionan, podéis utilizar nuestra extensión Certificate Transparency como ayuda.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *