Debolezze del sistema Bitcoin

Il sistema Bitcoin è potenzialmente vulnerabile ad alcune tipologie di attacchi.

Indice

Possibili problemiModifica

Bitcoin weaknesses.jpg

Il Wallet non è ben protetto dagli attacchiModifica

Per impostazione predefinita il wallet Bitcoin non è cifrato. Per questo motivo, diventa facile preda delle truffe. Tuttavia, l’ultima versione del software Bitcoin contiene già i codici per la protezione dei dati del portafoglio, ma l’utente deve inserire manualmente il codice cifrato.

Un nuovo wallet può essere hackerato mediante le copie della vecchia passwordModifica

La vecchia copia del portafoglio con la relativa vecchia password spesso può essere facilmente ripristinata con l’utilizzo di un programma di ripristino (ad esempio, Time-Machine di Apple): il ripristino del vecchio portafoglio con una password ripristina anche il portafoglio e la password attuale. Di conseguenza, cambiare spesso password non garantisce la totale sicurezza.

Soluzione al problema: i creatori della criptovaluta devono modificare il sistema in modo che, quando si cambia la password del portafoglio, viene creato automaticamente un nuovo wallet con una nuova password, e tutti i risparmi accumulati dovrebbero essere trasferiti sul nuovo portafoglio. In questo modo il tentativo di ripristinare una copia di un vecchio portafoglio e la relativa password non andrà a buon fine. D’altro canto, gli utenti che meno conoscono quelli che sono gli aspetti più tecnici legati alla creazione del portafoglio, non saranno in grado di ripristinare i dati dei loro risparmi e perderanno i Bitcoin presenti nel portafoglio.

Tracciare la cronologia delle transazioniModifica

Tracciare la cronologia delle transazioni può essere utile all’identificazione dell’indirizzo. E’opportuno ricordare che il sistema Bitcoin non è un metodo di pagamento completamente anonimo.

Attacco SybilModifica

Un hacker può tentare di immettere nella rete nodi da lui controllati, e gli altri utenti potranno solo collegarsi a blocchi creati unicamente per mettere in pratica la frode. Come si verifica tale situazione:

  • Chi mette in pratica l’attacco blocca le transazioni degli altri utenti, disconnettendo il malcapitato dalla rete pubblica.
  • Chi mette in pratica l’attacco connette un altro utente a blocchi da lui creati in una rete separata. Di conseguenza, sembrerà che le transazioni abbiano caricato nuovamente i soldi (doppia spesa).
  • Chi mette in pratica l’attacco può vedere tutte le altre transazioni usando programmi specifici.

Attacco al 51%Modifica

Durante le fasi iniziali del suo sviluppo, il sistema Bitcoin analogamente ad altre valute simili, era vulnerabile al cosiddetto “attacco al 51%”: nella situazione in cui chi mette in pratica l’attacco disponga di una potenza di calcolo più elevata rispetto al resto della rete, questi è in grado di invalidare i blocchi degli altri utenti e confermare solo i propri, così da ricevere il 100% di tutti i nuovi Bitcoins, e bloccare qualsiasi transazione a sua discrezione. (Tuttavia non potrà inoltrare qualsiasi transazione a suo piacimento, poiché non disporrà delle chiavi private degli altri utenti per poter firmare queste transazioni). Allo stato attuale, per condurre questo tipo di attacco alla rete Bitcoin occorrerebbe una potenza di calcolo di gran lunga maggiore di quella dei primi 500 supercomputer messi assieme, poiché il sistema è molto meglio protetto da questi attacchi in seguito al passaggio in massa di miner dai GPUs agli ASICs.

Attacco Denial-of-Service (DoS)Modifica

Se si invia un numero considerevole di dati “spazzatura” al nodo che gestisce le transazioni, è possibile bloccarne il funzionamento. Il sistema Bitcoin ha un meccanismo di protezione integrato contro attacchi del tipo “denial of service”, ma oggi questo tipo di attacco diventa più complicato ad ogni nuovo tentativo.

Ad esempio, il client Bitcoin Satoshi 0.7.0 blocca tutti i nodi e le transazioni sospette, non consente la duplicazione di una transazione, monitora le segnalazioni legate agli attacchi DoS, scova gli intrusi nel sistema, corregge gli errori, ecc. Nell’ultima ottava versione del client Bitcoin Satoshi sono state aggiunte due nuove funzioni: la possibilità di registrare transazioni non-standard (oltre i 100 kilobytes) e di dividere la distribuzione delle informazioni alla memoria e all’HDD.

Rallentamento del tempoModifica

Gli hackers attaccano la rete e ne rallentano il tempo avviando il trasferimento di dati e di messaggi tra gli utenti, aggiornando le informazioni nella rete, rallentando la formazione della Blockchain e ostacolando il processo di convalida da parte dei membri della rete.

