SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
Università degli Studi di Salerno
Dipartimento di Informatica
Tesi di Laurea di I livello in
Informatica
L’utilizzo di tecnologia Blockchain a supporto
della sicurezza di dati critici generati in ambito
Internet of Things
Relatore
Prof. Francesco Palmieri
Candidato
Gianmarco Beato
Anno Accademico 2018-2019
L’utilizzo di tecnologia Blockchain a supporto
della sicurezza di dati critici generati in ambito
Internet of Things
Gianmarco Beato
Tesi di laurea triennale, © Giovedì 26 settembre 2019
“Il Web è progettato per essere universale: per includere tutto e tutti.”
Tim Berners-Lee
Alla mia famiglia,
ai miei amici,
a chi ha sempre creduto in me.
Grazie
Ringraziamenti
PAROLE CHIAVE
Internet of Things
Security
Blockchain
Ethereum
Indice
Introduzione 1
1. Il fenomeno dell’IoT 3
1.1. Definizione: che cos’è l’IoT?. . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. L’impatto IoT sull’economia e le aspettative di crescita. . . . 5
1.3. Le potenzialità del mondo interconnesso sulla società. . . . . . 5
1.3.1. Esempi di ambiti applicativi. . . . . . . . . . . . . . . . . . . . . .6
1.3.2. Protagonisti in campo. . . . . . . . . . . . . . . . . . . . . . . . . . .6
1.3.3. Il futuro dell’Internet delle cose. . . . . . . . . . . . . . . . . . .7
2. Sicurezza 8
2.1. Definizione generale di sicurezza. . . . . . . . . . . . . . . . . . . . . . 8
2.2. La sicurezza delle reti informatiche. . . . . . . . . . . . . . . . . . . . .9
2.2.1. Principali modalità di attacco e contromisure. . . . . . . . 11
2.3. La sicurezza nell’IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4. La tecnologia blockchain: la fiducia su Internet. . . . . . . . . . .15
2.4.1. Definizioni di blockchain. . . . . . . . . . . . . . . . . . . . . . . .15
2.4.2. Concetti di base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.3. Principi di funzionamento . . . . . . . . . . . . . . . . . . . . . . .18
2.4.4. Algoritmi e protocolli di consenso. . . . . . . . . . . . . . . . .19
2.4.5. Blockchain pubbliche e private. . . . . . . . . . . . . . . . . . . 20
2.4.6. Blockchain al servizio dell’Internet of Things. . . . . . . .21
2.4.7. Ethereum: principi di base…………………………….22
3. Ethereum: un caso d’uso 24
3.1. Architettura del sistema………………………………………24
3.2. Privacy e sicurezza…………………………………………...26
3.3. Implementazione del sistema di sostituzione batterie basato
su Ethereum…………………………………………………..26
Conclusioni 29
Sitografia 30
Bibliografia 31
Introduzione
Negli ultimi anni Internet ha conosciuto una crescita esponenziale,
comportando una rapidissima rivoluzione tecnologica e un grandissimo
mutamento della società: Internet ha cambiato le vite di tutti, dal modo di
comunicare, ricercare, intrattenersi e acquistare, ed ogni giorno siamo sempre
più connessi alla rete. Con lo sviluppo sempre più rapido del World Wide
Web e delle varie tecnologie di comunicazione si sta assistendo anche ad un
aumento vertiginoso di oggetti smart che acquisiscono intelligenza, sono
dotati di un'anima software, di sensori, memoria e che hanno la capacità di
accedere alla rete ed interagire con essa senza l'intervento umano: si tratta
dell'Internet of Things (IoT), una incredibile opportunità tecnologica che sta
diventando sempre più pervasiva nelle nostre vite. Tuttavia, però, a causa
delle risorse limitate di questi dispositivi e dell'architettura centralizzata su
cui si basano, l'IoT sta diventando sempre più fragile, causando innumerevoli
problemi di sicurezza. Fortunatamente, l'utilizzo della tecnologia blockchain,
che si sta affermando come un'innovazione importante nel modo di
condividere le informazioni, aiuta a superare i problemi di sicurezza di tali
dispositivi creando un sistema IoT distribuito ed autonomo; infatti il punto di
forza di tale tecnologia è quello di offrire soluzioni di consenso in modo da
garantire la fiducia in ambienti distribuiti, peer-to-peer, senza la presenza di
una terza parte attendibile. Nel 2008, infatti, viene presentato da Satoshi
Nakamoto Bitcoin, un sistema di pagamento mondiale completamente
decentralizzato che elimina per la prima volta la necessita di dover utilizzare
un intermediario per effettuare lo scambio di asset digitali. Alla base del
funzionamento di Bitcoin vi è proprio la tecnologia blockchain le cui
applicazioni non si limitano soltanto alla possibilità di creare valute digitali.
Negli ultimi anni sono nati sulla scia di Bitcoin centinaia di progetti che si
prefiggono come scopo la risoluzione dei problemi più svariati. Tra questi ve
ne sono alcuni, tra cui ad esempio Ethereum, che mirano a utilizzare la
blockchain come tecnologia per sviluppare applicazioni e una nuova versione
del web decentralizzato.
Questa tesi si pone come obiettivo la realizzazione di un'architettura
totalmente decentralizzata basata su blockchain: si propone, infatti, un
esempio di utilizzo della blockchain di Ethereum per creare un sistema di
sostituzione delle batterie dei veicoli elettrici. In questa architettura vengono
1
utilizzati due tipi di clients IoT, A e B. L’architettura pensata risolve il
problema dell’architettura centralizzata del paradigma dell’IoT oltre a
superare i limiti prestazionali dei dispositivi IoT. I clients di tipo A sono
considerati dispositivi IoT con risorse limitate e sono responsabili
dell'interazione con l’utente e della raccolta dei dati IoT; I clients di tipo B,
invece, sono da considerare come dei dispositivi IoT con risorse maggiori o
uguali ai personal computer e possono eseguire il processo di mining. Si
utilizza una rete blockchain privata di Ethereum, non solo perché supporta
contratti intelligenti con cui possiamo progettare interazioni relativamente
complesse tra diversi dispositivi IoT, ma anche perché può generare un nuovo
blocco più velocemente di Bitcoin. Inoltre si utilizza l’algoritmo PoW come
protocollo di consenso; e come metodo di crittografia si utilizza l’account
Ethereum. Inoltre, sia i clients di tipo A che di tipo B sono connessi alla rete
Internet.
Lo scopo di questa tesi non si limita alla realizzazione dell’architettura
sopra descritta, mira infatti anche ad offrire una panoramica dettagliata a
riguardo l'IoT e la blockchain, analizzando come queste due tecnologie
possono interagire tra loro per creare servizi tangibili nel mondo reale.
La tesi si articola in tre capitoli:
Capitolo 1 Nel primo capitolo si introducono i concetti
fondamentali del fenomeno dell’IoT
Capitolo 2 Nel secondo capitolo viene illustrato prima il
concetto generale di sicurezza e sicurezza nelle reti
informatiche poi della tecnologia Blockchain nello scenario
Internet of Things.
Capitolo 3 Nel terzo capitolo viene mostrato un esempio
di utilizzo della blockchain di Ethereum in cui viene creata
un’architettura decentralizzata per la realizzazione di un
sistema di sostituzione delle batterie dei veicoli elettrici
Nelle conclusioni viene infine analizzato il lavoro svolto verificando se sono
stati raggiunti tutti gli obiettivi che questa tesi si prefissa.
INTRODUZIONE 2
Capitolo 1
Il fenomeno dell’IoT
L’internet delle cose è la più grande rivoluzione introdotta dalla rete
globale negli ultimi tempi, si propone di fondere il mondo reale con quello
virtuale creando un ambiente più intelligente. Un ambiente in grado di sentire,
analizzare e adattarsi per rendere le nostre vite più semplici, sicure ed
efficienti.
L’internet of Things (IoT) è un fenomeno che si sta velocemente
affermando come paradigma rivoluzionario nello scenario delle nuove
telecomunicazioni senza fili. L’idea alla base di questo concetto è la pervasiva
presenza di una gran quantità di cose o oggetti che attraverso varie tecnologie
sono in grado di interagire tra di loro e co-operare per il raggiungimento di
un obiettivo comune.
Esistono numerosi casi d’uso, dalle case intelligenti, alla gestione di
impianti di produzione industriale, dal monitoraggio e miglioramento di
coltivazioni e allevamenti all’utilizzo in campo militare, da sistemi di scala
globale a piccoli ambienti.
1.1 Definizione: che cos’è l’IoT?
Internet delle cose (o, più propriamente, Internet degli oggetti o IoT,
acronimo dell’inglese Internet of Things) è l’ espressione utilizzata per
definire l’estensione di Internet al mondo degli oggetti. L’Internet delle cose
può essere visto come una vera e propria evoluzione dell’uso della Rete. Esso
è la rete delle apparecchiature e dei dispositivi (detti gli “oggetti” o “cose”),
connessi ad Internet, che si rendono riconoscibili e acquisiscono intelligenza
grazie al fatto di essere equipaggiati da un software che permette di scambiare
dati con altri oggetti connessi.
3
Per "cosa" o "oggetto" si intende più precisamente categorie quali:
dispositivi, apparecchiature, impianti e sistemi, materiali e prodotti tangibili,
opere e beni, macchine e attrezzature. Questi oggetti connessi che sono alla
base dell’Internet delle cose si definiscono più propriamente smart
objects (oggetti intelligenti) e si contraddistinguono per alcune proprietà o
funzionalità. Le più importanti sono identificazione, connessione,
localizzazione, capacità di elaborare dati e capacità di interagire con
l’ambiente esterno. Obiettivi di questi dispositivi sono raccogliere e trasferire
dati ed informazioni, dare comandi e controllare particolari attività. Dal
frigorifero alla smart tv, dalla lampadina al termostato, dalla telecamera allo
smartwatch, tutti possono essere considerati esempi di IoT. In ambito
cittadino, ad esempio, un rilevatore collocato in una strada può controllare i
lampioni e segnalare se la lampada funziona, oppure potrebbe segnalare
informazioni sulla qualità dell’aria o sulla presenza di persone.
Le due caratteristiche principali di un “oggetto connesso” sono:
• Avere un indirizzo IP che ne consenta l’identificazione univoca sulla
Rete.
• Avere la capacità di scambiare dati attraverso la rete stessa senza
bisogna dell’intervento umano. Questo può essere fornito
direttamente dal produttore, sotto forma di firmware.
IL FENOMENO DELL’IOT 4
Figura 1.1: IoT Network
1.2 L’impatto IoT sull’economia e le aspettative di crescita
Nei prossimi anni l’Internet of Things è destinato a crescere in modo
esponenziale, sia per quanto riguarda la sua diffusione, sia in termini di valore
economico. Nei prossimi 10 anni la maggior parte del traffico Internet sarà
generata da milioni di dispositivi connessi come sensori, misuratori,
elettrodomestici, mezzi di trasporto etc… Secondo gli analisti entro il 2020 ci
saranno più di ventisei miliardi di oggetti connessi a livello globale, ABI
Research stima che saranno più di 30 miliardi. Altri istituti parlano di 100
miliardi. Secondo l’americana Cisco entro il 2020 il valore aggiunto
complessivo all’economia globale sarà di 14.000 miliardi di dollari. Secondo
l'Osservatorio Internet of Things del Politecnico di Milano, il mercato degli
smart objects in Italia è arrivato a toccare i 3,7 miliardi di euro, con una
crescita del 36% rispetto all'anno precedente. Altro aspetto interessante di
quella che è definita come la “quarta rivoluzione industriale” è che il 90%
del valore economico creato dall’IoT sarà catturato dagli utenti: il 60% sarà
destinato ai paesi industrializzati, ma il restante 40% aiuterà le economie dei
paesi in via di Sviluppo. Le maggiori attrattive di business si possono
raggruppare in 4 macro argo-menti: "Smart Manufacturing", "Smart Homes",
"Smart Health" e "Smart Customer Experience". Questi dati sono stati
ottenuti tenendo in considerazione la crescita stimata del settore e la spesa
stimata per l'IoT in quel settore.
1.3 Le potenzialità del mondo interconnesso sulla società
E’ fuori dubbio, quindi, che le potenzialità derivanti da
un’applicazione completa di questo paradigma portino sia ad una rivoluzione
industriale sia ad un radicale cambiamento di molti aspetti della vita
quotidiana e comportamentale delle persone. Dal punto di vista di un utente
privato, gli effetti più importanti del paradigma dell’internet of things sono
visibili sia dal lato lavorativo che domestico. In questo contesto la domotica,
l’assistenza virtuale, lo Smart Car, l’e-health sono solo alcuni esempi dei
possibili scenari in cui questo nuovo paradigma rappresenta un ruolo chiave
oggi e nel prossimo futuro.
5 IL FENOMENO DELL’IOT
1.3.1 Esempi di ambiti applicativi
Virtualmente qualsiasi oggetto può essere dotato di un dispositivo
elettronico con un software in grado di collegarsi ad internet o a una rete
locale, per cui gli ambiti di applicazione dell’Internet delle cose sono
praticamente infiniti: alle smart home, le case intelligenti che regolano da sole
temperatura e illuminazione in base alle condizioni esterne, alle auto che
dialogano in tempo reale con la strada e le altre vetture per evitare incidenti e
ottimizzare consumi e percorsi. Dalla medicina, con pacemaker e altri
dispositivi in grado di allertare direttamente i soccorsi se il portatore si sente
male, all’agricoltura, con sensori immersi nel terreno che segnalano
composizione e umidità del suolo al sistema che eroga acqua e fertilizzanti.
A livello domestico i dispositivi connessi si potranno controllare attraverso il
browser di un computer, accedendo alla rete domestica, oppure più
semplicemente attraverso una app connessa in remoto direttamente dallo
smartphone. Già oggi è possibile, tramite il proprio cellulare, impostare il
termostato di casa e vedere in tempo reale le immagini delle telecamere di
sicurezza di casa. Inoltre molte pubbliche amministrazioni stanno già
guardando con crescente interesse alla possibilità di rendere sempre più smart
le proprie città.
L’unico limite insomma sembra essere la fantasia: qualunque oggetto,
a patto di essere collegato alla rete e di comunicare qualcosa a qualcuno, può
ricadere in questa definizione.
1.3.2 Protagonisti in campo
Tra i principali protagonisti in campo come fornitori di dispositivi,
servizi e framework di sviluppo si possono elencare:
• Microsoft L’offerta di Microsoft comprende più che altro soluzioni
per il cloud e la gestione dei dispositivi attraverso la piattaforma
“Azure IoT Suite”.
• Samsung La direzione, o meglio il settore commerciale al quale
punta Samsung, sembra essere quello della Smart Home, con il lancio
della piattaforma “Smartthings”, un insieme di prodotti per le case
intelligenti.
IL FENOMENO DELL’IOT 6
• Apple La casa di Steve Jobs ha messo a disposizione la piattaforma
HomeKit, che permette di configurare i dispositivi Apple in una smart
Home in modo da poterli utilizzare attraverso Siri.
1.3.3 Il futuro dell’Internet delle Cose
La IoT si sta sviluppando parallelamente anche all’utilizzo
dell’intelligenza artificiale. Sono allo studio ad esempio dei nuovi sistemi che
integrano macchine per gli esami clinici in grado di inviare automaticamente
i risultati delle analisi a delle banche dati dove l’intelligenza artificiale,
analizzando grandi masse di dati, è in grado di estrapolare una diagnosi e
consigliare una cura. Intelligenza artificiale, big data e IoT sono fra loro
connessi a livello profondo e lo saranno sempre di più nelle applicazioni
future. Miliardi di dispositivi ed oggetti vari collegati ad internet trasmettono
un’immane massa di dati che una mente umana non saprebbe analizzare né
gestire. L’utilizzo dell’intelligenza artificiale potrebbe invece trovare molti
nuovi ambiti di applicazione, rilevando ad esempio similitudini e differenze
analizzando milioni di cartelle cliniche, seguendo con l’esempio in campo
medico, di pazienti con la stessa patologia.
7 IL FENOMENO DELL’IOT
Capitolo 2
Sicurezza
L’Internet of Things, come visto in precedenza, ha tantissimi ambiti
applicativi. La disponibilità di un numero sempre crescente di dispositivi in
grado di connettersi ad Internet ha aperto una nuova sfida per chi lavora con
tecnologia IoT , ovvero quella costituita dai rischi intrinseci per la sicurezza.
Infatti ogni dispositivo IoT può essere un potenziale punto di accesso per gli
hacker. La risposta agli innumerevoli problemi di sicurezza dell’IoT potrebbe
essere la tecnologia Blockchain. Di seguito si discuterà prima del concetto
generale di sicurezza e sicurezza nelle reti informatiche, poi della tecnologia
Blockchain nello scenario Internet of Things.
2.1 Definizione generale di sicurezza
La sicurezza è definita come segue: “La condizione che rende e fa
sentire di essere esenti da pericoli, o che dà la possibilità di prevenire,
eliminare o rendere meno gravi danni, rischi, difficoltà, evenienze spiacevoli,
e simili.”
I concetti principali riguardanti la sicurezza sono:
Minaccia: una azione che se attuata sfruttando delle vulnerabilità può causare
un danno.
Vulnerabilità: una componente di un sistema in corrispondenza alla quale le
misure di sicurezza sono assenti, ridotte o compromesse. Può essere utilizzata
per mettere in pratica una minaccia.
Rischio: la possibilità che si possa verificare un evento dannoso.
Contromisura: un provvedimento diretto a prevenire o neutralizzare eventi
dannosi.
Difesa: la messa in pratica di contromisure.
8
2.2 La sicurezza delle reti informatiche
Le reti di calcolatori e le tecnologie per la comunicazione dei dati sono
in rapida evoluzione e rappresentano un aspetto cruciale per il progresso
tecnologico. Internet è la rete più utilizzata e diffusa ed è ormai parte della
nostra vita quotidiana. La comunicazione digitale e le reti di computer stanno
cambiando molti aspetti del nostro modo di vivere. Le nuove tecnologie
permettono di spedire quantità di dati sempre maggiori con segnali più veloci,
permettendo un notevole miglioramento dei servizi offerti. Nello specifico
una rete è un insieme di dispositivi (chiamati anche nodi o stazioni) connessi
da canali di comunicazione. Un nodo può essere un computer, una stampante,
un sensore o qualsiasi altro dispositivo capace di spedire o ricevere dati
generati da altri nodi della rete. Gli scopi principali di una rete sono: accedere
alle informazioni, condividere delle risorse, e facilitare la comunicazione.
Quando comunichiamo attraverso la rete non stiamo facendo altro che
scambiare delle informazioni. Un sistema di comunicazione è composto da
cinque componenti: un messaggio, un mittente, un destinatario, un mezzo di
comunicazione ed un protocollo.
Una rete è costituita sia dall'hardware (computer e altri dispositivi) sia
dal software (programmi e protocolli) che gestisce il trasferimento dei dati da
un punto all'altro della rete. Una rete effettua i propri compiti grazie ad
un'architettura a strati (o livelli) in cui ogni strato ha un insieme di funzioni.
Il modello OSI è uno standard per le funzioni di comunicazione nelle reti.
Esso stabilisce per l'architettura logica di rete una struttura a strati composta
da una pila di protocolli di comunicazione de rete suddivisa in 7 livelli (fisico,
collegamento, rete, trasporto, sessione, presentazione, applicazione). Ma a
livello implementativo lo standard de facto affermatosi per le architetture di
rete a livelli è il TCP/IP, che riprende in parte il modello OSI. La principale
differenza fra il modello OSE e quello TCP/IP è dovuta al fatto che la suite
TCP/IP è costituita da vari protocolli strutturati gerarchicamente, ma non così
rigidamente come previsto dal modello OSI per il quale ogni strato ha un
preciso insieme di funzioni. In TCP/IP i protocolli sono abbastanza
indipendenti e possono essere usati a seconda delle necessità specifiche.
Inoltre il modello TCP/IP prevede solo cinque strati (fisico, collegamento,
rete, trasporto ed applicazione). Per lo strato di rete il protocollo principale è
IP, mentre per lo strato di trasporto la suite TCP/IP prevede tre protocolli:
TCP, UDP e SCTP. Per la sicurezza delle informazioni scambiate attraverso
la rete esistono alcuni importanti protocolli: IPSec, SSL/TLS e HTTPS. IPSec
fornisce strumenti crittografici per la protezione al livello di rete, TLS (e il
9 SICUREZZA
suo predecessore SSL) fornisce funzionalità di sicurezza nello strato di
trasporto.
La “sicurezza informatica”, o meglio, la “sicurezza
dell’informazione”, è l’insieme dei mezzi e delle tecnologie mirate alla
protezione dei sistemi informatici tramite l’analisi delle vulnerabilità, del
rischio e delle minacce, al fine di proteggerli da possibili attacchi che
potrebbero provocare danni (es. economico, politico-sociale, etc…). In
particolare, nella sicurezza delle reti si valutano l’eventuale presenza di
vulnerabilità dei singoli nodi che compongono la rete, e la sicurezza dello
scambio di informazioni tra i nodi. Un sinonimo del termine “sicurezza
informatica” spesso usato è quello di “cybersecurity”.
Nei primi decenni della loro esistenza, le reti di computer vennero
utilizzate prevalentemente dai ricercatori universitari per inviare e ricevere
email, e dalle aziende per condividere stampanti. In quelle applicazioni non
si prestava molta attenzione alla sicurezza. Oggi per via della crescente
informatizzazione della società e dei servizi pubblici e privati, milioni di
persone usano le reti per effettuare acquisti, lavorare, condividere risorse,
comunicare, quindi la sicurezza delle reti sta diventando sempre più un
problema potenzialmente vasto ed importante, il cui interesse sta crescendo
negli ultimi anni proporzionalmente alla crescente diffusione delle reti stesse.
La sicurezza è un argomento molto ampio, che copre innumerevoli
problematiche. Nella sua forma più semplice, riguarda come fare in modo che
intrusi non riescano a leggere o, peggio ancora, modificare di nascosto, i
messaggi destinati a terzi. Si occupa inoltre di impedire che determinate
persone possono accedere a servizi remoti che non sono autorizzate a usare.
La sicurezza si occupa anche di come accertarsi dell’identità dei mittenti dei
messaggi, di come impedire l’intercettazione e la ripetizione di messaggi
legittimi catturati sulla rete, e di come perseguire chi afferma di non aver mai
spedito certi messaggi. La maggior parte dei problemi di sicurezza sono
causati da persone malintenzionate, che tentano di guadagnare qualcosa,
catturare l’attenzione oppure danneggiare qualcuno.
L’approccio odierno alla cybersecurity si concentra su cosa e su come
fare per prevenire un incidente di sicurezza e come comportarsi nel caso un
tale incidente si verifichi. Ciò è confermato nelle linee guida (cybersecurity
framework) emanate dal National Institute of Standards and Technologi che
prevedono i seguenti macro-processi: Identifica, Proteggi, Rileva, Rispondi,
Ripristina.
Inoltre, dal momento che l’informazione è diventata un bene, e che la
maggior parte delle informazioni sono custodite su supporti informatici, ogni
organizzazione deve essere in grado di garantire la sicurezza dei propri dati,
SICUREZZA 10
in un contesto dove i rischi informatici sono in continuo aumento. Per questo
esistono, a carico delle imprese, precisi obblighi in materia di privacy, tra cui
quello di redigere annualmente uno specifico documento programmatico
sulla sicurezza.
I requisiti principali che garantiscono la sicurezza dell’informazione
sono la nota triade CIA:
• Confidentiality La confidenzialità, detta anche segretezza, si occupa
di mantenere le informazioni fuori dalla portata degli utenti non
autorizzati.
• Integrity L’integrità si riferisce al fatto che il messaggio ricevuto è
esattamente quello che è stato inviato, senza subire, quindi, nessuna
modifica non autorizzata.
• Availability La disponibilità fa riferimento alla capacità di poter
accedere ai propri dati quando ne si ha il bisogno.
Altri requisiti aggiunti alla triade CIA sono:
• Authenticity L’autenticazione si occupa di stabilire l’identità del
soggetto con cui stiamo comunicando, prima di rivelare informazioni
sensibili o concludere transazioni commerciali.
• Non-repudiation Il termine non ripudio riguarda il meccanismo
secondo il quale il mittente di un messaggio non può successivamente
sostenere di non averlo inviato, e per contro che il destinatario del
messaggio non possa sostenere di non averlo ricevuto.
2.2.1 Principali modalità di attacco e contromisure
Le principali modalità di attacco che hanno come obiettivo la violazione di
requisiti di sicurezza dei sistemi informatici sono:
• Ransomware E’ un tipo di malware che limita l’accesso del
dispositivo che infetta, richiedendo un riscatto per rimuovere la
limitazione.
11 SICUREZZA
• Spyware E’ un tipo di software che raccoglie informazioni di un
utente senza che l’utente stesso se ne accorga, trasmettendole tramite
Internet ad una organizzazione che le utilizzerà per trarne profitto.
• Virus, Worm e Trojan Programmi che una volta installati su di un
computer ottengono accesso alle risorse potendone fare qualsiasi
cosa, dalla distruzione al furto.
• Denial-of-service Si tratta di un attacco che punta a rendere
inutilizzabile un determinato servizio e per raggiungere questo scopo
punta a far esaurire le risorse del server che mette a disposizione tale
servizio.
• Backdoor Il backdoor è un metodo per passare oltre la normale
autenticazione in un prodotto, un sistema informatico, un
crittosistema o un algoritmo.
• Spoofing Lo spoofing è un attacco utilizzato per manipolare i dati
trasmessi in una rete, falsificando varie informazioni come l’identità
di un host o il mittente di un messaggio. Una volta che un attaccante
riesce ad impersonare qualcun altro all’interno di una rete gli è
possibile intercettare informazioni riservate e diffondere false
informazioni.
Alcune importanti contromisure sono:
• Riduzione vulnerabilià Ovvero ritrovare eventuali punti deboli del
sistema, come i bug, e metter in pratica delle soluzioni per rinforzarli.
• Autenticazione e identificazione Sapere chi sta accedendo ad una
risorsa ed avere la prova che sia effettivamente chi sostiene di essere
è alla base delle politiche del controllo degli accessi.
• Anti-virus Programma in grado di rilevare ed eliminare programmi
nocivi.
• Firewall Un Firewall è un dispositivo che si pone fra la rete interna
di un’organizzazione e il resto di Internet. Esso permette di monitorare
e filtrare tutto il traffico di rete sia in entrata che in uscita utilizzando
SICUREZZA 12
una serie di regole di sicurezza per consentire o bloccare il passaggio
di determinati pacchetti di rete.
• Crittografia La sicurezza nelle reti di calcolatori si ottiene
principalmente attraverso l’uso di strumenti crittografici. La
crittografia è lo studio delle tecniche per occultare un messaggio in
modo da non essere comprensibile a persone non autorizzate e
consentire che due o più persone possano trasmettersi dati attraverso
un canale di comunicazione pubblico o non sicuro di una rete.
Esistono due forme di crittografia: la crittografia simmetrica (o a
chiave unica) e la crittografia asimmetrica (o a chiave
pubblica/privata). Le componenti di un sistema crittografico sono: un
testo in chiaro (messaggio da spedire), il testo cifrato (messaggio
occultato), una chiave segreta, un algoritmo di cifratura (che grazie
alla chiave segreta trasforma il testo in chiaro in testo cifrato), ed un
algoritmo di decifratura (che grazie alla chiave segreta trasforma il
testo cifrato in testo in chiaro).
2.3 La sicurezza nell’IoT
Uno dei problemi principali del fenomeno dell’IoT riguarda proprio
la sicurezza e la privacy. Il mondo dell’IoT rappresenta per i cybercriminali
un terreno molto fertile, pieno di dispositivi, quali smart tv, telecamere,
stampanti, frigoriferi e sensori, dotati di scarsi livelli di protezioni in cui gli
utenti utilizzatori non hanno nemmeno strumenti efficaci per rilevare e
contrastare eventuali attacchi. Questi dispositivi possono essere usati da utenti
malintenzionati con l’obiettivo di danneggiarli o prenderne il controllo anche
dell’infrastruttura su cui si basano, senza escludere l’ambiente esterno con cui
interagiscono. Le vulnerabilità di questi dispositivi sono causate
principalmente dalle loro scarse capacità computazionali non consentendo
l’utilizzo di contromisure efficaci come la crittografia e meccanismi di
autenticazione per mettere in sicurezza i dati che contengono e che
comunicano.
Negli ultimi anni si sono verificati numerosi episodi di cyberattacchi
tramite l’utilizzo di dispositivi IoT, come il famoso attacco DDos del 2016 ai
danni della rete DNS del provider Dyn. In quell’attacco milioni di dispositivi
IoT vennero compromessi infettandoli con il virus Mirai. Dopo aver ottenuto
13 SICUREZZA
il controllo di un numero così elevato di dispositivi, gli attaccanti li
utilizzarono per indirizzare ai server DNS di Dyn milioni di richieste, più di
quante i server ne potessero effettivamente gestire, causando una interruzione
di servizio di vaste proporzioni. Stampanti, telecamere, router e persino baby
monitor si resero complici di un attacco di tale entità semplicemente perché
dotati di software poco sicuro. Tra il dicembre 2013 e il gennaio del 2014,
Proofpoint, un provider che opera nel campo della sicurezza, rilevò un attacco
che coinvolse elettrodomestici “intelligenti” come frigoriferi, smart tv, forni,
etc… Questo episodio può essere definito come il primo attacco informatico
basato sull’internet delle cose. Gli elettrodomestici compromessi vennero
usati per inviare delle email malevoli destinate a imprese e privati di tutto il
mondo. Da ogni singolo indirizzo IP venivano inviate massimo 10 email tale
da rendere impossibile la rilevazione dell’attacco in base alla posizione; la
violazione non è stata molto difficile per chi l’ha compiuta, infatti è bastato
utilizzare nome utente e password di default. Anche delle semplici pompe di
insulina potrebbero essere hackerate, infatti questi “oggetti” possono essere
accessibili e controllati da remoto da utenti malintenzionati, dal momento che
questi possono comunicare i dati rilevati tramite wireless con una postazione
dotata di display che potrebbe mostrare informazioni manomesse causando
una somministrazione sbagliata di dosi.
I dispositivi IoT raccolgono una grandissima quantità di dati che se
violati compromettono anche la privacy degli utenti. Per questo motivo i
fornitori di dispositivi IoT devono proporre prodotti di qualità e fornire
trasparenza su quali dati vengono utilizzati e in che modo, e assicurare che
siano adeguatamente protetti.
Tra le principali modalità di attacco ai dispositivi IoT troviamo il
DDOS, l’Accesso Diretto, lo Spoofing ed il Tampering. Inoltre, per la
sicurezza dei dispositivi IoT è stato sviluppato dall’IEEE uno standard, noto
come standard IEEE 802.15.4. Infatti questo standard è stato specificamente
pensato per le comunicazioni wireless a corto raggio, basso costo, bassa
velocità e basso consumo energetico, adattandosi, quindi, perfettamente ai
dispositivi IoT.
I temi centrali inerenti alla sicurezza in ambito IoT sono
principalmente l’autenticazione e l’integrità dei dati. L’autenticazione è
complessa perché richiede l’uso di infrastrutture e server che funzionano
tramite lo scambio di messaggi con altri nodi; questo nell’IoT è impraticabile
a causa dei tag RFID passivi che non possono scambiare così tanti dati con i
server di autenticazione. L’integrità dei dati, invece, si riferisce al fatto di
assicurare l’impossibilità di modificare i dati di una transazione e questo
senza un sistema di protezione avanzato chiunque potrebbe alterare i dati
mentre sono immagazzinati nei nodi o mentre attraversano la rete. Questo
SICUREZZA 14
problema può essere risolto con l’utilizzo della tecnologia Blockchain, che
sarà oggetto dei prossimi paragrafi.
Dagli esempi, prima mostrati, si può, dunque, affermare che l’Internet
of Things è intrinsecamente vulnerabile in termini di sicurezza dando origine
ad infinite possibilità di hackeraggio, ampliando il terreno d’azione da parte
dei criminali informatici.
2.4 La tecnologia blockchain: la fiducia su Internet
La blockchain è una tecnologia che consente la creazione e gestione
di un ampio registro digitale distribuito e condiviso tra più nodi di una rete,
per la sincronizzazione di numerosi dati relativi alle transazioni. Il concetto
di blockchain fu originariamente ideato nel 1991 da un gruppo di ricercatori,
ma la prima concettualizzazione di blockchain fu introdotta solo nel 2008 ad
opera di Satoshi Nakamoto che l’ha impiegò per creare Bitcoin, la prima
criptovaluta digitale. Nel corso degli anni la blockchain ha acquistato sempre
più credibilità proponendosi come soluzione ed opportunità per diversi campi
applicativi, tra cui L’IoT. Essa è considerata una delle innovazioni
tecnologiche più importanti avvenute in ambito informatico degli ultimi anni,
in grado di mutare radicalmente il mondo dell’impresa, della finanza, della
Pubblica Amministrazione, ed in tanti altri campi applicativi, così come
comporta vantaggi in termini di efficienza, sicurezza e privacy. La
Blockchain sta facendo con le transazioni quello che Internet ha fatto con le
informazioni e lo sta facendo grazie ad un processo che unisce sistemi
distribuiti e crittografia avanzata.
2.4.1 Definizioni di blockchain
Più che una tecnologia, la blockchain è un paradigma, un modo per
interpretare i temi della decentralizzazione e della partecipazione; proprio per
questo motivo esistono varie definizioni.
15 SICUREZZA
In generale, la blockchain (o “catena di blocchi”) è una struttura dati
distribuita, condivisa ed immutabile. E’ definita come un registro digitale in
cui le voci sono raggruppate in “pagine” (dette blocchi), concatenate in odine
cronologico e mediante meccanismi crittografici, che ne garantiscono
l’integrità. La sua dimensione cresce nel tempo, ma il suo contenuto è
immutabile, in quanto, una volta scritto non è più nè modificabile nè
eliminabile. Non è richiesto che i nodi si fidino l’un l’altro, infatti per
garantire la coerenza tra le varie copie, l’aggiunta di un nuovo blocco è
globalmente regolata da un protocollo condiviso. Una volta autorizzata
l’aggiunta di un nuovo blocco, ogni nodo aggiorna la propria copia privata.
La blockchain può essere vista anche come un database distribuito,
gestito e condiviso da una rete di nodi di tipo peer-to-peer (P2P), ognuno dei
quali ne possiede una copia privata. Tale database è strutturato in blocchi,
ciascuno contenente dei dati (tipicamente tutte le transazioni che
costituiscono un cambiamento di stato del database che sono mai state
eseguite nel contesto di un medesimo network). Tali blocchi sono tra loro
collegati in rete in modo tale che ciascuna transazione avviata sulla rete debba
essere validata dall’intera rete nell’analisi di ogni singolo blocco.
La blockchain, dunque, può essere visto come un vero e proprio
registro pubblico aperto a tutti per la gestione dei dati correlati alle transazioni
presenti nei blocchi. La stessa “informazione” è dunque presente su tutti i
nodi e pertanto diventa immodificabile se non attraverso una operazione che
richiede l’approvazione della maggioranza dei nodi della rete e che in ogni
caso non modificherà la storia di quella stessa informazione.
2.4.2 Concetti di base
La blockchain si basa sui seguenti concetti:
• Decentralizzazione, ridondanza e distribuzione La blockchain
decentralizzata sfrutta il passaggio di messaggi ad-hoc e un
networking distribuito per fare in modo di memorizzare i dati su tutta
la sua rete in modo tale che ogni nodo possiede una copia privata
dell’intera blockchain, ed evitare di avere un single point of failure in
modo che non esista una centralizzazione che i cracker potrebbero
sfruttare per abbattere l'intero sistema.
• Sicurezza Oltre alla ridonanza e distribuzione, la blockchain utilizza
dei meccanismi crittografici come le funzioni hash, che rendono
SICUREZZA 16
estremamente semplice rilevare se c’è stato un tentativo di alterazione
di dati.
• Immutabilità Ciascun blocco è un archivio di tutte le transazioni
effettuate che possono essere modificate solo con l’approvazione dei
nodi della rete. Da qui il concetto di immutabilità.
• Consenso e condivisione Ogni nodo, chiamato anche miner, nel
sistema decentralizzato ha una copia della blockchain: difatti la
qualità dei dati è mantenuta grazie ad una massiva replicazione del
database. Non esiste nessuna copia ufficiale centralizzata e nessun
utente è più credibile di altri, tutti sono allo stesso livello di
credenziali. I nodi miner, ovvero gli utenti, validano le nuove
transazioni le aggiungono al blocco che stanno costruendo dopo aver
verificato l'intera blockchain. Una volta completato il blocco, lo
trasmettono agli altri nodi della rete.
• Trasparenza le transazioni effettuate attraverso la blockchain sono
visibili a tutti i partecipanti, garantendo così trasparenza nelle
operazioni.
Partendo da questi concetti, la blockchain è diventata la declinazione in
digitale di un nuovo concetto di Trust, di fiducia. Per queste ragioni alcuni
ritengono che la blockchain possa assumere anche un valore per certi aspetti
di tipo “sociale e politico”, come piattaforma che consente lo sviluppo e la
concretizzazione di una nuova forma di rapporto sociale, realmente distribuita
e in grado di garantire a tutti la possibilità di verificare, di “controllare”, di
disporre di una totale trasparenza sugli atti e sulle decisioni, che vengono
registrati in archivi immutabili e condivisi, che hanno caratteristica di essere
inalterabili, immodificabili e dunque immuni da corruzione.
17 SICUREZZA
2.4.3 Principi di funzionamento
Il modello proposto dalla blockchain si basa sulla combinazione tra
firma digitale e marca temporale (timestamp). Le transazioni sono
raggruppate nei blocchi della blockchain e il numero di transazioni all'interno
di ognuno di questi blocchi varia in base alla dimensione della transazione
stessa. Ogni blocco, creato da un utente chiamato “miners”, è aggiornato in
tempo reale e mantenuto da tutti i nodi della rete, ciascuno dei quali è
chiamato a verificare ed approvare ogni blocco, prima che quest’ultimo possa
essere aggiunto definitivamente alla catena pubblica condivisa tra tutti gli altri
nodi partecipanti. Le transazioni sono condivise e convalidate dai nodi
secondo un algoritmo di consenso, il quale esegue automaticamente la prova
di verifica di un blocco, senza la necessità di intervento umano o di
un’autorità centrale. Ogni blocco, escluso il primo che è denominato genesis
block, è composto da due parti principali: l'header e il body. Le transazioni
sono racchiuse nel body del blocco e nell'header sono presenti alcuni campi
di gestione del blocco stesso:
• Versione
• L’identificativo del blocco
• Hash del blocco precedente L’Hash è una funzione iniettiva, quindi
non invertibile (unidirezionale), in grado di mappare dei dati di
dimensione arbitraria in una stringa di bit di dimensione prefissata.
Infatti la blockchain è un insieme di blocchi concatenati tramite questa
funzione crittografica, infatti ogni blocco contiene l’hash del blocco
precedente. L’hash rende molto semplice rilevare se c’è stato un
tentativo di alterazione del passato, in quanto una qualunque modifica
al contenuto di un blocco provocherebbe anche la modifica del suo
SICUREZZA 18
Figura 1.2: rappresentazione semplificata di una blockchain
hash causando un invalidamento dell’intera blockchain. Un attaccante
in grado di manomettere i dati memorizzati nella blockchain dovrebbe
ricalcolare in cascata anche gli hash di tutti i blocchi successivi a
quello manomesso. Ciò rende l’operazione di manomissione tanto più
difficile quanto è maggiore il numero di blocchi che l’attaccante dovrà
tantare di modificare.
• Merkle root La radice della struttura ad albero utilizzata per
raccogliere tutte le transazioni appartenenti al blocco.
• Timestamp La marca temporale che indica l’istante esatto in cui il
blocco è stato creato.
2.4.4 Algoritmi e protocolli di consenso
Affinchè in dati di una blockchain siano validati e scritti nel registro pubblico
occorre il consenso da parte dei nodi della rete, ovvero un metodo che metta
d’accordo la maggioranza di tali nodi. I protocolli di consenso costituiscono
un elemento cruciale per una blockchain, in quanto hanno il compito di
mantenere l’integrità e la sicurezza di questi sistemi distribuiti. Esistono
diversi tipi di algoritmi che rispettano i protocolli di consenso; i più comuni
sono:
• Proof of Work (PoW) L’algoritmo PoW, dove PoW sta per “Prova
di lavoro”, consiste in una lunga e complessa prova matematica, che
viene richiesta a quei nodi del sistema denominati miners, come
condizione necessaria per essere ritenuti nodi affidabili, al fine di
poter verificare le transazioni della rete e ricevere un compenso in
forma di criptomoneta. L’intero procedimento è chiamato mining:
solo chi è in possesso di una certa quantità computazionale è ritenuto
affidabile.
• Proof of Stake (PoS) Questo metodo di consenso è basato sul
principio di mettere qualcosa “at stake” e cioè in gioco. L’algoritmo
di consenso Proof of Stake sostituisce il mining PoW con un
meccanismo in cui i blocchi vengono convalidati in base alla posta in
gioco dei partecipanti.
19 SICUREZZA
2.4.5 Blockchain pubbliche e private
Le blockchain possono essere classificate in due grandi categorie: blockchain
pubbliche (Permissionless Ledger) e blockchain private (Permisioned
Ledger):
• Le blockchain pubbliche sono aperte, non hanno una “proprietà” e
sono concepite per non essere controllate; chiunque vi può prendere
parte senza che sia necessario alcun permesso. L’obiettivo delle
Permissioneless Ledger è quello di permettere a ciascuno di
contribuire all’aggiornamento dei dati sul Ledger e di disporre, in
qualità di partecipante, di tutte le copie immutabili di tutte le
operazioni. Ovvero di disporre di tutte le copie identiche di tutto
quanto viene approvato grazie al consenso. Questo modello di
blockchain impedisce ogni forma di censura, nessuno è nella
condizione di impedire che una transazione possa avvenire e che possa
essere aggiunta al Ledger una volta che ha conquistato il consenso
necessario tra tutti i nodi (partecipanti) alla blockchain. Le blockchain
pubbliche più note sono Bitcoin e Ethereum (quest’ultima sarà
oggetto di approfondimento nei prossimi paragrafi).
• Le blockchain private, invece, possono invece essere controllate e
dunque possono avere una “proprietà”. Quando un nuovo dato o
record viene aggiunto il sistema di approvazione non è vincolato alla
maggioranza dei partecipanti alla blockchain bensì a un numero
limitato di attori che sono definibili come Trusted. Questo tipo di
blockchain possono essere utilizzate da istituzioni, grandi imprese che
devono gestire filiere con una serie di attori, imprese che devono
gestire fornitori e subfornitori, banche, società di servizi, operatori
nell’ambito del Retail. Le Permissioned Ledger rispondono alle
necessità di un aggiornamento diffuso su più attori che possono
operare in modo indipendente, ma con un controllo limitato a coloro
che sono autorizzati. Le Permissioned Ledger permettono poi di
definire speciali regole per l’accesso e la visibilità di tutti i dati. In
altre parole le Permissioned Ledger introducono nella blockchain un
concetto di Governance e di definizione di regole di comportamento.
Tecnicamente le Permissioned Ledger sono anche più performanti e
veloci delle Permissionless Ledger.
SICUREZZA 20
2.4.6 Blockchain al servizio dell’Internet of Things
L’Internet delle cose fonde mondi fisici e virtuali per la creazione di
ambienti intelligenti, e, come detto in precedenza, il numero di dispositivi
intelligenti connessi sta aumentando vertiginosamente nel corso degli anni.
Con il progressivo ampliamento del business legato a questo tipo di ambienti,
si moltiplicano anche le sfide legate al tema della sicurezza. La blockchain
si candida ad essere l’unica in grado di assicurare sicurezza, privacy ed
affidabilità in ambito IoT: tale tecnologia può essere utilizzata per gestire
l’autenticazione e per facilitare la comunicazione tra oggetti IoT connessi, che
deve avvenire in maniera P2P, oltre a rendere lo scambio di dati più sicuro e
veloce creando record immutabili associati, e garantendo che ogni messaggio
che viene scambiato tra i nodi provenga da una fonte attendibile e che venga
ricevuto dal giusto destinatario. Questo consente ai dispositivi intelligenti di
comunicare in maniera diretta tra loro ed in totale autonomia, oltre a verificare
la validità delle transazioni, senza la necessità di un’autorità centrale. I
dispositivi vengono registrati nella blockchain una volta entrati in una rete
IoT, dopo di che, possono elaborare in autonomia le transazioni. Questo
approccio decentralizzato, quindi, elimina i punti di failure delle reti
tradizionali, facilitando la creazione di un ecosistema più resiliente sul quale
possono operare gli oggetti intelligenti. Al momento la maggior parte degli
ecosistemi IoT non sono decentralizzati, e dipendono da comunicazioni del
tipo client/server, protocolli come SSL, TLS o meccanismi come Public Key
Infrastructure (PKI) per identificare i nodi della rete e controllare le
comunicazioni. Ma con la progressiva crescita del fenomeno IoT, le reti
centralizzate diventeranno presto un collo di bottiglia, causando ritardi e
guasti negli scambi critici a causa dall’eccessivo congestionamento del
traffico di rete. Quindi una soluzione è proprio quella di decentralizzare le reti
IoT per migliorarne sicurezza, privacy, velocità e connettività.
L’applicazione di tecnologia blockchain in ambito IoT può incorrere
in alcune problematiche, tra le quali:
• La maggior parte dei dispositivi IoT ha una scarsa capacità
computazionale, quindi non tutti sono dotati di una potenza di
elaborazione necessaria ad eseguire gli algoritmi di cifratura alla
velocità desiderata.
• Molti dispositivi IoT hanno una capacità di archiviazione molto
limitata, e questo può costituire un problema per la memorizzazione
del registro distribuito di transazioni dal momento che aumenta
sempre più di dimensioni nel corso del tempo.
21 SICUREZZA
2.4.7 Ethereum: principi di base
Ethereum è una piattaforma decentralizzata, pubblica ed open-source
del Web 3.0, basata su blockchain, per la creazione e pubblicazione peer-to-
peer di contratti intelligenti (smart contracts) creati in un linguaggio di
programmazione Turing-completo. Ethereum è una piattaforma per il
“Computing Distribuito” che ha uno dei suoi componenti principali nella
Ethereum Virtual Machin (EVM).
Ethereum può essere visto come il più grande computer condiviso che
è in grado di erogare una enorme potenza disponibile ovunque e per sempre.
Dunque con Ethereum si passa dal concetto di Distributed
Database a Distributed Computing.
E’ una piattaforma che può essere adottata da tutti coloro che desiderano
entrare a far parte della Rete e che in questo modo avranno a disposizione una
soluzione che consente a tutti i partecipanti di disporre di un
archivio immutabile e condiviso di tutte le operazioni attuate nel corso del
tempo e che nello stesso tempo è concepita per non poter essere fermata,
bloccata o censurata. Ethereum è progettata per essere adattabile e flessibile
e per creare facilmente nuove applicazioni. Ethereum è cioè
una Programmable Blockchain che non si limita a mettere a disposizione
“operations” predefinite e standardizzate, ma permette agli utenti di creare le
proprie “operations“. Di fatto è una Blockchain platform che permette di dare
vita a diverse tipologie di applicazioni Blockchain decentralizzate non
necessariamente limitate alle sole cryptocurrencies.
Ethereum dispone di una criptovaluta nativa, chiamata Ether, che oltre
a poter essere scambiata tra account, viene utilizzata dalla piattaforma stessa
come ricompensa ai miner per il lavoro computazionale svolto. A ciascun
account sono associati una chiave privata e una chiave pubblica che prende
nche il nome di indirizzo. Per poter effettuare una transazione è necessario
che il mittente conosca l’indirizzo, cioè la chiave pubblica, dell’account del
destinatario e che firmi digitalmente la transazione prima di inviarla alla rete
Ethereum con la propria chiave privata, dimostrando che il richiedente
dell’operazione è l’effettivo titolare del wallet. Ethereum mette a disposizione
anche l'Ethereum Virtual Machine (EVM), una macchina virtuale
decentralizzata all'interno della quale vengono eseguiti gli smart contract
utilizzando la potenza computazionale dei nodi che costituiscono la rete. Gli
smart contract possono essere scritti utilizzando diversi linguaggi di
programmazione, il più utilizzato dei quali è al momento Solidity. Il codice
sorgente scritto in Solidity, o in un qualsiasi altro linguaggio ad alto livello
SICUREZZA 22
fra quelli supportati, deve essere poi compilato per produrre un bytecode
pronto per essere eseguito dalla EVM.
Che cosa sono i contratti Ethereum. Che cosa sono i contratti Ethereum? I
contratti intelligenti sono degli script eseguiti sulla rete di Ethereum, ovvero
nelle Ethereum Virtual Machines dei nodi, che svolgono azioni in base a
determinate condizioni; in questo senso si può affermare che quando
qualcuno vuole svolgere un compito particolare in Ethereum, avvia un
contratto intelligente che coinvolge uno o più attori. Questi contratti scritti
utilizzando “Solidity”, funzionano sfruttando la seguente logica: se la prima
serie di istruzioni viene eseguita, esegui la funzione successiva e
successivamente quella successiva e continua a ripetere fino a raggiungere la
fine del contratto.
Figura 1.3: rappresentazione semplificata di uno smart contract
23 SICUREZZA
Capitolo 3
Ethereum: un caso d’uso
In questa sezione si propone un esempio di utilizzo della blockchain
di Ethereum come soluzione per la sostituzione delle batterie dei veicoli
elettrici, in cui vengono utilizzati due tipi di clients IoT, A e B. L’architettura
pensata risolve il problema dell’architettura centralizzata del paradigma
dell’IoT oltre a superare i limiti prestazionali dei dispositivi IoT. I clients di
tipo A sono considerati dispositivi IoT con risorse limitate e sono
responsabili dell'interazione con l’utente e della raccolta dei dati IoT; I clients
di tipo B, invece, sono da considerare come dei dispositivi IoT con risorse
maggiori o uguali ai personal computer. Si utilizza una rete blockchain privata
di Ethereum, non solo perché supporta contratti intelligenti con cui possiamo
progettare interazioni relativamente complesse tra diversi dispositivi IoT, ma
anche perché può generare un nuovo blocco più velocemente di Bitcoin.
Inoltre si utilizza l’algoritmo PoW come protocollo di consenso; e come
metodo di crittografia si utilizza l’account Ethereum. Inoltre, sia i clients di
tipo A che di tipo B sono connessi alla rete Internet.
3.1 Architettura del sistema
La figura sottostante mostra l’architettura del sistema su cui si basa
l’esempio. I clients di tipo A e di tipo B possono entrambi fornire una
interfaccia grafica utente (GUI) e richiamare le API della blockchain, mentre
solo i clients di tipo B contengono tutti i nodi della blockchain, eseguire il
mining e contenere tutti i dati relativi alle transazioni.
24
La figura seguente, invece, mostra come i clients di tipo B creano tra loro una
rete P2P, proprio come creato dai nodi pubblici della blockchain di Ethereum.
I clients di tipo A sono collegati ai clients di tipo B formando una topologia
a stella. Inoltre, poiché solo i clients di tipo B sono dotati di alte prestazioni,
essi eseguono il processo di mining e di consenso, risolvendo il problema
delle risorse limitate di cui sono dotati i clients IoT di tipo A.
Figura 1.4: architettura del sistema basata sui clients A e B
P2P
Figura 1.5: architettura generale del sistema
ETHEREUM: UN CASO D’USO 25
3.2 Privacy e sicurezza
Per identificare ciascun dispositivo si utilizzano gli account Ethereum: si
assegna un account Ethereum ad ogni dispositivo in modo tale da identificarlo
in maniera univoca nel sistema. Ogni dispositivo ottiene, oltre al suo account,
anche la sua chiave pubblica e la sua chiave privata. Se un dispositivo IoT
viene violato, un utente malintenzionato può adottare le seguenti azioni:
• Rubare le proprietà dell’account utilizzato su questo dispositivo.
• Violare altri dispositivi attraverso questo dispositivo. Questo
comporta gravi problemi in un sistema centralizzato, poiché il server
centrale può essere facilmente attaccato, ma in un sistema
decentralizzato questa circostanza non può verificarsi.
• Fingersi un account e inviare dati falsi tramite questo dispositivo. Ma
poiché solo i dispositivi di tipo B possono generare un account valido,
l’account falso non può essere convalidato nel sistema grazie ai
meccanismi di consenso della blockchain durante la formazione dei
blocchi e delle transazioni. Inoltre, anche se un dispositivo di tipo B
viene violato, dal momento che è solo un singolo nodo nella rete
blockchain, gli altri dispositivi di tipo B rifiuteranno le richieste da
esso inviate.
3.3 Implementazione del sistema di sostituzione batterie basato su
Ethereum
Figura 1.6: architettura del sistema di sostituzione batteria
26 ETHEREUM: UN CASO D’USO
Si utilizza un Raspberry Pi (RPi) come hardware di un dispositivo IoT di tipo
A, ognuno dei quali rappresenta un “veicolo elettrico” (EV). Un dispositivo
di tipo B, invece, rappresenta una “stazione di rifornimento”, ed è costituito
da un’interfaccia di sostituzione della batteria;
In ogni veicolo elettrico, si adopera il framework "Truffle" per invocare il
servizio RPC (Remote Procedure Call) della blockchain, mentre il server
locale "express" viene utilizzato per controllare l'interazione tra le
informazioni della batteria memorizzate in un file su un dispositivo USB di
ciascun veicolo, e la stazione. Il dispositivo USB è connesso al RPi e
rappresenta una reale batteria. Inoltre si utilizza il software "Geth” per mettere
in comunicazione il dispositivo elettrico con la piattaforma di Ethereum.
Smart contract. Per gestire il sistema di sostituzione delle batterie si
implementano tre tipi di contratti intelligenti:
1. Il contratto intelligente "BatteryInformation" viene utilizzato per
gestire e memorizzare le informazioni sulla batteria. Memorizza sia le
informazioni statiche (marchio, prezzo di fabbrica, etc…) che le
informazioni dinamiche (stato di carica, tempi di carica, prezzo,
account del proprietario, etc…).
2. Il contratto intelligente "BalanceProcess" viene utilizzato per gestire
il trasferimento di valore tra gli accounts. Dato che non è funzionale
richiedere a tutti gli utenti dei veicoli elettrici di pagare una
commissione in Ether per l’esecuzione di ogni operazione destinata a
ricompensare i miner del lavoro computazionale svolto per aver
validato una transazione e/o eseguito il codice di uno smart contract,
si utilizza un token come mezzo di garanzia all’interno del sistema.
3. Il contratto intelligente "BatteryInterface" fornisce delle interfacce
API per tre tipi di utenti terminali: operatore della stazione,
proprietario del veicolo elettrico e account supervisore. I proprietari
di veicoli elettrici possono espellere la batteria dal proprio veicolo
elettrico e possono inviare una richiesta di sostituzione della batteria
alla stazione e attendere la conferma. Gli operatori della stazione sono
i dipendenti della stazione stessa, e possono caricare, scaricare,
espellere e riciclare le batterie che appartengono alla stazione e
possono approvare o rifiutare una richiesta di sostituzione della
batteria inviata dai proprietari di veicoli elettrici. L’account
supervisore è il gestore di questo sistema di sostituzione della batteria
che può creare altri tipi di account.
ETHEREUM: UN CASO D’USO 27
Flusso di esecuzione del sistema. Inizialmente un veicolo elettrico ha la sua
batteria scarica (che si identifica con il nome “alfa”), mentre la stazione ha
due batterie completamente cariche (che si identificano rispettivamente con
il nome “beta” e batteria “gamma”). Il proprietario del veicolo elettrico
accede all’interfaccia grafica del sistema di sostituzione della batteria ed invia
una richiesta di sostituzione, per sostituire la sua batteria “alfa” con la batteria
“beta” presente nella stazione. Dopo che l’operatore della stazione ha
approvato la richiesta di sostituzione, le informazioni della batteria
memorizzate nella blockchain vengono cambiate. A questo punto, però, le
batterie reali (i dispositivi “usb”) non sono state ancora effettivamente
scambiate, quindi viene segnalata l’incoerenza tra le informazioni presenti
sulla blockchain e le informazioni fisiche. Infine, dopo l’effettivo scambio
delle batterie, non viene emesso alcun avviso, e lo stato corrente della batteria
può essere verificato.
Ci sono tre tipi di operazioni principali che vengono eseguite:
• Inizializzazione. Il veicolo elettrico e la stazione eseguono
rispettivamente l’inizializzazione. Il sistema sul RPi legge le
informazioni di tutte le batterie inserite nelle interfacce USB, e lo
smart contract crea un record per ciascuna batteria contenente le sue
informazioni statiche e genera un unico ID batteria che verrà
memorizzato all’interno del file di informazioni della batteria sul
dispositivo USB.
• Controllo della coerenza delle informazioni della batteria. Ogni
volta che il proprietario di un veicolo elettrico oppure un operatore
della stazione accede alla pagina che mostra le informazioni delle
batterie che appartengono al veicolo elettrico o alla stazione, il sistema
controlla se le informazioni statiche delle batterie registrate nei
dispositivi USB sono coerenti con le informazioni statiche registrate
sulla blockchain. Se viene rilevata una incoerenza verrà visualizzato
un messaggio di avviso. Dopo che il proprietario del veicolo elettrico
ha inviato una richiesta di scambio e l’operatore della stazione ha
approvato la richiesta, è necessario scambiare i rispettivi dispositivi
USB per eliminare l’inconsistenza.
• Carica e scarica della batteria. Quando un utente esegue una
operazione di carica o scarica della batteria, il sistema cambia le
informazioni dinamiche della batteria presenti sulla blockchain, e
contemporaneamente vengono cambiate le informazioni dinamiche
registrate sul dispositivo USB in base all’ID batteria.
ETHEREUM: UN CASO D’USO 28
Conclusioni
La realizzazione di questa tesi ha consentito l’approfondimento di due
importanti tecnologie molto importanti: l’Internet of Things, che si sta
affermando sempre più come paradigma rivoluzionario nello scenario delle
reti e consiste nell’insieme degli oggetti e dei sensori che utilizzano la rete
per comunicare qualcosa, cioè dei dati, a qualcos’altro, e la blockchain, un
registro pubblico per la realizzazione di applicazioni totalmente
decentralizzate.
La tesi, infatti, si è concentrata su come far comunicare il mondo della
blockchain con il mondo dell’Internet of Things: in tal senso è stata proposta
un’architettura basata sulla blockchain per la realizzazione di un sistema di
sostituzione batterie per veicoli elettrici.
Il risultato finale del lavoro svolto si è rivelato valido raggiungendo
gli obiettivi pefissati da questa tesi. In particolare:
• L'utilizzo della blockchain di Ethereum per la creazione ed esecuzione
degli smart contract, oltre a garantire immutabilità e sicurezza.
• Grazie ad Ethereum si è potuta creare un'architettura completamente
decentralizzata, superando i problemi causati dalla tradizionale
architettura centralizzata del paradigma dell'IoT.
• Inoltre, sempre grazie all'utilizzo della Blockchain, si sono potuti
superare problemi causati dalle risorse limitate dei dispositivi IoT:
infatti solo i clients IoT di tipo B, che sono dotati di maggiori risorse
computazionali, possono effettuare il processo di mining.
In conclusione, il risultato ottenuto da questa tesi è stato molto soddisfacente
e di grande interesse, oltre a rappresentare una base di partenza per numerosi
sviluppi futuri che potrebbero portare all’approfondimento di altrettante
numerose nuove tecnologie.
29
Sitografia
• https://www.intel.it/content/www/it/it/it-managers/the-benefits-of-
blockchain-iot-biot.html
• https://www.html.it/articoli/iot-security-consigli-pratici/
• https://www.blockchain4innovation.it/esperti/cose-quali-gli-ambiti-
applicativi-ethereum/
• https://www.binance.vision/it/blockchain/what-is-a-blockchain-
consensus-algorithm
• https://medium.blockchainedu.net/introduzione-ai-sistemi-di-consenso-
proof-of-work-e-proof-of-stake-e6564ddad6aa
• https://www.blockchain4innovation.it/esperti/blockchain-perche-e-cosi-
importante/#6_Blockchain_nellIoT
• https://www.blockchain4innovation.it/iot/iot-e-blockchain-il-binomio-
alla-base-della-digital-transformation/
• https://www.internet4things.it/iot-library/internet-of-things-gli-ambiti-
applicativi-in-italia/
• https://etherevolution.eu/ethereum-iot/
• https://www.blockchain4innovation.it/mercati/legal/smart-
contract/blockchain-smart-contracts-cosa-funzionano-quali-gli-ambiti-
applicativi/
• https://www.blockchain4innovation.it/esperti/funziona-transazione-sulla-
blockchain/
• https://www.blockchain4innovation.it/esperti/blockchain-perche-e-cosi-
importante/#Perche_la_blockchain_e_cosi_importante
• https://it.wikipedia.org/wiki/Blockchain
30
Bibliografia
• Reti di calcolatori, Andrew S. Tanenbaum, Pearson
• Reti di calcolatori e internet, Behrouz A. Forouzan, McGraw-Hill
31

