EDICIóN GENERAL
582 meneos
5008 clics

Linus Torvalds responde a la petición de eliminar RdRand de /dev/random [EN]

¿Dónde empiezo una petición para incrementar el CI y conocimiento del kernel de la gente? Tíos, leed drivers/char/random.c. Después, aprended criptografía. Finalmente volved y admitid ante el mundo que os habíais equivocado. Respuesta corta: Sabemos lo que hacemos. Vosotros no. Respuesta larga: usamos rdrand como una de las muchas entradas de entropía y lo usamos para mejorarla. Incluso si hubiera una puerta trasera de la NSA nuestro uso mejora la calidad de los números aleatorios de /dev/random. Respuesta muy corta: Sois unos ignorantes.

| etiquetas: linux , ciberseguridad , ciberespionaje , nsa , ignorancia
305 277 18 K 643 mnm
305 277 18 K 643 mnm
Comentarios destacados:                                  
#31 Como mucha gente que lee meneame no tiene por qué ser experta ni en Linux ni en criptografía, voy a tratar de explicar de manera sencilla de qué va todo esto:

Primero que nada: los números al azar son fundamentales para la transmisión de datos cifrados. Por ejemplo el https que usamos para comunicarnos con el banco depende completamente de ellos.

Verán, las máquinas tienen un problema respecto de los números al azar: no pueden producirlos. El azar no existe para una máquina porque el azar implica algo demasiado complicado para analizarlo en profundidad, y los programas son perfectamente entendibles.

Para producir números al azar, las máquinas necesitan de algo externo que sea lo más impredecible posible. Por ejemplo, la temperatura, los tiempos de acceso al disco, los tiempos entre teclas que presiona el usuario, los movimientos del ratón, etc. Un programa se encarga de hacer una mescolanza de cosas diversas para obtener un número lo más impredecible posible. A eso es a lo que le…...
Una buena respuesta a esta portada: www.meneame.net/story/linux-pudo-haber-incluido-generador-numeros-alea

Por cierto, el contenido entero del enlace está traducido en la entradilla.
#1 Te he corregido algunas erratas.
#4 Gracias.
#1, #2, ya, pero no ha contestado la respuesta a su comentario que le dice donde puede ser inseguro... :troll:

La arrogancia es la mejor compañera de los errores :-)
#20 El tío que le contesta no tiene ni idea. Si se hace un xor de una cadena aleatoria con una no aleatoria el resultado es una cadena aleatoria. Da lo mismo si el chip de Intel está trucado, el resultado final es tan aleatorio como si no se tomase la entrada del chip. En el peor caso (chip trucado) no pierdes nada, en el mejor (chip correcto) ganas la aletoriedad del chip (la aletoriedad de la entropía interna del ordenador no es perfecta).
Este tipo es un genio, pero nunca destacara por sus dotes diplomaticas
Ya veo que votar sensacionalista a la otra de portada, fue todo un acierto.
#2 Ni falta que le hacen. No está ahí para ser diplomático. Y en general toda persona que trabaja en puestos supertécnicos (tanto a nivel de programación como de sistemas) adolece (y me incluyo, por la parte de sistemas) de diplomacia y tacto a partir de cierto punto.. ese en el que te tocan los huevecillos :-)
#16 Perdonemé supertecnico pero ¿Te piensas que sois los unicos a los que les tocan los huevos? El problema de este hombre es que suele tener el resorte muy sensible.
#19 Deberías preguntar a mis compañeros de trabajo sobre mi resorte ;)
#21 Me refería al resorte de Linus (ah9ra me leo y veo la segunda interpretación xD).
#41 lema.rae.es/drae/?val=adolecer

;) No exactamente.. pero casi.
#43 Solo era un apunte, pero el caso es que, como la definición del DRAE que pones apunta, adolecer se usa frecuentemente para expresar lo contrario de lo que realmente significa... como ha sido tu caso en el comentario :-)
#2 Está siguiendo un estrategía... a su estilo.
- Al ser "agresivo", deja claro que no está equivocado. Hay que tener en cuenta de que lo que dice al ser un motivo técnico, es demostrable.
- Consigue que los hábiles se interesen por echarle un ojo a drivers/char/random.c, aunque sea por curiosidad. Está consiguiendo posibles colaboradores.
- Da una patada en el culo a los que hablan antes de saber de que hablan, haciendo que la próxima vez se enteren un poco mejor antes de decidirse a lanzar FUD.

