162012–2014

Trezor: klucze od Bitcoinu w kieszonkowym komputerze

Marek Palatinus i Pavol Rusnák szukali sposobu, aby podpisywać transakcje na komputerze, któremu nie trzeba było ufać z private key. Z prototypu w praskim hackerspace powstała pierwsza generacja portfeli sprzętowych.

Wczesne portfele bitcoinowe stawiały użytkowników przed nieprzyjemnym wyborem. Klucze prywatne można było przechowywać na komputerze podłączonym do internetu i liczyć, że nie zostaną zhakowane przez malware, lub ukryć je tak starannie, że nie będzie można z nich wygodnie korzystać. Marek „Slush” Palatinus i Pavol „Stick” Rusnák szukali trzeciej drogi: mały, jednopurpose komputer, który nigdy nie wyda klucza, ale na żądanie poprawnie wyświetli transakcję. Pierwsze prototypy powstawały w praskim hackerspace Brmlab na Raspberry Pi. 29 lipca 2014 roku rozpoczęto sprzedaż Trezora Model One. Urządzenie nie uczyniło procesu przechowywania bezbłędnym, ale przeniosło jego najbardziej wrażliwą część z zwykłego komputera do przedmiotu, który użytkownik mógł trzymać, kontrolować i tworzyć kopie zapasowe.

01

Problemem nie był Bitcoin, ale komputer wokół niego

Bitcoin daje właścicielowi możliwość kontrolowania monet podpisem bez zgody banku. Ta sama właściwość zmienia jednak utratę klucza w ostateczną stratę. Jeśli malware skopiuje klucz prywatny, może utworzyć poprawną transakcję, a sieć nie ma systemu reklamacyjnego, który mógłby ją cofnąć. Zwykły domowy komputer uruchamia przeglądarkę, e-mail, dokumenty i programy z wielu źródeł.

Wczesne instrukcje oferowały portfele papierowe, dyski zaszyfrowane lub komputery odłączone od sieci. Te rozwiązania mogły zmniejszyć powierzchnię ataku, ale zwiększały wymagania dotyczące poprawnego tworzenia, tworzenia kopii zapasowych i podpisywania. Historie Jamesa Howellsa i Stefana Thomasa pokazały odwrotną granicę: tajemnice można chronić tak skutecznie, że nawet ich właściciel nie ma do nich dostępu.

Palatinus wiedział już, z czym wiąże się prowadzenie Mining Pool i jakie ryzyko niosą internetowe usługi bitcoinowe. Razem z Rusnákiem szukał odpowiedzi na praktyczne pytanie: jak oddzielić klucz podpisujący od komputera, który może zostać zaatakowany, nie zmieniając każdej płatności w skomplikowane zadanie techniczne? Użytkownik nadal przygotowywałby transakcję w portfelu na komputerze, lecz zatwierdzałby ją na osobnym urządzeniu.

W ten sposób powstał princip portfela sprzętowego. Komputer hosta wysyła urządzeniu niepodpisane dane. Urządzenie wywnioskowuje potrzebny klucz, wyświetla osobie istotne dane i po potwierdzeniu zwraca podpis. Materiał prywatny pozostaje wewnątrz. Zainfekowany komputer może kłamać, dlatego własny wyświetlacz i fizyczne potwierdzenie są częścią modelu bezpieczeństwa, a nie ozdobą projektową.

Cel nie polegał na usunięciu zaufania do wszelkiego sprzętu i oprogramowania. Był skromniejszy i praktyczny: zmniejszyć ilość kodu i sytuacji, w których tajny klucz jest narażony. Urządzenie jednopurpose może być dokładniej kontrolowane niż cały laptop, a jego ograniczone interfejs daje użytkownikowi szansę poznać, co tak naprawdę podpisywał.

Zwykły komputer musi jednocześnie przeglądać internet, otwierać załączniki, instalować sterowniki i uruchamiać tysiące fragmentów kodu niezwiązanych z Bitcoinem. Każdy z nich rozszerza przestrzeń, w której atakujący może czekać na moment podpisu. Urządzenie jednofunkcyjne nie zniesie tego świata, ale odizoluje najbardziej wrażliwą operację od jego chaosu. Transakcja jest przygotowywana na zewnątrz, podpisywana wewnątrz, a klucz prywatny nie powinien opuszczać urządzenia. Sens wyświetlacza i przycisków polega na tym, że dają użytkownikowi niezależny kanał: komputer może twierdzić, że to jedna adresa, ale decydujące potwierdzenie odbywa się na ekranie, nad którym kontrolę sprawuje sam portfel.

