Aparentemente, / dev / random se basa en interrupciones de hardware o aspectos impredecibles similares del hardware físico. Dado que las máquinas virtuales no tienen hardware físico, la ejecución cat /dev/random
dentro de una máquina virtual no produce nada. Estoy usando Ubuntu Server 11.04 como anfitrión e invitado, con libvirt / KVM.
Necesito configurar Kerberos dentro de una VM, pero krb5_newrealm
simplemente se cuelga para siempre "Cargando datos aleatorios", ya que el sistema no produce ninguno.
¿Alguien sabe cómo solucionar esto? ¿Es posible pasar el / dev / random del host (que es muy hablador) al vm para que el vm pueda usar sus datos aleatorios?
He leído que hay algunas alternativas de software, pero no son buenas para la criptología, ya que no son lo suficientemente aleatorias.
EDITAR: Parece que cat / dev / random en el vm produce resultados, muy, muy lentamente. Obtuve la configuración de mi reino esperando unas dos horas mientras estaba "Cargando datos aleatorios". Finalmente, tuvo suficiente para continuar. Sin embargo, todavía estoy interesado en una forma de acelerar esto.
cat /proc/sys/kernel/random/entropy_avail
cualquier cosa que aumente y que funcione.python -c 'while True: import time; print str(time.sleep(1))[0:0] + open("/proc/sys/kernel/random/entropy_avail", "rb").read(),'
. Sí, eso es difícil de leer, pero no veo forma de ingresar nuevas líneas en los comentarios ...Utilizo hasged en todos mis servidores sin cabeza que realizan operaciones criptográficas (por ejemplo, apretones de manos TLS, kerberos, etc.). Debería estar en el repositorio de paquetes de la mayoría de las versiones de Ubuntu: http://packages.ubuntu.com/search?keywords=haveged&searchon=names&suite=all§ion=all
haveged usa el algoritmo HAVAGE para extraer entropía del estado interno de los procesadores modernos. Aquí hay una explicación en profundidad: http://www.irisa.fr/caps/projects/hipsor/
Puede verificar la aleatoriedad de la entropía generada con el paquete ent. En mis sistemas, la entropía generada a partir de forjado pasó todas las pruebas de aleatoriedad por ent
fuente
Sí, puedes sembrarlo, de:
http://manpages.ubuntu.com/manpages/jaunty/man4/random.4.html
Simplemente puede poner eso en / dev / urandom y debería sembrar el grupo de entropía. Pude confirmar esto al:
Bonificación si hace que el comando ssh pase por un enrutador para que genere entropía * :)
fuente
Esto funciono para mi
La ejecución de krb5_newrealm dentro de una VM puede tardar mucho tiempo en completarse (después de mostrar el mensaje "Cargando datos aleatorios"). Puedes usar el siguiente truco para acelerar un poco las cosas.
publicado en http://fossies.org/linux/john/doc/Kerberos-Auditing-HOWTO.md
fuente
La respuesta X86 es asegurarse de que su VM no atrape RdRand o RdSeed. Confía en su VM para muchas cosas, esta es una de ellas.
Un RNGd suficientemente reciente en una CPU posterior al Puente Snady utilizará (o se le puede decir que lo haga) usar RdRand o RdSeed, y un RdRand o RdSeed sin atrapar obtiene entropía en la VM. / dev / random funciona con una fuente de entropía real (no virtual).
Esto no es por accidente. Está justo allí en los documentos de arquitectura Intel.
Para una fuente de entropía de hardware basada en dispositivo (IE usa un controlador de kernel para compartirla) necesita la VM para virtualizar correctamente la fuente física. No tengo idea si hacen esto y, de ser así, para qué dispositivos.
Si su RNGd no tiene la opción drng a continuación, actualícela. Si su hardware no tiene un RNG de hardware rápido, está condenado y debería considerar usar hardware diferente por motivos de seguridad.
fuente
Estaba teniendo problemas con krb5_newrealm colgando también. Esto funcionó bien para mí, basado en la respuesta anterior:
Es posible que desee matarlo una vez que haya terminado con su necesidad de datos aleatorios. / dev / sda probablemente tenga más datos de los que necesita.
Nota: No estoy seguro de cuán aleatorios son realmente los datos aleatorios generados de esta manera.
fuente