Evoluzione per aggressione.

Oggi mi hanno chiesto “quattro slides di valutazione” sulla cosa di Bitcoin. Come tutte le aziende di consulenza, i clienti cercano di capire , e quindi mi hanno chiesto un attimo qualche valutazione tecnica. Probabilmente dovro’ parlarci per una quarantina di minuti in qualche convention aziendale pre-natalizia. Buffamente, ho scritto quattro slides sui protocollo P2P e sulla loro evoluzione.
Perche’ alla fine il punto di Bitcoin non e’ Bitcoin in se’ , il punto e’ “quanto maturi siano i protocolli P2P”: cosa senza la quale non possiamo discutere la maturita’ “tecnica” di Bitcoin.(1)

Bisogna capire che diavolo sia la “maturita’ tecnica”: non si tratta di una valutazione generale sul suo futuro finanziario, ne’ sul suo andamento, ma sul suo concetto di base, cosa che riguarda tra parentesi anche i suoi simili, tipo Litecoin &co. Si tratta cioe’ di capire se e quando, e quanto, una telco X possa pensare a questa roba come concorrente, quanto possa sfruttarla nel design di nuovi prodotti, eccetera.

Se ovviamente intendiamo “Bitcoin” come un’idea , o come un punto preciso di evoluzione di un’idea, non possiamo fare altro che inquadrare l’idea nei suoi principali “pattern” , e quindi finiamo inevitabilmente nel mondo del P2P. Bisogna cioe’ capire che Bitcoin, Litecoin, e tutte le Crypto-Coin sono di fatto applicazioni del P2P.

Se ne esamino l’evoluzione, iniziando coi vecchi Napster (centralizzatissimi e assai poco P2P) , rispetto ai protocolli ed ai concetti che fanno una rete P2P oggi, ottengo una evoluzione impressionante, spinta da quel tipo di spinta che produce l’evoluzione piu’ efficace: sopravvivere.

Per capire quanto importante sia questo principio, occorre capire che la rete IPv4 fu disegnata esattamente allo stesso scopo: ed e’ assai divertente capire che “i padri” di Internet, quando gli fu chiesto di disegnare la rete, tirarono fuori (e vendettero come robustissimo) un sistema che produce una infrastruttura debolissima.

Prendiamo come esempio una banca italiana di medie dimensioni. Avra’ un mainframe IBM da qualche parte, a volte anche una infrastruttura SAP R3, (parlo di installazioni tipiche, magari ci sono anche banche con sistemi diversi, ma non cambia molto), ed avra’ un sistema di ridondanza geografica, qualcosa come tre siti in Italia, oppure – se usa IBM col classico sito di Abano – 2 piu’ un disaster recovery.

Questo significa avere una banca che, in caso di attacco militare, puo’ essere cancellata con 2-3 bombardamenti che usino armi ad alta penetrazione. Con una ventina di bombardamenti che usano armi ad alta penetrazione e’ possibile annientare la base dati di ogni banca italiana.

Se passiamo dalle banche ad Internet, non ci passa molta differenza. Quanti bombardamenti mi servono a distruggere ogni IX italiano? E quanti per collassare anche la rete di accesso? Anche qui, disintegrare la rete di un paese consiste in una ventina di attacchi aerei che usino armi ad alta penetrazione. Non di piu’.

Se consideriamo che i mainframes e IPv4 erano, ai tempi della creazione di Internet, il non plus ultra della resistenza della rete ad un attacco sovietico, adesso possiamo porci la seconda domanda. Supponiamo che 100.000 utenti italiani usino Bitcoin. Quanti bombardamenti mi servono per sortire un effetto analogo? Sperando che l’utente non sia dentro un rifugio o non sia fuggito in campagna con il wallet.dat in una chiavetta nelle tasche, ci bastano 100.000 bombardamenti.

Ora, io non mi sto chiedendo di preciso se il Bitcoin abbia successo o meno. E neanche se il Bitcoin sia o meno la moneta del futuro. Sto dicendo una cosa diversa: che nessun’altra tecnologia al mondo resiste alla disrupzione fisica quanto P2P, e che P2P ha vastamente superato le specifiche tecniche di resistenza alla disrupzione della stessa rete internet.

