162012–2014

Trezor: klíče od Bitcoinu v kapesním počítači

Marek Palatinus a Pavol Rusnák hledali způsob, jak podepisovat platby na počítači, kterému není nutné svěřit privátní klíč. Z prototypu v pražském hackerspace vznikla první generace hardwarových peněženek.

Rané bitcoinové peněženky stavěly uživatele před nepříjemnou volbu. Privátní klíče mohl mít v počítači připojeném k internetu a doufat, že jej nenapadne malware, nebo je ukrýt tak důkladně, že s nimi nebude moci pohodlně platit. Marek „Slush“ Palatinus a Pavol „Stick“ Rusnák hledali třetí cestu: malý jednoúčelový počítač, který klíč nikdy nevydá, ale na požádání podepíše správně zobrazenou transakci. První prototypy vznikaly v pražském hackerspace Brmlab na Raspberry Pi. Dne 29. července 2014 se začal prodávat Trezor Model One. Zařízení neudělalo z úschovy bezchybný proces, ale přesunulo její nejcitlivější část z běžného počítače do předmětu, který mohl uživatel držet, kontrolovat a zálohovat.

01

Problém nebyl Bitcoin, ale počítač kolem něj

Bitcoin dává vlastníkovi možnost ovládat mince podpisem bez svolení banky. Stejná vlastnost však mění únik klíče v konečnou ztrátu. Pokud malware zkopíruje privátní klíč, může vytvořit platnou transakci a síť nemá oddělení reklamací, které ji vrátí. Běžný domácí počítač přitom spouští prohlížeč, e-mail, dokumenty i programy z mnoha zdrojů.

Rané návody nabízely papírové peněženky, šifrované disky nebo počítače odpojené od sítě. Tato řešení mohla snížit plochu útoku, ale zvyšovala nároky na správné vytvoření, zálohu a podepisování. Příběhy Jamese Howellse a Stefana Thomase ukázaly opačnou hranu: tajemství lze chránit tak úspěšně, že se k němu nedostane ani jeho vlastník.

Palatinus už věděl, co obnáší provoz Mining Poolu i jaká rizika mají online bitcoinové služby. S Rusnákem hledali odpověď na praktickou otázku: jak oddělit podpisový klíč od počítače, který může být napadený, a přitom z každé platby neudělat složitý technický úkol? Transakci by uživatel dál připravoval v peněžence na počítači. Její schválení by ale proběhlo na samostatném zařízení.

Tak vznikl princip hardwarové peněženky. Hostitelský počítač pošle zařízení nepodepsaná data. Zařízení odvodí potřebný klíč, zobrazí člověku podstatné údaje a po potvrzení vrátí podpis. Privátní materiál zůstává uvnitř. Napadený počítač může lhát, a proto je vlastní displej a fyzické potvrzení součástí bezpečnostního modelu, nikoli designová ozdoba.

Cíl nebyl odstranit důvěru ve veškerý hardware a software. Byl skromnější a praktický: zmenšit množství kódu a situací, v nichž je tajný klíč vystaven. Jednoúčelové zařízení může být důkladněji kontrolováno než celý notebook a jeho omezené rozhraní dává uživateli šanci poznat, co skutečně podepisuje.

Běžný počítač musí současně prohlížet web, otevírat přílohy, instalovat ovladače a spouštět tisíce částí kódu, které s Bitcoinem nesouvisejí. Každá z nich rozšiřuje prostor, v němž může útočník čekat na okamžik podpisu. Jednoúčelové zařízení tento svět nezruší, ale oddělí nejcitlivější operaci od jeho chaosu. Transakce se připraví venku, uvnitř se podepíše a privátní klíč nemá zařízení opustit. Smyslem displeje a tlačítek je dát uživateli nezávislý kanál: počítač může tvrdit jednu adresu, ale rozhodující potvrzení se odehrává na obrazovce, kterou má pod kontrolou samotná peněženka.

