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


14

Sur les systèmes Linux, on peut vérifier l' entropie disponible (utile pour savoir si vous /dev/randomtapez à des fins PRNG) avec

cat /proc/sys/kernel/random/entropy_avail

Cependant, il n'y a pas d'équivalent de /procsur 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 Mac n'affichaient pas ces informations est qu'elles ne sont pas nécessaires (dans la plupart des cas). Les systèmes Linux bloqueront les appels /dev/randoms'il n'y a pas assez d'entropie dans le pool. Sur Mac, il continue périodiquement d'ajouter au pool d'entropie à l'aide du SecurityServerdémon.

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

La qualité de sa sortie dépend cependant de l'ajout régulier d'une entropie appropriée. Si le SecurityServerdémon système échoue pour une raison quelconque, la qualité de la sortie en souffrira au fil du temps sans indication explicite du périphérique aléatoire lui-même.

Ainsi, même si la quantité d'entropie n'est pas facilement disponible, cela ne signifie pas qu'elle n'est pas là et il peut y avoir des cas où ses connaissances peuvent être utiles.


Avez-vous vraiment besoin de vérifier ou simplement de vous assurer qu'il y a suffisamment de choses à utiliser? Voir developer.apple.com/library/mac/#documentation/Darwin/Reference/… Quote: "Les programmeurs paranoïaques peuvent contrer quelque peu ce risque en collectant l'entropie de leur choix (par exemple à partir de touches ou de souris) et en l'ensemencant randomdirectement avant d'obtenir nombres aléatoires importants. "
Chris W. Rea

Je dois juste m'assurer qu'il y en a assez à utiliser.
rm -rf

Réponses:


6

Ce n'est pas une solution, mais une clarification de la façon dont l'entropie est collectée et utilisée sous Linux.

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

/dev/randomet /dev/urandom.

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

Cependant, même 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 complet d'entropie dans / dev / random ne bloquera toujours pas urandom, mais urandom réutilisera la dernière graine valide jusqu'à ce que plus d'entropie soit disponible. Parce que urandom n'est pas bloquant, la plupart des services qui nécessitent un flux constant d'entropie l'utilisent plutôt que de s'appuyer sur / dev / random.

Cependant, il existe encore certains services, tels que diverses 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.


2

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

La force de Yarrow 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, c'est un autre rappel que les priorités d'Apple ne comprennent pas la sécurité / robustesse ou quelque chose comme ça.


1

Mac OS X, comme FreeBSD, ne dépend pas de sources externes d'entropie. Au lieu de cela, il utilise un générateur de nombres pseudo-aléatoires basé sur l' algorithme Yarrow . Parce qu'il utilise un algorithme et non un pool d'entropie, il n'est pas nécessaire de s'assurer qu'il y a "suffisamment" d'entropie - vous pourrez toujours lire à partir de / dev / random sans bloquer .

Donc, pour répondre à votre question, sauf si vous êtes "paranoïaque" et devez baser votre entropie sur des sources externes (frappes / mouvements de souris / etc), auquel cas vous devez le faire vous-même, la quantité d'entropie disponible pour / dev / l'utilisation aléatoire est toujours infinie.


4
Ce n'est pas tout à fait correct. L'utilisation d'un algorithme ne rend pas l'entropie infinie. Ce que cela signifie, c'est que sous Linux, il bloque lorsque le pool d'entropie est faible, tandis que sur mac: "Une entropie supplémentaire est régulièrement fournie au générateur par le démon SecurityServer à partir de mesures de gigue aléatoires du noyau." Donc, fondamentalement, il s'en occupe et enregistre également une certaine entropie sur le disque pour une utilisation immédiatement après le démarrage. Il dit également que bien que Yarrow soit résilient, la qualité dépend de l'ajout régulier d'entropie - quelque chose qui ne sera pas nécessaire s'il s'agissait d'une entropie vraiment infinie
rm -rf

1
Il indique en outre que: "Si le démon du système SecurityServer échoue pour une raison quelconque, la qualité de sortie souffrira au fil du temps sans aucune indication explicite de l'appareil aléatoire lui-même" J'admettrai que OSX a rendu facile de ne pas avoir à se soucier de la réalité valeur d'entropie, mais ne signifie pas qu'il n'y en a pas ... Btw, je faisais référence à cette page de manuel dans mes citations ci
rm -rf

@RM Vrai, je pensais plus à savoir si un appel à / dev / random bloquerait ou non que la qualité de l'entropie
Kyle Cronin

> à moins que vous ne soyez "paranoïaque" - Mac OS X manque simplement d'une quantité raisonnable d'aléatoire pour être même légèrement considéré comme sécurisé
poige
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.