Certo, ovviamente P2P poggia sulla rete internet stessa. Se cioe’ volessi paralizzare bitcoin in Italia dovrei solo distruggere internet, che posso fare con una 20ina di bombardamenti, e a quel punto neanche bitcoin funzionerebbe. Ma qui stiamo mentendo a noi stessi, perche’ la base dati sarebbe praticamente intatta e pronta a ripartire, mentre se bombardassimo i mainframe delle banche, le cose non sarebbero cosi’ semplici.

Sia le infrastrutture classiche bancarie che quelle di Bitcoin dipendono dall’infrastruttura sottostante che e’ la rete, ma dobbiamo considerare l’idea che gli stessi dati sono piu’ al sicuro dentro Bitcoin che dentro i mainframe delle banche, dentro i loro caveau.
Che cosa ha permesso ai protocolli  P2P di evolversi cosi’ velocemente verso una resilienza impressionante? La risposta e’ semplice: il fatto di essere sottoposti a continui attacchi contro le componenti centrali , qualsiasi esse fossero, e contro eventuali endpoint non protetti. Inoltre, i creatori di queste reti hanno un atteggiamento MOLTO diverso rispetto alle failure.
Quando I2P ricevette l’attacco studiato dai signori dell’ Universita’ di München, nessuno dei suoi fondatori e creatori si offese. Se osservate i forum su I2P, vedete un atteggiamento di vera e propria gratitudine verso chi aveva concepito un attacco che – almeno in potenza – poteva bloccare completamente l’intera rete.
Invece, non solo ne scaturi’ un dibattito, ma gli autori di I2P si mostrarono GRATI a coloro che avevano scritto questo attacco, e si affrettarono ad introdurre alcune modifiche al protocollo – se non erro il nodo di backup .
Inoltre, in passato, le reti P2P venivano continuamente assalite dalle forze dell’ordine, col risultato che ad essere colpiti erano sempre i nodi centrali. Questo spinse le reti a decentralizzarsi, sino allo stato attuale, ove soltanto il seeding iniziale e’ richiesto per pochi secondi.
Ora, sicuramente gli attacchi del futuro verteranno sul meccanismo iniziale del seeding, per cui gli ideatori di reti P2P dovranno introdurre una specifica di seeding iniziale distribuito, ma il punto non e’ questo. Il punto e’ che le reti P2P si sono evolute molto piu’ in fretta delle reti ordinarie, diventando reti ad enorme affidabilita’, principalmente per due motivi:

  • Le reti stesse erano bersagliate da attacchi mirati a distruggerle DAVVERO.
  • I creatori e gli owner erano FELICI di venire a conoscenza di attacchi, che poi andavano a produrre nuove versioni del software stesso.
Le due differenze sono enormi se vado a vedere come funziona per le aziende VERE.E’ vero che si fanno test di penetrazione, ma non si tratta mai di test distruttivi. Essi vengono concordati con i consulenti della sicurezza per colpire il bersaglio, e spessissimo quando il “friendly hacking” avviene, i sistemisti se ne vanno tranquillamente a casa: l’indomani i consulenti alla sicurezza restituiranno il loro risultato.