Mais conteúdo relacionado

Mais procurados

(IT) Slides della presentazione della tesi di Laurea
(IT) Slides della presentazione della tesi di Laurea(IT) Slides della presentazione della tesi di Laurea
(IT) Slides della presentazione della tesi di LaureaDaniele Di Mitri
 
Réalité virtuelle, communication et marketing
Réalité virtuelle, communication et marketingRéalité virtuelle, communication et marketing
Réalité virtuelle, communication et marketingKevin Leclerc
 
Mémoire Marketing Digital - E-Commerce et Personnalisation
Mémoire Marketing Digital - E-Commerce et PersonnalisationMémoire Marketing Digital - E-Commerce et Personnalisation
Mémoire Marketing Digital - E-Commerce et PersonnalisationPamela Desvignes
 
Mémoire "Le web- to-store peut-il réellement sauver les commerces tradition...
Mémoire "Le web- to-store peut-il réellement sauver les commerces tradition...Mémoire "Le web- to-store peut-il réellement sauver les commerces tradition...
Mémoire "Le web- to-store peut-il réellement sauver les commerces tradition...Kévin Régnier
 
Le Competenze Imprenditoriali
Le Competenze ImprenditorialiLe Competenze Imprenditoriali
Le Competenze ImprenditorialiFormaLms
 
