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 (a finales de 2012) y una MacBook Pro (a finales de 2012), ambas con 10.12.1.
Como dice Preguntas frecuentes de GnuPG , dice:
GnuPG intenta bloquear la memoria para que ningún otro proceso pueda verla y para que la memoria no se escriba en el intercambio. 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á usando una memoria insegura.
Aunque casi siempre es mejor usar memoria segura, no es necesariamente malo usar memoria insegura. Si es el propietario de la máquina y confía en que no contiene malware, es probable que esta advertencia se pueda ignorar.
Lo que me desconcierta es que gpg2
no ha cambiado desde 12 2016 . He tenido más o menos instalada la versión 2.0.30 desde entonces, pero solo hoy comencé a ver esta advertencia sobre la memoria insegura. A pesar de que la fórmula gpg2
no ha cambiado desde el 12 de septiembre de 2016, lo único que puedo decir con certeza es que lo hice en ambas máquinas antes de que apareciera esta advertencia, que es un brew update && brew upgrade
. Pero ni siquiera estoy seguro de cómo podría afectar esto; Dado lo que dice el FAQ 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 tengo 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 al hacer que el binario gpg2 tenga invertido el bit raíz de setuid (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 comience a ver esta advertencia hoy? ¿Y por qué lo estaría viendo cuando uso el gpg2
binary pero no el gpg1
binary?
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 debido a 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 raíz del problema. La fórmula para libgcrypt
fue recién actualizada hoy para el bump 1.7.4; esto explicaría por qué veo esto en dos computadoras diferentes después de brew update && brew upgrade
. También explicaría por qué no está sucediendo con gpg1
, porque gpg1
no se basó en la biblioteca criptográfica libgcrypt
externa, en lugar de utilizar su propia biblioteca criptográfica integrada.
Además, también tengo 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
. Lo publicaré en su lista de correo, pero lo dejaré aquí por el momento, en caso de que alguien más se encuentre con el mismo problema y / o en caso de que alguien más sepa por qué sucede exactamente esto. Si recibo una 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.