为什么 HTTPS 获胜?有谁知道 Netscape 和 Microsoft 都选择HTTPS而不是S-HTTP (RFC 2660)的任何具体原因?
在我看来,S-HTTP 更灵活,不需要单独的 IP 或端口来提供正确的证书,因为 S-HTTP 能够利用主机标头。知识产权空间在当时是一个问题吗?
我可以看到 HTTPS 比 S-HTTP 加密了更多连接数据的论点,但是如果您能轻松地分辨出用户访问了哪个网站,我就没有什么意义,因为每个 IP 只有一个站点(大多数时间)并且证书通常会说明什么域。
我的回答:由 Netscape 在 1993/1994 年创建的 SSL 和 HTTPS 在 1994 年的同一时间自然而然地添加到其中。HTTPS 的最初目标是在不做任何更改的情况下将现有协议改造为安全性。S-HTTP 直到 1999 年才出现并需要 HTTP 1.1,因此到那时 HTTPS 已经根深蒂固,实施 S-HTTP 几乎没有什么好处。谢谢大家。
编辑:我在一些地方看到了名为“S-HTTP”的 RFC 2817,但这是错误的,与问题无关,这是关于 RFC 2660 的,正如@Dave Holland在他的回答中指出的那样。我的答案中的一些元素也适用于 RFC 2660,并且由于存在相似之处,它可能有助于比较,但我真的不值得在这里投票。对于造成的混乱表示歉意...
我认为与 HTTPS 相比,对S-HTTP HTTP 升级到 TLS 的一般批评是,通过拦截但不中继消息(尽管服务器可以对此做一些事情),可以进行降级攻击,Upgrade并且,从浏览器的角度来看,很难确定 URI 是否安全(https://相对于http://前缀)。(当然,这与使用诸如 等机制的协议所使用的参数完全相反,与S-HTTPSTARTTLS HTTP 升级到 TLS更相似。)在这两种情况下,都必须正确配置协议(正确的密码套件,.. .)并且用户界面必须向用户提供足够的信息来判断连接是否安全(好证书/坏证书,...)。
更重要的是,这可能与“市场力量”有关,“市场力量”历史上已经实现了 HTTPS,但没有实现 S-HTTP,并且没有理由进行更改(在底层 SSL/TLS 级别,足够长的时间从 SSLv2 迁移到 SSLv2)。 SSLv3 和 TLSv1 及更高版本)。
此外,RFC 2817于 2000 年发布,那时 HTTPS 已经存在了一段时间。该Upgrade机制还依赖于使用 HTTP 1.1,而 HTTPS 也可以通过 HTTP 1.0 工作(当时,并非所有内容都支持 HTTP 1.1)。
您可能会发现这些感兴趣的话题: