22 abr 2010

Gestión de Certificados Digitales en Windows Vista y 7

Hoy vamos a explicar algo curioso sobre los 'pequeños' cambios que ha sufrido la gestión de certificados digitales en Windows.

En concreto me estoy refiriendo a la forma en la que Windows gestiona los certificados de CAs Raíz (root) en Vista y 7.

Tradicionalmente la gestión de CAs en Windows era similar a la que hace, por ejemplo, Firefox. Se dispone de un contenedor donde se almacenan las CAs raíz que Mozilla o Microsoft han designado como fiables tras procesos varios de aprobación, y el usuario final simplemente se desentiende. Esta gestión estática de certificados tiene sus cosas buenas y sus cosas malas, la parte buena es que tu, como usuario final, puedes revisar la lista y desinstalar cualquiera de esos certificados a tu criterio. La parte mala viene a la hora de incorporar nuevas CAs, normalmente es necesario liberar un parche o una actualización de software con las nuevas CAs.

Alguien en Microsoft debió decidir que esa forma tan estática de gestión no es optima y la cambiaron. Si observamos la lista de certificados de CAs raíz que vienen 'by default' en Windows observaremos que apenas hay unos pocos certificados (solo 12).
¿Microsoft se ha vuelto paranoica? Nada de eso, como prueba de concepto podemos navegar hacia la web de la AEAT https://www.agenciatributaria.gob.es/ y... ¡ Sorpresa ! podemos acceder vía SSL sin ningún warning porque el certificado, (emitido por la FNMT) ha sido considerado valido. ¿Que ocurre si volvemos a mirar el contenedor de certificados?
Vaya ! ahora aparece en el contenedor el certificado de la CA de la FNMT, y todo esto sin intervención alguna del usuario. De hecho apenas se puede encontrar rastro del suceso en el visor de eventos:
Si probamos a eliminar manualmente el certificado del repositorio y volvemos a navegar sobre la web de la AEAT, el proceso se repite y el certificado se carga en el contenedor.

Googleando y preguntando lo cierto es que no encontré información sobre este cambio en modo detallado, así que me puse a investigar un poco. Tirando de Wireshark vi esto:
Muy elocuente el UserAgent, sin duda. El caso es que parece que cuando a Explorer se le muestra un certificado que no es capaz de validar, descarga ese fichero Cab. ¿Y que hay dentro de ese fichero? Otro llamado authroot.stl que, tal y como vemos en MSDN, se trata de una lista de certificados de confianza firmada digitalmente por una CA de Microsoft. Así que el proceso está claro. Microsoft tiene una lista de certificados validos que gestiona dinámicamente a su aire y que va suministrando al usuario final cuando este encuentra un certificado que no puede validar. Si buscamos en el fichero authroot.stl

Podemos ver la lista completa de certificados que en ese momento Microsoft da por validos y entre ellos, el de la FNMT.

Particularmente creo que con algo tan serio como los certificados digitales que, no dejan de ser sobre lo que se articula la seguridad en Internet, merecen la máxima transparencia y rigor. Ya hemos visto que la lista de CAs válidas es consultable en un momento determinado, pero el hecho de que esa lista se modifique dinámicamente y sin visibilidad no es buena idea. Y mas cuando se escuchan algunas voces que siembran bastantes dudas. A eso hay que sumarle que, aunque se eliminen los certificados, Windows los volverá a cargar amablemente.

Realmente se puede deshabilitar la auto-actualización de certificados usando el editor de políticas de Windows:

Pero obviamente, la idea de tener que ir aprobando certificados a nivel de usuario, es menos recomendable si cabe.

No obstante, en aras de al menos tener cierto control sobre lo que sucede en nuestro almacén de certificados, he programado una pequeña herramienta llamada CertMon que monitoriza el almacén de certificados en Windows y, cuando detecta que se ha cargado un nuevo certificado, informa al usuario dando los datos de la CA.
La herramienta está disponible aquí

Autor: Yago Jesus
Fuente: Security By Default

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!