Revoca le approvazioni illimitate prima che qualcuno le usi

Revocare le approvazioni token: che cosa autorizza un permesso illimitato, dove si consultano quelli attivi e la procedura di annullamento in otto passaggi.

Mano che firma un documento cartaceo appoggiato su una scrivania accanto a una penna

Una finestra chiede di autorizzare un contratto a usare un token, si preme il pulsante e la cosa finisce lì. Passano mesi, il protocollo viene abbandonato, il saldo resta nel portafoglio. Quell’autorizzazione, invece, resta valida: non scade, non si consuma e nessuno la ricorda.

È la ragione per cui parecchi svuotamenti di portafogli non hanno richiesto la chiave privata di nessuno. Il permesso era già stato concesso, in buona fede, a un contratto che in seguito è stato compromesso o che era stato scritto per fare esattamente quello. Il proprietario non ha firmato niente il giorno del prelievo, perché aveva firmato molto tempo prima.

Il rimedio è noioso e dura meno di mezz’ora. Si elencano le autorizzazioni concesse, si guarda quali sono illimitate, si portano a zero quelle inutili. La parte difficile non è tecnica: è ricordarsi di farlo con una certa regolarità.

Che cosa serve, e quanto tempo prende

  • Tempo. Venti minuti per il primo controllo su un indirizzo con qualche anno di attività, cinque per quelli successivi.
  • Occorrente. L’esploratore della rete usata, il portafoglio e, se c’è, il dispositivo di firma.
  • Costo. Una transazione per ciascuna autorizzazione da annullare, al prezzo di rete del momento.
  • Priorità. Importi illimitati verso contratti che non si usano più, poi tutto il resto.
  • Da non fare. Firmare una revoca proposta da un sito arrivato da un messaggio, senza averne verificato la destinazione.

Che cosa autorizza davvero un’approvazione

Nel modello dei token fungibili il trasferimento e la delega sono due operazioni distinte. Il proprietario può spostare i propri token; in alternativa può registrare nel contratto del token una riga che dice: questo indirizzo può prelevare fino a questa quantità per mio conto. Quella riga si chiama autorizzazione, e la funzione che la scrive è definita nello standard raccolto insieme agli altri nella documentazione delle proposte di miglioramento.

La riga vive nel contratto del token, non nel portafoglio. È identificata da tre elementi: chi la concede, chi ne beneficia e quale token riguarda. Non contiene una scadenza, non contiene un limite d’uso, non richiede una conferma successiva. Finché non viene riscritta, resta esattamente com’è.

Ne segue una conseguenza che quasi nessuna interfaccia spiega: il contratto autorizzato può prelevare quando vuole, quante volte vuole entro il limite, senza chiedere altro. Se il limite è illimitato, il tetto coincide con il saldo del momento, compreso quello che arriverà domani. Chi opera regolarmente su protocolli di finanza decentralizzata accumula decine di righe di questo tipo senza accorgersene.

Perché l’importo massimo è diventato l’impostazione predefinita

La scelta nasce da un problema di esperienza d’uso. Autorizzare l’importo esatto costringe a firmare due transazioni ogni volta: prima il permesso, poi l’operazione. Autorizzare il massimo rappresentabile risolve il problema una volta sola, e tutte le operazioni successive richiedono una firma soltanto.

Il risparmio è reale e misurabile in commissioni. Il costo è differito e invisibile: si accetta che un contratto conservi per sempre il diritto di prelevare tutto il saldo di quel token. Finché il contratto è integro non succede niente, ed è questo che rende l’abitudine così difficile da correggere.

Il problema si manifesta quando il contratto cambia natura. Può essere aggiornabile, e allora chi ne controlla le chiavi può sostituirne il comportamento. Può contenere un difetto scoperto due anni dopo. Può essere stato scritto fin dall’inizio per aspettare che qualche indirizzo accumuli un saldo interessante. In tutti e tre i casi l’autorizzazione concessa in un giorno tranquillo diventa la porta d’ingresso.

Le tre forme di autorizzazione che convivono nello stesso portafoglio

