Núcleo de la chispa y abridor de garaje Android. Menos la nube de chispas. (10 / 19 paso)

Paso 10: Fije arquitectura de canal de comunicación

La parte más delicada de este proyecto fue el diseño de un canal seguro que sería resistente a los ataques de Replay y Man In The Middle . Creo que fui capaz de conseguirlo, y he implementado la solución de una manera que hace muy fácil volver a utilizar en cualquier otro proyecto del núcleo de la chispa.

Este paso da a tener una visión general de cómo se diseña y se utiliza esta biblioteca.

SecureChannelServer

Todas las primitivas criptográficas y el protocolo de establecimiento de sesión son ejecutadas por el SecureChannelServer. La aplicación delega la comunicación real y procesamiento de interfaces CommunicationChannel y SecureMessageConsumer de mensajes. Estas son las dos interfaces que debe implementar un usuario de esta biblioteca.

Tenga en cuenta que el método solo publico que esta clase tiene es loop(). Está diseñado para ser llamado desde el método principal loop() en application.cpp, mantenido por las bibliotecas del núcleo de la chispa.

Los detalles del funcionamiento de esta clase son en un siguiente paso.

CommunicationChannel

Se utiliza para implementar un enfoque de comunicación específicos, como TCP/IP por WiFi por ejemplo. Sabe nada acerca de cifrar o descifrar los datos. En cambio, SecureChannelServer utilizará esta interfaz cada vez que necesita para leer o escribir datos cifrados.

SecureMessageConsumer

Aplicación recibirá mensajes descifrados y devolverá las respuestas del texto a la SecureChannelServer. Es completamente independiente de cómo el mensaje fue descifrado, o cómo fue recibido.

Este enfoque de diseño, es muy fácil de desarrollar y probar el SecureChannelServer. Si miras dentro de núcleo-firmware/bibliotecas/garaje/pruebas, usted encontrará implementaciones de prueba simulada de ambas interfaces, que permite escribir y depurar todo el código cifrado sin necesidad de hardware o incluso red.

WiFiCommunicationChannel Clase

Se encarga de los detalles de conectarse a la base WiFi, administrar un servidor de TCP/IP en el puerto 6666 y gestiona las conexiones de cliente. Esta es la clase que hace ping el servidor de prueba a cada minuto para comprobar la conexión.

Garaje Clase

Se trata de la implementación de la interfaz SecureMessageConsumer . Actúa como el controlador de puerta de garaje, manipulación de las características de hardware de activar el interruptor y leyendo el sensor de la puerta.

Por favor consulte el diagrama UML para más detalles.

Artículos Relacionados

IoT controlada inteligente salida lámpara utilizando el núcleo de la chispa y IFTTT

IoT controlada inteligente salida lámpara utilizando el núcleo de la chispa y IFTTT

Yo quería tener una lámpara de noche que se enciende después del atardecer y apagará en medio de la noche. Los temporizadores disponibles en homedepot u otras ferreterías sólo permite establecer un tiempo. Ya que en USA existe horario, tuvo que ser c
Remoto control humano (proporcionado por el núcleo de la chispa)

Remoto control humano (proporcionado por el núcleo de la chispa)

En este Instructable, usaremos una base de chispa, un TENS (estimulación eléctrica transcutánea del nervio) unidad y un simple relé para controlar remotamente un súbdito humano través de WiFi. Mwuahahaha!El núcleo de la chispa se conecta a tu minion
Núcleo de la chispa / fotón y CloudMQTT

Núcleo de la chispa / fotón y CloudMQTT

En este instructables aprenderá sobre "message queuing" especialmente "MQTT" Protocolo que se utiliza especialmente para aplicaciones de IoT, en nuestro caso el núcleo de la chispa / fotón.Utilizaremos la biblioteca proporcionada por c
Relés de núcleo de la chispa controlado con panel web

Relés de núcleo de la chispa controlado con panel web

