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?


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

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


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.


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 .



-5

Je pense que vous cherchez:

cat /proc/sys/kernel/random/entropy_avail

Désolé, non, je connais bien entropy_avail. J'essaie de mesurer la qualité de cette entropie.
Dustin Kirkland
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.