Ma se l’attacco fosse DAVVERO ostile, non sarebbero certo a casa. Se si accendessero VERI attacchi, l’ oncall duty sarebbe li’ collegata a vedere che succede. E se ci fossero attacchi VERI, dove si rischiano davvero i dati, si vedrebbe DAVVERO come reagisce tutta la catena (catena di comando: esseri umani, macchine, sistemi di allarmistica, etc). Al contrario, il friendly hacking sembra riguardare SOLO le macchine e la loro sicurezza intrinseca, al punto che nessuno viene coinvolto. Anni fa ci fecero un friendly hacking e io mi accorsi di un allarme. Buttai giu’ un’istanza di proxy tagliando fuori gli aggressori, e venni CAZZIATO perche’ avevo bloccato un test di sicurezza col mio intervento: si rischiava addirittura che ci facessero pagare di piu’ perche’ adesso dovevano rifare il test.
La cultura della sicurezza, anche laddove esiste, e’ una cultura fatta di magagne da nascondere sotto il cuscino. Quando usci’ il modello di attacco per I2P,gli autori misero sul sito web ogni cosa. Se chiedete ad una qualsiasi azienda di mettere sul sito web i risultati di un auditing della sicurezza, vi linciano.
Il secondo punto riguarda la gestione mediatica del problema stesso: sono pochissimi quelli che chiedono al pubblico di testare la sicurezza dei loro sistemi (magari offrendo un premio) , perche’ i meccanismi di carriera dentro le banche sono tali che una vulnerabilita’ pubblica diventa un problema interno.
Se qualcuno entra nel sito di home banking, la sicurezza fara’ questo: siccome il sito non comunica mai col mainframe, ma al massimo con un host dipartimentale, l’host dipartimentale produce un batch che poi verra’ passato all’anti-frode, e dopo l’antifrode andra’ a girare sul mainframe: questo e’ il motivo per cui “ci vuole un pochino prima che il bonifico si veda”.
In pratica, forti di questo paradigma, essi non hanno interesse a rendere pubblici molti dati sulla sicurezza: una telco tedesca e’ stata derubata due mesi fa di diversi milioni di record di dati. Nel loro comunicato stampa, essi danno la colpa al fatto che l’hacker fosse un ex interno. Di come sia stato condotto l’attacco non si sa nulla.
Insomma, tutto e’ fatto per salvare l’immagine. Ma se quell’hacker fosse stato parte di una banda che metteva insieme dipendenti di OGNI telco tedesca, per esempio, adesso gli inquirenti avrebbero solo UNO dei sette hacker , e lo stesso troiano che e’ stato spento nella telco ove si sono accorti del problema, sarebbe in esecuzione in tutte le altre telco tedesche: non mostrando il software, i signori hanno salvato l’orgoglio, ma non hanno aiutato molto gli altri a difendersi. Il confronto coi creatori di I2P, che pubblicano i documenti sui possibili attacchi, e’ impietoso.
In estrema sintesi, definirei la velocissima evoluzione dei sistemi P2P con una sola frase “evolution by aggression”. Le reti p2P sono molto piu’ specializzate nella resilienza perche’ la stessa resilienza e’ stata sistematicamente aggredita usando le risorse di interi governi, per anni ed anni. Inoltre, anche normali hacker sono stati invitati a colpire la rete per testare le sue debolezze, e spesso premiati per questo.
Il risultato di questa evoluzione per aggressione e’ sotto gli occhi di tutti: nessun sistema di banking IT e’ resiliente quanto bitcoin.
Rido nel vedere gente che confronta la resistenza di Bitcoin con quella della valuta tradizionale chiedersi se “sia sicura”: la domanda e’ ( e sarebbe la domanda giusta per OGNI applicazione moderna del P2P) “se le applicazioni IT tradizionali arriveranno MAI al livello di resilienza di un moderno protocollo P2P”.
Non c’e’ mai stata evoluzione per aggressione contro l’ IT tradizionalmente usato per il banking tradizionale. I loro software ed i loro mainframe sono cresciuti sotto la protezione di una sicurezza basata sull’isolamento. La quale ha retto il confronto, ma non ha prodotto la massiva evoluzione dei sistemi P2P. Una specie di nicchia ecologica che resiste sino a quando non viene messa in competizione con le altre, come capita sovente alle specie che si evolvono su qualche isola sperduta.
Possiamo dividere la domanda : quanto e’ sicuro bitcoin rispetto alle banche in questo modo:

  • Chi puo’ attaccare?
  • Chi puo’ distruggere tutto?
Nel caso delle banche, si e’ scelto di agire sulla prima delle due domande, isolando i sistemi bancari dal resto. E’ chiaro che nessuno possa attaccare, quindi non sappiamo chi possa distruggere tutto. Ma sappiamo che se immaginiamo qualcuno che possa attaccare, come durante una guerra, siamo nella situazione della volpe dentro il pollaio.
Le reti P2P possono essere attaccate da chiunque, ma per distruggere tutto occorre… non si sa. Nessuno e’ piu’ riuscito a distruggerne davvero una negli ultimi anni.
Paradossalmente, una banca che si basasse su un protocollo P2P potrebbe costruire il suo sistema di bancomat senza che sia anche lontanamente possibile duplicare le transazioni o fare nulla di quello che si fa contro i normali bancomat. E potrebbe farlo RISPARMIANDO quantita’ enormi di dollari normalmente spesi in sistemi di separatzione e reti ad hoc.Il punto e’ che usando un sistema P2P e’ possibile costruire un sistema di bancomat che non richieda una rete dedicata, e giri tranquillamente su internet. E’ possibile costruire sportelli bancari che non hanno bisogno di una sicurezza hardware, di router dedicati, ma potrebbero persino fare i movimenti usando internet. Milioni di euro risparmiati in misure di sicurezza. Potrebbero anche risparmiare i soldi del mainframe, dal momento che OGNI client bitcoin ha visione dello storico di tutte le transazioni!.

