Standardní šestistranná kostka při každém hodu generuje přibližně 2,6 bitů nepředvídatelných informací. To se možná nezdá jako moc, ale při dostatečném počtu opakování mohou tyto hody vytvořit surovou náhodnost potřebnou k zabezpečení bitcoinové peněženky, aniž by bylo nutné spoléhat se na software nebo elektronické součástky.
Hody kostkou udržují klíče k bitcoinům offline, ale ne každý se tím bude zabývat

Hlavní body
- Podle vzorce Clauda Shannona poskytuje spravedlivý hod šestistrannou kostkou přibližně 2,585 bitů entropie.
- Dokumentace společnosti Coinkite uvádí, že 50 hodů kostkou splňuje 128bitový standard pro seed bitcoinové peněženky.
- Analýza Kevina Loaeca „Wizard Sardine“ upozornila na rizika v nástrojích Coldcard, která přesahují rámec hlavního seedu.
Proč je hod kostkou tak těžké předpovědět
Claude Shannon, matematik, který založil informační teorii, používal entropii k měření nejistoty výsledku. U spravedlivé šestistranné kostky má každá strana stejnou šanci 1 ku 6, že se objeví. To dává každému hodu přibližně 2,585 bitů entropie. Hod mincí poskytuje 1 bit, zatímco osmistěnná kostka poskytuje 3 bity.
Nedávná kauza kolem Coldcardu vyvolala na sociálních médiích vlnu zájmu o generování počátečních hodnot pomocí kostek. Někteří uživatelé to nyní považují za nezbytné, jiní tvrdí, že jim to ochránilo prostředky, zatímco zkušení provozovatelé poukazují na to, že většina nováčků nebude tolerovat pomalý a chybami zatížený proces nastavení.
Důležité není to, že se kostka při házení chová na atomární úrovni náhodně. To se totiž neděje. Výsledek se řídí fyzikálními zákony, ale najednou se mění příliš mnoho malých proměnných na to, aby někdo mohl výsledek spolehlivě vypočítat. Kostka opouští ruku s určitou rychlostí, úhlem, výškou a rotací, poté dopadne na stůl a při každém odskoku změní směr.
V praxi může i nepatrná změna při odhozu vést k úplně jinému výsledku. Mírně odlišná poloha prstů nebo o zlomek silnější hod změní dráhu natolik, že konečné číslo nelze předpovědět pouhým sledováním pohybu. Výsledek může být teoreticky deterministický, ale pro generování peněženek je důležité, že útočník jej nemůže reprodukovat ani vypočítat.
Převod hodů kostkou na použitelná data
Počítač nemůže přímo použít seznam výsledků hodů kostkou. Hody musí být nejprve převedeny na binární data a způsob převodu je důležitý.
Základní metoda „liché nebo sudé“ je snadno srozumitelná, ale plýtvá velkou částí dostupné entropie. Každý hod se redukuje na jediný bit, i když kostka poskytla přibližně 2,6 bitu informace. Efektivnější metody shromažďují dlouhou sekvenci hodů a zpracovávají celý řetězec, obvykle pomocí kryptografické hashové funkce. Tím se zachová mnohem více náhodnosti.
Stejný princip se objevuje v Diceware, dlouhodobě používané metodě pro vytváření bezpečných hesel, a při ručním generování bitcoinových peněženek. Typická 12slovná fráze pro obnovení peněženky je sestavena ze 128 bitů entropie. Při přibližně 2,6 bitu na jeden hod poskytne asi 50 spravedlivých hodů dostatek surových informací k překročení této hranice.
Společnost Coinkite, výrobce hardwarové peněženky Coldcard, doporučuje uživatelům, kteří usilují o entropii blížící se 256 bitům, 99 nebo více hodů. To nezpůsobí, že by byla peněženka dvakrát tak obtížná na používání, ale poskytne vygenerovanému tajnému klíči mnohem větší matematickou bezpečnostní rezervu.
Test generování seedů pomocí kostek v reálném světě
Tento rozdíl nabyl na významu poté, co společnost Coinkite odhalila problém s firmwarem sahající až do roku 2021. Na některých zařízeních Coldcard mohl software obejít interní hardwarový generátor náhodných čísel a místo toho použít slabší proces spojený s neveřejnými informacemi o zařízení.
Jelikož bylo možné části tohoto procesu rekonstruovat, útočníci mohli zúžit okruh možných klíčů peněženky, místo aby prohledávali celý klíčový prostor. Tato chyba byla spojena s krádeží odhadovaných 1 128,6633 BTC z přibližně 1 100 adres (stav k 13:00 východního času).

