Glosario / Referencia para desarrolladores
Cadena de certificados
- ¿Qué es una cadena de certificados?
- Una cadena de certificados es la lista ordenada de certificados que conecta el que presenta un servidor con un certificado raíz en el que su dispositivo ya confía, con cada eslabón firmado por el siguiente.
Las cadenas de certificados existen para que las claves más valiosas puedan permanecer fuera de línea. Un certificado raíz firma unos pocos certificados intermedios y luego vuelve a guardarse en una caja de seguridad, y los intermedios hacen el trabajo diario de firmar servidores. La verificación va en sentido contrario, desde el certificado que usted recibió hasta algo que su dispositivo ya tenía, y falla si algún eslabón falta, ha caducado o no se reconoce.
Cómo funciona
Una cadena de certificados típica consta de tres posiciones, y un servidor solo envía dos de ellas.
En la base está el certificado de hoja, emitido para un conjunto concreto de nombres de dominio. Por encima hay uno o más certificados intermedios, cuya función es aislar el certificado raíz del uso cotidiano. En lo alto está el certificado raíz, autofirmado y presente en su almacén de certificados desde mucho antes de que usted visitara el sitio. El servidor envía el certificado de hoja y los intermedios, porque enviar el certificado raíz añadiría bytes y no probaría nada: un certificado raíz solo cuenta si usted ya lo tenía.
La validación no es un recorrido recto hacia arriba por una lista. Un certificado puede estar firmado por más de un emisor, una práctica llamada firma cruzada, así que un cliente puede encontrarse ante varias rutas candidatas y tiene que encontrar una que termine en un certificado raíz que posea. Por eso el mismo sitio web carga en una computadora portátil nueva y falla en un teléfono antiguo. Las rutas difieren porque los almacenes de certificados difieren.
La ilustración más clara sigue siendo la transición de Let's Encrypt. Su propio certificado raíz, ISRG Root X1, llevaba la firma cruzada del antiguo DST Root CA X3, para que los dispositivos que todavía no habían añadido X1 pudieran construir igualmente una ruta. DST Root CA X3 caducó el 30 de septiembre de 2021. Los dispositivos que tenían X1 cambiaron de ruta sin que nadie lo notara, mientras que las versiones de Android anteriores a la 7.1.1 y varias bibliotecas TLS heredadas (legacy) no lo hicieron, y las conexiones fallaron en todo el mundo en una sola tarde. No se había hackeado nada ni se había filtrado ninguna clave. Había pasado una fecha.
Dónde aparece
Los problemas de la cadena de certificados parecen alarmantes y casi siempre son banales.
El error de configuración más común en un servidor es un certificado intermedio olvidado. Los navegadores a menudo lo disimulan guardando en caché certificados intermedios de visitas anteriores u obteniéndolos de una URL incluida en el certificado, así que el sitio funciona para el administrador y falla en las herramientas de línea de comandos y en los teléfonos, lo que lo convierte en un error memorablemente molesto de localizar.
Para quien gestiona bitcoin, la lectura útil de un error de la cadena de certificados es de diagnóstico. Cuando un exchange da un error de certificado en un dispositivo y funciona en otro, la diferencia casi siempre está en el dispositivo: un reloj del sistema mal puesto, un sistema operativo demasiado antiguo para haber recibido un certificado raíz más reciente, o un producto antivirus que se interpone en la conexión. Arregle el dispositivo antes de suponer un ataque, y nunca haga clic para saltarse la advertencia y entrar.
La atestación de las billeteras de hardware usa la misma forma a una escala mucho menor, con un certificado raíz del fabricante, a veces un certificado intermedio y un certificado guardado en el propio dispositivo.
Cadena de certificados frente a certificado raíz
Una cadena de certificados es una ruta; un certificado raíz es donde esa ruta tiene que terminar. Cada certificado de la cadena, salvo el certificado raíz, es de confianza solo porque algo por encima de él lo firmó, mientras que el certificado raíz es de confianza porque figura en una lista que ya traía su dispositivo, y se firma a sí mismo. Por eso, añadir un certificado raíz a esa lista es una decisión mucho mayor que aceptar cualquier otro certificado, y es exactamente lo que le piden hacer las redes corporativas y las herramientas de interceptación de tráfico.