为什么浏览器警告自签名证书而不警告普通 HTTP(甚至没有加密)?

信息安全 tls 证书 网页浏览器 http 相信
2021-08-16 17:34:51

让我们保持简短:

  1. 在 HTTP 上,每个人都可以轻松收听。中间人攻击没有问题。
  2. 在 HTTPS(自签名)上,一切都至少是加密的,MITM 攻击要困难得多,只有私钥所有者可以监听。
  3. 在 HTTPS(非自签名 -> “受浏览器供应商信任”)上,它就像 2,但会产生这样的错觉,认为这比自签名安全得多,但最终我们必须相信浏览器供应商不会犯错误(或被贿赂)

对我来说,选项 1 远不如 2 安全,但浏览器仍然抱怨 HTTP 根本没有,但自签名证书非常困难:需要几次点击才能建立连接,否则它们会完全阻止连接并显示可怕的消息。为什么是这样?

当然,我知道证书背后的原因:确保与您交谈的人是您真正想交谈的人。但是在 HTTP 上,您没有加密,也没有信任。在 HTTPS(自签名)上,您至少有加密。

那么,真的不应该像下面这样吗?

  1. HTTP触发“大胖红错误”
  2. HTTPS + 自签名有警告图标但正常工作
  3. HTTPS +“受信任的证书”根本没有发出警告

这里的原因是什么?

1个回答

他们警告您,因为自签名证书可能是 MITM 攻击的迹象,其中攻击者试图让您以安全连接为幌子向他们发送重要凭据。

浏览器不会对纯 HTTP 发出警告的主要原因是它在互联网上太常见了,对大多数用户来说会很烦人。但是,浏览器确实会警告的一件事是,在 HTTPS 页面中是否存在通过 HTTP 传递的页面元素(例如,当页面从不同页面加载元素并将它们嵌入到页面中时)。

浏览器为自签名证书抛出这些可怕消息的原因是因为他们不希望没有经验的用户将随机证书添加到他们的信任列表中。同样,有人可以 MITM 连接,将他们的证书发送给您并假装是您尝试访问的站点。是的,这也可以通过 HTTP 完成,但是许多站点至少通过 HTTPS 提供登录页面,因此如果浏览器检查,这对用户是有益的,因为它们可以防止您的凭据被泄露。

最重要的是,如果人们制作自签名证书,他们可能会在一种虚假的安全感下工作。SSL 不是最简单的想法,即使是非常大的公司也在为此苦苦挣扎,看看戴尔是如何搞砸他们的证书的。这个想法是不鼓励使用自签名证书,以便用户可以受益于让第三方验证证书的合法性。

然而,CA 对其权力不负责任的问题是另一回事,如果他们做出愚蠢的决定,可能会导致问题。