为什么浏览器会显示不受信任的SSL证书的丑陋错误?

时间:2010-09-30 01:36:53

标签: browser ssl

当面对不受信任的证书时,我知道的每一个浏览器都会显示一个明显的错误:

为什么是这样的?

这强烈反对网络开发人员使用像SSL这样的强大技术,因为担心用户会发现网站非常阴暗。 Ilegitimate(即:网络钓鱼)网站在HTTP上做得很好,所以这不是一个问题。

为什么他们让它看起来如此重要?是不是拥有SSL,即使不信任也不比没有它更好?


看起来我被误解了。我怀疑HTTP站点不能比HTTPS站点更安全,即使不受信任。 HTTP不进行加密或识别。网络钓鱼者可以在HTTP上创建他们的站点,并且不会显示任何警告。真诚地,我至少在加密流量。这怎么可能是坏事?

7 个答案:

答案 0 :(得分:9)

他们这样做是因为SSL证书不仅仅意味着通过网络保护通信。它也是一种识别被保护内容来源的手段(通过假证书从中间人攻击中获得的安全内容不是很有用)。

除非您让第三方验证您是您所说的人,否则没有充分的理由相信您的信息(通过SSL发送)比您未使用SSL时更安全。第一名。

答案 1 :(得分:5)

  

SSL通过相互身份验证数字签名用于完整性,加密用于隐私,提供客户端和服务器之间的安全通信。

apache ssl docs

是的,我没有看到任何关于所有浏览器都应该认为是“合法”的第三方证书颁发机构。当然,这就是世界的方式,所以如果你不希望人们看到一个可怕的页面,你必须得到浏览器认可的人签署的证书。

如果您只是为一小群人或内部人员使用SSL,您可以让人们在他们的浏览器中将您的根证书作为可信证书安装。这在LAN上可以很好地工作,网络管理员可以在整个网络上安装它。

建议将证书发送给人们进行安装可能听起来很尴尬,但如果您考虑一下,您更信任什么:您的浏览器附带的证书,因为该权限支付了他们的会费,或者证书已发送给您个人由您的服务器管理员/客户经理/内部联系人?


只是为了屎和咯咯笑,我以为我会在OP的屏幕截图中包含“帮助我理解”链接显示的文字...

  

当您连接到安全网站时,托管该网站的服务器会向您的浏览器显示一个名为“证书”的内容,以验证其身份。此证书包含身份信息,例如网站地址,由您的计算机信任的第三方验证。通过检查证书中的地址是否与网站的地址相匹配,可以验证您是否与您想要的网站进行安全通信,而不是第三方(例如网络上的攻击者)。

对于域不匹配(例如,尝试转到非通配符证书上的子域),此段落如下:

  

在这种情况下,证书中列出的地址与浏览器尝试访问的网站地址不符。造成这种情况的一个可能原因是,您的通信被正在为不同网站提供证书的攻击者截获,这会导致不匹配。另一个可能的原因是服务器设置为为多个网站返回相同的证书,包括您尝试访问的网站,即使该证书对所有这些网站都无效。 Chromium可以确定您已到达,但无法验证该网站是否与您打算访问的 foo.admin.example.com 相同。如果继续,Chromium将不会检查是否存在任何其他名称不匹配。一般来说,最好不要超过这一点。

如果证书未由受信任的机构签署,则代之以:

  

在这种情况下,证书尚未经过您的计算机信任的第三方验证。任何人都可以创建一个声称自己选择的网站的证书,这就是必须由受信任的第三方验证的原因。如果没有该验证,证书中的身份信息就毫无意义。因此,无法验证您是否正在与 admin.example.com 进行通信,而不是生成自己声称为 admin.example.com 的证书的攻击者。你不应该超越这一点。

     

但是,如果您在生成自己的证书的组织中工作,并且您尝试使用此类证书连接到该组织的内部网站,则可以安全地解决此问题。您可以将组织的根证书导入为“根证书”,然后您的组织颁发或验证的证书将受到信任,下次尝试连接到内部网站时您将看不到此错误。请与您组织的帮助人员联系,以获取有关向计算机添加新根证书的帮助。

我认为这些最后几段对这个问题的答案非常好。 ;)

答案 2 :(得分:3)

SSL的重点在于您可以验证该网站是否是它所声称的人。如果证书不可信,那么极有可能该网站不是它所说的那个。

在这方面,加密连接实际上只是一个附带好处(也就是说,您可以在不使用证书的情况下加密连接)。

答案 3 :(得分:3)

人们认为https连接是安全的,足以满足他们的信用卡详细信息和重要密码。中间人可以拦截与您的银行或PayPal的SSL连接,并为您提供自己的自签名或不同的证书,而不是银行的真实证书。如果可能发生此类攻击,请大声警告人们。

