脆弱性の開示:wolfSSLにおける潜在的なサイドチャネル攻撃リスク(CVE-2025-7396)

影響を受けるユーザ

Curve25519の秘密鍵操作にC実装ビルドを使用するwolfSSLユーザ。
この脆弱性は、アセンブリ最適化実装(ARMまたはIntel)、小フットプリントCurve25519ビルド、ハードウェアオフロード実装を使用するビルドには影響しません。

概要

wolfSSLのCurve25519秘密鍵操作のC実装において、潜在的なサイドチャネル脆弱性が発見されました。
サイドチャネル攻撃とは、暗号デバイスの動作中に電力消費や電磁放射などの物理的特性を分析し、秘密鍵などの機密情報を抽出する高度な技術です。これらの攻撃には、ターゲットデバイスへの物理アクセスと特殊な機器が必要ですが、攻撃者が物理的にアクセスできる環境に配置されたデバイスにとっては現実的な脅威となります。

この脆弱性に対処するため、wolfSSL v5.8.0よりCurve25519操作のブラインディングに対応しました。ブラインディングとは計算中の中間値をランダム化する暗号学的対策の1つであり、攻撃者がサイドチャネル情報を秘密鍵の材料と関連付けることを著しく困難にします。wolfSSL v5.8.2以降では、該当するビルドに対してCurve25519ブラインディング保護がデフォルトで有効化されます。

この脆弱性を発見し、報告してくださったTelecom ParisのArnaud Varillon氏、Laurent Sauvage氏、Allan Delautre氏に感謝いたします。

ブラインディングが適用される場合

ブラインディングは、Curve25519のC実装を使用するビルドにのみ関連します。以下の場合には利用できず、また必要ありません。

  • --enable-armasmまたは--enable-intelasmを使用するアセンブリ最適化実装
  • --enable-curve25519=smallを使用する省フットプリントCurve25519ビルド

これらの実装ではこの脆弱性の影響を受けず、ブラインディングは利用できません。

影響を受ける操作

ブラインディングは、秘密鍵がスカラー乗算で使用されるCurve25519操作を強化します。

インポートされた鍵に関する重要な注意事項

ブラインディングが有効な場合、関数wc_curve25519_export_public_exおよびwc_curve25519_shared_secret_exは鍵構造体にRNGが設定されていることを要求します。

秘密鍵をwc_curve25519_make_keyで生成するのではなくインポートして処理に使用している場合、これらの関数を実行する前にwc_curve25519_set_rngを呼び出して鍵構造体にRNGを関連付ける必要があります。これを行わないと、エラーが返されます。

ブラインディングの無効化

ブラインディングを明示的に無効にする必要がある場合は、コンパイル時にNO_CURVE25519_BLINDINGを定義します。

ただし、このマクロを定義するとサイドチャネル保護が無効化されます。やむを得ない事情があり、セキュリティへの影響を理解している場合にのみお使いください。

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

原文:https://www.wolfssl.com/vulnerability-disclosure-wolfssl-cve-2025-7396/