为物联网设备通信“推出自己的”协议是否是个好主意?

物联网 安全 沟通 协议
2021-05-29 04:38:14

我听说很多人提到他们的嵌入式 IoT 设备不够强大,无法处理已知协议,例如HTTPS甚至套接字的TLS安全性。

相反,他们转而创建自己的协议,以生成适合其特定用例的自定义通信系统,尽管通常情况下,实际花费很少的时间开发协议,因为这不是特别重要的因素。通常,这些自制协议包括身份验证、安全性、加密等。

本文提出了许多陷阱中的一些,这些陷阱似乎等待着那些确实走上编写自己的协议的道路的人,众所周知,您不应该尝试编写自己的加密

在任何情况下,您都必须编写自己的协议,而不是使用现有的、经过测试的协议?你怎么知道自己动手是一个合理的想法,而不是一个很大的安全风险?

2个回答

自己动手的时间非常有限。当谈到设备约束时,重要的是要查看整个系统性能。可以肯定的是,最先进的技术确实会继续发展,但目标应该是优化端点能量性能,而不是研究如何处理没有良好熵源或没有足够内存来支持合适标准的设备。

这些是它确实有意义的场景

  1. 自己动手学习。特别是如果您对原型设计和进行相对比较感兴趣。一旦你学会了,在你的研究指导下选择最好的标准。

  2. 改进当前最先进的技术。更安全、更高效听起来像是一场胜利。甚至可能让你变得富有。

  3. 自行解决现有协议无法适应的环境约束(而不是产品选择) - 但这可能更多地出现在物理/传输层。例如,高度容易出错的通道或对阻塞的高弹性的需求。即便如此,您需要的元素可能已经存在,只需要组装即可。

如果是产品设计,您不太可能通过在硬件上节省 0.5 美元来实现差异化。您要么为您的客户提供了良好的增值服务,要么拥有一款即使听起来很酷也没有人想要的不安全产品。

可维护性怎么我更喜欢加入一个说“meh、https 和河豚”的项目,而不是“嘿,我们刚刚尝试了一种新的加密算法,这意味着围绕我们的椅子转 3 次并在屏幕前唱出 base64 结果”。

我想说的是,如果您的设备缺乏用于协议/加密程序的能力(内存、计算等),那么您应该将其调整到最高效率,而不必等待很长时间才不烧毁您的设备。在 IoT.SE 中多次提到COAP,这是为特定设备编写的“新”协议示例!

这应该是为了个人使用(沙盒、内部网络等)。

你怎么知道自己滚动是否是一个合理的想法

让我们面对现实吧,如果你提交它,每个人都会对你的算法有话要说,你会遇到过时。但它可以为未来的项目开辟一个新的视角,可以从你的经验中学习。

TL; 博士

  • 考虑可维护性!你的新算法有吸引力吗?易于维护?
  • 如果您的设备具有与现有解决方案不匹配的特定功能,请执行此操作
  • 先在封闭系统中测试
  • 提交并准备接受批评

PS:HTCPCP(咖啡壶控制协议)是个笑话,现在已经广泛实施了!