Les versions de gnupg du bloc 2.1.16 (actuellement 2.1.17) n'attendent l'entropie que lors de la première invocation .
Remarque: ce n'est pas une tentative pour générer une clé, juste pour décrypter un fichier et démarrer l'agent.
La première fois que gpg-agent est démarré, directement avec gpg2 file.gpg
ou en utilisant une application comme pass
, Pinentry apparaît et une fois que j'entre ma phrase de passe et que je la frappe, Enterelle se bloque pendant environ 15 secondes.
Tous les appels suivants, dans la fenêtre de default-cache-ttl, sont exécutés immédiatement.
En cours d'exécution en --debug-all
mode, la période pendant laquelle le blocage se produit s'imprime 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
...
J'ai installé des outils rng pour compléter le pool d'entropie:
cat /proc/sys/kernel/random/entropy_avail
4094
et par rapport à une machine avec la même version de gnupg qui n'avait pas d'outils rng ou qui n'était pas installé, qui ne présente aucun retard:
cat /proc/sys/kernel/random/entropy_avail
3783
Il semble donc qu'il y ait suffisamment d'entropie dans la piscine. Cela a été testé sur les noyaux 4.8.13 et 4.9.
Est-ce que gpg utilise un pool différent? Comment puis-je fournir une entropie suffisante ou éliminer le délai de 15 secondes lors du démarrage de l'agent?
1. Le journal de débogage complet .
rng-tools
comme expliqué ici? serverfault.com/questions/214605/gpg-not-enough-entropy