Estas aquiContenido / Chapuza criptográfica en Debian, Ubuntu y derivados
Chapuza criptográfica en Debian, Ubuntu y derivados
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...
En definitiva, esta chapuza 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.
Moraleja: Si funciona, no lo toques. Si lo tocas, házlo bien.
Actualización (18:32): Parece que afortunadamente se despeja un poco otro aspecto muy preocupante del problema: ¿Qué hubiera ocurrido ahora si las principales autoridades de certificación hubieran expedido sus miles de certificados desde Debian-OpenSSL?
Actualización (18:25): Sin piedad. Visto en Metasploit.com:
Traducción: "Aquí tenemos nuestro generador de números aleatorios. Nueve, nueve, nueve, nueve, nueve, nueve, nueve, nueve. ¿Seguro que eso es aleatorio? Ése es el problema de la aleatoriedad; nunca puedes estar seguro."
Traducción: "Elegido tras una tirada limpia de dados. Aleatoriedad garantizada."
Actualización (17:43): Otros dos enlaces muy interesantes para entender mejor lo que ha ocurrido: el blog de Luciano Bello (descubridor del fallo) y Vitavonni (aclara por qué el borrado resultó catastrófico y carga bastante las tintas sobre OpenSSL).
Actualización (17:32): No os perdáis este esclarecedor post. Kurt Roeckx (presunto responsable en Debian de la supresión de código que ha generado la catástrofe) pregunta cuatro meses antes a los desarrolladores de OpenSSL qué ocurriría si suprimiese esas líneas, al tiempo que expresa su preocupación con respecto a una posible pérdida de aleatoriedad. El menda de OpenSSL le responde: "No creo que afecte mucho. Si ayuda a la depuración soy partidario de borrarlas".
Actualización (11:57): Peor todavía. Publican un exploit que realiza un ataque de fuerza bruta sobre las claves debilitadas y logra el login en SSH en sólo unos minutos. La parte buena es que también podemos utilizarlo para comprobar si nuestras claves y/o certificados son vulnerables. Y lo serán con toda probabilidad si fueron generadas(os) en Debian, Ubuntu o similar entre septiembre de 2006 y ayer mismo.
Referencias:
- DSA-1571-1 openssl -- predictable random number generator [Debian Security Advisory].
- OpenSSL PRNG Debian Toys [Metasploit].
- Debilidad criptográfica en los paquetes openssl de Debian [Discusión en Barrapunto].






