Crittografia e password cifrate nel mondo blockchain e crypto

password crypto

La conservazione e la gestione in sicurezza dei dati e delle password è uno degli aspetti più importanti nel mondo crypto e blockchain, e più in generale di tutti gli ambienti online.

La crittografia, intensa come arte delle “scritture nascoste” capace di convertire un testo in chiaro in testo cifrato e viceversa, ci viene in aiuto rendendo difficile  agli hacker consentire l’accesso non autorizzato a determinate reti e transazioni.

Approfondiamo di seguito i diversi metodi con cui la crittografia può proteggere informazioni preziose e salvaguardare password.

Crittografia simmetrica e asimmetrica delle password nel settore crypto

Generalmente quando si parla di protezione delle password nelle crypto, si fa riferimento a due metodi di crittografia: simmetrica ed asimmetrica.

Quella simmetrica si riferisce ad una tipologia di criptaggio del testo che utilizza una sola chiave per cifrare e decifrare informazioni

La chiave di codifica è condivisa tra mittente e destinatario e solitamente viene concordata in anticipo: essa rappresenta l’elemento centrale che nelle criptovalute consente agli utenti di accedere e gestire le proprie risorse digitali.

La crittografia simmetrica a singola chiave risulta uno dei mezzi più diffusi per proteggere password, transazioni e comunicazione tra nodi operatori.

Quando si esegue per esempio un trasferimento di fondi da un wallet all’altro, essa assicura che le informazioni vengano lette e condivise solo da due soggetti interessati nella transazione, tenendo al sicuro i dati da occhi indiscreti.

Ad ogni modo, nonostante i vantaggi che apporta, crittografia simmetrica presenta dei limiti in termini di scalabilità e gestione delle chiavi.

Infatti la necessità di una comunicazione in coppia, limita di molto l’espansione di questa pratica in un sistema con molti più utenti. Allo stesso tempo più utenti implicano errori umani nella gestione e conservazione della cosiddetta “private key”, la quale se persa porta alla perdita delle crypto o dei dati conservati nel portafoglio virtuale.

Per sopperire a questi limiti, la crittografia asimmetrica ci viene in aiuto predisponendo una coppia di chiavi separate (pubblica e privata) nella codifica e decodifica delle password.

Questo ulteriore livello di sicurezza aumenta istantaneamente la protezione dei dati: la chiave pubblica  può essere condivisa con chiunque su qualsiasi rete (come quando condividiamo il nostro indirizzo per ricevere un pagamento in crypto), mentre la chiave privata deve essere mantenuta segreta.

Entrambe le chiavi sono generate da un algoritmo che utilizza grandi numeri primi per creare due chiavi uniche e matematicamente collegate. 

Ad ogni modo chi possiede la chiave pubblica può crittografare un messaggio cifrato ma solo il detentore della controparte private può decifrare il testo. Possiamo immaginare la cosa come se fosse una casella di posta elettronica: chi detiene la chiave pubblica può inviare un messaggio ma solo il possessore di quella privata può aprire la mail e leggere i messaggi.

Software wallet non custodiali come Trust Wallet o MetaMask utilizzano la crittografia asimmetrica per offrire maggiore sicurezza possibile ai propri utenti.

Fonte: https://www.javaboss.it/crittografia-in-java/

I formati più comuni di password crittografate

La crittografia delle password nel settore crypto e blockchain avviene secondo diversi formati che possono essere utilizzati per diversi scopi ed offrono livelli di sicurezza differenti:

  1. MD5 (Message Digest 5):

L’algoritmo MD5, sviluppato da Ronald Rivest nel 1991, genera un hash a 128 bit (32 caratteri esadecimali) a partire da un input di lunghezza variabile.

Non è più considerato sicuro a causa delle vulnerabilità scoperte nel suo algoritmo. Tuttavia, è ancora utilizzato in alcuni contesti legacy, ad esempio per verificare l’integrità dei file.

  1. SHA-1 (Secure Hash Algorithm 1):

SHA-1 genera un hash a 160 bit (40 caratteri esadecimali).

Non è più considerato sicuro come un tempo avendo mostrato diverse vulnerabilità: ora è rimpiazzato generalmente da algoritmi più robusti come SHA-256 e SHA-3. Ad ogni modo viene ancora utilizzato in una vasta gamma di sistemi e nuove applicazioni,

  1. Salt:

Il salt è una sequenza casuale di bit che viene aggiunta alla password prima di calcolare l’hash.

Risolve il problema delle collisioni (due password diverse che generano lo stesso hash) nei metodi di hashing..

Aggiungendo un salt, anche password identiche avranno hash completamente diversi. Questo rende più difficile per gli attaccanti decifrare le password tramite attacchi di brute forcing.

  1. Bcrypt:

Bcrypt è un algoritmo di hashing specificamente progettato per la crittografia delle password.

Utilizza un salt e un numero di iterazioni per rendere più lento il calcolo dell’hash. È ampiamente utilizzato per proteggere le password degli utenti nel campo dei database

La scelta del formato di crittografia dipende dalle esigenze specifiche del sistema di riferimento. Al giorno d’oggi, è consigliabile utilizzare algoritmi di hashing come bcrypt o SHA-2 per proteggere le password e mitigare gli attacchi informatici.

Funzioni di hash e firme digitali

Un’altro modo per proteggere password ed informazioni preziose nelle crypto è quello di affidarsi alle funzioni di hash, ovvero algoritmi che trasformano qualsiasi forma di dato in una stringa di caratteri a lunghezza fissa.

Utilizzando algoritmi di hashing robusti, possiamo proteggere efficacemente le informazioni sensibili e prevenire attacchi informatici.

Le funzioni di hash sono irreversibili: non è possibile cioè  riconvertire un hash nei suoi dati originali. Esse sono essenziali nella gestione dei dati su blockchain perché consentono di strutturare le informazioni senza comprometterne la loro integrità iniziale

Gli hash possono anche agire come impronte digitali per tutte le password crittografate, tali da proteggere l’utente contro azioni non autorizzate sul proprio account.

Infatti qualsiasi modifica ai dati originali comporterebbe un nuovo hash, che non corrisponderebbe più alla fonte originale e quindi non sarebbe verificabile sulla blockchain.

Un’altro metodo per garantire la sicurezza delle password, e più nello specifico  l’autenticità e l’integrità dei dati in un messaggio, è quello di utilizzare le cosiddette “firme digitali” (tecnica crittografia asimmetrica).

Si tratta semplicemente di un metodo per accertare che il proprietario di quei dati specifici stia approvando la transazione. Generalmente  Il mittente crea la firma digitale utilizzando una chiave privata per crittografare i dati relativi alla firma, mentre il destinatario ottiene la chiave pubblica del firmatario per decrittografare i dati. Questo codice rappresenta una prova inconfutabile che un messaggio è stato creato solo ed esclusivamente dal mittente e che non sia stato manomesso online.

Quando si parla di firme digitali si pensa subito ai dispositivi firma come Ledger, Trezor e Bitbox  che permettono per l’appunto di validare una transazione prima che venga diffusa con il resto di una rete crittografica.

Attenzione però a  non considerare questi dispositivi come wallet: essi non contengono le vostre criptovalute ma vi permettono solo di approvare le transazioni necessarie per spenderli.