Mazzo di chiavi metalliche appoggiato sul piano di un tavolo di legno chiaro

Non esiste una sola specie di permesso, e le tre che si incontrano hanno visibilità e meccanismi di annullamento diversi. Confonderle è il motivo per cui certe revoche non producono l’effetto atteso.

Forma Che cosa copre Dove si vede Come si annulla
Autorizzazione su token fungibili Una quantità, spesso illimitata, di un singolo token Scheda autorizzazioni dell’esploratore Transazione che porta l’importo a zero
Autorizzazione sull’intera raccolta Tutti i token non fungibili di quel contratto, presenti e futuri Stessa scheda, voce separata Transazione che disattiva il permesso
Firma fuori catena Una quantità, con scadenza e numero progressivo Da nessuna parte, finché non viene usata Invalidazione del progressivo o attesa della scadenza

La seconda riga è la più ampia delle tre e viene concessa di frequente per mettere in vendita un solo pezzo su un mercato: il permesso però riguarda l’intero contratto, anche gli oggetti che si acquisteranno in seguito. Chi frequenta le piazze dove questi token si scambiano ne ha quasi certamente più di una attiva.

Dove si consultano le approvazioni attive

Il punto di partenza è l’esploratore della rete su cui si è operato. Cercando il proprio indirizzo si trova una sezione dedicata alle autorizzazioni, che elenca il token, il contratto autorizzato, l’importo concesso e la data dell’ultima modifica. La consultazione è di sola lettura: non richiede di collegare il portafoglio e non richiede nessuna firma.

Attenzione a un limite dello strumento: l’elenco riguarda una rete alla volta. Chi ha operato su più catene deve ripetere la verifica su ciascuna, perché le autorizzazioni concesse altrove non compaiono e restano attive nell’indifferenza generale.

Esiste una seconda via, più artigianale e più affidabile, utile quando si vuole controllare un caso specifico. Sulla pagina del contratto del token, fra le funzioni di sola lettura, ce n’è una che restituisce l’importo autorizzato date due indirizzi: il proprio e quello del contratto sospetto. Restituisce un numero, e quel numero è la verità, senza intermediari e senza interpretazioni.

Come revocare le approvazioni token in otto passaggi

Tavoletta portablocco con un foglio a righe e una penna appoggiata di traverso

La procedura è sempre la stessa, cambia solo il numero di righe da trattare. Conviene farla con calma la prima volta e trasformarla in routine dalla seconda.

  1. Elenca gli indirizzi da controllare, non solo quello principale, e le reti su cui ciascuno ha operato.
  2. Apri l’esploratore di ogni rete, cerca l’indirizzo e apri la sezione delle autorizzazioni.
  3. Ordina l’elenco per esposizione reale, cioè per saldo effettivo del token interessato: un permesso illimitato su un saldo nullo può aspettare.
  4. Segna tutto ciò che è illimitato e tutto ciò che riguarda contratti che non usi da mesi.
  5. Prima di agire, apri la pagina di ciascun contratto autorizzato e guarda se il codice è verificato, quando è stato creato e quante interazioni ha.
  6. Firma la transazione che porta a zero l’autorizzazione, leggendo sullo schermo del dispositivo il contratto di destinazione e la funzione richiamata.
  7. Aspetta la conferma e rileggi il valore dell’autorizzazione: deve risultare zero, non un numero piccolo.
  8. Annota data, rete e contratti trattati, così il controllo successivo parte da dove si è interrotto.

Il quinto passaggio è quello che salta quasi tutti e serve più degli altri. Un contratto senza codice verificato, creato di recente e con poche interazioni non è necessariamente ostile, ma non merita nessuna fiducia residua: è la riga da azzerare per prima.

Quanto costa la revoca, e quando conviene raggrupparla

Ogni annullamento è una scrittura semplice nello stato del contratto del token, quindi una transazione fra le più economiche possibili. Non c’è nessun importo da trasferire e nessun calcolo complesso: si paga solo la commissione di rete del momento.

