Artykuł 6 z 125 min czytania

Co pokazuje ci telefon: analiza transakcji na urządzeniu podpisującym

Większość kradzieży z portfeli odbywa się za zgodą właściciela. Strona pokazuje jedno, portfel podpisuje co innego, a właściciel kliknął Confirm (Potwierdź). Zadaniem telefonu jest dopilnować, żeby to, co widzisz, było tym, co podpisujesz.

Telefon dekodujący nielimitowaną zgodę na wydatkowanie dla nieznanego spendera, dwa ostrzeżenia wyciągnięte jako objaśnienia i mała karta pokazująca, że strona napisała tylko „Swap”
Żądanie takie, jakie jest naprawdę, a nie takie, jak opisała je strona.
Spis treści

Deklaracja i prawda

Kiedy strona internetowa prosi cię o podpisanie czegoś, mówi też, co to jest. „Wymień 1 ETH na USDC”. „Odbierz nagrodę”. „Zweryfikuj portfel”. Ten opis to deklaracja strony, a złośliwa strona może zadeklarować, co tylko chce. Bajty, które przekazuje portfelowi, to osobna sprawa – i tylko je kiedykolwiek zobaczy blockchain.

AirNox Vault ignoruje deklarację. Dekoduje żądanie z dokładnie tych bajtów, które za chwilę podpisze, na telefonie, własnym parserem, i pokazuje ci wynik. To, co o żądaniu mówi komputer, jest deklaracją. To, co pokazuje telefon, jest prawdą.

Po lewej strona mówi „Swap 1 ETH to USDC”; po prawej telefon dekoduje nielimitowaną zgodę na wydatkowanie dla nieznanego spendera
To samo żądanie, dwa opisy. Tylko jeden z nich wziął się z bajtów.

Metody standardowe telefon rozpoznaje

Większość tego, co podpisujesz, jest zwyczajna. Przelew. Zgoda na wydatkowanie (allowance) tokena. Swap przez znany router. Depozyt do kontraktu. Telefon rozpoznaje standardowe operacje każdej obsługiwanej rodziny blockchainów i pokazuje je prostymi słowami: jaka operacja, jaki token, ile, do kogo, w jakiej sieci i jaka jest maksymalna opłata. Przelew wygląda jak przelew. Zgoda na wydatkowanie wygląda jak zgoda na wydatkowanie, z wyraźnie wypisanym spenderem i kwotą.

Sobowtóry dostają oznaczenie

Niebezpieczne są żądania, które wyglądają zwyczajnie, a takie nie są. Metoda, której nazwa przypomina standardową, ale parametry do niej nie pasują. Wywołanie, które przekazuje kontrolę innemu kontraktowi w sposób niewidoczny w nagłówku. Cel, który nie jest tym kontraktem, z którym według strony się komunikuje. Token, którego symbol podszywa się pod dobrze znany. Adres odbiorcy, który ma takie same pierwsze i ostatnie znaki jak jeden z twoich.

Każdy z tych przypadków zostaje wykryty i zamieniony w ostrzeżenie. Telefon nie odmawia podpisania, bo decyzja należy do ciebie. Dba o to, żeby nie dało się tego przeoczyć.

Sześć ostrzeżeń: nielimitowana zgoda na wydatkowanie, nieznany spender, łudząco podobna metoda, token podszywający się pod inny, łudząco podobny odbiorca, ukryta delegacja
Ostrzeżenia, które telefon zgłasza, zanim pozwoli ci zaakceptować.

Ostrzeżenia

Nielimitowana zgoda na wydatkowanie to klasyczny ruch drainera: jeden approve, a potem tracisz wszystko, co masz w tym tokenie. Telefon pisze „nielimitowana” na czerwono i traktuje to jako ostrzeżenie.

Nieznany spender to zgoda na wydatkowanie dla adresu, za który nikt nie ręczy. Jeśli wycena swapu przyszła przez konkretny router, a approve wskazuje coś innego, ta niezgodność jest ostrzeżeniem.

Łudząco podobna metoda, symbol tokena podszywający się pod inny, łudząco podobny odbiorca i ukryta delegacja – każde z nich jest nazywane po imieniu. W przypadku odbiorców zarówno komputer, jak i telefon pokazują deterministyczny obrazek adresu, więc sobowtór, który w zapisie hex oszuka oko, na obrazku już go nie oszuka.

Najpierw potwierdź, potem Accept

Ostrzeżenie to nie wyskakujące okienko, które zamykasz odruchowo. Accept (Akceptuj) pozostaje nieaktywny, dopóki nie zaznaczysz każdego ostrzeżenia. Odrzucić możesz w każdej chwili. Zaakceptować – dopiero po potwierdzeniu tego, co znalazł telefon. Ta jedna decyzja projektowa zamienia „klikam bez czytania” w „przeczytane, świadomie idę dalej”, a to różnica między opróżnionym portfelem a decyzją.

Najpierw sprawdza komputer

Ta sama analiza działa na komputerze, zanim żądanie w ogóle go opuści, więc większość złych żądań zostaje oznaczona w oknie portfela, zanim dotrze do telefonu. Telefon powtarza analizę, bo komputer to maszyna, którą z założenia uważamy za przejętą. To dwa niezależne przebiegi na dwóch urządzeniach, a ostatnie słowo ma to, które trzyma klucze.

Czytanie to nadal twoje zadanie

Urządzenie podpisujące (signer), które pokazuje ci prawdę, nie powstrzyma cię przed zgodą na nią. Może za to sprawić, że prawdy nie da się przeoczyć: zdekodowanej z bajtów, napisanej prostymi słowami, z ryzykownymi fragmentami na czerwono i z bramką, przez którą trzeba przejść świadomie. Reszta zależy od ciebie, a teraz masz wszystko, czego potrzebujesz do decyzji.

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.