Keystone ma dla Państwa świetną wiadomość: firma przysięga, że nikt nie dotknął Państwa fraz seed. Zła wiadomość: zgubiła klucz główny, którym udowadniała autentyczność swoich portfeli, oddała napastnikom adresy domowe dziesiątek tysięcy klientów – a teraz z kamienną twarzą prosi, by uwierzyć jej na słowo, że cała reszta jest bezpiecznie zamknięta na cztery spusty.
26 października Keystone opublikowała komunikat o incydencie. Według wersji firmy 20 października zauważyła ona intruzów na swojej oficjalnej stronie: napastnik wszedł przez lukę w zewnętrznym narzędziu do monitorowania danych, podniósł swoje uprawnienia i wyniósł dwa trofea – bazę klientów z adresami dostaw oraz kryptograficzny klucz WebAuth, którym Keystone poświadcza autentyczność każdego swojego portfela.
Kto dokładnie złożył wizytę, które zewnętrzne narzędzie zostało złamane i ile tygodni czy miesięcy intruzi gościli w systemie przed 20 października – raport tego nie podaje. Za to z pewną dumą firma informuje, ile własnych urządzeń musi teraz trafić pod prasę przemysłową: 18 835 sztuk. Wysyłki z magazynu wstrzymano, ale przedsprzedaż przyszłej partii z „nowym kluczem” ruszyła natychmiast – prosi się Państwa jedynie o cierpliwość przez cztery do sześciu tygodni. I oczywiście o ponowne wpisanie adresu domowego.
Szczególny podziw budzi inżynierska ironia. Przez lata Keystone sprzedawała się jako złoty standard bezpieczeństwa „100% air-gapped”: bez Bluetooth, bez Wi-Fi, bez przesyłania danych przez USB – tylko kamera i kody QR, aby portfel nigdy i pod żadnym pozorem nie dotknął internetu. Bohatersko odcięto urządzeniu kabel, po czym do strony przykręcono zewnętrzny tracker, przez który przypadkowy napastnik dotarł aż do najcenniejszego sekretu fabrycznej weryfikacji. Musiała to być bardzo ważna metryka, którą tam monitorowano.
1. Czym jest ten „klucz główny” i dlaczego cały magazyn trafia do niszczarki
Weryfikacja autentyczności w Keystone jest prosta. Przy pierwszym uruchomieniu urządzenia otwierają Państwo oficjalną stronę weryfikacji, strona wyświetla kod QR, skanują go Państwo kamerą portfela, portfel zwraca ciąg cyfr, a Państwo wpisują go z powrotem na stronie. Jeśli się zgadza, ekran gratuluje posiadania „oryginalnego” urządzenia.
Zajrzyjmy do kodu źródłowego firmware’u Keystone 3, by zobaczyć, co dzieje się za kulisami. Kod QR zawiera wartość kontrolną zaszyfrowaną RSA i podpisaną kluczem Keystone. Portfel sprawdza podpis i odszyfrowuje wartość prywatnym kluczem RSA. W fabryce ten klucz jest zapisywany w pamięci jednokrotnie programowalnej (OTP) – standardowy firmware nie pozwala go nadpisać.
Innymi słowy, cała „weryfikacja autentyczności” dowodzi jednego jedynego faktu: urządzenie w Państwa rękach zna sekret. Nie „płytka została zmontowana w fabryce Keystone”, nie „w środku nie ma dodatkowego chipa”, nie „generator liczb losowych jest uczciwy”. Tylko „zna sekret”. Ten sam sekret, który – jak przyznaje sama firma – jest teraz w rękach napastników. Sama strona weryfikacji nadal działa jak w zegarku – po prostu teraz dowolna podróbka może zapalić upragniony zielony znaczek.
W komunikacie prasowym Keystone spieszy z uspokojeniem opinii publicznej: skradziony klucz nie uczestniczy w generowaniu frazy seed, wyprowadzaniu kluczy prywatnych ani podpisywaniu transakcji. Technicznie to szczera prawda – tyle że właśnie ten klucz przekonywał kupujących, że temu pudełku w ogóle można powierzyć frazę seed. Drobiazg.
Jeszcze ciekawszy jest szczegół, który wypłynął w opisie wymiany: wszystkie 18 835 portfeli w magazynie mają „stary” klucz, a następna partia dostanie „nowy”. Wynika z tego urocza konkluzja architektoniczna: zamiast indywidualnych certyfikatów dla każdego urządzenia Keystone najwyraźniej wybiła jeden wspólny sekret na całą partię. Oszczędność okazała się wzorcowa: wystarczy wyciek jednego klucza i nie ma konkretnych numerów seryjnych do unieważnienia – pod nóż idzie cały magazyn.
Co więcej, do wygenerowania weryfikacyjnego kodu QR strona potrzebowała jedynie publicznej połowy klucza. Tymczasem połowa prywatna, bez której nikt nie może odpowiedzieć na weryfikację w imieniu urządzenia, najwyraźniej leżała sobie wygodnie gdzieś, dokąd można było dotrzeć przez serwer WWW. Trzymanie klucza głównego do fabrycznej plomby pod wycieraczką sklepu internetowego to zupełnie nowy rozdział kryptografii.
2. Co można teraz zrobić z tym kluczem
Główny scenariusz ataku Keystone opisuje sama: mając wykradziony sekret, przestępcy mogą masowo produkować fałszywe portfele, które bez problemu przejdą oficjalną weryfikację autentyczności na stronie, sprzedawać je przez pośredników lub jako używane – a następnie opróżniać salda kupujących. Na razie nie zgłoszono podróbek w obiegu.
Aby okraść właściciela, podróbka nie potrzebuje ani oryginalnego firmware’u Keystone, ani fabrycznego klucza do podpisywania kodu (który według zapewnień firmy nie ucierpiał). W podobnej plastikowej obudowie może siedzieć dowolna tania płytka, która podczas konfiguracji podsunie Państwu 24-wyrazową frazę seed przygotowaną z góry przez złodziei. Skradziony sekret OTP potrzebny jest tej atrapie do jednego celu – poprawnie odpowiedzieć na pierwszy kod QR i uśpić czujność kupującego napisem „Verification Successful”.
Dlatego 18 835 gotowych portfeli idzie na złom. Ich pamięć jest jednokrotnie programowalna – klucza nie da się zaktualizować zdalnie. Odróżnienie przez stronę oryginalnego portfela ze „starym” kluczem od domowej repliki z tym samym kluczem jest teraz również niemożliwe. Ostatecznie jedynym narzędziem „rotacji kluczy” przewidzianym przez konstrukcję okazała się przemysłowa niszczarka. Zniszczenie partii Keystone szumnie nazywa „kosztowną, ale słuszną decyzją” – choć w rzeczywistości jej własna architektura po prostu nie zostawiła jej innego wyboru.
3. Człowiek z nożem przy łóżku: kto mianował zhakowanych gwarantem?
Przyjrzyjmy się oficjalnym zaleceniom Keystone dla tych, którzy już kupili portfel:
- Urządzenie otrzymane przed 20 października, które przechodzi weryfikację – można go dalej używać, nie trzeba przenosić kryptowalut do innych portfeli.
- Urządzenie ze starym kluczem otrzymane po 20 października – nie używać, dopóki wsparcie (support@keyst.one) ręcznie nie potwierdzi jego autentyczności. Firma sama przyznaje się do bezradności: nawet jeśli taki portfel przejdzie weryfikację na stronie, nie jest już w stanie wykluczyć podróbki. Jak dokładnie kupujący mają ustalić, czy w ich portfelu jest „stary”, czy „nowy” klucz, Keystone według The Hacker News na 27 października zapomniała wyjaśnić. Czym wsparcie zastąpi skompromitowaną kryptografię, również pozostaje tajemnicą – zapewne będą wróżyć ze zdjęcia pudełka.
- Nie ma akcji wycofania. Nikt nie jest proszony o zwrot czegokolwiek, a wszelkie e-maile czy telefony w sprawie „wymiany portfela” lub „ratowania środków” uznano za oszustwo.
Cały ten poradnik ratunkowy opiera się na dacie 20 października. W odpowiedziach pod własnym wpisem przedstawiciele Keystone pewnie twierdzą, że klucz wyciekł 20 października. Tymczasem sam komunikat wskazuje 20 października jako dzień wykrycia włamania, a datę, w której napastnik po raz pierwszy uzyskał dostęp do systemu, skromnie pomija. Wszystkich, którym paczka dotarła 19., zachęca się do wiary w cudowny zbieg okoliczności: że haker włamał się, wyciągnął bazę razem z kluczem i został złapany na gorącym uczynku jednego dnia.
Ale zasadnicze pytanie jest tu jeszcze ostrzejsze: skąd sama Keystone w ogóle wie, co zostało skradzione, a co nie?
Proszę spojrzeć, kto odgrywa przed Państwem eksperta. Wszystkie te mantry – „klucz do podpisywania firmware’u jest bezpieczny”, „starsze urządzenia nie są zagrożone”, „za miesiąc wyślemy nową, bezpieczną partię” – pochodzą od firmy, którą właśnie wyczyszczono przez zewnętrzną wtyczkę na jej własnej stronie. Jeszcze wczoraj ci ludzie nie mieli pojęcia, że sprzed nosa wynosi się im główny sekret weryfikacji ich sprzętu. Przez dwa lata z rzędu nie zauważyli, że ich skrypt do usuwania adresów klientów nie działa. A dziś ci sami ludzie z poważną miną wystawiają Państwu odpust i biorą na siebie gwarancję, do których folderów haker zajrzał, a obok których szlachetnie przeszedł.
Kto dopuścił do wycieku, nie jest już gwarantem. Jeśli wczoraj nie wiedzieli o tym włamaniu, to skąd jutro dowiedzą się o następnym? Gdzie gwarancja, że „nowy klucz”, na który już zbierają zamówienia w przedsprzedaży, nie ucieknie kolejną dziurą, zanim linia montażowa wypluje pierwszy tysiąc pudełek?
4. Dwa lata fałszywych obietnic usuwania i 13 tysięcy osób, które nawet niczego nie kupiły
Skompromitowany klucz można przynajmniej wymienić w nowym sprzęcie. Państwa adresu domowego nie da się wydać ponownie na zamówienie.
Napastnicy wynieśli 25 964 rekordy klientów z oficjalnego sklepu Keystone na Shopify za lata 2024–2026: pełne imiona i nazwiska, numery telefonów, adresy e-mail, dokładne adresy dostaw do domu oraz zawartość i kwotę każdego zamówienia. Razem z nimi poszło kolejnych 12 873 nieopłaconych szkiców zamówień z imionami, telefonami i adresami. Innymi słowy, prawie trzynaście tysięcy osób nigdy nawet nie kupiło tego nieszczęsnego portfela – po prostu weszły na stronę, wpisały adres, by sprawdzić koszt wysyłki, rozmyśliły się i zamknęły kartę. A mimo to trafiły na wyciekłą listę posiadaczy kryptowalut.
Prawdziwe dno tej historii polega jednak na tym, że większość tych rekordów w ogóle nie powinna istnieć w bazie. Keystone oficjalnie obiecywała klientom usuwanie danych dostawy po 180 dniach. Ludzie zamawiali portfele sprzętowe na adres domowy, licząc, że ślad zniknie po pół roku. Gdy hakerzy wynieśli już bazę, nagle wyszło na jaw, że narzędzie do masowego usuwania w Shopify przez cały czas zgłaszało błędy, a w firmie nikt nawet nie sprawdził, czy usuwa się choćby jeden wiersz. Teraz Keystone bezradnie rozkłada ręce, obiecuje skrócić okres przechowywania do 90 dni i uroczyście przysięga usunąć stare archiwa do 3 listopada – zaraz po tym, jak napastnicy już je pobrali.
Jeśli firma przez dwa lata przysięgała, że usuwa Państwa dane, a w rzeczywistości gromadziła je w skarbonce dla hakerów, jej słowa zasługują na dokładnie zero zaufania. Proszę sobie wyobrazić, że budzą się Państwo w środku nocy i widzą bliską osobę stojącą nad łóżkiem z nożem w ręku. A ona spokojnie mówi: „Nie martw się, po prostu naszła mnie ochota, żeby tu postać z nożem. Może i chciałem cię dźgnąć, ale odwróć się na drugi bok i śpij dalej – przyjąłem ten incydent do wiadomości, przepracowałem go i akurat ten już nigdy się nie powtórzy”. Mniej więcej tak brzmią dziś obietnice Keystone, że będzie usuwać adresy po 90 dniach zamiast 180 i staranniej strzec następnego klucza głównego.
Co w praktyce oznacza wyciekła baza, nie trzeba chyba tłumaczyć. To gotowy spis adresów ludzi, którzy z całą pewnością mają w domu coś cennego – z pełnymi nazwiskami, telefonami i numerami mieszkań. Dla oszustów telefonicznych to rozmowa poparta prawdziwymi szczegółami zamówienia: jeden z kupujących już napisał w wątku Keystone, że dzwonili do niego oszuści, zwracając się do niego prawdziwym imieniem. Dla typujących mieszkania do włamań i miłośników „ataku kluczem francuskim za 5 dolarów” to gotowa mapa tras. Aby zarobić na skradzionym kluczu WebAuth, trzeba lutować fałszywe płytki i zorganizować dystrybucję. Aby zarobić na wyciekłej bazie z Shopify, wystarczy łom i bilet na pociąg.
5. Podsumowanie: cena „fabrycznej plomby”
Złóżmy całą konstrukcję. Kupującym sprzedaje się „w pełni air-gapped” portfel sprzętowy, który sam generuje frazę seed i podpisuje przelewy w zaplombowanym pudełku. Żeby nie bali się Państwo powierzyć temu pudełku oszczędności, producent proponuje sprawdzić jej autentyczność na stronie. W rzeczywistości weryfikacja opiera się na jednym wspólnym sekrecie dla całej partii magazynowej, a sam sekret leży gdzieś, dokąd można dotrzeć przez dziurawy zewnętrzny tracker na serwerze WWW.
Dalej jest jeszcze lepiej. Żeby cenne pudełko w ogóle do Państwa dotarło, zostawiają Państwo sklepowi nazwisko, telefon i adres domowy z obietnicą, że wpis zostanie usunięty po pół roku. Skrypt usuwający nie działa przez dwa lata, nikt tego nie zauważa, a całe archiwum razem z kluczem głównym weryfikacji odpływa do napastników. A kiedy katastrofa wychodzi na jaw, dokładnie ta sama firma, która przespała włamanie i przez dwa lata gromadziła Państwa adresy, wychodzi na mównicę i prosi, by uwierzyć jej na słowo, że pozostałe klucze są nietknięte, portfele sprzed 20 października są bezpieczne, a za miesiąc przyjdzie nowa, z pewnością niezawodna partia.
Keystone wysyła prawie 19 tysięcy własnych urządzeń pod prasę przemysłową po prostu dlatego, że nie potrafi już odróżnić własnych produktów od podróbek. Przy okazji 38 837 osób uzyskało stały pobyt w przestępczych bazach danych, wraz z dokładnymi adresami domowymi. Doskonała lekcja dla wszystkich, którzy wciąż wierzą, że ładny zielony znaczek na stronie producenta i napis „Air-Gapped” na pudełku mogą zastąpić prawdziwe bezpieczeństwo.