17 votes

Comment puis-je vérifier l'entropie disponible ?

Sur les systèmes linux, on peut vérifier la disponibilité de entropie (utile pour savoir si vous tapez sur /dev/random pour tout ce qui concerne les PRNG) avec

cat /proc/sys/kernel/random/entropy_avail

Cependant, il n'existe pas d'équivalent de /proc sur un Mac (AFAIK). Comment puis-je vérifier l'entropie système disponible sur un Mac ? J'utilise OS X 10.7.3 (Lion).


Pour mettre à jour certains de mes commentaires sous la réponse de Kyle - L'une des raisons pour lesquelles les Macs n'affichent pas cette information est qu'elle n'est pas nécessaire (dans la plupart des cas). Les systèmes Linux bloquent les appels à /dev/random s'il n'y a pas assez d'entropie dans la piscine. Sur les Macs, il continue à ajouter périodiquement à la réserve d'entropie en utilisant le SecurityServer démon.

Cependant, il note également que si le démon échoue pour une raison quelconque, la qualité de la sortie diminuera. sans aucune indication d'échec :

La qualité de son résultat dépend toutefois de l'ajout régulier d'une entropie appropriée. Si le SecurityServer Le démon du système échoue pour une raison quelconque, la qualité de la production diminuera au fil du temps sans aucune indication explicite. de l'appareil aléatoire lui-même.

Ainsi, même si la quantité d'entropie n'est pas facilement accessible, cela ne signifie pas qu'elle n'existe pas et qu'il peut y avoir des cas où sa connaissance peut être utile.

0 votes

Faut-il vraiment vérifier, ou juste s'assurer qu'il y a assez de choses à utiliser ? Voir developer.apple.com/library/mac/#documentation/Darwin/Reference/ Citation : "Les programmeurs paranoïaques peuvent contrer ce risque en collectant l'entropie de leur choix (par exemple, à partir de la synchronisation des touches ou de la souris) et en l'introduisant dans le système. random directement avant d'obtenir des nombres aléatoires importants."

0 votes

Je dois juste m'assurer qu'il y en a assez pour l'utiliser.

7voto

Chris Points 71

Il ne s'agit pas d'une solution, mais d'une clarification de la manière dont l'entropie est recueillie et utilisée dans Linux.

Linux a en fait deux pools d'entropie différents :

/dev/random y /dev/urandom .

Le premier est un véritable pool aléatoire, alimenté par les sources d'entropie du système.
Ce dernier est plutôt un PRNG comme ceux que l'on trouve sur les BSD et OS X.

Cependant, même l'urandom nécessite une graine d'entropie aléatoire "réelle" afin de produire des données pseudo-aléatoires de qualité. Sur les noyaux récents, un manque total d'entropie dans /dev/random ne bloquera pas urandom, mais urandom réutilisera la dernière graine valide jusqu'à ce que plus d'entropie soit disponible. Comme urandom n'est pas bloquant, la plupart des services qui nécessitent un flux régulier d'entropie l'utilisent plutôt que de s'appuyer sur /dev/random.

Il existe cependant encore certains services, comme les différentes suites SSL, qui ne peuvent pas se contenter d'une entropie pseudo-aléatoire, mais nécessitent une source d'entropie vraiment imprévisible. Dans ce cas, urandom (ou tout autre PRNG) ne peut pas être utilisé, et /dev/random entre en jeu.

2voto

poige Points 898

Mac OS X utilise simplement Millefeuille . Même FreeBSD est allé plus loin et a adopté sa version améliorée appelée "Fortuna".

La force du millefeuille est limitée par la taille de la clé. Par exemple, Yarrow-160 a une taille de clé effective de 160 bits. Si la sécurité nécessite 256 bits, Yarrow-160 n'est pas capable de faire le travail.

Dans l'ensemble, il s'agit d'un nouveau rappel que les priorités d'Apple n'incluent pas la sécurité/robustesse ou quoi que ce soit de ce genre.

1voto

Chris Jester-Young Points 102876

Mac OS X, comme FreeBSD, ne s'appuie pas sur des sources externes d'entropie. A la place, il utilise un générateur de nombres pseudo-aléatoires basé sur la méthode Algorithme de Yarrow . Étant donné qu'il utilise un algorithme et non une réserve d'entropie, il n'est pas nécessaire de s'assurer qu'il y a "assez" d'entropie vous serez toujours en mesure de lire depuis /dev/random sans bloquer .

Donc, pour répondre à votre question, à moins que vous ne soyez "paranoïaque" et que vous ayez besoin de baser votre entropie sur des sources externes (frappes de clavier/mouvements de souris/etc), auquel cas vous devez le faire vous-même, la quantité d'entropie disponible pour l'utilisation de /dev/random est toujours infinie.

4 votes

Ce n'est pas tout à fait exact. L'utilisation d'un algorithme ne lui confère pas une entropie infinie. Ce qu'ils veulent dire c'est que sous Linux, il bloque quand le pool d'entropie est bas, alors que sous Mac : "Une entropie supplémentaire est fournie régulièrement au générateur par le démon SecurityServer à partir de mesures de gigue aléatoires du noyau." Donc, en gros, il s'en occupe et sauvegarde aussi un peu d'entropie sur le disque pour l'utiliser immédiatement après le démarrage. Il est également dit que si Yarrow est résilient, sa qualité dépend de l'ajout régulier d'entropie - ce qui ne serait pas nécessaire s'il s'agissait d'une entropie infinie.

1 votes

Il est également dit que : "Si le démon système de SecurityServer échoue pour une raison quelconque, la qualité de la sortie se dégradera au fil du temps sans aucune indication explicite du dispositif aléatoire lui-même." J'admets qu'OSX a rendu facile le fait de ne pas avoir à se soucier de la valeur réelle de l'entropie, mais cela ne veut pas dire qu'il n'y en a pas... Btw, je faisais référence à cette page de manuel dans mes citations ci-dessus

0 votes

@R.M C'est vrai, je pensais plus à la possibilité de bloquer ou non un appel à /dev/random qu'à la qualité de l'entropie.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X