もはや安全ではなくなった暗号アルゴリズムについて

wolfSSLの暗号エンジンwolfCryptには、すでに破綻、または非推奨とされるいくつかの暗号アルゴリズム実装も含まれています。これらのアルゴリズムは通常デフォルトで無効になっていますが、開発者はセキュリティへの影響を認識する必要があります。

以下は、現在対象となっているアルゴリズムの一覧です。それぞれのアルゴリズム名には、それらがもはや安全ではないとされる理由を説明するドキュメントへのリンクを掲載しています。

  • RC4/ARC4:キーストリームバイアスと実用的攻撃のため、TLS使用が禁止
  • MD2:衝突攻撃により、Historicステータスに移行
  • MD4:完全な衝突攻撃が実証され、Historicステータスに移行
  • MD5:数秒で衝突生成可能な、実用的な衝突攻撃による(wolfSSLでの対応はこちらに掲載しています)
  • SHA-1:衝突攻撃が実証され、2022年にNISTによって正式に廃止
  • DES:56ビット鍵は現代的ハードウェアによるブルートフォース攻撃で容易に解読可能
  • 3DES/TDEA:Sweet32誕生日攻撃に脆弱であり、NISTによって非推奨
  • DSA:ナンス再利用攻撃に脆弱であり、NISTによって段階的廃止
  • RSA-1024以下:弱すぎることを示す実験が知られています

これらは、以下に示す特定のニーズに対応するためにwolfSSLコードベースに残っています。

1. レガシー互換性

既存システムと組み込みデバイスにおける相互運用性を保つために、これらのアルゴリズムを必要としているケースがあります。

2. 標準準拠

業界標準と規制要件により、移行期間中のサポートを義務付けているものがあります。

3. 後方互換性

レガシーシステムから移行するアプリケーションが、継続的なサポートを必要とする場合があります。

4. 段階的移行サポート

一般に、セキュアな代替手段への移行時間と経路が必要です。

注:これらのアルゴリズムはデフォルトで無効であり、有効にするには明示的なコンパイルフラグ(WOLFSSL_ALLOW_RC4など)が必要です。これは、必要な互換性を維持しながらも、セキュリティにおけるベストプラクティスを重視するwolfSSLの方針を示しています。


ただし、これらのアルゴリズムは明示的に有効化せずとも、以下に示すような一部のオプションを使用することで意図せず有効になる場合があります。

  • --enable-allはこれらすべてのアルゴリズムを有効にします。
  • --enable-all-cryptoはこれらすべてのアルゴリズムを有効にします。
  • --enable-opensshは、DSAを有効にします。
  • --enable-wpasは、DSAを有効にします。
  • --enable-curlは、DES3を有効にします。
  • --enable-stunnelは、DES3を有効にします。
  • --enable-oldtlsは、MD5とSHA-1を有効にします。

これらのアルゴリズムが有効になっているかチェックするには、wolfssl/options.hを開いてどのマクロが定義されているかをご確認ください。


とはいえ、アルゴリズムがどれほど強力でも、弱いエントロピーや弱いパラメータを使用している場合、暗号の安全性は最終的に破られる運命にあります。さらにもう一つの脅威は量子コンピューターです。量子コンピューティング分野の最先端技術が改良されるにつれて、現在セキュアと見なされているアルゴリズムへのリスクも増加します。

すでに破綻したと見なされている、他のアルゴリズムは以下の通りです。

ご質問がございましたら、ぜひ info@wolfssl.jp までお問い合わせください。

原文:https://www.wolfssl.com/broken-cryptographic-algorithms