【问题标题】:Purpose built light-weight alternative to SSL/TLS?为 SSL/TLS 专门构建的轻量级替代方案?
【发布时间】:2011-04-20 04:50:43
【问题描述】:

目标硬件是一个相当低功耗的 MCU(ARM Cortex-M3 @72MHz,只有大约 64KB SRAM 和 256KB 闪存),所以在这里走细线。我的主板确实有以太网,我最终将在其上运行 lwIP(轻量级 TCP/IP FOSS 套件)(目前正在苦苦挣扎)。但是,我还需要某种超轻量级的 SSL/TLS 替代方案。我知道此类 MCU 有多个 GPL 的 SSL/TLS 实现,但它们的足迹仍然相当大。虽然他们确实适合,但考虑到其他一切,不要给其他人留下太多空间。

我的流量不是HTTP,所以我不用担心HTTPS,而且我的客户端/服务器通信可以是完全专有的,所以非标准的解决方案是可以的。寻找可能是简约但强大的建议(弱安全性毫无价值),对我有帮助的替代方案--

  1. 加密我的通信 (C->S & S->C)
  2. 进行双向身份验证(C->S 和 S->C)
  3. 避免中间人攻击

我将无法在 ARMv7 汇编级别优化库,因此完全依靠我的编程技能和 GNU-ARM 编译器的优化。鉴于以上,任何可能是最佳选择的指针?

【问题讨论】:

  • 你也可以考虑在security.stackexchange.com上问这个问题。
  • 感谢@bavarious。一定会采纳你的建议并在那里发帖。
  • @bavarious。你的建议真的得到了回报。除了这里的答案之外,那里也得到了一些很好的答案。 security.stackexchange.com/questions/3204/…
  • 太棒了。还有一个 51 区的建议是针对以密码学为重点的 Stack Exchange 站点,但它还没有收集到很多忠实的用户,所以目前 security.SE 似乎是解决这些问题的最佳场所。

标签: security ssl encryption


【解决方案1】:

如果这些小型 TLS 实现中的任何一个允许您禁用所有 X.509 和 ASN.1 功能,并且只使用带有预共享密钥的 TLS,那么您的占用空间就会非常小。这是因为只使用了对称密码和哈希。

【讨论】:

  • 谢谢@Nikos,这听起来是个很棒的尝试。我可以问一下,放弃所有关于安全/密码学的假装,因为他们没有普遍使用这种机制吗?使用预共享密钥和使用对称密码/哈希是否存在一些固有的弱点/缺点/挑战?无论如何,我有很大的领先优势,并且一定会进一步研究。
  • @mike 他们没有我所知道的缺点,他们是IETF proposed standard。但是,您应该知道的是,“性能”TLS 密码套件(例如普通 PSK 密码套件和不涉及 Diffie-Hellman 密钥交换的 RSA 密码套件)不提供完美的前向保密。简单来说,如果有人窃取了密钥,他可以解密所有过去的会话。
  • 感谢@Nikos 的解释。
【解决方案2】:

CurveCP。它旨在完全取代 SSL。

它相当新,仍在开发中,但它的作者是该领域的知名专家,并且在过去十年中一直在努力朝着这个方向努力。 大量已经投入了仔细的研究和设计。

【讨论】:

    【解决方案3】:

    我的第一反应是考虑Kerberos。它已经过大量研究,因此此时出现重大漏洞的可能性相当小。同时,它相当简约,因此除非您限制您需要做的事情,否则您可能无法在不影响安全性的情况下使用任何更轻量级的东西。

    如果这对于您的目的来说仍然太繁重,那么您可能需要对您想要做的事情施加一些限制。

    【讨论】:

    • @jerry-coffin,感谢您提供的替代方案。阅读 Kerberos 维基百科页面以及 MIT 链接。这看起来是一种可行的可能性,尽管我还没有找到 Cortex-M3 的实现。肯定会跟随这个领导。我的客户端-服务器通信基于一个简单的基于 TCP 的二进制协议。
    • Kerberos 不是加密/解密堆栈,它用于不同的非常复杂的(以及需要内存和 CPU 的目的),因此它不会执行此任务
    【解决方案4】:

    您可以查看 MST(最小安全传输)https://github.com/DiplIngFrankGerlach/MST

    它提供与 TLS 相同的安全保证,但需要预共享密钥。此外,它非常小(小于 1000 LoC,没有 AES),因此可以很容易地被专家审查。

    【讨论】:

      【解决方案5】:

      我知道它会在大约两年后出现答案的变体,但是......“PolarSSL 的内存占用可以小至 30k,平均低于 110k。” https://polarssl.org/features

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-28
        • 1970-01-01
        • 2011-11-07
        • 2016-08-26
        • 2020-12-22
        • 1970-01-01
        • 1970-01-01
        • 2010-09-10
        相关资源
        最近更新 更多