02

Brmlab, Raspberry Pi i dwa przyciski

Pierwsze próby nie wyglądały jak późniejszy produkt konsumencki. W Brmlabie Palatinus i Rusnák budowali karty rozszerzeń do Raspberry Pi, dodawali mały wyświetlacz, przyciski i komunikację USB. Potrzebowali zweryfikować, że cały proces może działać: urządzenie bezpiecznie tworzy klucze, wyświetla żądanie i podpisywało bez ich ujawniania.

Hackerspace zapewnił środowisko, w którym sprzęt i oprogramowanie mogły być modyfikowane jednocześnie. Błąd w układzie przycisków nie był oddzielony od błędu w protokole; oba mogły prowadzić użytkownika do zatwierdzenia czegoś innego, niż zamierzał. Używalność nie była ostatnią warstwą nad kryptografią. Była warunkiem, aby kryptografia chroniła rzeczywistą osobę.

Dwa przyciski wyrażały ważną granicę. Komputer mógł poprosić urządzenie o podpis, ale ostateczne potwierdzenie musiało przyjść fizycznie. Wyświetlacz tworzył z kolei drugi kanał, na którym można było sprawdzić adres i kwotę. Jeśli zainfekowany laptop zmienił odbiorcę, poprawnie użyty Trezor miał pokazać sprzeczność.

Z prototypu powstała firma SatoshiLabs. Deweloperzy musieli rozwiązać problemy z produkcją, oprogramowaniem, aktualizacjami, kompatybilnością portfeli oraz wsparciem dla ludzi, którzy nie wiedzieli nic o hierarchicznych kluczach. Przejście od karty w hackerspace do produktu oznaczało, że myśl bezpieczeństwa musi być opanowana nie tylko przez jej autorów, ale także przez osobę otwierającą pudełko w domu.

Trezor nazywa siebie pierwszym portfelem sprzętowym na świecie. Dokładniej jest to pierwszeństwo przypisać producentowi i konkretnemu produktowi: urządzeniu komercyjnemu o przeznaczeniu jedno-purpose do przechowywania kluczy i zatwierdzania transakcji bitcoinowych. Historia tokenów bezpieczeństwa jest szersza, ale Model One stworzył kategorię, którą rynek bitcoinowy zaczął naśladować.

03

Urządzenie, które można było odzyskać z słów

Trezor Model One został oficjalnie wprowadzony 29 lipca 2014 roku. Mały wyświetlacz, dwa przyciski i kabel USB ukrywały istotniejszą zmianę: portfel nie musiał być już tożsamy z jednym kusem sprzętu. Jeśli urządzenie zostało zgubione lub zniszczone, użytkownik mógł odzyskać klucze ze zbioru słów.

Marek Palatinus i Pavol Rusnák są współautorami BIP 39. Propozycja opisuje, jak zapisać losowo wygenerowane dane w postaci listy słów i wyprowadzić z niej seed portfela. Seed Phrase umożliwiła zapisanie podstawy wielu kluczy w jednej kopii zapasowej zamiast kopiowania każdego klucza osobno. Jeśli użytkownik korzysta również z passphrase, potrzebuje jej także do odtworzenia portfela. Wygodniejsza kopia ma drugą stronę: każdy, kto zdobędzie potrzebne tajne dane, może odtworzyć portfel.

BIP 44 opisał dalej hierarchię celów, walut i kont nad portfelem deterministycznym. Standardy umożliwiły, aby oprogramowanie kompatybilne z jednego seedu mogło ponownie znaleźć tę samą strukturę adresów. Odzyskiwanie stało się bardziej używalne, ale także zależne od poprawnego zrozumienia pochodzenia i wsparcia poszczególnych aplikacji.

Urządzenie chroniło klucz podczas normalnego użytkowania, podczas gdy papierowa lub metalowa kopia zapasowa chroniła możliwość odzyskania. Bez kopii zapasowej zniszczone urządzenie Trezor mogło oznaczać stratę. Z ujawnioną kopią zapasową atakujący mógł ominąć urządzenie całkowicie. Bezpieczeństwo nie przestało opierać się na człowieku; po prostu dostało jaśniejszy podział ról.

Ten model pomógł rozszerzyć własne przechowywanie poza wąski krąg techników. Użytkownik mógł trzymać długoterminowe środki i jednocześnie sporadycznie podpisywać transakcje bez importowania seedu do komputera online. Produkt nie uprościł Bitcoinów, ukrywając odpowiedzialność. Starał się ją zorganizować w kroki, które można rozumnie wykonać.

