Étincelle Core et Android de garage. Moins le nuage d’étincelles. (12 / 19 étapes)

Étape 12 : SparkRandomNumberGenerator

Comme indiqué dans l’étape précédente, le noyau de l’étincelle doit avoir la capacité de générer des vecteurs d’initialisation aléatoire et de défi Nonces. Cela nécessite un algorithme PRNG (Générateur de nombres pseudo-aléatoires). Heureusement, il existe rand48 fonction de libc.

Toutefois, un PRNG doit être ensemencé avec une graine aléatoire. Il est très important pour cette graine être imprévisible et non répétitif sur un délai raisonnable. Si l’attaquant peut prédire notre postérité, ils peuvent prédire nos nombres aléatoires, ce qui signifie aussi qu’ils peuvent comprendre notre défi Nonces et des vecteurs d’initialisation.

Par exemple, si nous utilisons toujours la même graine pour inaugurer notre PRNG, puis tout l’attaquant doit faire est capture n’importe quel message crypté et puis forcer notre étincelle pour redémarrer. Après que l’attaquant simplement relit le message capturé, jusqu'à ce que l’étincelle frappe le même nombre aléatoire comme a été utilisée pour construire le message enregistré, et nous sommes piratés.

L’utilisation de plus d’une graine ne résout pas le problème, b/c la même attaque décrite ci-dessus encore en travaux, si l’attaquant a la possibilité de redémarrer continuellement l’étincelle comme autant de fois qu’il y a des graines pré-calculée.

C’est pourquoi nous devons toujours mélanger nos graines pré-calculée avec une véritable source d’entropie. C’est facile de trop sur un grand ordinateur complex, mais le noyau de l’étincelle, c’est trop simple d’avoir une vraie entropie dans sa propre mémoire, donc l’entropie doit provenir d’une source externe.

Il y a dédié dispositifs qui peut fournir cette entropie en amplifiant le bruit quantique dans une jonction semi-conductrice biaisée inverse ou dédiées jetons de sécurité, mais ce serait exagéré pour ce projet.

Au lieu de cela, nous pouvons utiliser l’entropie inhérente à la vitesse avec laquelle les paquets se déplacent sur un réseau, ainsi qu’à l’aide de l’entropie du temps quand une demande est en précession.

Algorithme de

Ainsi, l’algorithme utilisé par SparkRandomNumberGenerator pour générer un nombre aléatoire est comme suit :

L’entropie utilisée pour l’ensemencement de la fonction PRNG (seed48) est mélangé ensemble de 3 sources différentes :

  1. rand48 est ensemencé avec une de 65536 pré-calculée graines de 48 bits, stockés dans un Flash externe. Chaque fois que le redémarrage de l’étincelle, la prochaine semence est utilisée. La rotation de la graine peut être désactivée en commentant ROTATE_SEED en SparkRandomNumberGenerator.h: 35.
  2. Un serveur de réseau spécifié est ping 5 fois (valeur par défaut est 8.8.8.8). Chaque fois que ping est utilisé comme un tour de HMAC (Ludivine, ping_time). Les premiers 128 bits de HMAC qui en résulte est notre entropie supplémentaire fonction XOR avec chaque appel à rand48. Entropie de réseau rassemblant stade est ce qui est responsable d’un retard assez longs à la première demande au noyau étincelle après qu’il démarre. Pour désactiver cette scène commentez PING_TEST_SERVER en SparkRandomNumberGenerator.h: 34.
  3. Le nombre aléatoire généré de 128 bits est la fonction XOR avec premières 128 bits du HMAC (Ludivine, Current_Timestamp). Donc le temps au cours de laquelle le nombre aléatoire a été demandé est utilisé pour l’entropie supplémentaire.

Tout ce que nous devons faire maintenant est de stocker les graines pré-calculée dans un Flash externe. Voir les prochaines étapes.

Articles Liés

Comment transférer vieux contacts iPhone vers Android

Comment transférer vieux contacts iPhone vers Android

Beaucoup de gens me demande la meilleure façon d'apporter leurs contacts iPhone à Android. La question est assez valable, car il existe de nombreuses façons dans laquelle vous pouvez synchroniser, transférer, ou sinon porter contacts iPhone à un nouv
Tutoriel de ceinture LED DIY

Tutoriel de ceinture LED DIY