¿Cuál es el uso de Internet de las cosas (IoT) si no se controlan artefactos domésticos de internet? ;)Este proyecto surgió de una de las primeras cosas que viene a la mente cuando pensamos en IoT: girar la máquina de café cuando vamos a trabajar por
Núcleo de la chispa activa un arrancador del coche de control remoto por WiFi

Núcleo de la chispa activa un arrancador del coche de control remoto por WiFi

Arrancadores remotos en los coches son impresionantes! Caliente el coche durante el invierno y fresco durante el verano. ¿Es bueno tener un mando a distancia, pero lo que si quiere trabajar más lejos?En mi oficina, mi control remoto no puede llegar h
SparkTwister: Un juego usable con el núcleo de la chispa Spark.io

SparkTwister: Un juego usable con el núcleo de la chispa Spark.io

SparkTwister es un juego de físico para 4 o más jugadores. Cada jugador lleva una pulsera de control simple de un tablero de Spark.io con un escudo de SparkButton y un sensor RGB. Cuando el juego comienza, todos los LEDs en tu pulsera enciende para a
Planta de riego con el núcleo de la chispa

Planta de riego con el núcleo de la chispa

Este proyecto fue inspirado en el original Garduino Instructable. Estoy usando un núcleo de la chispa para publicar la humedad del suelo sobre mis plantas así como la capacidad de distancia de agua cada planta. El Instructable original muestra que se
Núcleo de la chispa - no necesita escribir una aplicación de iPhone!

Núcleo de la chispa - no necesita escribir una aplicación de iPhone!

Bob y yo estamos empezando a trabajar en un nuevo proyecto - más que en un futuro Instructable - y necesita un internet con microcontrolador. Por supuesto el Arduino vino inmediatamente a la mente, sino en conseguir el ' neto puede ser un desafío. Ta
Construcción de un circuito simple con el núcleo de la chispa!

Construcción de un circuito simple con el núcleo de la chispa!

Hemos sido capaces de crear un circuito inalámbrico que fue voluntad de parpadear un LED usando el núcleo de la chispa!Paso 1: Necesitarás algunos materiales...-Núcleo chispa-Tablero de pan sin soldadura-LED bombilla-Resistencia-Alambre-Fuente de ene
Conectar el núcleo de la chispa con un Mac (OS X)

Conectar el núcleo de la chispa con un Mac (OS X)

Hay un poco de recursos sobre cómo conectar su chispa a la Internet o cómo conectarse a la red sin embargo todos ellos parecían que faltan algunas medidas, algunas de las cosas que sin duda se ejecutará en. Espero poder capturar estos al tiempo que m
LED inalámbrico controlador de acuario con chispa. NÚCLEO de la IO en TechShop

LED inalámbrico controlador de acuario con chispa. NÚCLEO de la IO en TechShop

Aquí estoy en TechShop con un increíble controlador micro de Spark.io llamado "Núcleo". Planeaba usar un Arduino para controlar mi acuario de arrecife de agua salada cuando un amigo me mostró la base. Este potente controlador micro pequeño es fá
Núcleo/fotón parte 2 - conexión de la nube de la chispa

Núcleo/fotón parte 2 - conexión de la nube de la chispa

Este instructable fue creado como parte de la noche de construir Instructables con Spark.io en MakeICT.Este es el segundo instructivo en la serie del núcleo de la chispa. Aquí es el primero.Spark.IO ha anunciado el nuevo fotón de chispa que es un pre
Núcleo/fotón parte 1 - configuración de la chispa

Núcleo/fotón parte 1 - configuración de la chispa

Este instructable fue creado como parte de la noche Instructable construir en MakeICT.El núcleo de la chispa es compatible Arduino que puede ejecutar muchas bibliotecas para Arduino, tiene un chip incorporado de WiFi con la antena y a requerimientos
Conseguir un núcleo de chispa sin aplicación de chispa

Conseguir un núcleo de chispa sin aplicación de chispa

El Núcleo de la chispa es una potente herramienta, una CPU de 32 bits, un montón de almacenamiento en chip y fuera del chip para código resultados, requisitos de baja potencia y chip WiFi incorporado y antena. Muchas llamadas de Arduino e incluso muc