¿Mi clave OpenPGP es basura debido a una mala entropía?

4

Tuve problemas para generar una clave OpenPGP en mi máquina XUbuntu, porque GnuPG no obtuvo suficiente entropía. Después de algún tiempo de navegar y hacer cosas estúpidas para generar más entropía, todavía no pasó nada.

Así que seguí una instrucción y usé herramientas rng:

sudo apt-get install rng-tools
sudo rngd -r /dev/urandom b

Y listo, de repente todo funcionó sin ningún esfuerzo en un segundo. ¿Pero como puede ser eso? ¿Me engañó y me dio números pseudoaleatorios?

    
pregunta Klimbim 01.07.2017 - 10:16
fuente

1 respuesta

4

rngd

página de manual de rngd describe bastante bien lo que está haciendo el demonio:

  

Este daemon alimenta los datos de un generador de números aleatorios a la agrupación de entropía de números aleatorios del kernel, después de verificar primero los datos para asegurarse de que sean correctamente aleatorios.

     

[...]

     

Las opciones -r o --rng-device se pueden usar para seleccionar una fuente de entrada alternativa, además del /dev/hwrandom predeterminado.

Para ser específico, el comando que ejecutó extrajo números aleatorios de /dev/urandom y lo devolvió al grupo de entropía del kernel de Linux mientras lo registraba como "entropía real y reciente", por lo que también está disponible en /dev/random (esto La explicación está un poco simplificada y, técnicamente, el proceso es un poco más complicado, pero esta es la idea detrás de rngd call you post).

Dichas herramientas se usan comúnmente en máquinas virtuales o dispositivos integrados que no reciben suficiente entropía para llenar el grupo de entropía, ya que no tiene acceso a todas las fuentes de entropía que tendría una computadora de "hardware real" (sincronización del disco duro, ... ).

Números aleatorios en Linux

  

Y listo, de repente todo funcionó sin ningún esfuerzo en un segundo. ¿Pero como puede ser eso? ¿Me engañó y me dio números pseudoaleatorios?

Sí, hizo exactamente esto. Linux conoce dos dispositivos aleatorios: /dev/random de bloqueo cuando un contador de entropía bastante arbitrario decide que no hay suficiente entropía disponible, y /dev/urandom siempre devuelve nuevos números pseudoaleatorios. Ahora el "generador de números pseudoaleatorios" suena peor de lo que es, de hecho, los números aleatorios de un generador de números aleatorios (criptográficamente robustos, sin errores ni puertas traseras) no se distinguen de los números aleatorios "reales". "La simple realidad de la entropía. O cómo aprendí a dejar de preocuparme y amar al azar" presentada en 32C3 ofrece una excelente introducción en los generadores de números aleatorios y por qué están totalmente bien.

Después de todo, también /dev/random es un generador de números aleatorios con una decisión bastante arbitraria sobre si la agrupación recibió suficientes bits aleatorios, y la decisión aún más arbitraria de decidir que no recibió suficientes bits aleatorios recientemente.

De todos modos, mezclar en la nueva entropía no es una mala idea, en caso de que los fundamentos matemáticos o la implementación del software tengan algunos problemas, los nuevos bits aleatorios (que no provienen de la agrupación de entropía) harán que sea mucho más difícil romper el conjunto de números al azar. / p>

Cierre: ¿Son seguras las claves generadas?

Como siempre, la respuesta es: depende. Dado que ya estableció un estado aleatorio adecuado del grupo de entropía al hacer que la máquina funcione durante un tiempo (es decir, no configuró el sistema recientemente, sino que ya lo utilizó durante más tiempo, con algunas horas o días más que seguro) para configuraciones típicas), el grupo de entropía se inicializó correctamente y usted tiene números aleatorios correctos de ahora en adelante, sin importar si retroalimenta números aleatorios solo para aumentar el contador de entropía del Kernel.

En general, los problemas de "no hay suficiente entropía" de GnuPG que se ejecuta en Linux se basan en dos decisiones discutibles: el kernel de Linux que proporciona /dev/random con su arbitraria "No tengo suficientes semánticas de bits aleatorios" y GnuPG confiando en esto en lugar de /dev/urandom . Lamentablemente, no hay manera de elegir otra fuente de entropía en GnuPG.

    
respondido por el Jens Erat 01.07.2017 - 10:52
fuente

Lea otras preguntas en las etiquetas