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
を開いてどのマクロが定義されているかをご確認ください。
とはいえ、アルゴリズムがどれほど強力でも、弱いエントロピーや弱いパラメータを使用している場合、暗号の安全性は最終的に破られる運命にあります。さらにもう一つの脅威は量子コンピューターです。量子コンピューティング分野の最先端技術が改良されるにつれて、現在セキュアと見なされているアルゴリズムへのリスクも増加します。
すでに破綻したと見なされている、他のアルゴリズムは以下の通りです。
- Dual_EC_DRBG:バックドアを発見済み (英語版Wikipediaにも詳細な解説があります。)
- SIKE(Supersingular Isogeny Key Exchange):NIST PQCコンペティション中に破綻
- Merkle–Hellmanナップサック暗号:シャミアの攻撃法により破綻
- シーザー暗号:ブルートフォース攻撃と統計分析に脆弱
ご質問がございましたら、ぜひ info@wolfssl.jp までお問い合わせください。