Comete muchos errores en otros aspectos, pero no es mal estratega.
#3 quieres decir "suck my balls"
#12 Los scousers usan a menudo me en lugar de my.
#3 "me vas a chupar pelotas debajo del burro"

Aha... pues no.
#7
" 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."

"... 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…   » ver todo el comentario
Muy buena explicación, #31.
Al contrario que el artículo que enlaza #7, que no hace más que decir que los demás "comen mierda" sin enterarse él mismo de un pimiento.
Me encantan los votos errónea sin explicar qué es lo erróneo. Le dan toda la razón a la respuesta muy corta.
#6 Estudia criptografía sabrás porqué es errónea</mode Torvalds>
#6 Es algo normal en su forma de ser, no se lo tengas en cuenta y pasa de ello. ^^

Yo creo que simplemente quieren votar negativo y no se molestan en pensar algo minimamente normal. :-P
Mira esto:
www.meneame.net/story/backdoor-linux-nsa-no-invente-senora/voters
sensacionalista: 17
irrelevante: 10
errónea: 6
cansina: 2

La mas normal que veo es irrelevante ya que es subjetivo. :-P
Es el Pérez-Reverte de la informática. :troll:

Ahora en serio, me parece un déspota egocéntrico, pero es un gran informático.
#10 Ya quisiera Pérez-Reverte parecerse a Linus.
Qué susto, pensé que hablaban d Xrandr -Tengo una mierda de monitor Samtron encontrado en la basura y solo puedo centrar la pantalla gracias a Xrandr
"Really short answer: you're ignorant."
A Torvalds vamos a tener que lavarle la boca con lejia xD
#15 ¿Por qué? ¿Por decir la verdad? xD
Torvalds en estado puro.
Puede, o no, ser discutible pero como todos los genios, es controvertido.
Fucking boss.
Los bocachanclas del mundo se merecen un respeto, cualquier persona brillante tiene la obligación de invertir su tiempo en desmentir cada ocurrencia.
¿y hay que creerse lo que dice Torvals simplemente por que te dice que no hables si no sabes criptografía? Eso no significa que sea falsa la noticia de que la NSA pueda romper las claves criptográficas partiendo de un generador aleatorio viciado en origen. Por que los equipos de la NSA y su proceso de cálculo no son poquita cosa, si descifraron la máquina alemana "Enigma" gracias a una parte del código quien dice que no pueden hacer lo mismo basándose en una aleatoriedad que de partida ellos saben en que se basa, aunque luego el sistema aumente las capas con otro software.
#27 Torvals ya lo ha explicado todo en su respuesta larga.
#30 Yo creo que lo explica mejor en su respuesta "realmente corta".
#27 Vamos, que le das la razón a Linus. Mira #31
Como mucha gente que lee meneame no tiene por qué ser experta ni en Linux ni en criptografía, voy a tratar de explicar de manera sencilla de qué va todo esto:

Primero que nada: los números al azar son fundamentales para la transmisión de datos cifrados. Por ejemplo el https que usamos para comunicarnos con el banco depende completamente de ellos.

Verán, las máquinas tienen un problema respecto de los números al azar: no pueden producirlos. El azar no existe para una máquina porque el azar…   » ver todo el comentario
#31 Muy bueno. Corrige: además.
#34 ¿Que pasa, que eres de letras y no tienes nada mejor que aportar? :palm:
#50 ¿Qué tendrá que ver escribir correctamente con ser de letras?
#31 Excelente explicacion a un tema bastante complejo. Es una pena que no se te pueda dar mas de un voto, porque te ponia mil.
#31 Magistral explicación. Además nos llevas directo al grano.

Para variar, Linus tiene evidentemente razón y su posible arrogancia es la reacción adversa de tener que aguantar a tanta sin razón. Debe ser frustrante.

Recordemos que no es político. Con que sea buen programador a mi me basta.