Il conto cambia con la rete. Sulla catena principale il costo è quello di una transazione ordinaria e dipende dalla congestione dell’ora, quindi conviene raggruppare il lavoro in un momento tranquillo invece di procedere a una revoca al giorno. Su un livello due la stessa operazione costa una frazione, e il criterio di priorità perde quasi ogni importanza.

Un dettaglio che fa perdere tempo e denaro: alcuni token scritti prima che le convenzioni si stabilizzassero rifiutano di modificare un’autorizzazione diversa da zero. In quei casi l’operazione fallisce e la commissione viene comunque consumata. La soluzione è fare due passaggi, prima l’azzeramento e poi l’eventuale nuovo importo, ed è anche il motivo per cui diverse interfacce propongono spontaneamente due firme.

Le firme fuori catena non si annullano allo stesso modo

Da qualche anno accanto alle autorizzazioni scritte sulla catena esistono autorizzazioni che nascono da una semplice firma. L’utente firma un messaggio strutturato che contiene il beneficiario, l’importo, una scadenza e un numero progressivo; il contratto accetta quella firma come prova del permesso nel momento in cui viene usata.

Il vantaggio è evidente: nessuna transazione, nessuna commissione, nessuna attesa. Lo svantaggio è che la firma non lascia traccia pubblica finché qualcuno non la presenta. Nell’elenco delle autorizzazioni non compare niente, e il proprietario non ha modo di sapere che esiste. È il motivo per cui una richiesta di firma che sembra innocua merita la stessa attenzione di una transazione, come ricordano da tempo le raccomandazioni sull’igiene digitale pubblicate dall’agenzia europea per la cibersicurezza.

L’annullamento segue una strada diversa. Portare a zero l’autorizzazione sulla catena non tocca una firma che non è ancora stata usata: bisogna invalidare il numero progressivo previsto dallo schema, operazione che alcuni contratti espongono esplicitamente, oppure attendere la scadenza indicata nel messaggio. Da qui una regola pratica sulle firme: leggere sempre la data di scadenza, e diffidare di qualunque richiesta con un termine lontanissimo o assente.

Con quale frequenza vale la pena controllare

Una revisione ogni tre mesi copre bene un uso ordinario. Chi opera tutte le settimane su contratti diversi farebbe meglio a passare al mese, non perché il rischio cresca in modo lineare, ma perché cresce il numero di righe da ricordare.

Oltre al calendario contano tre eventi. La fine dell’uso di un protocollo, perché la revoca fatta subito costa quanto quella fatta dopo un anno e copre un periodo di esposizione molto più corto. L’annuncio pubblico di una vulnerabilità o di un incidente su un contratto con cui si è interagito, che rende la revoca urgente e non più programmabile. E l’apertura di un nuovo indirizzo, momento in cui conviene decidere una volta per tutte a che cosa serve.

Su quest’ultimo punto la misura più efficace non è una revoca ma una separazione. Un indirizzo destinato alle prove, con importi piccoli e autorizzazioni libere di accumularsi, e un indirizzo destinato a stare fermo, che non firma mai nessuna autorizzazione, riducono il problema a una frazione. Vale lo stesso ragionamento che guida chi distribuisce le proprie posizioni invece di tenerle in un punto solo.

Il finto strumento di revoca è l’attacco che segue

Il tema è abbastanza conosciuto da essere diventato esca. Compaiono avvisi allarmanti, messaggi che segnalano autorizzazioni pericolose e invitano a metterle in sicurezza su una pagina che imita uno strumento legittimo. La pagina chiede di collegare il portafoglio e propone una firma.

La differenza fra una revoca vera e una truffa sta interamente in quello che si firma. Una revoca autentica è una transazione diretta al contratto del token, che richiama la funzione delle autorizzazioni con importo zero: nessun trasferimento, nessun nuovo beneficiario. Una truffa propone quasi sempre un’altra cosa, cioè un trasferimento immediato oppure una nuova autorizzazione a favore di un indirizzo sconosciuto.

