gpg
にはいくつかのデフォルト設定が事前設定されており、速度とセキュリティの妥協点として選択されたと思います。これらはほとんどの人にとって十分なものであることを理解しています。
しかし、速度/パフォーマンスが問題にならない状況では、gpg
でより強力なパラメーターを使用し、さらに強力な暗号化を使用するために、どのデフォルトを変更できますか?
たとえば、_s2k-count
_のデフォルト値では不十分であるという説明を読んだことがあります。私のgpg操作に50ミリ秒または200ミリ秒かかるかどうかは、本当に気になりません。それはやりすぎでも、私はむしろ安全の側で誤解したいと思います。
具体的には、可能な限り最も強い値を使用します。
gpg
をより安全にするために、デフォルト値から他に何を変更できますか?
Debian Busterでgpg (GnuPG) 2.2.12
を使用しています。
1)パスワードハッシュの反復
もう少し待つ必要がない場合は、最大カウント値(65011712)を使用できます。これは、厳密にはiterationsの数ではなく、ハッシュされるバイト数です。 。 S2Kは、特定のバイト数のパスワードとソルトをハッシュ関数に繰り返し供給することで機能します。バイトが多いほど、時間がかかります。これは、s2k-count
パラメータが指定するものです。
2)非対称キーのサイズ
GnuPGのほとんどの実装で生成できる最大キーサイズは、RSAの場合4096ビットです。これは、ソフトウェアに課せられたメモリ制限の結果です。シークレットがスワップにリークされるのを防ぐために、メモリを「ロック」する必要があります。オペレーティングシステムは、単一のプロセスがロックできるメモリの量に関して制限を設けています。 GnuPGは、4096ビットを超えるキーを生成するために許可されている以上のロックが必要になります。さいわい、4096ビットはRSAキーには十分です。
3)対称鍵のアルゴリズム
AES256はすでにたくさんあります。それはあなたの最も弱いリンクにはならないでしょう。
GnuPGの実装をさらに強化するためにできることは他にもありますが、完全なリストは広すぎるため、状況に依存してここにリストすることはできません。いくつかの改善点は、gpg.conf
ファイルにwith-fingerprint
などのいくつかの設定を追加して、デフォルトで指紋を表示することです。もちろん、実際に指紋が期待と一致していることを確認しない限り、セキュリティは向上しません。
キーの署名には、より強力なダイジェストを使用することもできます。 SHA-1の使用は避けてください。 SHA-256またはSHA-512を使用することもできますが、少々やり過ぎです。これはcert-digest-algo SHA512
で設定できます。