33

在以前版本的 Arduino 中,8 位微控制器板的限制,似乎实现 HTTPS(不仅仅是 HTTP)几乎是不可能的。但较新版本的 Arduino Due 提供 32 位 ARM 内核 - 请参阅此处的规范。

我试图检查几个网络库(libcurl、openssl、yaSSL),但我没有找到任何已经移植到与 Arduino Due 一起工作的人。

OpenSSL 可能太重而无法在此处理器上运行,但我相信yaSSL作为嵌入式库应该是可以做到的。

你有我可以用来触发 Arduino Due 上的 HTTPS 请求的库的任何信息吗?

4

3 回答 3

20

不幸的是,这对于评论来说太长了。

没有开箱即用的解决方案

从我收集到的信息来看,对于在Atmel SAM3X8E ARM Cortex-M3 CPU上运行的网络服务器,没有直接的解决方案,可以开箱即用地输出 HTTPS。Texas Instruments目前使用配备Stellaris 微控制器 ARM Cortex-M3 CPU的主板提供了更好的选择

► 替代品

有几种可用的选项可以呈现加密功能,基于这些选项可以布置和实现与中间设备通信的简单安全通信协议,这反过来又促进了快速应用程序开发和 SSL。

这个中间设备,例如一个现成的 70 美元的 Android 智能手机,可以让您的项目保持移动和连接,在指定的端口上运行一项服务,该端口又与Amazon SQS通信。已经可用。这听起来可能很难看或很难,但比在 Arduino 上为具有完整 TLS 3 支持的网络服务器做编程基础要容易得多。考虑到适当的动机,后者可能很容易,但如果一个人只是想为自己的项目找到一个快速务实的解决方案,那就不行了。

密码库

讨论

以下是帮助您入门的讨论列表:

其中许多库仍需要进行调整,但社区专家可以很快为您提供帮助。

祝你好运!如果您可以随意将您的最终项目上传到 github,那么您将获得感谢和关注。

于 2013-04-13T06:27:51.130 回答
7

恕我直言 Arduino(包括 DUE)是基于 Web 的繁重和/或加密通信的错误工具。我强烈建议在相同尺寸和价格范围内寻找更合适的硬件。一旦您进入 https,您就足够接近,并且还想要真正操作系统提供的许多其他东西。换句话说,我建议选择 Raspi 之类的东西。类似的大小和价格,但功能更强大,尤其是它可以运行 Linux。--> HTTPS 变得简单。

于 2013-04-13T08:25:15.747 回答
7

arduino 上 https 支持的一个大问题是处理器过载的危险,这可能会使项目不可行。

即使是像PolarSSL这样的嵌入式平台目标解决方案也会消耗过多的内存并使用过多的处理能力。请记住,即使在最简化的实现中,SSL 支持也必须得到推广才能被广泛采用,并且将包括您认为不必要的组件。还有一个问题是您将信任哪些证书颁发机构,以及您将如何与他们就证书撤销等事情进行通信。

相反,我会寻找一种表面上不会满足您需求的解决方案。类似CurveProtect的东西,它是CurveCP的一个实现。

当然,你的决定很大程度上取决于你想做什么以及你想花多少时间来解决问题。PolarSSL 的占用空间可以小至 30K(通常接近 100K)。

于 2013-04-14T11:28:40.233 回答