随着越来越多的域被添加到证书中,HTTPS 协商会变慢吗?

信息安全 tls 表现
2021-08-12 19:37:47

我们在证书中运行具有 15 个不同通配符域(*.foo.ie、*.foo.uk 等)的商店前端。我们正在考虑将根域 (foo.ie, foo.uk) 添加到证书中,让存储前端处理重定向到 www.foo.* - 或者可能设置另一个仅包含根证书的证书,以及只是重定向它的简单前端。

我的问题是,具有许多域名的证书是否会因任何重要因素而导致 HTTPS 协商时间增加 - 即通过导致更多数据通过线路发送,可能导致更多 TCP 段?

从磁盘/内存读取证书并对其进行处理会增加成本,但与“在线时间”的微小增加相比,这应该可以忽略不计。

2个回答

名称的数量总体上是非常小的数据量;如果它推动交付证书超过数据包大小阈值,则增加的延迟不会明显影响具有宽带或其他高速连接的人类用户。接收计算机将有多达 14 个额外的字符串进行扫描;同样,对于任何特定的人类用户来说,开销都是难以察觉的。

Qualys SSL Labs几年前进行了一次证书调查,并在Blackhat上展示了他们的发现。他们发现了许多导致性能问题的问题。在多个域名的情况下,他们发现一个证书有354个不相关的域名,证书长8.2KB!所以是的,有一条线你可能不想越过,而 354 似乎越过了它。

他们发现影响性能的另一个常见问题是某些验证链太长。很久以前,一些 PKI 架构师提倡一种多层方法,其中每个证书将由一个根 CA、一个或两个从属 CA 和一个或两个策略 CA 签名。在四个不同的验证步骤上运行 RSA 数学是让客户端陷入困境的原因,远远超过证书的大小。(Qualys 发现了 8 个签名深度为 6 的证书!)要保持尽可能高的性能,请保持签名链尽可能短。

他们还看到 43% 的服务器发送了太多的证书。通常,您会包括服务器的证书和验证它所需的任何中间签名证书到根(根证书通常包含在浏览器中,除非它是自签名证书。)许多站点通过包含额外的证书来浪费带宽不需要验证他们的网站。一个站点发回了一个包含 116 个证书的证书文件!

最后,他们发现了很多非常糟糕的证书。它们是自签名的、过期的、使用了弱算法或存在其他缺陷,这意味着它们的保护不是最佳的。在您需要通过证书实现的所有事情中,安全性是第一位的——性能不是。所以我建议使用他们的分析工具并找出他们对您的设置的看法。 https://www.ssllabs.com/ssltest/index.html每次更改服务器配置和更新证书后,我都会运行此检查。

更新:我已经切换到使用 nmap 脚本来检查我的服务器。确保您运行的是最新版本的 nmap,然后运行nmap --unprivileged -sV --script ssl-enum-ciphers -p 433 example.org. 这将列出服务器支持的密码,并提供表示每个密码安全性的字母等级,以及服务器的总体等级。适合查找 SSL/TLS 的过时和不安全版本、64 位密码等内容。您可以在任何主机和端口上运行它,因此您可以测试防火墙后面的应用程序服务器、Web 服务、内部服务器, 等等。

由于所有主题备用名称都是证书的一部分,并且证书由服务器在每次完整的 SSL 握手时发送,如果证书中有更多名称,则将通过线路发送更多数据。在最坏的情况下,这可能会导致需要额外的数据包,甚至整个服务器响应超过 TCP 中的初始窗口,因此将延迟到客户端确认先前的数据。在初始窗口大小较小的旧系统上尤其如此,如果需要多个中间证书并且使用较大的密钥大小,所有这些都会增加响应的大小。