Artykuł 1 z 125 min czytania

Załóż, że komputer jest przejęty

Większość kradzieży kryptowalut nie wymaga łamania kryptografii. Zaczyna się na zwykłym komputerze. AirNox Wallet jest zaprojektowany właśnie dla takiego komputera i działa przy założeniu, że ten komputer jest już stracony.

Strefa online z laptopem, który nie przechowuje kluczy, i zagrożeniami wokół niego, air gap oraz telefon offline z frazą seed
Wszystko po lewej może zostać zainfekowane. Klucze są po prawej.
Spis treści

Zagrożeniem jest maszyna, nie matematyka

Pomyśl, jak w praktyce środki wychodzą z portfela. Pakiet w narzędziach programisty przemyca coś ekstra. Rozszerzenie przeglądarki (browser extension) dostaje aktualizację, której nikt nie przeczytał. Dokument wcale nie jest dokumentem. Strona internetowa pokazuje jedną transakcję, a prosi o podpisanie innej. Narzędzie do obsługi schowka (clipboard) podmienia adres chwilę przed tym, jak go wkleisz.

Żaden z tych ataków nie dotyka kryptografii. Każdy potrzebuje tego samego: klucza prywatnego (private key) albo twojej zgody na maszynie podłączonej do internetu. Celem jest komputer, bo to na nim leży klucz.

Dlatego pierwsza decyzja projektowa w AirNox Wallet jest prosta: klucza ma tam nie być.

Klucze poza komputerem

AirNox Wallet działa na komputerze. Sam w sobie to kompletny, natywny portfel z frazą seed zapieczętowaną w sejfie i to solidna konfiguracja do codziennych operacji. W trybie AirGap idzie o krok dalej: nigdy nie przechowuje klucza, który może ruszyć twoje środki. Ma tylko te adresy, które mu udostępnisz. Z nimi robi wszystko, co portfel robi online: komunikuje się z siecią, odczytuje salda i historię, buduje niepodpisane transakcje, sprawdza je i wysyła do sieci wszystko, co wróci podpisane.

Podpisywanie odbywa się w AirNox Vault – aplikacji na telefonie z Androidem, który nigdy nie łączy się z internetem. To ona przechowuje frazy seed. Dekoduje każde żądanie z bajtów, które za chwilę podpisze, pokazuje operację, kwotę, strony i sieć, a podpisuje dopiero wtedy, gdy naciśniesz Accept (Akceptuj).

Między nimi jest air gap, czyli fizyczna izolacja od sieci. Telefon nie ma żadnej drogi do internetu, a jedyne, co kiedykolwiek przez niego przechodzi, to żądanie w jedną stronę i podpis z powrotem.

dApp, rozszerzenie, AirNox Wallet, air gap i AirNox Vault; żądanie idzie w prawo, a z powrotem wraca tylko podpis
Trzy etapy. Klucze tylko na jednym z nich, i to na tym, który jest offline.

Co dzieje się na każdym etapie

Żądanie może wyjść ze strony internetowej, z samego portfela albo od agenta AI podłączonego do portfela. Skądkolwiek wychodzi, pokonuje tę samą drogę.

Rozszerzenie przeglądarki obsługuje standardowe interfejsy portfeli, których oczekują strony. Nie ma kluczy i niczego nie podpisuje. Przekazuje żądanie lokalnym kanałem do portfela na komputerze.

Komputer dekoduje żądanie i je sprawdza. Rozpoznaje standardowe operacje, oznacza wszystko, co tylko je przypomina, kontroluje zgody na wydatkowanie (allowances) oraz adresy, którym je przyznano (spender), po czym buduje niepodpisaną transakcję. Następnie przekazuje ją telefonowi przez kody QR, Bluetooth LE lub NFC.

Telefon dekoduje żądanie jeszcze raz, z dokładnie tych bajtów, które podpisze, i pokazuje ci je prostymi słowami. Opis żądania od komputera to deklaracja. Widok na telefonie to prawda. Czytasz i naciskasz Accept albo nie. Z powrotem wraca tylko podpis.

To, gdzie jest klucz, decyduje o tym, co może malware

AirNox daje dwa poziomy ochrony. Najlepiej widać je na tle najsłabszej popularnej konfiguracji: klasycznego portfela działającego jako rozszerzenie przeglądarki.