02

Brmlab, Raspberry Pi a dvě tlačítka

První pokusy nevypadaly jako pozdější spotřební výrobek. V Brmlabu stavěli Palatinus a Rusnák přídavné desky k Raspberry Pi, doplňovali malý displej, tlačítka a USB komunikaci. Potřebovali ověřit, že celý tok může fungovat: zařízení bezpečně vytvoří klíče, zobrazí požadavek a podepíše bez jejich vyzrazení.

Hackerspace poskytl prostředí, kde se hardware a software mohly měnit současně. Chyba v rozložení tlačítek nebyla oddělena od chyby v protokolu; obojí mohlo vést uživatele ke schválení něčeho jiného, než zamýšlel. Použitelnost nebyla poslední vrstvou nad kryptografií. Byla podmínkou, aby kryptografie chránila skutečného člověka.

Dvě tlačítka vyjadřovala důležitou hranici. Počítač mohl zařízení požádat o podpis, ale konečné potvrzení muselo přijít fyzicky. Displej zase vytvářel druhý kanál, na němž se dala zkontrolovat adresa a částka. Pokud napadený notebook změnil příjemce, správně použitý Trezor měl rozpor ukázat.

Z prototypu vznikla společnost SatoshiLabs. Vývojáři museli řešit výrobu, firmware, aktualizace, kompatibilitu peněženek i podporu lidí, kteří o hierarchických klíčích nic nevěděli. Přechod od desky v hackerspace k produktu znamenal, že bezpečnostní myšlenku musí zvládnout nejen její autoři, ale i člověk otevírající krabičku doma.

Trezor sám sebe označuje za první hardwarovou peněženku na světě. Přesnější je toto prvenství připsat výrobci a konkrétní definici produktu: jednoúčelové komerční zařízení pro ukládání klíčů a potvrzování bitcoinových transakcí. Historie bezpečnostních tokenů je širší, ale Model One vytvořil kategorii, kterou bitcoinový trh začal následovat.

03

Zařízení, které se dalo obnovit ze slov

Trezor Model One byl oficiálně uveden 29. července 2014. Malý displej, dvě tlačítka a USB kabel ukrývaly podstatnější změnu: peněženka už nemusela být totožná s jedním kusem hardwaru. Pokud se zařízení ztratilo nebo rozbilo, uživatel mohl klíče obnovit ze sady slov.

Marek Palatinus a Pavol Rusnák jsou spoluautory BIP 39. Návrh popisuje, jak náhodně vygenerovaná data zapsat jako seznam slov a jak z tohoto zápisu odvodit seed pro peněženku. Seed Phrase tak umožnila zálohovat základ mnoha klíčů jedním zápisem místo kopírování každého klíče zvlášť. Pokud uživatel používá také passphrase, potřebuje při obnově i ji. Pohodlnější záloha současně znamená, že kdo získá potřebná tajemství, může peněženku obnovit.

BIP 44 dále popsal hierarchii účelů, měn a účtů nad deterministickou peněženkou. Standardy umožnily, aby kompatibilní software z jednoho seedu znovu našel stejnou strukturu adres. Obnova se tím stala použitelnější, ale také závislá na správném pochopení derivace a podpory jednotlivých aplikací.

Zařízení tak chránilo klíč během běžného používání, zatímco papírová nebo kovová záloha chránila možnost obnovy. Bez zálohy mohl zničený Trezor znamenat ztrátu. S odhalenou zálohou mohl útočník obejít zařízení úplně. Bezpečnost se nepřestala opírat o člověka; pouze dostala jasnější rozdělení rolí.

Tento model pomohl rozšířit vlastní úschovu mimo úzký okruh techniků. Uživatel mohl držet dlouhodobé prostředky a přitom občas podepsat platbu bez importu seedu do online počítače. Produkt nezjednodušil Bitcoin tím, že by skryl odpovědnost. Snažil se ji uspořádat do kroků, které lze rozumně dodržet.

