IoT
Internet of Things
10 Aprile 2018
Chi sono?
Chi sono?
Chi sono?
L'angolo nostalgico
Chi sono?
q Laurea in Ingegneria Informatica
q MF Labs
q Noon Care, Narrami, ...
q RobomakersLAB
q Curioso ed appassionato
                                                                                 
    
Agenda
●
IoT – breve introduzione
●
Vantaggi
●
Problemi
●
Qualche caso reale
●
Un piccolo esempio
IoT - definizione
L'Internet delle cose è una possibile evoluzione dell'uso della Rete: gli
oggetti (le "cose") si rendono riconoscibili e acquisiscono intelligenza grazie
al fatto di poter comunicare dati su se stessi e accedere ad informazioni
aggregate da parte di altri.
Le sveglie suonano prima in caso di traffico, le scarpe da ginnastica
trasmettono tempi, velocità e distanza per gareggiare in tempo reale con
persone dall'altra parte del globo, i vasetti delle medicine avvisano i
familiari se si dimentica di prendere il farmaco. Tutti gli oggetti possono
acquisire un ruolo attivo grazie al collegamento alla Rete.
(fonte Wikipedia)
IoT – trend in crescita
Secondo stime di Gartner, nel 2020 ci saranno 26 miliardi di oggetti connessi a livello
globale. ABI Research stima che saranno più di 30 miliardi. Altri istituti parlano di 100
miliardi.
Le aspettative degli esperti sono che l'Internet delle cose cambierà il nostro modo di vivere
in modo radicale. Gli oggetti intelligenti, con capacità decisionale, permetteranno
risparmio energetico sia a livello personale (domotica e smart-home) sia a livello
macroscopico (smart-city e smart grid).
L'integrazione con internet implica l'utilizzo di IP univoci. IPv4 permette di avere 4,3
miliardi di indirizzi univoci, ecco perché gli sviluppatori di dispositivi IoT stanno adottando
lo standard IPv6, che permette di raggiungere 2128 (circa 3,4 × 1038) indirizzi.
(fonte Wikipedia)
IoT – IP
●
unificare la comunicazione verso reti IP-base
●
comunicazione device-to-device senza gateway
●
IPv4 vs IPv6 (2^32 = 4,3mld vs 2^128 = …)
Esempio indirizzo IPv4
5.196.18.64
Esempio indirizzo IPv6
2001:0db8:0a0b:12f0:0000:0000:0000:0001
IoT – quindi?●
Concetto «vecchio» …
●
…scenario totalmente nuovo
●
Grande opportunità di business
●
Big Data, Machine Learning, A.I., Data mining, etc
●
mondo sempre più connesso
Non è tutto oro quello che luccica
Privacy?
Sicurezza?
Sistemi di controllo domotico, controllo del traffico, gestione industriale, …
Mirai: Botnets of things (2016)
https://it.wikipedia.org/wiki/Mirai_(malware)
Mirai: Botnets of things (2016)
●
Codice rilasciato su Github
●
Escludeva direttamente dalla ricerca indirizzi speciale
●
Blocco di diversi siti come Github, Airbnb, Netflix, Twitter
●
nel novembre del 2016 più di 900˙000 router della
Deutsche Telekom sono finiti offline dopo essere stati
infettati da una variante di Mirai
●
Vulnerabilità nei dispositivi attaccati
Non ci credete?
http://www.thingful.net
Don't try this at home
● https://www.shodan.io/ (2009)
●
“Il motore di ricerca più spaventoso al mondo”
●
Ricerca router, webcam, gps, smartTV, ICS, webserver,
stampanti, frigoriferi, etc
Shodan
Shodan
● city: Cerca dispositivi per Città
● country: Cerca dispositivi per località es. IT
● geo: Cerca dispositivi partendo da coordinate
geografiche
● hostname: Cerca risultati per un certo
hostname
● net: Cerca dispositivi per IP o NetRange
● os: Cerca un Sistema Operativo es. windows
● port: Cerca dispositivi con una certa porta
aperta es. 80, 21, etc...
● before/after: Cerca risultati entro un periodo
di tempo
Minacce reali
●
Nel 2014 un malware infettò 30.000 pc di un impianto
petrolifero in Arabia Saudita
●
Ad agosto del 2017 un attacco simile mirava a causare
esplosioni all'interno di un altro impianto
●
L'attacco è fallito solo a causa di un bug nel malware
●
Si va oltre al “semplice” attacco DOS o furto di dati
●
Cyberguerra
Stuxnet
●
Creato dal governo USA all'interno di un'operazione mirata a creare
una serie di attacchi digitali all'IRAN
●
Obiettivo: sabotare la centrale nucleare di Natanz
●
Pensato per attaccare i PLC
●
Sfruttava 4 vulnerabilità 0-day di Windows per arrivare a colpire il
software Siemens di gestione PLC
●
Fuga dell'infezione tramite portatile infetti
●
Worm, collegamento e rootkit per nascondersi
●
Modifica del comportamento del software Siemens per far credere
all'utente che tutto stesse funzionando correttamente
IoT – protocolli
●
Rfid (attivo e passivo)
●
PAN (Personal Area Network): BLE, ANT (Garmin), NFC,…
●
Wireless Bus
●
Wi-Fi
●
Reti Mesh Low Power (nodi low power, architetture di rete
complesse e autoconfiguranti)
●
Reti cellulari
●
Power Line Communication
ISO/OSI e TCP/IPIl modello ISO/OSI, concepito per 
reti di telecomunicazioni a 
commutazione di pacchetto, è costituito da
una pila (o stack) di protocolli attraverso i
quali viene ridotta la complessità
implementativa di un sistema di
comunicazione per il networking. In
particolare ISO/OSI è costituito da strati (o
livelli), i cosiddetti layer, che definiscono e
racchiudono in sé a livello logico uno o più
aspetti fra loro correlati della comunicazione
fra due nodi di una rete. I layers sono in
totale 7 e vanno dal livello fisico (quello del
mezzo fisico, ossia del cavo o delle 
onde radio) fino al livello delle applicazioni,
attraverso cui si realizza la comunicazione
di alto livello.
MQTT
Protocollo di messaggistica leggero posizionato in cima a
TCP/IP. È stato disegnato per le situazioni in cui è
richiesto un basso impatto e dove la banda è limitata. Il
pattern publish-subscribe richiede un message broker. Il
broker è responsabile della distribuzione dei messaggi ai
client destinatari.
MQTT
http://broker.mqtt-dashboard.com/
ESP8266
• Modulo wi-fi low cost
• 2 pin seriali Rx e Tx per connetterlo a diversi microcontrollori, tra cui Arduino
• Possibilità di utilizzare i comandi AT (http://wiki.iteadstudio.com/ESP8266_Serial_WIFI_Module#AT_Commands)
• https://github.com/esp8266/esp8266-wiki/wiki/Hardware_versions (versioni, firmware, pinout)
• http://www.esp8266.com/ (community forum con tantissimi esempi di utilizzo)
• Esistono diversi firmware che è possibile caricare sul modulo. Uno di questi ne permette anche la
programmazione in LUA
•
ESP8266 - pinout
ESP8266 - Arduino
ESP8266 richiede un’alimentazione a 3.3V. Non è sicuro utilizzare quella a 5V fornita da Arduino
(ESP8266 non ha alcun sistema di protezione a bordo) e non è sufficiente per una connessione
stabile quella a 3.3V. Quindi è necessario utilizzare un regolatore di tensione per alimentare
l’ESP8266 e/o un convertitore Logico oppure un partitore di tensione per interfacciarlo con rx e
tx di Arduino.
Node MCU
• Piattaforma open source pensata per l'IoT
• Pinout ampio per sostenere diversi progetti
• Programmabile tramite l'IDE di Arduino
• Programmabile in LUA
• Possibilità di costruirsi un firmware personalizzato (https://nodemcu-build.com/)
Blynk
• Piattaforma per la costruzione di app iOS e Android IoT oriented
• Gratuita entro un certo range di utilizzo
• Non richiede competenze di sviluppo mobile
• https://www.blynk.cc/
Monitoraggio consumi
Piattaforma Noon Care
Old schema
GRAZIE!http://www.mflabs.it
http://www.twitter.com/mf_labs
http://www.facebook.com/mflabs
http://www.youtube.it/mflabs
Mirco Ferrari
mirco.ferrari@mflabs.it
https://www.facebook.com/mircfe
https://www.linkedin.com/in/mircfe/

Pillole di IoT

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
    Chi sono? q Laureain Ingegneria Informatica q MF Labs q Noon Care, Narrami, ... q RobomakersLAB q Curioso ed appassionato                                                                                       
  • 6.
    Agenda ● IoT – breveintroduzione ● Vantaggi ● Problemi ● Qualche caso reale ● Un piccolo esempio
  • 7.
    IoT - definizione L'Internetdelle cose è una possibile evoluzione dell'uso della Rete: gli oggetti (le "cose") si rendono riconoscibili e acquisiscono intelligenza grazie al fatto di poter comunicare dati su se stessi e accedere ad informazioni aggregate da parte di altri. Le sveglie suonano prima in caso di traffico, le scarpe da ginnastica trasmettono tempi, velocità e distanza per gareggiare in tempo reale con persone dall'altra parte del globo, i vasetti delle medicine avvisano i familiari se si dimentica di prendere il farmaco. Tutti gli oggetti possono acquisire un ruolo attivo grazie al collegamento alla Rete. (fonte Wikipedia)
  • 8.
    IoT – trendin crescita Secondo stime di Gartner, nel 2020 ci saranno 26 miliardi di oggetti connessi a livello globale. ABI Research stima che saranno più di 30 miliardi. Altri istituti parlano di 100 miliardi. Le aspettative degli esperti sono che l'Internet delle cose cambierà il nostro modo di vivere in modo radicale. Gli oggetti intelligenti, con capacità decisionale, permetteranno risparmio energetico sia a livello personale (domotica e smart-home) sia a livello macroscopico (smart-city e smart grid). L'integrazione con internet implica l'utilizzo di IP univoci. IPv4 permette di avere 4,3 miliardi di indirizzi univoci, ecco perché gli sviluppatori di dispositivi IoT stanno adottando lo standard IPv6, che permette di raggiungere 2128 (circa 3,4 × 1038) indirizzi. (fonte Wikipedia)
  • 9.
    IoT – IP ● unificarela comunicazione verso reti IP-base ● comunicazione device-to-device senza gateway ● IPv4 vs IPv6 (2^32 = 4,3mld vs 2^128 = …) Esempio indirizzo IPv4 5.196.18.64 Esempio indirizzo IPv6 2001:0db8:0a0b:12f0:0000:0000:0000:0001
  • 10.
    IoT – quindi?● Concetto«vecchio» … ● …scenario totalmente nuovo ● Grande opportunità di business ● Big Data, Machine Learning, A.I., Data mining, etc ● mondo sempre più connesso
  • 11.
    Non è tuttooro quello che luccica Privacy? Sicurezza? Sistemi di controllo domotico, controllo del traffico, gestione industriale, …
  • 12.
    Mirai: Botnets ofthings (2016) https://it.wikipedia.org/wiki/Mirai_(malware)
  • 13.
    Mirai: Botnets ofthings (2016) ● Codice rilasciato su Github ● Escludeva direttamente dalla ricerca indirizzi speciale ● Blocco di diversi siti come Github, Airbnb, Netflix, Twitter ● nel novembre del 2016 più di 900˙000 router della Deutsche Telekom sono finiti offline dopo essere stati infettati da una variante di Mirai ● Vulnerabilità nei dispositivi attaccati
  • 14.
  • 15.
    Don't try thisat home ● https://www.shodan.io/ (2009) ● “Il motore di ricerca più spaventoso al mondo” ● Ricerca router, webcam, gps, smartTV, ICS, webserver, stampanti, frigoriferi, etc
  • 16.
  • 17.
    Shodan ● city: Cercadispositivi per Città ● country: Cerca dispositivi per località es. IT ● geo: Cerca dispositivi partendo da coordinate geografiche ● hostname: Cerca risultati per un certo hostname ● net: Cerca dispositivi per IP o NetRange ● os: Cerca un Sistema Operativo es. windows ● port: Cerca dispositivi con una certa porta aperta es. 80, 21, etc... ● before/after: Cerca risultati entro un periodo di tempo
  • 18.
    Minacce reali ● Nel 2014un malware infettò 30.000 pc di un impianto petrolifero in Arabia Saudita ● Ad agosto del 2017 un attacco simile mirava a causare esplosioni all'interno di un altro impianto ● L'attacco è fallito solo a causa di un bug nel malware ● Si va oltre al “semplice” attacco DOS o furto di dati ● Cyberguerra
  • 19.
    Stuxnet ● Creato dal governoUSA all'interno di un'operazione mirata a creare una serie di attacchi digitali all'IRAN ● Obiettivo: sabotare la centrale nucleare di Natanz ● Pensato per attaccare i PLC ● Sfruttava 4 vulnerabilità 0-day di Windows per arrivare a colpire il software Siemens di gestione PLC ● Fuga dell'infezione tramite portatile infetti ● Worm, collegamento e rootkit per nascondersi ● Modifica del comportamento del software Siemens per far credere all'utente che tutto stesse funzionando correttamente
  • 20.
    IoT – protocolli ● Rfid(attivo e passivo) ● PAN (Personal Area Network): BLE, ANT (Garmin), NFC,… ● Wireless Bus ● Wi-Fi ● Reti Mesh Low Power (nodi low power, architetture di rete complesse e autoconfiguranti) ● Reti cellulari ● Power Line Communication
  • 22.
    ISO/OSI e TCP/IPIlmodello ISO/OSI, concepito per  reti di telecomunicazioni a  commutazione di pacchetto, è costituito da una pila (o stack) di protocolli attraverso i quali viene ridotta la complessità implementativa di un sistema di comunicazione per il networking. In particolare ISO/OSI è costituito da strati (o livelli), i cosiddetti layer, che definiscono e racchiudono in sé a livello logico uno o più aspetti fra loro correlati della comunicazione fra due nodi di una rete. I layers sono in totale 7 e vanno dal livello fisico (quello del mezzo fisico, ossia del cavo o delle  onde radio) fino al livello delle applicazioni, attraverso cui si realizza la comunicazione di alto livello.
  • 23.
    MQTT Protocollo di messaggisticaleggero posizionato in cima a TCP/IP. È stato disegnato per le situazioni in cui è richiesto un basso impatto e dove la banda è limitata. Il pattern publish-subscribe richiede un message broker. Il broker è responsabile della distribuzione dei messaggi ai client destinatari.
  • 25.
  • 26.
    ESP8266 • Modulo wi-filow cost • 2 pin seriali Rx e Tx per connetterlo a diversi microcontrollori, tra cui Arduino • Possibilità di utilizzare i comandi AT (http://wiki.iteadstudio.com/ESP8266_Serial_WIFI_Module#AT_Commands) • https://github.com/esp8266/esp8266-wiki/wiki/Hardware_versions (versioni, firmware, pinout) • http://www.esp8266.com/ (community forum con tantissimi esempi di utilizzo) • Esistono diversi firmware che è possibile caricare sul modulo. Uno di questi ne permette anche la programmazione in LUA •
  • 27.
  • 28.
    ESP8266 - Arduino ESP8266richiede un’alimentazione a 3.3V. Non è sicuro utilizzare quella a 5V fornita da Arduino (ESP8266 non ha alcun sistema di protezione a bordo) e non è sufficiente per una connessione stabile quella a 3.3V. Quindi è necessario utilizzare un regolatore di tensione per alimentare l’ESP8266 e/o un convertitore Logico oppure un partitore di tensione per interfacciarlo con rx e tx di Arduino.
  • 29.
    Node MCU • Piattaformaopen source pensata per l'IoT • Pinout ampio per sostenere diversi progetti • Programmabile tramite l'IDE di Arduino • Programmabile in LUA • Possibilità di costruirsi un firmware personalizzato (https://nodemcu-build.com/)
  • 30.
    Blynk • Piattaforma perla costruzione di app iOS e Android IoT oriented • Gratuita entro un certo range di utilizzo • Non richiede competenze di sviluppo mobile • https://www.blynk.cc/
  • 31.
  • 32.
  • 33.