GnuPGエージェントでロック解除されたキーのライフサイクル制御

GnuPGエージェントでロック解除されたキーのライフサイクル制御

セキュリティを(わずかに)向上させるために、実行している作業に応じてロック解除キーの寿命をよりよく制御したいと思います。理想的には、対話型サブシェルを起動し、秘密に関連するすべての操作を実行し、サブシェルが終了するとロック解除されたキーを自動的に消去します。

以下を使用して、キャッシュされたパスワードフレーズを手動で消去できることを理解しています。gpg-connect-agentしかし、私が知っている限り、各キーは明示的に指定する必要があります。別のオプションは、または--default-cache-ttlオプションを使用して--max-cache-ttlソートキャッシュの有効期限を設定することです。gpg-agent;しかし、通常、これは長いTTLを設定するか、同じパスワードを複数回要求することを意味します。

以前は、代替gpg-agentソケットパスを指定してデフォルトでスタンドアロンセッションを開始することは可能でしたが、最新バージョンでは変更できない固定パスを使用しているようです。

それでは、私が何を見逃しているのでしょうか?私が望むことを達成する方法はありますか?

ベストアンサー1

完全な解決策はありませんが、解決策を見つけました。

--homedirGnuPGは、パラメータまたは環境変数を介してGnuPGの代替ホームディレクトリを使用して、GNUPGHOME他のキーストアファイルセットと関連するプロキシソケットパスを使用することを強制できます。これを念頭に置いて、新しいセッションでシェルを起動できますgpg-agent

gpg-agent \
    --homedir /my/other/keys \
    --default-cache-ttl 86400 \
    --max-cache-ttl 86400 \
    --daemon \
    \
    /bin/bash

指定されたTTLが経過すると(この場合は1日)、入力したすべてのパスワードは、新しいシェルの終了時に期限切れまたは「忘れられます」。これにより、親gpg-agentインスタンスがそれ自体で終了します。

これが完全な解決策であるとは思わないのは、別々のキーリングを強制するからです。しかし、これは私の特定のユースケースに完全に機能していたので、もう調査しませんでした。

異なるインスタンス間のロックを維持するのに十分な注意を払っている場合は、デフォルトのGnuPGキーリングを持つシンボリックリンクを介して同じキーリングに対する独立セッションの全体的な効果を得ることができますgpg-agent。読者に練習問題として残しておきます...

おすすめ記事