Ho recentemente parlato del bitcoin a due eventi dove ho riscontrato grande interesse, ma anche della diffidenza latente. Ad un evento della European Electronic Crime Task Force (EECTF Roma, novembre 2013) ho notato la diffidenza maturata dalle organizzazioni che contrastano le frodi finanziarie, dovuta al caldo abbraccio che il black market ha riservato ai bitcoin praticamente già dalla loro nascita. La mia replica è stata che il black market è solo stato abile nel capire e sfruttare uno strumento tecnicamente ottimo: ha potuto farlo prima degli altri semplicemente perché esso non è gravato da leggi, norme, certificazioni e quant’altro.
Invece al convegno ABI Carte 2013 (Milano, dicembre 2013) ho incontrato la naturale diffidenza di chi è abituato a gestire il denaro in forma elettronica, a normarne e vigilarne l’uso. Qui la questione è più sottile. L’architrave che regge il sistema attuale di pagamenti elettronici ha un nome ben preciso: liability. Poiché ogni singolo passaggio è normato, certificato e verificato, si sa sempre (in linea teorica) a chi addebitare la colpa per malfunzionamento o dolo. E il costo di tutto ciò è in ultima analisi scaricato sempre e comunque sul merchant, che con le commissioni che paga in realtà sta inconsapevolmente coprendo il costo delle assicurazioni contro le frodi, il costo del clearing, il costo delle certificazioni, etc etc.
Nel bitcoin, la liability è interamente assente, chi paga è chi si trova senza i soldi che si aspettava di avere (o di avere ricevuto).
E’ esattamente questo aspetto che voglio approfondire nell’articolo: due imboscate attendono il bitcoin nel suo cammino verso il mainstream, una per gli utenti e una per i merchant.
La prima imboscata riguarda gli e-Wallet. I bitcoin sono intrinsicamente digitali, quindi vanno conservati digitalmente da qualche parte facilmente accessibile all’utente. In realtà quello che va conservato in maniera protetta è l’elenco delle chiavi private degli indirizzi Bitcoin dell’utente, che chiamiamo d’ora in poi semplicemente “la chiave”, perche’ solo chi la possiede è effettivamente in grado di eseguire disposizioni dai conti associati.
Per fare questo, ad oggi nella maggioranza dei casi si usano app sullo smartphone, che prendono il nome di e-Wallet.
Ci sono due tipi principali: gli e-Wallet che salvano la chiave dell’utente sullo smart (e-Wallet “locali”) e gli e-Wallet che si limitano a dialogare con dei server che contengono la chiave dell’utente (e-Wallet “client”). Due esempi di e-Wallet locali sono il Bitcoin Wallet e il ValutaPay eWallet.
Il caso tipico di utilizzo degli e-Wallet locali è usare la videocamera dello smart per leggere un codice a barre bidimensionale (un QR) mostrato dal merchant ed eseguire quindi la transazione direttamente.
Un esempio popolare di e-Wallet client è invece questo. Notare che negli e-Wallet client dallo smartphone parte solo la disposizione della transazione: quella vera e propria effettivamente realizzata dal server che ospita la chiave.
Dal punto di vista della security le due situazioni sono molto diverse:
– se la chiave è presente sullo smartphone, allora il pericolo grosso è il malware;
– se la chiave è presente su un server, allora il pericolo grosso è dato dagli attacchi al server; in realtà anche un malware ben congegnato può essere pericoloso se riesce a carpire le credenziali usate dall’utente.
Guardando gli attacchi avvenuti finora, si nota subito un certo successo degli attacchi informatici ai server, e quindi agli e-Wallet client. Tre mesi fa (ottobre 2013) i cracker hanno svuotato gli e-Wallet australiani gestiti online da Inputs.io,portandosi via 4100 bitcoin, ovvero più di quattro milioni di dollari al cambio attuale. Il mese successivo (novembre 2013) è stato il turno dei Danesi di BIPS: 1295 bitcoin presi dai conti degli ignari utenti, ovvero più di un milione di dollari. Non si hanno notizie di malware significativi che attaccano gli e-Wallet sugli smart (mentre ce ne sono per i client su pc).
La seconda imboscata è scritta in profondità nel protocollo del network bitcoin: le transazioni sono validate in media ogni 4-5 minuti (considerando trascurabile la probabilità di un fork nel blockchain). Nel caso peggiore, una transazione potrebbe aspettare anche ore. Immaginiamo ill caso più frequente, ovvero quello in cui le transazioni sono validate entro una decina di minuti: qui chi rischia grosso è il merchant, perché l’utente pensa di aver pagato e il merchant in teoria deve aspettare la conferma. Questo non è un problema per acquisti online riferiti a beni usufruibili nei giorni successivi, come ad esempio un biglietto d’aereo su Ryanair o un libro su Amazon, perché se per caso la transazione non viene confermata il merchant può bloccare il bene e avvertire l’utente. Ma immaginiamo un ristorante o un bar (ed alcuni già utilizzano il sistema): può il barista tenersi nel bar tutti i clienti che hanno pagato negli ultimi 5 minuti per aspettare la conferma delle loro transazioni? E che succede se una transazione non viene inclusa al primo block validato? Deve trattenere il povero cliente che ha preso un caffè per altri 10 minuti?
Questo è chiaramente inaccettabile in molti contesti e va contro la tesi di chi propugna il bitcoin come un’alternativa digitale al contante. Nella pratica, gli esercenti che stanno sperimentando il bitcoin si basano sulla fiducia posta nel “cliente abituale”: la persona che prende il caffè tutte le mattine trufferà mai il “suo” bar per non pagare un euro? Improbabile, considerando che la truffa è facilmente rilevabile a posteriori, ma non impossibile. Ma che fare con clienti sconosciuti? Farli aspettare o assumersi il rischio? Questo dilemma sta frenando molti merchant a lanciarsi a testa bassa nel bitcoin, nonostante l’ovvio vantaggio per loro di non dover più pagare le fee imposte dall’attuale sistema di pagamenti elettronici.
Avendo presentato quelli che, a mio parere, sono i problemi peggiori per, rispettivamente, l’utente e il merchant, vorrei adesso argomentare sulla loro reale pericolosità.
Incominciamo dai wallet e vediamo le cose da un altro punto di vista. Come prima cosa notiamo che gli attacchi più pericolosi sono stati in realtà effettuati contro dei server, il che dimostra solo che questi server non adottavano le misure di sicurezza adeguate per proteggere il valore custodito. Come seconda cosa, divaghiamo un attimo e notiamo che si stanno diffondendo sempre di più le app di mobile banking e/o di mobile payment. Sono stato coinvolto nel security assessment di un paio di quelle che sono uscite in Italia (o che stanno per uscire).
Dal punto di vista della sicurezza, è inevitabile conservare dei segreti (password, chiavi, etc) sul telefonino e/o imporre all’utente di ricordarseli lui. Un malware fatto ad hoc può tentare di andarseli a prendere, e in linea di massima ci può riuscire. Se l’app è progettata molto bene, la vita dell’attaccante è resa così difficile che lascerà perdere e si getterà su prede più semplici. Attualmente nel black market proliferano malware generici, soprattutto per Android, ma per attaccare un’app ben fatta bisogna farsi fare ad hoc un malware, e quello richiede ai tempi attuali almeno un paio di mesi (a meno che l’attacco non sia portato a termine da un insider) con il rischio di essere rilevato dai monitoraggi costanti effettuati da aziende specializzate e dai CERT meglio attrezzati. Il lettore avrà capito la direzione di questa mia divagazione: il problema di fare un e-Wallet bitcoin sicuro coincide esattamente con il problema di fare una app di mobile banking sicura.
Quindi, a mio parere, questa è una questione affrontabile e, in larga parte, superabile. L’unica vera differenza è che le app per bitcoin devono passare dallo stato amatoriale degli entusiasti alla fase in cui sono sviluppate da professionisti in collaborazione con gli esperti di security. Con l’aumentare della base monetaria gestita dal circuito bitcoin, questo passaggio si realizzerà presto (pare che qualcosa si stia già muovendo).
Infine, esaminiamo il problema della lenta conferma delle transazioni.
Non c’è spazio qui per spiegare come questa caratteristica sia intrinseca nel bitcoin, ma dirò solo ai lettori curiosi che si tratta di un’inevitabile conseguenza della geniale soluzione di Satoshi Nakamoto all’irrisolvibile problema dei Generali Bizantini.
Comunque, non c’è nessuna speranza che questo periodo sia ridotto nel protocollo, non nel futuro immediato per lo meno. Ma non credo che sia un problema. Per capirlo torniamo al merchant. Grazie al bitcoin non paga fee, ma si accolla un rischio. Mentre se usa un POS tradizionale, non ha (quasi) rischi, ma paga una fee. Quello che serve qui sono degli intermediari che coprono il rischio del double-spending per conto del merchant. Certo, il merchant si ritroverà a pagare fee, che sperava di avere eliminato, ma il punto è che con i bitcoin saranno una frazione di quelle che paga coi sistemi tradizionali, essendo sgravato dai costi del circuito e da tutto il resto che compone le fee attuali.
Posso concludere che ci sono effettivamente delle imboscate sulla strada degli entusiasti del bitcoin, ma che si possono evitare se si smette di pensare al Bitcoin come a un gioco per geek o per speculatori e si inizia a pensarlo per quello che è: un’evoluzione del modo di scambiarsi del valore. Una volta c’era il baratto, poi sono arrivati i metalli preziosi e i gioielli, poi la moneta ed infine adesso le cryptocurrency.