A partir de hoy, cada vez que uso gpg2
(instalado a través de Homebrew) en mi Mac (10.12.1), ahora veo la siguiente advertencia:
Warning: using insecure memory!
Por lo que vale, veo este mismo comportamiento en dos máquinas diferentes: una Mac mini (finales de 2012) y una MacBook Pro (finales de 2012), ambas con 10.12.1.
Como dice el FAQ de GnuPG :
GnuPG intenta bloquear la memoria para que ningún otro proceso pueda verla y para que la memoria no se escriba para intercambiar. Si por alguna razón no puede hacer esto (por ejemplo, ciertas plataformas no admiten este tipo de bloqueo de memoria), GnuPG le advertirá que está utilizando memoria insegura.
Si bien casi siempre es mejor usar memoria segura, no es necesariamente algo malo usar memoria insegura. Si es dueño de la máquina y está seguro de que no está albergando malware, entonces esta advertencia probablemente puede ignorarse.
Lo que me desconcierta es que gpg2
no ha cambiado desde el 12 de septiembre de 2016 . He tenido la versión 2.0.30 instalada más o menos desde entonces, pero hoy solo comencé a ver esta advertencia sobre la memoria insegura. Aunque la gpg2
fórmula no ha cambiado desde el 12 de septiembre de 2016, lo único que puedo decir con certeza que hice en ambas máquinas antes del inicio de ver esta advertencia es a brew update && brew upgrade
. Pero ni siquiera estoy seguro de cómo eso podría afectar esto; dado lo que dice la pregunta frecuente de GnuPG, parece que esto tiene algo más que ver con el sistema operativo y el bloqueo de memoria.
... Y lo que es aún más extraño es que también he gpg1
instalado desde Homebrew (versión 1.4.21), que no advierte sobre la memoria insegura cuando 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
Ambos binarios pertenecen al mismo propietario y grupo y tienen los mismos permisos:
-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
Acabo de intentar reinstalar gpg2
con Homebrew: tanto usando el binario precompilado como construyendo la fuente del formulario, pero esto no cambia nada. Todavía recibo la advertencia sobre el uso de memoria insegura.
Además, incluso hacer que el binario gpg2 tenga el bit raíz setuid invertido (como se sugiere, por ejemplo , aquí ) no hace que el mensaje desaparezca; todavía advierte sobre el uso de memoria insegura.
¿Alguien sabe qué podría haber cambiado de tal manera que de repente comenzara a ver esta advertencia hoy? ¿Y por qué debería verlo cuando uso el gpg2
binario pero no el gpg1
binario?
Otra información posiblemente relevante:
$ 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
Actualizar
Creo que la razón por la que esto sucede es por la nueva versión de libgcrypt
. Todavía no sé por qué está sucediendo, pero estoy bastante seguro de que esta es al menos la causa principal del problema. La fórmula para libgcrypt
se acaba de actualizar hoy para el golpe 1.7.4; Esto explicaría por qué estoy viendo esto en dos computadoras diferentes después de a brew update && brew upgrade
. También explicaría por qué no está sucediendo gpg1
, porque gpg1
no se basó en la libgcrypt
biblioteca criptográfica externa , sino que usó su propia biblioteca criptográfica integrada.
Además, también he gpg2
instalado desde MacGPG Suite, que no presenta este problema y está vinculado a una versión diferente 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.
Por lo tanto, supongo que este es probablemente un informe de error para los mantenedores de libgcrypt
. Publicaré en su lista de correo, pero dejaré esto aquí por el momento en caso de que alguien más se encuentre con el mismo problema y / o si alguien más sabe por qué exactamente esto está sucediendo. Si recibo la confirmación después de enviar un mensaje a su lista de correo de que se trata de un error, votaré para cerrar esta pregunta.
gpg1
y gpg2
, y (ii) he estado monitoreando la memoria en mi computadora cuando probé esto, y hay mucha memoria sin usar cuando veo el mensaje de advertencia. Creo que he localizado la raíz del problema, pero todavía no estoy seguro de por qué está sucediendo. Actualizará la pregunta en un segundo.