Ad oggi, ogni volta che utilizzo gpg2
(installato tramite Homebrew) sul mio Mac (10.12.1), ora vedo il seguente avviso:
Warning: using insecure memory!
Per quello che vale, vedo lo stesso comportamento su due macchine diverse: un Mac mini (fine 2012) e un MacBook Pro (fine 2012), entrambi in esecuzione 10.12.1.
Come dice la FAQ di GnuPG :
GnuPG tenta di bloccare la memoria in modo che nessun altro processo possa vederla e che la memoria non venga scritta per scambiare. Se per qualche motivo non è in grado di farlo (ad esempio, alcune piattaforme non supportano questo tipo di blocco della memoria), GnuPG ti avvertirà che sta usando una memoria non sicura.
Mentre è quasi sempre meglio usare la memoria sicura, non è necessariamente una brutta cosa usare la memoria non sicura. Se possiedi la macchina e sei sicuro che non stia nascondendo malware, probabilmente questo avviso può essere ignorato.
La cosa che mi sconcerta è che gpg2
non è cambiato dal 12 settembre 2016 . Da allora ho installato la versione 2.0.30 più o meno, ma oggi ho iniziato a vedere questo avviso sulla memoria non sicura. Anche se la gpg2
formula non è cambiata dal 12 settembre 2016, l'unica cosa che posso dire con certezza che ho fatto su entrambe le macchine prima dell'inizio della visualizzazione di questo avviso è a brew update && brew upgrade
. Ma non sono nemmeno sicuro di come ciò possa influire su questo; dato ciò che dice la FAQ di GnuPG, sembra che questo abbia qualcosa a che 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 avvisa della memoria non sicura quando la 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: sia usando il binario precompilato sia costruendo il modulo sorgente, ma questo non cambia nulla. Ricevo ancora l'avvertimento sull'uso della memoria non sicura.
Inoltre, anche facendo il binario gpg2 viene capovolto il bit di root setuid (come suggerito, ad esempio , qui ) non fa scomparire il messaggio; avverte ancora dell'uso di memoria non sicura.
Qualcuno sa cosa potrebbe essere cambiato in modo tale che improvvisamente inizierei a vedere questo avviso oggi? E perché dovrei vederlo quando uso il gpg2
binario ma non il gpg1
binario?
Altre informazioni eventualmente 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
Aggiornare
Penso che il motivo per cui ciò sta accadendo sia dovuto alla nuova versione di libgcrypt
. Non so ancora perché stia succedendo, ma sono abbastanza sicuro che questa sia almeno la causa principale del problema. La formula per è libgcrypt
stata appena aggiornata 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 gpg1
, perché gpg1
non si basava sulla libgcrypt
libreria crittografica esterna , invece utilizzava la propria libreria crittografica integrata.
Inoltre, ho gpg2
installato anche 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 manutentori di libgcrypt
. Pubblicherò sulla loro mailing list, ma per il momento lo lascerò qui nel caso in cui qualcun altro si imbattesse nello stesso problema e / o nel caso in cui qualcun altro sappia perché esattamente ciò sta accadendo. Se ricevo conferma dopo aver inviato alla loro mailing list che si tratta di un bug, voterò per chiudere questa domanda.
gpg1
e gpg2
, e (ii) ho monitorato la memoria sul mio computer durante il test e c'è molta memoria inutilizzata quando vedo il messaggio di avviso. Penso di aver localizzato la radice del problema, ma non sono ancora sicuro del perché stia accadendo. Aggiornerà la domanda in un secondo.