Artículos

Linux, la NSA y la desinformación

Por .

Hace unos días atrás explotó una polémica sobre que supuestamente la NSA en complicidad con Intel coló una puerta trasera en el kernel Linux, y Linus Torvalds, como mirando para otro lado, la dejó pasar como si nada. Y como era de esperar, muchos blogs especializados, que dicho sea de paso no tienen ni el más mínimo conocimiento técnico para manejar este tipo de noticias, sacaron a relucir los títulos más amarillistas que pudieron encontrar. y los usuarios sin el más mínimo conocimiento sobre lo que estaba pasando, comenzaron a cacarear a tono.

Imagen alegórica de la NSA

Imagen alegórica de la NSA

Primero vamos a comenzar analizando el motivo de la discusión. Todo comienza cuando Eugen Leitl, el desarrollador encargado del código generador de números aleatorios del kernel, había mandado un mail explicando que había dejado de trabajar en el kernel dado que, poco a poco, Linus había decidido apostar por usar una característica específica de los microprocesadores Intel, pero esa característica sólo puede usarse en caso de estar disponible, de lo contrario se sigue utilizando el generador de números aleatorios por software.Esta característica se la conoce como RdRand o Intel Secure Key.

RdRand  es una instrucción específica de los microprocesadores Intel, la cual permite obtener números aleatorios cada vez que es llamada. La teoría detrás de este generador de números aleatorios  por hardware es que el microprocesador puede crear una mayor entropía a partir de sus múltiples entradas, tanto analógicas como digitales, y debería ser mucho mejor que un generador de números aleatorios por software.

La preocupación vendría por dos lados. Por un lado no hay forma de saber si la secuencia de números obtenida es realmente aleatoria o se trata de una secuencia prefabricada (muy larga). Por el otro, esta el hecho de que ese algoritmo, al estar incrustado en el hardware, no puede ser modificado ni auditado de ninguna forma.

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 posibleromper cualquier tipo de clave de encriptación.

Pero que no se pueda modificar RdRand, ¿Significa que estamos condenados a ser vigilados 24/7 por la NSA? No, lo mencioné al principio, el uso de RdRand es optativo, si no lo quieres usar, pues lo desactivas y usas el generador de números aleatorios por software, y problema solucionado.

Lo más curioso es he leído muchos comentarios de usuarios, que si saber de lo que hablan, recomendabanusar Linux Libre por que, supuestamente, no tendría este “problema”. Señores, yo tengo bastante curiosidad, y los conocimientos técnicos necesarios para analizar código fuente y determinar si esto es realmente cierto o no. Y déjenme decirles, que no, que esa afirmación es totalmente falsa. Vamos a ver el porqué.

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.

En otras palabras, da igual que uses Linux Libre, si tienes un microprocesador Ivy Bridge, o superior, lo más probable es que estés usando RdRand.

La pregunta a todo esto es: ¿Pero se puede 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.

En serio señores, no coman mierda, infórmense bien antes de emitir palabra sobre un tema que desconocen.Preocuparse por la privacidad está perfecto, pero tampoco se trata de entrar en pánico sin sentido.