gpg --gen-key si blocca nel guadagnare abbastanza entropia su centos 6


49

Prova di generare una chiave per un server.

gpg --gen-key

Dobbiamo generare molti byte casuali. È una buona idea eseguire qualche altra azione (digitare sulla tastiera, spostare il mouse, utilizzare i dischi) durante la generazione principale; questo dà al generatore di numeri casuali una migliore possibilità di guadagnare abbastanza entropia.

e si blocca lì.

C'è un altro errore:

impossibile connettersi a `/root/.gnupg/S.gpg-agent ': nessun file o directory

che sembra andare via dopo:

agente gpg --daemon
GPG_AGENT_INFO = / tmp / gpg-4c5hyT / agente S.gpg: 1397: 1; esportazione GPG_AGENT_INFO;

#GPG_AGENT_INFO=/tmp/gpg-4c5hyT/S.gpg-agent:1397:1; export GPG_AGENT_INFO;
gpg --gen-key
...

ma ancora, si blocca a "... guadagna abbastanza entropia".

Non ci sono "++++++++++++++++++++++++++++++++++++++++++++" dai post del forum sembra che dovrebbe essere previsto come viene generata la chiave.

Ho provato a reinstallare il pacchetto, ma apparentemente tutto dipende da gpg.

Ho letto altre persone che hanno problemi con questo anche su centos 6 (mentre centos 5 funziona bene).

Non c'è niente di straordinario in /var/log/*.

Qualche idea su dove andare da qui?

Grazie.


rng-tools è una soluzione solo se hai un HSM, le risposte che raccomandano che ciò fallisca sui sistemi senza questo. Verrà visualizzato un messaggio simile a: Avvio del demone di
raccolta

Risposte:


49

Quando il gpg --gen-keycomando si blocca in questo modo, accedere a un'altra shell ed eseguire il comando seguente:

dd if=/dev/sda of=/dev/zero

(Questo comando in pratica legge dal tuo disco rigido e scarta l'output, perché scrivere su /dev/zeronon farà nulla.)

Dopo alcuni secondi / minuti, il comando di generazione della chiave dovrebbe essere completato.


2
Eccezionale. Grazie. Non riesco a credere di aver perso quella parte del manuale: /
stormdrain

2
Sarebbe un'idea molto migliore afferrare ogni volta entropia diversa. Se il tuo sistema sta costantemente esaurendo l'entropia, allora qualcosa di terribilmente sbagliato nella tua configurazione o stai usando l'entropia molto rapidamente (al punto in cui dovresti avere un RNG hardware). Se hai bisogno di più entropia su base regolare, ci sono posti validi per scaricarne semplicemente di più, come il Quantum RNG di Humboldt-Universität .
Chris S,

19
In realtà ci ho provato, ma dato che non avevo root non potevo accedere direttamente a / dev / sda. Quello che ha funzionato per me invece è statofind / | xargs file
Carl Smith e il

2
Ero più a mio agio a correre find / | xargs fileinvece dd if=/dev/sda of=/dev/zeroche dopo un minuto. Grazie!
Lea,

1
Vuoi dire of=/dev/null?
maxschlepzig,

22

Per una soluzione più affidabile è possibile installare utilità correlate al generatore di numeri casuali, che garantiranno sempre un numero sufficiente di byte casuali.

yum install rng-tools

e quindi modificare /etc/sysconfig/rngde aggiungereEXTRAOPTIONS="-r /dev/random"

Avvia il servizio

 service rngd start

Voila e tu vivi felici e contenti :)


5
Se non si desidera avviare il servizio, è possibile eseguire semplicemente rngd -r /dev/randomcome root una volta rng-toolsinstallato. La tua generazione di chiavi decollerà immediatamente.
davidjb,

2
Ma questo di per sé non genera entropia.
Otheus,

7

Entrambi i commenti fatti prima sono perfettamente soddisfacenti. Ma ecco solo i miei 2 centesimi.

Il problema con RHEL / centos 6 e l'entropia è che sono kernel senza tick. Quindi, da soli, questi kernel non generano abbastanza entropia. Devi avere un po 'di tastiera collegata o anche qualche movimento del mouse o usare dd come detto.

il demone rngd è fantastico e la maggior parte delle entità commerciali lo usano.

Tuttavia, l'approccio migliore che ho visto è l'uso di un dispositivo TPM dedicato. Sono piccoli hardware che sono piuttosto costosi. Li metti e rngd utilizza una vera entropia casuale dall'origine hardware. Per quanto ne so, Fujitsu ha un buon dispositivo TPM.

Sì, questi tre metodi coprono praticamente la parte dell'entropia.


Molto interessante. Grazie. Come ho già detto a Chris, presto avrò accesso a un HSM che viene fornito con un RNG.
Stormdrain

4

Ruota le altre risposte ma almeno una riga e non il root.

((find / | xargs file) &> /dev/null &); gpg2 --gen-key --batch --passphrase-file output-key.txt key-gen-options.txt

Key-gen-options contiene

Key-Type: 1
Key-Length: 2048
Subkey-Type: 1
Subkey-Length: 2048
Name-Real: myuser
Name-Email: myuser@email.com
Expire-Date: 0

Output-key.txt contiene la mia chiave super segreta.



3

EXTRAOPTIONS = "- r / dev / urandom" ha funzionato per me invece di EXTRAOPTIONS = "- r / dev / random"


1

Come l'ho fatto:

  1. pacman -S community/rng-tools
  2. vim /etc/conf.d/rngd aggiungere RNGD_OPTS="-r /dev/urandom"
  3. systemctl enable --now rngd
  4. gpg-agent --daemon
  5. gpg --full-gen-key

Ha funzionato anche quando $GNUPGHOMEè impostato per puntare a una directory personalizzata.


1

Ho provato tutte le soluzioni e ho scoperto che havegedfunziona meglio anche quando gli altri non funzionano (specialmente su un server senza testa che non ha molti input o attività dell'utente).

yum install haveged

apt install haveged

Avvia il havegedservizio daemon che manterrà /dev/randompieno di entropia. --key-gendovrebbe completare in meno di un minuto.

Puoi verificare eseguendo cat /dev/random. Normalmente, si esaurirà rapidamente l'entropia e si fermerà. Ecco perché si --key-genblocca. Ma dopo l'installazione haveged, cat /dev/randomdovrebbe fornire continuamente output.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.