À partir d'aujourd'hui, chaque fois que j'utilise gpg2
(installé via Homebrew) sur mon Mac (10.1
Warning: using insecure memory!
Pour ce que cela vaut, je constate le même comportement sur deux machines différentes : un Mac mini (fin 2012) et un MacBook Pro (fin 2012), tous deux sous 10.12.1.
Comme le FAQ GnuPG dit :
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 dans le swap. Si, pour une raison quelconque, il n'y parvient pas (par exemple, certaines plateformes ne supportent pas ce type de verrouillage de la mémoire), GnuPG vous avertira qu'il utilise une mémoire non sécurisée.
S'il est presque toujours préférable d'utiliser une mémoire sécurisée, il n'est pas nécessairement mauvais d'utiliser une mémoire non sécurisée. Si la machine vous appartient et que vous êtes sûr qu'elle n'abrite pas de logiciels malveillants, vous pouvez probablement ignorer cet avertissement.
Ce qui me déconcerte, c'est que gpg2
n'a pas changé depuis 12 septembre 2016 . J'ai installé la version 2.0.30 plus ou moins depuis lors, mais ce n'est qu'aujourd'hui que j'ai commencé à voir cet avertissement concernant la mémoire non sécurisée. Même si le gpg2
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 de commencer à voir cet avertissement est un brew update && brew upgrade
. Mais je ne suis même pas sûr de l'effet que cela pourrait avoir ; d'après ce que dit la FAQ de GnuPG, il semble que cela ait plus à 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 aussi gpg1
installé à partir de Homebrew (version 1.4.21), ce qui fait pas avertit de l'existence d'une mémoire non sécurisée quand 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 binaires appartiennent au même propriétaire et au même groupe et ont les mêmes permissions :
-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
Je viens d'essayer de réinstaller gpg2
avec Homebrew : à la fois en utilisant le binaire précompilé et en construisant à partir des sources, 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 en sorte que le binaire gpg2 ait le bit setuid Root inversé (comme suggéré, par exemple , aquí ) ne fait pas disparaître le message ; il avertit toujours de l'utilisation d'une mémoire non sécurisée.
Quelqu'un sait-il ce qui a pu changer pour que je commence soudainement à voir cet avertissement aujourd'hui ? Et pourquoi cet avertissement s'affiche-t-il lorsque j'utilise l'application 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 due à la nouvelle version de libgcrypt
. Je ne sais toujours pas por qué que ça arrive, mais je suis presque sûr que c'est au moins la cause première du problème. La formule pour libgcrypt
était juste mis à jour aujourd'hui pour la version 1.7.4 ; cela expliquerait pourquoi je constate ce problème sur deux ordinateurs différents après une mise à jour de la version 1.7.4. brew update && brew upgrade
. Cela expliquerait aussi pourquoi cela ne se produit pas avec gpg1
parce que gpg1
ne s'est pas fondé sur l 'extérieur libgcrypt
et utilise plutôt sa propre bibliothèque cryptographique intégrée.
De plus, j'ai aussi 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.
Ainsi, je suppose qu'il s'agit probablement d'un rapport de bogue pour les mainteneurs de libgcrypt
. Je vais envoyer un message à leur liste de diffusion, mais je vais laisser cette question ici pour le moment au cas où quelqu'un d'autre rencontrerait le même problème et/ou au cas où quelqu'un d'autre saurait pourquoi cela se produit exactement. Si j'obtiens la confirmation après avoir envoyé un message à leur liste de diffusion qu'il s'agit d'un bogue, je voterai pour fermer cette question.