为什么有些网站强制缺少 SSL?

信息安全 tls http
2021-08-11 17:58:06

在尝试访问https://www.ebay.com时,我注意到我立即被重定向到 HTTP。这是 cURL 所说的:

$ curl --max-redirs 0 -v -L https://www.ebay.com
* Rebuilt URL to: https://www.ebay.com/
* Adding handle: conn: 0x6c8cc0
* Adding handle: send: 0
* Adding handle: recv: 0
* Curl_addHandleToPipeline: length: 1
* - Conn 0 (0x6c8cc0) send_pipe: 1, recv_pipe: 0
* About to connect() to www.ebay.com port 443 (#0)
*   Trying 66.135.210.61...
* Connected to www.ebay.com (66.135.210.61) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* SSL connection using SSL_RSA_WITH_RC4_128_MD5
* Server certificate:
*       subject: CN=www.ebay.com,OU=Site Operations,O=eBay Inc.,L=San Jose,ST=California,C=US
*       start date: Jun 06 00:00:00 2013 GMT
*       expire date: Jun 07 23:59:59 2014 GMT
*       common name: www.ebay.com
*       issuer: CN=VeriSign Class 3 Secure Server CA - G3,OU=Terms of use at https://www.verisign.com/rpa (c)10,OU=VeriSign Trust Network,O="VeriSign, Inc.",C=US
> GET / HTTP/1.1
> User-Agent: curl/7.32.0
> Host: www.ebay.com
> Accept: */*
> 
< HTTP/1.1 301 Moved Permanently
< Location: http://www.ebay.com/
* no chunk, no close, no size. Assume close to signal end
< 
* Closing connection 0
* Maximum (0) redirects followed
curl: (47) Maximum (0) redirects followed

为什么网站会在支持 SSL 的同时强制使用明文 HTTP,从而暴露用户的浏览习惯被窃听?

4个回答

有一些理由(不一定是好的理由,但仍然有理由)更喜欢 HTTP 而不是 HTTPS。如果这些原因适用,那么即使客户端似乎想要使用 HTTPS,强制使用 HTTP 也是有意义的。

偏爱 HTTP 的一个(通常)不好的理由是在这样的辩论中经常说出的一个理由:SSL 通常被认为是沉重的,既因为加密的计算成本,也因为它对缓存的影响(尽管可以缓存通过 HTTPS 提供的页面,SSL 层阻止了一些技巧,例如透明代理,这些技巧通常由 ISP 应用)。计算成本被高估了(它曾经是具有快速以太网的 3DES 和 90 MHz Pentium 机器时代的瓶颈,但从那时起情况发生了变化)。至于缓存,需要说明的一点是,当页面变得更加动态时,它变得越来越无关紧要。

不过,我们可以想象,Ebay 希望鼓励广泛使用基于 ISP 的代理来对他们所服务的所有商品图片进行代理。我可以很容易地想到,这些图片占用了 Ebay 的很大一部分网络带宽。强制执行纯 HTTP 最大限度地提高了缓存发生的可能性,从而为 Ebay 节省了资金。

首选 HTTP 的一个不太糟糕的原因是允许更轻松地自动扫描数据以查找不需要的内容和入侵检测。SSL 是端到端的,因此如果在 HTTPS 世界中应用这种扫描,那么它必须发生在其中一个端,这在给定的大型架构中可能不方便。


至于你浏览习惯的隐私,我不认为 Ebay 对此毫不在意。事实上,从结构上讲,他们非常渴望学习、分析、描述并可能出售您的浏览习惯(广告商为此类信息付费)。因此,期望 Ebay 积极保护您的隐私似乎是不合理的,因为他们的部分商业模式恰恰相反。

从个人经验来说:我管理的一个网站希望通过安全的 https 连接发送所有表单数据。但是,由于各种原因,其他页面显示了我们无法通过 https 处理的不安全内容。

这会导致 Firefox 和 Chrome 中出现大的警告标志(本网站包含非安全元素,地址栏中有喊叫的感叹号等),即使没有发生任何可疑的事情,对于非入门者来说,这看起来也很可怕。

为了避免发送错误消息,我们只是通过 http 将流量重定向到没有发送任何客户数据的页面。

Ebay 似乎也在做同样的事情:当数据实际上以表格形式输入并传输时,它始终是 https。

虽然说实话:在我们的案例中,我们缺乏预算来检查所有页面并修复不安全的元素,而这确实应该是要走的路。

我能想到的唯一其他原因是性能:严格来说,SSL 速度较慢。

简而言之:我可以想象通过 http 重定向流量的原因,但就我而言,这绝对不是最佳实践。

很难给出一个好的答案,因为可以说没有充分的理由这样做。

如果我必须列出优点而不是缺点,我会这样说:

如果一个站点不希望尝试通过 https 访问该站点的用户认为它已关闭,并且对某些功能(例如登录)具有 SSL 支持,但认为它没有或不想支持允许所有内容通过 SSL,那么它可能会尝试这样做。

长期以来,人们普遍认为 SSL 比常规 HTTP 需要更多的硬件。旧的决定不得重新考虑。

如果缓存代理可以承担部分负载,则广泛缓存的站点将具有较少的负载,这在 SSL 处于活动状态时是不可能的。

Opera 和 Chrome 中的可选压缩等带宽节约工具不适用于通过 SSL 提供的内容。

最有可能保留缓存的实用性,并减少为使外部搜索保持最新所需的大量蜘蛛爬行所涉及的负载。

糟糕的部分并不是第三方可以看到您查看的页面(安装在各处的分析实用程序网络向 Google 报告已经保证您几乎在任何地方都被跟踪),而是在 HTTP 之间反弹HTTPS 提供了多个点,可从未经身份验证的 HTTP 站点误导到带有伪造证书的虚假 HTTPS 站点。风险不是跟踪,也不是真正暴露 HTTP 页面上的内容,而是这种来回弹跳削弱了用户的威胁意识。

普通用户很难理解每次 HTTPS->HTTP->HTTPS 发生时都有一个可怕的开口,尤其是因为大多数人在登录并验证自己到服务器后都会发生这种情况。

“哦,看,刚刚弹出了一个证书警告。很奇怪。但我一直都在签名(立即按下'解雇/永久添加例外'按钮)”

更好的解决方案是通过 HTTP 和 HTTPS 使网站的所有公共(匿名用户可见)部分可用,以保持搜索引擎满意,并让蜘蛛爬行低负载页面,但一旦他们越过 HTTPS,就永远不会重定向任何人。但是,如果他们真的关心安全性,他们永远不会自动从 HTTP 重定向到 HTTPS——这种自动重定向是每次设置 MITM 攻击的机会,甚至银行也会这样做。