Sederhananya: apakah ada cara untuk mendapatkan koneksi HTTPS di Arduino?
Saya telah mencari di dalamnya, dan saya telah menemukan itu tidak mungkin dengan perpustakaan standar dan perisai Ethernet, tetapi apakah ada perpustakaan khusus yang dapat melakukannya?
Bagaimana dengan coprocessor, seperti yang dimiliki WiFi shield? Adakah yang tahu apakah Arduino yún memiliki ssl?
ethernet
arduino-yun
web
Dokter
sumber
sumber
Jawaban:
MCU yang dipasang di Arduinos tidak memiliki kekuatan kuda untuk menangani koneksi https.
Anda menangani https di sisi linux , dengan perangkat lunak seperti curl, wget atau python. Sketsa Anda hanya dapat mendelegasikan tugas ke sisi linux.
Walaupun curl berfungsi dengan baik, walaupun memiliki python yang sudah diinstal, Anda perlu menginstal python-openssl secara manual, karena itu tidak tersedia di luar kotak (karena keterbatasan ruang disk)
sumber
(Penafian: Saya sebenarnya penulis artikel evothings.com)
Arduino UNO lebih dari mampu melakukan TLS. Saya baru saja menyelesaikan serangkaian posting blog tentang topik tersebut. Saya punya contoh kerja dari Arduino UNO melakukan kriptografi kurva eliptik (sect163r2) untuk bertukar kunci AES-128 untuk komunikasi yang berkelanjutan.
http://ardiri.com/blog/utls_defining_lightweight_security_for_iot_part_1
...
http://ardiri.com/blog/utls_defining_lightweight_security_for_iot_part_8
Saya mengambil pendekatan alternatif untuk mencoba membuat koneksi HTTPS yang benar - sebagai gantinya, ini menggunakan protokol yang sama di bawah tenda tetapi menggunakan saluran komunikasi yang tidak aman untuk melakukannya. Cukup banyak TLS di HTTP.
sumber
Saya tidak berpikir itu mungkin karena ukuran dan kompleksitas Perpustakaan SSL, karena Arduino kemungkinan besar akan di bawah daya. Yang sedang berkata Anda bisa membuat permintaan ke server biasa dan menggunakan semacam skrip PHP untuk mem-proxy permintaan ke server HTTPS. Tidak yakin seberapa baik itu akan berhasil.
Anda mungkin tertarik melihat ini .
sumber
Saya mencantumkan ini sebagai jawaban untuk membuatnya terhubung di sini. Hal ini tidak penuh https belum tapi dia bekerja di atasnya dan mungkin bisa dilakukan di masa depan http://evothings.com/is-it-possible-to-secure-micro-controllers-used-within-iot/
di sini adalah patokan dia mengenkripsi pesan menggunakan kunci publik 1024 bit
Ini sejauh yang dia lakukan dengan itu tetapi sedang dalam proses menyiapkan server uji untuk bekerja pada melihat seberapa dekat dengan implementasi ssl / https penuh dia bisa melakukan.
sumber
Seperti yang dikatakan Federico Fissore di atas, Yún hanya dapat menangani HTTPS (atau apa pun yang Anda ingin menyebutnya) di sisi Linux Yún.
Cara pertama untuk melakukannya adalah menggunakan Python dengan Python OpenSSL. Cara Anda melakukan ini adalah dengan mengeluarkan perintah berikut melalui SSH atau YunSerialTerminal:
opkg update
akan memastikan daftar paket terbaru, dan kemudianopkg install
menginstal Python OpenSSL. Dan kemudian Anda dapat berbicara dengan Arduino menggunakan Python. Halaman ini di situs web Arduino akan membantu Anda dalam menggunakan Python dengan Arduino.Anda juga bisa menggunakan
curl
dengan-k
pilihan dalam sketsa Anda. Sebagai contoh:Juga, jika Anda ingin mengunduh file, Anda bisa menggunakan
wget
. Ini akan mengharuskan Anda untuk memutakhirkanwget
dengan kembali mengeluarkan perintah ini melalui SSH atau YunSerialTerminal:Dan kemudian Anda bisa melakukan ini di sketsa Anda:
sumber
Penggunaan WiFi shield dapat menjadi solusi - mendukung HTTPS.
https://www.arduino.cc/en/Reference/WiFi101
sumber