Vědci zjistili zranitelnost bitcoinů, etherea a zvlnění digitálních podpisů při chybných implementacích

Vědci nedávno identifikovali zranitelná místa v kryptografických podpisech pro bitcoiny, etherea a zvlnění, která útočníkům umožnila vypočítat soukromé klíče a následně ukrást jakékoli kryptoměny v této peněžence. Celkově vědci vypočítali stovky soukromých klíčů bitcoinů a desítky soukromých klíčů Ethereum, Ripple, SSH a HTTPS pomocí této jedinečné formy kryptanalytického útoku.

V novinách Biased Nonce Sense: Lattice Attacks against Weak ECDSA Signatures in Cryptocurrencies, vědci využívají metodu pro výpočet soukromých klíčů analýzou bitcoinových podpisů. Vědci byli také schopni aplikovat tyto techniky na Ethereum a Ripple.

To znamená, že tyto chyby zabezpečení se vyskytují pouze v okrajových případech, kdy vývojáři správně neimplementují kód nebo k nim pravděpodobně došlo kvůli vadnému hardwaru s více podpisy. Výzkum zdůrazňuje odolnost kryptografických schémat používaných kryptoměnami a zdůrazňuje důležitost správné implementace.

Souvislosti výzkumu

Kdykoli držitelé kryptoměny provedou transakci, musí vytvořit kryptografický podpis pomocí algoritmu digitálního podpisu eliptické křivky (ECDSA). V tomto algoritmu přichází software s libovolným číslem, které se pro komunikaci použije jen jednou – toto číslo se nazývá nonce.

Je zásadní, aby software podepisoval každou transakci jiným nonce, jinak mohou hackeři (poměrně snadno) najít a vypočítat soukromý klíč signatářů. Existují dokonce důkazy, že hackeři neustále sledují blockchain pro tyto druhy opakovaných netecí a získávají peníze ze zneužití klíčů.

Méně známé je, že útočníci mohou vypočítat klíče z podpisů, které používají různé, ale podobné nonce. Například pokud mají nonce znaky, které jsou podobné na začátku podpisu, nebo pokud má nonce znaky, které jsou podobné na konci podpisu, stane se nějaká velká špatná hrozná věc.

Co říkají vědci

Společnost CryptoSlate kontaktovala oba autory článku: Dr. Nadia Heningerová je docentkou informatiky na Kalifornské univerzitě. Joachim Breitner, je vedoucí výzkumný pracovník v DFINITY. Podle Dr. Heningera byla zranitelnost popsána takto:

„Algoritmus digitálního podpisu ECDSA vyžaduje vygenerování náhodného čísla pro každý podpis, kterému se často říká„ nonce “(liší se od nonces používaných při těžbě kryptoměn). Pokud tyto náhodné hodnoty použité v podpisech nejsou generovány správně, v některých případech může útočník vypočítat soukromé podpisové klíče. Typy nonce zranitelností, které jsme využili, byly implementace, které generovaly hodnoty, které byly mnohem kratší, než by měly být, nebo hodnoty, které sdílely většinu nebo nejméně významné bity. “

A pomocí nějaké pokročilé matematiky zvané mřížky byli oba schopni prolomit některé z těchto adres peněženky a najít soukromé klíče:

“Pro pitomce v publiku nám příhradové algoritmy umožňují najít malá řešení pro omezené systémy lineárních rovnic.” Existuje celá řada krypotanalytických technik, které používají jako stavební kámen mřížkové algoritmy. “

Jak je uvedeno v článku, jakákoli nejednotnost při generování těchto podpisových nonces může odhalit informace o soukromém klíči. Vzhledem k dostatečnému počtu podpisů mohou hackeři vypočítat soukromé klíče a získat přístup do peněženky uživatele a vyčerpat jeho prostředky.

Dělejte si uživatelé kryptoměny starosti?

Podle Dr. Heningera a Breitnera se drtivá většina uživatelů kryptoměny nemusí obávat:

“Jediný důvod, proč by se to stalo, je ten, že v kódu digitálního podpisu je nějaký druh chyby.”

Kromě toho, pokud vývojáři používají správné techniky a dokumentované metody k zajištění bezpečnosti uživatelů, je schéma podpisu považováno za bezpečné:

“Pokud víme, ECDSA je bezpečný algoritmus digitálního podpisu, pokud je implementován správně.” Došli jsme k závěru, že se nejednalo o běžnou implementaci založenou na skutečnosti, že jsme našli jen několik tisíc zranitelných podpisů z téměř miliardy bitcoinových podpisů, které jsme zkoumali. “

Kromě toho jsou tyto chyby zabezpečení pouze „specifické pro odlišné implementace. Autoři dále spekulují, že chybná implementace by mohla být pravděpodobně výsledkem několika multifaktorových bezpečnostních zařízení:

“Zmínka o multifaktorovém zabezpečení je specifická pro případ podpisů, které jsme našli u 64bitových nonces na bitcoinovém blockchainu.” Téměř všechny byly součástí multisig adres, což u blockchainu není obvyklý případ, proto náš odhad zdroje. Od té doby tam nějaké byly další spekulace o konkrétní implementaci. “

Nyní existují způsoby pro vývojáře implementovat ECDSA bez zranitelností popsaných v článku, a to i pro hardwarová zařízení. Podle Breitnera:

“Oficiální blockchain klienti mají své krypto právo … od roku 2016 používá bitcoinový klient deterministické podpisy (RFC6979), která zcela odstraňuje potřebu náhodnosti v procesu [eliminuje možnost druhu útoku zaměstnávaného výzkumníky]. Pokud používáte nestandardní knihovny nebo píšete své vlastní krypto rutiny … měli byste se ujistit, že používají RFC6979. To je ještě důležitější u vestavěných zařízení nebo hardwarových tokenů, kde je těžké získat dobrý zdroj náhodnosti. “

Výnosné pro útočníky?

Nakonec tyto druhy útoků nejsou nákladově efektivní vzhledem k množství času, elektřiny a výpočetní síly potřebné k jejich provedení – dokonce ani s tímto novým nástrojem přidaným do jejich arzenálu:

“Vzhledem k tomu, že útočníci již využívají další kryptografické chyby zabezpečení k napadení peněženek, je pravděpodobné, že to bude přidáno do jejich arzenálu.” Pokud však člověk za výpočet musí zaplatit čas, pravděpodobně to není nákladově efektivní útok vzhledem k zůstatkům, které jsme našli v souvislosti se zranitelnými klíči. “

Na konci dne výzkum ujistil uživatele kryptoměny, že kryptografie zdůrazňující bitcoin a další digitální měny je v pořádku. S desítkami tisíc lidí, kteří zkoumají základní kód pro tyto systémy, je to svědectví, že základní bezpečnostní schémata, pokud jsou používána správně, stále dostatečně chrání uživatele –pro teď.