今日、gpg2
Mac(10.12.1)で(Homebrewを介してインストールした)を使用するたびに、次の警告が表示されます。
Warning: using insecure memory!
価値のあるものとして、2つの異なるマシンで同じ動作が見られます。Macmini(2012年後期)とMacBook Pro(2012年後期)で、どちらも10.12.1を実行しています。
GnuPGのよくある質問は言います:
GnuPGは、他のプロセスがそれを見ることができず、メモリがスワップに書き込まれないように、メモリをロックしようとします。何らかの理由でこれができない場合(たとえば、特定のプラットフォームがこの種のメモリロックをサポートしていない場合)、GnuPGは安全でないメモリを使用していることを警告します。
ほとんどの場合、安全なメモリを使用することをお勧めしますが、安全でないメモリを使用することは必ずしも悪いことではありません。マシンを所有していて、マルウェアが潜んでいないと確信している場合、この警告はおそらく無視できます。
私を困惑させているのは、2016年9月12日gpg2
以降変わっていないことです。それ以降、バージョン2.0.30をインストールしていましたが、今日は安全でないメモリに関するこの警告が表示されるようになりました。にもかかわらず式は2016年9月12日以降に変更されていない、私は私が前にこの警告を見ての発症に両方のマシンでやっていることを確認するために言うことができる一つのことです。しかし、それがこれにどのように影響するかはわかりません。GnuPG FAQが言っていることを考えると、これはOSとメモリロックに関係があるように思われます。gpg2
brew update && brew upgrade
...さらに奇妙なのは、gpg1
Homebrew(バージョン1.4.21)からもインストールしたことです。これは、使用時に安全でないメモリについて警告しません。
$ 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
両方のバイナリは同じ所有者とグループに属し、同じ権限を持っています。
-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
gpg2
Homebrewで再インストールしようとしました。プリコンパイルされたバイナリを使用して、フォームソースをビルドしましたが、何も変わりません。安全でないメモリの使用に関する警告が引き続き表示されます。
さらに、gpg2バイナリのsetuidルートビットを反転させても(たとえば、ここで提案されているように)、メッセージが消えることはありません。安全でないメモリの使用については警告が表示されます。
今日、突然この警告が表示されるように変更された可能性のあることを誰もが知っていますか?そして、gpg2
バイナリではなくバイナリを使用すると、なぜ表示されるのでしょうgpg1
か?
その他の関連情報:
$ 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
更新
これが起こっている理由は、新しいバージョンのためだと思いますlibgcrypt
。なぜそれが起こっているのかはまだわかりませんが、これが少なくとも問題の根本的な原因であると確信しています。以下のための式libgcrypt
ましたちょうど今日を更新 1.7.4バンプのために。これは、なぜ私がこれを2台の異なるコンピューターで見ているのか説明しbrew update && brew upgrade
ます。また、外部暗号ライブラリに依存せず、代わりに独自の統合暗号ライブラリを使用しているgpg1
ため、なぜ発生しないのかを説明します。gpg1
libgcrypt
また、gpg2
MacGPG Suiteからもインストールしましたが、この問題は発生しておらず、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.
したがって、これはおそらくのメンテナー向けのバグ報告であると推測していlibgcrypt
ます。私は彼らのメーリングリストに投稿しますが、他の誰かが同じ問題に出くわす場合、および/または他の誰かがこれがまさに起こっている理由を知っている場合に備えて、当分の間これを残します。これがバグであることを彼らのメーリングリストに送った後に私が確認を得たら、私はこの質問を閉じるために投票します。
gpg1
とgpg2
、および(ii)これをテストするとき、私は自分のコンピュータ上のメモリを監視してきた、そして未使用のメモリが十分にあります警告メッセージが表示されたとき。私は問題の根本を特定したと思いますが、なぜそれが起こっているのかまだわかりません。すぐに質問を更新します。