117 / 736ECL

Eclipse Attack

Uzel je připojený, ale útočník mu zakrývá zbytek sítě

Internet funguje, spojení jsou otevřená, přesto uzel nevidí skutečné dění v Bitcoinu. Při Eclipse Attack útočník ovládne jeho cesty k ostatním a vybírá, které zprávy k němu dorazí.

Eclipse Attack je cílená izolace uzlu od poctivých protistran při zachování spojení s útočníkem. Full Node, program samostatně ověřující bitcoinová pravidla, pokračuje v této kontrole, ale může dostávat jen neúplný či zastaralý obraz sítě. Útok nemění neplatná data na platná; zneužívá to, co uzel nemá možnost vidět.

Anna přijímá bitcoinovou platbu a sleduje vlastní uzel, tedy počítač s programem pro účast v bitcoinové síti. Ten hlásí aktivní spojení, jenže všechny důležité cesty ven ovládá protivník. Zprávy sice přicházejí, ale jen takové, které jí dovolí vidět. To je podstata Eclipse Attack. Jedno škodlivé spojení obvykle nestačí: funkční cesta k poctivému uzlu může přinést zatajované bloky a útočníkovu kontrolu narušit. Blok sdružuje transakce do dávky, která se připojuje ke společné historii. [1] [6]

Ethan Heilman, Alison Kendler, Aviv Zohar a Sharon Goldberg popsali v roce 2015 útoky na tehdejší bitcoinovou síť. Zkoumali, jak zaplnit adresář uzlu útočníkovými adresami, aby se uzel po opětovném připojení spojil jen s útočníkovými počítači. Zneužili výběr spojení; nemuseli prolomit matematické postupy, které chrání například digitální podpisy. Studie také navrhla obrany; její historické výsledky nejsou měřením úspěšnosti proti dnešní verzi Bitcoin Core. [1] [7]

Jakmile izolaci získá, může rozhodovat, které bloky a transakce Anně předá a které zadrží. Může také bránit šíření jejích vlastních transakcí nebo pozorovat jejich původ. Samotné ovládnutí spojení nevyžaduje většinu těžebního výkonu. To však neznamená, že bez dalšího úsilí zvládne všechny navazující útoky: například vytvoření nových bloků vyžaduje skutečnou práci. [1] [6]

Annin Full Node stále kontroluje podpisy, podmínky utracení i povolenou odměnu těžaře. Podepsat tu znamená vytvořit pomocí soukromého klíče, tajného číselného údaje, ověřitelný důkaz oprávnění k platbě. Ostatní mohou podpis zkontrolovat, aniž by tento tajný údaj znali. Annin uzel vadnou transakci nepřijme jen proto, že ji poslal jediný dostupný zdroj. Jenže ověřování neumí odhalit platný blok, který k uzlu vůbec nepřišel. Podobně můžete poznat pravost doručeného dopisu, aniž byste věděli, že někdo zadržel všechny novější dopisy. Platnost a úplnost dostupných informací jsou dvě různé otázky. [5] [9]

Uzel může zůstat na posledním známém bloku, zatímco ostatní pokračují. Izolovaný těžař může dokonce dál těžit na opuštěné větvi a přijít o očekávanou odměnu. Dlouhé čekání na blok ale samo o sobě není důkaz útoku: těžba je náhodná a potíže může způsobit i obyčejný výpadek. Podezřelá je souvislost více příznaků, ne samotná pomalá aktualizace obrazovky. [1] [5] [8]

Útočník může Anně ukazovat platnou soukromou větev s její platbou, zatímco ve zbytku sítě utratí stejné prostředky jinak. Po obnovení spojení může uzel přejít na platnou větev s větší nahromaděnou prací; jde o Reorg, tedy změnu části přijaté historie. Platba z opuštěné větve pak nemusí zůstat potvrzená. Útočník ale musí pro své bloky dodat Proof of Work. To je ověřitelný výsledek výpočetně náročného hledání, které musí proběhnout i u těchto bloků. Potřebnou práci mohou dodat také těžaři, které útočník sám izoloval. Vymyšlený údaj o potvrzeních Full Node neoklame; úspěch závisí i na době izolace a jeho zdrojích. [1] [5] [6]

Obrana se snaží zabránit tomu, aby všechna spojení skončila u stejného protivníka. Bitcoin Core rozděluje známé adresy do skupin a při výběru odchozích spojení podporuje síťovou rozmanitost. IP adresa určuje místo v síti, ke kterému se program připojuje. Odlišné IP adresy však mohou patřit jednomu provozovateli nebo vést přes stejnou infrastrukturu. Taková opatření snižují koncentraci a zvyšují náročnost útoku, ale neprokazují nezávislost každé protistrany. [3] [4]

Bitcoin Core používá krátká spojení feeler k ověření, zda je další adresa dosažitelná. Dodatečná spojení pro přenos bloků plní jinou úlohu: mohou přinést nové hlavičky bloků, tedy jejich stručné technické záznamy, a další pohled na pokračování řetězce. Není tedy přesné tvrdit, že každý feeler rovnou stáhne aktuální historii. Odkazovaný kód Bitcoin Core 29.0 ukazuje tyto odlišné obrany; žádná sama nezaručuje konec izolace. [4] [8]

Známá protistrana přidaná ručně může vytvořit další cestu, pokud je dostupná a skutečně propojená se zbytkem sítě. Několik spojení přes jednoho poskytovatele ale nemusí být nezávislých. Smysl má používat software, o který se jeho vývojáři stále starají, a rozumět nastavení spojení, ne slepě přebírat seznam cizích adres. Vlastní ověřování tím zůstává zachováno: důvěra v dostupnost zdroje není oprávněním posílat neplatné bloky. [2] [4] [6]

Sybil Attack znamená, že jeden protivník vystupuje pod mnoha identitami; může tím Eclipse Attack usnadnit. Eclipse označuje úspěšné odříznutí konkrétního uzlu nebo vybrané skupiny od poctivých zdrojů. Širší rozdělení sítě naproti tomu odděluje celé její části a nemusí vzniknout tímto způsobem. Pro běžného uživatele je podstatné, že vlastní Full Node chrání ověřování, ale potřebuje také přístup k informacím mimo útočníkovu kontrolu. [1] [6]

Pro nejúplnější obraz čtěte toto heslo společně s Sybil Attack, Block Propagation, Compact Blocks, Nakamoto Consensus, Bitcoin, Full Node. Opačným směrem na něj odkazují také Dvojí útrata, Byzantine Generals Problem, Nakamoto Consensus, Sybil Attack.

DOC · 001Heilman et al. — Eclipse Attacks on BitcoinPrimární zdroj DOC · 002Bitcoin Developer Guide — P2P NetworkDokumentace DOC · 003Bitcoin Core v29.0 — addrmanDokumentace DOC · 004Bitcoin Core v29.0 — Peer connectionsDokumentace DOC · 005Bitcoin Developer Guide — Block ChainDokumentace DOC · 006Bitcoin Optech — Eclipse attacksDokumentace DOC · 007USENIX Security 2015 — Eclipse Attacks on Bitcoin’s Peer-to-Peer NetworkPrimární zdroj DOC · 008Bitcoin Core v29.0 — Message processingDokumentace DOC · 009Bitcoin Core v29.0 — Block validationDokumentace
Revidováno: Primární zdroje · Nejde o investiční doporučení