Vulnerabilità delle transazioniModifica

Nonostante le transazioni di Bitcoins siano firmate con chiavi personali, tale firma non copre tutte le informazioni elaborate per creare un hash della transazione. Infatti c’è la possibilità di modificare la transazione così anche l’hash si modifica, ma la firma resta invariata.

Su questo presupposto, è possibile condurre un attacco provando a sottrarre fondi da servizi di terze parti. L’utente identificato della transazione originale viene sostituito, i soldi raggiungono l’indirizzo, ma al servizio di assistenza tecnica viene comunicato che la transazione originale non è andata a buon fine. Pertanto, il servizio rimanda i fondi.

Questo metodo non è considerato un elemento di vulnerabilità del protocollo Bitcoin, poiché è noto dal 2011 e può essere contrastato semplicemente controllando la transazione originale.

Dati illegali all’interno della blockchainModifica

In alcuni paesi, è illegale trasferire alcuni dati. Questi dati possono essere inclusi all’interno delle transazioni di Bitcoin con possibili ripercussioni da un punto di vista legale. In ciascun nodo, sono presenti regole che vietano dati indiscriminati (non-standard), ma una piccola quota di dati anomali può comunque entrare a far par parte della rete di tanto in tanto.

Problemi di sicurezza e bugsModifica

I bugs possono creare instabilità all’interno del sistema di protezione. Ad esempio, le informazioni all’interno di un nodo vanno aggiornate in un breve lasso di tempo. Se a causa di un bug, ciò non avviene, le informazioni necessarie non compaiono nella catena, iniziano a diffondersi sulla rete dati inesatti, ecc. Tutte queste situazioni possono portare all’interruzione della rete per alcune ore.

Le moderne versioni dei clients Bitcoin sono realizzate con la necessità di reagire ai bugs e porre rimedio agli errori in breve tempo.

Possibili problemi in un futuro prossimoModifica

Hackeraggio delle hash-functionsModifica

Gli algoritmi per il calcolo delle hash functions dei parametri SHA-256 e ECDSA sono considerati impossibili da hackerare con la potenza dei computer attuali. La diffusione di computer quantistici ad alte prestazioni aumenterà il rischio che queste funzioni siano violate. In questo caso, l’attuale hash function del sistema Bitcoin potrà essere sostituito con uno più complesso.

Aumento del numero di utentiModifica

La rete Bitcoin dovrà fare i conti con un aumento dei suoi utenti. Ma se ciascun utente inizia ad usare software particolari per nascondere i propri indirizzi IP (disponibili agli altri utenti come impostazione predefinita), la rete cesserà di funzionare.

Possibili problemi legati alla segmentazione e alla perdita delle transazioniModifica

Possono insorgere difficoltà con la suddivisione dei blocchi e dei nodi, così come si può creare una certa confusione con le transazioni fino al verificarsi la perdita di alcune di queste. Gli sviluppatori del sistema Bitcoin cercano di monitorare il più possibile il verificarsi di questi problemi e aggiornano il codice in tal senso al fine di limitare i problemi di un mal funzionamento della rete.

Controllo della rete da parte degli hackersModifica

Se gli hackers controllano più della metà della potenza di calcolo della rete (il cosiddetto “attacco al 51%), possono danneggiare le operazioni: introdurre blocchi con transazioni “contaminate”, portare a termine una double-spending, separare i miners dai blocchi, bloccare le transazioni, ecc. Tuttavia, gli hacker non potranno mai:

  • Cancellare la transazione
  • Bloccare l’invio di una transazione
  • Cambiare il numero di monete emesse per la chiusura di un blocco
  • Creare monete da scratch
  • Essere coinvolti nell’invio di monete, che non si possiede

Transazioni spam e transazioni “vuote"Modifica

Gli hackers possono inviare false transazioni, così da ostacolare il funzionamento del sistema. E’ inoltre possibile inoltrare transazioni “vuote” per produrre un blocco della rete.

Non sono da considerare problemiModifica

La generazione di un numero elevato di indirizziModifica

Il numero di indirizzi non influenza il funzionamento della rete. Tale situazione può però occupare spazio sull’HDD di un utente o assorbire le risorse della CPU.

La generazione di blocchi di complessità inferioreModifica

Chi vuole attaccare la rete potrebbe ipoteticamente creare una catena di blocchi fittizi con una ridotta complessità. Questi blocchi risulteranno validi per la rete, ma la catena che ne deriva non potrà collegarsi alle altre catene della rete, poiché gli altri nodi possono individuare i blocchi fittizi (vedi Proof-of-work). Pertanto i blocchi fittizi non saranno accettati dalla rete.

Articoli correlatiModifica

Leggi in un'altra lingua