2025年において十分にランダムなシグネチャナンスを生成しない暗号通貨ウォレットは、単なる過失を超えています。
Tansel Kaya
Tansel Kaya11月29日 04:47
Upbitハックで言及された「署名からの鍵抽出」は、Solana(および多くの他のブロックチェーン)で使われている楕円曲線デジタル署名アルゴリズム(ECDSA)アルゴリズムに対する高度な暗号解析攻撃です。 Upbitのウォレットソフトウェアが生成する予測可能なノンス(一度きりの乱数k)により、攻撃者は署名の中に隠れたパターンを検出し、財布の秘密鍵を数学的に計算することができました。 1. ECDSAはどのように機能するのか? 各取引に署名する際: 秘密鍵:d(共有なし) 一度きりの乱数:k(nonce)→ 各署名に対して完全にランダムかつ秘密でなければなりません 結果として得られる署名:(r, s) ペア(ブロックチェーン上の全員に見える) kがランダムでない場合、または予測可能なパターンを持つ場合、秘密鍵dは複数の署名から抽出できます。 2. Upbitにおける脆弱性 Upbitのウォレットソフトウェアでは、nonce値を十分にランダムに生成できませんでした。これにより、署名(r, s)の値に統計的なバイアスが生じました。攻撃者はUpbitのホットウォレットから数十件から数百件の取引を収集し、これらの署名を分析してどのナンスのビットが予測可能かを特定し、数(ラティス攻撃)を用いて数秒から数分で秘密鍵を計算しました。 3. 使用される数学的攻撃の種類 隠れ数問題(HNP)+格子還元(LLL/BKZアルゴリズム) わずか3〜8ビットの予測可能性でも、20〜100の署名で鍵を完全に解読できます。 たとえバイアスが弱い(1〜2ビット)でも、数千の署名で破ることができます 4. なぜ「ラザロだけができる」と言われるのか? この攻撃には以下が必要です:暗号学の博士レベルの知識(HNP、格子暗号解析) ブロックチェーンデータ分析の専門知識 強力な計算リソース(GPUクラスター) 忍耐と長期的なモニタリング 5. 講じるべき教訓と注意事項 ノンス生成はRFC 6979(決定的だが安全)または真のハードウェアランダムネスソース(HWRNG)で行う必要があります。 ランダム性テスト(NIST、Dieharder)に合格するには署名が必要です。
ここでの詳細が何かはよくわかりません。指摘されているように、Solanaは決定論的なノンスを持つEd25519を使うはずです。しかしそれはSchnorr署名であり、誰かがナンセスを均一にサンプリングするプロセスを誤って実装した場合も同じ脆弱性があります。
また言いたいのは、もし私が暗号通貨ウォレットで使われている署名方式にノンスのランダム性や均一性の欠陥を見つけたとしても、特に国家支援のグループによって悪用されたものであれば、私は必ずしも「偶然」だけを説明するつもりはありません。
11.86K