Woord vooraf Ik, Esli Heyvaert, ben laatstejaarsstudent New Media & Communication Technology (NMCT) aan de Howest te Kortrijk. Dat IT mijn passie is, wist ik al lang, mede dankzij mijn vorige opleiding Toegepaste Informatica aan de KHLeuven. Ik koos voor NMCT omdat ik meer kennis maar vooral meer praktijkervaring wou opdoen. Tijdens het streven naar dit doel ontdekte ik dat mijn hart niet uitsluitend bij programmeren ligt, maar evengoed bij andere IT aspecten. Ik hoop dat u dit als lezer mag ontdekken in deze bachelorproef. Een bachelorproef is bedoeld om aan te tonen dat een laatstejaarsstudent voldoende kennis en ervaring heeft verworven gedurende zijn opleiding. Daarom ben ik op zoek gegaan naar een onderwerp dat mij interesseert en waarmee ik kan aantonen wat ik waard ben. Deze tekst heeft als thema het Internet of Things. Een onderwerp waarbij verschillende IT facetten ten gronde aan bod komen. Ik hoop u hiermee ervan te overtuigen dat ik een bijna volwaardige afgestudeerde student ben. Bovenal, wens ik u veel leesplezier. Uiteraard kon ik dit geheel niet verwezenlijken zonder de hulp van andere mensen. Mijn dank gaat uit naar alle lectoren die hun kennis en ervaring zo goed mogelijk probeerden door te geven. Daarnaast gaat mijn dank ook uit naar de school, voor alle nodige voorzieningen. Mijn stageplek, Sizing Servers. En in het bijzonder wens ik ook Johan De Gelas, mijn mentor, te bedanken. Verder bedank ik mijn naaste familie en vrienden die me ten alle tijden gesteund hebben. Tevens een woordje van dank aan mijn vriendin Silke Horsten die me wist te ontlasten van huishoudelijke taken en uiteraard ook voor haar feedback. Ik dank ook mevr. Ann Deraedt en mr. Hans Ameel voor de kritische commentaren op dit werk. Tot slot bedank ik alle mensen die ik hier ben vergeten te vermelden. Ik hoop dat u tijdens het lezen van deze bachelorproef, net zoals ik, de wondere wereld van het Internet of Things beter mag leren kennen.
Abstract Het Internet of Things is deze dagen een ‘hot topic’. Om oplossingen binnen deze markt te ontwikkelen is er heel wat nodig. Zo zijn er de zogenaamde ‘Things’, dit zijn veelal kleine elektronicacomponenten die data verzamelen. In sommige gevallen kunnen deze kleine apparaten worden bijgestuurd. De Things sturen hun data onder andere via speciaal hiervoor nieuw, ontwikkelde netwerken. Het is van groot belang dat het versturen van deze gegevens op een veilige manier geschiedt. De ontvangers van deze datastroom zijn veelal complexe applicaties die enerzijds real-time inzicht bieden en anderzijds analyses kunnen uitvoeren op de vergaarde data. Als voorbeeld kan er gedacht worden aan een thermostaat die zelflerend werkt en op die manier de kosten aanzienlijk kan reduceren. Al deze nieuwe technologieën brengen de nodige uitdagingen met zich mee. Cloud providers zoals Amazon en Microsoft Azure proberen nieuwe diensten, speciaal gericht op het Internet of Things, op de markt te zetten. Op deze manier proberen ook zij een graantje mee te pikken van dit relatief nieuw fenomeen. Wat het Internet of Things ons de komende jaren zal brengen is nog niet geheel duidelijk, dat er toekomst in zit is echter wel zeker. Dit is ook de reden waarom telecomproviders volop inzetten op het creëren van nieuwe netwerken, gericht op het Internet of Things.
Inhoudsopgave 1.
Wat is het Internet of Things .............................................................................................. 1 1.1
De definitie................................................................................................................... 2
1.2
Concreet voorbeeld ..................................................................................................... 2
1.3
Geconnecteerde wereld .............................................................................................. 3
1.4
Belang van Internet of Things ...................................................................................... 4
1.5
De gevaren van het Internet of Things ........................................................................ 5
1.5.1
De fouten .............................................................................................................. 5
1.5.2
Iedereen in de fout ............................................................................................... 7
1.6
2.
1.6.1
Technische eigenschappen ................................................................................... 8
1.6.2
LoRa Alliantie ........................................................................................................ 9
1.6.3
LoRAWAN in de BENELUX..................................................................................... 9
Internet of Things architectuur ........................................................................................ 11 2.1
De verschillende lagen ............................................................................................... 12
2.2
De ‘Things’ laag .......................................................................................................... 12
2.2.1
Het ideale Thing .................................................................................................. 13
2.2.2
Het imperfecte Thing .......................................................................................... 15
2.2.3
De sensoren en actuatoren ................................................................................ 19
2.3
De gateway laag ......................................................................................................... 20
2.3.1
Wat is een Internet of Things gateway............................................................... 20
2.3.2
Verschillende protocollen................................................................................... 20
2.3.3
Beveiliging........................................................................................................... 21
2.3.4
Availability .......................................................................................................... 22
2.3.5
De extra’s & de voordelen .................................................................................. 23
2.4 3.
Het LoRaWAN netwerk ................................................................................................ 7
De applicatie laag ....................................................................................................... 24
Amazon Web Services IoT ................................................................................................ 25 3.1
Onderzoek .................................................................................................................. 26
3.2
AWS IoT componenten .............................................................................................. 26
3.2.1
Things.................................................................................................................. 26
4.
3.2.2
Message Broker .................................................................................................. 27
3.2.3
Thing Registry ..................................................................................................... 28
3.2.4
Thing Shadows .................................................................................................... 29
3.2.5
Rules Engine........................................................................................................ 29
3.2.6
Security and Identify........................................................................................... 31
3.2.7
IoT Applications .................................................................................................. 31
3.3
Kostenplaatje ............................................................................................................. 31
3.4
Analyse cloudoplossing .............................................................................................. 32
3.4.1
Beveiliging........................................................................................................... 32
3.4.2
Schaalbaarheid ................................................................................................... 33
3.4.3
Snel implementeerbaar ...................................................................................... 33
3.4.4
Beschikbaarheid ................................................................................................. 33
3.4.5
Kosten versus voordelen .................................................................................... 33
Conclusies ......................................................................................................................... 35 Boeken .................................................................................................................................. 36 Internetbronnen ................................................................................................................... 36
Figurenlijst Figuur 1 Nest thermostaat en bijhorende applicatie. ................................................................ 3 Figuur 2 Populatie t.o.v. ‘things’ volges Cisco IBSG, April 2011 ................................................. 5 Figuur 3 LoRaWAN topologie volgens Libelium ......................................................................... 9 Figuur 4 LoRaWAN dekking in België volgens Proximus (links) en Wireless Things (rechts) ... 10 Figuur 5 Internet of Things architectuur volgens In-Jet APS .................................................... 12 Figuur 6 Concept waarbij gebruik maakt wordt van de energie in communicatiesignalen – ontwikkeld door University of Washington.............................................................................. 13 Figuur 7 Links staat een Arduino Uno afgbeeld, rechts Raspberry Pi van de eerste generatie. .................................................................................................................................................. 16 Figuur 10 Voorbeeldcode om een LED te laten pinken volgens Arduino.cc. ........................ 17 Figuur 9 Arduino Mega met daarop een WiFi shield van fabrikant Wiznet............................. 18 Figuur 10 Opstelling om een zonepaneel automatisch te oriënteren ontwikkeld door Biery Mountain Enterprises, LCC. ...................................................................................................... 19 Figuur 11 Dell Edge Gateway 5000 Series ................................................................................ 21 Figuur 12 Screenshot uit ‘Internet of things research study’ van Hewlett Packer (November 2015) ......................................................................................................................................... 22 Figuur 13 Texas Instruments Tiva™ TM4C129X Development Board ...................................... 23 Figuur 14 AWS IoT components ............................................................................................... 26 Figuur 15 Voorbeeld JSON hoe een verzonden bericht er kan uitzien. ................................... 29 Figuur 16 AWS IoT Rules Engine ............................................................................................... 30 Figuur 17 AWS IoT Security and Identify .................................................................................. 31
Verklarende woordenlijst Deze bachelorproef heeft een technische insteek, het is daarom van belang een aantal begrippen toe te lichten. Hieronder worden een aantal woorden en gangbare afkortingen geduid, die later in de tekst gebruikt worden. Begrippen die hieronder opgesomd zijn, worden in de tekst als volgt aangeduid: woord. o
o
o
o o
o o
o o o o
1 2
Application Programming Interface (API): Interface waarmee andere programma’s of een onderdeel van een programma mee kan communiceren. Dit kan bijvoorbeeld gebruikt worden om een apparaat aan te sturen zonder de achterliggende werking te kennen. Brute force attack: Een aanvalstechniek waarbij geen enkele vorm van intelligentie gebruikt, men probeert alle mogelijke oplossingen uit in de hoop zo de beveiliging te breken. De techniek wordt vaak gebruikt om wachtwoorden te achterhalen (raden). Framework: Softwarelaag die basisfuncties implementeert waarmee een programmeur aan de slag kan zonder deze zelf te moeten implementeren. Een framework kan de programmeur bijvoorbeeld de mogelijkheid bieden om een email te versturen. Git repository: Git is een versiebeheersysteem, een repository is een map die onder versiebeheer is geplaatst. General purpose input / output (GPIO): Aansluitingspunt bij een elektronische schakeling dat zowel als input als output kan fungeren. Om de waarde van een sensor uit te lezen kan deze aan een GPIO pin verbonden worden. I2C: Een protocol waarbij er op een seriële manier gecommuniceerd kan worden tussen microcontrollers en andere elektronische schakelingen. Internet Protocol (IP) netwerk: Protocol dat volgens Wikipedia 1 gebruikt wordt om computernetwerken met elkaar te kunnen laten communiceren, bijvoorbeeld het internet. JavaScript Object Notation (JSON): Compact formaat dat gebruikt wordt om data voor te stellen. Malware: Kwaadaardige software die geschreven is om schade aan te richten, o.a. : virussen, Trojan Horses (Trojaanse paarden), adware, … . Microcontroller: Elektronische schakeling om bepaalde zaken te besturen. Voorbeelden van het gebruik van microcontrollers zijn terug te vinden in de tekst. Personal Area Network (PAN): Dit soort netwerk kan volgens Wikipedia 2 omschreven worden als een netwerk dat dicht is bij één persoon. Bijvoorbeeld een Bluetooth netwerk.
Zie literatuurlijst, Wikipedia artikel met als onderwerp ‘Internetprotocol’. Zie literatuurlijst, Wikipedia artikel met als onderwerp ‘Personal Area Network’.
o
o o
o o
o
Printed circuit board (PCB): Een plaat waarop elektrisch geleidende banen zijn aangebracht. Op deze plaat worden elektronische componenten gesoldeerd. Een voorbeeld hiervan is een computermoederbord. Phishing: Methode waarbij iemand misleidt wordt, om zo gegevens te ontfutselen. Bijvoorbeeld door een malicieuze bankwebsite op te zetten. Quality of Service (QoS): Bepaalde garantie van een dienst, bijvoorbeeld een netwerk. Bepaalde data kan voorrang krijgen op andere. Of bijvoorbeeld de zekerheid dat bepaalde data minsten eenmaal wordt afgeleverd. Software Development Kit (SDK): Pakket van tools dat gebruikt wordt tijdens het ontwikkelen van software. Sniffen: ‘Snuffelen’, in deze tekst, het bekijken en analyseren van netwerkverkeer. De data verzonden door een computer kan bijvoorbeeld doorzocht worden. Op deze manier worden soms wachtwoorden achterhaald. SQL Injecties: Een techniek waarbij SQL queries misbruikt worden. Een query is een soort van commando waarmee data volgens bepaalde filters kan opgehaald worden. Wanneer een query niet goed beveiligd is kan een aanvaller deze potentieel manipuleren.
Inleiding De term Internet of Things, kortweg IoT, werd reeds gelanceerd in 1999 door de Britse techneut Kevin Ashton. De exacte betekenis ervan wordt tot op de dag van vandaag vorm gegeven. Elke dag duiken er nog tal van nieuwe technologische ontwikkelingen op. Denk bijvoorbeeld aan het LoRaWAN netwerk. Wat het Internet of Things nu precies is, is niet te omvatten in één eenvoudige zin. Daarom bestaat deze bachelorproef uit verscheidene hoofdstukken waarin alle facetten één voor één worden behandeld. Dat IoT een actueel begrip is, bewijzen verscheidene studies. Zo stelde het gerenommeerde onderzoeksbureau Gartner, reeds in 2013, dat er tegen 2020 meer dan twintig biljoen ‘Things’ online gaan zijn. De Amerikaanse netwerkapparatuur gigant Cisco gaat nog een stapje verder. Volgens hen gaat het in 2020 om vijftig biljoen IoT toepassingen. In het eerste hoofdstuk wordt bekeken wat het Internet of Things precies inhoudt. Er wordt onder andere een definitie geformuleerd. Concrete voorbeelden zetten deze omschrijving kracht bij. In het daaropvolgende deel wordt de typische architectuur van een IoT toepassing nader bekeken. Wat de cloud provider Amazon te bieden heeft, wordt uiteengezet in het laatste hoofdstuk.
1. Wat is het Internet of Things
1
WAT IS HET INTERNET OF THINGS
In dit inleidende hoofdstuk wordt bekeken wat het Internet of Things inhoudt. Dit wordt eerst en vooral duidelijk gemaakt aan de hand van een theoretische benadering. Daarna worden er een aantal voorbeelden aangehaald. De impact van het IoT wordt gestaafd aan de hand van cijfermateriaal. Het security aspect komt eveneens bondig aan bod. Tot slot wordt er nog een en ander uitgelegd over een typisch IoT netwerk, meer bepaald LoRaWAN. Wat is het Internet of Things Pagina | 1
1.1 De definitie Verschillende onderzoekers leggen verschillende accenten. Het is dus moeilijk om een eenduidige definitie te formuleren. In het algemeen zijn er echter een aantal begrippen aanvaard. Het resultaat van deze aannames kan gezien worden als een definitie. Elk object kan in principe als een ‘thing’ functioneren. De enige vereiste is dat het object in kwestie kan verbonden worden met het internet. De manier waarop dit gebeurd doet niet ter zake. Een ‘thing’ heeft doorgaans één of meerdere sensoren aan boord. Dit maakt het mogelijk om een datastroom te genereren. Deze informatie kan op verschillende manieren gebruikt worden. Eventueel kan na een data-analyse het ‘thing’ bijgestuurd worden. De exacte functie van het geconnecteerde object is geheel afhankelijk van de specifieke toepassing.
1.2 Concreet voorbeeld De definitie kan gekaderd worden aan de hand van een concreet voorbeeld: een thermostaat. Gesteld kan worden dat er meer en meer aandacht wordt gegeven aan het milieu. Een thermostaat kan hierbij helpen. Doorgaans wordt er overdag een temperatuur rond de twintig graden ingesteld. Om energie te besparen, en dus ook het milieu, is het verstandig om tijdens de nacht de temperatuur te verlagen. Bij een hedendaagse centrale verwarming is dit doorgaans geautomatiseerd. Met andere woorden, op basis van het tijdstip wordt er een bepaalde temperatuur gehandhaafd. Dit voorbeeld kan perfect uitgebreid worden met een Internet of Things context. De thermostaat kan verbonden worden met het thuisnetwerk. Dit resulteert in een aantal nieuwe mogelijkheden. Er kan bijvoorbeeld een webinterface geïntegreerd worden. Deze interface laat de gebruiker toe om de dag- en nachttemperatuur eenvoudig in te stellen. Wanneer het netwerk verbonden is met het internet kan dit ook vanop afstand. Om de thermostaat ‘intelligenter’ te maken kunnen er een aantal sensoren worden toegevoegd. Men kan bijvoorbeeld bewegingssensoren installeren. Hiermee kan bepaald worden of er al dan niet iemand aanwezig is in het desbetreffende gebouw. Hierdoor kan de temperatuur nog beter afgestemd worden. Het is mogelijk om nog een stap verder te gaan, de data kan opgeslagen worden in de cloud. Software algoritmes kunnen na verloop van tijd patronen herkennen in deze data, waardoor de temperatuur nog beter afgestemd kan worden. Er kan bijvoorbeeld vastgesteld worden dat in het weekend de nacht ‘langer’ duurt en dus de temperatuur langer laag gehouden kan worden.
Wat is het Internet of Things
Pagina | 2
Het voorbeeld hierboven situeert duidelijk wat het begrip ‘Internet of Things’ inhoud. De ‘kracht’ van de ‘slimme thermostaat’ hangt logischerwijs af van twee factoren. Enerzijds de gebruikte (en het aantal) sensoren en anderzijds de algoritmes die gebruikt worden. Een van de bekendste ‘slimme thermostaten’ is ‘Nest’. Buiten automatische temperatuurregeling biedt deze oplossing volgens de website http://nest.com nog vele andere mogelijkheden, onder andere het detecteren van koolstofmonoxide en brandgevaar. Tot slot is het mogelijk om zelf toepassingen te ontwikkelen dankzij een uitgebreide Application Programming Interface (API).
Figuur 1 Nest thermostaat en bijhorende applicatie.
1.3 Geconnecteerde wereld De basisconcepten die toegepast worden bij een ‘slimme thermostaat’ komen uiteraard ook aan bod bij andere toepassingen. Denk daarbij bijvoorbeeld aan een ‘slimme koelkast’, die waarschuwt dat de melkvoorraad nagenoeg uitgeput is. Er kan ook een functie geïmplementeerd worden die vervaldata in de gaten houdt. Zo zijn er ook reeds ‘slimme klokken’ op de markt. Deze kunnen bijvoorbeeld weersvoorspellingen koppelen aan wektijden, een signaal sturen naar een koffieapparaat en/of naar de rolluiken, aan een afspraak doen herinneren, … . Zo zijn er nog tal van voorbeelden te bedenken en dit niet alleen binnen een huiselijke omgeving. In luchthavens, treinstations, treinstellen, ziekenhuizen, kantoorgebouwen, …. overal zijn er IoT toepassingen terug te vinden. Men kan gerust spreken van ‘een geconnecteerde wereld’.
Wat is het Internet of Things
Pagina | 3
1.4 Belang van Internet of Things In de vorige secties werd behandeld wat het Internet of Things precies inhoudt. In dit onderdeel wordt het belang, de impact van het Internet of Things nader bekeken. IoT is namelijk meer dan alleen ‘het leven gemakkelijker’ maken. Hieronder volgt een opsomming van een paar concrete voordelen: • • • •
beter omgaan met bepaalde resources, denk aan een slimme thermostaat; sneller reageren op bepaalde situaties, een rookmelder staat in verbinding met de brandweer; automatiseren van bedrijfsprocessen, postpakketje wordt automatisch gescand en gevolgd; real-time data verwerken, slaappatroon wordt naar een arts doorgestuurd
Volgens Wikipedia 3 is het Internet of Things in staat om onze samenleving efficiënter, accurater en economischer te maken. Op basis van verschillende, onafhankelijke onderzoeken kan gesteld worden dat het IoT onze samenleving grondig aan het veranderen is. Dezelfde onderzoeken voorspellen dat de impact in de komende jaren nog extreem gaat toenemen. In de inleiding kwam het reeds aan bod, Gartner voorspelt dat er in het jaar 2020 ongeveer twintig biljoen Things online zullen zijn. In datzelfde jaar wordt verwacht dat de wereldbevolking toeneemt tot 7,6 biljoen. Dat komt neer op ongeveer 2,6 Things per aardbewoner. Cisco gaat nog een stap verder, volgens hun gaat het in 2020 om maar liefst 50 biljoen Things. Dit resulteert in ongeveer 6,6 Things per persoon. Onderzoeksbureau International Data Corporation (IDC) voorspelt dat het Internet of Things in 2020 een marktomzet van maar liefst 1,7 triljoen zal representeren. Ondanks dat de voorspelde cijfers verschillen, is de conclusie in alle onderzoeken dezelfde: het Internet of Things is een belangrijke technologische ontwikkeling.
3
Vele andere (wetenschappelijke) bronnen bevestigen dit eveneens. Zie Literatuurlijst.
Wat is het Internet of Things
Pagina | 4
Figuur 2 Populatie t.o.v. ‘things’ volges Cisco IBSG, April 2011
1.5
De gevaren van het Internet of Things
Dat het internet niet altijd even veilig is wordt nagenoeg dagelijks bewezen. Gehackte websites, identiteitsdiefstal, malware, … zijn schering en inslag. Dit is ook het onderwerp van vele onderzoeken. Zo is er volgens Gartner 4 in 2015 wereldwijd zo’n 75,4 biljoen dollar uitgegeven aan het beveiligen van informatie. Dit bedrag is goed voor een stijging van 4,7% ten opzichte van 2015. Dit toont aan dat security niet zomaar genegeerd mag worden. Daar ‘het internet’ bij het Internet of Things een cruciale rol speelt, is dit een belangrijk aandachtspunt. Het ondoordacht koppelen van Things zonder stil te staan bij het security aspect, is simpelweg ridicuul. Ook hier zijn al tal van onderzoeken naar uitgevoerd, de conclusie is verontrustend. Het gaat hier niet enkel over het compromitteren van een ‘Thing’ zelf, maar mogelijk ook andere apparaten, aangesloten op datzelfde netwerk. 1.5.1 De fouten Zoals in de vorige alinea reeds werd aangehaald zijn er twee foutencategorieën. Enerzijds zijn er de aanvalstechnieken die los bestaan van het Internet of Things. Daar IoT toepassingen in zekere zin kunnen beschouwd worden als ‘klassieke’ toepassingen, zijn deze eveneens kwetsbaar. Anderzijds gaan er nieuwe kwetsbaarheden gepaard met het Internet of Things. Er worden nieuwe protocollen ontwikkeld, nieuwe netwerktechnologieën 5 worden in gebruik genomen, nieuwe hardware wordt ontwikkeld, … .
4 5
Gartner Inc. 23 september 2015 Bijvoorbeeld LoRaWAN, dit netwerk wordt later besproken in dit hoofdstuk.
Wat is het Internet of Things
Pagina | 5
1.5.1.1.1 Voorbeeldcase: Philips Hue In het boek van Nitesh Dhanjani, ‘Abusing the Internet of Things’ worden een aantal schadelijke technieken toegelicht. Het hoofdstuk over de Philips Hue, zogenaamde ‘slimme lampen’, toont zeer goed aan wat de gevaren zijn. De basisgedachte is dat de kleur van de lampen al dan niet van op afstand ingesteld kunnen worden. Dankzij een uitgebreide API kunnen er tal van toepassingen bedacht worden. Bijvoorbeeld het voorzien van bijpassend licht bij een TV-serie 6. Hieronder worden twee concrete veiligheidsproblemen uit dit hoofdstuk aangehaald. Om de ‘slimme lampen’ van op afstand te kunnen besturen is een account op de Philips Hue website een vereiste. De toegang bestaat uit een e-mailadres en een wachtwoord. De vereisten voor het wachtwoord vormen een eerste punt van kritiek. Tot op heden 7 is het mogelijk om een zeer eenvoudige tekensequentie in te stellen, bijvoorbeeld ‘azerty’. Op het internet circuleren bestanden met duizenden wachtwoorden. Deze kunnen door een aanvaller automatisch getest worden. Eveneens zijn er tal van technieken om wachtwoorden te kraken. Onder andere brute force attacks 8, misbruiken van zogenaamde wachtwoordherstelopties, SQL injecties, phishing, … vormen allen een bedreiging. Daarom is het ten zeerste aangeraden 9 om gebruik te maken van een ingewikkeld wachtwoord. Philips zou de consument moeten beschermen door een bepaalde complexiteit af te dwingen. Het tweede punt van kritiek concentreert zich op de app die Philips aanbiedt om de Hue lampen te bedienen. Wanneer de app geïnstalleerd wordt dient, de gebruiker zich aan te melden. Als deze procedure correct verloopt dan wordt de smartphone ‘goedgekeurd’. Dit betekent dat de gebruiker zich nooit meer opnieuw hoeft te authentiseren. Wanneer de smartphone doorverkocht (zonder de instellingen en applicaties grondig te wissen), gestolen of gehackt wordt resulteert dit in een veiligheidsprobleem. De nieuwe eigenaar kan dan namelijk zonder probleem de lampen bedienen. Philips biedt geen mogelijkheid om een smartphone niet langer te vertrouwen. De elektronicafabrikant zou deze problematiek gemakkelijk kunnen oplossen. Enerzijds moet er een ‘smartphone terugtrekken’ functionaliteit geïmplementeerd worden. Anderzijds zou de gebruiker verplicht moeten worden om zich op regelmatige tijdstippen opnieuw te authentiseren. In beide bovenstaande voorbeelden komt het er op neer dat iemand potentieel ongewenst de lampen kan bedienen. Een bedrijf vol slimme lampen is misschien toch niet zo een slim De TV-serie ’12 Monkeys’ te bekijken via Netflix heeft een lichtspoor om een bepaalde sfeer op te wekken. Dit gebeurd volgens CNET op basis van het audiospoor. 7 Iedereen kan dit uittesten, een account is gratis aan te maken, ook zonder in het bezit te zijn van de Hue lampen. 8 De website laat maximaal 2 pogingen per minuut toe. Dit kan echter omzeild worden, bijvoorbeeld met een botnet. 9 Bij voorkeur wordt de toegang beveiligd met meerdere mechanismes, bijvoorbeeld een token. Dit noemt men ‘two factor authentication’. 6
Wat is het Internet of Things
Pagina | 6
idee… . Het is op die manier perfect mogelijk voor een aanvaller om een gebouw letterlijk in het donker te zetten. 1.5.2 Iedereen in de fout De voorbeeldcase omtrent de Philips Hue lampen is geen alleenstaand geval. Op de huidige markt zijn er reeds tal van producten die eveneens kwetsbaarheden vertonen. Zo is er een artikel gepubliceerd op Forbes omtrent een onderzoek naar de veiligheid van de Nest thermostaat. Deze case volledig uit de doeken doen zou te ver afwijken van de essentie van deze bachelorproef. In ieder geval kan gesteld worden dat dit wijdverspreid product potentiële 10 kwetsbaarheden bevat. Het probleem blijft echter niet beperkt tot de producten die gemaakt zijn voor het Internet of Things. Wanneer een kwetsbaar IoT product in een netwerk wordt opgenomen, geeft dit toegang tot andere kwetsbare entiteiten. M.a.w. een Thing kan een ongewenste toegang bieden tot een bedrijfs- en/of thuisnetwerk. Het is dus aangeraden met enige voorzichtigheid IoT producten te adopteren. Om dit onderdeel over het Internet of Things en security te concluderen, wordt er met een positief feit afgerond. Vrij recent werd er een nieuwe alliantie opgericht: de ‘Open Connectivity Foundation’. Deze groep van bedrijven 11 gaat onder andere samenwerken aan veilige(re) protocollen en standaarden. De verschillende partijen vinden het eveneens van belang dat er transparant gewerkt wordt. Dit laatste uit zich in een sterke focus op open source projecten. Op die manier hopen ze tot veilige standaarden te komen.
1.6 Het LoRaWAN netwerk Om dit inleidende hoofdstuk af te ronden wordt hieronder nog even stilgestaan bij het LoRaWAN netwerk, ook wel afgekort als ‘LoRa’. Dit is nogmaals een goed bewijs dat het Internet of Things volop in ontwikkeling is. Het LoRaWAN netwerk is een zogenaamd ‘Low Power, Wide Area Network (LPWAN)’. Dit betekent enerzijds dat het versturen van signalen weinig energie vereist en anderzijds dat dit signaal lange afstanden kan overbruggen. LoRaWAN is dan ook de afkorting voor ‘Long Range Radio Wide Area Network’. De technologie achter LoRaWAN werd ontwikkeld door de semiconductor fabrikant Semtech. Naast LoRaWAN bestaan er nog heel wat andere, gelijkaardige netwerken, waaronder het bekende SIGFOX. Dankzij het lage energieverbruik en de enorme afstandsdekking maakt dit een zeer interessant netwerk voor bepaalde Internet of Things toepassingen. Het gaat hier vooral over De kans dat de kwetsbaarheden effectief uitgevoerd kunnen worden is kleiner dan bij de Philips Hue. Maar, er is dus wel degelijk een gevaar. 11 O.a. grote bedrijven zoals Samsung, Microsoft, Cisco en Intel hebben zich aangesloten. De Linux Foundation neemt eveneens deel aan de samenwerking. 10
Wat is het Internet of Things
Pagina | 7
toepassingen die kunnen opereren op batterijstroom. Dit betekent dus dat er geen constante datastroom is en dat de datahoeveelheden beperkt zijn. 1.6.1 Technische eigenschappen Het LoRaWAN netwerk bestaat uit verschillende krachtige masten die minimaal 2,5 kilometer en maximaal 15 kilometer dekken. Dit is met andere vertrouwde technologieën zoals WiFi, Bluetooth en ZigBee niet mogelijk. De masten vormen net zoals bij WiFi voor een zogenaamde stertopologie. Dit betekent dat er een rechtstreekse 12 communicatie tussen de antenne en het geconnecteerde object is. Om een bericht over het LoRaWAN netwerk te kunnen, sturen is dankzij de gebruikte technologie weinig energie nodig. Dit heeft echter een aantal consequenties. Zo is de transmissiesnelheid relatief traag ten opzichte van andere dagdagelijkse netwerken. Bij LoRaWAN varieert de datasnelheid tussen 0,3 en 50 kbit/s. Als dit vergeleken wordt met bijvoorbeeld digitale TV is het verschil aanzienlijk. Om een HD beeld te streamen is een snelheid van ongeveer 8 Mbps nodig. 50 kbit /s komt overeen met 0,05 Mbps. Dit betekent dus dat een bericht minimaal 160 keer trager wordt getransporteerd. Bij 0,3 kbit/s komt dit neer op een factor 2667. Logischerwijs moeten de berichten dus een relatief kleine omvang hebben. In de LoRaWAN opzet kunnen een drietal lagen onderscheiden worden. Op het laagste niveau bevinden zich de zogenaamde ‘LoRa end points’. Dit zijn de apparaten die verbonden zijn met het netwerk. Om met het netwerk te kunnen verbinden is er een chip nodig die de technologie ondersteunt. De end points maken verbinding met een mast, deze mast wordt de LoRa Gateway genoemd. Deze tweede laag maakt het dus mogelijk om berichten te versturen en te ontvangen. De mast is op zijn beurt verbonden met een zogenaamde ‘network server’. De connectie tussen de gateway en de ‘network server’ verloopt via een klassieke Internet Protocol (IP) connectie. De server beheert de datasnelheid waarmee berichten afgehandeld worden, evenals hoe de data op het internet terecht komt. Dit vormt de derde laag. Er zijn doorheen deze verschillende componenten een aantal security lagen geïmplementeerd om de integriteit van de datatransmissies te verzekeren.
In sommige gevallen wordt er gebruik gemaakt van zogenaamde ‘repeaters’. Deze zorgen dat het signaal voldoende energierijk blijft over de gehele afstand. Op deze manier kan het bereik eventueel vergroot worden. 12
Wat is het Internet of Things
Pagina | 8
Op de verdere technische aspecten van de LoRaWAN technologie wordt in deze tekst niet verder ingegaan, dit zou te ver afwijken van het doel van deze bachelorproef. Voor wie meer wil weten over LPWAN netwerken is de white paper van LinkLabs een goede start: http://www.link-labs.com/what-is-lorawan/ .
Figuur 3 LoRaWAN topologie volgens Libelium
1.6.2 LoRa Alliantie De drijvende kracht achter het LoRaWAN netwerk is de LoRa alliantie. Ze omschrijven zichzelf als een open, non-profit organisatie die bedrijven samenbrengt. Al deze bedrijven geloven erin dat het Internet of Things nu plaatsvindt. Samen proberen ze het LoRaWAN netwerk vorm te geven en op poten te zetten. In principe kan iedereen zich aansluiten bij de alliantie, op voorwaarde dat wordt voldaan aan de LoRa Alliance Certification. 1.6.3 LoRAWAN in de BENELUX In België is de telecommunicatieprovider Proximus al een tijdje bezig met het uitrollen van een LoRa-netwerk. Ze gaan eveneens bijhorende hardware verkopen. Het netwerk is beschikbaar sinds begin maart 2016. Proximus heeft naar eigen zeggen eveneens plannen om Luxemburg te dekken met zijn masten. In Nederland zijn er reeds meerdere marktspelers, waaronder de telecomprovider KPN.
Wat is het Internet of Things
Pagina | 9
Een andere speler die veel media-aandacht kreeg is ‘The Things Network’. Deze laatste groep rolde in amper zes weken een LoRa-netwerk uit dat heel Amsterdam dekt. Dezelfde groep gaat eveneens de concurrentie aan op de Belgische markt onder de naam Wireless Things. Dit maakt duidelijk dat het een toegankelijke technologie is die in zekere zin voor iedereen beschikbaar is. In Amsterdam werden een tiental antennes geïnstalleerd die ieder ongeveer 1200 euro hebben gekost. The Things Network heeft eveneens succesvol een Kickstarter campagne opgezet om een IoT gateway te ontwikkelen die 200 euro moet gaan kosten. De gateway kan tot maar liefst twintigduizend Things ondersteunen.
Figuur 4 LoRaWAN dekking in België volgens Proximus (links) en Wireless Things (rechts)
Wat is het Internet of Things
Pagina | 10
2. Internet of Things architectuur
2
INTERNET OF THINGS ARCHITECTUUR
In het eerste hoofdstuk werd beschreven wat het Internet of Things juist betekent. Een aantal basisconcepten werden aangehaald en toegelicht aan de hand van voorbeelden. In dit tweede deel wordt nader ingegaan op het technische aspect. De architectuur van een typische IoT toepassing wordt uitgebreid toegelicht. Wederom worden er concrete voorbeelden aangehaald. Internet of Things architectuur Pagina | 11
2.1 De verschillende lagen Bij een typische Internet of Things architectuur kunnen doorgaans een drietal lagen onderscheiden worden. De eerste laag wordt gevormd door de zogenaamde ‘Things’. Dit is de laag waarin ‘low level’ elektronica terug te vinden is. Denk daarbij voornamelijk aan een sensoren en actuatoren. In de volgende alinea wordt hier dieper op ingegaan. De volgende laag bestaat uit zogenaamde Internet of Things Gateways. Hierbij kan onder andere gedacht worden aan een, zoals eerder besproken, LoRa Gateway. Ook deze laag wordt later in deze tekst uitgebreid besproken. De derde, en dus de laatste laag bestaat uit de applicaties, dit wordt ook wel eens de Internet of Things backend genoemd. Zoals later in deze bachelorproef zal duidelijk worden, is deze laag verantwoordelijk voor het verwerken en eventueel analyseren van de verworven data.
Figuur 5 Internet of Things architectuur volgens In-Jet APS
2.2 De ‘Things’ laag In de onderste laag kunnen verschillende soorten ‘Things’ teruggevonden worden. Op de markt zijn verscheidde kant-en-klare oplossingen beschikbaar, denk hierbij aan de eerdergenoemde voorbeelden zoals de Nest thermostaat. Evengoed zijn er platformen beschikbaar waar de gewenste sensoren mee kunnen gekoppeld worden, denk bijvoorbeeld aan een Arduino bordje. Uiteraard zijn er ook producten die volledig op maat van de toepassing worden ontwikkeld.
Internet of Things architectuur
Pagina | 12
2.2.1 Het ideale Thing Wanneer er gesproken wordt over een ideaal Thing, dan komt men wellicht uit bij een op maat ontworpen oplossing. In het algemeen hebben de perfecte Things een aantal eigenschappen gemeenschappelijk. In de volgende alinea’s wordt hier dieper op ingegaan. Uiteindelijk zal dit inzicht duidelijk maken wat de doelen en de te overwinnen moeilijkheden zijn binnen deze laag. Bij voorkeur is een Thing energiezuinig, dit heeft zijn consequenties, enerzijds voor de mogelijkheden van het Thing in kwestie, anderzijds voor de complexiteit ervan. Om het energieverbruik zo laag mogelijk te houden is het noodzakelijk om enkel gebruik te maken van de essentiële chips. Doorgaans is het af te raden om zeer complexe elektronica te gebruiken aangezien dit meer energie vereist. Vaak hebben ideale Things een batterij als energiebron, die in staat is om het Thing gedurende een aantal jaren van stroom te voorzien. Onderzoekers zijn reeds mogelijkheden aan het bekijken om zonder rechtstreekse energiebron te werken. Zo is er de oplossing van de universiteit van Washington. Door gebruik te maken van de energie die gepaard gaat met de draadloze communicatiesignalen, is men in staat een Thing van energie te voorzien.
Figuur 6 Concept waarbij gebruik maakt wordt van de energie in communicatiesignalen – ontwikkeld door University of Washington.
Aangezien er geopteerd wordt voor zuinige elektronica heeft dit gevolgen voor de mogelijkheden van een Thing. Het beschikbare geheugen is eerder beperkt en de processing resources zijn minimaal. Dit betekent dat het ontwikkelen van Internet of Things software niet zo eenvoudig is als het lijkt. Om een microcontroller te programmeren wordt er vaak beroep gedaan op ‘low level programming languages’ zoals C.
Internet of Things architectuur
Pagina | 13
Een laatste moeilijkheidsfactor wordt veroorzaakt door de communicatiemiddelen. Zoals reeds besproken zijn complexe chips eerder af te raden. Zo is de voor de hand liggende WiFi technologie geen evidente keuze. Hieronder wordt uitgelegd waarom dit zo is. 2.2.1.1 Problemen WiFi Om een volledige WiFi stack op te zetten is er relatief veel elektronica nodig. Meer componenten betekent meer energieverbruik. Bovenop de benodigde hardware is het ook noodzakelijk om complexe protocollen te implementeren. In het algemeen kan gesteld worden dat WiFi momenteel onvoldoende energiezuinig is voor het Internet of Things. Om een beeld te krijgen waarom WiFi relatief veel verbruikt is het interessant om de studie van ‘School of Electrical and Computer Engineering’ te bekijken: ‘Smartphone Energy Drain in the Wild: Analysis and Implications’. Hier verder over uitweiden zou afwijken van de essentie van deze bachelorproef. De data die nodig is voor een typische Internet of Things applicatie is doorgaans van beperkte omvang. Een verbinding die veel data op korte tijd kan transporteren is dus geen noodzaak. Daarom wordt er vaak gekeken naar technologieën die in een Personal Area Network (PAN) gebruikt worden. Daarbij kan onder andere gedacht worden aan Z-Wave, ZigBee en Bluetooth 13. Eventueel kan er beroep gedaan worden op een seriële communicatiechip of I2C oplossing. Deze laatste zijn echter minder praktisch, daar deze niet draadloos zijn. Zoals eerder besproken kunnen LPWAN netwerken eveneens een oplossing bieden. Wellicht is deze laatste optie de betere keuze voor heel wat Internet of Things toepassingen. Overigens laten alle bovenstaande technologieën net zoals WiFi twee-wegs-communicatie toe. Met andere woorden, er kan zowel data worden verzonden als ontvangen door een Thing. Deze alternatieven zijn echter niet in staat om een rechtstreekse verbinding met het internet op te zetten. Hiervoor is een extra laag nodig (de gateway laag), deze wordt later in dit hoofdstuk besproken. Ondanks dat WiFi nu in veel gevallen eerder af te raden is, wil dit niet zeggen dat er geen toekomst is voor deze draadloze technologie. Op deze moment wordt er volop gewerkt aan een nieuwe WiFi-standaard die zuiniger is. Deze nieuwe standaard, genaamd WiFi-HaLow belooft een lager energieverbruik en grotere afstandsrange. Volgens Wikipedia zal de technologie zijn intrede in 2016 nemen. Welke impact dit op het Internet of Things zal hebben is dus nog onduidelijk. Als laatste argument is er de kostprijs. De totale kost van een degelijke WiFi opstelling is momenteel relatief duur. Dankzij de sterk groeiende community zijn netwerken zoals LoRaWAN wat dat betreft veelbelovend. Denk daarbij aan het voorbeeld van The Things
Het gaat hier over Bluetooth Low Energy (wordt ook wel kortweg BLE genoemd, Bluetooth Smart of Bluetooth 4.0). Eerdere Bluetooth specificaties zijn veel minder energiezuinig en bijgevolg dus niet geschikt voor het IoT.
13
Internet of Things architectuur
Pagina | 14
Network, zij proberen zowel de prijs van het netwerk als van de benodigde hardware te drukken. 2.2.2 Het imperfecte Thing In het vorige deel werd besproken hoe een ideaal Thing er uitziet. In wat volgt worden een aantal minder ‘perfecte’ Things besproken. Wanneer in een zoekrobot de term ‘Internet of Things projects’ wordt ingegeven is de kans groot dat bij één van de eerste hits een Raspberry Pi wordt gebruikt. Dit hardware platform heeft een ARM processor aan boord. Deze processorarchitectuur is eveneens erg populair in de smartphone wereld (relatief energiezuinig en goedkoop). Verder heeft de Raspberry Pi een volledige Ethernet stack aan boord 14. De allerlaatste versie, beschikbaar sinds 29 februari 2016, heeft een Broadcom BCM43438 microchip geïmplementeerd die zowel WiFi als Bluetooth 4.1 biedt. Het bordje, dat de afmetingen van een credit card heeft, heeft eveneens voldoende geheugen aan boord evenals een videochip. Wat dit platform echt interessant maakt voor het Internet of Things zijn de geïntegreerde General Purpose Input / Output (GPIO) aansluitingen. Deze maken het mogelijk om allerlei hardware aan te sluiten waaronder sensoren en actuatoren. Op het Raspberry Pi platform zijn overigens tal van varianten te vinden, zoals de populaire Banana Pi. In hetzelfde zoekresultaat zal wellicht ook een record opduiken waar een project opgebouwd is rond het Arduino platform. Er zijn verschillende officiële variaties, kleinere varianten, varianten die zowel een processor als een microcontroller aan boord hebben, meer uit- en ingangen hebben, … . Wat ze echt allemaal 15 gemeen hebben, is dat ze een microcontroller van de fabrikant ATMega aan boord hebben. Het voordeel van een microcontroller ten opzichte van een processor is dat deze minder energie vereist. Dit komt doordat deze chip alles aan boord heeft in één ‘package’: microprocessor, RAM, ROM, Het ‘nadeel 16’ van een microcontroller is dat deze gericht is op specifieke taken, taken waarbij het verband tussen de in- en output duidelijk is (bijvoorbeeld het uitlezen van sensorwaarden). De hoeveelheid geheugen en de snelheid van een microcontroller ligt veel lager dan bij een processor. Bij een processor is het verband tussen de in- en output meestal ingewikkelder, denk daarbij bijvoorbeeld aan fotobewerking. Overigens is het platform open-source, waardoor het mogelijk is om het bordje zelf te produceren en eventuele aanpassingen door te voeren. Zo heeft The Things Network een variant gemaakt op basis van de Arduino UNO, die reeds een LoRa antenne heeft geïmplementeerd. Het Arduino platform kan dus eventueel een interessante keuze zijn om een Internet of Things toepassing te ontwikkelen.
Met uitzonder op de Raspberry Pi 1 – Modal A, deze heeft geen Ethernet poort aan boord. Met uitzondering van de Arduino 101, deze is gebouwd rond een Intel Curie chip (System on a chip). 16 In principe is dit geen echt nadeel. Zowel microcontrollers als processors hebben hun specifieke doelen. 14 15
Internet of Things architectuur
Pagina | 15
Naast de Raspberry Pi en Arduino zijn er nog tal van andere oplossingen beschikbaar, bijvoorbeeld de Intel Edison. Het heeft geen zin om al deze platformen in detail te bespreken. Hieronder wordt uitgediept waarom deze platformen nu net zo interessant zijn.
Figuur 7 Links staat een Arduino Uno afgbeeld, rechts Raspberry Pi van de eerste generatie.
2.2.2.1 Relatief makkelijke instap Het meest toegankelijke platform is wellicht de Raspberry Pi. Dit komt voornamelijk door twee grotere redenen. De eerste is dat dit platform een volwaardige processor aan boord heeft. Dit maakt het mogelijk om een compleet vertrouwd besturingssysteem te installeren. Denk daarbij aan een Linux variant of een aangepaste Windows variant (Windows 10 IoT Core). De programmeertaal en de bijhorende tools kunnen vrij gekozen worden. Veel tools die voor andere platformen beschikbaar zijn, hebben intussen hun weg gevonden naar de Raspberry Pi. De tweede rede waarom dit een interessant platform is, is de enorme community eromheen. Dit zorgt ervoor dat er actief software en hardware (er zijn veel kits beschikbaar) voor het platform ontwikkeld wordt. Eveneens is er veel kwalitatieve documentatie beschikbaar op het internet. De instapdrempel wordt hierdoor enorm laag. Bovendien is de kostprijs van dit platform erg laag, namelijk rond de 35 euro.
Internet of Things architectuur
Pagina | 16
Het Arduino platform heeft gelijkaardige voordelen aan de Raspberry Pi, ondanks dat het opgebouwd is rondom een microcontroller in plaats van rond een processor. Een drietal redenen vormen de basis waarom dit platform zo populair is. In eerste instantie is het een erg goedkoop platform, voor enkele euro’s 17 kan het complete bordje worden gefabriceerd. Een tweede belangrijke reden is de toegankelijkheid van het platform. De microcontroller wordt doorgaans geprogrammeerd in C, wat vaak ervaren wordt als een moeilijke programmeertaal. Om deze moeilijk weg te nemen heeft het Arduino platform deze complexiteit geabstraheerd. Door gebruik te maken van een heleboel ‘wrappers’ is het eenvoudig om met simpele functieaanroepen zelf programma’s te schrijven. Dit maakt dat dit platform een uitgebreid publiek voor zich heeft weten te winnen. De documentatie is uitgebreid, er zijn veel codevoorbeelden te vinden. Vele fabrikanten en hobbyisten maken het mogelijk om hardware aan te sturen door de standaardbibliotheken uit te breiden (zodanig dat de programmeermoeilijkheid beperkt blijft). Met andere woorden, ook rond dit platform is er een grote community ontstaan. Als laatste reden geldt dat het platform open source is. Dit maakt het een ideaal startpunt om eigen hardware op basis van dit platform te ontwikkelen.
Figuur 8 Voorbeeldcode om een LED te laten pinken volgens Arduino.cc.
17 Wanneer de Arduino wordt aangekocht via de officiële organisatie erachter is de prijs relatief hoog. Een groot deel van het geld gaat naar de community, om op die manier nieuwe hardware en software te ontwikkelen. Chinese fabrikanten bieden vaak een prijs onder de vijf euro.
Internet of Things architectuur
Pagina | 17
2.2.2.2 Geen gateway In het volgende gedeelte wordt uitgelegd wat een Internet of Things gateway juist is. Toch is het interessant om dit al even kort aan te raken. Daar de Raspberry Pi een volwaardige netwerkstack aan boord heeft, is deze in staat een rechtstreekse connectie te maken met het internet. Bij de Arduino platformen hangt dit af van welke variant juist gebruikt wordt. Echter zijn er heel wat zogenaamde shields (opsteekbordjes) beschikbaar die een netwerkstack en de bijhorende software kunnen leveren. Zoals later in deze tekst zal blijken is in dit geval een IoT gateway geen noodzaak. Figuur 9 Arduino Mega met daarop een WiFi shield van fabrikant Wiznet.
2.2.2.3 Prototype platform De eerder besproken platformen vormen vaak de basis van een Internet of Things applicatie, al dan niet onder de vorm een aangepaste variant. Voor iets meer professionele toepassingen bieden ze soms geen echte oplossing. Toch worden ze vaak gebruikt door professionals. De reden hiervoor is dat dit soort platformen zich uitermate leent als een goedkoop, eenvoudig prototype platform. Vooraleer er geïnvesteerd wordt in dure research- en productiekosten is dit een goed startpunt. 2.2.2.4 Grootste nadelen De energievereisten van de besproken oplossingen zijn redelijk laag. Toch zijn er heel wat toepassingen waarbij het energieverbruik te hoog ligt. Wanneer er een specifieke oplossing wordt ontwikkeld is het mogelijk om alleen de noodzakelijke elektronica te implementeren. Dit resulteert in een gereduceerd stroomverbruik. Een tweede nadeel van dit soort oplossingen is dat ze soms nog onvoldoende compact zijn. Dit komt niet alleen door de ‘overbodige’ chips, maar vooral door de elektronica die er aan moet toegevoegd worden. Denk bijvoorbeeld aan een netwerkshield. Het is vaak interessanter (en energiezuiniger) om zoveel mogelijk componenten rechtstreeks op de Printed Circuit Board (PCB) te integreren. Het laatste grote nadeel is dat niet al deze platformen even stabiel zijn. Ze zijn voldoende Internet of Things architectuur
Pagina | 18
stabiel voor de hobbyist, maar kunnen geen zorgeloze operatietijd van verschillende jaren garanderen. 2.2.3 De sensoren en actuatoren In de vorige alinea’s werd vooral gekeken naar de basis componenten van een Thing. Wat echter in deze laag niet mag ontbreken zijn de sensoren en actuatoren. Indien het gaat over een op maat gemaakte oplossing, dan worden deze veelal geïntegreerd in de printplaat. Sensoren zorgen voor de data-invoer van een Internet of Things toepassing. Op basis van deze data kunnen er verdere analyses en / of bijsturingen gebeuren. Op de markt is er een uitgebreid gamma aan sensoren beschikbaar. Dit gaat van een simpele temperatuursensor tot een sensor die chemische hoeveelheden kan waarnemen. Om deze tekst niet onnodig lang te maken is het interessant om de volgende uitgebreide lijst op Wikipedia te bekijken: https://en.wikipedia.org/wiki/List_of_sensors. Hier worden een paar honderden verschillende sensoren opgesomd. Naast de sensoren zijn er zogenaamde actuatoren. Wikipedia omschrijft dit als zijnde motoren die in staat zijn om een systeem of mechanisme te controleren of te bewegen. Ook in deze categorie zijn er enorm veel variaties. Bijvoorbeeld om een watertoevoer af te sluiten, of om zonnepanelen juist te oriënteren, … . Vaak zorgen de sensoren dus voor de sturing van de actuatoren.
Figuur 10 Opstelling om een zonepaneel automatisch te oriënteren ontwikkeld door Biery Mountain Enterprises, LCC.
Internet of Things architectuur
Pagina | 19
2.3 De gateway laag Deze optionele laag kwam al reeds kort aan bod. In de tekst die hierop volgt wordt bekeken wat een Internet of Things gateway is enerzijds en anderzijds de basis functionaliteiten ervan. 2.3.1 Wat is een Internet of Things gateway Een vaak voorkomend misverstand is dat er wordt gedacht dat een Internet of Things Gateway een router is, dat is het dus niet. Het apparaat kan het best omschreven worden als een centrale brug tussen enerzijds verschillende Things en anderzijds tussen de buitenwereld: het internet. Verschillende Things hebben verschillende doelen, daarom gebruiken ze specifieke hardware met de bijhorende communicatiesoftware. De gateway biedt verschillende aansluitmogelijkheden, om een zo groot mogelijke verscheidenheid aan Things te kunnen ondersteunen. Een goede gateway is meer dan alleen een connectiepunt tussen de twee werelden. Dit is het onderwerp van de volgende alinea’s. 2.3.2 Verschillende protocollen Vele Things hebben geen klassieke netwerkstack aan boord en kunnen dus niet rechtstreeks connecteren met het internet. De reden waarom hiervoor wordt gekozen is verschillend, de belangrijkste redenen zijn enerzijds om energie te besparen en anderzijds om kosten te besparen. Er zijn verschillende communicatiekanalen mogelijk, waaronder LoRa, SIGFOX, ZigBee, Bluetooth, … . Al deze technologieën hebben een unieke manier van werken, wat resulteert in verschillende protocollen. In een typisch Internet of Things netwerk is het perfect mogelijk om verschillende communicatieoplossingen te combineren. Het is daarom interessant om over een gateway te beschikking die al deze verschillende protocollen op een uniforme manier aanbiedt.
Internet of Things architectuur
Pagina | 20
Op de markt zijn er gateways beschikbaar die zowel draadloze (Bluetooth, WiFi, ZigBee, …) als bekabelde (seriële communicatie, I2C, Wire, …) communicatie ondersteunen.
Figuur 11 Dell Edge Gateway 5000 Series
2.3.3 Beveiliging In de huidige wereld is beveiliging een belangrijk sleutelwoord. Dat is eveneens zo voor het Internet of Things. Toepassingen verzamelen of ontvangen vaak data die vertrouwelijk is. Denk daarbij bijvoorbeeld aan medische toepassingen of sensoren die instaan om de beveiliging van een gebouw te monitoren. De verworven data moet dus op een of andere veilige manier getransporteerd kunnen worden. Volgens een onderzoek van Hewlett Packard kan gesteld worden dat er nog veel werk aan de winkel is op het vlak van Internet of Things security. Heel wat toepassingen zijn op een of andere manier kwetsbaar. Sommige Things hebben de nodige logica aan boord om data te encrypteren en dus op een veilige manier te transporteren (al dan niet rechtstreeks naar het internet). Andere Things hebben geen enkele vorm van beveiliging ingebouwd, wat uiteraard uit den boze is 18. In beide gevallen kan een gateway een extra (of broodnodige) beveiligende laag naar de buitenwereld toe bieden. Een gateway is meestal voorzien van een ietwat krachtigere processor (zeker ten 18
Iemand die in staat is connectie te maken met het Thing in kwestie kan dus potentieel de gevoelige data sniffen.
Internet of Things architectuur
Pagina | 21
op zichtte van een Thing) en heeft doorgaans voldoende geheugen aan boord. Dit maakt het mogelijk om sterke encryptiealgoritmen te implementeren zoals TLS en SSL. Sommige gateways hebben hiervoor aparte chips aan boord, die uitsluitend deze taken uitvoeren. 2.3.4 Availability
Figuur 12 Screenshot uit ‘Internet of things research study’ van Hewlett Packer (November 2015)
Wanneer een Thing rechtstreeks met het internet verbind kan dit potentieel een probleem inhouden. Bijvoorbeeld wanneer de internetconnectie wegvalt. Een Thing heeft doorgaans beperkte mogelijkheden en kan de verworven data bijgevolg niet lokaal opslaan. Data die niet ogenblikkelijk kan verstuurd worden omwille van connectieproblemen gaat meestal verloren. Een algoritme om dit soort problemen op te vangen en de nodige ondersteunende hardware (extra geheugen) maakt een Thing complexer. Een goede Internet of Things gateway kan dit probleem oplossen. De gateway kan eventueel functioneren als een soort van buffer. Als deze detecteert wanneer er niet langer een internetconnectie beschikbaar is kan deze de ontvangen data tijdelijk bijhouden. Wanneer de internetconnectie opnieuw hersteld is kan de data alsnog verstuurd worden.
Internet of Things architectuur
Pagina | 22
2.3.5 De extra’s & de voordelen De belangrijke functionaliteiten van een gateway zijn reeds uitgebreid besproken. Het apparaat kan echter nog een aantal extra intelligente functionaliteiten aanbieden. Dit mede omdat de gateway kan voorzien worden van krachtige hardware, daar deze kan gedeeld worden door de verschillende aangesloten Things. Sommige gateways, zoals de Texas Instruments gateway die opgebouwd is rond de TM4C12x MCU (Microcontroller Unit), bieden een filter functie aan. Deze functie maakt het mogelijk om een eerste analyse uit te voeren. Hierdoor kan eventueel overtollige data reeds worden weg gefilterd. Een andere mogelijkheid is om een soort ‘trigger’ te verbinden aan een filter. Wanneer een abnormale waarde optreed kan er een waarschuwing worden gegenereerd, die dan bijvoorbeeld per mail kan worden verzonden.
Figuur 13 Texas Instruments Tiva™ TM4C129X Development Board
Internet of Things architectuur
Pagina | 23
Vele gateways bieden eveneens een soort van interface aan waarmee de nodige configuratie kan uitgevoerd worden. Bijvoorbeeld voor het opzetten van een connectie tussen een Thing en de gateway in kwestie. Deze interface kan aangeboden worden via een display maar wordt soms ook aangeboden via een webinterface (of beide). Geconcludeerd kan worden dat een gateway een aantal voordelen met zich mee brengt. De Things kunnen eenvoudiger worden gehouden, omdat een deel van de logica op de gateway kan worden geïmplementeerd. Het apparaat heeft handige functionaliteiten aan boord, zoals filters en een debugging interface. De veiligheid kan ermee opgeschroefd worden. Verschillende Things kunnen via één centraal punt met het internet verbinden. En als laatste is er een verhoogde beschikbaarheid.
2.4 De applicatie laag Data verzamelen en op basis daarvan eventuele bijsturingen uitvoeren is één aspect van het Internet of Things. De informatiestroom kan de input zijn van een analyseproces, dit is een ruw voorbeeld van een applicatie. Hieronder worden kort enkele principes besproken. Een applicatie die geschikt is voor het Internet of Things kan worden uitgewerkt in een technologie naar keuze. De keuze is enerzijds gebaseerd op een afweging welke programmeertalen er in aanmerkingen komen en anderzijds een kwestie van persoonlijke voorkeur. Doorgaans wordt de verzamelde data opgeslagen, dit kan eveneens op verschillende manieren. Een veel voorkomende technologie zijn de zogenaamde NoSQL databases, deze laten toe om zonder enige verplichte structuur data op te slaan, in tegenstelling tot de traditionele relationele databasesystemen. Vaak wordt hier de term big data aan gekoppeld, omdat er al snel heel wat data wordt verzameld. Hoe de data vanaf het Thing tot bij de applicatie geraakt doet er ook niet zoveel toe. Dit kan bijvoorbeeld gebeuren via het welbekende HTTP protocol, al wordt er bij voorkeur gebruik gemaakt van de beveiligde variant: HTTPS. Dit gebeurd dan meestal aan de hand van REST API’s. Een andere mogelijk is het gebruik van een protocol zoals MQTT, een protocol waarbij berichten wordt gepubliceerd en anderzijds kan geluisterd worden of er nieuwe inkomende berichten zijn. Internet of Things applicaties kunnen eventueel in de cloud worden ondergebracht. Dit heeft twee grotere voordelen, enerzijds moet er geen ingewikkelde infrastructuur worden opgezet en anderzijds is het makkelijk schaalbaar. In het volgende hoofdstuk wordt bekeken welke rol Amazon hierin speelt met zijn Amazon Web Services IoT.
Internet of Things architectuur
Pagina | 24
3. Amazon Web Services IoT
3
AMAZON WEB SERVICES IOT
In het vorige hoofdstuk werd uitgebreid besproken hoe een typische Internet of Things architectuur eruitziet. In het algemeen kan gesteld worden dat heel deze opzet redelijk complex is. Zeker omdat het normaal gezien niet gaat over één Thing, maar over vele, vaak verschillende Things. Een mogelijkheid om dit ‘probleem’ op te lossen is door dit te outsourcen naar een cloud provider. Deze oplossing garandeert bovendien een eenvoudigere schaalbaarheid. In dit hoofdstuk wordt beknopt bekeken welke diensten Amazon hiervoor aanbiedt. Amazon Web Services IoT Pagina | 25
3.1 Onderzoek In dit hoofdstuk wordt (op moment van schrijven) de nieuwste telg van Amazon Web Services (AWS) besproken, namelijk AWS IoT. Deze dienst ging volgens een blog artikel 19 van Amazon in bèta op 8 oktober 2015. De dienst werd twee maand later officieel 20 gelanceerd. Het gaat hier dus om een vrij nieuw product en bijgevolg is er nog weinig kwalitatief onderzoek. Toch is het naar mijn mening interessant om dit onderwerp in deze bachelorproef op te nemen. Dankzij mijn stage bij het Sizing Servers Lab te Kortrijk kon ik al meer dan een maand ervaring opdoen met AWS IoT. Deze ervaring en de reeds beschikbare bronnen vormen de inhoud van dit hoofdstuk.
3.2 AWS IoT componenten De illustratie hieronder geeft al de componenten van AWS IoT duidelijk weer. In wat volgt wordt elk onderdeel nader bekeken. Waar mogelijk wordt geduid hoeveel moeite het kost om iets gelijkaardig zelf op te zetten.
Figuur 14 AWS IoT components
3.2.1 Things AWS IoT biedt in principe voor alle Things ondersteuning. Drie Software Development Kits (SDK) zijn openbaar gemaakt via GitHub 21. Deze zorgen voor de connectie tussen enerzijds het Thing22 en anderzijds de clouddiensten van Amazon. Een van de git repositories bevat alle benodigde software om Things die C ondersteunen te kunnen koppelen met AWS IoT. Een andere bibliotheek biedt de mogelijkheid aan om met Javascript te werken. Deze laatste richt
Zie literatuurlijst, blogpost Amazon - ‘Announcing AWS IoT, now in beta’. Zie literatuurlijst, blogpost Amazon – ‘AWS IoT – Now Generally Available’. 21 Beschikbaar via https://github.com/aws?utf8=%E2%9C%93&query=iot . 22 Een Thing heeft in deze context dezelfde betekenis zoals eerder beschreven in hoofdstuk twee. 19 20
Amazon Web Services IoT
Pagina | 26
zich vooral op het zogenaamde event-driven I/O framework Node.JS. Tot slot wordt er nog code aangeboden die gericht is op de Arduino Yún 23. Wie geen gebruik kan maken van één van de bovenstaande SDK’s moet zelf de connectie naar AWS IoT opzetten. Dit vormt geen enkel probleem omdat Amazon geen eigen protocollen heeft ontwikkeld. Veel van de programmeertalen bieden op een of andere manier ondersteuning voor de gebruikte protocollen. Overigens biedt Amazon Web Services heel wat SDK’s (in verschillende programmeertalen) aan voor hun andere diensten die eventueel ook gebruikt kunnen worden. In dit geval gaat het voordeel van AWS IoT in zekere zin verloren, de bijhorende services kunnen dan niet gebruikt worden. 3.2.2 Message Broker Een Thing verbindt met de Message Broker tenzij, zoals hierboven vermeld, rechtstreeks met een andere dienst wordt verbonden. Dit component maakt zowel het versturen als het ontvangen van berichten (messages) toe, er wordt gebruik gemaakt van een zogenaamde ‘publish / subscribe’ (vaak afkort als pub/sub) methodiek. Zowel applicaties (in de voorgaande illustratie helemaal links onderaan) als Things versturen (publish) berichten naar een onderwerp (topic). Luisteren (subscribe) geschiedt eveneens via een onderwerp. 3.2.2.1 Verschillende protocollen De broker ondersteund drie verschillende protocollen. De keuze is volledig vrij, alle ondersteunde oplossingen leveren nagenoeg hetzelfde resultaat op. De eenvoudigste manier is werken via de HTTP API. Een bericht kan naar een unieke URL verstuurd worden, dit moet gebeuren via de POST methode. Eventueel kan er een Quality of Service (QoS) level meegeven worden (level één of twee). De API heeft enkel ondersteuning voor het vesturen van berichten, er kan dus niet geluisterd worden naar inkomende berichten. Dit maakt dat deze methode vaak ontoereikend is. Het aansturen van actuatoren is bijvoorbeeld geen optie in dit geval. Het tweede protocol dat ondersteund wordt is MQTT. Dit is een typisch publish / subscribe protocol. Het wordt omschreven als zijnde een ‘light weight messaging protocol’. Hiermee wordt bedoeld dat het implementeren van dit protocol weinig resources vereist. Volgens de officiële website 24 zijn de netwerkvereisten minimaal. Met andere woorden, een ideaal protocol voor het Internet of Things. De exacte details hoe Amazon hiermee omgaat kan worden teruggevonden via de volgende link: http://docs.aws.amazon.com/iot/latest/developerguide/protocols.html .
De Arduino Yún heeft zowel een microcontroller evenals een processor aan boord. Een deel van de code is geschreven in de Arduino taal (wordt verwerkt op de microcontroller), een ander deel is geprogrammeerd in Python en wordt op de processor uitgevoerd. 24 http://mqtt.org/ 23
Amazon Web Services IoT
Pagina | 27
De derde mogelijkheid is gebouwd rond het WebSockets protocol. Bij zo’n verbinding wordt er een connectie opgezet, eens deze tot stand is gekomen blijft deze connectie geopend tot de te verzenden of ontvangen de sessie sluit. Het is mogelijk om in beide richtingen data te versturen. De website caniuse.com 25 toont aan dat het protocol ondersteund is door alle moderne webbrowsers. Het onderzoek ‘Research of Web Real-Time Communication Based on Web Socket’ uit 2012 stelt dat WebSockets de technologie voor het real-time web van de toekomst is. Dat zowat alle moderne browsers het intussen ondersteunen bevestigd deze stelling. AWS IoT biedt de mogelijkheid aan om een WebSocket verbinding op te zetten en over deze verbinding kan dan wederom via het MQTT protocol gecommuniceerd worden. 3.2.2.2 Beveiliging Met de broker verbinden kan enkel via een beveiligde verbinding. AWS IoT ondersteund twee methodes. De eerste methode is om met certificaten te werken, meer bepaald volgens de X.509 standaard. Dit is wellicht vaak de eenvoudigste manier, aangezien er meestal ingebouwde (of via actief ontwikkelde bibliotheken) ondersteuning is in vele programmeertalen. De verbinding wordt end-to-end 26 versleuteld op basis van een publieke en private sleutel. De exacte details worden in deze tekst niet verder uitgediept, meer details zijn terug te vinden op de volgende webpagina: https://en.wikipedia.org/wiki/X.509 . De nodige certificaten kunnen zowel via de AWS Console 27 aangemaakt worden als via andere tools (zoals PuttyGen). Bij de tweede methode moet de data eveneens versleuteld worden aan de hand van een sleutel. Amazon noemt deze werkwijze ‘Signature Version 4’. Het proces staat beschreven in het volgende artikel: http://docs.aws.amazon.com/general/latest/gr/signature-version4.html . Amazon gebruikt deze manier van encryptie in een aantal van zijn SDK’s. Aan de hand van de documentatie is het mogelijk om dit proces te implementeren in een programmeertaal naar keuze. Samengevat kan men stellen dat Amazon aandacht besteed aan beveiliging. Buiten het encrypteren van de data worden er nog een aantal andere belangrijke concepten gebruikt. Dit komt later in deze tekst aan bod, meer bepaald in sectie 3.2.6. 3.2.3 Thing Registry Zoals de naam zelf al verraad houdt deze component gegevens bij over de verschillende Things. In het registry worden de volgende zaken bijgehouden: de naam van elk Thing, de gekoppelde certificaten met het desbetreffende Thing en de MQTT informatie (topic). Eventueel kunnen er tot drie extra attributen worden gekoppeld aan elk Thing. Dit is een soort
http://caniuse.com/#feat=websockets De data verzonden in beide richtingen kan alleen ‘gelezen’ worden met de juiste decryptie sleutels. 27 Dit is een web interface van waaruit alle AWS diensten beheerd kunnen worden. 25 26
Amazon Web Services IoT
Pagina | 28
van key-value (sleutel – waarde) paar, dit kan gebruikt worden om alles overzichtelijk te maken. Men kan bijvoorbeeld als key ‘locatie’ instellen en als value de plaats waar het apparaat zich juist bevindt (bijvoorbeeld inkomhal). De attributen hebben louter een administratie functie en hebben dus niets met de werking van AWS IoT te zien. Eventueel kunnen er ook ‘virtuele’ Things aangemaakt worden. Dit kan dan bijvoorbeeld een applicatie zijn die het gedrag van een Thing simuleert. 3.2.4 Thing Shadows Berichten uitgewisseld tussen een Thing enerzijds en anderzijds AWS IoT zijn opgebouwd volgens de JSON-standaard. AWS IoT noemt dit ‘Thing Shadows’. Een bericht moet wel opgebouwd worden volgens een bepaalde voorgelegde structuur. Verder kan het bericht volledig vrij opgesteld worden, al is er wel een limiet van 8kb per bericht. De andere limieten van AWS IoT kunnen op de volgende locatie worden geraadpleegd: http://docs.aws.amazon.com/iot/latest/developerguide/iot-limits.html . De belangrijkste blokken worden gevormd door enerzijds de ‘reported’ data en anderzijds de ‘desired’ data. Onder reported kan bijvoorbeeld de huidige waarden van een temperatuursensor worden opgegeven. Bij desired kan dit dan bijvoorbeeld de gewenste temperatuur zijn. Elke bericht dat ontvangen wordt door de broker krijgt een versienummer. Dit nummer, de bijhorende timestamp, de ‘reported’ en ‘desired’ data wordt allemaal (automatisch) in een ‘metadata’ blok bijgehouden. Op basis hiervan kan AWS IoT automatisch een ‘delta’ (verschil) bepalen. De exacte werking wordt op de volgende link uitgelegd: http://docs.aws.amazon.com/iot/latest/developerguide/using-thing-shadows.html .
Figuur 15 Voorbeeld JSON hoe een verzonden bericht er kan uitzien.
3.2.5 Rules Engine Dit is de krachtigste component in heel de AWS IoT architectuur. Alle berichten die worden uitgewisseld kunnen door de zogenaamde ‘Rules Engine’ real-time worden verwerkt. Een regel (rule) wordt opgesteld op basis van een SQL query. Deze query wordt uitgevoerd op de ontvangen data. Aan het resultaat kan men een of meerdere acties koppelen. De meest eenvoudige actie is het repliceren van de data naar andere Things. M.a.w. het bericht wordt verstuurd 28 naar andere Things. De andere acties zijn veel geavanceerder en staan in verband met andere door Amazon aangeboden diensten. Zo is het bijvoorbeeld mogelijk om een
28
Things die luisteren naar een bepaald topic zullen het bericht ontvangen.
Amazon Web Services IoT
Pagina | 29
bericht (of een deel ervan, afhankelijk van de toegepaste query) op te slaan in DynamoDB. Evengoed kan het bericht worden doorgegeven aan een dienst zoals AWS Lambda. AWS Lambda wordt hieronder kort besproken. Voor de andere diensten kan de documentatie als een goed startpunt beschouwd worden: https://aws.amazon.com/documentation/ .
Figuur 16 AWS IoT Rules Engine
3.2.5.1 AWS Lambda AWS Lambda is in combinatie met AWS IoT een zeer krachtige service. Amazon maakt het met deze dienst mogelijk om een Node.JS programma, Java programma of Python script uit te voeren. De benodigde omgeving, zowel hardware als software, wordt volledig automatisch beheerd door Amazon. Met andere woorden, Lambda schaalt het programma volledig autonoom. AWS Lambda kan bijvoorbeeld gebruikt worden om onmiddellijk een analyse uit te voeren op bepaalde berichten (geselecteerd aan de hand van een query). Meer details en voorbeelden zijn terug te vinden in de documentatie: https://aws.amazon.com/documentation/lambda/ .
Amazon Web Services IoT
Pagina | 30
3.2.6 Security and Identify Deze component, zoals de naam al zegt, staat in voor allerlei beveiligingsmechanismes. De andere services doen steeds op dit onderdeel beroep. De component valideert of bepaalde acties al dan niet geoorloofd zijn. Wanneer een regel (rule) bijvoorbeeld DynamoDB aanspreekt zal deze service nakijken of dit al dan niet toegestaan is. Deze dienst behandelt dus ook de end-to-end encryptie zoals eerder beschreven in deze tekst. Deze component maakt gebruik van het hele beveiligingssysteem dat Amazon eveneens gebruikt voor andere diensten. Alle details zijn terug te vinden op: http://docs.aws.amazon.com/iot/latest/developerguide/iot-security-identity.html
Figuur 17 AWS IoT Security and Identify
3.2.7 IoT Applications De laatste component zijn de zogenaamde ‘IoT Applications’. Een IoT applicatie kan indien gewenst rechtstreeks communiceren met AWS IoT. Verder is het mogelijk om de toepassing te laten integreren met de andere AWS services. Amazon biedt zoals eerder besproken verschillende SDK’s aan die geïmplementeerd kunnen worden in eigen ontwikkelde software. Om de cirkel rond te maken kan men de applicatie bijvoorbeeld op een EC2 instance draaien, dit is een virtuele machine binnen de Amazon Web Services.
3.3 Kostenplaatje Om een correcte analyse te maken wat de voordelen van AWS IoT zijn is het van belang enigszins een inzicht te hebben op de kosten. Amazon rekent een kost aan per verzonden bericht, of dat nu vanaf een Thing wordt verstuurd of vanuit AWS IoT zelf, maakt niet uit. Een bericht wordt gezien als een blok van 512 bytes. Wanneer een bericht kleiner is dan 512 bytes zal het alsnog afgerekend worden als één bericht. Berichten die groter zijn dan een halve kilobyte worden afgerond naar een veelvoud van 512 bytes. Bijvoorbeeld, een bericht dat 650 bytes inneemt zal beschouw worden als Amazon Web Services IoT
Pagina | 31
zijnde 1024 bytes en wordt dus gezien als twee berichten. Een bericht kan maximaal 128 KB aan data bevatten. AWS IoT is zoals zowat alle producten van Amazon Web Services tot op een zekere hoogte gratis. Men noemt dit de ‘Free tier’. Bepaalde resources zijn dan gedurende 12 maanden volledig kosteloos. In het geval van AWS IoT worden de eerste 250 000 berichten per maand niet in rekening gebracht. Daarna, of wanneer er niet meer aan de eisen van ‘Free tier’ wordt voldaan, wordt er per miljoen berichten gefactureerd. Amazon werkt met verschillende ‘zones’, verspreid over heel de wereld. In de Europese en Amerikaanse ‘zones’ wordt er een kost van 5 dollar per miljoen berichten in rekening gebracht. De Aziatische zones zijn iets duurder, daar wordt er 8 dollar aangerekend. Bij het kostenplaatje zijn twee belangrijke opmerkingen. De kostprijs van AWS IoT lijkt erg laag, maar kan snel oplopen. Stel dat een Thing om de 100ms een bericht stuurt (dat maximaal 512 bytes inneemt), dan resulteert dit in tien berichten per seconden. Per minuut komt dit neer op 600 berichten, per dag resulteert dit in 864 000 berichten. Per maand (dertig dagen) resulteert dit voor één Thing op ongeveer 26 miljoen berichten. Vaak worden er echtere meerdere Things gebruikt, het is duidelijk dat de kosten snel kunnen oplopen. De tweede opmerking is dat de kosten verbonden aan AWS IoT vaak niet de enigste zijn. De andere gebruikte diensten, zoals bijvoorbeeld DynamoDB, worden eveneens in rekening gebracht. Een complete toepassing bouwen rondom de AWS services kan dus behoorlijk kostelijk worden. Toch moet hier één en ander in perspectief gezet worden, dit wordt besproken in de volgende sectie.
3.4 Analyse cloudoplossing AWS IoT biedt een mooie oplossing aan om snel aan de slag te kunnen met het Internet of Things. Dit kan ik eveneens bevestigen vanuit mijn eigen ervaring tot dusver. Een ontwikkelaar kan zich ten volle concentreren op het doel van de toepassing. De complexe infrastructuur en software wordt volledig geoutsourcet naar Amazon. Hieronder worden een aantal concrete voordelen besproken. In deze tekst wordt enkel de oplossing van Amazon bekeken, maar allicht gaan de zelfde conclusies op voor gelijkaardige producten, zoals die van Microsoft Azure. 3.4.1 Beveiliging Om AWS IoT als ruggengraat te gebruiken wordt een ontwikkelaar in een bepaalde, veilige manier van werken gestuurd. De data die tussen een Thing en de cloud worden uitgewisseld is bijvoorbeeld versleuteld. Volgens een onderzoek van IDC 29, zijn cloud oplossingen in het
Zie literatuurlijst, paper IDC – ‘Assessing the risk: Yes, the Cloud Can Be More Secure Than Your On-Premises Environment’.
29
Amazon Web Services IoT
Pagina | 32
algemeen veiliger dan oplossingen die zelf uitgerold zijn. Amazon besteed veel aandacht aan de veiligheid van zijn producten, daarvoor werkt het onder andere samen met externe partners. Een duidelijk overzicht van welke maatregelen er allemaal van kracht zijn, is terug te vinden op de volgende pagina: https://aws.amazon.com/security/ . Wanneer geopteerd wordt om alles zelf te doen, dus ook de veiligheid, zal hiervoor de nodige kennis en bijgevolg geld voor nodig zijn. 3.4.2 Schaalbaarheid Een van de belangrijkste basisprincipes van zogenaamde cloud computing oplossingen is volgens Wikipedia 30 schaalbaarheid. Dit is niet anders voor AWS IoT. Vele Things kunnen zeer snel data doorsturen dat tot op de koop toe real-time verwerkt kan worden. Dankzij de ‘Rules Engine’ kan er beroep gedaan worden op allerlei AWS services, die eveneens allemaal zeer schaalbaar zijn. Om een gelijkaardig niveau aan schaalbaarheid voor on-premise infrastructuur te bekomen zal enerzijds de nodige kennis en anderzijds de nodige hardware onontbeerlijk zijn. 3.4.3 Snel implementeerbaar AWS IoT voorziet naast de nodige schaalbare infrastructuur de bijhorende software. Wanneer een eigen oplossing ontwikkeld wordt dient, dit allemaal zelf ontwikkeld te worden. De cloud oplossing met Amazon biedt de mogelijkheid om meteen aan de slag te gaan, zonder het opzetten van een complexe infrastructuur en software. 3.4.4 Beschikbaarheid De cloud oplossingen van Amazon streven naar een zo hoog mogelijke beschikbaarheid. Dit doen ze op verschillende manieren. Amazon heeft wereldwijd verschillende datacenters. Al deze rekencentra zijn redundant uitgevoerd. Met andere woorden, als er ergens iets misgaat kan dit in de meeste gevallen zonder enig probleem opgevangen worden. Data wordt op verschillende geografische locaties opgeslagen. Hoe Amazon dit allemaal exact aanpakt zou ter ver afwijken van de essentie van deze tekst. Wanneer een Internet of Things applicatie kritisch is, kan een cloud oplossing zoals AWS IoT een oplossing bieden. Belangrijk is wel dat op het niveau van de Things eveneens redundantie wordt ingebouwd. 3.4.5 Kosten versus voordelen Of de oplossing van Amazon de beste keuze is, hangt volledig af van de eisen die worden gesteld. Een belangrijke factor hierbij zijn de kosten. De uitgaven die gepaard gaan om gebruik te maken van de verschillende Amazon Web Services kunnen snel oplopen. Anderzijds kan hier een serieuze kanttekening naast geplaatst worden. Om de nodige hardware en software te implementeren voor een complete Internet of Things architectuur is veel kennis vereist. Kennis die in vele gevallen niet aanwezig is in een bedrijf, wat resulteert in enorme kosten. In 30
Zie literatuurlijst, Wikipedia artikel – ‘Cloud computing’.
Amazon Web Services IoT
Pagina | 33
vele gevallen zullen de diensten van Amazon wellicht goedkoper uitkomen dan wanneer alles on-premise wordt opgezet. Om een gegronde keuze te maken tussen enerzijds een cloud oplossing en anderzijds een zelf uitgerolde oplossing zal een grondige analyse genoodzaakt zijn. In dit scenario kunnen producten zoals AWS IoT in zekere zin ook een rol spelen. Zo kan de applicatie in eerste instantie opgezet worden met de bijhorende services, om zo te bepalen wat de exacte noden zijn. Eveneens kan hiermee bekeken worden of de toepassing al dan niet realistisch is. AWS IoT kan dus in zekere zin gezien worden als een prototype platform. 3.4.5.1 Het nadeel Het grootste nadeel van AWS IoT verschuilt zich in de eenvoud waarmee alles opgezet kan worden. Vele diensten, zoals DynamoDB, Lambda, evenals de gehele IoT opzet zijn volledig propriëtair. Dit wil zeggen dat, wanneer er gekozen wordt voor AWS IoT, het moeilijk (en kostelijk) is om over te schakelen naar een andere, al dan niet cloud gebaseerde oplossing. Wanneer het punt bereikt is dat een andere oplossing betaalbaarder is dan de services van Amazon is dit een enorm nadeel. Grote wijzigingen aan de hardware (Things, netwerk, …), maar vooral aan de software zullen een noodzaak zijn.
Amazon Web Services IoT
Pagina | 34
4. Conclusies Tijdens het onderzoek dat uitgevoerd werd in functie van deze bachelorproef zijn er een aantal zaken duidelijk naar boven gekomen. Eerst en vooral is het belangrijk om te beseffen dat het Internet of Things iets is dat zich nu aan het ontwikkelen is. Dit wil zeggen dat er nog veel zal en vooral moet veranderen. De beveiliging van vele Internet of Things toepassingen laat nog te wensen over. Dit zal een belangrijke rol spelen bij het verder evolueren van het Internet of Things. Een ander besluit dat kan opgemaakt worden is dat het Internet of Things een complex gegeven is. Om complete oplossingen neer te zetten is er kennis nodig van hardware, vaak zeer specifieke elektronica. Evengoed is de kennis van software en van netwerktechnologieën een cruciale factor. Binnen al deze specifieke domeinen is, zoals eerder aangehaald, beveiliging een zeer belangrijk aspect. Het Internet of Things vereist met andere woorden mensen met een brede IT kennis om tot een goed resultaat te komen. Dat cloud oplossingen reeds een belangrijke rol spelen in de huidige gedigitaliseerde wereld is wellicht voor niemand nog nieuws. Hoe de cloud exact zal evolueren, onder de invloed van het Internet of Things, is nog onduidelijk. Wat echter wel een zekerheid is, is dat deze nieuwe toepassingen een uitgebreide hardware en software infrastructuur vereisen. Volgens verschillende onderzoeken, die reeds aangehaald zijn in deze tekst, gaat het Internet of Things snel groeien. Door de aard van de toepassingen betekent dit dat er nog meer data zal geproduceerd worden dan nu het geval is. Specifieke cloud oplossingen voor het Internet of Things, zoals die van Amazon, zullen hier wellicht een belangrijke rol in spelen. Tot slot zal het Internet of Things zijn invloed hebben op de huidige communicatietechnologieën. Zo worden er intussen nieuwe netwerken uitgerold, denk daarbij bijvoorbeeld aan het LoRaWAN of SIGFOX netwerk. Het is aannemelijk dat het Internet of Things een impact zal hebben op de huidige gebruikte technologieën in het algemeen. Wat er ons juist te wachten staat zal, zoals altijd, de toekomst uitwijzen.
ConclusiesFout! gevonden.
Verwijzingsbron
niet Pagina | 35
Literatuurlijst Boeken Dhanjani, N. (2010). Abusing the Internet of Things. Sebastopol, Oekraïne: O'Reilly Media Inc.
Internetbronnen Amazon.com. (2015, 08 oktober). Announcing AWS IoT, now in beta [Blogpost]. Geraadpleegd van https://aws.amazon.com/about-aws/whats-new/2015/10/announcingaws-iot-now-in-beta/ Amazon.com. (2015, 18 december). AWS IoT – Now Generally Available [Blogpost]. Geraadpleegd van https://aws.amazon.com/blogs/aws/aws-iot-now-generally-available/ Arduino. (2015, 28 juli). Blink. Geraadpleegd van https://www.arduino.cc/en/Tutorial/Blink Beecham Research. (2015, mei). Beecham Research's IoT Threat Map. Geraadpleegd van http://www.beechamresearch.com/news.aspx?id=1089 Briery. (z.j.). Solar Tracker [Foto]. Geraadpleegd van http://www.briery.com/solar/solar_tracker.html Chen, X., Ding, N., Jindal, A., Hu, Y. C, Gupta, M., & Vannithamby, R. (2015, 1 maart). Smartphone Energy Drain in the Wild: Analysis and Implications. Geraadpleegd van https://engineering.purdue.edu/~ychu/publications/TR-ECE-15-03.pdf Cisco Systems Inc.. (z.j.). . The Internet of Things: How the Next Evolution of the Internet Is Changing Everything. Geraadpleegd van http://www.cisco.com/c/dam/en_us/about/ac79/docs/innov/IoT_IBSG_0411FINAL.pdf CNET. (2014, 29 december). The '12 Monkeys' TV remake will sync with your light bulbs. Geraadpleegd van http://www.cnet.com/news/the-12-monkeys-tv-remake-will-sync-withyour-light-bulbs/ Cooking Hacks. (z.j.). LoRaWAN Technology for Arduino, Waspmote and Raspberry Pi [Foto]. Geraadpleegd van https://www.cooking-hacks.com/documentation/tutorials/lorawan-forarduino-raspberry-pi-waspmote-868-900-915-433-mhz Dell Inc.. (2015, 20 oktober). Dell Disrupts Internet of Things Marketplace with Dell Edge Gateway 5000 Series and New Analytics Capabilities, Expanding End-to-End Portfolio of IoT Assets. Geraadpleegd van https://www.dell.com/learn/us/en/vn/secure/2015-10-20-delledge-gateway-5000-internet-of-things
Literatuurlijst
Pagina | 36
Dell Inc.. (2015, 20 oktober). Dell Disrupts Internet of Things Marketplace with Dell Edge Gateway 5000 Series and New Analytics Capabilities, Expanding End-to-End Portfolio of IoT Assets. Geraadpleegd van https://www.dell.com/learn/us/en/vn/secure/2015-10-20-delledge-gateway-5000-internet-of-things Emerce. (2015, 24 augustus). Amsterdam heeft netwerk voor Internet of Things. Geraadpleegd van http://www.emerce.nl/nieuws/amsterdam-heeft-netwerk-internet-things Forbes Inc.. (2015, 6 maart). How Hackers Could Use A Nest Thermostat As An Entry Point Into Your Home. Geraadpleegd van http://www.forbes.com/sites/aarontilley/2015/03/06/nest-thermostat-hack-homenetwork/#63aad5e65cb0 Gartner Inc.. (2013, 12 december). Gartner Says the Internet of Things Installed Base Will Grow to 26 Billion Units By 2020. Geraadpleegd van http://www.gartner.com/newsroom/id/2636073 Gartner Inc.. (2015, 10 november). Gartner Says 6.4 Billion Connected "Things" Will Be in Use in 2016, Up 30 Percent From 2015. Geraadpleegd van http://gartner.com/newsroom/id/3165317 Gartner Inc.. (2015, 23 september). Gartner Says Worldwide Information Security Spending Will Grow Almost 4.7 Percent to Reach $75.4 Billion in 2015. Geraadpleegd van http://www.gartner.com/newsroom/id/3135617 Gartner Inc.. (2016, 14 januari). Gartner Says By 2020, More Than Half of Major New Business Processes and Systems Will Incorporate Some Element of the Internet of Things. Geraadpleegd van http://gartner.com/newsroom/id/3185623 Hewlett packard Inc.. (2015). Internet of things research study. Geraadpleegd van http://www8.hp.com/h20195/V2/GetPDF.aspx/4AA5-4759ENW.pdf IDC. (2015, juli). Assessing the Risk: Yes, the Cloud Can Be More Secure Than Your OnPremises Environment. Geraadpleegd van https://aws.amazon.com/security/safer-in-thecloud-download-report/ In-Jet APS. (z.j.). Internet of Things reference architecture [Foto]. Geraadpleegd van http://www.in-jet.dk/en/print.php?type=A&item_id=24 InformationWeek. (2014, 11 augustus). Internet Of Things: Batteries Not Required [Foto]. Geraadpleegd van http://www.informationweek.com/big-data/hardwarearchitectures/internet-of-things-batteries-not-required-/d/d-id/1297886
Literatuurlijst
Pagina | 37
Insights - into the Conscious Consumer. (z.j.). Home automation nest 2 [Foto]. Geraadpleegd van http://d1uofed9uan7pg.cloudfront.net/wp-content/uploads/2014/01/homeautomation-nest2.jpg Intel Corp.. (2014). Intel IoT Gateway. Geraadpleegd van http://www.intel.com/content/dam/www/public/us/en/documents/productbriefs/gateway-solutions-iot-brief.pdf Link Labs. (2016, 8 januari). Low Power, Wide Area Networks. Geraadpleegd van http://cdn2.hubspot.net/hubfs/427771/LPWAN-BrochureInteractive.pdf?__hssc=81985929.12.1458391301696&__hstc=81985929.ce95e8465bf4afdf 4e21d73d1afc81f7.1458391301696.1458391301696.1458391301696.1&__hsfp=354047565 2&hsCtaTracking=046055b9-7e1c-47d1-a077-dbf7f6b3ba00%7Cc45caeb9-8be0-436c-a0ab419e760eb414 Liu, Q., & Sun, X. (2012, 04 november). Research of Web Real-Time Communication Based on Web Socket. Geraadpleegd van http://dx.doi.org/10.4236/ijcns.2012.512083 LoRa Alliance. (z.j.). What is LoRa. Geraadpleegd van https://lora-alliance.org/What-IsLoRa/Technology Owasp. (2014, 17 april). Testing for Vulnerable Remember Password and Pwd Reset (OWASP-AT-006). Geraadpleegd van https://www.owasp.org/index.php/Testing_for_Vulnerable_Remember_Password_and_Pw d_Reset_(OWASP-AT-006 Pixabay. (z.j.). netwerk iot internet van de dingen [Foto]. Geraadpleegd van https://pixabay.com/nl/netwerk-iot-internet-van-de-dingen-782707/ Proximus. (z.j.). Internet of Things of IoT. Geraadpleegd van http://proximus.be/nl/id_cl_iot/grote-bedrijven-en-overheden/oplossingen/internet-ennetwerken/internet-of-things.html?ac_chn=google&ac_src=googleadwords&ac_aid=generic&ac_caid=Mecor-iot-nl&ac_cid=lora&ac_cp=Mecor-iot Raspberry Pi Foundation. (2012, 07 mei). RASPBERRY PI AND ARDUINO. Geraadpleegd van https://www.raspberrypi.org/blog/raspberry-pi-and-arduino/ Texas Instruments Inc.. (2015). Building a gateway to the Internet of Things. Geraadpleegd van http://www.ti.com/lit/wp/spmy013/spmy013.pdf The Things Network. (z.j.). The Things Uno. Geraadpleegd van http://thingsnetworkuno.bigcartel.com/product/the-things-uno TinySine. (z.j.). WiFi Shield For Arduino (802.11 b/g/n) [Foto]. Geraadpleegd van http://www.tinyosshop.com/index.php?route=product/product&product_id=163 Literatuurlijst
Pagina | 38
Toronto Sun. (z.j.). Internet of Things market to triple to US$1.7T by 2020: IDC. Geraadpleegd van http://www.torontosun.com/2015/06/02/internet-of-things-market-to-triple-to-us17tby-2020-idc Tweakers. (2015, 25 december). The Things Network-oprichters vertellen over hun project en hun IoT-fascinatie. Geraadpleegd van http://tweakers.net/geek/107028/the-thingsnetwork-oprichters-vertellen-over-hun-project-en-hun-iot-fascinatie.html Tweakers. (2015, 19 augustus). Ondernemer bouwt LoRa-netwerk voor internet-of-things in Amsterdam. Geraadpleegd van http://tweakers.net/nieuws/104851/ondernemer-bouwtlora-netwerk-voor-internet-of-things-in-amsterdam.html Tweakers. (2016, 13 januari). Wireless Things gaat met iot-netwerk in België concurreren met Proximus. Geraadpleegd van http://tweakers.net/nieuws/107309/wireless-things-gaatmet-iot-netwerk-in-belgie-concurreren-met-proximus.html Tweakers. (2016, 19 februari). Tech-industrie wil iot-standaarden samen laten werken. Geraadpleegd van http://tweakers.net/nieuws/108487/tech-industrie-wil-iot-standaardensamen-laten-werken.html Wikipedia Foundation. (2014, 09 maart). Personal area network. Geraadpleegd van https://nl.wikipedia.org/wiki/Personal_area_network Wikipedia Foundation. (2016, 23 februari). Internet of Things. Geraadpleegd van https://en.wikipedia.org/wiki/Internet_of_Things Wikipedia Foundation. (2016, 09 januari). IEEE 802.11ah. Geraadpleegd van https://en.wikipedia.org/wiki/IEEE_802.11ah Wikipedia Foundation. (2016, 04 maart). Actuator. Geraadpleegd van https://en.wikipedia.org/wiki/Actuator Wikipedia Foundation. (2016, 16 maart). Internetprotocol. Geraadpleegd van https://nl.wikipedia.org/wiki/Internetprotocol Wikipedia Foundation. (2016, 22 maart). Cloud computing. Geraadpleegd van https://nl.wikipedia.org/wiki/Cloud_computing ZDNET. (z.j.). Proximus start met Lora-netwerk om alles te verbinden. Geraadpleegd van http://zdnet.be/nieuws/173043/proximus-opent-internet-of-things/
Literatuurlijst
Pagina | 39