13/01/2019

Jak zhakować sprzętowy portfel kryptowalutowy

Technologie

Portfele sprzętowe są uważane za najbezpieczniejsze portfele do przechowywania kryptowalut. Jednak biorąc pod uwagę, że nic nie jest w 100% bezpieczne, i je można zhakować. Podczas 35 edycji konferencji Chaos Communication Congress badacze bezpieczeństwa Thomas Roth, Dmitrij Nedospasow i Josh Datko zaprezentowali, w jaki sposób może się to wydarzyć. Jednak zanim przejdziemy do tematu włamywania się do nich, pokrótce omówimy, co to jest portfel sprzętowy i jak działa.

Co to jest portfel kryptowalutowy?

Najpierw powiemy ogólnie, czym jest portfel kryptowalutowy. Mówiąc w skrócie, portfel to konto, na którym są przechowywane kryptowaluty, które składa się z pary kluczy kryptograficznych: jednego publicznego i jednego prywatnego. Klucze te przypominają parę login-hasło: klucz publiczny to adres portfela, a klucz prywatny jest używany do uzyskiwania dostępu do monet — czyli do podpisywania transakcji wychodzących.

Warto wspomnieć również, w jaki sposób systemy kryptowalutowe generują pary kluczy publiczny-prywatny dla wielu portfeli należących do tej samej osoby. Przechowywanie kilku całkowicie niezależnie wygenerowanych par kluczy może nie być wygodne, dlatego systemy kryptowalutowe generują wartość początkową, czyli ciąg słów (zwany ziarnem kryptograficznym, ang. seed), z którego w przewidywalny sposób pobierane są pary kluczy publiczno-prywatnych dla wielu portfeli.

To właśnie tę jedną dużą liczbę — ziarno kryptograficzne — w rzeczywistości przechowuje użytkownik systemu kryptowalutowego.

Inaczej niż w przypadku tradycyjnych systemów finansowych, kryptowaluty nie podlegają scentralizowanemu organowi, nie mają mechanizmów rejestracyjnych, ubezpieczenia od obciążenia zwrotnego ani opcji przywracania konta. Każdy, kto posiada ziarno kryptograficzne, z którego generowane są klucze, posiada odpowiedni portfel kryptowalutowy. Jeśli ziarno to zostanie zgubione lub skradzione, pieniądze z portfela również znikną.

Oficjalnie portfel to para kluczy publiczny-prywatny, jednak przeważnie termin ten określa sposób przechowywania tych kluczy. Z kolei portfel sprzętowy to urządzenie, które przechowuje portfele kryptowalutowe.

Do czego potrzebne są sprzętowe portfele kryptowalutowe?

Warto odpowiednio zadbać o bezpieczeństwo ziarna. Można je przechowywać na wiele sposobów, a każdy z nich ma swoje zalety i wady. Najwygodniejszym sposobem jest przechowywanie go w swoim komputerze lub smartfonie lub w internecie. Jednak szkodliwe oprogramowanie czyhające na portfele kryptowalutowe wcale nie należy do rzadkości. Jeśli zaś chodzi o internetowe usługi portfeli, mogą one zostać zhakowane, a nawet zbankrutować, a wtedy wiele monet zniknie.

Oprócz tego portfele są narażone na wiele innych zagrożeń typu phishing, podmiana informacji związanych z płatnością, utrata wynikająca z awarii sprzętu itd. Często ludzie decydują się na skorzystanie ze sprzętowego portfela do przechowywania kryptowalut, czyli specjalnego urządzenia przeznaczonego do niezawodnego i bezpiecznego przechowywania ziaren kryptograficznych.

Jak działają sprzętowe portfele kryptowalutowe

Głównym zadaniem sprzętowych portfeli kryptowalutowych jest przechowywanie ziaren kryptograficznych w taki sposób, aby nigdy nie opuszczały one urządzenia. Wszystko, co jest związane z szyfrowaniem, odbywa się wewnątrz portfela, a nie na komputerze, z którym jest on połączony. W ten sposób nawet jeśli komputer zostanie zhakowany, atakujący nie będą w stanie ukraść kluczy.

Ponadto dobrze jest zabezpieczyć dostęp, np. poprzez zablokowanie urządzenia kodem PIN. Wygodną opcją jest możliwość potwierdzania lub odrzucania danej transakcji bezpośrednio na urządzeniu.

Zwykle sprzętowy portfel kryptowalutowy jest relatywnie małym urządzeniem ze złączem USB, które ma wyświetlacz i kilka przycisków służących do wprowadzania kodu PIN i potwierdzenia transakcji.

