什么时候可以安全点击 SSL 警告消息?

信息安全 Web应用程序 tls 保密
2021-08-22 13:58:09

用户如何知道单击有关 SSL 证书的可怕浏览器警告是否安全?

理想情况下,用户永远不需要点击这些警告消息,但有时诚实的网站会由诚实但不聪明的人运行,但证书会损坏。

4个回答

SSL 服务于三个目的(我将使用蜗牛邮件的类比来说明):

  1. 保持通信秘密:防止邮递员阅读您的信件。
  2. 验证通信未更改:防止邮递员更改您的信件。
  3. 验证发件人的身份:防止其他人以假名向您发送信件。

请注意,除非第 3 点完好无损,否则第 1 点和第 2 点毫无价值:如果其他人可以冒充消息的发起者,那么对其进行加密只会阻止另一个攻击者入侵您已经受到损害的通信。如果您单击未经验证或不受信任的证书,这就是您面临的风险 - 通信仍将被加密,但您正在与之交谈的服务器可能不合法。

也就是说,在某些情况下单击警告相对安全:

  • 当您不发送或接收任何机密数据时,例如密码或信用卡详细信息;请注意,包含会话 ID 等的 cookie 也是机密的,因此当您计划使用需要登录的任何内容时,您不应该这样做。此外,考虑到错误的证书可能是恶意活动的迹象,因此您应该格外小心发生这种情况时要小心。
  • 当您可以通过其他方式验证服务器的身份时:
    • 当服务器在同一个局域网(在同一个路由器/防火墙后面),并且服务器IP已经通过可信DNS或本地hosts文件获得;
    • 当您可以通过不同的渠道检查证书的(SHA-1 或其他)指纹时(例如登录服务器并在那里检查):从客户端看,它必须与安装在服务器上的已知证书匹配。连接仍然可能被劫持,但只有在防火墙/路由器受到破坏时才可能从网络外部执行此操作(当发生这种情况时,您还有其他事情要担心)。

TL;DR:除非您确切知道发生了什么,否则我的建议是不要点击,而是正确解决问题。

从理论上讲,证书上带有警告的 HTTPS 站点并不比普通的 HTTP 站点好,但也不差。只要您只浏览,读取数据而不发送任何内容,并且不是特别信任您阅读的内容,那么您可以忽略该警告。但是,只读站点很少会遇到设置 SSL 和证书的麻烦。

实际的角度来看,证书上带有警告的 HTTPS 站点比普通的 HTTP 站点更糟糕。大多数普通的 HTTP 连接在没有任何攻击的情况下通过,因为它们太多了,而且对于攻击者来说,太多是毫无价值的。另一方面,如果某些攻击者冒用伪造证书冒充 HTTPS 服务器,那么这表明您的连接正受到积极威胁。

因此,HTTPS 证书上的浏览器警告意味着以下两种情况之一:

  1. 服务器管理员没有做好他的工作;
  2. 你现在正受到积极的攻击

因此,如果您仍想绕过警告,您必须非常确定命题 1 是正确的。

一个相对安全的情况是,唯一让您的浏览器感到不安的是服务器证书不久前(几个小时,也许几天)过期:这只是意味着一些系统管理员工作过度或度假,而错过了其证书的更新日期。大多数其他情况并不安全:事实上,可以假设即使是最愚蠢的系统管理员也至少尝试过一次浏览他自己的站点,因此如果存在“永久”无效原因(例如证书中的名称与主机名不匹配) ) 那么系统管理员一定已经看到了。

因此,一般建议:如果有警告,请不要去那里。

alt.computer.security只是为了好玩,来自Usenet 组中一个名叫“Mark Bondurant”的人的精彩引述(Peter Gutmann 在他的X.509 风格指南中报告的引述——一个有点旧但仍然必须阅读的文档,如果只是为了文体文学原因):

我认识一个人,他建立了自己的数字 ID 层次结构,可以颁发自己的证书,签署自己的控件,在他的服务器上运行 SSL,等等。我不需要每年向 Verisign 支付一百万美元来购买过期的密钥和到期。我只需要关闭 friggen 浏览器警告消息。

