简体   繁体   English

Arduino到期HTTPS支持

[英]Arduino Due HTTPS Support

In previous versions of Arduino, the limiting 8-bit microcontroller board, it seems that implementing HTTPS (not merely HTTP) was almost impossible. 在先前版本的Arduino(限制性8位微控制器板)中,似乎实现HTTPS(不仅仅是HTTP)几乎是不可能的。 But the newer version of Arduino Due provides 32-bit ARM core - see spec here . 但是较新版本的Arduino Due提供了32位ARM内核 - 请参阅此处的规范。

I tried to check several network libraries (libcurl, openssl, yaSSL), but I didn't find anyone that was already ported to work with Arduino Due. 我试图检查几个网络库(libcurl,openssl,yaSSL),但我没有找到任何已经移植到Arduino Due的人。

OpenSSL is probably too heavy to be able to run on this processor, but I believe that yaSSL as an embedded library should be possible to do. OpenSSL可能太重了,无法在这个处理器上运行,但我相信yaSSL作为嵌入式库应该是可行的。

Do you have any information of a library that I can use to trigger HTTPS requests on Arduino Due? 您是否有任何可用于在Arduino Due上触发HTTPS请求的库的信息?

Unfortunately this is too long for a comment. 不幸的是,评论太长了。

No out of the box solution 没有开箱即用的解决方案

From what I have gathered, there is no straightforward solution for a webserver running on the Atmel SAM3X8E ARM Cortex-M3 CPU that outputs HTTPS out of the box. 根据我收集的信息,在Atmel SAM3X8E ARM Cortex-M3 CPU上运行的Web服务器没有直接的解决方案 ,可以直接输出HTTPS。 Texas Intstruments provides better options at the moment using their boards equipped with a Stellaris Microcontroller ARM Cortex-M3 CPU . Texas Intstruments目前使用配备Stellaris微控制器ARM Cortex-M3 CPU的电路板提供更好的选择

► Alternative ►替代方案

There are several options available that render cryptographic functions, based upon which one could lay out and implement a simple secure communication protocol that communicates with an intermediary device, which in turn facilitates Rapid Application Development and SSL. 有几种可用的选项可以呈现加密功能,基于这些选项可以布置和实现与中间设备通信的简单安全通信协议 ,这反过来便于快速应用程序开发和SSL。

This intermediary device, for instance an off-the-shelf 70$ Android smartphone that keeps your project mobile and connected, runs a service on a specified port which in turn communicates with Amazon SQS . 这个中间设备,例如现成的70美元Android智能手机,可让您的项目保持移动和连接,在指定端口上运行服务,该端口又与Amazon SQS通信。 Already available . 已经可用 This may sound ugly or tough, but is much easier than doing the programmatic groundwork for a webserver with full TLS 3 support on the Arduino. 这可能听起来很难或很难,但比在Arduino上完全支持TLS 3的网络服务器的程序化基础要容易得多。 Given the proper motivation the latter may be easy, but not if one just wants a fast pragmatic solution to one's own project. 如果有合适的动机,后者可能很容易,但如果只是想要一个快速实用的解决方案来解决自己的项目,那就不行了。

Cryptographic libraries 加密库

Discussions 讨论

Following is a list of discussions to get you started: 以下是帮助您入门的讨论列表:

Many of these libraries would still need to be adapted, but community experts can help you with that fairly quickly. 许多这些图书馆仍然需要进行调整,但社区专家可以相当快地帮助您。

Good luck! 祝好运! If you are at liberty to upload your final project to github then you just gained a thanks and a follower. 如果您可以自由地将您的最终项目上传到github,那么您只是获得了感谢和关注者。

IMHO Arduino (including the DUE) is the wrong tool for heavy and/or encrypted web based communication. 恕我直言Arduino(包括DUE)是重度和/或加密的基于Web的通信的错误工具。 I would strongly suggest to look for more appropriate hardware in the same size and price range. 我强烈建议在相同的尺寸和价格范围内寻找更合适的硬件。 As soon you get into https you are close enough to also want a lot of the other stuff that real operating systems provide. 一旦你进入https,你就足够了,也想要真正的操作系统提供的许多其他东西。 With other words I suggest to go for something like the Raspi. 换句话说,我建议去找Raspi这样的东西。 Similar size and prize but way more powerful, especially it can run Linux. 类似的大小和奖励,但方式更强大,尤其是它可以运行Linux。 --> HTTPS becomes simple. - > HTTPS变得简单。

The big problem with https support on an arduino is the danger of overloading your processor which could make the project unviable. 支持arduino的https的一大问题是处理器过载的危险,这可能会使项目变得不可行。

Even embedded platform targetted solutions like PolarSSL can eat up too much memory and use too much processing power. 即使是像PolarSSL这样的嵌入式平台目标解决方案也会耗费太多内存并使用过多的处理能力。 Remember that even on the most streamlined implementations, SSL support is going to have to be generalized for wide adoption and will include components that you won't find necessary. 请记住,即使在最简化的实现中,SSL支持也必须进行推广以便广泛采用,并且将包含您不需要的组件。 There's also the question of which Certificate Authorities you will trust and how you will communicate with them for things like certificate revocation. 还有一个问题是您将信任哪些证书颁发机构以及如何与证书撤销等事项进行沟通。

I would look instead towards a solution that isn't as broken on the surface for your needs. 相反,我会寻求一种解决方案,而不是表面上的损坏,以满足您的需求。 Something like CurveProtect , which is an implementation of CurveCP . CurveProtect这样的东西,它是CurveCP的一个实现。

Of course, your decision will largely be based on what you want to do and how much time you want to spend figuring the problem out. 当然,您的决定很大程度上取决于您想要做什么以及您想花多少时间来解决问题。 PolarSSL has a footprint that can be as small as 30K (more typically close to 100K). PolarSSL的占用空间可小至30K(通常接近100K)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM