web-dev-qa-db-ja.com

暗号化アルゴリズム設定のセキュリティのランク付け:GPGの場合

GPGとPGPは、受信者キーのサポートされているアルゴリズムの優先リストに基づいて、使用する暗号化とハッシュのアルゴリズムをネゴシエートします。問題は、OpenPGP標準のためにまだ含まれていない場合、DES/MD5が最後の選択肢として含まれることを余儀なくされることです。

はい、もちろん、それらはすべて非常に安全であり、おそらく必要以上に実際的に安全です(量子の懸念や主要な数学の発見を除いて)。

ただし、セキュリティを最大化するために、gpgでサポートされている対称暗号化の順序付けされたランキングを選択しますか?

GPGがサポートする対称アルゴリズムとハッシュアルゴリズム:

暗号:IDEA(S1)、3DES(S2)、CAST5(S3)、BLOWFISH(S4)、AES(S7)、AES192(S8)、AES256(S9)、TWOFISH(S10) 、CAMELLIA128(S11)、CAMELLIA192(S12)、CAMELLIA256(S13)

ハッシュ:MD5(H1)、SHA1(H2)、RIPEMD160(H3)、SHA256(H8)、SHA384(H9)、SHA512(H10)、SHA224(H11)

SHAxxxファミリは、現在RIPEMD160 SHA1およびMD5がそれに続くGPGで最高であることが合意されているため、ハッシュアルゴリズムは簡単に注文できます。 SHA-2バージョン以外のものを非合法化するのは素晴らしいことです。

Riseupのガイド 推奨事項:

personal-cipher-preferences AES256 AES192 AES CAST5

DESフォールバックを可能な限り回避したいので、それは間違っていますか?なぜこれまたは合理的なバリエーションではないのですか?

AES256 AES192 AES TWOFISH CAMELLIA256 CAMELLIA192 CAMELLIA128 CAST5 BLOWFISH 

[その後、DESはOpenPGPをサポートするソフトウェアによって追加されます]

GPGについて議論する良い答えですが、対称アルゴリズムについてはあまり議論していません。 トップハッシュおよび暗号化アルゴリズム

4

OpenPGPは、互換性の理由から一連の基本的なアルゴリズムのサポートを強制しますが、それらを完全に無効にすることはできないことにすでに気づいています。

アイデアは、送信者と受信者の間の一致の可能性を高めるために、DESおよびMD5と比較してできるだけ多くのより良いアルゴリズムを提供することです。何も省略します。 DESよりも優れているそしてMD5は常に失われている、これらがサポートされている最悪のアルゴリズムであることを考えると、そうする理由はありません。しないでください。 「最新かつ最良のアルゴリズム」に限定してください。そうしないと、他の誰かが古い実装を使用しているときに、最悪の場合に既知の弱点が発生する可能性があります。

また、これらのオプションを構成する場所が2つあることを忘れないでください。独自の設定(gpg.conf)、およびそのキーを使用して他の人にあなたの設定が何であるかを伝えるためにあなたのキーに保存されているもの(gpg --edit-keysetpref ...)。後者の場合は、必ず3つのカテゴリすべての設定をリストしてください。そうしないと、標準で適用される最小限のアルゴリズムセットに制限されます。

対称暗号化アルゴリズム

OpenPGPでサポートされているアルゴリズム(DESを除く)はすべて強力であると見なされ、弱点はわかりません。 Blowfishには弱いキーに関するいくつかの問題があり、実装が適切なキーの選択に失敗する可能性があるため、他のキーよりも悪い選択になる可能性があります。

フグを最後まで配置する限り、すべてのアルゴリズムの全順序を提供することは困難です。 AESを前面に置くことは、おそらくそれらすべての中で最も使用され分析されているアルゴリズムであるため、合理的と思われます。

ハッシュアルゴリズム

ここでは選択が簡単です。 MD5は悪いです。 SHA-1はMD5よりも優れていますが、まだ既知の問題があります。他のものは強いと考えられています。

圧縮アルゴリズム

圧縮は重要です。いくつかあります OpenPGP CFBモードへの難解な攻撃は圧縮によって防止されます

それらの中からの選択はほとんどあなた次第です。

5
Jens Erat