Privacy e Trattamento dei Dati Personali
Privacy e Trattamento dei Dati PersonaliPrivacy e Trattamento dei Dati Personali
Privacy e Trattamento dei Dati PersonaliGiacomo Giovanelli
 
Memoire la publicité programatique mobile et le rapport marque consommateur ...
Memoire  la publicité programatique mobile et le rapport marque consommateur ...Memoire  la publicité programatique mobile et le rapport marque consommateur ...
Memoire la publicité programatique mobile et le rapport marque consommateur ...Pierre-Yves Trennec
 
Mémoire de Recherche : Les réseaux sociaux elodie blanchard quentin guénard
Mémoire de Recherche : Les réseaux sociaux   elodie blanchard quentin guénardMémoire de Recherche : Les réseaux sociaux   elodie blanchard quentin guénard
Mémoire de Recherche : Les réseaux sociaux elodie blanchard quentin guénardElodie Bla
 
1-la digitalizzazione nella pa
1-la digitalizzazione nella pa1-la digitalizzazione nella pa
1-la digitalizzazione nella paiMaS s.r.l.
 
quelle est la place de la stratégie digitale dans les PME ?
quelle est la place de la stratégie digitale dans les PME ?quelle est la place de la stratégie digitale dans les PME ?
quelle est la place de la stratégie digitale dans les PME ?Nadège Belloche Lemarchand
 
