Spark Core och Android Garage öppnare. Minus Spark molnet. (10 / 19 steg)

Steg 10: Säker kommunikationskanal arkitekturen



Den svåraste delen av detta projekt var utformningen av en säker kanal som är resistenta mot Replay och Man-In-The-Middle -attacker. Jag tror att jag har kunnat uppnå detta, och jag genomfört lösningen på ett sätt som gör det mycket enkelt att återanvända i andra Spark Core projekt.

Detta steg ger en överblick över hur detta bibliotek är utformade och användas.

SecureChannelServer

Alla de krypto primitiver och session etableringen protokollet genomförs av SecureChannelServer. Genomförandet delegerar faktiska kommunikation och -meddelanden till CommunicationChannel och SecureMessageConsumer gränssnitt. Detta är de endast två gränssnitt för en användare av detta bibliotek måste genomföra.

Observera att metoden endast delade denna klass har loop(). Avsikten är att anropas från den huvudsakliga loop() metoden application.cpp, servas av Spark kärna bibliotek.

Detaljer om hur den här klassen fungerar är i ett följande steg.

CommunicationChannel

Används för att genomföra ett särskilt meddelande tillvägagångssätt, till exempel TCP/IP över WiFi till exempel. Det vet ingenting om kryptera eller dekryptera data. Använd i stället SecureChannelServer kommer detta gränssnitt när det behövs att läsa eller skriva krypterade data.

SecureMessageConsumer

Genomförandet kommer att ta emot krypterade meddelanden och återkommer klartext Svaren tillbaka till SecureChannelServer. Det är helt agnostiker hur meddelandet var dekrypteras eller hur det mottogs.

Denna design strategi gör det mycket enkelt att utveckla och testa SecureChannelServer. Om du tittar in core-firmware/bibliotek/garage/tester, hittar du övningsprov implementeringar av båda gränssnitten, vilket gjorde det möjligt för mig att skriva och felsöka all krypto kod utan något behov av hårdvara eller ens nätverk.

WiFiCommunicationChannel Klass

Hanterar detaljerna i anslutning kärnan till WiFi, hantera en TCP/IP server på port 6666 och hantera klientanslutningar. Detta är den klass som pingar testservern varje minut för att kontrollera anslutningen.

Garage Klass

Detta är vår implementering av gränssnittet SecureMessageConsumer . Det fungerar som garage dörren controller, hantering maskinvarunärmare Aktivera switchen, och läsa den dörr sensorn.

Hänvisas till UML-diagrammet för mer detaljer.

Se Steg
Relaterade Ämnen

Spionera Garage öppnare

Detta var ett skolprojekt. Vi var tvungna att införliva 2 av tre C (kodning, kretsar och Cad) i våra projekt. Jag hittade en Svårbemästrade precis som detta och jag bygger min projekt bort av hans. Länken till detta instructable är här. Detta är ett...

Hysch-hysch garage öppnare i en burk

Hysch-hysch garage öppnare i en burk som jag gjorde det på Techshop. http://www.Techshop.ws/Jag behövde ett sätt att dölja mitt garage dörröppnare, men har också tillgång till den. Detta är min dolda garage dörröppnare i en burk. Med locket stängt; J...

Hacka en RC bil med Arduino och Android

(Om du gillar detta Instructable, glöm inte att rösta på det (ovan: högra hörnet flaggan). det konkurrerar på ROBOTICS och sensorer tävlingar. Tack så mycket! ;-)Varje gång jag går in i en leksaksaffär och se fjärrkontroll bilar i fönstret, jag längt...

Nybörjarguide till att bygga Arduino robotar med Bluetooth och Android

i den här guiden vi gå mot att skapa en Arduino robot som kan styras via bluetooth med en Android-telefon/tablett. Detta är en Nybörjarguide som kommer att kort gå över ledningar och programmering din robot.Steg 1: Bygga lista... Följande är en lista...

Arduino pro mini HC-06 Bluetooth och Android App

Arduino pro mini HC-06 Bluetooth och Android AppYouTube channelDokument och kod...

En nätverksansluten LED Strip Controller med Arduino och Android

jag är fascinerande från belysningen verkställer sedan barn och en gång hittade på Ebay en billigt multicolor LED strip har jag börjat titta hur kontroll det, letar efter en Ethernet aktiverat kontroll som gör remsorna en uppsättning nätverk objekt,...

