Ce tutoriel concerne les versions de noyau linux amd64/x86_64 supérieures et égales à 2.6.9. Il explique comment installer pandom :un véritable générateur de nombres aléatoires de gigue de synchronisation maintenu par ncomputers.org
Introduction
Le véritable générateur de nombres aléatoires du noyau Linux intégré offre un faible débit dans les circonstances modernes, comme par exemple :les ordinateurs personnels avec des disques SSD et des serveurs privés virtuels (VPS).
Ce problème devient populaire dans les implémentations Linux, en raison du besoin sans cesse croissant de véritables nombres aléatoires, principalement à des fins cryptographiques diverses.
Pandom génère une entropie d'environ 8 Kio/s de 64 ubits/64 bits, est compatible avec les environnements physiques et virtuels et suppose qu'aucun autre processus exécuté en tant qu'utilisateur root n'écrit dans /dev/random.
1 Installation de pandom
1.1 Gagner un accès root
Pandom doit être installé en tant que root, exécutez cette commande si nécessaire.
su -
1.2 Installer les dépendances de build
Pour télécharger et installer pandom, vous avez besoin de :GNU as sembler, GNU faire , GNU tar et GNU wget (les deux derniers sont généralement déjà installés). Vous pouvez les désinstaller plus tard à volonté.
Systèmes basés sur Arch
pacman -S binutils make
Systèmes basés sur Debian
apt-get install binutils make
Systèmes basés sur Red Hat
dnf install binutils make
yum install binutils make
Systèmes basés sur SUSE
zypper install binutils make
1.3 Télécharger et extraire les sources
Ces commandes téléchargent et extraient les sources de pandom de ncomputers.org en utilisant wget et goudron .
wget http://ncomputers.org/pandom.tar.gz
tar xf pandom.tar.gz
cd pandom/amd64-linux
1.4 Tester avant l'installation (recommandé)
Ce test recommandé prend environ 8 minutes. Il vérifie la prise en charge du noyau et génère un fichier nommé checkme (analysé dans la section suivante).
make check
1.5 Déterminer le système d'initialisation
Avant d'installer pandom, vous devez savoir quel logiciel d'initialisation votre système utilise. Si la commande suivante affiche le mot running , cela signifie que votre système utilise systemd , sinon il est probable que votre système utilise un init.d mise en œuvre (par exemple :upstart, sysvinit). Il peut y avoir quelques exceptions, plus d'informations dans ces réponses unix.stackexchange.com.
systemctl is-system-running
running
1.6 Installer pandom
Une fois que vous savez quel système votre implémentation Linux utilise, vous pouvez installer pandom en conséquence.
système d'initialisation basé sur init.d (par exemple :upstart, sysvinit)
Installez pandom en exécutant cette commande, si votre système utilise un init.d mise en œuvre (par exemple :upstart, sysvinit).
make install-init.d
systemd comme système d'initialisation
Installez pandom en exécutant cette commande, si votre système utilise systemd .
make install-systemd
2 Analyse du fichier checkme
Avant d'utiliser pandom à des fins cryptographiques, il est fortement recommandé d'analyser checkme fichier généré lors du processus d'installation dans la section précédente de ce didacticiel. Cette tâche est utile pour savoir si les nombres sont vraiment aléatoires ou non. Cette section explique comment analyser checkme fichier en utilisant ncomputers.org/entropyrarray :un script shell, qui teste l'entropie et la corrélation série de son entrée.
Remarque :cette analyse peut être exécutée sur un autre ordinateur, tel qu'un ordinateur portable ou de bureau. Par exemple :si vous installez pandom dans un serveur privé virtuel (VPS) à ressources limitées, vous pouvez choisir de copier checkme fichier sur votre ordinateur personnel, afin de l'y analyser.
Vous pouvez également utiliser Entropy Online Tester .
2.1 Gagner un accès root
Entropyarray doit être installé en tant que root, exécutez cette commande si nécessaire.
su -
2.2 Installer les dépendances de build
Pour télécharger et installer entropyarray, vous avez besoin de :GNU g++ compilateur, GNU make , GNU tar et GNU wget (les deux derniers sont généralement déjà installés). Vous pouvez les désinstaller plus tard à volonté.
Systèmes basés sur Arch
pacman -S gcc make
Systèmes basés sur Debian
apt-get install g++ make
Systèmes basés sur Red Hat
dnf install gcc-c++ make
yum install gcc-c++ make
Systèmes basés sur SUSE
zypper install gcc-c++ make
2.3 Télécharger et extraire les sources
Ces commandes téléchargent et extraient les sources d'entropyarray de ncomputers.org en utilisant wget et goudron .
wget http://ncomputers.org/rearray.tar.gz
wget http://ncomputers.org/entropy.tar.gz
wget http://ncomputers.org/entropyarray.tar.gz
tar xf entropy.tar.gz
tar xf rearray.tar.gz
tar xf entropyarray.tar.gz
2.4 Installer entropyarray
Remarque :les erreurs concernant -std=c++11 signifient que le GNU g++ la version du compilateur ne prend pas en charge la norme ISO C++ 2011. Vous pouvez essayer de compiler ncomputers.org/entropy et ncomputers.org/rearray dans un autre système qui le prend en charge (par exemple :GNU g++ dans une version plus récente de votre distribution Linux préférée), puis installez les binaires compilés à l'aide de make install dans le système que vous souhaitez exécuter entropyarray , ou ignorez cette étape, bien qu'il soit fortement recommandé d'analyser checkme fichier avant d'utiliser pandom à des fins cryptographiques.
cd rearray; make install; cd ..
cd entropy; make install; cd ..
cd entropyarray; make install; cd ..
2.5 Analyser le fichier checkme
Remarque :les implémentations pandom 64 ubits/64 bits devraient entraîner ce test avec une entropie supérieure à 15,977 et max fréquence inférieure à 70 . Si vos résultats diffèrent trop, vous pouvez essayer d'augmenter l'imprévisibilité de votre implémentation pandom comme décrit dans la cinquième section de ce didacticiel. Si vous avez sauté la dernière étape, vous pouvez utiliser d'autres outils tels que le test de séquence de nombres pseudo-aléatoires.
entropyarray checkme
entropyarray in /tmp/tmp.mbCopmzqsg
15.977339
min:12
med:32
max:56
15.977368
min:11
med:32
max:58
15.977489
min:11
med:32
max:59
15.977077
min:12
med:32
max:60
15.977439
min:8
med:32
max:59
15.977374
min:13
med:32
max:60
15.977312
min:12
med:32
max:67
2.6 Désinstaller entropyarray (facultatif)
Si vous prévoyez de ne plus utiliser entropyarray, vous voudrez peut-être le désinstaller à volonté.
cd entropyarray; make uninstall; cd ..
cd entropy; make uninstall; cd ..
cd rearray; make uninstall; cd ..
3 Installation à l'aide du référentiel debian
Si vous souhaitez maintenir pandom à jour sur votre système basé sur Debian, vous pouvez choisir de l'installer/réinstaller à l'aide du référentiel debian ncomputers.org.
3.1 Gagner un accès root
Les packages debian ci-dessous doivent être installés en tant que root, exécutez cette commande si nécessaire.
su -
3.2 Installer le trousseau de clés
Ce paquet debian inclut la clé publique du dépôt debian ncomputers.org.
wget http://ncomputers.org/debian/keyring.deb
dpkg -i keyring.deb
rm keyring.deb
3.3 Liste des sources d'installation
Ces paquets debian incluent la liste des sources du dépôt debian ncomputers.org selon les dernières distributions debian (année 2017).
Remarque :Il est également possible d'écrire les lignes commentées ci-dessous dans /etc/apt/sources.list , au lieu d'installer le paquet debian respectif pour votre distribution debian, mais si ces sources changent à l'avenir, vous devrez les mettre à jour manuellement.
Wheezy
#deb http://ncomputers.org/debian wheezy main
wget http://ncomputers.org/debian/wheezy.deb
dpkg -i wheezy.deb
rm wheezy.deb
Jessie
#deb http://ncomputers.org/debian jessie main
wget http://ncomputers.org/debian/jessie.deb
dpkg -i jessie.deb
rm jessie.deb
S'étirer
#deb http://ncomputers.org/debian stretch main
wget http://ncomputers.org/debian/stretch.deb
dpkg -i stretch.deb
rm stretch.deb
3.4 Mettre à jour la liste des sources
Une fois le trousseau de clés et la liste des sources installés.
apt-get update
3.5 Test pandom
Une fois testé, vous pouvez désinstaller le package ci-dessous à volonté.
Remarque :si vous avez déjà testé pandom dans votre implémentation Linux, vous pouvez ignorer cette étape.
apt-get install pandom-test
pandom-test
generating checkme file, please wait around 8 minutes ...
entropyarray in /tmp/tmp.5SkiYsYG3h
15.977366
min:12
med:32
max:57
15.977367
min:13
med:32
max:57
15.977328
min:12
med:32
max:61
15.977431
min:12
med:32
max:59
15.977437
min:11
med:32
max:57
15.977298
min:11
med:32
max:59
15.977196
min:10
med:32
max:57
3.6 Installer pandom
apt-get install pandom
4 Gérer pandom
Une fois pandom installé, vous souhaiterez peut-être le gérer.
4.1 Test de performances
Pandom offre environ 8 kilo-octets par seconde, mais ses performances peuvent varier en fonction de l'environnement.
dd if=/dev/random of=/dev/null bs=8 count=512
512+0 records in
512+0 records out
4096 bytes (4.1 kB, 4.0 KiB) copied, 0.451253 s, 9.1 kB/s
4.2 Test d'entropie et de corrélation sérielle
En plus de ncomputers.org/entropyarray , il existe d'autres tests, par exemple la suite de tests NIST par Ilja Gerhardt.
entropyarray /dev/random 1M
4.3 Service système
Pandom s'exécute en tant que service système.
système d'initialisation basé sur init.d (par exemple :upstart, sysvinit)
/etc/init.d/random status
/etc/init.d/random start
/etc/init.d/random stop
/etc/init.d/random restart
systemd comme système d'initialisation
systemctl status random
systemctl start random
systemctl stop random
systemctl restart random
5 Augmentation de l'imprévisibilité ou des performances
Si vous souhaitez essayer d'augmenter l'imprévisibilité ou les performances de votre implémentation pandom, vous pouvez essayer d'ajouter ou de supprimer des mesures de temps CPU.
5.1 Modifier les fichiers sources
Dans les fichiers sources test.s et tRNG.s ajouter ou supprimer des blocs de mesure à volonté.
#measurement block
mov $35,%rax
syscall
rdtsc
[...]
#measurement block
mov $35,%rax
syscall
rdtsc
[...]
5.2 Tester l'imprévisibilité
Nous vous recommandons de toujours tester toute implémentation pandom personnalisée avant de l'utiliser à des fins cryptographiques.
make check
5.3 Installer pandom personnalisé
Si vous êtes satisfait des résultats, vous pouvez installer votre implémentation pandom personnalisée.
make install
Informations supplémentaires et mises à jour :http://ncomputers.org/pandom