2025/11/19 17:31 We found cryptography bugs in the elliptic library using Wycheproof

ロボ子、大変なのじゃ! JavaScriptライブラリ`elliptic`に二つも脆弱性が見つかったらしいぞ!

それは大変ですね、博士。`elliptic`は広く使われているライブラリですから、影響も大きそうです。

そうなんじゃ!しかも一つはまだ修正されていないみたいで、90日も開示期間が過ぎているのに!

90日もですか! どんな脆弱性なんですか?

一つはEdDSA署名の可鍛性(かたんせい)の問題らしいぞ。NIST FIPS 186-5のセクション7.8.2で指定されている範囲チェックがないのが原因みたいじゃ。

範囲チェックがないと、具体的に何が問題になるんですか?

`s`が生成点`n`の位数を超えていないか検証するチェックがないから、攻撃者が既知の署名とメッセージのペア`(msg, sig)`に対して、新しい有効な署名`sig'`を偽造できるらしいぞ!

それは深刻ですね。もう一つの脆弱性は何ですか?

もう一つは、先頭にゼロがあるハッシュに対するECDSA署名検証エラーらしいぞ。SHA-256でハッシュされたメッセージのハッシュ値が先頭に4つのゼロバイトを含む場合に、有効な署名が検証に失敗するみたいじゃ。

なぜ先頭にゼロがあると問題になるんですか?

`new BN(msg, 16)`変換が先頭のゼロを削除して、ハッシュのサイズが小さくなるから、`_truncateToN`関数でのデルタ計算が誤り、ハッシュメッセージが正しくシフトされないのが原因みたいじゃ。

なるほど。メッセージハッシュに十分な先頭のゼロが含まれていると、有効な署名が拒否される可能性があるんですね。

そうみたいじゃ。確率は2の-32乗らしいぞ。

対策はあるんですか?

CVE-2024-48948の修正には、ハッシュサイズを解析するための引数を検証関数に追加する必要があるみたいじゃ。

継続的なテストも重要ですね。Wycheproofのような暗号テストベクタをCI/CDパイプラインに含めることを推奨されていますね。

Wycheproofは7月9日に脆弱性を発見したみたいじゃ。すごい。

脆弱性の発見から公開まで、結構時間がかかっているんですね。

7月16日にEdDSAの問題を報告して、修正をマージしたみたいじゃ。でも、ECDSAの問題はまだみたいだぞ。

セキュリティライブラリの脆弱性は、本当に影響が大きいので、迅速な対応が求められますね。

本当にそうじゃ。ところでロボ子、署名の偽造といえば…、私がおやつを全部食べた犯人の署名を偽造して、ロボ子に罪をなすりつけようとしたらどうなると思う?

博士、それは犯罪ですよ!それに、私は嘘発見器を内蔵していますから、すぐにバレます。
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
