
私はそれを使用していますgnupg 2.1.2
。通常、gnupg
パスワードをキャッシュするときに便利です。ただし、一部の機密プログラムの場合はgnupg
使用しないでくださいgpg-agent
。長い間インターネットで検索してきましたが、役に立つ情報がたくさん見つかりませんでした。gnupg
特定のプログラムに対して私のパスワードがキャッシュされたくないことをどのように知ることができますか?
以下は例です。私はMutt
それをMUAとして使用し、以下の別々のファイルに私のすべてのアカウントのパスワードを暗号化します~/.mutt/.passwd.gpg
。私の~/.muttrc
設定で
source "/usr/bin/gpg -d --quiet ~/.mutt/.passwd.gpg |"
初めて起動すると、Mutt
秘密鍵のパスワードの入力を求められますgpg
。適切なパスワードを入力すると、しばらくキャッシュされますgpg
。したがって、Mutt
この間隔内に再開すると、秘密鍵のパスワードの入力を求められなくなります。つまり、この間に自分のコンピュータにアクセスした人は誰でも自分のメールを読み書きできます。 (または他の特定のプログラム)起動するたびに秘密鍵のパスワードを求めるプロンプトが表示されるようにするにはgpg
(たとえば、オプションを渡して-pageに関連フラグを表示しない)、gpg
どうすればわかりますか?どのプログラムが暗号化されたファイルにアクセスしようとしているのかわからないため、これは不可能かもしれません。しかし、私たちの素晴らしいコミュニティがこれを確認できることを願っています。man
Mutt
gpg
答え1
これはエレガントではないかもしれませんが、私には効果があります。使用後すぐにデーモンプロセスを終了してくださいgpg
。
killall gpg-agent
(ええ、くそ!)
次に別のgpg
プログラムまたは別のプログラムから呼び出すと、自動的に再起動されます。この方法では、パスワードキャッシュのデフォルト時間は変わりません(他のプログラムが同じ動作をしたくない場合があります)。
答え2
gpg-agentのドキュメントには、「gpg-agentは環境変数を使用してクライアントに通信パラメータについて通知します」と記載されています。実際の環境変数名は提供されていませんが、一部のテストでは、関連変数がGPG_AGENT_INFO
次のように変更されることがわかりました。
source "unset GPG_AGENT_INFO; /usr/bin/gpg -d --quiet ~/.mutt/.passwd.gpg |"
おそらくより簡単な解決策は--no-use-agent
gpgに渡すことです。
gpg
資格情報がキャッシュされている場合(おそらくgpg-agentがMuttの外部で資格情報をキャッシュできるようにしたため)、攻撃者がプロキシを有効にした状態で呼び出すのを防ぎません。したがって、gpg-agentが特定の差別を知っているとしても、mutt
それほど強力なセキュリティ対策ではありません。
答え3
たとえば、1秒のキャッシュ間隔でプロキシを再起動することは、ほとんどキャッシュがないようです。
pkill gpg-agent && gpg-agent --default-cache-ttl 1 --use-standard-socket --daemon