Kryptopeněženky, které v roce 2025 negenerují dostatečně náhodné podpisové nonce, jdou dál než jen nedbalost.
Tansel Kaya
Tansel Kaya29. 11. 04:47
"Extrakce klíčů ze signatur" zmíněná v hacku Upbit je pokročilý kryptanalytický útok na algoritmus Elliptic Curve Digital Signature Algorithm (ECDSA) používaný na Solaně (a mnoha dalších blockchainech). Díky předvídatelnému nonce (jednorázovému náhodnému číslu k) generovanému softwarem peněženek Upbit útočníci detekovali skrytý vzor v podpisech, což jim umožnilo matematicky vypočítat soukromý klíč peněženky. 1. Jak ECDSA vlastně funguje? Při podpisu každé transakce: Soukromý klíč: d (nikdy nesdílen) Jednorázové náhodné číslo: k (nonce) → musí být pro každý podpis zcela náhodné a tajné Výsledný podpis: pár (r, s) (viditelný všem na blockchainu) Pokud k není náhodné nebo má předvídatelný vzor, lze soukromý klíč d extrahovat z více signatur. 2. Zranitelnost v Upbit Vlastní peněženkový software Upbit nedokázal generovat nonce hodnoty dostatečně náhodně. To vytvořilo statistické zkreslení hodnot signatur (r, s). Útočníci shromáždili desítky/stovky transakcí z horké peněženky Upbitu, analyzovali tyto podpisy, aby zjistili, které části nonce jsou předvídatelné, a vypočítali soukromý klíč během sekund/minut pomocí matematických metod (mřížkový útok). 3. Typy použitých matematických útoků Problém skrytého čísla (HNP) + redukce mřížky (algoritmy LLL/BKZ) I předvídatelnost pouhých 3–8 bitů stačí k úplnému rozluštění klíče s 20–100 podpisy. I když je předpojatost slabší (1–2 bity), stále ji lze prolomit tisíci podpisy 4. Proč se říká, že "jen Lazarus to může udělat"? Tento útok vyžaduje: znalosti na úrovni PhD v kryptografii (HNP, mřížková kryptanalýza) Odbornost v analýze blockchainových dat Výkonné výpočetní zdroje (GPU clustery) Trpělivost a dlouhodobé sledování 5. Poučení a opatření, která je třeba přijmout Výroba nonce musí být prováděna pomocí RFC 6979 (deterministický, ale bezpečný) nebo skutečného hardwarového náhodného zdroje (HWRNG). K úspěšnému absolvování testů náhodnosti (NIST, Dieharder) musí být vyžadovány podpisy.
Nejsem si jistý, jaké jsou podrobnosti. Jak někteří poznamenali, Solana má používat Ed25519, který má deterministické nonce. Ale to je Schnorrova signatura a má stejnou zranitelnost, pokud někdo špatně implementoval proces jednotného vzorkování nonce.
Chci také říct: kdybych našel náhodnost/uniformitu v podpisovém schématu používaném v kryptopeněžence, zvlášť když je zneužito státem podporovanou skupinou, nemusel bych hned skočit k "náhodě" jako jedinému vysvětlení.
11,87K