Le versioni di gnupg dal 2.1.16 (attualmente 2.1.17) bloccano l'attesa dell'entropia solo alla prima invocazione .
Nota: questo non è un tentativo di generare una chiave, solo per decrittografare un file e avviare l'agente.
La prima volta che gpg-agent viene avviato, direttamente gpg2 file.gpg
o usando un'applicazione come pass
, appare pinentry e una volta che inserisco la mia passphrase e premo Entersi blocca per circa 15 secondi.
Tutte le chiamate successive, all'interno della finestra di default-cache-ttl, vengono eseguite immediatamente.
In esecuzione in --debug-all
modalità, il periodo in cui si verifica l'arresto si stampa 1 :
gpg: DBG: chan_6 <- S PROGRESS need_entropy X 30 120
gpg: DBG: chan_6 <- S PROGRESS need_entropy X 120 120
gpg: DBG: chan_6 <- S PROGRESS need_entropy X 30 120
gpg: DBG: chan_6 <- S PROGRESS need_entropy X 120 120
gpg: DBG: chan_6 <- S PROGRESS need_entropy X 30 120
...
Ho installato rng-tools per integrare il pool di entropia:
cat /proc/sys/kernel/random/entropy_avail
4094
e confrontato con una macchina con la stessa versione di gnupg che non aveva installato rng-tools o che aveva installato, non mostra alcun ritardo:
cat /proc/sys/kernel/random/entropy_avail
3783
Quindi sembra che ci sia abbastanza entropia nel pool. Questo è stato testato su kernel 4.8.13 e 4.9.
Gpg usa un pool diverso? Come posso fornire un'entropia sufficiente o altrimenti eliminare il ritardo di 15 secondi all'avvio dell'agente?
1. Il registro di debug completo .
rng-tools
come spiegato qui? serverfault.com/questions/214605/gpg-not-enough-entropy