我的Arduino安全计划好吗?

时间:2018-02-18 16:39:00

标签: security encryption arduino

我正在开发一个项目,Arduino将通过以太网接口和REST API发送测量值并接收命令,以打开和锁定门。无论如何,我们可以认为设备受到保护,但可以访问以太网。因此,中间人攻击是合理的。

打开/锁定门的命令将成为HTTP GET请求的回复的一部分。为了防止MITM攻击伪造响应以打开锁,我想使用某种加密响应。现在,Arduinos缺乏使用HTTPS的能力,我希望它成为Arduinos因为成本和易于开发。

我提出了以下方案:

  • Arduino和服务器都有一组相同的索引值寄存器。该值将用作使用AES-128加密的代码。
  • 当Arduino发送其GET请求时,它还会发送一个随机选择的索引,向服务器指示用于加密open / lock命令的值。
  • 服务器发送明文响应(JSON),其中命令字段是加密文本。
  • Arduino将对其进行解码并应用所需的操作。

Arduino还会不时发送一些传感器数据。在这种情况下,它将发送用于加密数据和加密数据的代码索引。

索引值键的集合很大,因此重复很少(但可能会不时发生)。

我的问题是,这个方案安全吗?我错过了什么吗?是否有任何其他更加经过测试的替代方案可以保护这些不涉及使用更高级平台的交互?

提前致谢!

1 个答案:

答案 0 :(得分:1)

使用基于ESP2866的Arduino。它的成本并不高,它使用相同的工具,但您可以使用SSL而不是滚动自己的解决方案。我使用过Wemos D1板,它们可以替代Arduino。