Memoire master 1: Dans quelle mesure le buzz marketing influence-t-il la perc...
Memoire master 1: Dans quelle mesure le buzz marketing influence-t-il la perc...Memoire master 1: Dans quelle mesure le buzz marketing influence-t-il la perc...
Memoire master 1: Dans quelle mesure le buzz marketing influence-t-il la perc...Fabien Denais
 
Marketing esperenziale
Marketing esperenzialeMarketing esperenziale
Marketing esperenzialeremo luzi
 
Assurance : comment négocier le virage des objets connectés ?
Assurance : comment négocier le virage des objets connectés ?Assurance : comment négocier le virage des objets connectés ?
Assurance : comment négocier le virage des objets connectés ?Wavestone
 
Comment mesurer l'impact des outils de marketing-mobile sur le comportement d...
Comment mesurer l'impact des outils de marketing-mobile sur le comportement d...Comment mesurer l'impact des outils de marketing-mobile sur le comportement d...
Comment mesurer l'impact des outils de marketing-mobile sur le comportement d...Morgane Brsn
 
Presentazione Tesi Laurea Triennale
Presentazione Tesi Laurea TriennalePresentazione Tesi Laurea Triennale
Presentazione Tesi Laurea Triennalelzenki
 

Mais procurados (20)

(IT) Slides della presentazione della tesi di Laurea
(IT) Slides della presentazione della tesi di Laurea(IT) Slides della presentazione della tesi di Laurea
(IT) Slides della presentazione della tesi di Laurea
 
Réalité virtuelle, communication et marketing
Réalité virtuelle, communication et marketingRéalité virtuelle, communication et marketing
Réalité virtuelle, communication et marketing
 
Mémoire Marketing Digital - E-Commerce et Personnalisation
Mémoire Marketing Digital - E-Commerce et PersonnalisationMémoire Marketing Digital - E-Commerce et Personnalisation
Mémoire Marketing Digital - E-Commerce et Personnalisation
 
Firma Digitale E Pec
Firma Digitale E PecFirma Digitale E Pec
Firma Digitale E Pec
 
Mémoire "Le web- to-store peut-il réellement sauver les commerces tradition...
Mémoire "Le web- to-store peut-il réellement sauver les commerces tradition...Mémoire "Le web- to-store peut-il réellement sauver les commerces tradition...
Mémoire "Le web- to-store peut-il réellement sauver les commerces tradition...
 
Soutenance mémoire master digital marketing
Soutenance mémoire master digital marketingSoutenance mémoire master digital marketing
Soutenance mémoire master digital marketing
 
Le Competenze Imprenditoriali
Le Competenze ImprenditorialiLe Competenze Imprenditoriali
Le Competenze Imprenditoriali
 
Privacy e Trattamento dei Dati Personali
Privacy e Trattamento dei Dati PersonaliPrivacy e Trattamento dei Dati Personali
Privacy e Trattamento dei Dati Personali
 
Livre blanc marketplace_vnconline
Livre blanc marketplace_vnconlineLivre blanc marketplace_vnconline
Livre blanc marketplace_vnconline
 
Memoire la publicité programatique mobile et le rapport marque consommateur ...
Memoire  la publicité programatique mobile et le rapport marque consommateur ...Memoire  la publicité programatique mobile et le rapport marque consommateur ...
Memoire la publicité programatique mobile et le rapport marque consommateur ...
 
Mémoire de Recherche : Les réseaux sociaux elodie blanchard quentin guénard
Mémoire de Recherche : Les réseaux sociaux   elodie blanchard quentin guénardMémoire de Recherche : Les réseaux sociaux   elodie blanchard quentin guénard
Mémoire de Recherche : Les réseaux sociaux elodie blanchard quentin guénard
 
1-la digitalizzazione nella pa
1-la digitalizzazione nella pa1-la digitalizzazione nella pa
1-la digitalizzazione nella pa
 
quelle est la place de la stratégie digitale dans les PME ?
quelle est la place de la stratégie digitale dans les PME ?quelle est la place de la stratégie digitale dans les PME ?
quelle est la place de la stratégie digitale dans les PME ?
 
Memoire master 1: Dans quelle mesure le buzz marketing influence-t-il la perc...
Memoire master 1: Dans quelle mesure le buzz marketing influence-t-il la perc...Memoire master 1: Dans quelle mesure le buzz marketing influence-t-il la perc...
Memoire master 1: Dans quelle mesure le buzz marketing influence-t-il la perc...
 
Mémoire Master Marketing Digital - Sharitiz
Mémoire Master Marketing Digital - SharitizMémoire Master Marketing Digital - Sharitiz
Mémoire Master Marketing Digital - Sharitiz
 
Marketing esperenziale
Marketing esperenzialeMarketing esperenziale
Marketing esperenziale
 
1 Cosè Il Marketing
1 Cosè Il Marketing1 Cosè Il Marketing
1 Cosè Il Marketing
 
Assurance : comment négocier le virage des objets connectés ?
Assurance : comment négocier le virage des objets connectés ?Assurance : comment négocier le virage des objets connectés ?
Assurance : comment négocier le virage des objets connectés ?
 
Comment mesurer l'impact des outils de marketing-mobile sur le comportement d...
Comment mesurer l'impact des outils de marketing-mobile sur le comportement d...Comment mesurer l'impact des outils de marketing-mobile sur le comportement d...
Comment mesurer l'impact des outils de marketing-mobile sur le comportement d...
 
Presentazione Tesi Laurea Triennale
Presentazione Tesi Laurea TriennalePresentazione Tesi Laurea Triennale
Presentazione Tesi Laurea Triennale
 

Semelhante a La mia tesi di laurea triennale - Beato Gianmarco

La sicurezza nelle reti IEEE 802.15.4
La sicurezza nelle reti IEEE 802.15.4La sicurezza nelle reti IEEE 802.15.4
La sicurezza nelle reti IEEE 802.15.4Gianmarco Beato
 
Internet delle cose
Internet delle coseInternet delle cose
Internet delle coseKEA s.r.l.
 
InfoFactory: Internet of Thing per DITEDI e DigitalMeet2017
InfoFactory: Internet of Thing per DITEDI e DigitalMeet2017InfoFactory: Internet of Thing per DITEDI e DigitalMeet2017
InfoFactory: Internet of Thing per DITEDI e DigitalMeet2017Paolo Omero
 
Presentazione Tesi di Laurea Triennale
Presentazione Tesi di Laurea Triennale Presentazione Tesi di Laurea Triennale
Presentazione Tesi di Laurea Triennale Gianmarco Beato
 
Internet of Things: mercato, tecnologie, applicazioni e competenze
Internet of Things: mercato, tecnologie, applicazioni e competenzeInternet of Things: mercato, tecnologie, applicazioni e competenze
Internet of Things: mercato, tecnologie, applicazioni e competenzeArmando Martin
 
Seminario UNINFO Security Summit 2017
Seminario UNINFO Security Summit 2017Seminario UNINFO Security Summit 2017
Seminario UNINFO Security Summit 2017uninfoit
 
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...Giulia Aranguena
 
Blockchain revolution - Politecnico di Milano
Blockchain revolution - Politecnico di MilanoBlockchain revolution - Politecnico di Milano
Blockchain revolution - Politecnico di MilanoDonato Faioli
 
Blockchain revolution - Politecnico di Milano
Blockchain revolution - Politecnico di MilanoBlockchain revolution - Politecnico di Milano
Blockchain revolution - Politecnico di MilanoDonato Faioli
 
Bigdata v eletti_nov2013 versione_ampliata_con_silver
Bigdata v eletti_nov2013 versione_ampliata_con_silverBigdata v eletti_nov2013 versione_ampliata_con_silver
Bigdata v eletti_nov2013 versione_ampliata_con_silverValerio Eletti
 
UNINFO - NUOVI TREND E NORME ISO/UNI - Blockchain, IoT, Big Data, Industry 4...
UNINFO -  NUOVI TREND E NORME ISO/UNI - Blockchain, IoT, Big Data, Industry 4...UNINFO -  NUOVI TREND E NORME ISO/UNI - Blockchain, IoT, Big Data, Industry 4...
UNINFO - NUOVI TREND E NORME ISO/UNI - Blockchain, IoT, Big Data, Industry 4...BL4CKSWAN Srl
 
