对于资源有限的IoT设备(例如,具有32 kB内存的嵌入式系统、128个kB闪存、运行FreeRTOS等RTOS、小型TCP/IP堆栈(如lwIP)):
有一个终端类型的协议来进行调试或测试可能是有用的。然而,telnet并不安全,而SSH看起来非常复杂,因此很难实现并且适合于如此小的系统。
是否有任何轻量级但安全的终端协议适合于这样一个资源受限的IoT系统?
实际上,是否有可能将SSH缩减为精益实现,例如使用AES,但不使用3 3DES,即使后者对符合SSH的实现在技术上是强制性的?
发布于 2018-09-06 02:42:51
如果您只需要用于测试和调试,为什么需要它是安全的呢?当系统处于需要安全协议的潜在敌对环境中时,您不应该对它们进行调试。考虑到即使是最轻的安全协议也会占用系统内存的很大一部分,为调试和测试分配这么多资源是愚蠢的。你应该做的只是测试你的设备时,你有物理控制,理想的物理网络链接。
32 kB的内存正在推动它。即使是落水者也不能在有限的系统上运行。即使是做TLS也会很困难,因为WolfSSL可能不太适合。WolfSSL SSH库至少需要33 kB。您可能需要自己开发,如果使用FreeRTOS,这应该不会太困难。您可能没有任何东西可以直接进入32 kB系统。
如果您使用康蒂基作为实时操作系统,则可以使用这一TLS/DTLS实现。它需要比32 kB稍多一点的内存,但是如果您熟悉嵌入式编程和优化,并且不需要所有的特性,那么您应该能够充分地减少内存。
当您开始使用这种约束的系统时,每个系统都有不同的优先级。因此,没有人为像安全远程访问协议这样复杂的东西创建一个一刀切的库。人们通常希望您能够自己实现它,以满足您的确切需求,无论是从零开始,还是通过分叉一个极其轻量级的库。如果您不太可能做到这一点,您可能需要重新考虑您的硬件并切换到FreeRTOS以外的其他东西,或者您的威胁模型(并通过安全介质与系统通信)。
https://security.stackexchange.com/questions/193142
复制相似问题