Apparemment, / dev / random est basé sur des interruptions matérielles ou des aspects similaires imprévisibles du matériel physique. Étant donné que les machines virtuelles n'ont pas de matériel physique, leur exécution cat /dev/random
dans une machine virtuelle ne produit rien. J'utilise Ubuntu Server 11.04 comme hôte et invité, avec libvirt / KVM.
J'ai besoin de configurer Kerberos dans une machine virtuelle, mais krb5_newrealm
se bloque pour toujours "Chargement de données aléatoires", car le système n'en produit pas.
Est-ce que quelqu'un sait comment contourner cela? Est-il possible de passer / dev / random de l'hôte (qui est très bavard) dans le VM afin que le VM puisse utiliser ses données aléatoires?
J'ai lu qu'il existe des alternatives logicielles, mais elles ne sont pas bonnes pour la cryptologie car elles ne sont pas assez aléatoires.
EDIT: Il semble que cat / dev / random sur le vm produit une sortie, juste très, très lentement. J'ai obtenu la configuration de mon domaine en attendant environ deux heures pendant qu'il "chargeait des données aléatoires". Finalement, cela a suffi pour continuer. Je suis toujours intéressé par un moyen d'accélérer cela.
cat /proc/sys/kernel/random/entropy_avail
tout ce qui augmente et qui fonctionne.python -c 'while True: import time; print str(time.sleep(1))[0:0] + open("/proc/sys/kernel/random/entropy_avail", "rb").read(),'
. Ouais, c'est difficile à lire, mais je ne vois aucun moyen d'entrer de nouvelles lignes dans les commentaires ...J'utilise haveged sur tous mes serveurs sans tête qui effectuent des opérations cryptographiques (par exemple, des poignées de main TLS, des kerberos, etc.). Il devrait se trouver dans la plupart des référentiels de packages d'Ubuntu: http://packages.ubuntu.com/search?keywords=haveged&searchon=names&suite=all§ion=all
haveged utilise l'algorithme HAVAGE pour extraire l'entropie de l'état interne des processeurs modernes. Voici une explication approfondie: http://www.irisa.fr/caps/projects/hipsor/
Vous pouvez vérifier le caractère aléatoire de l'entropie générée avec le package ent. Sur mes systèmes, l'entropie générée par ont passé tous les tests de hasard par ent
la source
Oui, vous pouvez le semer, à partir de:
http://manpages.ubuntu.com/manpages/jaunty/man4/random.4.html
Vous pouvez simplement mettre cela dans / dev / urandom et cela devrait amorcer le pool d'entropie. J'ai pu le confirmer en:
Bonus si vous faites passer la commande ssh par un routeur pour qu'elle génère l'entropie * :)
la source
Cela a fonctionné pour moi
L'exécution de krb5_newrealm dans une machine virtuelle peut prendre beaucoup de temps (après l'affichage du message "Chargement de données aléatoires"). Vous pouvez utiliser le hack suivant pour accélérer un peu les choses.
publié sur http://fossies.org/linux/john/doc/Kerberos-Auditing-HOWTO.md
la source
La réponse X86 est de s'assurer que votre machine virtuelle ne piège pas RdRand ou RdSeed. Vous faites confiance à votre machine virtuelle pour de nombreuses choses, c'est l'une d'entre elles.
Un RNGd suffisamment récent sur un CPU post Snady Bridge, utilisera (ou peut être dit de) RdRand ou RdSeed, et un RdRand ou RdSeed non piégé obtient l'entropie dans la VM. / dev / random fonctionne alors avec une source réelle (et non virtuelle) d'entropie.
Ce n'est pas par accident. C'est juste là dans les documents d'architecture Intel.
Pour une source d'entropie matérielle basée sur un périphérique (IE utilise un pilote de noyau pour la partager), vous avez besoin de la machine virtuelle pour virtualiser correctement la source physique. Je n'ai aucune idée s'ils le font et si oui, pour quels appareils.
Si votre RNGd n'a pas l'option drng ci-dessous, mettez-la à jour. Si votre matériel n'a pas de RNG matériel rapide, vous êtes condamné et vous devriez envisager d'utiliser un matériel différent à des fins de sécurité.
la source
J'avais aussi des problèmes avec la suspension de krb5_newrealm. Cela a bien fonctionné pour moi, basé sur la réponse ci-dessus:
Vous voudrez peut-être le tuer une fois que vous aurez terminé avec votre besoin de données aléatoires. / dev / sda a probablement plus de données que vous n'en avez besoin.
Remarque: je ne sais pas à quel point les données aléatoires générées de cette manière sont aléatoires.
la source