Em outras palavras: existe uma maneira de obter uma conexão HTTPS no Arduino?
Eu estive pesquisando e descobri que é impossível com a biblioteca padrão e o escudo Ethernet, mas existe uma biblioteca personalizada que pode fazer isso?
Que tal um coprocessador, ou seja, como o escudo WiFi possui? Alguém sabe se o Arduino yún tem ssl?
ethernet
arduino-yun
web
O médico
fonte
fonte
Respostas:
Os MCUs montados no Arduinos não têm potência para lidar com conexões https.
Yún lida com https no lado do linux , com software como curl, wget ou python. Seu esboço pode apenas delegar a tarefa para o lado do linux.
Enquanto o curl funciona bem, apesar de ter o python pré-instalado, você precisa instalar manualmente o python-openssl, pois ele não está disponível imediatamente (devido a restrições de espaço em disco)
fonte
(Isenção de responsabilidade: na verdade, sou o autor do artigo evothings.com)
A UNO do Arduino é mais do que capaz de executar TLS. Acabei de terminar uma série de post no blog sobre o assunto. Eu tenho um exemplo de trabalho de uma UNO do Arduino fazendo criptografia de curva elíptica (sect163r2) para trocar uma chave AES-128 por comunicação contínua.
http://ardiri.com/blog/utls_defining_lightweight_security_for_iot_part_1
...
http://ardiri.com/blog/utls_defining_lightweight_security_for_iot_part_8
Adotei uma abordagem alternativa para tentar fazer uma conexão HTTPS verdadeira - em vez disso, ele usa os mesmos protocolos sob o capô, mas usa um canal de comunicação inseguro para fazer isso. Praticamente TLS no HTTP.
fonte
Eu não acho que isso é possível devido ao tamanho e complexidade da Biblioteca SSL, porque o Arduino provavelmente estaria com pouca energia. Dito isto, você pode fazer as solicitações para um servidor comum e usar algum tipo de script PHP para fazer proxy da solicitação no servidor HTTPS. Não tenho certeza de como isso funcionaria.
Você pode estar interessado em analisar isso .
fonte
Eu listo isso como uma resposta para ter o link aqui. Ainda não está https completo, mas ele está trabalhando nisso e pode ser possível no futuro http://evothings.com/is-it-possible-to-secure-micro-controllers-used-within-iot/
aqui está uma referência que ele criptografou uma mensagem usando uma chave pública de 1024 bits
Isso é o máximo que ele fez, mas está no processo de configuração de um servidor de teste para ver como está perto de uma implementação completa de SSL / https que ele pode executar.
fonte
Como Federico Fissore disse acima, o Yún só pode manipular HTTPS (ou SSL, como você quiser chamá-lo) no lado Linux do Yún.
A primeira maneira de fazer isso é usar o Python com o Python OpenSSL. A maneira como você faz isso é emitindo os seguintes comandos via SSH ou YunSerialTerminal:
opkg update
irá garantir que a lista de pacotes esteja atualizada eopkg install
instala o Python OpenSSL. E então você pode conversar com o Arduino usando Python. Esta página no site do Arduino deve ajudá-lo a usar o Python com o Arduino.Você também pode usar
curl
com a-k
opção em seu esboço. Por exemplo:Além disso, se você quiser baixar um arquivo, poderá usar
wget
. Isso exigiria a atualizaçãowget
emitindo esses comandos novamente via SSH ou YunSerialTerminal:E então você pode fazer isso no seu esboço:
fonte
O uso do escudo WiFi pode ser uma solução - ele suporta HTTPS.
https://www.arduino.cc/en/Reference/WiFi101
fonte