Answers:
安装在Arduino上的MCU没有能力处理https连接。
Yún确实在Linux端使用curl,wget或python之类的软件处理https 。您的草图可以仅将任务委托给linux端。
虽然curl可以正常工作,但是尽管预先安装了python,但您仍需要手动安装python-openssl,因为它开箱即用(由于磁盘空间限制)
(免责声明:我实际上是evothings.com文章的作者)
Arduino UNO具备执行TLS的能力。我刚刚完成了有关该主题的博客文章系列。我有一个Arduino UNO的工作示例,它正在执行椭圆曲线加密(sect163r2)交换AES-128密钥以继续通信。
http://ardiri.com/blog/utls_defining_lightweight_security_for_iot_part_1
...
http://ardiri.com/blog/utls_defining_lightweight_security_for_iot_part_8
我采用了另一种方法来尝试建立真正的HTTPS连接-相反,这是在后台使用相同的协议,但使用的是不安全的通信通道。HTTP上的几乎TLS。
为了将其链接到此处,我将其作为答案列出。这是不完整的HTTPS还,但他正在它,它可能是可行的,将来 http://evothings.com/is-it-possible-to-secure-micro-controllers-used-within-iot/
这是他使用1024位公用密钥加密邮件的基准
Arduino UNO 16Mhz AVR ==> 12596 ms* 8504 ms#
Arduino Leonardo 16Mhz AVR ==> 12682 ms* 8563 ms#
Arduino Mega 16Mhz AVR ==> 12596 ms* 8504 ms#
Arduino Due 84Mhz ARM ==> 1032 ms*
Arduino Yún 16Mhz AVR + 400Mhz MIPS ==> 707 ms*
Intel Galileo 400Mhz x86 ==> 192 ms*
到目前为止,他已经完成了这项工作,但是正在设置测试服务器以尝试了解他可以完成的完整ssl / https实现程度。
正如Federico Fissore所说,Yún只能在Yún的Linux端处理HTTPS(或SSL,无论您想称呼它什么)。
第一种方法是将Python与Python OpenSSL结合使用。执行此操作的方法是通过SSH或YunSerialTerminal发出以下命令:
opkg update
opkg install python-openssl
opkg update
将确保软件包列表是最新的,然后opkg install
安装Python OpenSSL。然后您可以使用Python与Arduino对话。Arduino网站上的此页面应帮助您将Python与Arduino一起使用。
您也可以在草图中使用curl
该-k
选项。例如:
Process process;
process.runShellCommand("curl -k http://example.net");
while(p.running()); // this waits for the command to be done before continuing
另外,如果您要下载文件,则可以使用wget
。这将要求您wget
通过再次通过SSH或YunSerialTerminal发出以下命令来进行升级:
opkg update
opkg upgrade wget
然后,您可以在草图中执行以下操作:
Process process;
process.runShellCommand("wget http://example.net");
while(p.running()); // this waits for the command to be done before continuing
使用WiFi防护板可以是一种解决方案-它支持HTTPS。