Lo positivo del asunto? Estar ya actualizado incluso antes de enterarte de la noticia.
Ya me sonaba sospechoso el paquete openssl-blacklist en la actualizacion...
Siempre he utilizado Debian para mis servidores. Me parece (me parecía, bah) una de las mejores distribuciones: estable, gratis, soportada, etc.
Sin embargo, últimamente estoy bastante molesto con Debian.
No me gusta ni un pelo que hayan cambiado el FireFox por IceWeasel, Thunderbird por IceDove, etc. Yo prefiero a los originales de toda la vida, pero aparentemente a los de Debian no les gusta que la gráfica que usan no sea libre (o algo por el estilo, no me he puesto a investigar esto en profundidad).
Pero veo con tristeza que esta manía que tienen de "reescribir" los paquetes para meterlos en su propia distribución se ha vuelto en contra.
Y es lógico, ya que cuando cambias algo que está probado, DEBES VOLVER A PROBARLO. Sé que los paquetes de Debian pasan mucho tiempo en testing y todo eso. Pero aún así... Como mínimo deberían pedir opinión al escritor original del programa antes de eliminar código "superfluo". O, en el espíritu del software libre, si creen que ellos pueden hacerlo mejor enviar una recomendación de cambio y que se beneficien todas las otras distribuciones.
Una cosa es cambiar las opciones de compilación para "adaptar" un paquete a la distribución, como ser: directorios de configuración y de trabajo, scripts de carga de los daemons, etc. Pero cambiar el código creo que se pasa de la raya.
Estoy pensando seriamente en cambiar de distribución, sólo que las otras grandes (SuSE, RedHat, etc) hacen prácticamente lo mismo...
¿Alguna sugerencia?
Saludos,
Andy
Sobre el tema del cambio de FireFox por IceWeasel y Thunderbird por IceDove, no es como piensas. El paquete es el mismo, pero el logotipo que usa Mozilla no es libre, y les guste o no a la gente de Debian, por los estatutos NO puede entrar en la distribución. Entonces Mozilla se negó a que usasen el nombre original si no es con el logo original (no libre), por lo que a Debian no le quedaron demasiadas opciones.
Del resto de tus comentarios, no seré yo quien te los discuta... ;)
Pues si, me parece bien que hayan hecho el cambio de nombre y todo eso.
Han comenzado guerras por menos.
Pero realmente me gustaría que pusiesen al FireFox original en "non-free" por ejemplo.
Una cosa es que tengas una religión y otra muy distinta es que trates de imponerla a los demás. Lo primero puede ser respetable. Lo segundo no.
Personalmente, creo que es el usuario quien tiene que decidir qué quiere o qué no quiere instalar en su sistema. Me parece perfecto que por defecto Debian sólo instale paquetes free. Pero también me parece que habría que dejar que el usuario decida si quiere instalar software non-free.
Yo no lo haría, pero si un día MS se despertara y ofreciera Office para Linux a 10€ la copia (cosa que tendría que haber hecho hace mucho tiempo y quizás ahora no existiría OpenOffice), yo vería perfecto que quien quiera lo instale.
Si, ya se que puedo bajarme los fuentes de cualquier cosa y compilarlos yo mismo, pero si quisiera esa ruta, me iría a "Linux From Scratch".
Un saludo,
Andy
¿Dónde está el problema? Si quieres usar Firefox en Debian GNU/Linux sólo tienes que descargarlo desde la web de Mozilla:
http://www.mozilla.org/
http://www.mozilla-europe.org/es/products/firefox/
En mi caso, como Iceweasel viene en los repositorios oficiales de Debian GNU/Linux, por cuestiones de seguridad... jamás se me ocurriría usar el Firefox que viene directamente de Mozilla (sólo uso paquetes oficiales Debian), pero bueno.
##########
P.D. Pensaba que me había olvidado de sumar, pero creo que no puedo publicar este mensaje porque desactivé las cookies.
Probando...
Debian no tomó la decisión de cambiar de nombre a Firefox por Iceweasel por gusto, sino porque no le quedó otra alternativa. Debian tiene un Contrato Social para con sus usuarios, que define la política de la distribución, sus objetivos, es en definitiva la constitución de Debian. No puede declararse una excepción en el Contrato Social porque tras esa excepción vendrían otras, y Debian dejaría de ser lo que es, la distribución más democrática que existe.
Sobre tu comentario de que que hay que "permitir que los usuarios usen el software que quieran", léete con atención el punto 1 del Contrato Social. Debian pretende ser 100% libre, pero aún así dan soporte a sus usuarios que usan software privativo. ¿Qué queja puedes tener con eso?
La decisión de Iceweasel fue muy dura: o mover el paquete firefox a non-free o eliminar las partes no libres y cambiarle el nombre (por la trademark). Dado que para Debian lo fundamental es el software libre, y la fundación Mozilla no quería entrar en razón, no quedaba otra opción que la adoptada.
No tiene sentido tener iceweasel en main y firefox en non-free porque son lo mismo, salvo el cambio de nombre y los parches aplicados por Debian.
y yo que pensaba que democracia era dejar a cada uno opinar y hacer lo que quiera... vaya voy a tener que cambiar todos mis conceptos sobre la dictadura al contrario...
¿Y qué tal Slackware, o incluso OpenBSD?
La gente de Slackware no suele tocar el código, ni siquiera del kernel. Por otra parte, la gente de OpenBSD sí que toca el código, pero auditándolo a más no poder.
Sí, yo tengo una sugerencia, creo que deberías documentarte un poco sobre Debian y lo que significa el Software Libre antes de decir lo primero que se te viene a la cabeza.
Por favor, no confundas el hecho de que no me importe con la ilusión de no saber de qué estoy hablando.
Para una respuesta parcial, mira más arriba en "Debian vs Mozilla".
Pero por favor, dime porqué es relevante lo que significa el Software Libre o la filosofía de Debian en lo que he escrito en mi primer post.
Y que conste aquí que es de buen rollo y no es flame, ni este ni mis comentarios anteriores.
Un saludo,
Andy