Jednak sposób działania takich urządzeń nie jest taki sam. Na przykład dwóch najpopularniejszych producentów portfeli sprzętowych — Trezor i Ledger — stosuje zupełnie odmienne podejście do konstrukcji sprzętu.

Podejście firmy Ledger: ziarno kryptograficzne jest przechowywane w czipie Secure Element

Urządzenia tej firmy, czyli Ledger Nano S i Ledger Blue, mają dwa chipy:

  • Pierwszy to Secure Element, czyli mikrokontroler służący do przechowywania wrażliwych danych kryptograficznych. Czipy te są używane w kartach SIM, w kartach bankowych z chipem i kodem PIN oraz w smartfonach obsługujących system Samsung Pay i Apple Pay.
  • Drugim czipem jest mikrokontroler ogólnego zastosowania, który jest odpowiedzialny za wykonywanie zadań peryferyjnych: utrzymanie połączenia USB, sterowanie wyświetlaczem i przyciskami itp. W efekcie działa on jak pośrednik między Secure Element a całą resztą (w tym użytkownikiem). Na przykład za każdym razem, gdy użytkownik musi potwierdzić transakcję, korzysta z mikrokontrolera ogólnego zastosowania, a nie czipu Secure Element.

Jednak przechowywanie ziaren kryptograficznych w chronionym czipie nie sprawia, że urządzenie firmy Ledger jest całkowicie bezpieczne. Mimo że bardzo trudno jest włamać się bezpośrednio do czipu Secure Element i ukraść ziarno kryptograficzne, stosunkowo łatwo jest zhakować mikrokontroler ogólnego zastosowania, a tym samym portfel sprzętowy urządzenia, aby potwierdzić transakcję atakującego.

Badacze wzięli na warsztat oprogramowanie urządzenia Ledger Nano S i odkryli, że jeśli w określonym adresie pamięci zostanie zapisana określona wartość, można podmienić jego oprogramowanie na zhakowaną wersję. Chociaż wspomniany adres pamięci znajduje się na czarnej liście, co ma uniemożliwiać zapisanie go, mikrokontroler urządzenia obsługuje ponowne mapowanie pamięci, dzięki czemu można uzyskać do niego dostęp. Badacze wykorzystali tę funkcję i umieścili na urządzeniu Nano S zmodyfikowane oprogramowanie. Dla celów demonstracyjnych zmodyfikowane oprogramowanie zawierało grę Wąż, jednak w innych przypadkach mogłoby na przykład zawierać szkodliwy moduł, który zmienia adres portfela we wszystkich transakcjach wychodzących.

Innym sposobem włamania się do portfela sprzętowego jest użycie implantu sprzętowego. Badacz Josh Datko umieścił w urządzeniu Ledger Nano S tani implant uruchamiany drogą radiową, który po otrzymaniu w sposób zdalny szkodliwego polecenia wciska przycisk służący do potwierdzania. Prawdopodobnie sposób ten działa również w każdym innym portfelu sprzętowym. Badacz wybrał urządzenie Ledger Nano S, ponieważ jest ono jednym z najmniejszych, a przez to stanowi największe wyzwanie dla opisanego ataku fizycznego.

Innym urządzeniem tego samego producenta jest Ledger Blue, które okazało się podatne na ataki z użyciem kanałów bocznych. Ledger Blue to portfel sprzętowy z dużym wyświetlaczem i dużą baterią. Jego płytka obwodowa zawiera błąd konstrukcyjny, dzięki któremu wyciekają sygnały radiowe o różnej częstotliwości, gdy użytkownik wprowadza kod PIN. Badacze zarejestrowali te sygnały i wytrenowali algorytm uczenia maszynowego, aby rozpoznawał je z 90% dokładnością.

Podejście firmy Trezor: ziarno kryptograficzne jest przechowywane w pamięci flash mikrokontrolera o ogólnym zastosowaniu

Urządzenia firmy Trezor działają nieco inaczej. Nie używają one czipu Secure Element, więc wszystkim, co znajduje się na urządzeniu, steruje mikrokontroler zastosowania ogólnego oparty na architekturze ARM. Czip ten jest odpowiedzialny zarówno za przechowywanie i przetwarzanie danych kryptograficznych, jak i zarządzanie połączeniem USB, wyświetlaczem, przyciskami itd.

Teoretycznie takie podejście konstrukcyjne mogłoby ułatwić hakowanie oprogramowania układowego urządzenia i uzyskania dostępu do ziarna kartograficznego przechowywanego w pamięci flash mikrokontrolera. Jednak, jak twierdzą badacze, firma Trezor naprawdę postarała się i odpowiednio zabezpieczyła oprogramowanie układowe. Wobec tego postanowili oni spróbować zhakować sprzęt — i odnieśli sukces.

