Entropía en máquinas virtuales.

12

Como sabrás, no es tan fácil generar entropía en una máquina virtual como en una PC "normal". Generar una clave gpg en una máquina virtual puede llevar un tiempo, incluso con las herramientas correctas.

Hay muchas más funciones de cifrado que no son tan conscientes de la entropía como gpg.

Entonces, ¿se puede decir que la criptografía es menos segura en una máquina virtual?

dbanck
fuente
1
Para empezar, los números aleatorios de una máquina "real" no son aleatorios (a menos que tenga un generador de números aleatorios de hardware, que la mayoría no tiene). Para empezar, todos son pseudoaleatorios y la entropía se genera de la misma manera. Si es lento en una máquina virtual, es la plataforma de virtualización que lo ralentiza (supongo que no está usando un hipervisor tipo 1).
Chris S

Respuestas:

6

Antes que nada, déjame decirte que no soy un experto en seguridad.

Como la creación de claves gpg se utiliza /dev/randomcomo generador de números aleatorios, es tan segura en una máquina virtual como en una máquina real.
/dev/randomes un dispositivo de bloqueo y dejará de entregar cualquier aleatoriedad más allá de la cantidad disponible. Puede verificar su aleatoriedad disponible por
cat /proc/sys/kernel/random/entropy_avail(debe ser alrededor de 2000 )

En una máquina virtual, la aleatoriedad disponible es de hecho menor que en una máquina real, debido a la falta de acceso al hardware.
Puede aumentar la entropía, por ejemplo, aplicando claves de entropía y / o cambiando a una máquina no virtualizada.

Hay un buen artículo disponible sobre entropía en máquinas virtuales. Desafortunadamente, ambas partes del artículo solo están disponibles en el caché de Google en este momento.

La entropía tiene más efectos sobre cualquier encriptación SSL / TLS. Por lo tanto, el uso de /dev/urandomcualquier fuente no aleatoria tiene un impacto en la seguridad de sus aplicaciones.

En términos de cuán confiable es en /dev/urandomcomparación con la aleatoriedad verdadera;
No puedo darte una respuesta decente allí, lo siento.

Para obtener más información sobre este tema, puede visitar http://security.stackexchange.com y / o leer, por ejemplo. esta publicación

nce
fuente
1
/dev/urandomestá utilizando un PRNG criptográficamente seguro (sembrado por el mismo grupo que /dev/random), por lo que no debería haber ningún problema siempre que haya suficiente entropía inicial en este grupo. Puede haber un punto en sembrarlo del grupo de entropía de la máquina principal.
Paŭlo Ebermann
3

Sí, en la mayoría de los casos, la criptografía es menos segura en una máquina virtual que en un servidor "real".

Este último puede al menos reunir entropía de algún hardware real. De hecho, la operación de una pieza de HW está, en la mayoría de los casos, vinculada a algún fenómeno físico, que siempre está sujeto a pequeñas variaciones, al azar por todas las cuentas. Dado que los servidores generalmente se ejecutan durante mucho tiempo sin un reinicio, el grupo de entropía resultante eventualmente será de calidad suficiente.

Las máquinas virtuales sufren de tres problemas.

  1. El hardware que ven no es real y, por lo tanto, apenas está influenciado por ningún fenómeno físico. Podrán recolectar entropía de una manera mucho más lenta.
  2. Las máquinas virtuales se restablecen con mucha más frecuencia que los servidores reales y es posible que ni siquiera tengan tiempo para recolectar suficiente entropía (por lo que es bueno guardar el estado de entropía actual al apagar, y usarlo para alimentar el grupo de entropía al reiniciar).
  3. Si bien un servidor real puede tener alguna oportunidad de determinar cuándo se trata de un grupo de entropía defectuoso, la máquina virtual funcionará más fácilmente bajo la impresión de que el grupo de entropía es bueno (porque se recopiló de HW, pero sin saber que el HW es no real), mientras que en realidad es malo.

La mejor solución es hacer que la VM simplemente se rinda y se dé cuenta de que el HW que ve es una mala fuente de entropía. Luego, organice un servicio de red local para distribuir entropía de alta calidad (consulte Entropy Broker ). El "servidor de entropía" puede extraer aleatoriedad de HW genérico (en cuyo caso debe funcionar durante un tiempo suficiente y debe tener un SO decente) o de HW criptográfico específico (un chip TPM, un chip VIA Padlock, etc.).

Una máquina virtual que utiliza dicho servicio puede incluso ser más segura (criptográficamente) que un servidor "real" que acaba de iniciarse.

SquareRootOfTwentyThree
fuente