C语言 Arduino Due HTTPS Support



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

我尝试检查几个网络库(libcurl, openssl, yaSSL),但我没有找到任何已经移植到Arduino Due的人。

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

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

遗憾的是,这个注释太长了。

没有现成的解决方案

从我收集到的,有没有直接的解决方案对于运行在Atmel SAM3X8E ARM Cortex-M3 CPU上的web服务器,输出HTTPS开箱即用。德州仪器目前提供了更好的选择,他们的电路板配备了一个Stellaris微控制器ARM Cortex-M3 CPU

►替代

有几个可用的选项来呈现加密功能,在此基础上可以布局和实现一个简单的安全通信协议,该协议与中间设备通信,从而促进快速应用程序开发和SSL。

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

加密库

  • crypto-arduino-library http://code.google.com/p/crypto-arduino-library/(自2010年以来未维护)
  • matrixssl
  • mbed TLS(以前的PolarSSL)
  • wolfSSL(原CyaSSL)

下面是一个讨论列表,可以让你开始:

  • Arduino上的HTTPS替代方案
  • 来自微控制器的SSL
  • 轻量级分组加密

这些库中的许多仍然需要修改,但是社区专家可以相当快地帮助您。

祝你好运!如果你可以自由地将你的最终项目上传到github,那么你刚刚获得了一个感谢和一个追随者。

IMHO Arduino(包括DUE)是错误的工具,用于重型和/或加密的基于web的通信。我强烈建议在相同的尺寸和价格范围内寻找更合适的硬件。一旦您开始使用https,您就会想要真正的操作系统提供的许多其他东西。换句话说,我建议使用像Raspi这样的东西。类似的大小和奖励,但更强大,特别是可以运行Linux。--> HTTPS变得简单了

在arduino上支持https的最大问题是有可能使处理器过载,从而使项目无法运行。

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

相反,我会寻找一个表面上不那么破碎的解决方案来满足你的需求。比如CurveProtect,它是curveecp的实现。

当然,你的决定很大程度上取决于你想做什么,以及你想花多少时间来解决这个问题。PolarSSL的内存占用可以小到30K(更典型的是接近100K)。

最新更新