Korzystając z odpowiedniej techniki hakowania polegającej na manipulowaniu napięciem (ang. voltage glitching), przełączyli oni czip w urządzeniu One marki Trezor ze stanu „brak dostępu” na „dostęp częściowy”. Zabieg ten umożliwił im odczytanie pamięci RAM, ale nie pamięci flash. Następnie odkryli, że gdy zostanie uruchomiony proces aktualizacji oprogramowania układowego, chip umieszcza ziarno kryptograficzne w pamięci RAM, aby go zachować, gdy pamięć flash jest nadpisywania. W ten sposób udało im się poznać całą zawartość pamięci. Znalezienie ziarna kryptograficznego nie było trudne: było ono przechowywane w pamięci RAM w postaci niezaszyfrowanej, jako fraza mnemoniczna (użyte były rzeczywiste słowa zamiast losowych liczb), którą łatwo dostrzec.

Zrzut pamięci zawiera ziarno kryptograficzne w postaci frazy mnemonicznej i kodu PIN (w tym przypadku jest to 1234), przechowywane w postaci tekstowej

Podsumowanie

Muszę przyznać, że większość włamań, jakie opisał Thomas Roth, Dmitry Nedospasov i Josh Datko, jest dosyć wyrafinowana i wymaga fizycznego dostępu do urządzenia. Dlatego nie wyrzucaj jeszcze swojego urządzenia marki Ledger lub Tresor. Dopóki nikt nie ma do niego dostępu, Twoje bitcoiny są bezpieczne.

Niemniej jednak warto pamiętać o istnieniu takich ataków łańcucha dostaw. Portfele sprzętowe są na nie stosunkowo podatne i mogą zostać zhakowane przed zakupem. Oczywiście to samo dotyczy zwykłych laptopów czy smartfonów. Chociaż atakujący nie mają pewności, czy konkretny laptop jest używany do przechowywania kryptowaluty, portfele sprzętowe w tej kwestii to pewniak.

Producenci portfeli sprzętowych próbują rozwiązać ten problem, na przykład poprzez używanie naklejek bezpieczeństwa na opakowaniach urządzeń i tworzenie w swoich witrynach stron, dzięki którym klienci mogą sprawdzić bezpieczeństwo portfeli przez internet. Jednak zabezpieczenia te mogą nie być wystarczające, a nawet mogą wprowadzać w błąd.

Tak czy inaczej, odmiennie niż w przypadku innych portfeli sprzętowych urządzenia firmy Ledger i Trezor zostały zaprojektowane pod kątem bezpieczeństwa. Nie wolno zakładać, że są w 100% bezpieczne, a więc warto podjąć kilka kroków, aby chronić swoją kryptofortunę:

  • Sprzętowe portfele kryptowalutowe kupuj tylko od zaufanych producentów.
  • Podczas zakupu dokładnie sprawdzaj, czy nie istnieją jakiekolwiek oznaki manipulacji.
  • Aby mieć większą pewność, otwórz urządzenie i upewnij się, że płytka drukowana nie zawiera żadnych dodatkowych elementów.
  • Przechowuj swój kryptoportfel w bezpiecznym miejscu i nie pozwalaj, aby ktoś inny uzyskiwał do niego dostęp.
  • Zabezpiecz swój komputer, z którego uzyskujesz dostęp do kryptowalut, przy użyciu niezawodnego oprogramowania bezpieczeństwa. Duża część opisanych wyżej włamań wymaga zainstalowania szkodliwego oprogramowania na komputerze, z którym jest połączony portfel sprzętowy.

Dodatkowe porady związane ze sprzętem firmy Trezor:

  • Trezor to platforma z otwartym kodem źródłowym, zarówno w kwestii oprogramowanie, jak i sprzętu. Jeśli masz wystarczające umiejętności w dziedzinie elektroniki, spróbuj zbudować własny portfel sprzętowy przy użyciu gotowych komponentów. W ten sposób będziesz mieć stuprocentową pewność, że nikt nie majstrował przy części sprzętowej portfela.
  • Urządzenia marki Trezor zapewniają dodatkową ochronę przy użyciu hasła w celu ochrony przed próbami zdobycia ziarna (celem tego trybu jest przechowywanie ziarna w sposób niekompletny bez hasła). Rozważ korzystanie z tego trybu.

Poniżej znajdziesz całe wystąpienie — jest nie tylko ciekawe, ale i przydatne dla użytkowników portfeli sprzętowych.