04

Trezor nie jest monetą ani ubezpieczeniem

Portfel sprzętowy nie przechowuje bitcoinów jak monety w sejfie. Przechowuje tajemnice niezbędne do podpisywania transferów wpisanych do blockchainu. Kiedy użytkownik zniszczy urządzenie, ale ma poprawny seed, może odzyskać środki. Kiedy seed trafia do obcej osoby, może przenieść środki bez oryginalnego urządzenia.

Własny wyświetlacz nie pomoże, jeśli osoba nie czyta danych. Podrabiana aplikacja może wyświetlić poprawny adres na komputerze i wysłać inny do urządzenia; obrona działa dopiero wtedy, gdy użytkownik porówna adres na zaufanym wyświetlaczu. Element bezpieczeństwa jest ofertą kontroli, a nie automatyczną gwarancją poprawnej decyzji.

Producent i społeczność nadal muszą usuwać błędy firmware, dbać o bezpieczeństwo łańcucha dostaw oraz aktualizacje. Otwarty kod pozwala sprawdzić, jak działa urządzenie; nie oznacza to jednak, że każdy właściciel musi sam analizować go linijka po linijce. Self-Custody opiera się również na sposobie korzystania z urządzenia i zaufaniu do wybranych narzędzi. Sprzęt przejął część pracy, ale odpowiedzialność użytkownika pozostała.

Historia Trezora pokazuje inne podejście niż opowieści o zgubionych dyskach i zapomnianych hasłach. Jego twórcy nie zakładali, że ludzie przestaną popełniać błędy. Szukali narzędzia, które pomoże niektórym błędom zapobiec, a inne dostrzec na czas. Korzystanie z niego oznacza jednak również obowiązki: zapisanie słów odzyskiwania, ochronę tej kopii zapasowej przed pożarem i cudzym wzrokiem oraz przećwiczenie odzyskiwania portfela, zanim nastąpi sytuacja awaryjna.

Z deski w praskim hackerspace powstał produkt globalny, ponieważ rozwiązywał problem, który rosł wraz z wartością sieci. Im więcej było do chronienia, tym mniej akceptowalny był wybór między kluczem online a niewygodnym archiwum. Trezor nie usunął ryzyka klucza prywatnego. Dał mu fizyczne interfejs, na którym osoba może wykonywać swoją odpowiedzialność.

Ten podział odpowiedzialności ma również trudniejszą stronę. Producent może opublikować projekt i poprawki, ale nie może za użytkownika bezpiecznie przechować słów odzyskiwania, sprawdzić każdego adresu ani rozpoznać każdego oszukańczego żądania podania tych słów. Urządzenie chroni konkretny etap procesu. Bezpieczeństwo zależy od całości: zweryfikowanego sprzętu, godnego zaufania oprogramowania, fizycznej kopii zapasowej i uważnego człowieka. Trezor nie zwalnia więc z potrzeby zrozumienia, co oznacza samodzielne przechowywanie kluczy. Przekłada abstrakcyjną odpowiedzialność kryptograficzną na kilka widocznych czynności, podczas których łatwiej zauważyć błąd, zanim stanie się nieodwracalny.

Atlas

Postacie i pojęcia w Atlasie

CZ·02TrezorSLUSHMarek „Slush” PalatinusSTICKPavol „Stick” RusnákCZ·01SatoshiLabsHWHardware WalletKEYPrivate KeySEEDSeed PhraseKEYSSamodzielne przechowywanie bitcoinów
  1. 01
    Trezor — Dziesięć lat pionierskich

    Nazwiska założycieli, Brmlab, prototypy na Raspberry Pi i data wprowadzenia Model One.

  2. 02
    Trezor — O Trezor

    Czasowa oś wydarzeń, powstania, BIP 39, BIP 44 i produktu Model One.

  3. 03
    BIP 39 — Kod mnemonowy do generowania deterministycznych kluczy

    Specyfikacja techniczna słów odzyskiwania, jej zakres i granice bezpieczeństwa.

  4. 04
    BIP 44 — Hierarchia wielu kont dla portfeli deterministycznych

    Specyfikacja techniczna hierarchii kont, której autorami są Marek Palatinus i Pavol Rusnák.

Następna historia · 17Bitcoin Beach: wieś, która zaczęła przed prawem