En pocas palabras: ¿hay alguna manera de obtener una conexión HTTPS en el Arduino?
Lo he estado investigando y he descubierto que es imposible con la biblioteca estándar y el escudo de Ethernet, pero ¿hay una biblioteca personalizada que pueda hacerlo?
¿Qué pasa con un coprocesador, es decir, como el escudo WiFi tiene? Alguien sabe si el Arduino yún tiene ssl?
ethernet
arduino-yun
web
TheDoctor
fuente
fuente
Respuestas:
Las MCU montadas en Arduinos no tienen la potencia para manejar conexiones https.
Yún maneja https en el lado de Linux , con software como curl, wget o python. Su boceto puede simplemente delegar la tarea al lado de Linux.
Si bien curl funciona bien, a pesar de tener python preinstalado, debe instalar manualmente python-openssl, ya que no está disponible de fábrica (debido a restricciones de espacio en disco)
fuente
(Descargo de responsabilidad: en realidad soy el autor del artículo evothings.com)
El Arduino UNO es más que capaz de hacer TLS. Acabo de terminar una serie de publicaciones de blog sobre el tema. Tengo un ejemplo de trabajo de un Arduino UNO haciendo criptografía de curva elíptica (sect163r2) para intercambiar una clave AES-128 para una comunicación continua.
http://ardiri.com/blog/utls_defining_lightweight_security_for_iot_part_1
...
http://ardiri.com/blog/utls_defining_lightweight_security_for_iot_part_8
Tomé un enfoque alternativo para tratar de hacer una verdadera conexión HTTPS; en cambio, esto está usando los mismos protocolos bajo el capó pero usando un canal de comunicación inseguro para hacerlo. Bastante TLS en HTTP.
fuente
No creo que sea posible debido al tamaño y la complejidad de la Biblioteca SSL, porque lo más probable es que el Arduino tenga poca potencia. Dicho esto, puede realizar las solicitudes a un servidor normal y utilizar algún tipo de script PHP para enviar la solicitud al servidor HTTPS. Sin embargo, no estoy seguro de qué tan bien funcionaría.
Puede interesarle ver esto .
fuente
Enumero esto como una respuesta en aras de vincularlo aquí. Todavía no está completo https, pero está trabajando en ello y puede ser factible en el futuro http://evothings.com/is-it-possible-to-secure-micro-controllers-used-within-iot/
Aquí hay un punto de referencia que hizo encriptando un mensaje usando una clave pública de 1024 bits
Esto es lo más lejos que ha llegado con él, pero está en el proceso de configurar un servidor de prueba para trabajar y ver cuán cerca de una implementación completa de SSL / https puede lograr.
fuente
Como dice Federico Fissore anteriormente, el Yún solo puede manejar HTTPS (o SSL, como quiera llamarlo) en el lado de Linux del Yún.
La primera forma de hacerlo es usar Python con Python OpenSSL. La forma de hacerlo es emitiendo los siguientes comandos a través de SSH o YunSerialTerminal:
opkg update
se asegurará de que la lista de paquetes esté actualizada y luegoopkg install
instalará Python OpenSSL. Y luego puedes hablar con el Arduino usando Python. Esta página en el sitio web de Arduino debería ayudarlo a usar Python con Arduino.También puede usar
curl
con la-k
opción en su boceto. Por ejemplo:Además, si desea descargar un archivo, puede usarlo
wget
. Esto requeriría que actualicewget
nuevamente emitiendo estos comandos a través de SSH o YunSerialTerminal:Y luego puedes hacer esto en tu boceto:
fuente
El uso de WiFi Shield puede ser una solución: es compatible con HTTPS.
https://www.arduino.cc/en/Reference/WiFi101
fuente