Mówiąc wprost: czy istnieje sposób na uzyskanie połączenia HTTPS na Arduino?
Zaglądałem w to i odkryłem, że jest to niemożliwe w przypadku standardowej biblioteki i osłony Ethernet, ale czy istnieje biblioteka niestandardowa, która może to zrobić?
Co z koprocesorem, tzn. Tak jak tarcza WiFi? Czy ktoś wie, czy Arduino yún ma ssl?
ethernet
arduino-yun
web
Doktor
źródło
źródło
Odpowiedzi:
Jednostki MCU zamontowane na Arduinos nie mają wystarczającej mocy do obsługi połączeń https.
Yún obsługuje https po stronie Linux , z oprogramowaniem takim jak curl, wget lub python. Twój szkic może po prostu delegować zadanie na stronę linux.
Chociaż curl działa dobrze, pomimo preinstalowanego Pythona, musisz ręcznie zainstalować Python-openssl, ponieważ nie jest on dostępny od razu po wyjęciu z pudełka (z powodu ograniczeń miejsca na dysku)
źródło
(Oświadczenie: W rzeczywistości jestem autorem artykułu evothings.com)
Arduino UNO jest więcej niż w stanie zrobić TLS. Właśnie skończyłem serię postów na blogu na ten temat. Mam działający przykład Arduino UNO wykonującego kryptografię krzywej eliptycznej (sekt163r2) w celu wymiany klucza AES-128 w celu kontynuowania komunikacji.
http://ardiri.com/blog/utls_defining_lightweight_security_for_iot_part_1
...
http://ardiri.com/blog/utls_defining_lightweight_security_for_iot_part_8
Podjąłem alternatywne podejście do próby nawiązania prawdziwego połączenia HTTPS - zamiast tego używa tych samych protokołów pod maską, ale używa do tego niezabezpieczonego kanału komunikacji. Prawie TLS na HTTP.
źródło
Nie sądzę, aby było to możliwe ze względu na rozmiar i złożoność biblioteki SSL, ponieważ Arduino najprawdopodobniej byłby niedostatecznie zasilany. Biorąc to pod uwagę, możesz przesyłać żądania do zwykłego serwera i użyć jakiegoś skryptu PHP do przesłania żądania do serwera HTTPS. Nie jestem jednak pewien, jak dobrze by to działało.
Być może zainteresuje Cię to .
źródło
Podaję to jako odpowiedź na link tutaj. Nie jest jeszcze pełny https, ale on nad tym pracuje i może być wykonalny w przyszłości http://evothings.com/is-it-possible-to-secure-micro-controllers-used-within-iot/
Oto test, w którym zaszyfrował wiadomość przy użyciu 1024-bitowego klucza publicznego
Jest to tak dalece, jak to możliwe, ale jest w trakcie konfigurowania serwera testowego, aby pracował nad sprawdzeniem, jak blisko pełnej implementacji ssl / https może się wycofać.
źródło
Jak powiedział Federico Fissore powyżej, Yún może obsługiwać HTTPS (lub SSL, jakkolwiek chcesz to nazwać) po stronie Linux Yúna.
Pierwszym sposobem na to jest użycie Pythona z Python OpenSSL. Można to zrobić, wydając następujące polecenia za pośrednictwem SSH lub YunSerialTerminal:
opkg update
upewni się, że lista pakietów jest aktualna, a następnieopkg install
zainstaluje Python OpenSSL. A potem możesz porozmawiać z Arduino za pomocą Pythona. Ta strona na stronie Arduino powinna pomóc ci w używaniu Pythona z Arduino.Możesz również użyć
curl
tej-k
opcji w swoim szkicu. Na przykład:Ponadto, jeśli chcesz pobrać plik, możesz użyć
wget
. Wymagałoby to aktualizacjiwget
poprzez ponowne wydanie tych poleceń za pośrednictwem SSH lub YunSerialTerminal:Następnie możesz to zrobić w swoim szkicu:
źródło
Rozwiązaniem może być użycie tarczy WiFi - obsługuje HTTPS.
https://www.arduino.cc/en/Reference/WiFi101
źródło