Dal punto di vista del business, cioe’, P2P si sta evolvendo come una macchina mangiatutto che prima o poi iniziera’ a mostrare la sua superiorita’ tecnologica.
Prima o poi qualcuno sviluppera’ un software che funziona come bitcoin. Ci fara’ una banca. Mettera’ le filiali in rete usando la comunissima internet, dove le altre banche spendono milioni in reti dedicate. Dara’ accesso ad un sistema di home banking semplicemente distribuendo in client senza nemmeno tenere un server centrale per il sito web. E avra’ tutto lo storico delle transazioni in rete , disponibile a tutti, senza spendere milioni in un mainframe.
Una banca simile risparmierebbe cosi’ tanto in infrastruttura da poter fare condizioni incredibilmente buone ai clienti, e avere costi operativi MOLTO inferiori.
In pratica, si e’ evoluta una specie tecnologica vincente, la si e’ evoluta specializzandola nel sopravvivere senza costare soldi per farlo, lo si e’ fatto nel piu’ brutale dei modi ovvero per aggressione.
Per capire il risvolto pratico, supponiamo di fondare una banca oggi. E di lavorare verso il cliente come fanno normalmente le banche.
pero’, come infrastruttura, usiamo come sistema transazionale un P2P simile a Bitcoin: dimenticate il fattore “moneta”. La banca lo userebbe solo all’interno , per comunicare. Niente a che fare con  i soldi 1.0 che si scambia verso l’esterno.
Allora, una banca normale ha bisogno di:
  • Mainframe + Duplicazione georidondante piu’ disaster recovery.
  • Rete dedicata per le filiali.
  • Rete dedicata per gli ATM (I bancomat).
  • Access Point dedicato per i pagobancomat dei negozi.
  • Software mission critical per le transazioni.
  • Sito di home banking.
Andiamo a vedere cosa dovrebbe fare una banca che invece usi, internamente, un protocollo come Bitcoin.
  • Mainframe + Duplicazione georidondante piu’ disaster recovery.
  • Rete dedicata per le filiali.
  • Rete dedicata per gli ATM (I bancomat).
  • Access Point dedicato per i pagobancomat dei negozi.
  • Software mission critical per le transazioni.
  • Sito di home banking.
  • Client Bitcoin
  • Accesso DSL per le filiali, un normale wholesale.
capite che il costo operativo “si abbassicchia” di parecchio.
Lo stesso vale per un money express. Oggi come oggi se aprite un money transfer (quelli che usano gli immigrati per trasferire i soldi) avete bisogno di qualcosa come:
  • Mainframe centrale almeno in HA.
  • Rete dedicata per le filiali.
  • Sistema di crittazione dei dati.
  • Software mission critical per le transazioni.
Se lo aprite usando un P2P crittografico  come bitcoin per  le transazioni, fermo restando che poi dall’altra parte date al cliente moneta sonante, avete:
  • Mainframe centrale almeno in HA.
  • Rete dedicata per le filiali.
  • Sistema di crittazione dei dati.
  • Software mission critical per le transazioni.
  • Client Bitcoin
  • Accesso DSL per le filiali, un normale wholesale.
il che vi riduce di un fattore 10 i costi operativi per IT.
Capite che i conti non tornano: non parlo del Bitcoin come moneta, ne sto parlando come infrastruttura , e come infrastruttura e’ assolutamente equivalente dell’intero IT delle banche, ma ha costi enormemente  inferiori e offre un livello di sicurezza e di resilienza superiori.
Quanto tempo manca, secondo voi, prima che qualcuno se ne accorga?

Uriel

(1) Se qualcuno se lo sta chiedendo, le mie slide NON diranno questo alla convention aziendale. I clienti non vogliono sentirsi dire questo. Vogliono sentirsi dire che Bitcoin non e’ maturo per la produzione , che il P2P non esiste quasi piu’ e  che SAP vendera’ all’infinito e che non c’e’ alternativa al sistema attuale.Se invece si trattasse di consulenza vera e propria, sarei costretto a scrivere quel che penso.