【发布时间】:2017-06-17 12:29:48
【问题描述】:
我想在 nodejs 中为 TLS 启用 ChaCha20 和 Poly1305,但如果我在 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。