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

Étape 10 : Sécuriser le canal de Communication Architecture

La partie la plus délicate de ce projet est la conception d’un canal sécurisé qui serait résistant aux attaques de relecture et de Man-In-The-Middle . Je crois que j’ai pu atteindre cet objectif, et j’ai appliqué la solution d’une façon qui le rend très facile à réutiliser dans n’importe quel autre projet Spark base.

Cette étape donne un aperçu de comment cette bibliothèque est conçue et utilisée.

SecureChannelServer

Toutes les primitives cryptographiques et le protocole de mise en place de session sont mis en œuvre par le SecureChannelServer. La mise en œuvre délègue la communication réelle et traitement aux interfaces CommunicationChannel et SecureMessageConsumer du message. Ce sont seulement deux interfaces qu'utilisateur de cette bibliothèque doit implémenter.

Notez que la méthode publique uniquement que cette classe a est loop(). Elle est destinée à être appelée par la méthode principale loop() en application.cpp, desservis par les bibliothèques principales de l’étincelle.

Les détails du fonctionne de cette classe sont à une étape suivante.

CommunicationChannel

Sert à mettre en œuvre une approche de communication spécifiques, tels que TCP/IP via WiFi par exemple. Il ne sait rien sur crypter ou décrypter les données. Au lieu de cela, SecureChannelServer utilisera cette interface chaque fois qu’il a besoin pour lire ou écrire des données chiffrées.

SecureMessageConsumer

Mise en œuvre recevra les messages décryptés et renvoie les réponses en texte brut vers le SecureChannelServer. Il est complètement agnostique de la façon dont le message a été déchiffré, ou comment elle a été reçue.

Cette approche de conception le rend très facile de développer et de tester le SecureChannelServer. Si vous regardez à l’intérieur du noyau-firmware/bibliothèques/garage/tests, vous trouverez le test factice des implémentations de ces deux interfaces, qui rend possible pour moi d’écrire et de déboguer le code crypto sans aucune nécessité pour le matériel ou même réseau.

WiFiCommunicationChannel Classe

Gère les détails de connexion le noyau au WiFi, gestion d’un serveur TCP/IP sur le port 6666 et gestion des connexions client. Il s’agit de la classe ping le serveur de test à chaque minute pour vérifier la santé de la connexion.

Garage Classe

Il s’agit de notre implémentation de l’interface SecureMessageConsumer . Il agit comme le contrôleur de porte de garage, gère les détails de matériel d’actionner l’interrupteur et de lecture du capteur de porte.

Veuillez consulter le diagramme UML pour plus de détails.

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