2015年Windows 98/IE5为什么不能连接HTTPS站点?

信息安全 tls 视窗 IE浏览器
2021-08-17 21:54:13

最近我找到了一张旧的 Windows 98 Second Edition 安装光盘,想找点怀旧之情,我将它安装在 VirtualBox 中。Win98SE 附带 IE 5.0,使用该浏览器浏览网页的体验与您想象的一样糟糕。

我注意到,无论我尝试什么,我都无法让 IE 连接到任何HTTPS 站点。这让我想知道为什么会这样。它附带的所有受信任的 CA 证书是否都已过期?所有默认的 TLS/SSL 算法是否在过去 16 年中都被淘汰了?它是否需要 IE 高加密包(哇,自从我考虑到这一点以来,它已经永远存在了)。

我很好奇这是否会影响那个时代的其他操作系统(Mandrake 6!),或者核心问题是否是特定于 Windows 的。

4个回答

主要问题可能是那个时代的 IE 想要支持 SSL 2.0,因此,它ClientHello以 SSL 2.0 格式发送其初始消息 ( ),这与ClientHello后来的协议版本(SSL 3.0 和所有TLS 版本)。这允许浏览器连接到只知道 SSL 2.0 的服务器,而ClientHello客户端仍然可以使用更现代的东西。

但是,现代服务器不再支持 SSL-2.0ClientHello格式。有一段时间他们仍然接受该格式(即使他们不允许连接实际使用 SSL 2.0),但现在他们完全放弃了支持。值得注意的是,SSL-2.0ClientHello格式没有像 SNI 这样的扩展空间,这解释了放弃此类支持的冲动。

其他问题包括:

  • IE 6.0 支持 TLS 1.0,但默认禁用。我不知道 IE 5 是否支持 TLS 1.0,但无论如何它不会默认启用。然而,许多现代服务器也拒绝 SSL 3.0(因为 POODLE,正如 @etherealflux 所指出的那样)。

  • 客户端代码对 AES 一无所知,因为它可以追溯到该算法标准化之前。它将尝试使用基于 RC2、3DES 的密码套件,可能还有 RC4(这需要一些验证,因为 RC4 是 IE 的克星 Netscape 的属性,所以 IE 5 可能不会使用它)。如今,这些算法在服务器管理员中并不流行......

  • 现代站点使用相当大的加密密钥。通常,RSA 的密钥至少为 2048 位。旧的 Windows+IE 可以处理的 RSA 密钥的大小可能会受到更多限制。特别是,符合美国 2000 年前时代密码学出口规则的 Windows+IE可能被限制为 RSA 密钥的最大大小为 1024 位。同样的组合也将拒绝使用 3DES 或任何对称密钥大于 56 位的东西,而 2015 年没有像样的服务器会接受小于 128 位的任何东西。

对于基于 Linux 的系统,没有中央 SSL 实现(通常有一个 OpenSSL 库,但不像 Microsoft 的 SChannel 和 CryptoAPI 那样普遍)。所以每个浏览器都会有自己的规则。在 2000 年之前,这意味着 Nestcape Navigator(当它在 UTF-8 中看到任何内容时会出现段错误......)。也许一些早期的基于 KDE 的浏览器可以做一些 SSL ?在这种情况下,它可能会使用 OpenSSL,并且应该仍然能够通过正确的配置连接到某些服务器(特别是如果避免使用 SSL-2.0 格式ClientHello)。

可能还有更多原因,我只列出我想到的一些:

  1. 建立 SSL/TLS 连接(握手)时,客户端向服务器发送密码套件列表。然后,服务器的责任是选择将要使用的那个。如果没有合适的密码,则终止连接。
  2. SNI - 服务器名称指示扩展。AFAIK IE6 及更早版本的 XP 不支持此功能。

老实说,我什至不确定 IE5 是否支持 TLS。

你很可能是正确的。现在大多数网站都禁止使用过时的 SSL 协议——记得 SSL v3.0 是POODLE攻击的一部分,除此之外!如果您的浏览器仅支持禁用的协议,那么您将不会走得太远。

Wikipedia 在其页面上有一张很棒的关于SSL/TLS 的图表,显示了各种浏览器版本默认支持的协议。最重要的是,Internet Exploder 6 最多只支持 TLS 1.0,并且默认情况下是禁用的。这意味着您的浏览器可能正在尝试使用 SSL v3.0。

您应该能够检查受信任证书的状态 - 经过这么多年,我希望它们已经过期。操作系统太旧了,但谷歌搜索并没有提供太多关于如何做到这一点的建议!

可能的原因可能是没有多少服务器支持 IE5 能够使用的密码条件。在您的 IE 发布时,它只有 SSL 支持而不是 TLS 支持。

SSL 1.0 从未公开发布过。SSL 2.0 和 3.0 已被弃用。即使在野外的服务器可以支持它们,它们也可能不会在大多数流行网站的服务器上找到。

TLS 1.0 标准直到 1999 年才被定义。而微软长期以来因没有及时采用标准而臭名昭著。您的操作系统中可能包含 IE 5.0 或 5.01(错误修复版),缺少任何加密。带加密的版本是 5.5。它未与您的操作系统版本打包,但兼容。然而,你还不会是自由的和清晰的。它仅支持 IE 默认禁用的 128 位 TLS 1.0。

此外,也不支持 EV 证书、SHA-2 证书、ECDSA 证书。在野外寻找具有 128 位证书和 TLS 1.0 和 IE5 时代密码套装的服务器将是极其罕见的。