Macierz ośmiu ataków na trzy konfiguracje: portfel w rozszerzeniu przeglądarki, AirNox Wallet na komputerze i AirNox Vault, z oznaczeniami: narażony, ryzyko ograniczone, chroniony
Rozszerzenie jest narażone na każdy ruch. Natywny portfel desktopowy zamyka prawie wszystkie z nich. AirGap zamyka resztę.

Klasyczny portfel w rozszerzeniu działa wewnątrz najbardziej narażonego programu na komputerze. Jego sekrety chroni szyfrowanie, które nowoczesne karty graficzne łamią masowo metodą brute force. Może do niego dotrzeć kod wstrzyknięty do strony, a widzi go wszystko, co przechwytuje obraz ekranu. Do tego ma trackery i reklamy, nie chroni przed podmienionym adresem i przez cały dzień zjada zasoby.

AirNox Wallet na komputerze to program innego rodzaju i potrafi się bronić. To natywny C++: nie ma silnika skryptów, do którego można coś wstrzyknąć, ani strony, którą można zatruć. Fraza seed leży w pamięci tylko tak długo, jak jest potrzebna, i zaraz potem jest wymazywana. Portfel pilnuje procesów wokół siebie i bibliotek, które są do niego ładowane, więc obcy kod nie działa w nim niezauważony. Każde żądanie jest dekodowane i sprawdzane, więc zatwierdzasz (approve) dokładnie to, co widzisz. Schowek jest obserwowany pod kątem podmienionego adresu, a okna portfela nie pokazują się na zrzutach ekranu. Zapisane sekrety zabezpiecza pamięciochłonnym (memory-hard) algorytmem Argon2id i wiąże z układem TPM 2.0 w komputerze, a na to karty graficzne nie znają skrótu. Trackerów nie ma wcale. Do codziennych operacji to solidny wybór sam w sobie, a każda funkcja bezpieczeństwa opisana w tej serii działa w nim niezależnie od tego, czy w grę wchodzi telefon.

AirGap to najwyższa warstwa ochrony, położona na wierzchu. Wszystko, co opisane powyżej, nadal obowiązuje, a fraza seed przenosi się na telefon offline. Nawet atakujący, który kontroluje cały system operacyjny, nie znajdzie na komputerze nic do skopiowania ani sposobu, żeby zmienić ekran, na którym zapada ostateczna decyzja. Podmiana odbiorcy to jedyny ruch, który wszędzie pozostaje częściowo otwarty, bo zatruwanie adresów (address poisoning) celuje w twoje oczy, a nie w oprogramowanie. Od wyłapywania tego są obrazki adresów na obu urządzeniach.

Czego to nie naprawia

Urządzenie podpisujące (signer) offline pokazuje ci prawdę o tym, co podpisujesz. Nie powstrzyma cię przed zgodą. Kopia zapasowa frazy seed nadal jest twoją odpowiedzialnością – na papierze lub stali, a nie w menedżerze haseł. I żaden portfel nie ochroni cię przed kimś, kto zmusi cię do jego odblokowania. Wolimy sami powiedzieć ci o tych ograniczeniach, niż zostawić je tobie do odkrycia.

Dalsza część serii omawia elementy po kolei: dlaczego urządzeniem podpisującym jest telefon, który już masz, trzy drogi przez air gap, jak telefon pozostaje niewidzialny w eterze, dlaczego transport nigdy nie jest zaufany, co pokazuje ci telefon i jaki zapis prowadzi.

Cała seria

  1. Załóż, że komputer jest przejęty
  2. Mass Adoption Security: urządzeniem podpisującym jest telefon, który już masz
  3. Trzy drogi przez air gap: kody QR, Bluetooth LE i NFC
  4. Niewidzialny w eterze: urządzenie podpisujące, którego nie wykryje żaden skaner
  5. Transport nigdy nie jest zaufany
  6. Co pokazuje ci telefon: analiza transakcji na urządzeniu podpisującym
  7. Telefon prowadzi własny zapis
  8. Sejf na twoim komputerze: Argon2id i profil odporny na zgadywanie
  9. dAppy bez portfela w przeglądarce
  10. Serwer MCP z zasadami: agenci AI w granicach limitów
  11. Jeden chroniony portfel do wszystkiego
  12. Mały i natywny: C++, bez środowiska JavaScript, od stacji roboczej po Raspberry Pi

Dołącz do listy oczekujących

Zostaw adres e-mail, a wyślemy ci informacje o premierze. Nic więcej.