【问题标题】:Is it possible to use ChaCha20 and Poly1305 in nodejs?是否可以在 nodejs 中使用 ChaCha20 和 Poly1305?
【发布时间】:2017-06-17 12:29:48
【问题描述】:

我想在 nodejs 中为 TLS 启用 ChaCha20Poly1305,但如果我在 Ubuntu 16.04.2 LTS 上运行的 nodejs v6.10.3 上运行 tls.getCiphers(),他们不在那里。

那么,如果我不自己构建自定义 nodejs,这可能吗?我可以通过使用纯 JavaScript 来输入这些密码吗?

任何信息将不胜感激。我需要这个,因为我正在与不支持硬件加速 AES 的 IoT 设备进行通信,并且使用 ChaCha20 可能会大大提高性能。

【问题讨论】:

  • 密码套件是 TLS 1.3 的一部分。您将需要 OpenSSL 1.1.0 来获取它们。这可能意味着从源代码构建 OpenSSL 和 Node.js。我还建议对两者都使用 RPATH,如 OpenSSL wiki 上的 Compilation and Installation | Using RPATHs 所述。
  • 感谢您的回答。我宁愿不必自己做这件事,因为这样我就会自己拥有一个 nodejs 版本来维护和更新。如果 OpenSSL 1.1.0 计划在不久的将来有时会进入 nodejs,你现在碰巧吗?
  • 我不知道关于 OpenSSL 的 Node.js 计划是什么。 Distro 可能需要数年时间才能采用 OpenSSL 1.1.0。在发行版赶上之前,您可能需要自己维护它。我在这种情况下使用构建脚本(“this”意味着我需要一些重要的更新,比如 SSH 或 Git)。另请参阅Noloader | Build-ScriptsGitHub。 SSH 与您需要做的类似。
  • 谢谢。谷歌搜索,如果我正确解释了这个帖子,它看起来像是为 Node.js 9 安排的:github.com/nodejs/node/pull/11828
  • @jww 这只是部分正确。您确实需要 OpenSSL 1.1.0 才能获得基于 ChaCha20/Poly1305 的密码套件。但是它们在 TLSv1.2 中可用。 OpenSSL 1.1.0 不支持 TLSv1.3。

标签: node.js openssl


【解决方案1】:

我自己在 2017 年 10 月 19 日回答这个问题。

Node 6、7、8 甚至即将到来的 9 都没有可用的支持。

从 TSC 看到的最后一条消息(关于此事)是本次会议的协议:https://github.com/nodejs/TSC/pull/387/files

所以看起来 node.js 10 中可能支持 ChaCha20 和 Poly1305,如果他们可以解决 OpenSSL 1.1 的 FIPS 问题。

【讨论】:

    猜你喜欢
    • 2018-12-03
    • 2018-06-02
    • 2015-09-30
    • 2019-07-15
    • 2021-08-10
    • 1970-01-01
    • 1970-01-01
    • 2016-12-10
    • 2019-05-25
    相关资源
    最近更新 更多