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

Stap 12: SparkRandomNumberGenerator


Zoals besproken in de vorige stap, moet de kern van de vonk de mogelijkheid hebben om willekeurige initialisatie vectoren en uitdaging Nonces te genereren. Dit vereist een PRNG (pseudo-willekeurige nummer generator) algoritme. Gelukkig is rand48 functie beschikbaar in libc.

Een PRNG moet echter worden bezaaid met een willekeurige zaad. Het is zeer belangrijk voor dit zaad om onvoorspelbaar en niet-herhalende over een redelijke termijn. Als de aanvaller ons nageslacht voorspellen kan, kunnen zij onze willekeurige getallen, dat ook betekent dat zij onze uitdaging Nonces en initialisatie vectoren uitzoeken kunnen voorspellen.

Bijvoorbeeld, als aftrap van onze PRNG gebruiken wij altijd de dezelfde zaad, dan allen de aanvaller moet doen is vangen een gecodeerd bericht, en vervolgens dwingen onze vonk opnieuw op te starten. Na dat de aanvaller gewoon replays het opgenomen bericht, totdat de vonk hits willekeurige evenveel als werd gebruikt voor de bouw van de opgenomen bericht, en we zijn gehackt.

Het gebruik van meer dan één zaad lost niet het probleem, b/c dezelfde aanval beschreven boven nog steeds werkt, als de aanvaller het vermogen heeft om voortdurend opnieuw opstarten van de vonk zoveel maal als er vooraf berekende zaden zijn.

Dit is waarom we altijd onze vooraf berekende zaden met een ware bron van entropie mengen moeten. Dat is makkelijk genoeg op een grote complexe computer, maar de kern van de vonk is ook eenvoudig te hebben echte entropie in zijn eigen geheugen, dus de entropie moet afkomstig zijn uit een externe bron.

Er zijn speciale apparaten die deze entropie kan leveren door het quantum lawaai in een omgekeerde vooringenomen halfgeleider junction, of dedicated security chipsfrequentiebanden te versterken, maar dat zou overkill voor dit project.

In plaats daarvan kunnen we de entropie die inherent zijn aan de snelheid waarmee pakketten Beweeg over een netwerk, alsmede met behulp van de entropie van de tijd wanneer een verzoek is die hoeveelheid gebruiken.

Algoritme

Dus, het algoritme gebruikt door de SparkRandomNumberGenerator voor het genereren van een willekeurig getal is als volgt:

De entropie gebruikt voor het zaaien van de PRNG functie (seed48) is van 3 verschillende bronnen vermengd:

  1. rand48 is bezaaid met een van 65536 vooraf berekende 48-bits zaden, opgeslagen in de externe flitser. Elke keer als de vonk opnieuw wordt opgestart, wordt het volgende zaad wordt gebruikt. De rotatie van het zaad kan worden uitgeschakeld door commentaar uit ROTATE_SEED in SparkRandomNumberGenerator.h: 35.
  2. Een opgegeven netwerkserver is pinged 5 keer (standaard is 8.8.8.8). Telkens als ping wordt gebruikt als een ronde van HMAC (Master_Key, ping_time). De eerste 128 bits van de resulterende HMAC is onze extra entropie XORed met elke oproep tot rand48. Netwerk entropie verzamelen fase is wat is verantwoordelijk voor een vrij lange vertraging op eerste verzoek aan de Spark-kern nadat het laarzen. Uitschakelen van deze fase commentaar uit PING_TEST_SERVER in SparkRandomNumberGenerator.h: 34.
  3. De gegenereerde 128-bits getal is XORed met de eerste 128 bits van HMAC (Master_key, Current_Timestamp). Dus het tijdstip waartegen de willekeurig getal was aangevraagd wordt gebruikt voor extra entropie.

Nu is allen wij moeten doen de vooraf berekende zaden worden opgeslagen in de externe flitser. Zie de volgende stappen.

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