04

Trezor není mince ani pojistka

Hardwarová peněženka neukládá bitcoiny jako mince v sejfu. Uchovává tajemství potřebné k podepsání převodu výstupů zaznamenaných v blockchainu. Když uživatel zařízení zničí, ale má správný seed, prostředky může obnovit. Když seed získá cizí člověk, může prostředky přesunout bez původního zařízení.

Ani vlastní displej nepomůže, pokud člověk údaje nečte. Podvodná aplikace může zobrazit správnou adresu na počítači a poslat jinou do zařízení; obrana funguje teprve tehdy, když uživatel porovná adresu na důvěryhodném displeji. Bezpečnostní prvek je nabídka kontroly, ne automatická záruka správného rozhodnutí.

Výrobce a komunita dál musí řešit chyby firmwaru, bezpečnost dodavatelského řetězce a aktualizace. Otevřený kód umožňuje kontrolovat, jak zařízení funguje; neznamená ale, že si každý majitel musí jeho práci sám prověřit řádek po řádku. Self-Custody stojí také na postupech při používání a na důvěře ve zvolené nástroje. Hardware převzal část práce, odpovědnost uživatele tím nezmizela.

Příběh Trezoru nabízí jiný pohled než příběhy ztracených disků a zapomenutých hesel. Jeho tvůrci nevycházeli z představy, že lidé přestanou chybovat. Hledali nástroj, který některým chybám pomůže předejít a na jiné včas upozorní. S jeho používáním ale přicházejí i povinnosti: zapsat obnovovací slova, chránit tuto zálohu před požárem i cizíma očima a nacvičit obnovu peněženky dřív, než nastane nouze.

Z desky v pražském hackerspace se stal globální produkt, protože řešil problém, který rostl spolu s hodnotou sítě. Čím víc bylo co chránit, tím méně přijatelná byla volba mezi online klíčem a nepohodlným archivem. Trezor neodstranil riziko privátního klíče. Dal mu fyzické rozhraní, na němž člověk může svou odpovědnost skutečně vykonávat.

Toto rozdělení odpovědnosti má i nepohodlnou stránku. Výrobce může zveřejnit návrh a opravy, ale nemůže za uživatele bezpečně uložit obnovovací slova, zkontrolovat každou adresu ani poznat podvodný požadavek na zadání seedu. Zařízení chrání určitý okamžik v procesu; bezpečnost vzniká teprve spojením ověřeného hardwaru, důvěryhodného softwaru, fyzické zálohy a pozorného člověka. Trezor tedy není krabička, která zrušila potřebu rozumět vlastní úschově. Je to pokus převést abstraktní kryptografickou odpovědnost do několika viditelných úkonů, u nichž lze chybu snáze rozpoznat dřív, než se stane nevratnou.

Atlas

Postavy a pojmy v Atlasu

CZ·02TrezorSLUSHMarek „Slush“ PalatinusSTICKPavol „Stick“ RusnákCZ·01SatoshiLabsHWHardware WalletKEYPrivate KeySEEDSeed PhraseKEYSVlastní úschova
  1. 01
    Trezor — A decade of pioneering

    Jména zakladatelů, Brmlab, prototypy na Raspberry Pi a datum uvedení Model One.

  2. 02
    Trezor — About Trezor

    Firemní časová osa vzniku, BIP 39, BIP 44 a produktu Model One.

  3. 03
    BIP 39 — Mnemonic code for generating deterministic keys

    Technická specifikace obnovovacích slov, její rozsah a bezpečnostní hranice.

  4. 04
    BIP 44 — Multi-Account Hierarchy for Deterministic Wallets

    Technická specifikace hierarchie účtů, jejímiž autory jsou Marek Palatinus a Pavol Rusnák.

Další příběh · 17Bitcoin Beach: vesnice, která začala před zákonem