Questo tutorial è per le versioni del kernel linux amd64 / x86_64 maggiori e uguali a 2.6.9. Spiega come installare pandom:un vero generatore di numeri casuali di timing jitter gestito da ncomputers.org
Introduzione
Il generatore di numeri casuali reali del kernel Linux integrato fornisce un throughput basso in circostanze moderne, come ad esempio:personal computer con unità a stato solido (SSD) e server privati virtuali (VPS).
Questo problema sta diventando popolare nelle implementazioni Linux, a causa della necessità in continua crescita di veri numeri casuali, principalmente per diversi scopi crittografici.
Pandom genera un'entropia di circa 8 KiB/s di 64 ubit/64 bit, è compatibile con ambienti fisici e virtuali e presuppone che nessun altro processo in esecuzione come utente root scriva su /dev/random.
1 Installazione di pandom
1.1 Ottieni l'accesso come root
Pandom deve essere installato come root, esegui questo comando se necessario.
su -
1.2 Installa le dipendenze di build
Per scaricare e installare pandom, è necessario:GNU as sembler, GNU make , GNU tar e GNU wget (gli ultimi due di solito sono già installati). Puoi disinstallarli in seguito a piacimento.
Sistemi basati su Arch
pacman -S binutils make
Sistemi basati su Debian
apt-get install binutils make
Sistemi basati su Red Hat
dnf install binutils make
yum install binutils make
Sistemi basati su SUSE
zypper install binutils make
1.3 Scarica ed estrai sorgenti
Questi comandi scaricano ed estraggono i sorgenti di pandom da ncomputers.org usando wget e tar .
wget http://ncomputers.org/pandom.tar.gz
tar xf pandom.tar.gz
cd pandom/amd64-linux
1.4 Testare prima dell'installazione (consigliato)
Questo test consigliato richiede circa 8 minuti. Verifica il supporto del kernel e genera un file chiamato checkme (analizzato nella prossima sezione).
make check
1.5 Determina il sistema init
Prima di installare pandom, devi sapere quale software init utilizza il tuo sistema. Se il comando seguente restituisce la parola in esecuzione , significa che il tuo sistema sta utilizzando systemd , altrimenti è probabile che il tuo sistema stia utilizzando un init.d implementazione (es:upstart, sysvinit). Potrebbero esserci alcune eccezioni, maggiori informazioni in queste risposte unix.stackexchange.com.
systemctl is-system-running
running
1.6 Installa pandom
Una volta che sai quale sistema utilizza la tua implementazione Linux, puoi installare pandom di conseguenza.
sistema init basato su init.d (es:upstart, sysvinit)
Installa pandom eseguendo questo comando, se il tuo sistema utilizza un init.d implementazione (es:upstart, sysvinit).
make install-init.d
systemd come sistema init
Installa pandom eseguendo questo comando, se il tuo sistema utilizza systemd .
make install-systemd
2 Analisi del file checkme
Prima di utilizzare il pandom per scopi crittografici, si consiglia vivamente di analizzare checkme file generato durante il processo di installazione nella sezione precedente di questo tutorial. Questa attività è utile per sapere se i numeri sono veramente casuali o meno. Questa sezione spiega come analizzare checkme file utilizzando ncomputers.org/entropyarray :uno script di shell, che verifica l'entropia e la correlazione seriale del suo input.
Nota :questa analisi potrebbe essere eseguita su un altro computer, ad esempio un laptop o un computer desktop. Ad esempio:se stai installando pandom in un server privato virtuale (VPS) con risorse limitate, potresti scegliere di copiare checkme file sul tuo personal computer, per analizzarlo lì.
Puoi anche usare Entropy Online Tester .
2.1 Ottieni l'accesso come root
Entropyarray deve essere installato come root, esegui questo comando se necessario.
su -
2.2 Installare le dipendenze di build
Per scaricare e installare entropyarray, è necessario:GNU g++ compilatore, GNU make , GNU tar e GNU wget (gli ultimi due di solito sono già installati). Puoi disinstallarli in seguito a piacimento.
Sistemi basati su Arch
pacman -S gcc make
Sistemi basati su Debian
apt-get install g++ make
Sistemi basati su Red Hat
dnf install gcc-c++ make
yum install gcc-c++ make
Sistemi basati su SUSE
zypper install gcc-c++ make
2.3 Scaricare ed estrarre sorgenti
Questi comandi scaricano ed estraggono le sorgenti di entropyarray da ncomputers.org usando wget e tar .
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 Installa entropyarray
Nota :gli errori relativi a -std=c++11 indicano che GNU g++ la versione del compilatore non supporta lo standard ISO C++ 2011. Puoi provare a compilare ncomputers.org/entropy e ncomputers.org/rearray in un altro sistema che lo supporta (es:GNU g++ in una versione più recente della tua distribuzione Linux preferita) e quindi installa i binari compilati usando make install nel sistema in cui desideri eseguire entropyarray , oppure salta questo passaggio, nonostante sia altamente consigliato analizzare checkme file prima di utilizzare pandom per qualsiasi scopo crittografico.
cd rearray; make install; cd ..
cd entropy; make install; cd ..
cd entropyarray; make install; cd ..
2.5 Analizza il file checkme
Nota :le implementazioni pandom a 64 bit/64 bit dovrebbero risultare in questo test con entropia superiore a 15.977 e massimo frequenza inferiore a 70 . Se i tuoi risultati differiscono troppo, puoi provare ad aumentare l'imprevedibilità della tua implementazione pandom come descritto nella quinta sezione di questo tutorial. Nel caso in cui tu abbia saltato l'ultimo passaggio, puoi utilizzare altri strumenti come il test di sequenza numerica pseudocasuale.
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 Disinstalla entropyarray (opzionale)
Se prevedi di non utilizzare più entropyarray, potresti voler disinstallarlo a piacimento.
cd entropyarray; make uninstall; cd ..
cd entropy; make uninstall; cd ..
cd rearray; make uninstall; cd ..
3 Installazione utilizzando il repository debian
Se desideri mantenere aggiornato pandom sul tuo sistema basato su debian, puoi scegliere di installarlo/reinstallarlo utilizzando il repository debian ncomputers.org.
3.1 Ottieni l'accesso come root
I seguenti pacchetti debian devono essere installati come root, eseguire questo comando se necessario.
su -
3.2 Installa portachiavi
Questo pacchetto debian include la chiave pubblica del repository debian ncomputers.org.
wget http://ncomputers.org/debian/keyring.deb
dpkg -i keyring.deb
rm keyring.deb
3.3 Installa l'elenco delle fonti
Questi pacchetti debian includono l'elenco dei sorgenti del repository debian ncomputers.org secondo le ultime distribuzioni debian (anno 2017).
Nota :È anche possibile scrivere le righe commentate di seguito in /etc/apt/sources.list , invece di installare il rispettivo pacchetto debian per la tua distribuzione debian, ma se queste fonti dovessero cambiare in futuro, dovresti aggiornarle manualmente.
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
Allunga
#deb http://ncomputers.org/debian stretch main
wget http://ncomputers.org/debian/stretch.deb
dpkg -i stretch.deb
rm stretch.deb
3.4 Aggiorna l'elenco delle fonti
Una volta installati il portachiavi e l'elenco delle fonti.
apt-get update
3.5 Testare il pandom
Una volta testato, puoi disinstallare il pacchetto seguente a piacimento.
Nota :se hai già testato pandom nella tua implementazione Linux, puoi saltare questo passaggio.
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 Installa pandom
apt-get install pandom
4 Gestire il pandom
Dopo aver installato pandom, potresti volerlo gestire.
4.1 Test delle prestazioni
Pandom offre circa 8 kilobyte al secondo, ma le sue prestazioni possono variare a seconda dell'ambiente.
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 Entropia e test di correlazione seriale
Oltre a ncomputers.org/entropyarray , ci sono più test, ad esempio NIST testsuite di Ilja Gerhardt.
entropyarray /dev/random 1M
4.3 Servizio di sistema
Pandom viene eseguito come servizio di sistema.
sistema init basato su init.d (es:upstart, sysvinit)
/etc/init.d/random status
/etc/init.d/random start
/etc/init.d/random stop
/etc/init.d/random restart
systemd come sistema init
systemctl status random
systemctl start random
systemctl stop random
systemctl restart random
5 Aumento dell'imprevedibilità o delle prestazioni
Se desideri provare ad aumentare l'imprevedibilità o le prestazioni della tua implementazione pandom, puoi provare ad aggiungere o eliminare le misurazioni del tempo della CPU.
5.1 Modifica file sorgente
Nei file sorgente test.s e tRNG.s aggiungi o rimuovi blocchi di misura a piacimento.
#measurement block
mov $35,%rax
syscall
rdtsc
[...]
#measurement block
mov $35,%rax
syscall
rdtsc
[...]
5.2 Testare l'imprevedibilità
Ti consigliamo di testare sempre qualsiasi implementazione pandom personalizzata prima di utilizzarla per scopi crittografici.
make check
5.3 Installa pandom personalizzato
Se sei soddisfatto dei risultati, puoi installare la tua implementazione pandom personalizzata.
make install
Ulteriori informazioni e aggiornamenti:http://ncomputers.org/pandom