web-dev-qa-db-ja.com

パフォーマンスに問題がない場合、どのgpgデフォルトを改善できますか?

gpgにはいくつかのデフォルト設定が事前設定されており、速度とセキュリティの妥協点として選択されたと思います。これらはほとんどの人にとって十分なものであることを理解しています。

しかし、速度/パフォーマンスが問題にならない状況では、gpgでより強力なパラメーターを使用し、さらに強力な暗号化を使用するために、どのデフォルトを変更できますか?

たとえば、_s2k-count_のデフォルト値では不十分であるという説明を読んだことがあります。私のgpg操作に50ミリ秒または200ミリ秒かかるかどうかは、本当に気になりません。それはやりすぎでも、私はむしろ安全の側で誤解したいと思います。

具体的には、可能な限り最も強い値を使用します。

  1. パスワードハッシュの反復
  2. 非対称キーのサイズ
  3. 対称鍵のアルゴリズム

gpgをより安全にするために、デフォルト値から他に何を変更できますか?

Debian Busterでgpg (GnuPG) 2.2.12を使用しています。

11
400 the Cat

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で設定できます。

10
forest