【问题标题】:Why do the Rust OpenSSL docs say the defaults are insecure?为什么 Rust OpenSSL 文档说默认值不安全?
【发布时间】:2023-01-09 12:13:44
【问题描述】:

我在 Rust OpenSSL 文档中查找 SslAcceptor 类型,看到第一句话是:

OpenSSL 的默认配置非常不安全。此连接器管理 OpenSSL 结构、配置密码套件、会话选项等。

然后我查看了源代码,看到他们根据 Mozilla 的建议设置了 diffie-hellman 参数和密码套件。

为什么原始的 OpenSSL 配置不使用这个配置,为什么要留给各个库来正确设置它?

【问题讨论】:

  • 大概是向后兼容吧?

标签: rust openssl


【解决方案1】:

为什么原来的 OpenSSL 配置不使用这个配置...

加密算法的要求会随着时间而变化,即没有永远最好的正确配置。 OpenSSL 具有 DEFAULT 或 HIGH 之类的设置,它们会不时获得更新,通常是主要版本。因此,实际上没有特定设置的应用程序使用的默认值取决于所使用的 OpenSSL 版本、编译时选项,有时还取决于系统配置。

... 为什么要留给各个图书馆来正确设置?

如果想要在独立于特定库版本和系统设置的设置中保持一致的行为,则需要在代码中提供预期的设置,而不是依赖外部库和设置。

然后我查看了源代码,看到他们根据 Mozilla 的建议设置了 diffie-hellman 参数和密码套件。

这只是代码中声明的内容。不久前这可能是真的。但是这些建议已经发生了变化。

具体来说,该代码仍然启用 3DES 作为对称加密,并为 HMAC 启用 SHA1。它还允许 TLS 1.0 和 TLS 1.1,同时禁用 TLS 1.3。这一切都不符合当前的what they link to 中的中级说明。

目前,Rust 面临着与 OpenSSL 相同的问题——一个特定的库版本具有硬编码的安全设置,这些设置在某些时候很有用,但过了一段时间就过时了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-30
    • 1970-01-01
    • 2021-03-28
    • 2014-08-09
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多