Prima dell’avvento dei computer esistevano sistemi di sicurezza solo di tipo fisico.
Sviluppate le prime tecnologie informatiche è nata anche la sicurezza dei sistemi di elaborazione(devices), detta cyber security e definita come l’insieme degli strumenti progettati per proteggere i dati dai pirati informatici (hacker).
In questi ultimi anni, si sono ampiamente diffusi i sistemi distribuiti, l’esempio possono essere le cryptovalute che usano sistemi peer-to-peer e quindi richiedono una sicurezza interna, ovvero a livello di rete distribuita.
Gli attacchi informatici possono essere di due tipologie:
• Attacchi passivi: dove né il mittente né il destinatario si rendono conto di un terzo che li osserva o legge il messaggio/transazione.
• Attacchi attivi: implicano la modifica del flusso dei dati, creandone un altro falso flusso.
I sistemi informatici quindi hanno bisogno di essere sicuri tramite strumenti come l’autenticazione, la riservatezza dei dati e il controllo all’accesso.
Il primo criterio adottato è la crittografia, che dal greco deriva da ‘nascosto’ e si definisce come l’insieme di metodi che rendono un messaggio “offuscato” o meglio non comprensibile a persone terze non autorizzate a leggerlo = chiave segreta (crittografata)
Un secondo pilastro su cui si basa la sicurezza è lo schema di Feistel:
una sequenza a blocchi cifrati simmetrici dove la chiave cifrata anch’essa passa con sostituzione e trasposizione per ogni blocco.
La chiave crittografica fra mittente e destinatario viene scambiata sulla base di alcuni algoritmi che possono essere di due tipi:
Un esempio di crittografia a chiave privata simmetrica singola:
Le due parti A e B devono condividere la stessa chiave per comunicare. Come possono scambiarla?
Un esempio di crittografia a chiave pubblica:
Gli algoritmi a chiave pubblica (RSA) si basano su algoritmi matematici e non su operazioni bit, quindi il vantaggio più grande è la asimmetria la quale introduce due chiavi distinte: una chiave pubblica e una privata. Il tutto è descrivibile tramite un processo:
I. Ogni utente genera una coppia di chiavi
II. Ciascun utente porta una delle due chiavi in un registro pubblico e l’altra chiave la tiene per sé.
III. Se si vuole mandare un messaggio a una persona, si prende la sua chiave pubblica e si invia il messaggio. Per esempio Alice vuole mandare un messaggio a Bob, prende la chiave di lui nel registro pubblico e gli inoltra il messaggio. Bob riceve il messaggio ma lo potrà vedere e decifrare solo con la sua chiave privata.
IV. Si decifra il messaggio con la chiave privata, compito del destinatario.
Oltre che il processo di cifratura appena descritto può esserci il processo inverso di autenticazione.
La crittografia a chiave pubblica si classifica in tre categorie:
La firma digitale in Blockchain è di fondamentale importanza, in quanto la tecnologia appena spiegata permette le transazioni attraverso codici hash, stessi codici che sono predisposti all’interno dei blocchi per la conferma della transazione. Quindi la firma digitale appartiene a ogni portafoglio e attraverso di essa si possono verificare le transazioni. Il tutto quindi è ‘quasi’ immune da attacchi e rende le informazioni private.
Ho cercato di sintetizzare e facilitare la comprensione di una delle caratteristiche principali del sistema Blockchain e del sistema distribuito che si serve di questi codici hash con chiavi pubbliche e private. Tutta la catena di blocchi è fondata su essi e il loro funzionamento. Bitcoin è la perfetta applicazione.
P.s. tutte le immagine sono produzione propria