Spark kern en Android Garage Opener. Minus de Spark-wolk. (11 / 19 stap)

Stap 11: Codering/decodering en sessie vestiging


Deze stap wordt beschreven op de bijzonderheden van de wijze waarop de SecureChannelServer klasse wordt geïmplementeerd.

Symmetrische gedeelde-sleutel beveiliging wordt gebruikt. Dit betekent dat de kern van de vonk en klant Android app dezelfde geheime sleutel delen moeten om te praten met elkaar.

Hoofdsleutel

De 128-bits hoofdsleutel moet worden verstrekt door u in dit bestand: core-firmware/libraries/garage/master_key.h. Hier is een voorbeeld van wat dat eruit zou kunnen zien:

 #ifndef LIBRARIES_GARAGE_MASTER_KEY_H_ #define LIBRARIES_GARAGE_MASTER_KEY_H_ const uint32_t MASTER_KEY[4] = {0x12345678, 0x12345678, 0x12345678, 0x12345678}; #endif /* LIBRARIES_GARAGE_MASTER_KEY_H_ */ 

AES-128 wordt gebruikt voor het coderen van het verkeer. Uitdaging gebaseerd, getimede sessie tokens worden gebruikt ter voorkoming van Replay aanvallen. Sessie-munten zijn geldig gedurende 5 seconden nadat de nonce willekeurige uitdaging wordt afgegeven aan de Android app.

Twee crypto primitieven zijn geïmplementeerd voor het coderen van het verkeer van Android naar vonk, en vice versa.

AndroidRequest(COMMAND)

 Android 1) Generate random IV_Send[16]Android 2) Send [Message_Length[2], IV_Send[16], AES_CBC(Master_Key, IV_Send, COMMAND), <==== HMAC(Master_Key)]Spark 1) Verify that HMAC(Master_Key, PAYLOAD) matched the received HMACSpark 2) Decrypt and pass COMMAND to consumer 

SparkResponse(RESPONSE)

 Spark 1) Generate random IV_Response[16]Spark 2) Send [Message_Length[2], IV_Response[16], AES_CBC(Master_Key, IV_Response, RESPONSE), <==== HMAC(Master_Key)]Android 1) Verify that HMAC(Master_Key, PAYLOAD) matched the received HMACAndroid 2) Decrypt and process RESPONSE 

Deze twee functies bereiken het volgende:

  • De aanvaller kan niet zien de leesbare tekst berichten
  • De aanvaller wijzigen niet de gecodeerd verkeer op enigerlei wijze
  • De aanvaller kan niet zeggen het verschil tussen gecodeerde berichten, b/c hetzelfde leesbare tekst ziet er anders uit elke keer dat het wordt gecodeerd

Het resterende probleem is dat we nog steeds kwetsbaar voor Replay-aanvallen, omdat de aanvaller kan vangen een geldige gecodeerd bericht, wachten tot we verdwenen zijn en het afspelen om te openen de garagedeur. Om aan te pakken dit probleem gebruikt ik een uitdaging gebaseerd, cryptografische nonce protocol.

Sessie vestiging

Het volgende algoritme verwijst naar de twee functies hierboven omschreven.

 Android 1) AndroidRequest("NEED_CHALLENGE")Spark 1) Use PRNG to generate random Challenge[16]Spark 2) Calculate conversationToken == HMAC(Master_Key, Challenge[16])Spark 3) Start 5 second timerSpark 4) SparkResponse(Challenge[16])Android 2) Calculate conversationToken == HMAC(Master_Key, Challenge[16])Android 3) AndroidRequest( conversationToken, COMMAND] )Spark 5a) Make sure that conversationToken matched the recieved one. If so, execute command, invalidate conversationToken and SparkResponse( conversationToken, DOOR_STATUS] )Spark 5b) If timer expires, invalidate conversationTokenAndroid 4) Make sure conversationToken in response matched, update screen and invalidate conversationToken 

Dit protocol wordt ook afgebeeld in het bijgevoegde sequentiediagram.

Gerelateerde Artikelen

Android Garage deuropener - geen Andriod programmering, No solderen vereist.

Android Garage deuropener - geen Andriod programmering, No solderen vereist.

Update: nu kunt u uw eigen aangepaste menu om te openen de garagedeur en schakelaar Relais aan en uit met behulp van pfodDesigner . De gratis pfodDesigner alle code zal genereren voor u en pfodApp zal het kleurrijke menu tonen op uw mobiele telefoon.
Altoids Garage Opener Mod

Altoids Garage Opener Mod

