En septiembre de 2006 alguien en Debian decidió suprimir una línea de código molesta en el fichero md_rand.c de OpenSSL:
MD_Update(&m,buf,j);
[ .. ]
MD_Update(&m,buf,j); /* purify complains */
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... » Leer más »