domingo, 15 de julio de 2012

Microsoft curándose en salud (II): bloqueará los certificados de menos de 1024 bits

Microsoft actualiza sus políticas de seguridad PKI y bloqueará cualquier certificado que utilice claves RSA de cifrado menores a 1024 bits. Una vez más, se cura en salud frente al revés sufrido por TheFlame. Explicaremos qué significa exactamente esto. Microsoft empezará a bloquear los certificados creados con claves criptográfica RSA menores a 1024 bits. En el ciclo de parches de agosto, instalará una actualización que bloqueará estos certificados. ¿Qué efectos tendrá para el usuario? Microsoft dará por inválidos estos certificados en conexiones SSL, software firmado, correos firmados (con S/MIME).

Qué significa esta medida

Cuando se crea un certificado, el que lo solicita crea un par de claves con el algoritmo RSA. Estas no son más que un par de números primos que se complementan, de forma que permiten cifrar o descifrar mensajes. Estos números son muy complejos de deducir uno a partir del otro, por lo que se usarán uno como clave pública, y otro como privada. El número del par que se decide como clave pública es enviado a una entidad certificadora que "certificará" que esta clave pública pertenece al dueño, firmando a su vez esa clave y los datos adjuntos (nombre, función del certificado, etc).


Si para el cálculo de esas claves se usan números "pequeños", las posibilidades de calcular uno a partir de otro son más altas. Hoy en día, una clave de 1024 significa que el producto de los dos números primos está dentro del espacio comprendido en 21024 (en el ejemplo de la imagen, se trataría del número 55).

Hay que señalar que el simple hecho de deducir la clave privada a partir de la pública no sería el único trabajo que un atacante debería realizar.Tendría que, por ejemplo en el caso de SSL, suplantar el dominio con un ataque de hombre en el medio o envenenamiento DNS .

¿Realmente es necesario?

Se ha oído ya en numerosas ocasiones que las claves RSA de 1024 bits deben considerarse inseguras. Por ejemplo, las claves de 300 bits son rompibles en cualquier ordenador personal en cuestión de pocas horas. En 1999 se demostró que las claves de 512 eran factorizables usando una granja de sistemas. Hoy es rompible en cuestión de semanas con un ordenador personal. De hecho, en noviembre de 2011 se comprobó que cierto malware estaba usando certificados de 512 bits factorizados para firmar sus binarios. Hoy por hoy, se recomienda usar siempre de 2048 bits.


Por tanto, aunque no se hayan observado todavía ataques a este tipo de certificados, Microsoft se cura en salud. Su movimiento sin duda, hará que los administradores o entidades certificadoras que todavía usan certificados con claves de 1024 bits se vean aislados: las páginas que lo usen o el software firmado con este tipo de claves no funcionarán en Windows, lo que, en la práctica, supone el fin de este tipo de certificados débiles.

Microsoft ha tenido en cuenta algo importante. ¿Qué pasa con el software firmado hace años, quizás abandonado pero útil, que usaba claves de 1024 bits? No se deben bloquear programas que fueran firmado en un momento en el que se consideraba seguro hacerlo. Por tanto, estos binarios, si fueron firmados antes del 1 de enero de 2010, seguirán funcionando.

¿Cómo detectar estos certificados?

Para los desarrolladores o administradores, una manera de detectar la presencia de claves RSA menores a 1024 bits es utilizar la herramienta certutil.exe para volcar los certificados:

(ejemplo de certificado que será rechazado)



o mediante la consola certmgr.msc.


Más información:

RSA

Malware y certificados digitales

Blocking RSA Keys less than 1024 bits (part 2)

RSA keys under 1024 bits are blocked

Microsoft's continuing work on digital certificates

In face of Flame malware, Microsoft will revamp Windows encryption keys
  

José Mesa Orihuela

Sergio de los Santos
Twitter: @ssantosv

No hay comentarios:

Publicar un comentario en la entrada