Einfach ausgedrückt: Gibt es eine Möglichkeit, eine HTTPS-Verbindung auf dem Arduino herzustellen?
Ich habe es mir angesehen und festgestellt, dass es mit der Standardbibliothek und dem Ethernet-Shield nicht möglich ist, aber gibt es eine benutzerdefinierte Bibliothek, die das kann?
Was ist mit einem Coprozessor, also wie der WiFi-Shield? Wer weiß, ob der Arduino yún SSL hat?
ethernet
arduino-yun
web
Der Doktor
quelle
quelle
Antworten:
Auf Arduinos installierte MCUs können keine https-Verbindungen verarbeiten.
Auf der Linux-Seite verarbeitet Yún https mit Software wie curl, wget oder python. Ihre Skizze kann die Aufgabe nur an die Linux-Seite delegieren.
Obwohl curl einwandfrei funktioniert, müssen Sie python-openssl manuell installieren, da es aus Platzgründen nicht sofort verfügbar ist.
quelle
(Haftungsausschluss: Eigentlich bin ich der Autor des evothings.com-Artikels.)
Die Arduino UNO ist mehr als fähig, TLS durchzuführen . Ich habe gerade eine Blogpost-Serie zu diesem Thema fertiggestellt. Ich habe ein Arbeitsbeispiel einer Arduino UNO, die eine Kryptographie mit elliptischen Kurven durchführt (sect163r2), um einen AES-128-Schlüssel für die weitere Kommunikation auszutauschen.
http://ardiri.com/blog/utls_defining_lightweight_security_for_iot_part_1
...
http://ardiri.com/blog/utls_defining_lightweight_security_for_iot_part_8
Ich habe einen alternativen Ansatz gewählt, um eine echte HTTPS-Verbindung herzustellen. Stattdessen werden dieselben Protokolle unter der Haube verwendet, wobei jedoch ein unsicherer Kommunikationskanal verwendet wird. Ziemlich viel TLS auf HTTP.
quelle
Ich denke nicht, dass dies aufgrund der Größe und Komplexität der SSL-Bibliothek möglich ist, da das Arduino höchstwahrscheinlich unter Strom stehen würde. Davon abgesehen können Sie die Anforderungen an einen regulären Server richten und eine Art PHP-Skript verwenden, um die Anforderung an den HTTPS-Server weiterzuleiten. Ich bin mir nicht sicher, wie gut es funktionieren würde.
Sie können in der Suche zu interessieren diese .
quelle
Ich liste dies als Antwort auf, um es hier verlinken zu können. Es ist noch nicht voll https aber er arbeitet daran und es kann in Zukunft machbar sein http://evothings.com/is-it-possible-to-secure-micro-controllers-used-within-iot/
Hier ist ein Benchmark, bei dem er eine Nachricht mit einem öffentlichen 1024-Bit-Schlüssel verschlüsselt hat
Dies ist so weit, wie er es getan hat, ist aber dabei, einen Testserver einzurichten, um zu sehen, wie nahe er einer vollständigen ssl / https-Implementierung kommen kann.
quelle
Wie Federico Fissore bereits sagte, kann der Yún auf der Linux-Seite des Yún nur HTTPS (oder SSL, wie auch immer Sie es nennen möchten) verarbeiten.
Die erste Möglichkeit ist die Verwendung von Python mit Python OpenSSL. Dazu geben Sie die folgenden Befehle über SSH oder YunSerialTerminal ein:
opkg update
Stellt sicher, dass die Paketliste auf dem neuesten Stand ist, undopkg install
installiert dann Python OpenSSL. Und dann können Sie mit Python mit dem Arduino sprechen. Diese Seite auf der Arduino-Website soll Ihnen bei der Verwendung von Python mit Arduino helfen.Sie können auch verwenden ,
curl
mit der-k
Option in Ihrer Skizze. Beispielsweise:Wenn Sie eine Datei herunterladen möchten, können Sie auch verwenden
wget
. Hierfür müssten Sie ein Upgrade durchführen,wget
indem Sie die folgenden Befehle erneut über SSH oder YunSerialTerminal eingeben:Und dann können Sie dies einfach in Ihrer Skizze tun:
quelle
Die Verwendung von WiFi Shield kann eine Lösung sein - es unterstützt HTTPS.
https://www.arduino.cc/en/Reference/WiFi101
quelle