dApp senza un wallet nel browser
I siti web si aspettano un wallet nel browser. Il browser è il programma più esposto del computer. AirNox risolve la questione con un’estensione che per la pagina sembra un wallet e non contiene assolutamente niente.

In questa pagina
Un’estensione che non è un wallet
L’estensione browser (browser extension) di AirNox inietta le interfacce standard che le applicazioni decentralizzate cercano: EIP-1193 ed EIP-6963 per le reti EVM, TON Connect e i Wallet Standard di Solana e Sui. Per una pagina, è un wallet. Risponde nel modo consueto a «quali account», «quale chain», «per favore firma questo».
Dentro, è un corriere. Non contiene chiavi, non memorizza alcun seed e non può firmare niente. Ogni richiesta fatta da una pagina viene inoltrata ad AirNox Wallet sul desktop attraverso un canale esclusivamente locale, e la risposta torna indietro per la stessa strada. Se domani l’estensione venisse sostituita da una copia malevola, non avrebbe niente da rubare e niente con cui firmare.
Cosa non va in un classico wallet a estensione
Un classico wallet web3 vive interamente dentro il browser, chiavi comprese. Questo mette le chiavi nel programma più esposto del computer. Il codice iniettato in una pagina può raggiungere l’interfaccia dell’estensione. I segreti salvati sono protetti da una cifratura che le schede grafiche moderne violano a forza bruta (brute force) su larga scala. Molti si portano dietro tracker e pubblicità. Pochi offrono una qualche protezione contro un indirizzo destinatario sostituito. E per questo privilegio consumano memoria e tempo di processore tutto il giorno. AirNox riduce la parte nel browser a un corriere e sposta tutto ciò che conta fuori dal browser, in un programma desktop nativo e, in modalità AirGap, su un telefono che non è mai online.
Solo locale
Il canale tra l’estensione e il desktop non lascia mai il tuo computer. Non c’è nessun server di relay, nessuna sessione nel cloud, nessun account. Le due estremità si autenticano a vicenda, quindi un programma che si finge il wallet non ottiene niente, e nemmeno una pagina che si finge l’estensione.
I permessi li gestisce il desktop
I permessi vivono in AirNox Wallet, non nel browser. Vengono concessi per origine e per chain, uno alla volta, e niente è implicito. Un sito autorizzato a vedere il tuo account Ethereum non è stato autorizzato a vedere il tuo account Polygon. Un sito autorizzato su un wallet non è stato autorizzato su un altro.

L’origine è quella che il browser ha verificato, non una stringa inviata dalla pagina. Una pagina non può spacciarsi per un altro sito. E l’intero sistema è fail-closed: tutto ciò che non è stato concesso esplicitamente viene rifiutato, e viene rifiutata anche una richiesta che il wallet non capisce.
Bloccato vuol dire no
Mentre il wallet è bloccato, l’estensione non risponde a niente, comunque sia formulata la richiesta. Una pagina non può né risvegliare il wallet, né elencare gli account, né mettere in coda una firma da eseguire appena sblocchi. Il wallet lo sblocchi tu, nel wallet, e solo allora il browser riceve risposte.
La firma
Transazioni, messaggi e dati strutturati (typed data) seguono tutti lo stesso percorso. Il desktop prima decodifica e analizza la richiesta, riconoscendo le operazioni standard e segnalando sosia, autorizzazioni illimitate (allowance) e spender sconosciuti. In modalità AirGap la richiesta non firmata passa poi al telefono, dove viene decodificata di nuovo dai byte, ti viene mostrata e viene firmata solo dopo che hai premuto Accept. La firma torna indietro, il desktop la trasmette alla rete e la pagina riceve l’hash della transazione. Il cambio di chain viene gestito allo stesso modo, ed è il wallet a decidere se è consentito.
Per un wallet il cui seed vive sul desktop, è il desktop a firmare dopo lo stesso controllo, nella finestra del wallet invece che sul telefono.
Cosa può e cosa non può fare una pagina compromessa
Una pagina compromessa, o uno script avvelenato dentro il browser, può mentirti. Può mostrarti una transazione e chiederne un’altra. Può spacciare un claim per una verifica. Quello che non può fare è firmare. La decisione si prende dove stanno le chiavi, dopo che hai letto la richiesta così come l’ha decodificata il telefono. L’approvazione di un drainer che passa liscia in un pop-up del browser arriva sul telefono per quello che è: un’autorizzazione di spesa, a questo spender, per questo importo. Se è illimitata, il telefono te lo dice.
È il compromesso che volevamo: per la pagina, la comodità di un wallet nel browser; per te, nessuna esposizione.
La serie completa
- Parti dal presupposto che il computer sia compromesso
- Mass Adoption Security: il dispositivo di firma è un telefono che hai già
- Tre modi per attraversare l’air gap: codici QR, Bluetooth LE e NFC
- Invisibile nell’etere: un dispositivo di firma che nessuno può scovare con uno scanner
- Del trasporto non ci si fida mai
- Cosa ti mostra il telefono: l’analisi della transazione sul dispositivo di firma
- Il telefono tiene il proprio registro
- La cassaforte sul tuo desktop: Argon2id e un profilo che resiste a chi prova a indovinare
- dApp senza un wallet nel browser
- Un server MCP con delle regole: agenti AI entro dei limiti
- Un solo wallet protetto per tutto
- Piccolo e nativo: C++, nessun runtime JavaScript, dalla workstation al Raspberry Pi