我喜欢 SSL 提供的观点:

  1. 点对点机密性——服务器端的 ssl 提供商和您的浏览器共享一个加密会话,中间人不容易破解该会话——这为您提供了隐私和点之间的完整性。
  2. 服务器身份的保证 - 当服务器端证书提供适当的身份验证时。

用户会收到“关于 SSL 证书的可怕浏览器警告”的原因有很多,并且它们因浏览器类型、版本和浏览器中的设置而异。我曾经能够为主要浏览器列出所有这些,但在这一点上,我相信认为它可能是傲慢的,有很多变化。

可悲的是,在处理可怕的浏览器警告时,我无法为完全新手用户提供是否接受风险的简单答案。以下是一些案例,以及需要考虑的事项:

  • 了解您传播内容的风险。这是个人决定。有可能每个人都应该警惕信用卡信息、社会保险号或其他不可信方的私人数据。但是你是否愿意发送社交网络的密码——这取决于你的账户被黑客入侵所固有的风险——对于一些巨大的人来说——他们的网络是他们业务的公​​众形象。对于其他人来说——没什么大不了的,这只是意味着他们需要一种新的方式来了解家庭团聚。

  • 了解服务器/服务提供商的状态并做出相应的反应。例如,如果 google、yahoo 或 amazon.com 向我提供了一个失败的证书,我会三思而后行——这些都是拥有良好声誉的大公司,他们应该有足够的系统管理员和远见来适当地管理他们的证书。有过期证书的死水餐厅的预订系统?呃,我会冒险,他们不需要我的信用卡,妈妈和爸爸餐厅意识到他们需要每年更新证书的机会是什么。不是普通用户的事情 - 但我在测试环境中不断地点击这些警告,我确信我正在与内部 LAN 上的正确服务器交谈。

  • 以下是一些特定类型的错误及其含义:

    • 证书有效性失败/过期 - 表示证书当前无效,但曾经有效。通常意味着它没有被黑客入侵,它太旧了。可能意味着您的计算机有错误的时间设置,但更有可能的是,如果它是一个小型站点,则意味着他们没有正确更新他们的服务器。使用风险自负,但如果它是一个小站点,它可能会受到攻击

    • 证书未由受信任的机构签署 - 您的浏览器有一个受信任的 CA 证书的缓存,它们用于表明服务器提供商就是他们所说的那个人。主要浏览器中的大多数受信任的 CA 都有一个不错的流程来审查他们签署的人的身份。因此,如果这是失败,则意味着请求者何时使用较低端的 CA 提供商(具有更差的身份验证程序)或他们自签名证书。这可能是因为您在测试站点上工作,它可能来自服务器崩溃(服务器重置为默认值),或者可能是有人冒充您想要的站点。如果我要买东西,这个错误通常会让我通过。出于其他目的,我可能会冒险。

      • 证书名称与 URL 不匹配 - 这可能是因为证书错误,但也可能意味着配置更改已更改 URL 的性质。我实际上可能会就此写信给网站的技术支持,因为一个好的网站应该能够修复这个问题。但有时,我能够知道一个让我信任该网站的内幕消息,即使存在不匹配的情况。

从这里开始,IT 部门的工作量可能会有很大的不同——您可能会遇到关于证书状态检查的各种错误,这可能是站点问题,但也可能是您的网络或浏览器的访问问题。

如果您知道您看到或提供的任何内容是安全的

  • 可能会被其他人看到
  • 可能在途中被操纵

该网站是否由可信赖的一方运营并不重要。SSL 用于保护通过不受信任的网络传输的数据包。

证书用于验证服务器的身份。这是防止中间人攻击所必需的。否则,攻击者可能会声称他是真正的服务器,而您的浏览器会很高兴地发送为攻击者的私钥加密的消息。

PS:SSL确实存在过VeriSign、Commodo和DigiNotar等一些认证机构曾经向错误的人颁发证书的问题。只有最后一个不受普通浏览器的信任。但这是另一个话题。