Röst aktiverat lampor / Led (ARDUINO och ANDROID)

Styra You'r hem lampor med en arduino och you'r android-telefon!Detta är min allra första instructable, jag ville styra mitt hem med en arduino och android telefonen.Det fanns många andra alternativ tillgängliga för mig att göra så. men det billiga a...

ITEAD intelligenta Switch fungerar med Arduino och Android

ITEAD nu erbjuda den intelligenta switchs som stöder touch och fjärrkontroll, och det kommer att vara mycket lätt att hacka och få det att fungera med din Arduino och Android telefon. Här visar vi dig en liten demo och mer positivt överraskad att bli...

LED kontroll med hjälp av Arduino Bluetooth och Android. (Del 1)

Detta instructable är en enkel handledning explaning hur man styr en LED med Android Bluetooth.Du behöver:Arduino UNOResistorer 300Ω (3 x)Resistor 150ΩLEDJumpers;Bluetooth-modul (HC-06/andra);Android-telefon;SPP Bluetooth Apk (unWired Lite);C kunskap...

Sakernas Internet kontrollerad Smart lampa/Outlet med spark core och IFTTT

Jag ville ha en natt-lampa som kommer att slå på efter solnedgången och stänga av mitt i natten. Finns på homedepot eller andra järnhandeln timers kan bara ställa in en tid. Eftersom det finns sommartid i USA, fick det bytas. För att lösa detta, är u...

Spark Core iPhone/Android kontrollerade R2-D2

Jag byggde en R2-D2 med offentliga ritningar från:http://Astromech.net/droidwiki/FAQMen det föreföll mig att många av dem används skrymmande styrsystem från modellflygplan. Detta Instructable dokumenterar hur jag använde en gnista kärna för att tillå...

Android Garage dörröppnare - ingen Android-programmering, nr lödning behövs.

Uppdatering: du kan nu skapa din egen anpassade meny för att öppna garageporten och växla reläer och på med hjälp av pfodDesigner . Den fria pfodDesigner kommer att generera all kod för dig och pfodApp visas den färgglada menyn på din mobil. Se puls...

Altoids Garage öppnare Mod

har du någonsin önskat att du hade ett mer elegant sätt att öppna din garageportar? Min pappa köpte en ny pickup hade, men det inte den inbyggda Homelink knappen som våra andra bilar. Sin ursprungliga plan var att ta del av främre konsolen och instal...

Universell fjärrkontroll med Arduino, 1Sheeld och Android mobil

Detta projekt visar hur du kan styra din TV, satellitmottagare och Stereo med din Android mobil istället för att använda det fjärrkontroll.I princip kan du använda denna teknik för alla andra enheter som fungerar med fjärrkontrollen. Jag undrar om du...

DIY-kabel att använda OTG och samtidigt Ladda enheten (Windows och Android)

Du kan använda denna kabel med alla android och windows-enheter att använda funktionen OTG och samtidigt ladda enheterna.Steg 1: Material som krävs förMicro USB hane A,USB A hane,USB kvinnliga ADPDT eller 2P2W eller 2P2T switchoch några kablar.Steg 2...

Spåra och kontrollera din bil via Arduino och Android

Faktiskt, många av oss kan drabbas av eller rädd att hans bil stulits. I detta projekt, kommer jag försöka hjälpa dig att skydda dina bilar och även fjärrstyra dem.I grund och botten måste du lämna en mobiltelefon i bilen och när bilen börjar att fly...

Quadcopter med hjälp av Intel Galileo och Android App

För en drönare att flyga autonomously, måste alla nödvändiga sensorer, processorkraft, och kommunikation marker vara inbyggda. Även om det inte kanske verkar så mycket, det faktiskt eliminerar många befintliga kommersiella civila drönare tillgänglig...

Mini flyta drivs av LEGO och Android

detta var som min 5: e klass lärare gav till oss istället för en statlig rapport. Varje barn tilldelades till bygga en flottör som kunde flytta. De flesta barnen använde vagnar, skateboards eller R/C bilar. Jag beslutade att använda en mobiltelefon o...

Mini flyta drivs av LEGO och Android (Video)

detta var som min 5: e klass lärare gav till oss istället för en statlig rapport. Varje barn tilldelades till bygga en flottör som kunde flytta. De flesta barnen använde vagnar, skateboards eller R/C bilar. Jag beslutade att använda en mobiltelefon o...