13 votes

gpg2 : Avertissement : utilisation de mémoire non sécurisée !

À 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.

11voto

Adam Liter Points 874

La différence entre gpg1 y gpg2 que je remarquais provient du fait que gpg2 utilise une bibliothèque cryptographique externe, libgcrypt alors que gpg1 utilise une bibliothèque cryptographique intégrée.

Et plus précisément, Homebrew mis à jour à la version 1.7.4 de libgcrypt le 10 décembre qui a introduit une régression dans le libgcrypt code, ce qui conduit à l'avertissement de mémoire non sécurisée.

Il y a eu initialement un peu de discussion à ce sujet sur le site de la Commission européenne. demande de pull qui a introduit la formule de libgcrypt 1.7.4 dans Homebrew ce qui suggère que cela pourrait être fait à dessein :

Néanmoins, il s'avère que c'était bien un bug. Le rapport de bogue spécifique a été déposé ici :

Le bogue a été corrigé dans cet engagement et le correctif a été publié en libgcrypt 1.7.5, qui, au moment de la rédaction de cet article, est maintenant la version que Homebrew installe grâce à Dominyk Tiller . Ainsi, pour résoudre ce problème, vous pouvez simplement faire un brew update && brew upgrade .


Pour la postérité, voici quelques informations tirées d'une ancienne version de cette réponse avant qu'il ne soit confirmé qu'il s'agissait d'un bogue dans le système d'exploitation de l'entreprise. libgcrypt :

Une chose que vous pouvez faire si vous préférez ne pas toujours voir l'avertissement concernant la mémoire non sécurisée est d'ajouter no-secmem-warning a ~/.gnupg/gpg.conf . Un site ancienne version de la FAQ GnuPG fait remarquer :

Il n'est pas nécessaire de verrouiller les pages pour éviter qu'elles ne soient déplacées si votre système utilise une partition d'échange chiffrée. En fait, il s'agit du meilleur moyen de protéger les données sensibles pour qu'elles ne se retrouvent pas sur un disque. Si votre système autorise les partitions d'échange cryptées, utilisez cette fonctionnalité. Notez que GPG ne connaît pas les partitions d'échange cryptées et risque d'imprimer l'avertissement ; vous devez donc désactiver l'avertissement si votre partition d'échange est cryptée. Vous pouvez également désactiver cet avertissement si vous ne pouvez ou ne voulez pas installer GnuPG setuid(Root). Pour désactiver l'avertissement, mettez une ligne

no-secmem-warning

dans votre ~/.gnupg/gpg.conf fichier.

Pour autant que je sache, MacOS utilise un espace d'échange crypté. Pour moi, par exemple, sysctl vm.swapusage retours :

vm.swapusage: total = 1024.00M  used = 234.75M  free = 789.25M  (encrypted)

En outre, comme @sideshowbarker fait remarquer dans les commentaires il y a aussi un message sur la liste de diffusion gnupg-users qui dit qu'il est relativement sûr d'ignorer cet avertissement :

[...] c'est <understatement> plutôt difficile </understatement> pour exploiter mémoire non sécurisée sans les privilèges de Root -- et si votre attaquant a les privilèges de Root sur votre machine, tout est fini de toute façon.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X