如果攻击者为银行的域名使用虚假证书,并且由一些不能正确检查事项的狡猾的CA签名,他可能会拦截到您银行的SSL流量,而您将不再是明智的,只是有点穷。如果没有弹出警告,就不需要狡猾的CA,网上银行和电子商务将完全不安全。

答案 4 :(得分:2)

  

为什么?

因为大多数人不读书。它们不是https的意思。一个很大的错误是 MANDATORY 让人们阅读它。

  

这强烈反对网络开发人员使用像SSL这样的强大技术,因为担心用户会发现网站非常阴暗。

不,不。你有证据吗?这种说法很荒谬。

强烈鼓励开发人员用户知道他们正在与谁打交道。

  

“担心用户会发现该网站非常阴暗”

这甚至意味着什么?你的意思是“担心缺乏证书意味着用户会发现该网站非常阴暗”?

这不是“恐惧”:这就是目标。

目标是“缺少证书意味着用户会发现网站非常阴暗”这就是目的。

答案 5 :(得分:1)

从你的评论来看,我可以看到你对你认为的人所说的和他们真正说的话感到困惑。

为什么他们让它看起来像这么大?是不是拥有SSL即使不受信任也不比没有它更好?

但为什么他们必须显示错误?当然,不能保证“不受信任”的证书比没有SSL更安全,但它的安全性也不会那么低。

如果您只对加密连接感兴趣,那么这是真的。但SSL旨在实现额外目标:识别。因此,证书。

我不是在谈论与域名不匹配的证书(是的,这是非常糟糕的)。我说的是当局签署的证书,而不是浏览器的可信任CA(例如:自签名)

如果您信任的人不信任证书,您如何信任该证书?

修改

需要防止中间人攻击,因为您正在尝试建立特权连接。

您需要了解的是,使用普通HTTP,绝对没有安全承诺,任何人都可以读取通过连接传递的内容。因此,您不会传递任何敏感信息。不需要警告,因为您没有传输敏感信息。

当您使用HTTPS时,浏览器会假定您将传输敏感信息,否则您将使用纯HTTP。因此,当无法验证服务器的身份时,会大惊小怪。

答案 6 :(得分:0)

  

为什么?

因为如果某个网站假装是合法网站,那么 真的 想要以用户身份了解它!

看,与攻击者的安全连接根本不是很好,每个人和他的狗都可以签署自签名证书。除了您在浏览器中安装的信任根之外,任何人的自签名证书中都存在 no 固有信任。浏览器制造商挑选(小心!)默认的信任根集合,目的是只有那些只以确保信任的方式行事的CA才会被系统信任,而这大多数都有效。您也可以添加自己的信任根,如果您使用私有CA进行测试,那么您应该这样做。

  

这强烈反对网络开发人员使用像SSL这样的强大技术,因为担心用户会发现网站非常阴暗。 Ilegitimate(即:网络钓鱼)网站在HTTP上做得很好,所以这不是一个问题。

什么?您可以获得非常少的合法证书。您可以免费设置自己的信任根(以及一些工作)。任何在这个问题上发展和抱怨的人只是懒惰和/或过度廉价,我对这种态度没有同情。

理想情况下,浏览器会查找您希望保密的信息(例如看起来像信用卡号码的信息),如果尝试通过不安全或不正确安全的渠道发送数据,则会抛出此类警告。唉,通过检查很难知道数据是否是私有的;正如没有EVIL位这样的东西,也没有私有位。 (也许一个普遍存在的元数据系统可以做到这一点......是的,没错。忘了它。)所以他们只是尽力而为,并指出极有可能出现问题的情况。

  

为什么他们让它看起来如此重要?是不是拥有SSL,即使不信任也不比没有它更好?

你在处理什么威胁模型?

浏览器制造商专注于任何人都可以合成SSL证书的情况(因为确实如此)并且DNS黑客攻击太常见了;这些方法的组合是,您无法知道您为主机名获得的IP地址对应于该域的合法所有者,并且任何人都可以声称拥有该域。啊,但你相信CA至少要检查他们是否正在向合适的人发放证书,而这反过来就足够了(加上其他一些东西),以便能够确定你是否正在与域名的合法所有者;它为安全对话中涉及的所有其他信任提供了基础。希望银行将使用其他无法阻止的通信(例如,通过邮寄发送的信件)告诉人们检查网站的身份是否正确(EV证书在这里有所帮助),但这仍然是一个带状援助一些用户多么不吉利。

问题来自那些没有进行适当检查的CA(坦率地说,他们应该因为没有履行职责而被赶出肉汁列车)以及那些会告诉任何人的用户。你无法阻止他们故意在Smolensk [1] 的一些阴暗角色的公共留言板上张贴他们自己的CC#,无论这个想法多么愚蠢......


[1] 并非该城市出现任何问题。如果你用塔拉哈西,巴拉瑞特,拉各斯,重庆,波哥大,萨勒诺,德班,孟买代替,这一点也是一样的......全都有人渣。