À partir d'aujourd'hui, chaque fois que j'utilise gpg2
(installé via Homebrew) sur mon Mac (10.12.1), je vois maintenant l'avertissement suivant:
Warning: using insecure memory!
Pour ce que ça vaut, je vois ce même comportement sur deux machines différentes: un Mac mini (fin 2012) et un MacBook Pro (fin 2012), tous deux exécutant 10.12.1.
Comme le dit la FAQ GnuPG :
GnuPG essaie de verrouiller la mémoire pour qu'aucun autre processus ne puisse la voir et pour que la mémoire ne soit pas écrite pour permuter. Si pour une raison quelconque, il n'est pas en mesure de le faire (par exemple, certaines plates-formes ne prennent pas en charge ce type de verrouillage de la mémoire), GnuPG vous avertira qu'il utilise une mémoire non sécurisée.
Bien qu'il soit presque toujours préférable d'utiliser une mémoire sécurisée, ce n'est pas nécessairement une mauvaise chose d'utiliser une mémoire non sécurisée. Si vous possédez la machine et que vous êtes sûr qu'elle ne contient pas de logiciels malveillants, cet avertissement peut probablement être ignoré.
Ce qui me déconcerte, c'est que cela gpg2
n'a pas changé depuis le 12 septembre 2016 . J'ai installé la version 2.0.30 plus ou moins depuis, mais je n'ai commencé à voir cet avertissement concernant la mémoire non sécurisée qu'aujourd'hui. Même si la gpg2
formule n'a pas changé depuis le 12 septembre 2016, la seule chose que je peux dire avec certitude que j'ai fait sur les deux machines avant le début de voir cet avertissement est un brew update && brew upgrade
. Mais je ne sais même pas comment cela pourrait affecter cela; étant donné ce que dit la FAQ GnuPG, il semble que cela ait quelque chose à voir avec le système d'exploitation et le verrouillage de la mémoire.
... Et ce qui est encore plus étrange, c'est que j'ai également gpg1
installé à partir de Homebrew (version 1.4.21), qui ne prévient pas de la mémoire non sécurisée lorsque je l'utilise:
$ gpg1 --require-secmem
gpg: Go ahead and type your message ...
^C
gpg: Interrupt caught ... exiting
$ gpg2 --require-secmem
Warning: using insecure memory!
gpg: will not run with insecure memory due to --require-secmem
Les deux fichiers binaires appartiennent au même propriétaire et au même groupe et ont les mêmes autorisations:
-r-xr-xr-x 1 adamliter admin 681932 Dec 10 18:06 /usr/local/Cellar/gnupg2/2.0.30_2/bin/gpg2
-r-xr-xr-x 1 adamliter admin 929352 Aug 17 09:21 /usr/local/Cellar/gnupg/1.4.21/bin/gpg1
J'ai juste essayé de réinstaller gpg2
avec Homebrew: à la fois en utilisant le binaire précompilé et en créant une source de formulaire, mais cela ne change rien. Je reçois toujours l'avertissement concernant l'utilisation d'une mémoire non sécurisée.
De plus, même en faisant l'gpg2 binaire ont le bit suid root basculée (comme l'a suggéré, par exemple , ici ) ne provoque pas le message à disparaître; il met toujours en garde contre l'utilisation d'une mémoire non sécurisée.
Est-ce que quelqu'un sait ce qui aurait pu changer de telle sorte que je commencerais soudain à voir cet avertissement aujourd'hui? Et pourquoi le verrais-je en utilisant le gpg2
binaire mais pas le gpg1
binaire?
Autres informations éventuellement pertinentes:
$ which gpg1
/usr/local/bin/gpg1
$ ls -al /usr/local/bin/gpg1
lrwxr-xr-x 1 adamliter admin 31 Aug 17 17:42 /usr/local/bin/gpg1 -> ../Cellar/gnupg/1.4.21/bin/gpg1
$ which gpg2
/usr/local/bin/gpg2
$ ls -al /usr/local/bin/gpg2
lrwxr-xr-x 1 adamliter admin 34 Dec 10 18:06 /usr/local/bin/gpg2 -> ../Cellar/gnupg2/2.0.30_2/bin/gpg2
Mise à jour
Je pense que la raison pour laquelle cela se produit est à cause de la nouvelle version de libgcrypt
. Je ne sais toujours pas pourquoi cela se produit, mais je suis presque sûr que c'est au moins la cause profonde du problème. La formule libgcrypt
a été juste mis à jour aujourd'hui pour la bosse 1.7.4; cela expliquerait pourquoi je vois cela sur deux ordinateurs différents après a brew update && brew upgrade
. Cela expliquerait également pourquoi cela ne se produit pas gpg1
, car gpg1
ne s'appuyait pas sur la libgcrypt
bibliothèque cryptographique externe , utilisant plutôt sa propre bibliothèque cryptographique intégrée.
De plus, j'ai également gpg2
installé à partir de MacGPG Suite, qui ne présente pas ce problème et est lié à une version différente de libgcrypt
:
$ /usr/local/MacGPG2/bin/gpg2 --version
gpg (GnuPG/MacGPG2) 2.0.30
libgcrypt 1.6.6
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
$ gpg2 --version
gpg (GnuPG) 2.0.30
libgcrypt 1.7.4
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Je suppose donc qu'il s'agit probablement d'un rapport de bogue pour les responsables de libgcrypt
. Je posterai sur leur liste de diffusion, mais je laisserai ceci ici pour le moment au cas où quelqu'un d'autre rencontrerait le même problème et / ou si quelqu'un d'autre sait exactement pourquoi cela se produit. Si je reçois la confirmation après avoir envoyé un mot à leur liste de diffusion qu'il s'agit d'un bug, je voterai pour fermer cette question.
gpg1
et gpg2
, et (ii) j'ai surveillé la mémoire sur mon ordinateur lors du test, et il y a beaucoup de mémoire inutilisée quand je vois le message d'avertissement. Je pense avoir localisé la racine du problème, mais je ne sais toujours pas pourquoi cela se produit. Mettra à jour la question dans une seconde.