Smau Padova 2016 - DirICTo
Smau Padova 2016 - DirICToSmau Padova 2016 - DirICTo
Smau Padova 2016 - DirICToSMAU
 
5G Privacy e sicurezza. Daniele Perucchini, Fondazione Ugo Bordoni
5G Privacy e sicurezza. Daniele Perucchini, Fondazione Ugo Bordoni5G Privacy e sicurezza. Daniele Perucchini, Fondazione Ugo Bordoni
5G Privacy e sicurezza. Daniele Perucchini, Fondazione Ugo BordoniData Driven Innovation
 
La Sorveglianza E Il Controllo Sociale Della Rete Nellera Del Web 2.0
La Sorveglianza E Il Controllo Sociale Della Rete Nellera Del Web 2.0La Sorveglianza E Il Controllo Sociale Della Rete Nellera Del Web 2.0
La Sorveglianza E Il Controllo Sociale Della Rete Nellera Del Web 2.0Matteo Bayre
 
Internet better life
Internet better lifeInternet better life
Internet better lifeLeandro Agro'
 
Leandrò Agrò - Rinascimento=better life
Leandrò Agrò - Rinascimento=better lifeLeandrò Agrò - Rinascimento=better life
Leandrò Agrò - Rinascimento=better lifeToscanalab
 
Criticità per la protezione dei dati personali connesse all’utilizzo di dispo...
Criticità per la protezione dei dati personali connesse all’utilizzo di dispo...Criticità per la protezione dei dati personali connesse all’utilizzo di dispo...
Criticità per la protezione dei dati personali connesse all’utilizzo di dispo...festival ICT 2016
 

Semelhante a La mia tesi di laurea triennale - Beato Gianmarco (20)

La sicurezza nelle reti IEEE 802.15.4
La sicurezza nelle reti IEEE 802.15.4La sicurezza nelle reti IEEE 802.15.4
La sicurezza nelle reti IEEE 802.15.4
 
Internet delle cose
Internet delle coseInternet delle cose
Internet delle cose
 
InfoFactory: Internet of Thing per DITEDI e DigitalMeet2017
InfoFactory: Internet of Thing per DITEDI e DigitalMeet2017InfoFactory: Internet of Thing per DITEDI e DigitalMeet2017
InfoFactory: Internet of Thing per DITEDI e DigitalMeet2017
 
Presentazione Tesi di Laurea Triennale
Presentazione Tesi di Laurea Triennale Presentazione Tesi di Laurea Triennale
Presentazione Tesi di Laurea Triennale
 
Informatica Presente e Futuro
Informatica Presente e FuturoInformatica Presente e Futuro
Informatica Presente e Futuro
 
Internet of Things: mercato, tecnologie, applicazioni e competenze
Internet of Things: mercato, tecnologie, applicazioni e competenzeInternet of Things: mercato, tecnologie, applicazioni e competenze
Internet of Things: mercato, tecnologie, applicazioni e competenze
 
Seminario UNINFO Security Summit 2017
Seminario UNINFO Security Summit 2017Seminario UNINFO Security Summit 2017
Seminario UNINFO Security Summit 2017
 
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...
#Blockchain e #SmartContract- Le applicazioni nei sistemi logistici e nel com...
 
Blockchain revolution - Politecnico di Milano
Blockchain revolution - Politecnico di MilanoBlockchain revolution - Politecnico di Milano
Blockchain revolution - Politecnico di Milano
 
Blockchain revolution - Politecnico di Milano
Blockchain revolution - Politecnico di MilanoBlockchain revolution - Politecnico di Milano
Blockchain revolution - Politecnico di Milano
 
Bigdata v eletti_nov2013 versione_ampliata_con_silver
Bigdata v eletti_nov2013 versione_ampliata_con_silverBigdata v eletti_nov2013 versione_ampliata_con_silver
Bigdata v eletti_nov2013 versione_ampliata_con_silver
 
Open source ed IoT
Open source ed IoTOpen source ed IoT
Open source ed IoT
 
UNINFO - NUOVI TREND E NORME ISO/UNI - Blockchain, IoT, Big Data, Industry 4...
UNINFO -  NUOVI TREND E NORME ISO/UNI - Blockchain, IoT, Big Data, Industry 4...UNINFO -  NUOVI TREND E NORME ISO/UNI - Blockchain, IoT, Big Data, Industry 4...
UNINFO - NUOVI TREND E NORME ISO/UNI - Blockchain, IoT, Big Data, Industry 4...
 
Bitcoin e Smart Contract
Bitcoin e Smart ContractBitcoin e Smart Contract
Bitcoin e Smart Contract
 
Smau Padova 2016 - DirICTo
Smau Padova 2016 - DirICToSmau Padova 2016 - DirICTo
Smau Padova 2016 - DirICTo
 
5G Privacy e sicurezza. Daniele Perucchini, Fondazione Ugo Bordoni
5G Privacy e sicurezza. Daniele Perucchini, Fondazione Ugo Bordoni5G Privacy e sicurezza. Daniele Perucchini, Fondazione Ugo Bordoni
5G Privacy e sicurezza. Daniele Perucchini, Fondazione Ugo Bordoni
 
La Sorveglianza E Il Controllo Sociale Della Rete Nellera Del Web 2.0
La Sorveglianza E Il Controllo Sociale Della Rete Nellera Del Web 2.0La Sorveglianza E Il Controllo Sociale Della Rete Nellera Del Web 2.0
La Sorveglianza E Il Controllo Sociale Della Rete Nellera Del Web 2.0
 
Internet better life
Internet better lifeInternet better life
Internet better life
 
Leandrò Agrò - Rinascimento=better life
Leandrò Agrò - Rinascimento=better lifeLeandrò Agrò - Rinascimento=better life
Leandrò Agrò - Rinascimento=better life
 
Criticità per la protezione dei dati personali connesse all’utilizzo di dispo...
Criticità per la protezione dei dati personali connesse all’utilizzo di dispo...Criticità per la protezione dei dati personali connesse all’utilizzo di dispo...
Criticità per la protezione dei dati personali connesse all’utilizzo di dispo...
 

Mais de Gianmarco Beato

Acquisizione forense in ambito Web - Gianmarco Beato.pdf
Acquisizione forense in ambito Web - Gianmarco Beato.pdfAcquisizione forense in ambito Web - Gianmarco Beato.pdf
Acquisizione forense in ambito Web - Gianmarco Beato.pdfGianmarco Beato
 
Documento per la valutazione del progetto del team 2.pdf
Documento per la valutazione del progetto del team 2.pdfDocumento per la valutazione del progetto del team 2.pdf
Documento per la valutazione del progetto del team 2.pdfGianmarco Beato
 
Documento sul design - SmartPark
Documento sul design - SmartParkDocumento sul design - SmartPark
Documento sul design - SmartParkGianmarco Beato
 
Documento per l'analisi dei requisiti - SmartPark
Documento per l'analisi dei requisiti - SmartParkDocumento per l'analisi dei requisiti - SmartPark
Documento per l'analisi dei requisiti - SmartParkGianmarco Beato
 
Presentazione del progetto SmartPark
Presentazione del progetto SmartPark Presentazione del progetto SmartPark
Presentazione del progetto SmartPark Gianmarco Beato
 
Sfida CTF: Protostar Format Zero
Sfida CTF: Protostar Format Zero  Sfida CTF: Protostar Format Zero
Sfida CTF: Protostar Format Zero Gianmarco Beato
 
GenerativeMap: visualizzazione ed esplorazione di una density map dinamica tr...
GenerativeMap: visualizzazione ed esplorazione di una density map dinamica tr...GenerativeMap: visualizzazione ed esplorazione di una density map dinamica tr...
GenerativeMap: visualizzazione ed esplorazione di una density map dinamica tr...Gianmarco Beato
 
La sicurezza nelle reti IEEE 802.15.4
La sicurezza nelle reti IEEE 802.15.4 La sicurezza nelle reti IEEE 802.15.4
La sicurezza nelle reti IEEE 802.15.4 Gianmarco Beato
 
Relazione progetto Compressione Dati
Relazione progetto Compressione DatiRelazione progetto Compressione Dati
Relazione progetto Compressione DatiGianmarco Beato
 
Dispensa del corso di Cybersecurity
Dispensa del corso di CybersecurityDispensa del corso di Cybersecurity
Dispensa del corso di CybersecurityGianmarco Beato
 
Considerazioni di sicurezza per le reti IEEE 802.15.4
Considerazioni di sicurezza per le reti IEEE 802.15.4 Considerazioni di sicurezza per le reti IEEE 802.15.4
Considerazioni di sicurezza per le reti IEEE 802.15.4 Gianmarco Beato
 
Schema di watermarking robusto per un bitstream jpeg cifrato
Schema di watermarking robusto per un bitstream jpeg cifratoSchema di watermarking robusto per un bitstream jpeg cifrato
Schema di watermarking robusto per un bitstream jpeg cifratoGianmarco Beato
 
Web Application Coronavirus Regione Campania
Web Application Coronavirus Regione CampaniaWeb Application Coronavirus Regione Campania
Web Application Coronavirus Regione CampaniaGianmarco Beato
 

Mais de Gianmarco Beato (14)

Acquisizione forense in ambito Web - Gianmarco Beato.pdf
Acquisizione forense in ambito Web - Gianmarco Beato.pdfAcquisizione forense in ambito Web - Gianmarco Beato.pdf
Acquisizione forense in ambito Web - Gianmarco Beato.pdf
 
Documento per la valutazione del progetto del team 2.pdf
Documento per la valutazione del progetto del team 2.pdfDocumento per la valutazione del progetto del team 2.pdf
Documento per la valutazione del progetto del team 2.pdf
 
Documento sul design - SmartPark
Documento sul design - SmartParkDocumento sul design - SmartPark
Documento sul design - SmartPark
 
Documento per l'analisi dei requisiti - SmartPark
Documento per l'analisi dei requisiti - SmartParkDocumento per l'analisi dei requisiti - SmartPark
Documento per l'analisi dei requisiti - SmartPark
 
Presentazione del progetto SmartPark
Presentazione del progetto SmartPark Presentazione del progetto SmartPark
Presentazione del progetto SmartPark
 
Sfida CTF: Protostar Format Zero
Sfida CTF: Protostar Format Zero  Sfida CTF: Protostar Format Zero
Sfida CTF: Protostar Format Zero
 
Pacman 2D con ML-Agents
Pacman 2D con ML-AgentsPacman 2D con ML-Agents
Pacman 2D con ML-Agents
 
GenerativeMap: visualizzazione ed esplorazione di una density map dinamica tr...
GenerativeMap: visualizzazione ed esplorazione di una density map dinamica tr...GenerativeMap: visualizzazione ed esplorazione di una density map dinamica tr...
GenerativeMap: visualizzazione ed esplorazione di una density map dinamica tr...
 
La sicurezza nelle reti IEEE 802.15.4
La sicurezza nelle reti IEEE 802.15.4 La sicurezza nelle reti IEEE 802.15.4
La sicurezza nelle reti IEEE 802.15.4
 
Relazione progetto Compressione Dati
Relazione progetto Compressione DatiRelazione progetto Compressione Dati
Relazione progetto Compressione Dati
 
Dispensa del corso di Cybersecurity
Dispensa del corso di CybersecurityDispensa del corso di Cybersecurity
Dispensa del corso di Cybersecurity
 
Considerazioni di sicurezza per le reti IEEE 802.15.4
Considerazioni di sicurezza per le reti IEEE 802.15.4 Considerazioni di sicurezza per le reti IEEE 802.15.4
Considerazioni di sicurezza per le reti IEEE 802.15.4
 
Schema di watermarking robusto per un bitstream jpeg cifrato
Schema di watermarking robusto per un bitstream jpeg cifratoSchema di watermarking robusto per un bitstream jpeg cifrato
Schema di watermarking robusto per un bitstream jpeg cifrato
 
Web Application Coronavirus Regione Campania
Web Application Coronavirus Regione CampaniaWeb Application Coronavirus Regione Campania
Web Application Coronavirus Regione Campania
 