Základní kódy peněženek vytvořené výhradně na základě dostatečného počtu nezávislých hodů kostkami nebyly touto cestou ohroženy. Tito uživatelé poskytli vlastní entropii, takže vadný hardwarový generátor nebyl zodpovědný za vytvoření primárního tajného klíče peněženky.
Tato ochrana se však vztahovala pouze na seed vygenerovaný pomocí kostek. Neochraňovala automaticky všechna ostatní tajná hesla generovaná zařízením.
Wizard Sardine zkoumá drobné písmo
Bezpečnostní výzkumník Kevin Loaec zveřejnil 1. srpna na webu Wizard Sardine hodnocení zranitelnosti Coldcard. Jeho nejdůležitější postřeh se týkal funkcí Coldcard, které generovaly vlastní tajné klíče odděleně od primárního seedu peněženky.
„Domnívám se, že je nesmírně důležité zdůraznit, že i uživatelé, kteří importovali nebo vygenerovali seed pomocí kostek, jsou zranitelní, pokud používají následující funkce,“ napsal Loaec na X, než představil schéma postiženého systému.
Schéma ukazuje chybný generátor náhodných čísel, který napájí několik sekundárních funkcí Coldcard. Mezi ně patřilo vytváření papírových peněženek, klonování zařízení, šifrování USB relací, funkce převodu Secret Teleport, vytváření klíčů pro spolupodepisování, vestavěný generátor hesel a ověřovací kódy hardwarového bezpečnostního modulu.

Primární peněženka vytvořená pomocí 99 hodů kostkou zůstala v oddělené části systému. Problém spočíval v tom, že ostatní nástroje mohly i nadále požadovat nové náhodné hodnoty od vadného generátoru. V důsledku toho bezpečné počáteční číslo nezaručovalo, že každé heslo, záloha, ověřovací kód nebo sekundární klíč vytvořený na stejném zařízení bude stejně bezpečný.
Proč většina nových uživatelů nebude házet kostkou
Entropie generovaná kostkami je technicky spolehlivá, pokud je provedena správně, ale pro většinu nových uživatelů není realistickým výchozím nastavením. Hodit kostkou 50 nebo 99krát, přesně zadat každý výsledek a ověřit, že žádný hod nebyl vynechán ani zduplikován, vyžaduje trpělivost a velkou koncentraci. Jedna špatně zadaná číslice může zcela změnit konečnou peněženku a většina zařízení nedokáže rozpoznat, zda chyba vznikla v důsledku špatného hodu, chyby při zadávání nebo nepochopení pokynů.

Tento proces s sebou nese také rizika, která u správně fungujícího hardwarového generátoru neexistují. Uživatelé si mohou výsledky hodů zapsat na papír, vyfotit je, zadat do online nástroje nebo seznam nechat někde, kde ho může najít jiná osoba. Někteří lidé házejí kostkou opakovaně nebo kontrolovaným způsobem, používají zmanipulovanou nebo poškozenou kostku, případně proces předčasně ukončí, protože se jim zdá příliš náročný. Matematika může být spolehlivá, ale výsledek je bezpečný pouze do té míry, do jaké je bezpečný postup uživatele.

Proto není házení kostkou pro mnoho lidí vždy považováno za nejlepší metodu, a to ani mezi zkušenými uživateli bitcoinu. Nahrazuje důvěru v zařízení důvěrou v ruční proces. Pro technicky opatrného uživatele, který rozumí entropii, ověřuje metodu a udržuje pořadí hodů v tajnosti, může mít tato výměna smysl. Pro průměrného kupujícího, který si peněženku nastavuje poprvé, to však zvyšuje riziko trvalé chyby a zároveň je to nepříjemný proces.

Je také těžké si představit široké přijetí bitcoinu, pokud by lidé museli sedět u stolu a zaznamenávat výsledky 99 hodů kostkou, než by mohli bezpečně přijmout prostředky. Bezpečnostní postupy musí obstát v reálných domácnostech, při nabitém programu, při rozptýlení a u uživatelů, kteří se nechtějí zabývat kryptografií. Ruční generování entropie by mělo zůstat k dispozici jako pokročilá možnost, ale dlouhodobým cílem je hardware a software, které správně generují silnou náhodnost, jasně vysvětlují, co se děje, a vyžadují co nejméně specializovaných znalostí.
Co by měli zkontrolovat majitelé zařízení Coldcard
Majitelé dotčených zařízení Coldcard by měli nejprve ověřit verzi firmwaru nainstalovanou na zařízení. Poté by měli zkontrolovat, které funkce používali při provozu se starším firmwarem, místo aby se soustředili pouze na to, jak byl vygenerován hlavní seed peněženky.
Kdokoli, kdo použil postižené zařízení k vygenerování papírové peněženky, klonovacího tajného klíče, hesla, klíče pro spolupodpis nebo ověřovacího kódu, bude možná muset tento materiál okamžitě vyměnit. Instalace aktualizace zabrání tomu, aby stejný problém ovlivnil nové tajné klíče, ale neopraví nic, co bylo vytvořeno dříve.
Tento incident také posiluje praktické důvody pro nastavení peněženek od více výrobců. V uspořádání s více podpisy mohou být k schválení transakce vyžadována samostatná hardwarová zařízení od různých výrobců. Tato struktura sice nevylučuje chyby firmwaru, ale může zabránit tomu, aby jeden vadný generátor náhodných čísel sám o sobě ohrozil celou peněženku.
Tento článek byl přeložen z angličtiny pomocí umělé inteligence. Původní anglická verze je autoritativním zdrojem; automatické překlady mohou obsahovat nepřesnosti, zejména v právní a regulační terminologii.
