Da qui due abitudini che chiudono la questione. La prima è raggiungere gli strumenti digitando l’indirizzo o da un segnalibro salvato, mai da un collegamento ricevuto. La seconda è leggere sullo schermo del dispositivo di firma il contratto di destinazione e il nome della funzione: se il dispositivo mostra un trasferimento mentre l’interfaccia parla di revoca, l’operazione va rifiutata e la pagina chiusa.

Quello che la revoca non ripara

Annullare un’autorizzazione ferma i prelievi futuri e non tocca quelli già avvenuti. Se un contratto ha già spostato dei token, la revoca arriva tardi e non esiste nessuna procedura tecnica per riportarli indietro.

C’è poi una situazione in cui la revoca è addirittura la mossa sbagliata. Se a essere compromessa è la chiave privata, e non un contratto, ogni transazione firmata da quell’indirizzo è inutile: chi controlla la chiave può concedere di nuovo qualunque permesso un istante dopo. In quel caso l’unica azione sensata è trasferire subito quello che si può su un indirizzo generato da una frase di recupero nuova, dando priorità agli importi maggiori.

Va infine chiarito il perimetro di questa operazione. Azzerare le autorizzazioni riduce una superficie di attacco specifica, quella dei permessi concessi ai contratti. Non protegge da una frase di recupero conservata male, da una firma cieca concessa a un’interfaccia contraffatta, né da un dispositivo già compromesso. È una manutenzione ordinaria, va fatta con regolarità e non sostituisce nessuna delle altre.

Domande frequenti

Se non uso più un protocollo, l’autorizzazione scade da sola?

No. Nello standard di base non esiste nessuna scadenza: l’autorizzazione resta scritta nel contratto del token finché non viene modificata da una transazione. Il tempo trascorso, la disinstallazione dell’applicazione e la disconnessione del portafoglio non hanno alcun effetto su quella riga, che continua a valere anche dopo anni di inattività.

Revocare le approvazioni token mi fa perdere i fondi depositati nel protocollo?

No, sono due cose distinte. L’autorizzazione riguarda i token che stanno ancora nel portafoglio; quelli già depositati sono nel contratto e si ritirano con le funzioni previste. Dopo una revoca, per usare di nuovo lo stesso protocollo servirà concedere un nuovo permesso, con una transazione in più rispetto a prima.

Conviene autorizzare l’importo esatto invece di quello illimitato?

Riduce l’esposizione a quella singola operazione ed è la scelta più prudente per importi rilevanti. Costa una transazione aggiuntiva ogni volta, quindi su reti economiche il compromesso è quasi sempre favorevole, mentre sulla catena principale la differenza di commissioni può spingere ad autorizzare un importo generoso ma comunque finito, che è già molto meglio del massimo.

Come faccio a sapere se un contratto autorizzato è ancora sicuro?

Non esiste una risposta definitiva, ma esistono indizi verificabili sull’esploratore: codice sorgente pubblicato e verificato, età del contratto, numero e continuità delle interazioni, presenza di funzioni amministrative che permettono di sostituirne il comportamento. Un contratto aggiornabile va trattato come un permesso concesso a chi detiene le chiavi di aggiornamento.

Un portafoglio hardware mi protegge dalle autorizzazioni concesse per errore?

Solo in parte, e la parte è quella che conta meno di quanto si creda. Il dispositivo impedisce l’estrazione della chiave e mostra che cosa si sta firmando, ma se l’utente conferma l’autorizzazione la firma è valida a tutti gli effetti. La difesa reale è leggere la schermata di conferma, non possederne una.

Chi non ha mai fatto questa verifica troverà quasi certamente righe risalenti a protocolli chiusi da tempo. Azzerarle è un pomeriggio speso male e un rischio in meno che non richiede più attenzione, il che è esattamente il tipo di manutenzione che conviene programmare.

Si occupa di sicurezza applicativa e di modelli di custodia per patrimoni digitali. Analizza attacchi reali e procedure di ripristino, con attenzione a ciò che accade quando qualcosa va storto. Consiglia sempre di provare il backup prima di averne bisogno.
4