La mia tesi di laurea triennale - Beato Gianmarco

  • 1. Università degli Studi di Salerno Dipartimento di Informatica Tesi di Laurea di I livello in Informatica L’utilizzo di tecnologia Blockchain a supporto della sicurezza di dati critici generati in ambito Internet of Things Relatore Prof. Francesco Palmieri Candidato Gianmarco Beato Anno Accademico 2018-2019
  • 2. L’utilizzo di tecnologia Blockchain a supporto della sicurezza di dati critici generati in ambito Internet of Things Gianmarco Beato Tesi di laurea triennale, © Giovedì 26 settembre 2019
  • 3. “Il Web è progettato per essere universale: per includere tutto e tutti.” Tim Berners-Lee
  • 4. Alla mia famiglia, ai miei amici, a chi ha sempre creduto in me. Grazie Ringraziamenti
  • 5. PAROLE CHIAVE Internet of Things Security Blockchain Ethereum
  • 6. Indice Introduzione 1 1. Il fenomeno dell’IoT 3 1.1. Definizione: che cos’è l’IoT?. . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2. L’impatto IoT sull’economia e le aspettative di crescita. . . . 5 1.3. Le potenzialità del mondo interconnesso sulla società. . . . . . 5 1.3.1. Esempi di ambiti applicativi. . . . . . . . . . . . . . . . . . . . . .6 1.3.2. Protagonisti in campo. . . . . . . . . . . . . . . . . . . . . . . . . . .6 1.3.3. Il futuro dell’Internet delle cose. . . . . . . . . . . . . . . . . . .7 2. Sicurezza 8 2.1. Definizione generale di sicurezza. . . . . . . . . . . . . . . . . . . . . . 8 2.2. La sicurezza delle reti informatiche. . . . . . . . . . . . . . . . . . . . .9 2.2.1. Principali modalità di attacco e contromisure. . . . . . . . 11 2.3. La sicurezza nell’IoT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.4. La tecnologia blockchain: la fiducia su Internet. . . . . . . . . . .15 2.4.1. Definizioni di blockchain. . . . . . . . . . . . . . . . . . . . . . . .15 2.4.2. Concetti di base. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.4.3. Principi di funzionamento . . . . . . . . . . . . . . . . . . . . . . .18 2.4.4. Algoritmi e protocolli di consenso. . . . . . . . . . . . . . . . .19 2.4.5. Blockchain pubbliche e private. . . . . . . . . . . . . . . . . . . 20 2.4.6. Blockchain al servizio dell’Internet of Things. . . . . . . .21 2.4.7. Ethereum: principi di base…………………………….22 3. Ethereum: un caso d’uso 24 3.1. Architettura del sistema………………………………………24 3.2. Privacy e sicurezza…………………………………………...26 3.3. Implementazione del sistema di sostituzione batterie basato su Ethereum…………………………………………………..26 Conclusioni 29 Sitografia 30 Bibliografia 31
  • 7. Introduzione Negli ultimi anni Internet ha conosciuto una crescita esponenziale, comportando una rapidissima rivoluzione tecnologica e un grandissimo mutamento della società: Internet ha cambiato le vite di tutti, dal modo di comunicare, ricercare, intrattenersi e acquistare, ed ogni giorno siamo sempre più connessi alla rete. Con lo sviluppo sempre più rapido del World Wide Web e delle varie tecnologie di comunicazione si sta assistendo anche ad un aumento vertiginoso di oggetti smart che acquisiscono intelligenza, sono dotati di un'anima software, di sensori, memoria e che hanno la capacità di accedere alla rete ed interagire con essa senza l'intervento umano: si tratta dell'Internet of Things (IoT), una incredibile opportunità tecnologica che sta diventando sempre più pervasiva nelle nostre vite. Tuttavia, però, a causa delle risorse limitate di questi dispositivi e dell'architettura centralizzata su cui si basano, l'IoT sta diventando sempre più fragile, causando innumerevoli problemi di sicurezza. Fortunatamente, l'utilizzo della tecnologia blockchain, che si sta affermando come un'innovazione importante nel modo di condividere le informazioni, aiuta a superare i problemi di sicurezza di tali dispositivi creando un sistema IoT distribuito ed autonomo; infatti il punto di forza di tale tecnologia è quello di offrire soluzioni di consenso in modo da garantire la fiducia in ambienti distribuiti, peer-to-peer, senza la presenza di una terza parte attendibile. Nel 2008, infatti, viene presentato da Satoshi Nakamoto Bitcoin, un sistema di pagamento mondiale completamente decentralizzato che elimina per la prima volta la necessita di dover utilizzare un intermediario per effettuare lo scambio di asset digitali. Alla base del funzionamento di Bitcoin vi è proprio la tecnologia blockchain le cui applicazioni non si limitano soltanto alla possibilità di creare valute digitali. Negli ultimi anni sono nati sulla scia di Bitcoin centinaia di progetti che si prefiggono come scopo la risoluzione dei problemi più svariati. Tra questi ve ne sono alcuni, tra cui ad esempio Ethereum, che mirano a utilizzare la blockchain come tecnologia per sviluppare applicazioni e una nuova versione del web decentralizzato. Questa tesi si pone come obiettivo la realizzazione di un'architettura totalmente decentralizzata basata su blockchain: si propone, infatti, un esempio di utilizzo della blockchain di Ethereum per creare un sistema di sostituzione delle batterie dei veicoli elettrici. In questa architettura vengono 1
  • 8. utilizzati due tipi di clients IoT, A e B. L’architettura pensata risolve il problema dell’architettura centralizzata del paradigma dell’IoT oltre a superare i limiti prestazionali dei dispositivi IoT. I clients di tipo A sono considerati dispositivi IoT con risorse limitate e sono responsabili dell'interazione con l’utente e della raccolta dei dati IoT; I clients di tipo B, invece, sono da considerare come dei dispositivi IoT con risorse maggiori o uguali ai personal computer e possono eseguire il processo di mining. Si utilizza una rete blockchain privata di Ethereum, non solo perché supporta contratti intelligenti con cui possiamo progettare interazioni relativamente complesse tra diversi dispositivi IoT, ma anche perché può generare un nuovo blocco più velocemente di Bitcoin. Inoltre si utilizza l’algoritmo PoW come protocollo di consenso; e come metodo di crittografia si utilizza l’account Ethereum. Inoltre, sia i clients di tipo A che di tipo B sono connessi alla rete Internet. Lo scopo di questa tesi non si limita alla realizzazione dell’architettura sopra descritta, mira infatti anche ad offrire una panoramica dettagliata a riguardo l'IoT e la blockchain, analizzando come queste due tecnologie possono interagire tra loro per creare servizi tangibili nel mondo reale. La tesi si articola in tre capitoli: Capitolo 1 Nel primo capitolo si introducono i concetti fondamentali del fenomeno dell’IoT Capitolo 2 Nel secondo capitolo viene illustrato prima il concetto generale di sicurezza e sicurezza nelle reti informatiche poi della tecnologia Blockchain nello scenario Internet of Things. Capitolo 3 Nel terzo capitolo viene mostrato un esempio di utilizzo della blockchain di Ethereum in cui viene creata un’architettura decentralizzata per la realizzazione di un sistema di sostituzione delle batterie dei veicoli elettrici Nelle conclusioni viene infine analizzato il lavoro svolto verificando se sono stati raggiunti tutti gli obiettivi che questa tesi si prefissa. INTRODUZIONE 2
  • 9. Capitolo 1 Il fenomeno dell’IoT L’internet delle cose è la più grande rivoluzione introdotta dalla rete globale negli ultimi tempi, si propone di fondere il mondo reale con quello virtuale creando un ambiente più intelligente. Un ambiente in grado di sentire, analizzare e adattarsi per rendere le nostre vite più semplici, sicure ed efficienti. L’internet of Things (IoT) è un fenomeno che si sta velocemente affermando come paradigma rivoluzionario nello scenario delle nuove telecomunicazioni senza fili. L’idea alla base di questo concetto è la pervasiva presenza di una gran quantità di cose o oggetti che attraverso varie tecnologie sono in grado di interagire tra di loro e co-operare per il raggiungimento di un obiettivo comune. Esistono numerosi casi d’uso, dalle case intelligenti, alla gestione di impianti di produzione industriale, dal monitoraggio e miglioramento di coltivazioni e allevamenti all’utilizzo in campo militare, da sistemi di scala globale a piccoli ambienti. 1.1 Definizione: che cos’è l’IoT? Internet delle cose (o, più propriamente, Internet degli oggetti o IoT, acronimo dell’inglese Internet of Things) è l’ espressione utilizzata per definire l’estensione di Internet al mondo degli oggetti. L’Internet delle cose può essere visto come una vera e propria evoluzione dell’uso della Rete. Esso è la rete delle apparecchiature e dei dispositivi (detti gli “oggetti” o “cose”), connessi ad Internet, che si rendono riconoscibili e acquisiscono intelligenza grazie al fatto di essere equipaggiati da un software che permette di scambiare dati con altri oggetti connessi. 3
  • 10. Per "cosa" o "oggetto" si intende più precisamente categorie quali: dispositivi, apparecchiature, impianti e sistemi, materiali e prodotti tangibili, opere e beni, macchine e attrezzature. Questi oggetti connessi che sono alla base dell’Internet delle cose si definiscono più propriamente smart objects (oggetti intelligenti) e si contraddistinguono per alcune proprietà o funzionalità. Le più importanti sono identificazione, connessione, localizzazione, capacità di elaborare dati e capacità di interagire con l’ambiente esterno. Obiettivi di questi dispositivi sono raccogliere e trasferire dati ed informazioni, dare comandi e controllare particolari attività. Dal frigorifero alla smart tv, dalla lampadina al termostato, dalla telecamera allo smartwatch, tutti possono essere considerati esempi di IoT. In ambito cittadino, ad esempio, un rilevatore collocato in una strada può controllare i lampioni e segnalare se la lampada funziona, oppure potrebbe segnalare informazioni sulla qualità dell’aria o sulla presenza di persone. Le due caratteristiche principali di un “oggetto connesso” sono: • Avere un indirizzo IP che ne consenta l’identificazione univoca sulla Rete. • Avere la capacità di scambiare dati attraverso la rete stessa senza bisogna dell’intervento umano. Questo può essere fornito direttamente dal produttore, sotto forma di firmware. IL FENOMENO DELL’IOT 4 Figura 1.1: IoT Network
  • 11. 1.2 L’impatto IoT sull’economia e le aspettative di crescita Nei prossimi anni l’Internet of Things è destinato a crescere in modo esponenziale, sia per quanto riguarda la sua diffusione, sia in termini di valore economico. Nei prossimi 10 anni la maggior parte del traffico Internet sarà generata da milioni di dispositivi connessi come sensori, misuratori, elettrodomestici, mezzi di trasporto etc… Secondo gli analisti entro il 2020 ci saranno più di ventisei miliardi di oggetti connessi a livello globale, ABI Research stima che saranno più di 30 miliardi. Altri istituti parlano di 100 miliardi. Secondo l’americana Cisco entro il 2020 il valore aggiunto complessivo all’economia globale sarà di 14.000 miliardi di dollari. Secondo l'Osservatorio Internet of Things del Politecnico di Milano, il mercato degli smart objects in Italia è arrivato a toccare i 3,7 miliardi di euro, con una crescita del 36% rispetto all'anno precedente. Altro aspetto interessante di quella che è definita come la “quarta rivoluzione industriale” è che il 90% del valore economico creato dall’IoT sarà catturato dagli utenti: il 60% sarà destinato ai paesi industrializzati, ma il restante 40% aiuterà le economie dei paesi in via di Sviluppo. Le maggiori attrattive di business si possono raggruppare in 4 macro argo-menti: "Smart Manufacturing", "Smart Homes", "Smart Health" e "Smart Customer Experience". Questi dati sono stati ottenuti tenendo in considerazione la crescita stimata del settore e la spesa stimata per l'IoT in quel settore. 1.3 Le potenzialità del mondo interconnesso sulla società E’ fuori dubbio, quindi, che le potenzialità derivanti da un’applicazione completa di questo paradigma portino sia ad una rivoluzione industriale sia ad un radicale cambiamento di molti aspetti della vita quotidiana e comportamentale delle persone. Dal punto di vista di un utente privato, gli effetti più importanti del paradigma dell’internet of things sono visibili sia dal lato lavorativo che domestico. In questo contesto la domotica, l’assistenza virtuale, lo Smart Car, l’e-health sono solo alcuni esempi dei possibili scenari in cui questo nuovo paradigma rappresenta un ruolo chiave oggi e nel prossimo futuro. 5 IL FENOMENO DELL’IOT
  • 12. 1.3.1 Esempi di ambiti applicativi Virtualmente qualsiasi oggetto può essere dotato di un dispositivo elettronico con un software in grado di collegarsi ad internet o a una rete locale, per cui gli ambiti di applicazione dell’Internet delle cose sono praticamente infiniti: alle smart home, le case intelligenti che regolano da sole temperatura e illuminazione in base alle condizioni esterne, alle auto che dialogano in tempo reale con la strada e le altre vetture per evitare incidenti e ottimizzare consumi e percorsi. Dalla medicina, con pacemaker e altri dispositivi in grado di allertare direttamente i soccorsi se il portatore si sente male, all’agricoltura, con sensori immersi nel terreno che segnalano composizione e umidità del suolo al sistema che eroga acqua e fertilizzanti. A livello domestico i dispositivi connessi si potranno controllare attraverso il browser di un computer, accedendo alla rete domestica, oppure più semplicemente attraverso una app connessa in remoto direttamente dallo smartphone. Già oggi è possibile, tramite il proprio cellulare, impostare il termostato di casa e vedere in tempo reale le immagini delle telecamere di sicurezza di casa. Inoltre molte pubbliche amministrazioni stanno già guardando con crescente interesse alla possibilità di rendere sempre più smart le proprie città. L’unico limite insomma sembra essere la fantasia: qualunque oggetto, a patto di essere collegato alla rete e di comunicare qualcosa a qualcuno, può ricadere in questa definizione. 1.3.2 Protagonisti in campo Tra i principali protagonisti in campo come fornitori di dispositivi, servizi e framework di sviluppo si possono elencare: • Microsoft L’offerta di Microsoft comprende più che altro soluzioni per il cloud e la gestione dei dispositivi attraverso la piattaforma “Azure IoT Suite”. • Samsung La direzione, o meglio il settore commerciale al quale punta Samsung, sembra essere quello della Smart Home, con il lancio della piattaforma “Smartthings”, un insieme di prodotti per le case intelligenti. IL FENOMENO DELL’IOT 6
  • 13. • Apple La casa di Steve Jobs ha messo a disposizione la piattaforma HomeKit, che permette di configurare i dispositivi Apple in una smart Home in modo da poterli utilizzare attraverso Siri. 1.3.3 Il futuro dell’Internet delle Cose La IoT si sta sviluppando parallelamente anche all’utilizzo dell’intelligenza artificiale. Sono allo studio ad esempio dei nuovi sistemi che integrano macchine per gli esami clinici in grado di inviare automaticamente i risultati delle analisi a delle banche dati dove l’intelligenza artificiale, analizzando grandi masse di dati, è in grado di estrapolare una diagnosi e consigliare una cura. Intelligenza artificiale, big data e IoT sono fra loro connessi a livello profondo e lo saranno sempre di più nelle applicazioni future. Miliardi di dispositivi ed oggetti vari collegati ad internet trasmettono un’immane massa di dati che una mente umana non saprebbe analizzare né gestire. L’utilizzo dell’intelligenza artificiale potrebbe invece trovare molti nuovi ambiti di applicazione, rilevando ad esempio similitudini e differenze analizzando milioni di cartelle cliniche, seguendo con l’esempio in campo medico, di pazienti con la stessa patologia. 7 IL FENOMENO DELL’IOT
  • 14. Capitolo 2 Sicurezza L’Internet of Things, come visto in precedenza, ha tantissimi ambiti applicativi. La disponibilità di un numero sempre crescente di dispositivi in grado di connettersi ad Internet ha aperto una nuova sfida per chi lavora con tecnologia IoT , ovvero quella costituita dai rischi intrinseci per la sicurezza. Infatti ogni dispositivo IoT può essere un potenziale punto di accesso per gli hacker. La risposta agli innumerevoli problemi di sicurezza dell’IoT potrebbe essere la tecnologia Blockchain. Di seguito si discuterà prima del concetto generale di sicurezza e sicurezza nelle reti informatiche, poi della tecnologia Blockchain nello scenario Internet of Things. 2.1 Definizione generale di sicurezza La sicurezza è definita come segue: “La condizione che rende e fa sentire di essere esenti da pericoli, o che dà la possibilità di prevenire, eliminare o rendere meno gravi danni, rischi, difficoltà, evenienze spiacevoli, e simili.” I concetti principali riguardanti la sicurezza sono: Minaccia: una azione che se attuata sfruttando delle vulnerabilità può causare un danno. Vulnerabilità: una componente di un sistema in corrispondenza alla quale le misure di sicurezza sono assenti, ridotte o compromesse. Può essere utilizzata per mettere in pratica una minaccia. Rischio: la possibilità che si possa verificare un evento dannoso. Contromisura: un provvedimento diretto a prevenire o neutralizzare eventi dannosi. Difesa: la messa in pratica di contromisure. 8
  • 15. 2.2 La sicurezza delle reti informatiche Le reti di calcolatori e le tecnologie per la comunicazione dei dati sono in rapida evoluzione e rappresentano un aspetto cruciale per il progresso tecnologico. Internet è la rete più utilizzata e diffusa ed è ormai parte della nostra vita quotidiana. La comunicazione digitale e le reti di computer stanno cambiando molti aspetti del nostro modo di vivere. Le nuove tecnologie permettono di spedire quantità di dati sempre maggiori con segnali più veloci, permettendo un notevole miglioramento dei servizi offerti. Nello specifico una rete è un insieme di dispositivi (chiamati anche nodi o stazioni) connessi da canali di comunicazione. Un nodo può essere un computer, una stampante, un sensore o qualsiasi altro dispositivo capace di spedire o ricevere dati generati da altri nodi della rete. Gli scopi principali di una rete sono: accedere alle informazioni, condividere delle risorse, e facilitare la comunicazione. Quando comunichiamo attraverso la rete non stiamo facendo altro che scambiare delle informazioni. Un sistema di comunicazione è composto da cinque componenti: un messaggio, un mittente, un destinatario, un mezzo di comunicazione ed un protocollo. Una rete è costituita sia dall'hardware (computer e altri dispositivi) sia dal software (programmi e protocolli) che gestisce il trasferimento dei dati da un punto all'altro della rete. Una rete effettua i propri compiti grazie ad un'architettura a strati (o livelli) in cui ogni strato ha un insieme di funzioni. Il modello OSI è uno standard per le funzioni di comunicazione nelle reti. Esso stabilisce per l'architettura logica di rete una struttura a strati composta da una pila di protocolli di comunicazione de rete suddivisa in 7 livelli (fisico, collegamento, rete, trasporto, sessione, presentazione, applicazione). Ma a livello implementativo lo standard de facto affermatosi per le architetture di rete a livelli è il TCP/IP, che riprende in parte il modello OSI. La principale differenza fra il modello OSE e quello TCP/IP è dovuta al fatto che la suite TCP/IP è costituita da vari protocolli strutturati gerarchicamente, ma non così rigidamente come previsto dal modello OSI per il quale ogni strato ha un preciso insieme di funzioni. In TCP/IP i protocolli sono abbastanza indipendenti e possono essere usati a seconda delle necessità specifiche. Inoltre il modello TCP/IP prevede solo cinque strati (fisico, collegamento, rete, trasporto ed applicazione). Per lo strato di rete il protocollo principale è IP, mentre per lo strato di trasporto la suite TCP/IP prevede tre protocolli: TCP, UDP e SCTP. Per la sicurezza delle informazioni scambiate attraverso la rete esistono alcuni importanti protocolli: IPSec, SSL/TLS e HTTPS. IPSec fornisce strumenti crittografici per la protezione al livello di rete, TLS (e il 9 SICUREZZA
  • 16. suo predecessore SSL) fornisce funzionalità di sicurezza nello strato di trasporto. La “sicurezza informatica”, o meglio, la “sicurezza dell’informazione”, è l’insieme dei mezzi e delle tecnologie mirate alla protezione dei sistemi informatici tramite l’analisi delle vulnerabilità, del rischio e delle minacce, al fine di proteggerli da possibili attacchi che potrebbero provocare danni (es. economico, politico-sociale, etc…). In particolare, nella sicurezza delle reti si valutano l’eventuale presenza di vulnerabilità dei singoli nodi che compongono la rete, e la sicurezza dello scambio di informazioni tra i nodi. Un sinonimo del termine “sicurezza informatica” spesso usato è quello di “cybersecurity”. Nei primi decenni della loro esistenza, le reti di computer vennero utilizzate prevalentemente dai ricercatori universitari per inviare e ricevere email, e dalle aziende per condividere stampanti. In quelle applicazioni non si prestava molta attenzione alla sicurezza. Oggi per via della crescente informatizzazione della società e dei servizi pubblici e privati, milioni di persone usano le reti per effettuare acquisti, lavorare, condividere risorse, comunicare, quindi la sicurezza delle reti sta diventando sempre più un problema potenzialmente vasto ed importante, il cui interesse sta crescendo negli ultimi anni proporzionalmente alla crescente diffusione delle reti stesse. La sicurezza è un argomento molto ampio, che copre innumerevoli problematiche. Nella sua forma più semplice, riguarda come fare in modo che intrusi non riescano a leggere o, peggio ancora, modificare di nascosto, i messaggi destinati a terzi. Si occupa inoltre di impedire che determinate persone possono accedere a servizi remoti che non sono autorizzate a usare. La sicurezza si occupa anche di come accertarsi dell’identità dei mittenti dei messaggi, di come impedire l’intercettazione e la ripetizione di messaggi legittimi catturati sulla rete, e di come perseguire chi afferma di non aver mai spedito certi messaggi. La maggior parte dei problemi di sicurezza sono causati da persone malintenzionate, che tentano di guadagnare qualcosa, catturare l’attenzione oppure danneggiare qualcuno. L’approccio odierno alla cybersecurity si concentra su cosa e su come fare per prevenire un incidente di sicurezza e come comportarsi nel caso un tale incidente si verifichi. Ciò è confermato nelle linee guida (cybersecurity framework) emanate dal National Institute of Standards and Technologi che prevedono i seguenti macro-processi: Identifica, Proteggi, Rileva, Rispondi, Ripristina. Inoltre, dal momento che l’informazione è diventata un bene, e che la maggior parte delle informazioni sono custodite su supporti informatici, ogni organizzazione deve essere in grado di garantire la sicurezza dei propri dati, SICUREZZA 10
  • 17. in un contesto dove i rischi informatici sono in continuo aumento. Per questo esistono, a carico delle imprese, precisi obblighi in materia di privacy, tra cui quello di redigere annualmente uno specifico documento programmatico sulla sicurezza. I requisiti principali che garantiscono la sicurezza dell’informazione sono la nota triade CIA: • Confidentiality La confidenzialità, detta anche segretezza, si occupa di mantenere le informazioni fuori dalla portata degli utenti non autorizzati. • Integrity L’integrità si riferisce al fatto che il messaggio ricevuto è esattamente quello che è stato inviato, senza subire, quindi, nessuna modifica non autorizzata. • Availability La disponibilità fa riferimento alla capacità di poter accedere ai propri dati quando ne si ha il bisogno. Altri requisiti aggiunti alla triade CIA sono: • Authenticity L’autenticazione si occupa di stabilire l’identità del soggetto con cui stiamo comunicando, prima di rivelare informazioni sensibili o concludere transazioni commerciali. • Non-repudiation Il termine non ripudio riguarda il meccanismo secondo il quale il mittente di un messaggio non può successivamente sostenere di non averlo inviato, e per contro che il destinatario del messaggio non possa sostenere di non averlo ricevuto. 2.2.1 Principali modalità di attacco e contromisure Le principali modalità di attacco che hanno come obiettivo la violazione di requisiti di sicurezza dei sistemi informatici sono: • Ransomware E’ un tipo di malware che limita l’accesso del dispositivo che infetta, richiedendo un riscatto per rimuovere la limitazione. 11 SICUREZZA
  • 18. • Spyware E’ un tipo di software che raccoglie informazioni di un utente senza che l’utente stesso se ne accorga, trasmettendole tramite Internet ad una organizzazione che le utilizzerà per trarne profitto. • Virus, Worm e Trojan Programmi che una volta installati su di un computer ottengono accesso alle risorse potendone fare qualsiasi cosa, dalla distruzione al furto. • Denial-of-service Si tratta di un attacco che punta a rendere inutilizzabile un determinato servizio e per raggiungere questo scopo punta a far esaurire le risorse del server che mette a disposizione tale servizio. • Backdoor Il backdoor è un metodo per passare oltre la normale autenticazione in un prodotto, un sistema informatico, un crittosistema o un algoritmo. • Spoofing Lo spoofing è un attacco utilizzato per manipolare i dati trasmessi in una rete, falsificando varie informazioni come l’identità di un host o il mittente di un messaggio. Una volta che un attaccante riesce ad impersonare qualcun altro all’interno di una rete gli è possibile intercettare informazioni riservate e diffondere false informazioni. Alcune importanti contromisure sono: • Riduzione vulnerabilià Ovvero ritrovare eventuali punti deboli del sistema, come i bug, e metter in pratica delle soluzioni per rinforzarli. • Autenticazione e identificazione Sapere chi sta accedendo ad una risorsa ed avere la prova che sia effettivamente chi sostiene di essere è alla base delle politiche del controllo degli accessi. • Anti-virus Programma in grado di rilevare ed eliminare programmi nocivi. • Firewall Un Firewall è un dispositivo che si pone fra la rete interna di un’organizzazione e il resto di Internet. Esso permette di monitorare e filtrare tutto il traffico di rete sia in entrata che in uscita utilizzando SICUREZZA 12
  • 19. una serie di regole di sicurezza per consentire o bloccare il passaggio di determinati pacchetti di rete. • Crittografia La sicurezza nelle reti di calcolatori si ottiene principalmente attraverso l’uso di strumenti crittografici. La crittografia è lo studio delle tecniche per occultare un messaggio in modo da non essere comprensibile a persone non autorizzate e consentire che due o più persone possano trasmettersi dati attraverso un canale di comunicazione pubblico o non sicuro di una rete. Esistono due forme di crittografia: la crittografia simmetrica (o a chiave unica) e la crittografia asimmetrica (o a chiave pubblica/privata). Le componenti di un sistema crittografico sono: un testo in chiaro (messaggio da spedire), il testo cifrato (messaggio occultato), una chiave segreta, un algoritmo di cifratura (che grazie alla chiave segreta trasforma il testo in chiaro in testo cifrato), ed un algoritmo di decifratura (che grazie alla chiave segreta trasforma il testo cifrato in testo in chiaro). 2.3 La sicurezza nell’IoT Uno dei problemi principali del fenomeno dell’IoT riguarda proprio la sicurezza e la privacy. Il mondo dell’IoT rappresenta per i cybercriminali un terreno molto fertile, pieno di dispositivi, quali smart tv, telecamere, stampanti, frigoriferi e sensori, dotati di scarsi livelli di protezioni in cui gli utenti utilizzatori non hanno nemmeno strumenti efficaci per rilevare e contrastare eventuali attacchi. Questi dispositivi possono essere usati da utenti malintenzionati con l’obiettivo di danneggiarli o prenderne il controllo anche dell’infrastruttura su cui si basano, senza escludere l’ambiente esterno con cui interagiscono. Le vulnerabilità di questi dispositivi sono causate principalmente dalle loro scarse capacità computazionali non consentendo l’utilizzo di contromisure efficaci come la crittografia e meccanismi di autenticazione per mettere in sicurezza i dati che contengono e che comunicano. Negli ultimi anni si sono verificati numerosi episodi di cyberattacchi tramite l’utilizzo di dispositivi IoT, come il famoso attacco DDos del 2016 ai danni della rete DNS del provider Dyn. In quell’attacco milioni di dispositivi IoT vennero compromessi infettandoli con il virus Mirai. Dopo aver ottenuto 13 SICUREZZA
  • 20. il controllo di un numero così elevato di dispositivi, gli attaccanti li utilizzarono per indirizzare ai server DNS di Dyn milioni di richieste, più di quante i server ne potessero effettivamente gestire, causando una interruzione di servizio di vaste proporzioni. Stampanti, telecamere, router e persino baby monitor si resero complici di un attacco di tale entità semplicemente perché dotati di software poco sicuro. Tra il dicembre 2013 e il gennaio del 2014, Proofpoint, un provider che opera nel campo della sicurezza, rilevò un attacco che coinvolse elettrodomestici “intelligenti” come frigoriferi, smart tv, forni, etc… Questo episodio può essere definito come il primo attacco informatico basato sull’internet delle cose. Gli elettrodomestici compromessi vennero usati per inviare delle email malevoli destinate a imprese e privati di tutto il mondo. Da ogni singolo indirizzo IP venivano inviate massimo 10 email tale da rendere impossibile la rilevazione dell’attacco in base alla posizione; la violazione non è stata molto difficile per chi l’ha compiuta, infatti è bastato utilizzare nome utente e password di default. Anche delle semplici pompe di insulina potrebbero essere hackerate, infatti questi “oggetti” possono essere accessibili e controllati da remoto da utenti malintenzionati, dal momento che questi possono comunicare i dati rilevati tramite wireless con una postazione dotata di display che potrebbe mostrare informazioni manomesse causando una somministrazione sbagliata di dosi. I dispositivi IoT raccolgono una grandissima quantità di dati che se violati compromettono anche la privacy degli utenti. Per questo motivo i fornitori di dispositivi IoT devono proporre prodotti di qualità e fornire trasparenza su quali dati vengono utilizzati e in che modo, e assicurare che siano adeguatamente protetti. Tra le principali modalità di attacco ai dispositivi IoT troviamo il DDOS, l’Accesso Diretto, lo Spoofing ed il Tampering. Inoltre, per la sicurezza dei dispositivi IoT è stato sviluppato dall’IEEE uno standard, noto come standard IEEE 802.15.4. Infatti questo standard è stato specificamente pensato per le comunicazioni wireless a corto raggio, basso costo, bassa velocità e basso consumo energetico, adattandosi, quindi, perfettamente ai dispositivi IoT. I temi centrali inerenti alla sicurezza in ambito IoT sono principalmente l’autenticazione e l’integrità dei dati. L’autenticazione è complessa perché richiede l’uso di infrastrutture e server che funzionano tramite lo scambio di messaggi con altri nodi; questo nell’IoT è impraticabile a causa dei tag RFID passivi che non possono scambiare così tanti dati con i server di autenticazione. L’integrità dei dati, invece, si riferisce al fatto di assicurare l’impossibilità di modificare i dati di una transazione e questo senza un sistema di protezione avanzato chiunque potrebbe alterare i dati mentre sono immagazzinati nei nodi o mentre attraversano la rete. Questo SICUREZZA 14
  • 21. problema può essere risolto con l’utilizzo della tecnologia Blockchain, che sarà oggetto dei prossimi paragrafi. Dagli esempi, prima mostrati, si può, dunque, affermare che l’Internet of Things è intrinsecamente vulnerabile in termini di sicurezza dando origine ad infinite possibilità di hackeraggio, ampliando il terreno d’azione da parte dei criminali informatici. 2.4 La tecnologia blockchain: la fiducia su Internet La blockchain è una tecnologia che consente la creazione e gestione di un ampio registro digitale distribuito e condiviso tra più nodi di una rete, per la sincronizzazione di numerosi dati relativi alle transazioni. Il concetto di blockchain fu originariamente ideato nel 1991 da un gruppo di ricercatori, ma la prima concettualizzazione di blockchain fu introdotta solo nel 2008 ad opera di Satoshi Nakamoto che l’ha impiegò per creare Bitcoin, la prima criptovaluta digitale. Nel corso degli anni la blockchain ha acquistato sempre più credibilità proponendosi come soluzione ed opportunità per diversi campi applicativi, tra cui L’IoT. Essa è considerata una delle innovazioni tecnologiche più importanti avvenute in ambito informatico degli ultimi anni, in grado di mutare radicalmente il mondo dell’impresa, della finanza, della Pubblica Amministrazione, ed in tanti altri campi applicativi, così come comporta vantaggi in termini di efficienza, sicurezza e privacy. La Blockchain sta facendo con le transazioni quello che Internet ha fatto con le informazioni e lo sta facendo grazie ad un processo che unisce sistemi distribuiti e crittografia avanzata. 2.4.1 Definizioni di blockchain Più che una tecnologia, la blockchain è un paradigma, un modo per interpretare i temi della decentralizzazione e della partecipazione; proprio per questo motivo esistono varie definizioni. 15 SICUREZZA
  • 22. In generale, la blockchain (o “catena di blocchi”) è una struttura dati distribuita, condivisa ed immutabile. E’ definita come un registro digitale in cui le voci sono raggruppate in “pagine” (dette blocchi), concatenate in odine cronologico e mediante meccanismi crittografici, che ne garantiscono l’integrità. La sua dimensione cresce nel tempo, ma il suo contenuto è immutabile, in quanto, una volta scritto non è più nè modificabile nè eliminabile. Non è richiesto che i nodi si fidino l’un l’altro, infatti per garantire la coerenza tra le varie copie, l’aggiunta di un nuovo blocco è globalmente regolata da un protocollo condiviso. Una volta autorizzata l’aggiunta di un nuovo blocco, ogni nodo aggiorna la propria copia privata. La blockchain può essere vista anche come un database distribuito, gestito e condiviso da una rete di nodi di tipo peer-to-peer (P2P), ognuno dei quali ne possiede una copia privata. Tale database è strutturato in blocchi, ciascuno contenente dei dati (tipicamente tutte le transazioni che costituiscono un cambiamento di stato del database che sono mai state eseguite nel contesto di un medesimo network). Tali blocchi sono tra loro collegati in rete in modo tale che ciascuna transazione avviata sulla rete debba essere validata dall’intera rete nell’analisi di ogni singolo blocco. La blockchain, dunque, può essere visto come un vero e proprio registro pubblico aperto a tutti per la gestione dei dati correlati alle transazioni presenti nei blocchi. La stessa “informazione” è dunque presente su tutti i nodi e pertanto diventa immodificabile se non attraverso una operazione che richiede l’approvazione della maggioranza dei nodi della rete e che in ogni caso non modificherà la storia di quella stessa informazione. 2.4.2 Concetti di base La blockchain si basa sui seguenti concetti: • Decentralizzazione, ridondanza e distribuzione La blockchain decentralizzata sfrutta il passaggio di messaggi ad-hoc e un networking distribuito per fare in modo di memorizzare i dati su tutta la sua rete in modo tale che ogni nodo possiede una copia privata dell’intera blockchain, ed evitare di avere un single point of failure in modo che non esista una centralizzazione che i cracker potrebbero sfruttare per abbattere l'intero sistema. • Sicurezza Oltre alla ridonanza e distribuzione, la blockchain utilizza dei meccanismi crittografici come le funzioni hash, che rendono SICUREZZA 16
  • 23. estremamente semplice rilevare se c’è stato un tentativo di alterazione di dati. • Immutabilità Ciascun blocco è un archivio di tutte le transazioni effettuate che possono essere modificate solo con l’approvazione dei nodi della rete. Da qui il concetto di immutabilità. • Consenso e condivisione Ogni nodo, chiamato anche miner, nel sistema decentralizzato ha una copia della blockchain: difatti la qualità dei dati è mantenuta grazie ad una massiva replicazione del database. Non esiste nessuna copia ufficiale centralizzata e nessun utente è più credibile di altri, tutti sono allo stesso livello di credenziali. I nodi miner, ovvero gli utenti, validano le nuove transazioni le aggiungono al blocco che stanno costruendo dopo aver verificato l'intera blockchain. Una volta completato il blocco, lo trasmettono agli altri nodi della rete. • Trasparenza le transazioni effettuate attraverso la blockchain sono visibili a tutti i partecipanti, garantendo così trasparenza nelle operazioni. Partendo da questi concetti, la blockchain è diventata la declinazione in digitale di un nuovo concetto di Trust, di fiducia. Per queste ragioni alcuni ritengono che la blockchain possa assumere anche un valore per certi aspetti di tipo “sociale e politico”, come piattaforma che consente lo sviluppo e la concretizzazione di una nuova forma di rapporto sociale, realmente distribuita e in grado di garantire a tutti la possibilità di verificare, di “controllare”, di disporre di una totale trasparenza sugli atti e sulle decisioni, che vengono registrati in archivi immutabili e condivisi, che hanno caratteristica di essere inalterabili, immodificabili e dunque immuni da corruzione. 17 SICUREZZA
  • 24. 2.4.3 Principi di funzionamento Il modello proposto dalla blockchain si basa sulla combinazione tra firma digitale e marca temporale (timestamp). Le transazioni sono raggruppate nei blocchi della blockchain e il numero di transazioni all'interno di ognuno di questi blocchi varia in base alla dimensione della transazione stessa. Ogni blocco, creato da un utente chiamato “miners”, è aggiornato in tempo reale e mantenuto da tutti i nodi della rete, ciascuno dei quali è chiamato a verificare ed approvare ogni blocco, prima che quest’ultimo possa essere aggiunto definitivamente alla catena pubblica condivisa tra tutti gli altri nodi partecipanti. Le transazioni sono condivise e convalidate dai nodi secondo un algoritmo di consenso, il quale esegue automaticamente la prova di verifica di un blocco, senza la necessità di intervento umano o di un’autorità centrale. Ogni blocco, escluso il primo che è denominato genesis block, è composto da due parti principali: l'header e il body. Le transazioni sono racchiuse nel body del blocco e nell'header sono presenti alcuni campi di gestione del blocco stesso: • Versione • L’identificativo del blocco • Hash del blocco precedente L’Hash è una funzione iniettiva, quindi non invertibile (unidirezionale), in grado di mappare dei dati di dimensione arbitraria in una stringa di bit di dimensione prefissata. Infatti la blockchain è un insieme di blocchi concatenati tramite questa funzione crittografica, infatti ogni blocco contiene l’hash del blocco precedente. L’hash rende molto semplice rilevare se c’è stato un tentativo di alterazione del passato, in quanto una qualunque modifica al contenuto di un blocco provocherebbe anche la modifica del suo SICUREZZA 18 Figura 1.2: rappresentazione semplificata di una blockchain
  • 25. hash causando un invalidamento dell’intera blockchain. Un attaccante in grado di manomettere i dati memorizzati nella blockchain dovrebbe ricalcolare in cascata anche gli hash di tutti i blocchi successivi a quello manomesso. Ciò rende l’operazione di manomissione tanto più difficile quanto è maggiore il numero di blocchi che l’attaccante dovrà tantare di modificare. • Merkle root La radice della struttura ad albero utilizzata per raccogliere tutte le transazioni appartenenti al blocco. • Timestamp La marca temporale che indica l’istante esatto in cui il blocco è stato creato. 2.4.4 Algoritmi e protocolli di consenso Affinchè in dati di una blockchain siano validati e scritti nel registro pubblico occorre il consenso da parte dei nodi della rete, ovvero un metodo che metta d’accordo la maggioranza di tali nodi. I protocolli di consenso costituiscono un elemento cruciale per una blockchain, in quanto hanno il compito di mantenere l’integrità e la sicurezza di questi sistemi distribuiti. Esistono diversi tipi di algoritmi che rispettano i protocolli di consenso; i più comuni sono: • Proof of Work (PoW) L’algoritmo PoW, dove PoW sta per “Prova di lavoro”, consiste in una lunga e complessa prova matematica, che viene richiesta a quei nodi del sistema denominati miners, come condizione necessaria per essere ritenuti nodi affidabili, al fine di poter verificare le transazioni della rete e ricevere un compenso in forma di criptomoneta. L’intero procedimento è chiamato mining: solo chi è in possesso di una certa quantità computazionale è ritenuto affidabile. • Proof of Stake (PoS) Questo metodo di consenso è basato sul principio di mettere qualcosa “at stake” e cioè in gioco. L’algoritmo di consenso Proof of Stake sostituisce il mining PoW con un meccanismo in cui i blocchi vengono convalidati in base alla posta in gioco dei partecipanti. 19 SICUREZZA
  • 26. 2.4.5 Blockchain pubbliche e private Le blockchain possono essere classificate in due grandi categorie: blockchain pubbliche (Permissionless Ledger) e blockchain private (Permisioned Ledger): • Le blockchain pubbliche sono aperte, non hanno una “proprietà” e sono concepite per non essere controllate; chiunque vi può prendere parte senza che sia necessario alcun permesso. L’obiettivo delle Permissioneless Ledger è quello di permettere a ciascuno di contribuire all’aggiornamento dei dati sul Ledger e di disporre, in qualità di partecipante, di tutte le copie immutabili di tutte le operazioni. Ovvero di disporre di tutte le copie identiche di tutto quanto viene approvato grazie al consenso. Questo modello di blockchain impedisce ogni forma di censura, nessuno è nella condizione di impedire che una transazione possa avvenire e che possa essere aggiunta al Ledger una volta che ha conquistato il consenso necessario tra tutti i nodi (partecipanti) alla blockchain. Le blockchain pubbliche più note sono Bitcoin e Ethereum (quest’ultima sarà oggetto di approfondimento nei prossimi paragrafi). • Le blockchain private, invece, possono invece essere controllate e dunque possono avere una “proprietà”. Quando un nuovo dato o record viene aggiunto il sistema di approvazione non è vincolato alla maggioranza dei partecipanti alla blockchain bensì a un numero limitato di attori che sono definibili come Trusted. Questo tipo di blockchain possono essere utilizzate da istituzioni, grandi imprese che devono gestire filiere con una serie di attori, imprese che devono gestire fornitori e subfornitori, banche, società di servizi, operatori nell’ambito del Retail. Le Permissioned Ledger rispondono alle necessità di un aggiornamento diffuso su più attori che possono operare in modo indipendente, ma con un controllo limitato a coloro che sono autorizzati. Le Permissioned Ledger permettono poi di definire speciali regole per l’accesso e la visibilità di tutti i dati. In altre parole le Permissioned Ledger introducono nella blockchain un concetto di Governance e di definizione di regole di comportamento. Tecnicamente le Permissioned Ledger sono anche più performanti e veloci delle Permissionless Ledger. SICUREZZA 20
  • 27. 2.4.6 Blockchain al servizio dell’Internet of Things L’Internet delle cose fonde mondi fisici e virtuali per la creazione di ambienti intelligenti, e, come detto in precedenza, il numero di dispositivi intelligenti connessi sta aumentando vertiginosamente nel corso degli anni. Con il progressivo ampliamento del business legato a questo tipo di ambienti, si moltiplicano anche le sfide legate al tema della sicurezza. La blockchain si candida ad essere l’unica in grado di assicurare sicurezza, privacy ed affidabilità in ambito IoT: tale tecnologia può essere utilizzata per gestire l’autenticazione e per facilitare la comunicazione tra oggetti IoT connessi, che deve avvenire in maniera P2P, oltre a rendere lo scambio di dati più sicuro e veloce creando record immutabili associati, e garantendo che ogni messaggio che viene scambiato tra i nodi provenga da una fonte attendibile e che venga ricevuto dal giusto destinatario. Questo consente ai dispositivi intelligenti di comunicare in maniera diretta tra loro ed in totale autonomia, oltre a verificare la validità delle transazioni, senza la necessità di un’autorità centrale. I dispositivi vengono registrati nella blockchain una volta entrati in una rete IoT, dopo di che, possono elaborare in autonomia le transazioni. Questo approccio decentralizzato, quindi, elimina i punti di failure delle reti tradizionali, facilitando la creazione di un ecosistema più resiliente sul quale possono operare gli oggetti intelligenti. Al momento la maggior parte degli ecosistemi IoT non sono decentralizzati, e dipendono da comunicazioni del tipo client/server, protocolli come SSL, TLS o meccanismi come Public Key Infrastructure (PKI) per identificare i nodi della rete e controllare le comunicazioni. Ma con la progressiva crescita del fenomeno IoT, le reti centralizzate diventeranno presto un collo di bottiglia, causando ritardi e guasti negli scambi critici a causa dall’eccessivo congestionamento del traffico di rete. Quindi una soluzione è proprio quella di decentralizzare le reti IoT per migliorarne sicurezza, privacy, velocità e connettività. L’applicazione di tecnologia blockchain in ambito IoT può incorrere in alcune problematiche, tra le quali: • La maggior parte dei dispositivi IoT ha una scarsa capacità computazionale, quindi non tutti sono dotati di una potenza di elaborazione necessaria ad eseguire gli algoritmi di cifratura alla velocità desiderata. • Molti dispositivi IoT hanno una capacità di archiviazione molto limitata, e questo può costituire un problema per la memorizzazione del registro distribuito di transazioni dal momento che aumenta sempre più di dimensioni nel corso del tempo. 21 SICUREZZA
  • 28. 2.4.7 Ethereum: principi di base Ethereum è una piattaforma decentralizzata, pubblica ed open-source del Web 3.0, basata su blockchain, per la creazione e pubblicazione peer-to- peer di contratti intelligenti (smart contracts) creati in un linguaggio di programmazione Turing-completo. Ethereum è una piattaforma per il “Computing Distribuito” che ha uno dei suoi componenti principali nella Ethereum Virtual Machin (EVM). Ethereum può essere visto come il più grande computer condiviso che è in grado di erogare una enorme potenza disponibile ovunque e per sempre. Dunque con Ethereum si passa dal concetto di Distributed Database a Distributed Computing. E’ una piattaforma che può essere adottata da tutti coloro che desiderano entrare a far parte della Rete e che in questo modo avranno a disposizione una soluzione che consente a tutti i partecipanti di disporre di un archivio immutabile e condiviso di tutte le operazioni attuate nel corso del tempo e che nello stesso tempo è concepita per non poter essere fermata, bloccata o censurata. Ethereum è progettata per essere adattabile e flessibile e per creare facilmente nuove applicazioni. Ethereum è cioè una Programmable Blockchain che non si limita a mettere a disposizione “operations” predefinite e standardizzate, ma permette agli utenti di creare le proprie “operations“. Di fatto è una Blockchain platform che permette di dare vita a diverse tipologie di applicazioni Blockchain decentralizzate non necessariamente limitate alle sole cryptocurrencies. Ethereum dispone di una criptovaluta nativa, chiamata Ether, che oltre a poter essere scambiata tra account, viene utilizzata dalla piattaforma stessa come ricompensa ai miner per il lavoro computazionale svolto. A ciascun account sono associati una chiave privata e una chiave pubblica che prende nche il nome di indirizzo. Per poter effettuare una transazione è necessario che il mittente conosca l’indirizzo, cioè la chiave pubblica, dell’account del destinatario e che firmi digitalmente la transazione prima di inviarla alla rete Ethereum con la propria chiave privata, dimostrando che il richiedente dell’operazione è l’effettivo titolare del wallet. Ethereum mette a disposizione anche l'Ethereum Virtual Machine (EVM), una macchina virtuale decentralizzata all'interno della quale vengono eseguiti gli smart contract utilizzando la potenza computazionale dei nodi che costituiscono la rete. Gli smart contract possono essere scritti utilizzando diversi linguaggi di programmazione, il più utilizzato dei quali è al momento Solidity. Il codice sorgente scritto in Solidity, o in un qualsiasi altro linguaggio ad alto livello SICUREZZA 22
  • 29. fra quelli supportati, deve essere poi compilato per produrre un bytecode pronto per essere eseguito dalla EVM. Che cosa sono i contratti Ethereum. Che cosa sono i contratti Ethereum? I contratti intelligenti sono degli script eseguiti sulla rete di Ethereum, ovvero nelle Ethereum Virtual Machines dei nodi, che svolgono azioni in base a determinate condizioni; in questo senso si può affermare che quando qualcuno vuole svolgere un compito particolare in Ethereum, avvia un contratto intelligente che coinvolge uno o più attori. Questi contratti scritti utilizzando “Solidity”, funzionano sfruttando la seguente logica: se la prima serie di istruzioni viene eseguita, esegui la funzione successiva e successivamente quella successiva e continua a ripetere fino a raggiungere la fine del contratto. Figura 1.3: rappresentazione semplificata di uno smart contract 23 SICUREZZA
  • 30. Capitolo 3 Ethereum: un caso d’uso In questa sezione si propone un esempio di utilizzo della blockchain di Ethereum come soluzione per la sostituzione delle batterie dei veicoli elettrici, in cui vengono utilizzati due tipi di clients IoT, A e B. L’architettura pensata risolve il problema dell’architettura centralizzata del paradigma dell’IoT oltre a superare i limiti prestazionali dei dispositivi IoT. I clients di tipo A sono considerati dispositivi IoT con risorse limitate e sono responsabili dell'interazione con l’utente e della raccolta dei dati IoT; I clients di tipo B, invece, sono da considerare come dei dispositivi IoT con risorse maggiori o uguali ai personal computer. Si utilizza una rete blockchain privata di Ethereum, non solo perché supporta contratti intelligenti con cui possiamo progettare interazioni relativamente complesse tra diversi dispositivi IoT, ma anche perché può generare un nuovo blocco più velocemente di Bitcoin. Inoltre si utilizza l’algoritmo PoW come protocollo di consenso; e come metodo di crittografia si utilizza l’account Ethereum. Inoltre, sia i clients di tipo A che di tipo B sono connessi alla rete Internet. 3.1 Architettura del sistema La figura sottostante mostra l’architettura del sistema su cui si basa l’esempio. I clients di tipo A e di tipo B possono entrambi fornire una interfaccia grafica utente (GUI) e richiamare le API della blockchain, mentre solo i clients di tipo B contengono tutti i nodi della blockchain, eseguire il mining e contenere tutti i dati relativi alle transazioni. 24
  • 31. La figura seguente, invece, mostra come i clients di tipo B creano tra loro una rete P2P, proprio come creato dai nodi pubblici della blockchain di Ethereum. I clients di tipo A sono collegati ai clients di tipo B formando una topologia a stella. Inoltre, poiché solo i clients di tipo B sono dotati di alte prestazioni, essi eseguono il processo di mining e di consenso, risolvendo il problema delle risorse limitate di cui sono dotati i clients IoT di tipo A. Figura 1.4: architettura del sistema basata sui clients A e B P2P Figura 1.5: architettura generale del sistema ETHEREUM: UN CASO D’USO 25
  • 32. 3.2 Privacy e sicurezza Per identificare ciascun dispositivo si utilizzano gli account Ethereum: si assegna un account Ethereum ad ogni dispositivo in modo tale da identificarlo in maniera univoca nel sistema. Ogni dispositivo ottiene, oltre al suo account, anche la sua chiave pubblica e la sua chiave privata. Se un dispositivo IoT viene violato, un utente malintenzionato può adottare le seguenti azioni: • Rubare le proprietà dell’account utilizzato su questo dispositivo. • Violare altri dispositivi attraverso questo dispositivo. Questo comporta gravi problemi in un sistema centralizzato, poiché il server centrale può essere facilmente attaccato, ma in un sistema decentralizzato questa circostanza non può verificarsi. • Fingersi un account e inviare dati falsi tramite questo dispositivo. Ma poiché solo i dispositivi di tipo B possono generare un account valido, l’account falso non può essere convalidato nel sistema grazie ai meccanismi di consenso della blockchain durante la formazione dei blocchi e delle transazioni. Inoltre, anche se un dispositivo di tipo B viene violato, dal momento che è solo un singolo nodo nella rete blockchain, gli altri dispositivi di tipo B rifiuteranno le richieste da esso inviate. 3.3 Implementazione del sistema di sostituzione batterie basato su Ethereum Figura 1.6: architettura del sistema di sostituzione batteria 26 ETHEREUM: UN CASO D’USO Si utilizza un Raspberry Pi (RPi) come hardware di un dispositivo IoT di tipo
  • 33. A, ognuno dei quali rappresenta un “veicolo elettrico” (EV). Un dispositivo di tipo B, invece, rappresenta una “stazione di rifornimento”, ed è costituito da un’interfaccia di sostituzione della batteria; In ogni veicolo elettrico, si adopera il framework "Truffle" per invocare il servizio RPC (Remote Procedure Call) della blockchain, mentre il server locale "express" viene utilizzato per controllare l'interazione tra le informazioni della batteria memorizzate in un file su un dispositivo USB di ciascun veicolo, e la stazione. Il dispositivo USB è connesso al RPi e rappresenta una reale batteria. Inoltre si utilizza il software "Geth” per mettere in comunicazione il dispositivo elettrico con la piattaforma di Ethereum. Smart contract. Per gestire il sistema di sostituzione delle batterie si implementano tre tipi di contratti intelligenti: 1. Il contratto intelligente "BatteryInformation" viene utilizzato per gestire e memorizzare le informazioni sulla batteria. Memorizza sia le informazioni statiche (marchio, prezzo di fabbrica, etc…) che le informazioni dinamiche (stato di carica, tempi di carica, prezzo, account del proprietario, etc…). 2. Il contratto intelligente "BalanceProcess" viene utilizzato per gestire il trasferimento di valore tra gli accounts. Dato che non è funzionale richiedere a tutti gli utenti dei veicoli elettrici di pagare una commissione in Ether per l’esecuzione di ogni operazione destinata a ricompensare i miner del lavoro computazionale svolto per aver validato una transazione e/o eseguito il codice di uno smart contract, si utilizza un token come mezzo di garanzia all’interno del sistema. 3. Il contratto intelligente "BatteryInterface" fornisce delle interfacce API per tre tipi di utenti terminali: operatore della stazione, proprietario del veicolo elettrico e account supervisore. I proprietari di veicoli elettrici possono espellere la batteria dal proprio veicolo elettrico e possono inviare una richiesta di sostituzione della batteria alla stazione e attendere la conferma. Gli operatori della stazione sono i dipendenti della stazione stessa, e possono caricare, scaricare, espellere e riciclare le batterie che appartengono alla stazione e possono approvare o rifiutare una richiesta di sostituzione della batteria inviata dai proprietari di veicoli elettrici. L’account supervisore è il gestore di questo sistema di sostituzione della batteria che può creare altri tipi di account. ETHEREUM: UN CASO D’USO 27
  • 34. Flusso di esecuzione del sistema. Inizialmente un veicolo elettrico ha la sua batteria scarica (che si identifica con il nome “alfa”), mentre la stazione ha due batterie completamente cariche (che si identificano rispettivamente con il nome “beta” e batteria “gamma”). Il proprietario del veicolo elettrico accede all’interfaccia grafica del sistema di sostituzione della batteria ed invia una richiesta di sostituzione, per sostituire la sua batteria “alfa” con la batteria “beta” presente nella stazione. Dopo che l’operatore della stazione ha approvato la richiesta di sostituzione, le informazioni della batteria memorizzate nella blockchain vengono cambiate. A questo punto, però, le batterie reali (i dispositivi “usb”) non sono state ancora effettivamente scambiate, quindi viene segnalata l’incoerenza tra le informazioni presenti sulla blockchain e le informazioni fisiche. Infine, dopo l’effettivo scambio delle batterie, non viene emesso alcun avviso, e lo stato corrente della batteria può essere verificato. Ci sono tre tipi di operazioni principali che vengono eseguite: • Inizializzazione. Il veicolo elettrico e la stazione eseguono rispettivamente l’inizializzazione. Il sistema sul RPi legge le informazioni di tutte le batterie inserite nelle interfacce USB, e lo smart contract crea un record per ciascuna batteria contenente le sue informazioni statiche e genera un unico ID batteria che verrà memorizzato all’interno del file di informazioni della batteria sul dispositivo USB. • Controllo della coerenza delle informazioni della batteria. Ogni volta che il proprietario di un veicolo elettrico oppure un operatore della stazione accede alla pagina che mostra le informazioni delle batterie che appartengono al veicolo elettrico o alla stazione, il sistema controlla se le informazioni statiche delle batterie registrate nei dispositivi USB sono coerenti con le informazioni statiche registrate sulla blockchain. Se viene rilevata una incoerenza verrà visualizzato un messaggio di avviso. Dopo che il proprietario del veicolo elettrico ha inviato una richiesta di scambio e l’operatore della stazione ha approvato la richiesta, è necessario scambiare i rispettivi dispositivi USB per eliminare l’inconsistenza. • Carica e scarica della batteria. Quando un utente esegue una operazione di carica o scarica della batteria, il sistema cambia le informazioni dinamiche della batteria presenti sulla blockchain, e contemporaneamente vengono cambiate le informazioni dinamiche registrate sul dispositivo USB in base all’ID batteria. ETHEREUM: UN CASO D’USO 28
  • 35. Conclusioni La realizzazione di questa tesi ha consentito l’approfondimento di due importanti tecnologie molto importanti: l’Internet of Things, che si sta affermando sempre più come paradigma rivoluzionario nello scenario delle reti e consiste nell’insieme degli oggetti e dei sensori che utilizzano la rete per comunicare qualcosa, cioè dei dati, a qualcos’altro, e la blockchain, un registro pubblico per la realizzazione di applicazioni totalmente decentralizzate. La tesi, infatti, si è concentrata su come far comunicare il mondo della blockchain con il mondo dell’Internet of Things: in tal senso è stata proposta un’architettura basata sulla blockchain per la realizzazione di un sistema di sostituzione batterie per veicoli elettrici. Il risultato finale del lavoro svolto si è rivelato valido raggiungendo gli obiettivi pefissati da questa tesi. In particolare: • L'utilizzo della blockchain di Ethereum per la creazione ed esecuzione degli smart contract, oltre a garantire immutabilità e sicurezza. • Grazie ad Ethereum si è potuta creare un'architettura completamente decentralizzata, superando i problemi causati dalla tradizionale architettura centralizzata del paradigma dell'IoT. • Inoltre, sempre grazie all'utilizzo della Blockchain, si sono potuti superare problemi causati dalle risorse limitate dei dispositivi IoT: infatti solo i clients IoT di tipo B, che sono dotati di maggiori risorse computazionali, possono effettuare il processo di mining. In conclusione, il risultato ottenuto da questa tesi è stato molto soddisfacente e di grande interesse, oltre a rappresentare una base di partenza per numerosi sviluppi futuri che potrebbero portare all’approfondimento di altrettante numerose nuove tecnologie. 29
  • 36. Sitografia • https://www.intel.it/content/www/it/it/it-managers/the-benefits-of- blockchain-iot-biot.html • https://www.html.it/articoli/iot-security-consigli-pratici/ • https://www.blockchain4innovation.it/esperti/cose-quali-gli-ambiti- applicativi-ethereum/ • https://www.binance.vision/it/blockchain/what-is-a-blockchain- consensus-algorithm • https://medium.blockchainedu.net/introduzione-ai-sistemi-di-consenso- proof-of-work-e-proof-of-stake-e6564ddad6aa • https://www.blockchain4innovation.it/esperti/blockchain-perche-e-cosi- importante/#6_Blockchain_nellIoT • https://www.blockchain4innovation.it/iot/iot-e-blockchain-il-binomio- alla-base-della-digital-transformation/ • https://www.internet4things.it/iot-library/internet-of-things-gli-ambiti- applicativi-in-italia/ • https://etherevolution.eu/ethereum-iot/ • https://www.blockchain4innovation.it/mercati/legal/smart- contract/blockchain-smart-contracts-cosa-funzionano-quali-gli-ambiti- applicativi/ • https://www.blockchain4innovation.it/esperti/funziona-transazione-sulla- blockchain/ • https://www.blockchain4innovation.it/esperti/blockchain-perche-e-cosi- importante/#Perche_la_blockchain_e_cosi_importante • https://it.wikipedia.org/wiki/Blockchain 30
  • 37. Bibliografia • Reti di calcolatori, Andrew S. Tanenbaum, Pearson • Reti di calcolatori e internet, Behrouz A. Forouzan, McGraw-Hill 31