Outil de mesure de la qualité d'entropie?

26

Existe-t-il un outil disponible pour les systèmes Linux qui peut mesurer la "qualité" de l'entropie sur le système?

Je sais compter l'entropie:

cat /proc/sys/kernel/random/entropy_avail

Et je sais que certains systèmes ont de "bonnes" sources d'entropie (clés d'entropie matérielles), et d'autres pas (machines virtuelles).

Mais existe-t-il un outil qui peut fournir une métrique quant à la «qualité» de l'entropie sur le système?

Dustin Kirkland
la source
Je suis intéressé, pourquoi voudriez-vous calculer l'entropie d'un système?
whoami

Réponses:

26

http://www.fourmilab.ch/random/ fonctionne pour moi.

sudo apt-get install ent
head -c 1M /dev/urandom > /tmp/out
ent /tmp/out
Marcin
la source
4
Outil cool. Vous pouvez vérifier un appareil en une seule commande avecdd if=/dev/urandom bs=1M count=1 | ent
l0b0
7
Notez que l'exécution d'un estimateur d'entropie sur /dev/urandomest complètement inutile. /dev/urandomest la sortie d'un PRNG de qualité cryptographique, et un estimateur d'entropie donnera toujours des notes complètes à tout PRNG semi-décent. Vous devez exécuter l'estimateur d'entropie sur la source d'entropie non conditionnée , que Linux n'expose pas en dehors du noyau. Cc @DustinKirkland
Gilles 'SO- arrête d'être méchant'
@Gilles il n'y a aucun moyen?
Felipe
@FelipeMicaroniLalli Pas moyen de faire quoi? Estimer l'entropie à partir de la sortie de /dev/urandom? Oui. La sortie de /dev/urandom(ou /dev/random, même problème) est la sortie d'un PRNG de qualité cryptographique, et qui aura toujours les meilleures notes pour l'estimation de l'entropie. Si vous voulez estimer l'entropie, vous devez creuser dans le noyau, comprendre ce qu'il utilise pour les sources d'entropie et mesurer TRÈS longtemps.
Gilles 'SO- arrête d'être méchant'
1
@FelipeMicaroniLalli Non, la source d'entropie n'affecte pas le PRNG d'une manière qui peut être mesurée. C'est plutôt hors sujet pour Unix et Linux mais je sais que je l'ai vu discuté sur la cryptographie , essayez de rechercher les balises [entropie] et [aléatoire] là-bas.
Gilles 'SO- arrête d'être méchant'
6

"ent" est un excellent outil en ligne de commande pour une estimation simple et rapide de l'entropie.

Je l'ai utilisé pour apprendre comment fonctionnent les générateurs congruentiels linéaires. Mais si par "mesurer l'entropie" vous voulez dire "mesurer l'aléatoire" ... le problème devient plus complexe.

Pour un test d'aléatoire plus robuste, vous devriez consulter la suite de tests dieharder: http://www.phy.duke.edu/~rgb/General/dieharder.php

Ce n'est pas aussi facile à utiliser que "ent" mais c'est beaucoup plus rigoureux.

Pour une étude plus approfondie, "Cipher's by Ritter" propose également une bonne sélection de liens:

http://www.ciphersbyritter.com/NETLINKS.HTM#RandomnessLinks

Morgan
la source
3

Les outils ne peuvent que vous donner une limite supérieure sur l'entropie. Pour la plupart des utilisations, en particulier les utilisations liées à la sécurité, vous êtes plus intéressé par une limite inférieure.

Calculer l'entropie d'un fichier arbitraire est mathématiquement impossible, donc il ne peut y avoir aucun outil qui puisse le faire.

Je peux facilement écrire un générateur de fichiers qui génère des fichiers à très faible entropie, mais qui réussira tout de même vos tests d'entropie. Utilisez simplement un crypto PRNG avec une petite graine.

CodesInChaos
la source
0

Vous pouvez utiliser Binwalk avec l' -Eoption:

# binwalk -E data

DECIMAL       HEXADECIMAL     ENTROPY
--------------------------------------------------------------------------------
0             0x0             Falling entropy edge (0.000000)
2443264       0x254800        Rising entropy edge (0.988510)

Vous pouvez obtenir le code source à partir de son référentiel GitHub .

Mateusz Piotrowski
la source
0

ncomputers.org/entropyarray effectue un test d'entropie plus rapide qu'avec les enttests de corrélation série 16, 32, 64, 128, 256 et 512 bits.

avec l' outil ncomputers.org/entropy , vous pouvez également effectuer des tests visuels de fréquence et de distribution, en traçant les sorties entropy.freq et entropy.gaus

à titre d'exemple, vous pouvez effectuer un test en ligne jusqu'à 1 Go en utilisant servertest.online/entropytest

entropy.freq entropy.gaus

nordinateurs
la source
-5

Je pense que vous cherchez:

cat /proc/sys/kernel/random/entropy_avail
ramonovski
la source
Désolé, non, je connais bien entropy_avail. J'essaie de mesurer la qualité de cette entropie.
Dustin Kirkland