viernes, 16 de mayo de 2008

Descubren bug en libssl sobre generación de números aleatorios en Debian.


En septiembre de 2006 alguien en Debian decidió suprimir una línea de código molesta en el fichero md_rand.c de OpenSSL. La decisión se tomó para suprimir los avisos sobre datos no inicializados que lanzaban herramientas de depuración de código como Valgrind y Purify. La medida fue efectiva; desde luego desaparecieron los errores, pero -y aquí viene el problema- también desapareció la correcta siembra del generador pseudoaleatorio necesaria para producir claves de calidad, es decir, claves no predecibles. La siembra correcta requería hasta ese momento una mezcla de datos aleatorios, pero quedó de pronto reducida a la escasa aleatoriedad aportada por el identificador del proceso, que en Linux sólo puede llegar hasta el número 32.768. En consecuencia el espacio de claves se vio repentinamente reducido, de los previstos 2^1024 a 2^15, es decir, tan sólo 32.768 posibles claves. En definitiva, esto afecta a muchos sistemas Debian y derivados como Ubuntu. Por supuesto la actualización de OpenSSL (que ya está disponible) es necesaria, pero no suficiente. En esta ocasión han de generarse además claves nuevas para todos aquellos casos en que hayamos utilizado OpenSSL, es decir, redes privadas virtuales, servidores seguros, certificados X.509, SSH, etc. En el caso de usuarios comunes, no obstante, el problema más frecuente puede radicar en tener que renovar las claves SSH utilizadas para acceder remotamente a servidores.

Primera ley de la informatica: Si funciona, no lo toques. Si lo tocas, hacelo bien.