c - programar - Arduino Due HTTPS Soporte
arduino due serial (3)
En mi humilde opinión, Arduino (incluido el DUE) es la herramienta incorrecta para la comunicación basada en web pesada y / o cifrada. Recomiendo encarecidamente buscar hardware más apropiado en el mismo tamaño y rango de precio. Tan pronto como llegue a https, estará lo suficientemente cerca como para querer muchas otras cosas que ofrecen los sistemas operativos reales. Con otras palabras sugiero ir por algo como el Raspi. Similar tamaño y premio, pero mucho más potente, especialmente puede ejecutar Linux. -> HTTPS se vuelve simple.
En versiones anteriores de Arduino, la placa limitadora de microcontroladores de 8 bits, parece que la implementación de HTTPS (no simplemente HTTP) era casi imposible. Pero la versión más reciente de Arduino Due proporciona un núcleo ARM de 32 bits; consulte las especificaciones here .
Intenté verificar varias bibliotecas de red (libcurl, openssl, yaSSL), pero no encontré a nadie que ya estuviera portado para trabajar con Arduino Due.
OpenSSL es probablemente demasiado pesado para poder ejecutarse en este procesador, pero creo que yaSSL como una biblioteca incrustada debería ser posible.
¿Tiene alguna información de una biblioteca que pueda usar para desencadenar solicitudes HTTPS en Arduino Due?
Lamentablemente esto es demasiado largo para un comentario.
► No hay soluciones listas para usar
De lo que he recopilado, no hay una solución sencilla para un servidor web que se ejecuta en la CPU Atmel SAM3X8E ARM Cortex-M3 que genera HTTPS de forma inmediata . Texas Intstruments ofrece mejores opciones en este momento al usar sus tableros equipados con un microcontrolador Stellaris ARM Cortex-M3 .
► Alternativa
Hay varias opciones disponibles que representan funciones criptográficas, en función de las cuales se podría diseñar e implementar un protocolo de comunicación simple y seguro que se comunique con un dispositivo intermediario, lo que a su vez facilita el desarrollo rápido de aplicaciones y SSL.
Este dispositivo intermediario, por ejemplo, un teléfono inteligente Android de 70 dólares que mantiene su proyecto móvil y conectado, ejecuta un servicio en un puerto específico que a su vez se comunica con Amazon SQS . Ya available Esto puede sonar feo o difícil, pero es mucho más fácil que hacer el trabajo programático para un servidor web con compatibilidad total con TLS 3 en el Arduino. Dada la motivación adecuada, esto último puede ser fácil, pero no si uno solo quiere una solución pragmática rápida para el propio proyecto.
► Bibliotecas criptográficas
- crypto-arduino-library crypto-arduino-library (no se mantiene desde 2010)
- matrixssl
- mbed TLS (anteriormente PolarSSL)
- wolfSSL (anteriormente CyaSSL)
► Discusiones
A continuación hay una lista de discusiones para comenzar:
Muchas de estas bibliotecas aún necesitarían ser adaptadas, pero community expertos de la community pueden ayudarlo con bastante rapidez.
¡Buena suerte! Si está en libertad de subir su proyecto final a github, entonces acaba de obtener un agradecimiento y un seguidor.
El gran problema con el soporte de https en un arduino es el peligro de sobrecargar su procesador, lo que podría hacer que el proyecto no sea viable.
Incluso las soluciones dirigidas a plataformas integradas como polarSSL pueden consumir demasiada memoria y usar demasiado poder de procesamiento. Recuerde que incluso en las implementaciones más simplificadas, la compatibilidad con SSL tendrá que generalizarse para una amplia adopción e incluirá componentes que no encontrará necesarios. También está la pregunta de en qué Autoridades de Certificación confiará y cómo se comunicará con ellas para cosas como la revocación de certificados.
En su lugar, buscaría una solución que no esté tan rota en la superficie para sus necesidades. Algo así como CurveProtect , que es una implementación de CurveCP .
Por supuesto, su decisión dependerá en gran medida de lo que quiera hacer y de cuánto tiempo quiera dedicar a resolver el problema. PolarSSL tiene una huella que puede ser tan pequeña como 30K (más generalmente cerca de 100K).