Dunque ricapitoliamo dalle puntate precedenti (parte 1 e parte 2):
Una blockchain è un database distribuito che consente un'archiviazione sicura, trasparente e a prova di manomissione.
Ciò la rende una piattaforma ideale per la gestione dei dati sensibili e la protezione dagli attacchi informatici.
Ad esempio, le tecnologie blockchain possono essere utilizzate per creare audit trail immutabili. Ciò significa che i dati non possono essere modificati retroattivamente. Facciamo un esempio molto semplice: immaginiamo di memorizzare i Iog di accesso ad un server su una blockchain. In caso di attacco, per l’aggressore sarà molto più difficile nascondere le tracce lasciate, in quanto non avrà alcun modo per modificare i log.
Ma vediamo nel dettagli alcune caratteristiche tecniche che possono rivelarsi molto utili se applicate a scenari di sicurezza informatica.
Riservatezza: in una blockchain, gli utenti sono sostanzialmente anonimi. L’unica elemento che collega l’utente ai suoi dati sono le chiavi (wallet), e null’altro. I wallet sono quasi sempre pubblici (dipende dalla rete blockchain sulla quale si opera), ed anche le transazioni effettuate da quel wallet. Non esiste però alcuna correlazione diretta tra il wallet ed il suo proprietario. Si usa dire che i wallet, nella blockchain, appartengono a chiunque ne possegga la chiave.
Integrità dei dati: Abbiamo visto che le blockchain sono (appunto) delle catene di blocchi di dati. Ogni blocco è collegato al precedente tramite un hash matematicamente calcolato. Dunque non si può semplicemente rimuovere un blocco senza compromettere i collegamenti hash tra il blocco precedente ed il successivo. Ne deriva che l’unico modo (attualmente) per eliminare un dato su una blockchain è di farla collassare integralmente (o accordarsi con più del 50% e dunque creare un fork di quella rete, operazione che comunque lascerebbe una traccia evidente della modifica). Va detto che la semplice modifica di un dato è possibile, ma viene trattata come informazione aggiuntiva in un nuovo blocco successivo, quindi nessuna informazione precedentemente registrata viene realmente cancellata o modificata.
Disponibilità: le blockchain sono sistemi distribuiti, questo ormai è un concetto chiaro. Ma cosa significa in termini di sicurezza? Molto semplice, dato che la rete è formata da un certo numero di nodi, geograficamente distribuiti, e che ogni nodo possiede una copia delle transazioni di tutta la rete, appare evidente che nessun attacco informatico o addirittura fisico indirizzato ad un singolo nodo può compromettere la rete, sia in termini di funzionalità che di integrità dei dati.
Detto questo, vediamo alcune applicazioni pratiche in cui l’attuale tecnologia blockchain, o le sue forme future, può incrementare sensibilmente il livello di robustezza e sicurezza informatica.
Abbiamo visto che l’intera lista delle transazioni della blockchain è presente in ogni nodo. Tuttavia alcune applicazioni dedicate allo storage di dati sfruttano le blockchain per distribuire “pezzi” di file tra i vari nodi. Il vantaggio, anche in questo caso, è che se si attacca uno o più nodi non si può accedere alla completezza dei dati, ma solo a porzioni degli stessi.
Certo, potremmo ottenere un risultato simile con una architettura cloud distribuendo le informazioni su più datacenter, ma il costo tecnologico di una architettura simile è attualmente più elevato rispetto a quanto ottenibile con una infrastruttura on-chain (progetti in questo senso sono Filecoin, StorJ, IPFS). Ed è inoltre evidente che se abbiamo delle architetture dedicate allo storage, oltre ai file, possiamo memorizzare anche database che a quel punto diventerebbero teoricamente meno vulnerabili ai data-leaks rispetto a quelli centralizzati.
Abbiamo detto che possiamo mantenere un database distribuito on-chain, dunque possiamo anche memorizzare un registro DNS che, scritto sulla blockchain, diventerebbe molto meno suscettibile agli attacchi. E sappiamo bene quanto siano insidiose le modifiche ad un registro DNS. Distribuirlo può essere la chiave di svolta per abbattere il rischio di questa tipologia di rischi.
L’autenticazione dei dati è una necessità cruciale in molti settori, da quello medico alla filiera alimentare, oltre all’importanza di poter firmare documenti digitalmente in modo che sia sempre verificabile l’autenticità del dato. La blockchain è una tecnologia che si presta perfettamente a questo utilizzo. Con lo stesso principio, possiamo autenticare upload e download dei file, con la certezza di stare scaricando esattamente quello che vogliamo e non una copia manomessa.
Un'altra potenziale applicazione della Blockchain è nella gestione delle identità. La blockchain può essere utilizzata per creare un sistema sicuro e decentralizzato per l'archiviazione e la gestione delle informazioni sull'identità. Questo potrebbe essere utilizzato per aiutare a prevenire il furto di identità e le frodi e per facilitare il rispetto delle normative sulla privacy dei dati.
Abbiamo visto che gli Smart Contract sono “contratti” scritti sulla blockchain che, una volta eseguiti, non possono essere modificati o terminati. Se applichiamo questo concetto agli automatismi detection-and-response di reazioni ad attacchi e criticità di sicurezza. Ad esempio, potrebbero essere utilizzati per spegnere automaticamente i sistemi in caso di violazione, senza che l’autore dell’attacco possa fare nulla per impedire l’esecuzione dell’azione.