web-dev-qa-db-ja.com

パスフレーズを秘密にしながら、パスフレーズを使用するgpg復号を自動化するにはどうすればよいですか?

私は、cron(またはUbuntu Server互換のジョブスケジューリングツール)を使用してgpg復号化を自動化することを任されています。自動化する必要があるので、--passphraseがシェルの履歴に残るため、プロセスリストに表示されます。

良い(できれば素晴らしい)セキュリティ基準を維持しながら、復号化を自動化するにはどうすればよいですか?

例が高く評価されます。

13
Zakk Coetzee

パスフレーズをcronジョブのユーザーのみが読み取り可能なファイルに保存し、--passphrase-fileオプションを使用して、gpgにパスフレーズを読み取らせることができます。

これにより、パスフレーズがメモリ内のプロセス情報に表示されなくなります。セキュリティのレベルは、パスフレーズを格納しているファイルへのアクセスレベル(およびキーを含むファイルへのアクセスレベル)によって決定されます。これには、その内容が最終的にコピーされる場所も含まれます(バックアップに注意してください)。オフラインアクセス(ディスクをサーバーから引き出します)。このレベルのセキュリティで十分かどうかは、ファイルを保持しているサーバーへの物理的およびソフトウェアでのアクセス制御と、軽減しようとしているシナリオによって異なります。

優れたセキュリティ標準が必要な場合は、キー(およびパスフレーズ)をローカルに保存する代わりに、 ハードウェアセキュリティモジュール を使用する必要があります。これにより、キーがin situで使用されるのを防ぐことはできませんが、コピーして他の場所で使用することはできなくなります。

23
Stephen Kitt

復号化の自動化は、パスフレーズをどこかに保存するか、パスフレーズを使用しないことを意味します(私が私の入力中にスティーブンが提出した他の回答で指摘されている追加のオプションを使用しない限り)!これらはどちらも、優れたまたは優れたセキュリティ標準の要件に一致しません。

つまり、要件が安全であることと互換性がありません。

あなたは次のようなものに頼ることができます-あなたはルートでなければなりません、私は私のパスフレーズが保存されているファイルに本当に紛らわしい名前を与えました、私は基礎となるファイルシステムなどを暗号化しました、等々ですがそれらはすべてレイヤーですそもそも、最初からrootになったら、それを回避するのは簡単です。

プロセスリストにパスフレーズが表示されないようにするオプションは、--passphrase-file <file-name>です。

ただし、そもそもパスフレーズを削除するだけでは安全ではありません。

5
EightBitTony