¿Es seguro usar rng-tools en una máquina virtual?

17

Actualmente estoy trabajando en una aplicación que necesita crear pares de claves GPG utilizando la herramienta gpg . Desafortunadamente, esta herramienta tarda mucho tiempo en generar un par de claves si no hay suficiente entropía / aleatoriedad disponible en el sistema para hacerlo. Una solución común para esto es instalar el paquete rng-tools como se llama en los sistemas Debian. Esto permite que gpg aproveche los verdaderos generadores de números aleatorios de hardware. ¿Es seguro de usar (desde una perspectiva de seguridad) en una máquina virtual / servidor privado virtual donde el sistema operativo solo tiene acceso a hardware virtualizado? ¿Las claves generadas serán suficientemente aleatorias?

    
pregunta Richard Cook 03.08.2013 - 02:11
fuente

3 respuestas

14

Todo esto depende del hardware (físico o virtual) disponible para su máquina virtual. rng-tools solo puede obtener entropía de las fuentes disponibles. Si su máquina virtual no tiene fuentes de entropía disponibles para el uso de las herramientas rng, no estará en mejores condiciones.

Sin embargo, algunos sistemas de virtualización pueden hacer que la entropía de origen de hardware esté disponible para los huéspedes a través de diversos mecanismos. En algunos casos, puede pasar un dispositivo de hardware directamente a su invitado (USB, PCI, lo que sea) y hacer que rng-tools use este dispositivo. En la mayoría de los casos esto no será posible.

Los controladores paravirtuales de Virtio exponen varios dispositivos IO a máquinas virtuales invitadas desde el dominio de control de hardware (kernel de Linux que ejecuta KVM, dom0 en Xen). Hay un dispositivo virtio-rng que permite que una fuente de entropía sea expuesta a los invitados. Por lo que puedo ver, esto es bastante maduro en KVM pero el soporte de Xen parece ser un trabajo en progreso: enlace

Si bien virtio es excelente, requiere que el invitado tenga controladores virtio y, por lo tanto, sea consciente del hecho de que es una máquina virtual (paravirtualizada). El hardware más nuevo, como los chips Intel IVB y HSW, tiene instrucciones de CPU específicas que proporcionan números aleatorios de un RNG en el chip y pueden exponerse a máquinas virtuales invitadas. Puede probar la disponibilidad de estas instrucciones utilizando CPUID.

Este es un breve resumen y la información probable es suficiente. Si está interesado en obtener más detalles, aquí hay una excelente discusión sobre este tema: enlace

EDITAR: Lo siento, supongo que proporcioné muchos datos pero nunca contesté la pregunta. De todos modos, esta es mi opinión sobre la pregunta actual:

  

¿Es seguro usar esto (desde una perspectiva de seguridad) en una máquina virtual / servidor virtual privado donde el sistema operativo solo tiene acceso a hardware virtualizado? ¿Las claves generadas serán suficientemente aleatorias?

Cuando se trata de seguridad, no hay nada más perjudicial que pensar que su configuración es segura cuando no lo es. El uso de rng-tools cuando no le proporciona ningún beneficio (no tiene una fuente de fuente de entropía de hardware) tiene la posibilidad concreta de hacerle pensar que está generando números aleatorios de alta calidad (¿material de claves?) Cuando en realidad no lo está. Por lo tanto, no creo que el uso de herramientas rng sin tener una fuente de entropía en su VM haga que los números generados sean menos aleatorios, pero puede hacer que piense que está generando claves de alta calidad cuando en realidad no lo está.

Mi consejo sería usar el demonio rng-tools pero solo después de verificar que tienes una fuente de entropía disponible para su uso.

    
respondido por el flihp 03.08.2013 - 03:05
fuente
0

En general estoy de acuerdo con @flihp, pero algunos "tutoriales" aquí y allá sugieren usar / dev / urandom como fuente de entropía de hardware.

Esto es totalmente erróneo ya que inyectará números pseudoaleatorios en la fuente "verdaderamente" aleatoria, que a su vez se usará para generar más números pseudoaleatorios, etc.

En este caso, creo que el uso de herramientas rng empeorará las cosas.

vea también: enlace y enlace

    
respondido por el ascobol 29.04.2016 - 18:20
fuente
0

La otra respuesta es ligeramente inexacta.

Si está ejecutando en un Ivy Bridge (o más nuevo), o en cualquier procesador AMD reciente, la máquina virtual puede usar la instrucción de la CPU RDRAND . Eso es una verdadera entropía de hardware y está disponible para todas las máquinas virtuales (incluso en la nube).

    
respondido por el Derek 03.06.2018 - 04:45
fuente

Lea otras preguntas en las etiquetas