Sobre que este asunto sea llevado a través de change.org, sin comentarios.
#31 Gracias
#31 Como echaba de menos en Meneame, comentarios realmente instructivos como el tuyo.
Lastima que debido a la devaluación de los votos positivos y negativos no recibas el karma que mereces.
Enhorabuena.
#31 gracias. Podías no haber explicado nada, es de agradecer q lo hayas hecho.
#67 Shut the Fuck Up and show me the code... que diría Linus.

¿De dónde te has sacado esas tiras de caracteres que dices "aleatorias"? ¿De la manga?

Esos dígitos del principio, ¿cómo puedes asegurar que no son aleatorios? ¿Sabes que "aleatorio" también incluye "0000000000000"? ¿O eres otro puto ignorante?

Los "Salu2" te los puedes ahorrar. Pega el código o calla.
#67 Te equivocas. En drivers/char/random.c, no se concatenan las secuencias como muestras, sino que se hace un "XOR" con ellas. ¿Y que es un XOR?:

Tomas una secuencia aleatoria "A":
011100110110000...

Tomas otra secuencia "B" (imagina que no es aleatoria):
110111111110001...

Ahora creas una nueva secuencia "C": Tomas el primer bit de "A" y el primer bit de "B". ¿Son iguales? ¿Sí? Entonces pones un 0. ¿Son distintos? Entonces pones…   » ver todo el comentario
#79 Si, a ver, lo que dices es cierto, pero recuerda que los procesadores tienen juegos de instrucciones sobre las cuales se basa cualquier programa que funcione en nuestro ordenador. Puede que no todas las instrucciones que tu procesador interpretaría hayan sido documentadas. Es decir, y por seguir con tu ejemplo, los chicos de Nouveau solo pueden llegar hasta donde "tenga programado" el driver propietario, ya que imitan el comportamiento del mismo, pero ello no quiere decir que el…   » ver todo el comentario
#94 "A todo esto, RdRand es absolutamente necesario en entornos virtualizados en los que no hay fuente de entropía alternativa, ya que /dev/random se alimenta principalmente de los periféricos de E/S y los que más aleatoriedad generan son los periféricos que un operario utiliza "

Esto... ¿En qué punto afecta eso a un Linux vajo KVM o XEN+Passthrough? A parte de /dev/random tenemos /dev/urandom el cual funciona igual bajo KVM.

Por no hablar de virtio-rng.
#113 Ok, cierto, el que intentasen colarlo como fuente única es bastante rastrero.

Por suerte no hace falta conspiranoia para explicarlo: si linux, ejecutado sobre Intel, pudiese prescindir de usar todo el código extra para calcular las otras fuentes de entropía, en cualquier benchmark Intel saldría ganando sobre la competencia.

Lo otro, también toda la razón.
#94, hace tiempo que existe un secreto a voces: el microcódigo. Desde que se descubrió que era más eficiente traducir instrucciones…   » ver todo el comentario
#94 Con todos mis respetos, te equivocas en varios puntos, no quiero entrar mucho en la polémica pero vamos por partes:

"Un procesador sólo ejecuta lo que se le manda, y cualquier otra cosa que ejecute sale de algún sitio, analizable."

