Ad oggi, ogni volta che uso gpg2
(installato tramite Homebrew) sul mio Mac (10.12.1), ora vedo il seguente avviso:
Warning: using insecure memory!
Per quello che vale, sto vedendo questo stesso comportamento su due macchine diverse: un Mac mini (fine 2012) e un MacBook Pro (fine 2012), entrambi in esecuzione 10.12.1.
Le domande frequenti su GnuPag dicono:
GnuPG tries to lock memory so that no other process can see it and so that the memory will not be written to swap. If for some reason it’s not able to do this (for instance, certain platforms don’t support this kind of memory locking), GnuPG will warn you that it’s using insecure memory.
While it’s almost always better to use secure memory, it’s not necessarily a bad thing to use insecure memory. If you own the machine and you’re confident it’s not harboring malware, then this warning can probably be ignored.
La cosa che mi sconcerta è che gpg2
non è cambiato da 12 settembre, 2016 . Ho avuto la versione 2.0.30 installata più o meno da allora, ma ho iniziato a vedere questo avvertimento su memoria insicura oggi. Anche se la formula gpg2
non è cambiata dal 12 settembre 2016, l'unica cosa che posso dire con certezza di aver fatto su entrambe le macchine prima dell'inizio della visualizzazione di questo avviso è un brew update && brew upgrade
. Ma non sono nemmeno sicuro di come ciò possa influenzare questo; dato quello che dicono le FAQ di GnuPG, sembra che questo abbia qualcosa in più da fare con il sistema operativo e il blocco della memoria.
... E ciò che è ancora più strano è che ho anche gpg1
installato da Homebrew (versione 1.4.21), che non avverte non sulla memoria non sicura quando lo uso:
$ 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
Entrambi i binari appartengono allo stesso proprietario e gruppo e hanno le stesse autorizzazioni:
-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
Ho appena provato a reinstallare gpg2
con Homebrew: entrambi utilizzando il binario precompilato e creando l'origine del modulo, ma questo non cambia nulla. Ricevo ancora l'avviso sull'utilizzo di una memoria non sicura.
Inoltre, anche facendo in modo che il file binario gpg2 abbia il bit di root setuid capovolto (come suggerito, eg , qui ) non provoca la scomparsa del messaggio; avvisa ancora sull'uso di una memoria non sicura.
Qualcuno sa cosa potrebbe essere cambiato in modo tale da iniziare improvvisamente a vedere questo avvertimento oggi? E perché dovrei vederlo quando uso il gpg2
binario ma non il gpg1
binario?
Altre informazioni potenzialmente pertinenti:
$ 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
Aggiorna
Penso che la ragione per cui questo sta accadendo sia a causa della nuova versione di libgcrypt
. Ancora non so perché sta accadendo, ma sono abbastanza sicuro che questa sia almeno la causa principale del problema. La formula per libgcrypt
era aggiornata solo oggi per il bump 1.7.4; questo spiegherebbe perché lo vedo su due computer diversi dopo un brew update && brew upgrade
. Spiegherebbe anche perché non sta accadendo con gpg1
, perché gpg1
non si è basato sulla libreria crittografica esterna libgcrypt
, utilizzando invece la propria libreria crittografica integrata.
Inoltre, ho anche gpg2
installato da MacGPG Suite, che non presenta questo problema ed è collegato a una versione diversa di 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.
Quindi suppongo che questo sia probabilmente un bug report per i maintainer di libgcrypt
. Inserirò nella loro mailing list, ma lascerò questo qui per il momento nel caso in cui qualcun altro incontri lo stesso problema e / o nel caso in cui qualcun altro sappia perché questo sta accadendo esattamente. Se ricevo conferma dopo aver inviato alla loro mailing list che si tratta di un bug, voterò per chiudere questa domanda.