Onderzoek naar draadloze communicatie protocollen van
Pim van Dijk (0832330) Edwin Schriek (0831344)
CMI-Opleiding Technische Informatica – Hogeschool Rotterdam
22 april 2013
Eerste docent Tweede docent
Dhr. M. M. M. Abd el Ghany Dhr. G.W.M. van Kruining
Samenvatting Trin-IT heeft een systeem ontwikkeld waarmee een gebruiker via zijn of haar mobiel toegang kan krijgen tot bepaalde producten. Hiervoor moet een gebruiker een QR-code scannen waarbij vervolgens met een server zal worden gecommuniceerd over het mobiele netwerk om toegang te krijgen tot het product. Het probleem hiermee is dat het langzaam en onveilig is, daarom wilt Trin-IT gebruik gaan maken van een lokaal systeem dat op korte afstand met de gebruiker kan communiceren. Dit systeem moet tevens voor meerdere toepassingen inzetbaar zijn, denk bijvoorbeeld aan een snack uit een muur halen bij de Febo of een koffer ophalen op het station. In dit verslag is onderzoek gedaan naar de verschillende draadloze protocollen waarmee een lokaal systeem met een gebruiker kan communiceren op korte afstand. Dit onderzoek is gedaan door middel van het vergelijken van verschillende protocolen op basis van technische en financiele haalbaarheid en de toepasbaarheid. Tevens is er een enquete gehouden of mensen bereid zijn om via hun mobiel te betalen en welke draadloze protocolen hun mobiele telefoon ondersteund. Onze bevinding is dat Bluetooth op alle fronten (technisch en financieel haalbaar en toepasbaarheid) het sterkst uit het onderzoekt komt. Deze conclusie betekent dat voor dit systeem gebruik zal worden gemaakt van Bluetooth.
ii
Inhoudsopgave Samenvatting
ii
Inleiding
2
Communicatie
3
De app . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
De server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
Beveiliging en communicatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
Draadloze Protocollen
8
RFID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
NFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
Bluetooth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
WiFi met GPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
Beveiliging met unieke telefoongegevens . . . . . . . . . . . . . . . . . . . . . . . . .
11
Toepasbaarheid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
Alles op een rijtje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
Hardware
16
Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
Conclusie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
Conclusies en aanbevelingen
20
Het beste protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
20
De beste hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
21
Bronnen
22
iii
Evaluatie
23
Pim van Dijk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A Plan van Aanpak
23 24
Doel van dit project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
Wat gaan we onderzoeken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
24
Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
25
1
Inleiding Trin-iT heeft een systeem ontwikkeld waarbij met behulp van een telefoon draadloos toegang kan worden verschaft aan de gebruiker. Hiervoor moet nu nog een QR-code worden gescand met de camera en gaat alle communicatie over het mobiele datanetwerk. Een app maakt verbinding met een server en de server stuurt een bericht naar het systeem waar de gebruiker toegang tot wil krijgen. Trin-iT wil een snellere en veiligere manier om toegang tot het systeem te krijgen. Hiervoor moet het lokale systeem kunnen communiceren met de mobiele app. Naar deze communicatie wordt een onderzoek gedaan. Tijdens het onderzoek wordt gekeken naar methodes om een veilig, snel en stabiel systeem te kunnen ontwikkelen. De communicatie moet kunnen worden opgezet tussen een telefoon, een embedded system en een server. Door een draadloze verbinding op te zetten moet een gebruiker worden ge¨ıdentificeerd en moet de gebruiker toegang krijgen tot een aan het systeem gekoppelde product. De producten kunnen erg verschillend zijn. Het systeem moet universeel te gebruiken zijn. Zo kan worden gekozen om het te gebruiken om een kroketje uit de muur te halen, maar ook om een koffer ergens op te slaan. Hierdoor moet het systeem veilig kunnen worden ingezet, zonder dat er personen toegang krijgen tot spullen die niet aan hen toebehoren. Door een onderzoeksverslag te schrijven worden veel aspecten, welke met het systeem te maken hebben, belicht en wordt beschreven wat de beste toe te passen methode is. Niet alleen wordt gekeken naar het technische aspect, maar ook naar het financi¨ele aspect, als ook naar de toepasbaarheid. De beveiliging moet op een niveau zijn dat identiteiten niet kunnen worden gebruikt om toegang te krijgen en het systeem moet niet via het internet te benaderen zijn door hackers waarbij zij kunnen inbreken op het systeem. Het doel van het project is het doen van onderzoek naar draadloze communicatie protocollen. De protocollen worden met elkaar vergeleken op basis van toepasbaarheid, beveiliging, financi¨ele en technische haalbaarheid en in de conclusie wordt gekozen voor het beste protocol.
2
Communicatie De communicatie zal worden opgezet tussen de gebruiker via een app, een server met een database erachter en een embedded system die de benodigde hardware bestuurd (en tevens communiceert via een draadloos protocol zoals eerder behandeld). Tussen elk van deze onderdelen zal ook de nodige communicatie verlopen. Elk van deze onderdelen zullen in dit hoofdstuk dieper worden bekeken. Als voorbeeld in dit hoofdstuk zullen wij de Febo als voorbeeld nemen, waar het embedded system de muur waar de snacks uit komen bestuurd. Om een duidelijk beeld te geven over hoe de communicatie zal verlopen, zie de volgende schets.
Figuur 1: Communicatie
De app Een onderdeel van de communicatie die voor de gebruiker uitendelijk heel belangrijk zal zijn is de app. 3
Er zijn twee manieren waarop de gebruiker uitendelijk met zijn telefoon via de app zal kunnen betalen. 1. De gebruiker krijgt een lijst van de mogelijke producten (kroket, frikanel, etc.) die aanwezig zijn in de snack-muur en kan vervolgens een product selecteren waarbij de server en het embedded system het verzoek verder afhandelen (hoe dit werkt zal dieper worden ingegaan). De gebruiker krijgt dan een soort van rekening in zijn beeld waarin het nummer van het vakje staat wat open zal gaan. Vervolgens zal dan een vakje opengaan bijbehorend bij het geselecteerde product. 2. De gebruiker plaatst zijn mobiel bij een NFC chip van een product waarbij het embedded system vervolgens zal willen gaan communiceren met de app van de gebruiker. Als de gebruiker hiermee instemt zal de transactie verder worden afgehandeld door de server en het embedded system. Het is al snel duidelijk dat de tweede manier een stuk lastiger te implementeren is dan de eerste manier. Een voordeel van manier twee over manier e` e` n is wel dat als er nieuwe producten bij komen zal de app van manier e` e` n moeten worden ge-update. De app van manier twee krijgt het product mee via de communicatie wanneer de transactie begint en dan is het dus niet nodig om de app te updaten. Qua gebruikers vriendelijkheid zal de app van manier e` e` n iets makkelijker zijn dan die van twee, omdat het maar een of twee handelingen zijn om uiteindelijk je product te ”kopen”. Om de app zo simpel mogelijk te maken is het hoofdscherm een lijst met mogelijke producten. Zodra de gebruiker op een product drukt zal hij of zij kunnen uit verschillende betaalmethoden. Op de verschillende betaalmethoden gaan wij niet verder op in, er is bewust gekozen om voor deze app een neppe valuta in te brengen. Mocht het uiteindelijk echt gebruikt gaan worden zal er moeten worden gekeken naar verschillende betaal methodes. Als er dan een betaal methode is geselecteerd kan er een knop ”betalen”worden ingedrukt. Wanneer deze wordt ingedrukt zal het transactie process beginnen. Zie volgend plaatje voor een illustratie.
De server De server zal via een internet protocol werken met daarachter een MySQL database die luistert voor inkomende verzoeken van de app of het embedded system. Voor de server zal TCP (Transmission Control Protocol) worden gebruikt, omdat tijdens een transactie de overdracht zeker en compleet moet zijn en TCP gegarandeerd dit. UDP (User Datagram Protocol) gegarandeerd dit echter niet, maar is in tegendeel tot TCP een stuk sneller. Deze snelheid is voor ons niet van belang, omdat dit alleen nodig is als je enorme hoeveelheden data wilt verzenden en je een verstuurd pakketje mag missen. Nog een voordeel van TCP is dat het connectie geori¨enteerd is, wat wil zeggen dat er eerst een verbinding gelegd moet worden tussen twee sockets (apparaten). Als deze connectie is gelegd kan er pas daadwerkelijk data worden verzonden. Omdat er persoonlijke informatie zal worden 4
Figuur 2: Bestel en betaal process via de app
verzonden is dit dus een goed punt; als de TCP server een verzoek tot verbinden krijgt die niet bekent is kan hij deze weigeren. UDP is een verbindingsloos protocol waarbij er geen connectie hoeft worden gelegd, dat wil zeggen dat iedereen data zou kunnen versturen naar de server, wat het aantrekkelijker maakt voor hackers. Je kan de TCP server dus alleen connectie verzoeken van het embedded system laten accepteren. Om data rond te sturen gebruiken wij een zelf gedefineerd pakketje. Zie volgende afbeelding voor een illustratie.
Figuur 3: Pakket
Zoals je ziet bestaat het pakket uit 4 punten. • Header; een simpele header om aan te geven dat het pakketje bij een bedrijf of systeem hoort. (16 bits) • Timestamp; de tijd in millieseconden sinds 1 Januari 1970 00:00:00 UTC. Hiervoor gebruiken we een long (64 bits). • Unieke telefoon gegevens; denk aan IMEI of dergelijke gegevens. Aantal bits nodig om de maximale waarde op te slaan is 54, dus gebruiken we een long hiervoor (64 bits). 5
• Data; de uiteindelijke data. (variabel aantal bits).
Beveiliging en communicatie Voor het beveiligen van de verbindingen zal TLS (Transport Security Layer) worden gebruikt. De keuze voor TLS ligt aan een aantal factoren. 1. TLS loopt boven transport protocollen (TCP/IP) en applicatieprotocollen zoals HTTP en IMAP. 2. Wanneer er gecommuniceerd wordt tussen server en gebruiker zorgt TLS ervoor dat de data niet kan worden afgeluisterd en worden vervalst (integriteit). 3. TLS zorgt voor authenticatie; het kan de identiteit van een andere applicatie waarmee deze communiceert verifi¨eren. Het implementeren van TLS is technisch goed haalbaar. Java en C# om als voorbeeld te nemen leveren allebei standaard API’s om een TLS beveiligde verbinding te leggen. Het genereren voor certificaten kan ook via verschillende tools. Omdat we een driehoek van communicatie kunnen we dit ook gebruiken om de veiligheid te verbeteren. We kunnen, als een transactie wordt gestart door een gebruiker, meerdere hand-shakes uitvoeren. Zoals eerder uitgelegd is er een veld genaamd “timestamp” in ons communicatie pakketje, deze timestamp bevat de tijd in milliseconden sinds 1 januari 1970. Dit kunnen wij dus ook goed gebruiken als middel om te controleren of een transactie verzoek geldig is. Als de gebruiker een transactie verzoekt indient zal een pakketje worden gemaakt met bijbehorende waardes en dit pakketje zal dan naar het embedded system en naar de server worden gestuurd. De server zal dan controleren of het verzoek geldig is aan de hand van eisen die verschillend kunnen zijn per bedrijf, denk bij de Febo aan of een kroket wel op dit moment aanwezig is. Deze eisen kunnen in de database staan. Wanneer dit voltooid en goedgekeurd is zal het pakketje tijdelijk worden weggezet op een lijst of op een queue afhankelijk aan het type bedrijf. De keuze hier tussen ligt er aan of dat je meerdere transacties tegelijk wilt uitvoeren of dat er maar een transactie per keer mogelijk is, denk aan een systeem waarbij je de eerst binnengekomen verzoek ook als eerst wilt afhandelen. Dan kan er een queue worden gekozen. Tevens wordt het pakketje naar het embedded system gestuurd. Het embedded system zal hier zelf niks mee doen behalve het ontvangen pakketje doorsturen naar de server. Als het goed is heeft de server dan nog het pakketje op de lijst of queue staan en zal de server het pakketje uit de lijst of queue halen door een zoek actie op basis van meegeleverde waardes (timestamp en unieke telefoon gegevens). Als de twee pakketjes identiek zijn is de transactie goedgekeurd en zal de server een bericht sturen naar het embedded systeem. Dit bericht kan specifieke instructies bevatten voor het embedded system, zoals doe luikje X open of haal koffer Y op. Wanneer het embedded system dit heeft afgerond zal via de openstaande connectie met het draadloos communicatie protocol een soort van factuur worden verzonden, neem als voorbeeld het plaatje van de mobiele applicatie. Wat als er bij het embedded system of de server er een fout op treed? Indien er een fout op treed bij het embeded system zal deze een bericht proberen te sturen naar de bijbehorende klant dat de transactie mislukt is versturen. Als dit bij de server gebeurd zal de server een bericht proberen 6
te sturen naar het embedded systeem, die weer het eerder genoemde bericht naar de bijbehorende klant zal proberen te sturen. Fouten dat er niks is binnengekomen of dat er iets verloren is gegaan zou niet mogen gebeuren door het gebruik van TCP. Zoals de werking hiervoor is uitgelegd is de communicatie zo hacker ‘proef’ mogelijk. • Communicatie is beschermd tegen een man in the middle aanval door het gebruik van TLS. • Onwillige connecties naar de server kunnen worden geweigerd. • Stel dat er toch een vreemd pakketje binnenkomt bij de server of het embedded system kan deze worden geweigerd omdat deze niet voldoet aan ons model. Mogelijke exploits of hacks in de gebruikte methodieken kunnen wij geen rekening mee houden.
7
Draadloze Protocollen In dit hoofdstuk worden de verschillende protocollen besproken. Per protocol wordt eerst uitgelegd wat de kenmerken zijn. Vervolgens worden verschillende aspecten belicht waar verder wordt in gegaan op beveiliging, technische haalbaar, financi¨ele haalbaar en toepasbaarheid. Aan het eind van dit hoofdstuk worden alle voordelen en nadelen van de besproken protocollen op een rijtje gezet.
RFID RFID is een afkorting voor ”Radio Frequency Identification”[1]. Dit houdt kortweg in dat in een een nabije omgeving continu wordt gezocht op objecten welke zijn te indentificeren aan de hand van een aanwezige chip op het object. De afstand tussen chip en lezer kan maximaal 10 meter zijn. Hierdoor is in e´ e´ n keer een groot aantal objecten waar te nemen. Zodra een RFID-chip wordt gelezen wordt direct de gehele chip uitgelezen, waardoor zeer snelle communicatie mogelijk is. RFID heeft veel voordelen, echter zijn deze voordelen niet te gebruiken in de omgeving van het systeem voor authentificatie van een gebruiker. Niet Een voorbeeld hiervan is het uitlezen van de chips in een straal van ongeveer 10 meter om de lezer. Dit moet niet mogelijk zijn, omdat de chips hierdoor simpel zijn te kopieren. Dit is een ernstig probleem in de beveiliging, want op het moment dat iemand jouw chip uitleest kan de gene die jouw chip heeft uigelezen gemakkelijk zijn eigen gegevens op de chip veranderen in de gegevens van jouw chip. Naast een groot nadeel is dit ook een voordeel. Doordat alles direct wordt uitgelezen komt er een zeer snelle communicatie tot stand. Er hoeft niet te worden gewacht tot een gebruiker zelf kiest voor het delen van zijn gegevens. Dit voordeel weegt niet op tegen het beveiligings probleem. Niemand wilt dat iemand zijn gegevens kan stelen en kan gebruiken om zich voor de doen als de gebruiker. Dit maakt RFID niet veilig en zelfs onbruikbaar voor het doel wat voor ogen is. Met RFID is het erg gemakkelijk om identiteiten te stelen en een hacker kan zich hierdoor voordoen als iemand anders. RFID heeft geen mogelijkheid tot peer-to-peer en dus is er geen handshake mogelijk. Hierdoor kan niet worden nagegaan of een gebruiker wel de eigenaar is van de gebruikte indentiteit. Als RFID gebruikt zou worden is het alleen mogelijk om net als nu het geval is met authentificatie via het mobiele netwerk. Het is wel mogelijk om een acccount aan een telefoon te koppelen. Hierbij worden alleen telefoons ondersteund welke bij het systeem zijn aangemeld. Dit is een beveiliging welke zeer veilig werkt op het moment dat de gebruiker wordt gekoppeld aan een unieke telefoon code, denk hierbij aan een IMEI-nummer1 code. Deze methode wordt uitgebreider beschreven in de paragraaf ”Beveiliging met unieke telefoon gegevens”. 1 Een
unieke code welke voor elke telefoon anders is.
8
RFID is niet eenvoudig toe te passen. Er zijn geen of weinig systemen welke RFID ondersteunen en RFID technologie is erg duur. Hierbij komt kijken dat gebruikers ook geen RFID ondersteunen en dus zal het systeem zeker niet rendabel of winstgevend zijn. RFID is ongeschikt als protocol voor draadloze betalingen en authentificatie.
NFC NFC[2] ( Near Field Communication) is een vorm van RFID maar is te gebruiken op een afstand van ongeveer 5 centimeter. NFC gebruikt net als RFID een chip, lezer. NFC heeft als kenmerk dat het kan worden gebruikt in drie verschillende standen. Een passieve modus waarin een chip alleen kan worden uitgelezen zoals ook bij RFID het geval is, een actieve modus waarbij de chip als lezer wordt gebruikt en een modus waarbij peer-to-peer mogelijk is. Hierdoor kan onderling worden gecommuniceerd tussen verschillende NFC-apparaten. Beveiliging is vij NFC een belangrijk probleem. Ook hier kan de chip worden uitgelezen en de gegevens kunnen vervolgens worden gebruikt op een andere chip. Hierdoor kan iemand zichzelf voordoen als iemand anders. Hierbij moet de chip wel eerst worden uitgelezen. Dit kan alleen met een afstand van ongeveer 5 centimeter. Personen moeten dus eerst een lezer bijna tegen de chip houden voordat deze kan worden uitgelezen. Daarnaast duurt vaak een seconde voordat de chip in zijn geheel is uitgelezen. NFC tags zijn niet beveiligd tegen het uitlezen. Het principe van NFC is dat een eenvoudige communicatie kan opzetten tussen twee apparaten. Er zou dus software-matig een beveiliging moeten komen. Bij de meeste telefoons is het mogelijk om NFC uit te zetten. Hiermee kan na een authentificatie de NFC module worden uitgeschakeld waardoor de gegevens niet meer zijn uit te lezen. Hierna is het echter noodzakelijk om handmatig de module weer aan te zetten. Ook is het belangrijk om de beveiliging van de lezer goed te bestuderen. Deze lezer moet niet te herprogrammeren zijn door kwaadwillenden. Hiervoor heeft de kwaadwillende wel fysiek toegang nodig tot de lezer. De lezer moet dus goed worden beveiligd door een goede kast of andere fysieke beveiliging. NFC is een veilige methode, om een chip uit te lezen is het nodig om met een lezer binnen 3 centimeter in de buurt van je telefoon te komen, waarna het ongeveer een halve minuut duurt voordat de chip is uitgelezen. Daarnaast is het mogelijk om met NFC peer-to-peer systemen op te zetten. Hierdoor is het mogelijk om een veilige handshake te maken waarbij de gebruiker een pincode of ander wachtwoord dient in te vullen. Op het moment dat de gegevens worden gestolen kan er tussen het systeem en de telefoon nog worden gekeken of er al eerder met deze telefoon is aangemeld. Het is mogelijk om hierbij de gebruiker eerst een account aan te laten maken waarbij verschillende telefoons worden gekoppeld. Als een nieuwe telefoon wordt gevonden bij een gebruiker werkt de authentificatie niet. Het idee is hetzelfde als de bij RFID besproken methode met unieke telefoongegevens. Verdere informatie over deze beveiliging vindt u in de paragraaf ”Beveiliging met unieke telefoon gegevens”. Wanneer wordt gekozen voor NFC is het niet nodig om een applicatie te maken, maar zonder applicatie is het niet mogelijk om een peer-to-peer systeem op te zetten. Ook is het niet mogelijk om een betaling te doen zonder applicatie. Voor de veiligheid en om gebruikers meer functies te geven, zoals meerdere betaalopties, bestelopties, het invoeren van een pincode of wachtwoord en het delen van informatie op social media.
9
NFC is gemakkelijk toe te passen en is gemakkelijk te onderhouden. Voor Arduino-bordjes zijn deze te koop voor ongeveer 30 euro en gemakkelijk te implementeren. Voor een raspberry pi is een NFC module wel duurder. Hierbij ligt de prijs op ongeveer 90 euro. Dit is duur vergeleken met de andere protocollen.
Bluetooth Een ouder protocol is Bluetooth[6]. Bluetooth bestaat al jaren voor telefoons en is in alle smartphones ingebouwd. Bluetooth bestaat al ongeveer twintig jaar maar is nog vol in ontwikkeling. In 2010 is de nieuwste versie van Bluetooth uitgekomen. Bluetooth kan worden gebruikt op afstanden van ongeveer 10 meter maar er moet wel toestemming worden gegeven worden per apparaat wat wordt gekoppeld. Net zoals NFC beschikt Bluetooth ook over een peer-to-peer mogelijkheid. Naast het kiezen van welk apparaat er moet worden gekoppeld, kan nog worden gekozen welke gegevens er gedeeld worden. Dit is erg veilig en de gebruiker kan altijd een apparaat verwijderen als de gebruiker dat nodig vindt. In dit onderzoek wordt alleen Bluetooth 4.0. Dit is de nieuwste versie van Bluetooth wat in alle nieuwe telefoons is ingebouwd. Het voordeel van Bluetooth 4.0 is dat dit erg energiezuinig is. Ook is er de mogelijkheid om een verbinding op te zetten, deze eerst te beveiligen en vervolgens alle data te communiceren. Hierdoor is er een erg goede beveiliging en is de verbinding niet af te luisteren. Ook is er in de nieuwste Bluetooth versie standaard een AES beveiliging aanwezig. Bluetooth is eenvoudig in en uit te schakelen. Door een simpele optie in het instellingen menu kan worden gekozen om de bluetooth module in of uit te schakelen. Dit is erg veilig, omdat de gebruiker zelf kan aangeven of zijn apparaat op dat moment gevonden kan worden. Dit is ook te doen vanuit een applicatie. De applicatie kan de bluetooth module aan en uit zetten. Wanneer de applicatie zelf kiest wanneer bluetooth aan en wanneer uit moet staan is er maar korte tijd een verbinding nodig. Een andere veilige functie in Bluetooth is de optie om het apparaat zichbaar of onzichtbaar te maken voor anderen. Bluetooth kan wel aanstaan en werken, maar niet worden gevonden door anderen op het moment dat is aangegeven om het apparaat onzichtbaar te maken. Door deze functie kan Bluetooth aan blijven staan zonder dat het apparaat gevonden wordt en kan worden uitgelezen. In Android toestellen is het mogelijk om Bluetooth aan te zetten waarna automatisch, na een vooraf ingestelde tijd, de telefoon onzichtbaar wordt. Door deze eigenschappen van Bluetooth is Bluetooth erg veilig en kan niet worden afgeluisterd. Voor een toepassing in een publieke ruimte is dit een goed protocol. Ook bij Bluetooth is het door middel van de methode met unieke telefoon gegevens mogelijk om gebruikers veilige authentificatie aan te bieden. Bij Bluetooth is het van belang om een applicatie te ontwikkelen. De applicatie kan zelf kiezen welke vorm van Bluetooth wordt gebruikt en kan een peer-to-peer netwerk opzetten met het systeem zodat onderling kan worden gecommuniceerd. Een applicatie kan de beveiliging verbeteren doordat er functies kunnen worden aangeroepen om unieke gegevens over de telefoon op te vragen, gebruikers kunnen met een pincode hun eigen account beveiligen en uit verschillende betaalopties kiezen. Bluetooth is gemakkelijk toe te passen bij zowel de raspberry pi als de arduino. Omdat de raspberry pi usb-poorten heeft kan er eenvoudig een bluetooth module aan worden gehangen, welke
10
vervolgens al de communicatie verricht. De kosten van een bluetooth module zijn nog geen 10 euro.
WiFi met GPS Het laatste protocol is een methode waarbij WiFi[3] en GPS(Global positioning system)[7] worden gecombineerd. Het idee hierachter is het laten draaien van een applicatie op een telefoon, waarbij de telefoon de locatie bepaalt aan de hand van GPS en/of WiFi. De applicatie gaat vervolgens na bij welke locatie de gebruiker zich bevindt en opent hierna een scherm welke bij de locatie hoort waar de gebruiker is. Met van WiFi is net als met NFC en Bluetooth een peer-to-peer netwerk mogelijk. Door een volledig ge¨encrypte wifi-data-verbinding te maken zijn de gegevens niet te ontcijferen door kwaadwillenden. Met behulp van WiFi kan een snelle data-verbinding worden opgezet. WiFi kan worden gebruikt met een afstand van ongeveer 30 meter. Dit betekent dat vanaf een grote afstand het systeem kan worden aangesproken. Ook is het mogelijk om de gebruikers gratis wifi aan te bieden wanneer zij gebruik maken van het systeem. Wanneer gebruikers verbinding maken het netwerk met behulp van hetzelfde systeem als waar gebruikers op moeten worden herkend om toegang te krijgen tot een kroket of hun koffer is het wel erg toegankelijk voor hackers om het systeem te hacken. Dit kunnen zijn simpel doen door lokaal het IP adress op te slaan als zijn met het systeem zijn verbonden. Vervolgens kunnen zij op hun eigen systeem thuis alle mogelijke gaten zoeken in het systeem en zo vanaf een onbekende plek het systeem binnen dringen als zij erin slagen om een succesvolle hack uit te voeren. Hierdoor loopt het systeem een grote kans om doelwit te worden van een hacker. Het is ook mogelijk om het systeem niet met het internet te verbinden. Dit heeft echter als probleem dat een gebruiker welke met het systeem is verbonden, ook niet met zijn of haar telefoon op internet kan. De telefoon probeert met WiFi verbinding te maken met het internet, maar dit gaat niet. Hierdoor kan er ook geen driehoeks-communicatie worden opgezet waar in het hoofdstuk ”Communicatie¨op wordt in gegaan. Doordat een gebruiker niet meer op internet kan komen is het niet gebruiksvriendelijk en zullen zij dit ook niet gebruiken. Hierdoor is het niet toegankelijk om het systeem te gebruiken in een openbare plaats. Het systeem kan wel goed werken wanneer het wel op internet wordt aangesloten. Maar dit moet alleen worden toegepast wanneer er met zekerheid kan worden gezegd dat er een veilig systeem kan worden ontwikkeld wat niet is binnen te dringen door hackers. Wanneer dit niet met zekerheid is te zeggen moet dit systeem niet worden gebruikt en moet worden gekozen voor een andere methode. WiFi is een standaard als het gaat om draadloze netwerken. Bijna alle draadloze apparaten hebben Wifi. Maar de apparaten waar mee gewerkt wordt in het systeem zijn niet draadloos en moet er dus nog een speciale module voor worden aangeschaft.
Beveiliging met unieke telefoongegevens Om een veilige authentificatie te krijgen, hebben wij een systeem bedacht wat zeer lastig te hacken is. Bij elke transactie wordt een unieke sleutel van de telefoon doorgegeven. Denk hierbij aan het IMEI-nummer, het telefoonnummer of het type telefoon. De gebruiker dient voordat er gebruik van het systeem kan worden gemaakt de telefoon te koppelen met het account. Dit zou mogelijk
11
moeten zijn met een website. Op de website moet de gebruiker kunnen inloggen en zijn account koppelen met een telefoon. Het moet mogelijk zijn om meerdere apparaten te koppelen, omdat gebruikers meer dan twee telefoons kunnen hebben. Bij ieder bericht wat de telefoon stuurt wordt de unieke sleutel gegenereerd en meegestuurd naar de ontvanger. De ontvanger kijkt na of de sleutel is gekoppeld aan het account, indien dit niet het geval is wordt de authentificatie afgebroken. Als de sleutel wel voorkomt gaat de authentificatie verder waar deze was. Op deze manier kan er alleen toegang worden verschaft door een telefoon welke eerst handmatig is gekoppeld aan het account welke gebruikt wordt. Hierdoor kan niet iemand de identiteit stelen van anderen en dus is dit erg veilig. Het is hierdoor wel minder toegankelijk door gebruikers. Gebruikers willen wanneer zij de app hebben gedownload, direct iets kunnen kopen bij bijvoorbeeld de snackbar. Gebruikers moeten via de app een account aan kunnen maken waarbij zij een account kunnen maken, mogelijk kan dit door simpel te koppelen met Facebook. De gebruiker dient vervolgens een pincode in te voeren welke wordt gevraagd op het moment dat er een nieuwe telefoon wordt gebruikt op e´ e´ n account. Door Facebook te gebruiken Hierdoor heeft het de gebruiker direct een connectie met Facebook en kan het later eenvoudiger worden om dingen te delen via Facebook. Dit kan zorgen voor publicitiet voor de winkel of het restaurant.
Toepasbaarheid Voordat een systeem geimplementeerd gaat worden moet er vooraf eerst worden gekeken of het systeem wel gebruikt gaat worden. Hiervoor hebben wij een enquete gehouden met 4 vragen om te kijken of het systeem wel gebruikt gaat worden en of het systeem wel gebruikt k´an worden. We behandelen de vragen stuk voor stuk en geven uitleg bij de uitkomst per vraag. De deelenemer aan het onderzoek heeft eerst een video[11] tezien gekregen waarin het systeem kort en bondig wordt uigelegd. Vraag 1: Zou u met uw telefoon willen betalen bij de snackbar?
Figuur 4: Statistieken voor vraag 1
12
Op deze vraag kon alleen worden gekozen tussen de antwoorden Ja en Nee. Iedereen was verplicht de vraag te beantwoorden. Zoals te zien is geeft het grootste deel aan wel met de telefoon te willen betalen wanneer iets wordt gekocht bij de snackbar. Hierdoor zou er weldegelijk een markt zijn voor mensen om te willen betalen met hun telefoon via een app. Vraag 2: Over welke functies beschikt uw telefoon?
Figuur 5: Statistieken voor vraag 2
Op deze vraag waren er meer antwoorden mogelijk. Als het systeem na de implementatie niet gebruikt gaat worden is het zonde van de tijd dus is het wel van belang om te bekijken of de gebruikers wel de mogelijkheid hebben om het systeem te gaan gebruiken. Als er niet veel telefoons beschikking hebben over een technologie welke wordt toegepast heeft het geen nut om het systeem te maken en uiteindelijk in te zetten. Doordat er zeer weinig mensen zijn die gebruik kunnen maken van het systeem is het dus belangrijk om te bekijken of het systeem wel kan worden gebruikt. Zoals hierboven is te zien hebben de meeste gebruikers Bluetooth, GPS, Wi-Fi en 3G. Aan het onderzoek deden 33 mensen mee, hiervan heeft dus 91% Bluetooth op de telefoon. Dit maakt Bluetooth erg geschikt en de meesten zijn ook erg vertrouwd geraakt met Bluetooth, omdat het al 10 jaar lang in telefoons zit. Verder beschikt 88% over een mobiele data verbinding. Er kan dus zoals in het hoofdstuk ”Communicatie¨een driehoek worden opgezet waarbij gebruikers met de server en het systeem praten. Ook is het belangrijk om te zien dat maar 15% beschikt over NFC. Dit is veel te laag en dus is NFC geen protocol wat gekozen gaat worden. Vraag 3: Als u bij de snackbar zou bestellen met uw telefoon, hoe zou u willen betalen? Er moet natuurlijk wel betaald worden door de gebruiker. Deelnemers konden op deze vraag een antwoord geven op hoe zij het liefst zouden willen betalen. Hieruit blijkt dat de helft zou willen betalen met een digitale portemonnee, waarbij gebruikers een toegoed krijgen wat ze op hun account neer zetten. De andere helft heeft aangegeven gebruik te willen maken om te betalen met IDeal. Het is dus handig om allebei de methodes te implementeren. 13
Figuur 6: Statistieken voor vraag 3
Een ander antwoord wat gegeven kon worden was Pay-Pal. Slechts 9% heeft aangegeven hiervan gebruikt te willen maken. Dit komt vooral omdat Nederlanders weinig gebruik maken van PayPal, maar voor buitenlandse bezoekers is dit wel erg handig. Zij zouden dan gemakkelijk met hun creditcard kunnen betalen. Vraag 4: Zou u een account aan willen maken op een apart systeem om gebruik te maken van een systeem om bij de snackbar een kroketje uit de muur te halen?
Figuur 7: Statistieken voor vraag 4
Om de beveiliging van het systeem te waarborgen moet een gebruiker een account aan maken waaraan de telefoon en een betaalmiddel is gekoppeld. Met deze vraag kan worden bekeken of gebruikers wel een account aan zouden willen maken. Hieruit blijkt dat een kwart van de bezoekers 14
een account aan zou willen maken. Dit is een zeer laag cijfer. Hierom moet het dus belangrijk zijn dat gebruikers, wanneer zij de app downloaden, heel snel en gemakkelijk een nieuwe account aan kunnen maken. Denk bijvoorbeeld aan een facebook connectie of alleen een email-registratie met pincode. Nu volgen enkele gegevens van de deelnemers aan het onderzoek: Totaal aantal deelnemers: 33 Aantal mannelijk: 2 Aantal vrouwelijk: 13 Gemiddelde leeftijd van de deelnemers: 27 Hoogste leeftijd van de deelnemers: 68 Laagste leeftijd van de deelnemers: 17 Enquete gemaakt met behulp van: enquetemaken.be[10]
Alles op een rijtje Om alles overzichtelijk weer te geven is alles in een tabel gezet, zo is gemakkelijk te zien waar protocollen sterk en minder sterk in scoren: Protocol Beveiliging Technisch haalbaar Financieel haalbaar Toepasbaarheid Eind oordeel
RFID ----------
NFC + ++ + -+
Bluetooth +++ +++ +++ +++ +++
Wifi + GPS +++ ++ +++ ++
Zoals te zien is, komt Bluetooth als beste uit de test. Bluetooth is eenvoudig toe te passen, kost niet veel geld en wordt door iedere telefoon ondersteund. Met de beveiliging zoals uitgelegd in ”Beveiliging met unieke telefoongegevens¨ıs erg veilig een verbinding op te zetten.
15
Hardware In dit hoofdstuk worden twee hardware systemen uitgelicht waar uiteindelijk e´ e´ n systeem van wordt gekozen om te worden gebruikt in wanneer het systeem moet worden ge¨ımplementeerd en gebruikt. In het vorige hoofdstuk is gekozen voor het Bluetooth protocol en vanaf hier wordt ook meer ingegaan op de technische haalbaarheid van dit protocol in de verschillende systemen. Ook worden de andere protocollen meegenomen, maar Bluetooth is het protocol waar op ingespeeld wordt voor de keuzes voor het systeem. Er is gekozen om het systeem klein te houden, dus geen grote kasten of andere onnodige hardware. Twee systemen welke erg klein zijn en gemakkelijk in gebruik, zijn Arduino en Raspberry Pi. We gaan per systeem de voordelen en nadelen bespreken.
Arduino Een Arduino[8] is een klein bordje waar allerlei modules op kunnen worden geklikt. Zo kunnen veel verschillende onderdelen worden aangesloten op het systeem. Arduino is gemakkelijk te programmeren met de ontwikkel software van Arduino zelf. Hiermee kan met 1 druk op de knop de software naar de arduino worden geladen en getest. Voor de Arduino zijn er enorm veel modules te koop. Voor alle protocollen waar over is gepraat in het vorige hoofdstuk is het mogelijk om een module te kopen. De Arduino beschikt niet standaard over een ethernet-controller[4]. Hierdoor zou een duurdere Arduino worden aangeschaft van ongeveer e35,-. De kosten van de modules verschillen enorm. In de onderstaande tabel zijn de kosten voor een systeem met een Arduino te zien, de kosten kunnen iets onder of iets boven de aangegeven prijs zijn: Onderdeel Arduino Bluetooth module Wi-Fi module NFC module
Kosten e35,e25,e40,- - e75,e30,-
Zoals te zien is in de tabel zijn de kosten voor een systeem met een Arduino niet extreem hoog. De modules zelf kosten vaak net zo veel als de Arduino zelf, of soms nog duurder. Zodra een module kapot gaat kost het vergeleken met alleen het Arduino bordje erg veel. Een groot nadeel is dat er geen besturingssysteem op de arduino staat, alleen een programma wat er op moet worden gezet en wat vervolgens de hele tijd blijft draaien. Op deze manier kan er niet worden ingegrepen op het moment van een probleem, zonder het systeem af te sluiten. 16
Daarnaast heeft een Arduino geen video-uitgang en is het dus niet mogelijk om output op een scherm weer te geven. Zo kan bijvoorbeeld niet worden weergegeven welk luikje wie open mag doen. Een ander groot nadeel is de snelheid waar de Arduino op werkt. De snelheid is 16MHz en hierdoor is het bijna niet werkbaar voor een systeem waar meerdere personen op kunnen werken. Naast de snelheid is ook de geheugengrootte niet hoog. Dit is 32 KB, waarmee dus alleen maar kleine programma’s kunnen worden gebruikt. Zodra er meerdere gebruikers tegelijk gebruik maken van e´ e´ n Arduino loop het geheugen snel vol en is de kans groot dat alles crasht. Dit maakt de Arduino niet bruikbaar op het systeem wat voor ogen is en moet dus worden gekeken naar een andere oplossing.
Raspberry Pi Een ander systeem wat gebruikt kan worden is de Raspberry Pi[9]. Dit is een nieuw soort computer wat erg lijkt op een Arduino. De Raspberry Pi is ontwikkeld in Engeland en is in 2012 op de markt gekomen. De Raspberry Pi heeft een mogelijkheid tot het draaien van een volledig besturingssysteem. Hierdoor is het mogelijk om een desktop omgeving te gebruiken. De Raspberry Pi is te koop in twee verschillende uitvoeringen. Hieronder zijn de twee verschillende modellen te zien, de linker is Model A en de rechter is Model B:
Figuur 8: Verschil tussen de Model A en Model B van de Raspberry Pi
De grootste verschillende tussen de twee modellen zijn de hoeveelheid geheugen, de ethernet controller en de dubbele USB poort bij Model B. Verder zijn er weinig verschillen tussen de twee modellen, maar de verschillen kunnen wel een doorslag geven in de keuze naar welk model gekozen zou kunnen worden.
17
Om te beginnen bij de verschillen kijken we naar de grootte van het geheugen. Bij Model A is dit 256 MB en bij Model B is dit 512 MB. Zit is een groot verschil waardoor alles net iets soepeler zal lopen op Model B. Dit is een groot verschil en hierdoor vermindert de kans dat het systeem crasht doordat het geheugen minder snel vol loopt. Vervolgens valt op dat Model B een extra USB poort heeft. Hierdoor kunnen twee USB apparaten worden aangesloten. Doordat er op zijn minst een module moet worden aangesloten is het handig om een extra poort te hebben. Om volledige USB snelheid te krijgen zal e´ e´ n poort worden gebruikt voor de module met Bluetooth. De andere poort kan worden gebruikt om bijvoorbeeld een toetsenbord of een muis aan te koppelen. Het is ook mogelijk een USB-Hub aan te sluiten zodat er meerdere USB apparaten kunnen worden aangesloten op het systeem. Het grootste verschil is de ethernet controller. Op Model A zit geen ethernet en dus is het niet mogelijk om deze aan te sluiten op een netwerk. Model B heeft deze mogelijkheid wel. Voor het systeem is het noodzakelijk dat alles op het netwerk wordt aangesloten. Dit zorgt ervoor dat moet worden gekozen voor Model B. De Raspberry Pi heeft zelf geen harde schijf of andere vorm van opslag. Het is noodzakelijk om een SD kaart aan te sluiten. Hierdoor heeft de Raspberry Pi voor nog geen 10 euro een grootte van 4 gigabyte. Dit is ruim voldoende voor hetgeen wat het systeem moet doen. Daarnaast beschikt de Raspberry Pi ook over een HDMI poort. Hierdoor kan eenvoudig een scherm worden aangestuurd waar informatie over het systeem op te zien is. Ook kan bijvoorbeeld worden aangegeven wie welke bestelling heeft gedaan en of de bestelling al is afgehandeld. De kosten van de Raspberry Pi zijn ongeveer gelijk aan die van de Arduino[5]. Echter is bij de Raspberry Pi de prijs zelf wat duurder. Verder kunnen er via USB modules worden toegevoegd. Deze zijn erg goedkoop. De belangrijkste kosten zijn hieronder in de tabel te vinden: Onderdeel Raspberry Pi Model B Bluetooth module Wi-Fi module NFC module 4GB SD Kaart
Kosten e39,e5,e8,e90,e10,-
Zoals te zien is in de tabel zijn alle onderdelen goedkoop, behalve die van de NFC. Omdat er niet is gekozen om het systeem met NFC uit te rusten kan deze waarde buiten beschouwing worden gelaten. Doordat de modules goedkoper zijn kan er goedkoper onderhoud worden verricht aan het systeem. Op het moment dat de Raspberry Pi zelf kapot gaat is het onderhoud wel duurder, maar wanneer er normaal met het apparaat wordt omgegaan is de kans hierop erg klein.
Conclusie Er is gekozen voor de Raspberry Pi. Door de grote voordelen ten opzichte van de Arduino is het logisch dat er voor de Raspberry Pi wordt gekozen. De Arduino is niet geschikt voor de hoeveelheid data en beschikt niet over de kracht om als stabiel systeem te gebruiken. Doordat de Raspberry Pi meer kracht in huis heeft en verschillende functies heeft zoals HDMI, USB en 18
Ethernet is het makkelijker om te kiezen voor dit systeem. De kosten zijn geen factor geweest in de beslissing. De kosten liggen erg dicht bij elkaar. Er is dus gekozen voor een Raspberry Pi met een USB module.
19
Conclusies en aanbevelingen Alles is nu uitvoerig besproken is besproken, wordt in dit hoofdstuk de vraag beantwoord welk protocol het beste is op basis van toepasbaarheid, beveiliging, financi¨ele haalbaarheid en technische haalbaarheid. Vervolgens is er te lezen welk hardware systeem gekozen is waar het gekozen protocol het beste op werkt.
Het beste protocol Bluetooth is het beste protocol als het op alle aspecten aankomt. Zowel in beveiliging, toepasbaarheid en haalbaarheid is Bluetooth het ultieme protocol. Doordat Bluetooth op bijna alle telefoons aanwezig is, is het draagvlak erg groot en kan iedere gebruiker gebruik maken van het systeem. De gebruikers hoeven dus geen moeilijke of voor veel mensen onmogelijke handelingen uit te voeren waarbij dingen op het systeem moeten worden ge¨ınstalleerd. De enige handeling welke de gebruikers moeten doen is het downloaden van de app en vervolgens via de app de telefoon te koppelen aan het systeem. Dit kan allemaal geautomatiseerd worden geda Naast het draagvlak is de beveiliging ook van erg groot belang. Met Bluetooth is er standaard een AES beveiliging en is er een mogelijkheid om de communicatie alleen te starten wanneer er een beveiligde verbinding is opgezet. Hiermee is de communicatie niet te lezen door andere gebruikers welke proberen in te breken in de beveiliging. En al zou er kunnen worden afgeluisterd kan de hacker hier nog niets mee, omdat de sleutels niet bekend zijn om de data te decrypten. De gebruiker kan zelf zien met welke Bluetooth apparaten er verbonden is en hiermee kan dus de hacker worden uitgeschakeld bij de verbinding. Financieel is Bluetooth erg sterk. Er zijn goedkope oplossingen van veel verschillende fabriekanten. Denk hierbij aan een bluetooth-USB-dongle. Bluetooth ondersteunt standaard meerdere verbindingen en dus is het niet nodig om voor iedere verbinding een dongle aan te schaffen. Zoals al gemeld hierboven is het in elke telefoon aanwezig dus hier zitten ook geen kosten aan verbonden. De enige kosten zouden de kosten voor een applicatie zijn. Bluetooth is technisch een sterk protocol wat nog hevig in ontwikkeling is. Doordat Bluetooth al bijna 20 jaar bestaat zijn de meeste functies gemakkelijk toe te passen en is het er erg uitgebreide documentatie aanwezig waar veel hulp uit is te halen. Al met al is Bluetooth een zeer goed protocol wat uitstekend gebruikt kan worden in openbare ruimtes waarbij gebruikers toegang kunnen krijgen tot een systeem.
20
De beste hardware Nu bekend is welk protocol wordt gebruikt, kan worden ingegaan op de hardware waaraan het systeem moet voldoen. Het systeem moet met Bluetooth verbinding kunnen maken met gebruikers, verbinding met de server kunnen maken. Het systeem moet snel werken en goedkoop zijn in aanschaf en onderhoud. Gekozen is voor een systeem met de Raspberry Pi als computer. Hier is Linux op te draaien en het systeem kan gemakkelijk worden uitgebreid met een bluetooth-USB-dongle doordat er twee USB-poorten aanwezig zijn. Ook is het systeem gemakkelijk met Ethernet aan het netwerk te hangen, waardoor een snelle verbinding kan worden opgezet met de server. Doordat de Raspberry Pi een HDMI poort heeft kan er gemakkelijk een beeldscherm worden aangesloten. Denk hierbij aan een scherm waar bestellingen op te zien zijn of een scherm waar ontwikkelaars de status van het systeem kunnen bekijken.
21
Bronnen [1] Wat is RFID : http://www.watisrfid.nl/ [2] How secure is NFC : http://electronics.howstuffworks.com/how-secure-is-nfc-tech1.htm [3] Wikipedia - Wi-Fi : http://nl.wikipedia.org/wiki/Wi-Fi [4] iPrototype : https://iprototype.nl/ [5] Antratek : http://www.antratek.nl/Raspberry-Pi.html/ [6] Wikipedia - Bluetooth : http://nl.wikipedia.org/wiki/Bluetooth/ [7] Wikipedia - GPS : http://nl.wikipedia.org/wiki/GPS/ [8] Arduino : http://www.arduino.cc/ [9] Raspberry Pi : http://www.raspberrypi.org// [10] Enquete maken.be : http://www.enquetemaken.be/ [11] Video van de enquete : http://www.youtube.com/watch?v=lh6RWYeI4c [12] Transport Layer Security (TLS) : http://en.wikipedia.org/wiki/Transport_Layer_Security [13] Transmission Control Procotol (TCP) : http://nl.wikipedia.org/wiki/Transmission_Control_Protocol [14] Java Docs : http://docs.oracle.com/javase/6/docs/api/
22
[15] Android Developers : http://developer.android.com/index.html [16] LATEX: http://www.latex-project.org/
23
Evaluatie In dit hoofdstuk staan de evaluaties van Edwin Schriek en Pim van Dijk.
Reflectie van Edwin Schriek Na het aanhoren van de verschillende opdrachten van de verschillende bedrijven besloten Pim (mijn groepsgenoot) en ik om voor de opdracht van Attila bij Trin-IT te kiezen. Voor een beschrijving van de opdracht kunt u de inleiding lezen. Aan deze opdracht kwam dus in eerste instantie geen ontwikkeling aan te pas, alleen een onderzoek doen en vervolgens realiseren in het volgende TIRLAB. Het was dus een heel ander project wat we normaal gewend waren. Als ik nu aan het einde terugkijk is dit mij niet tegengevallen, maar heb ik het ook niet echt je van het gevonden. Uiteindelijk realiseer ik toch liever dingen dan onderzoek doen naar. Echter is onderzoek doen ook wel belangrijk om uiteindelijk een goed product te krijgen dus in dat opzicht is het wel goed dat wij dit een keer moesten doen. Samenwerking (of contact) met Attila had naar mijn idee wat beter kunnen verlopen. Trin-IT heeft de afgelopen weken namelijk te maken hebben gehad met verschillende certificeringen, waardoor Attila niet altijd op onze vragen kon reageren. Uiteindelijk is er nog wel contact gekomen waar alles doorsproken is. Voor het volgende deel, het realiseren, zullen wij geen samenwerken met Sanne en Samuel op basis van het beste onderzoek. Ik ben overtuigd dat er iets moois uit kan komen.
Reflectie van Pim van Dijk Het project was een onderzoek doen naar draadloze communicatie. Dit betekende dat er 10 weken lang onderzoek gedaan moest worden naar hoe de communicatie zou moeten lopen, de verschillende draadloze protocollen. Vooraf is een planning gemaakt welke in te kijken is in bijlage A. Op het begin van het onderzoek ging alles volgens planning, maar vanaf week 6 kregen we een lichte achterstand. Dit kwam doordat wij Attila informatie hadden gevraagd over de hardware van het systeem. Attila had het erg druk met certificeringen, dus had hij weinig tijd en dus hebben wij ervoor gekozen om zo min mogelijk tijd te verliezen door zelf de hardware van het systeem samen te stellen. Dit is uiteindelijk een apart hoofdstuk geworden waar twee systemen tegen elkaar worden opgezet. De achterstand is vervolgens weggewerkt door in week 7 al te beginnen naar het onderzoek naar Toepasbaarheid. Hiervoor is een enquete opgezet en deze is vervolgens gedeeld op Facebook. Vervolgens moesten we in week 9 alleen nog maar de gegevens uitlezen en op papier zetten. Verder was het voor mij persoonlijk wel wennen dat er voor een lange tijd, 10 weken, onderzoek moest worden gedaan. Dit heb ik nog nooit gedaan en ik keek er altijd een beetje tegen op. Maar 24
nadat ik het nu heb gedaan vond ik het eigenlijk wel leuk om te doen. Nu precies bekend is hoe het systeem er uit komt te zien is het erg gemakkelijk om vervolgend een systeem te ontwikkelen. Er hoeven geen grote beslissingen meer te worden genomen en dus is het mogelijk om snel een werkend systeem op te zetten. Nu is er een systeem bedacht wat helemaal naar onze wensen is afgewogen en wat echt ontwikkeld kan worden. In latere projecten zie ik mezelf zeker als onderzoeker voor nieuwe technologi¨en en de implementatie hiervan. Het is niets voor mij om alleen maar programmeercode uit de vingers te toveren dus een geheel onderzoek tussendoor is erg leuk om te doen. Een ander aspect waar ik nog weinig mee te maken heb gehad is de manier van het schrijven van een verslag. Ik ben begonnen met LATEX[12], een manier om een verslag te schrijven. Hiermee heb je niet te maken met een WYSIWYG programma net als Microsoft Office. Het is erg handig in gebruik en voor ieder onderdeel moet een eigen bestand worden aangemaakt waar alleen de tekst in komt. Dit werkt erg handig en ik ga dit later ook zeker gebruiken bij het schrijven van hele verslagen. De samenwerking met Edwin Schriek vond ik erg goed. We zagen elkaar vaak op school en hadden waren goed te bereiken voor elkaar. Wanneer iemand ergens niet uit kwam hielpen we elkaar. In ICT-Lab2 gaan we samen met nog twee andere studenten, welke een soortgelijk onderzoek hebben gedaan, het systeem ontwikkelen en ik heb hier enorm veel zin in. We gaan in het begin van dat project met zijn vijven (wij 4 en Attila) om de tafel zitten om te bespreken hoe we het ontwikkelen het beste aan kunnen pakken.
25
Bijlage A
Plan van Aanpak Doel van dit project Het doel van het project is het doen van onderzoek naar draadloze communicatie. Tijdens het onderzoek wordt gekeken naar methodes om een veilig, snel en stabiel systeem te kunnen ontwikkelen. De communicatie moet kunnen worden opgezet tussen een telefoon, een embedded system en een server. Door een draadloze verbinding op te zetten moet een gebruiker worden ge¨ıdentificeerd en moet de gebruiker toegang krijgen tot een aan het systeem gekoppelde product. De producten kunnen erg verschillend zijn. Het systeem moet universeel te gebruiken zijn. Zo kan worden gekozen om het te gebruiken om een kroketje uit de muur te halen (figuur 1), maar ook om een koffer ergens op te slaan (figuur 2). Hierdoor moet het systeem veilig kunnen worden ingezet, zonder dat er personen toegang krijgen tot spullen die niet aan hen toebehoren. Door een onderzoeksverslag te schrijven worden veel aspecten, welke met het systeem te maken hebben, belicht en wordt beschreven wat de beste toe te passen methode is. Niet alleen wordt gekeken naar het technische aspect, maar ook naar het financi¨ele aspect, als ook naar de toepasbaarheid.
Wat gaan we onderzoeken Zoals eerder verteld moet er draadloze communicatie komen tussen een telefoon, een embedded system en een server, deze driehoek wordt ge¨ıllustreerd in figuur 1. Dit zal moeten gaan gebeuren via een draadloos protocol, denk bijvoorbeeld aan Wifi of NFC (Near Field Communication). We gaan kijken naar de verschillende protocollen die bestaan voor draadloze communicatie. Hierbij wordt gekeken naar een aantal technische aspecten. Beveiliging; is het protocol bestendig tegen hackers en/of skimmers? Haalbaarheid; is het protocol eenvoudig te implementeren? Toepasbaarheid; zijn gebruikers bereid om het protocol te gebruiken en is het protocol makkelijk te gebruiken voor gebruikers? Hiernaast gaan wij ook kijken naar de financi¨ele aspecten van de protocollen, dat wil zeggen dat wij gaan kijken naar de kosten voor de aankoop van het materiaal, de kosten om het systeem op te zetten en kosten voor eventuele onderhoud van het materiaal en systeem.
26
Planning Het project duurt 11 weken, welke in gaan op 11 februari 2013. Na deze 11 weken moet worden gekeken of er door wordt gewerkt aan het project. In deze nieuwe periode moet dan het systeem worden gebouwd. Omdat nog niet zeker is of na de eerste 11 weken wordt doorgewerkt is er een planning gemaakt voor de eerste periode. Datum 11-02-13 18-02-13 25-02-13
Weeknummer 1 2 3
04-03-13
4
11-03-13
5
18-03-13 25-03-13
6 7
01-04-13
8
08-04-13 15-04-13 22-04-13
9 10 11
Werkzaamheden Luisteren naar verschillende opdrachten Afspraak maken met Atilla Szabo (Trin-IT) Afspraak met Atilla (Trin-IT) om opdracht te bespreken Maken van Plan van Aanpak Opleveren Plan van Aanpak en onderzoek naar protocollen van draadloze communicatie Onderzoek naar hoe de communicatie moet lopen (gebruiker-server-embedded systeem) Onderzoek naar beveiliging van de protocollen Onderzoek naar de technische haalbaarheid van de protocollen Onderzoek naar de financi¨ele haalbaarheid van de protocollen Onderzoek naar de toepasbaarheid van de protocollen Conclusie schrijven Opleveren eindverslag
27
Figuur A.1: Communicatie
28
Figuur A.2: Koffers
29