Si, pero lo que se le manda va a través de una serie de instrucciones, cualquiera que haya programado un poco en 8086 conocerá varias como MOV,ALU,JMP (es.wikipedia.org/wiki/Intel_8086_y_8088#Desempe.C3.B1o) etc que son las bases de la…   » ver todo el comentario
#90 Precisamente por eso en Linux se utilizan múltiples cadenas superpuestas la una sobre la otra para generar la definitiva que se considera "aleatoria". Por mucho que una, o varias de ellas sean "000000...", es bastante poco probable que TODAS lo vayan a ser al mismo tiempo.

La única forma de conseguir que el resultado fuese "00000..." sería cargándose todas y cada una de las formas de generación de números aleatorios, no solo una de ellas. O sea,…   » ver todo el comentario
#87 Ok, has demostrado tu ignorancia... pero como aquí somos majos, voy a ponerte un par de cosas.

Primero:
Q: Si pongo la secuencia "00000000..." ¿sabes la secuencia?
A: Pues no la sabes, porque la secuencia entera en la que pienso es "0000000098435984359...". Con "00000000..." no tenías ni idea de la secuencia, por tanto podía ser perfectamente aletoria (o no).

Segundo:
Q: Si pongo la secuencia "137482..." ¿sabes si es aleatoria?
A: No tienes ni idea,…   » ver todo el comentario
#99 Que sí que sois muy inteligentes y tal... y lo digo de verdad, pero...

Vuelvo a decir que no importa la secuencia en sí sino las variables usadas y si una no es tan aleatoria, gracias a la NSA no habrá un 100% de aleatoriedad sino un porcentaje menor. A eso me refería.

Porque sino estarías diciendo que es lo mismo usar RdRand que otro cuando es falso. Ya que usar otro siempre dara un 100% de aleatoriedad.

Por cierto no sé donde puse yo que XOR es sumar. Me refería a las variables y como forma de expresión de añadir no sumar aritméticamente ni lógicamente.

Salu2
#71 ¿Qué código? Estoy diciendo simplemente que el uso de una función, instrucción.. que realmente no es aleatoria (si se sabe la secuencia, no es aleatoria por muy larga que sea esta) es un peligro.

Y puse dos códigos inventados uno realmente aleatorio sin saber la secuencia y otro sabiendo al menos parte la secuencia. Y como puse entre paréntesis la cosa sería más complicada y esos números que puse al principio realmente estarían desperdigados por el código.

Lo pongo más simple:

Si yo te…   » ver todo el comentario
#87 Hacier un XOR de tu número aleatorio con algo falsamente aleatorio (135791357914579) no hace el resultado menos aleatorio. Como mucho igual de aleatorio que el original.
#71 ¿Ahora la forma de responder a alguien que opina distinto a nosotros pero lo ha dicho bien es insultando?
Qué nivelazo.
#67 Creo que tienes el problema de no saber de que hablas, no es que los número se añadan simplemente delante o detrás del tocho generado, sino que se inserta dentro del algoritmo que genera el número aleatoreo resultante, vamos que es como si la temperatura del micro fuera 0.1º más alta, no es que se "sume" 0.1 a el resultado, sino que el resultado es completamente distinto.
Si no lo has entendido lo lamento, pero me junto con los que dicen que si no entiendes confia en aquellos que si lo hacen.
#31 Muy buena explicación, positivo al canto
#31 Es muy interesante este post de Theodore Ts'o, actual "mantenedor?" de /char/random.c:
plus.google.com/117091380454742934025/posts/SDcoemc9V3J

Y viene a desmentir a Linus Torvalds en el sentido de que, según él, hubo un tiempo (no se cuán largo) en el que un parche de Intel hizo que RDRAND fuese la única fuente de números aleatorios:

"RDRAND is not the only source of randomness used for /dev/random. It was at one point, but that's because the Intel engineers pushed a patch into the kernel."

Posteriormente se revirtieron esos parches, y ahora RDRand es solamente una más de las fuentes de entropía que usa linux.
#74 #73 Linux no usa RdRand en exclusiva. Por ello, la aleatoriedad es aún mayor.
#76 Ya lo dice bien Theo. Y no hace falta ser un hacker para darse cuenta.
"Relying solely on the hardware random number generator which is using an implementation sealed inside a chip which is impossible to audit is a BAD idea."
#79 "Ah sí, es cierto, chip sellado y funcionalidad imposible de auditar. Claro."

¿Auditar un chip con millones de transistores? Sí, ingeniería inversa y tal, pero mira donde anda Nouveau...
#79 Con esos diseños de Intel incrustados en la CPU no puedes estar seguro del todo.

¿Tengo que enseñarte el TPM con Intel y su Sandy Bridge, con acceso remoto de serie?
#31 Esperemos que comentes más noticias. Gracias!
#31 Muy bien explicado pero... habría que dar algún detallito más y, por qué no, dejar de poner como un puto Dios al Torvalds. Que porque haya sido el inventor de LINUX no quiere decir que sea un santo y que todos los demás nos dediquemos a alabarlo y a chuparle la ...

Realmente todo esto va de cómo de mala manera acabó RdRand incorporado en el núcleo de LINUX y de como el carácter insultante, ofensivo y despótico del padre del núcleo de LINUX ha llevado a esta polémica.

En el origen de todo…   » ver todo el comentario
#96 Theo (Creador de OpenBSD) da su opinion: plus.google.com/117091380454742934025/posts/SDcoemc9V3J .

Ahí está el hilo completo.

Aún así, RDRand no es la única fuente de conseguir ruido aleatorio en GNU/Linux.
#97 Me entran ganas de pasarme a OpenBSD, por ése y otros motivos.
#97 el creador de OpenBSD es Theo de Raadt, no Theodore Ts'o como apuntas en el enlace.
#97 #119 Theo no es el creador de OpenBSD ya que fue un fork de NetBSD. Es el fundador del proyecto OpenBSD zeus.theos.com/deraadt/ y OpenBSD no es un kernel como Linux, es un sistema operativo completo.

Theodore Ts'o es un desarrollador del kernel de Linux, el que mantiene el sistema de archivos ext4.
#97 Creo que te equivocas de persona el creador de OpenBSD es Theo de Raadt, es otra persona, tambien muy preprarada y con muchos conocimientos y que en cuestion de comentarios hirientes es mucho mas borde que el propio Linus
#31 Todo lo que dices es cierto peeeeeeero hay que tener en cuenta algo más. Las fuentes de entropía de fuera del chip (teclado, etc.) son mucho más lentas que las del chip, así que, cuando las fuentes externas no tienen entropía de reserva (que es la inmensa mayoría del tiempo), se tira de la entropía del chip. Así que, la mayoría de las veces, los números al azar que estás usando no son nada azarosos para la NSA (si de verdad hay puerta trasera).

Lo cual no es culpa de Linux, por supuesto, pero tampoco significa que Linux + este chip no sea inseguro.

Por cierto, la página no me carga.
#98 #31 Comentaba el otro día el muy poco tiempo que requiere ahora el gpg para generar claves, así como lo poco que te pide que muevas el ratón y teclees... Hace unos años al generar claves te decía que movieras el ratón, teclearas, hicieras de todo, durante un buen rato...

moraleja: me fío más de las claves de hace unos años!!! Y ya no tengo ninguna de ellas :-D.

Por no hablar de los teléfonos... que ni lo piden.

Creo que a fecha de hoy, para el común de los mortales, las aplicaciones de criptografía han muerto (GPG, PGP, ssh... ). Ya no las podemos considerar fiables...
#31 me he logeado expresamente para agradecerte el comentario y darte el positivo. ¡Grande!
#31 ¡Vale! la noticia lo pedía a gritos, eres un "mustro" ;)
#31 una explicación genial. Gracias.
#31 Una de las mejores explicaciones que he leído. Y dentro de nada seré doctor en informática.

Gracias.
#31 Pues lo que dices ya de por si es bastante preocupante...

Que los numeros aleatorios tengan o no un bias dependera de la funcion de agregacion de la entropia... incluso si se mezcla con otras cosas, si se le da mucho peso o si la forma de mezclarlo es trasteable te puede joder todo el invento.

Si de verdad no es aleatorio, lo mas seguro con diferencia seria dejar de usarlo. No seria el primer caso en el que un paso extra para añadir seguridad se carga un protocolo criptografico (y en este caso al ser la fuente de numeros aleatorios es aun mas grave).


Esperemos que Torvals lleve razon...
#31 habrá gente que tampoco sepa que es un kernel...
#33 Los argumentos que aportas para apoyar tu afirmación son de gran peso.
#56 Aplaudo un comentario por instructivo y argumentado. Tu lo rebates sin argumento alguno. Creo que hay una gran diferencia.
#59 O sea, casi lo único que nadie pone en duda de todo esto.
Por cierto, el informe que enlazas en tu comentario de aquí: www.meneame.net/story/ubuntu-aparece-promo-mercedes-benz-coches-inteli esta realizado por la propia Intel. Muy objetivo no se si será.
#62 Linus no asevera que sea defectuoso, ni que no lo sea.
Las alusiones personales no se han hecho esperar :-(
#55 Lo que se afirma sin pruebas, se rebate sin pruebas. Carl Sagan
Qué haríamos sin talibanes que pusieran las cosas en su sitio con hechos.

Cada día admiro más a este señor, y mira que yo soy más de Stallman, pero...
¿Porqué prácticamente sólo llegan a portada las declaraciones de este hombre cuando suelta una bordería? Además es curioso que los 5 primeros comentarios sobre estas borderías son siempre iguales.

PD: Menéame es la prensa rosa de los geeks.
#36 ¿Porque siempre suelta "borderías"? ¿Acaso le has leído alguna vez en una declaración poco punzante?
#36 No es la prensa naranja de los geeks. ¿A caso eres daltónico?
Siendo el Kernel código abierto me extrañaba que algo se hubiera puesto sin que los demás lo miraran. Cualquiera lo puede mirar. Hay que entender y que conste que yo no entiendo de muchas cosas.
#37 Si en teoría, la realidad es que no toda la gente puede leer un codigo fuente, ni posee los suficientes conocimientos técnicos. Y de la gente que puede, no toda le dedica su tiempo para hacerlo.
Habrá que hacerle un CC a algunos comentarios triunfalistas de otras noticias relacionadas xD xD

Pero que House que es este hombre...
A mi mas que el RdRand me preocupa que pasa con la arquitectura MIPS:

lists.openwrt.org/pipermail/openwrt-devel/2013-September/021318.html

Tienes un Router con Wifi en casa? probablemente tengas un MIPS
#42 Stallman usa un portatil con GNU/Linux bajo MIPS. Aunque es OpenWRT, a saber como habrán implementado µlibc en tales kernel y y userland algo tuneados para dispositivos embebidos.
Quisiera aportar mi granito de arena. Resulta que por temas de mi proyecto de fin de carrera estoy investigando cómo mejorar el rendimiento en Linux de los discos duros mecánicos usando su cache de otra forma (con resultados negativos en gran parte por lo que digo a continuación).

Bueno, pues lo importante es que NO se puede saber de ninguna forma realmente lo que hace por dentro el firmware del disco, debido al secretismo de los fabricantes. Por lo que yo sé, ahora mismo el disco duro con el…   » ver todo el comentario
#44 ¿Qué tiene que ver?
Siempre ha habido dispositivos "confiables" y otros que "a saber qué hacen". El concepto de cifrado mismo consiste en usar dispositivos "no-confiables" para almacenar datos de forma "segura"... siempre que el sistema de cifrado usado sí nos merezca confianza.

O sea, es una putada para intentar desarrollar código específico para ellos, pero de cara a seguridad simplemente son "dispositivos no seguros", y listo. El que…   » ver todo el comentario
#75 no sé a qué te refieres con "realmente". ¿A nivel físico? Tengo una idea general de cómo se guardan, pero ese aspecto no me interesa mucho.

En cuanto a las empresas de recuperación de datos, no sé muy bien cómo lo hacen, pero te puedo decir lo que se hace primero. Los sistemas de ficheros normalmente no borran nada en el disco, sino que eliminan la información que tienen de los mismos (inodo en el caso de ext por ejemplo). Así que en teoría los datos siguen en el disco, y si…   » ver todo el comentario
#89 Sí, me refiero a discos dañados, no accesibles por la vía normal de la controladora del disco.

No tanto la forma de guardar los datos a nivel físico, sino la distribución (formato, estructuras de datos) una vez leídos los bits del disco. Tengo entendido que se añaden CRCs, tablas de relocalización de sectores, zonas reservadas, y nosequé más. Supongo que sería lo mismo que te interesaría saber a la hora de intentar optimizar los accesos a disco para hacerle más fácil la vida al firmware,…   » ver todo el comentario
Encima se creerá que change.org sirve de una mierda...
#46 Pues en este caso ha servido, para que Linus aparezca por allí a ciscarse en sus muelas, pero ha servido.
nine, nine, nine, nine, nine:  media
#70 Eso no demuestra que no haya una posible "puerta trasera"
#70 una secuencia 1,2,3,4 encriptada con una clave que solo conociese la nsa tambien pasaría esos tests. La cuestión es que si se utiliza como una fuente de entropia mas no hay problema, si se utiliza como unica fuente de numeros aleatorios podria comprometer la encriptacion de información.
«12
comentarios cerrados

menéame