Hey tout le monde ! donc c'est une révision de mon précédent LED adapté veste. C'était des LEDs beaucoup plus que cela... mais c'était dans une bande, et le câblage gardé obtenant serti ensemble jusqu'à un point où il ne serait pas le bon fonctionnem
Île de Internet

Île de Internet

Solar powered Pi framboise basé serveur hors connexion internet !Beaucoup d'entre nous sont les esclaves de l'information disponible sur l'internet pour la connaissance et du divertissement. Ces ressources sont parfois indisponibles pour nous, comme
Faire du Biodiesel à partir d’huile végétale usagée

Faire du Biodiesel à partir d’huile végétale usagée

Peut-être que si Walt et Jesse avaient eu à faire de biodiesel plutôt que la méthamphétamine ils auraient moins de problèmes avec les cartels mexicains, moins de meurtres et la violence et une vie tout à fait plus facile ? Aussi beaucoup plus écologi
Maison Boomerangs sur le Budget d’un étudiant

Maison Boomerangs sur le Budget d’un étudiant

fabrication de boomerangs est une de mes passions né des journées longues et ennuyeuses à ne rien faire. C'était une lutte pour trouver de nouvelles choses à faire sans dépenser beaucoup d'argent. Vous pouvez aller au cinéma et dépenser $8 pour vous
Portable Arduino Uno température et capteur d’humidité avec écran LCD

Portable Arduino Uno température et capteur d’humidité avec écran LCD

Hey tout le monde. J'ai acquis beaucoup de bonnes idées d'instructables au fil des ans. Comme il s'agit de mon premier ' ible, je me dis que je voudrais partager quelque chose que j'ai fait aussi bien. Je suis cela concluez le plein spectre Laser con
Firestarter bricolage

Firestarter bricolage

Je ne sais pas pour vous, mais j'ai une abondance de charpie de sécheuse, sciure, survolant les cartons de bougies et des oeufs non brûlées. Maintenant, si je ne pouvais trouver une utilisation pour ces matériaux...Étape 1: un peu d'histoire J'utilis
Dreamcatcher coude naturel

Dreamcatcher coude naturel

tout a commencé avec le calumet de Bacchus - une pipe comme cadeau pour mes meilleurs amis de mariage, j'ai fait.Ils ont été plus que satisfait du présent, et moins d'un an plus tard ils ont donné naissance à un fils grand.Ils ont conçu de moi d'être
Téléphone simple contrôlée Rover

Téléphone simple contrôlée Rover

Le MotorAir est l'une des façons plus faciles que j'ai vu pour contrôler un robot depuis votre téléphone.Je vais guider comment définir un maximum, mais d'abord nous allons examine les spécifications ainsi que des avantages et des inconvénients.Fiche
Comment faire pour créer une Installation de Wimboot de Windows 8.1

Comment faire pour créer une Installation de Wimboot de Windows 8.1

IntroductionVous êtes-vous déjà demandé comment les fabricants d'ordinateurs peuvent s'adapter une installation de 20GO de Windows sur un disque de 16 GB ? Il est maintenant possible avec 8.1 de Windows grâce à une fonctionnalité appelée « wimboot. »
Wanduh - ou comment relier une tonne de Tech

Wanduh - ou comment relier une tonne de Tech

Ce Instructable est actuellement en cours de construction lourde.Bienvenue à la Wanduh Instructable ! Ce projet a été effectué par six membres d'un Hackerspace Orlando appelé FamiLAB. Nous sommes une collection de décideurs et de professionnels dans
Comment prendre de bonnes Photos

Comment prendre de bonnes Photos

que j'ai été prise d'instructables, j'ai essayé d'améliorer la qualité des photos je prends. Ce que vous allez lire ici, c'est ce que j'ai appris l'an dernier de prendre des photos et comment faire ma « boite à lumière ».Les images que vous voyez son
Pull de Noël pas cher & laid 5 min

Pull de Noël pas cher & laid 5 min

à la recherche d'un cadeau pour un ex ?Peut-être pour cette moyenne ancien patron ?Eh bien ici, c'est...Mon pull de Noël de 5 min à peu de frais et laid !Imaginez le regard sur leurs visages quand ils déballer votre cadeau génial.Et la meilleure part
Comment faire des serviettes en tissu

Comment faire des serviettes en tissu

En quelque sorte les serviettes de tissu doivent avoir été remis de suite lorsque j'ai ramené quelques années et je n'ai pas eu de motif de leur besoin jusqu'à ce week-end. J'ai pensé qu'il serait assez facile de juste descendre au magasin et ramasse