hebt u ooit gewenst dat u had een meer stijlvolle manier om uw garagedeuren openen? Mijn vader kocht een nieuwe pick-up, maar het nog niet over de ingebouwde Homelink knop net als onze andere auto's. Zijn oorspronkelijke plan was onderdeel van de voo
Android automatische open Elektrisch deurslot met QR code scan

Android automatische open Elektrisch deurslot met QR code scan

deze eenvoudige tutorial, laten zien, hoe maak je een eenvoudige elektrische deuropener.Geen knoppen nodig.Wanneer u app opent, de automatische telefoon verbinden met uw arduino via bluetooth,en het scannen van de QR-code, opent de deur voor 3 sec en
Open Source Garage deur Controller / Monitor

Open Source Garage deur Controller / Monitor

Bewaking en beheersing van uw deuren van de garage van het web (met inbegrip van mobiele apparaten) via een Raspberry Pi.Dit project biedt software en hardware installatie-instructies voor de bewaking en de controle van uw garagedeuren op afstand (vi
Virtuele Open teken

Virtuele Open teken

Dit Instructable is mijn project van de YuKonstruct Spark Core bouwen nacht!In dit Instructable leert u hoe u een vonk kern om een schakelaar die zijn standpunt naar een website posten te maken. We zijn van plan om dit te gebruiken bij onze YuKonstru
Deuropener van de Garage van de Raspberry Pi

Deuropener van de Garage van de Raspberry Pi

Hallo iedereen!Dit instructable wordt uitgelegd hoe de installatie van een Raspberry Pi om te openen mijn garagedeur met behulp van een smarthphone. Terwijl dit is al eerder gedaan, dacht ik dat ik mijn oplossing post. Dit was mijn eerste hardware pr
Zet USB Debugging Mode op Android 4.2/4.3

Zet USB Debugging Mode op Android 4.2/4.3

als u onlangs uw apparaat hebt bijgewerkt naar Android 4.2 Jelly Bean of een nieuw apparaat met 4.2 of hoger vooraf geïnstalleerde hebben gekocht, wees niet verbaasd als u vindt dat de "Ontwikkelaar opties" ontbreekt.Het inschakelen van ontwikke
Garage deuropener

Garage deuropener

Gebruik een Raspberry Pi en een smartphone (of laptop) om te openen, sluiten en bewaken van een garagedeur. Openen en sluiten van de deur veilig met behulp van zelf-ondertekende certificaten geïnstalleerd op familieleden mobiele telefoons maken Als d
Deuropener van de Garage van de "speler 2"

Deuropener van de Garage van de "speler 2"

Ik ben niet alleen een gamer, ik ben een liefhebber van gaming. Ik ben geboren op hetzelfde jaar als Pong, ik Bekijk games op Game Vortex en PlayStation geïllustreerd en ik nog gemaakt en geleerd een Intro tot Video Game ontwikkeling cursus op L.S.U.
Garage vingerafdruk deurslot

Garage vingerafdruk deurslot

Dit is een elektronische garage deuropener ontworpen rond een vingerafdrukscanner SparkFun GT-511C1R. Er is al een zeer goede instructable door gebruiker nodcah dat hoe beschrijft te bouwen bijna dit exacte apparaat, waaruit ik nam 99% van mijn inspi
Pine64 als een mediacenter van Kodi (op Android platform)

Pine64 als een mediacenter van Kodi (op Android platform)

Hier zal ik u praten over hoe ik ging over het opzetten van mijn Kodi mediacenter op een Pine64. Totdat een meer geoptimaliseerde versie van de Kodi software beschikbaar is, is de gemakkelijkste (en volledig werkend) methode net om het te installeren
IPhone Garage deuropener (Updated!)

IPhone Garage deuropener (Updated!)

UPDATED!ik overgeschakeld naar een 12 volt Relais, een vak project toegevoegd en bevorderde het auto relay uit recept. Vreugde.Hallo.Ik schaam me een beetje van deze hack, aangezien het meestal maakt gebruik van bestaande technologieën, maar ik-it an
Bijlage, een Arduino Yun Garage Monitor

Bijlage, een Arduino Yun Garage Monitor

Links thuis en niet zeker of u hebt uw garagedeur gesloten? U kunt met dit Instructable, gemoedsrust en beheren van uw deuren - overal, altijd!Dit project biedt een webportal waarmee de gebruiker om te controleren op de status van hun garage. Als de
Het installeren van een garagedeur opener in een dashboard

Het installeren van een garagedeur opener in een dashboard

Ik had een probleem... We hebben een ambachtsman opener voor de deur van de garage, en twee afstandsbedieningen. Het probleem is dat de afstandsbedieningen verdwalen gehouden, want ze geen clips op hen hadden. Mijn vrouw de auto hebben niet een ingeb