10 sept 2013

¿Una 'puerta trasera' de la NSA en Linux? Podría ser (II)

Mismo título, nuevo capítulo. Porque nada ha cambiado desde ayer en lo que al fondo del asunto respecta. Y éste no es, como advertimos en varias ocasiones, si Intel pudo haber jugado sucio o no, al no ser posible demostrarlo. El fondo del asunto es lo enturbiado que está todo el mundo de Internet por los excesos de la NSA y demás agencias gubernamentales de Estados Unidos.

No obstante, volvemos a retomar la historia de ayer, ya que hay informaciones complementarias que os pueden interesar. Sin ir más lejos, la respuesta airada de Linus Torvalds a este asunto, en concreto a una petición iniciada y concluida ayer mismo en Change.org para eliminar RdRand de /dev/random:
¿Dónde empiezo una petición para elevar el cociente intelectual y del kernel de las personas? Chicos, id a leer drivers/char/random.c. Entonces, aprended sobre criptografía. Por último, volved aquí y admitid ante el mundo que estabais equivocados. Respuesta corta: sabemos lo que estamos haciendo. Vosotros no. Respuesta larga: utilizamos RdRand como una de muchas "entradas en la piscina de entropía" [Ndt: Se refiere a un método para conseguir números aleatorios], y lo usamos como una manera de mejorar ese grupo al azar. Así que incluso si la NSA puso una puerta trasera en RdRand, nuestro uso de RdRand realmente mejora la calidad de los números aleatorios que obtiene de /dev/random. Respuesta muy corta: sois ignorantes”.
Como siempre, Torvalds responde de manera contundente y afilada. Sin embargo, no es su palabra la última a la que vamos a atender hoy. Theodore Ts’o, un veterano y reconocido desarrollador de Linux también ha mostrado su desconfianza en este asunto, vía Google+:
Estoy muy contento de haber resistido la presión de los ingenieros de Intel para que /dev/random se basara únicamente en la instrucción RdRand.

Basarse únicamente en el generador de números aleatorios del hardware que está utilizando una aplicación sellada dentro de un chip que es imposible de analizar, es una mala idea.
Así comienza una conversación que ya va por los 180 y pico comentarios donde encontraréis un poco de todo, desde usuarios preguntando a otros veteranos de Linux, como Alan Cox, dando su opinión o exponiendo detalles técnicos. Y tela. Un hilo de discusión muy jugoso, si es que os interesa el tema. Asimismo, acaban de publicar un artículo en Espacio Linux de muy recomendable lectura, donde explican en qué consiste el componente de la discordia, RdRand.

Aquí mismo pueden ver y descargar el código fuente original de Linux:
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree

Y aquí tienen el código fuente de Linux Libre:
http://linux-libre.fsfla.org/pub/linux-libre/releases/3.11-gnu/linux-libre-3.11-gnu.tar.xz

Las instrucciones relativas al uso de RdRand las encuentran en los archivos:
arch/x86/kernel/cpu/common.c
arch/x86/kernel/cpu/rdrand.c

La instrucción que inicializa RdRand se encuentra en common.c y su definición en rdrand.c. Y ambos kernels hacen uso de las mismas instrucciones sin modificación alguna.

Como muchos expertos explican, uno de los usos más importantes de los generadores de números aleatorios es la encriptación, por lo tanto, en teoría, si se conoce la secuencia de números obtenidos sería posible romper cualquier tipo de clave de encriptación.

En conclusión, por muy vehemente que haya sido la respuesta de Linus Torvalds y sin quitarle razón a lo que dice porque la tiene (no es incompatible con nada de lo expuesto), hay otros expertos del mismo nivel que no están tan a gusto con este asunto. A las referencias nos remitimos.

De hecho, remendamos ipso facto el error de no haber publicado una cita realmente descriptiva de Matt Mackall, el protagonista de la historia de ayer, en el comentario de la polémica. Pero solo el final, en el que, a modo de despedida y entre paréntesis, decía: “Y mientras tanto, mi desconfianza en la criptografía de Intel se ha movido de "paranoia profesional estándar" a "legítima preocupación real".

Para terminar, repetimos una vez más que no está confirmado que RdRand -o cualquier otro de los componentes privativos que se utilizan o distribuyen con el kernel, ya que estamos- contenga una "trampa" de la NSA (también hay código de la NSA en SELinux). E incluso aunque así fuera, como indica el propio Torvalds y las fuentes enlazadas, se trata de un elemento complementario que solo funcionaría con chips Intel (a partir de Ivy Bridge) el cual, además, se puede desactivar.

¿Cómo desactivar esta característica? Sí, y en la misma documentación dice perfectamente como desactivarla: Documentation/kernel-parameters.txt

Basta con agregar la opción nordrand a la linea de booteo del kernel, y listo, problema solucionado.

Más allá de este caso particular, la gran desazón que se respira estos días, como sugiere la frase citada de Mackall, es la pérdida de confianza en todo lo que pasa por Estados Unidos. Y por Estados Unidos pasa todo. Eso tomándola en un sentido general, porque él apunta a un objetivo bastante más específico.

En cualquier caso, el titular de este artículo y su primera parte, ¿Una ‘puerta trasera’ en Linux? Podría ser, no iba en exclusiva por RdRand, como supongo que muchos de nuestros lectores ya habrán comprendido a estas alturas e incluso antes. No hace falta rebuscar demasiado para encontrarte con "puertas traseras" en Linux, ahí tienes Skype. Y tampoco es cuestión de desmoralizar a todo el mundo. Simplemente, las cosas están como están. Conviene saberlo y, si es menester, ir depurando la información hasta que se comprenda.

Fuente: Muy Linux y Espacio Linux

Suscríbete a nuestro Boletín

0 Comments:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info.

Gracias por comentar!