6 votes

Comment augmenter la taille maximale du pool /dev/random

Actuellement, j'ai une taille maximale de 4096 octets :

$ cat /proc/sys/kernel/random/poolsize           
4096

Je dois générer de nombreuses clés PGP et j'ai vraiment besoin d'utiliser /dev/random pour des raisons de sécurité.

J'ai cherché des drapeaux de noyau concernant cette taille de pool, mais je n'ai rien trouvé.

2voto

max_y Points 83

Pour modifier la taille des pools dans les noyaux récents (2.6 et ultérieur), vous devriez patcher et recompiler le noyau, car la configuration est codée en dur :

https://github.com/torvalds/linux/blob/27db64f65f1be2f2ee741a1bf20d8d13d62c167f/drivers/char/random.c#L284-L287


Une note obligatoire : la taille du pool d'entropie n'est pas vraiment pertinente pour votre cas d'utilisation. Il est bien plus important de savoir à quelle vitesse le pool est renouvelé. Mais changer la taille du pool d'entropie n'affecte pas la vitesse à laquelle le pool est renouvelé, donc il y a peu voire pas d'intérêt à augmenter la taille du pool.

Si, comme vous le dites, vous devez vraiment vraiment vraiment générer beaucoup de clés alors vous devriez obtenir un générateur matériel de nombres aléatoires dédié, car /dev/random n'est probablement pas un bon choix.

Aussi, si ce n'est pas déjà fait, lisez https://www.2uo.de/myths-about-urandom/ qui, bien qu'il ne soit pas 100% précis, vous donne quelques informations sur les différences (ou l'absence de différences) entre /dev/random et /dev/urandom - car il est fort probable que la solution la plus correcte pour vous serait d'utiliser /dev/urandom à la place de /dev/random (c'est d'ailleurs ce que openssl fait par défaut ; plus précisément, il utilise getrandom en mode non bloquant).

0voto

albal Points 1213

Pour définir des paramètres noyaux modifiables, vous pouvez utiliser sysctl de manière interactive :

sysctl kernel.random.poolsize=8192

ou vous pouvez écho la valeur vers le système de fichiers /proc :

echo 8192 > /proc/sys/kernel/random/poolsize

Pour que les modifications prennent effet après le démarrage, vous pouvez ajouter une ligne à /etc/sysctl.conf (avant le démarrage, vous pouvez généralement transmettre le paramètre dans le chargeur d'amorçage sur la ligne kernel) :

kernel.random.poolsize=8192

Après avoir fait cela, vous pouvez exécuter sysctl -p pour que les modifications soient effectives. Cela suppose que le paramètre est modifiable ou peut être augmenté au-delà de sa valeur actuelle. Sinon, vous devrez reconstruire le noyau ou trouver une solution de rechange.

Cependant, votre problème peut être lié à la capacité de remplir rapidement le pool selon vos besoins. Vous voudrez peut-être envisager haveged

Ce type de question peut attirer plus d'attention sur security.stackexchange.com et j'ai récemment examiné cette question sur Entropy qui pourrait vous intéresser.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X