为什么未签名的SSL证书比没有SSL证书更糟糕?


19

如果我查看具有未签名或自签名SSL证书的网站,则我的浏览器会警告我。但是,同一浏览器没有问题,可以跨不安全的页面发送凭据。

为什么自签名证书比没有证书更糟糕?

Answers:


16

许多人认为此系统已损坏。

当SSL证书无效时,您的浏览器会向您发出这样的警报警告的逻辑如下:

SSL基础结构的原始设计目的之一是提供Web服务器的身份验证。基本上,如果您访问www.bank.com,则SSL允许响应的Web服务器证明它确实属于您的银行。这可以阻止冒名顶替者操纵DNS或使用其他方法使恶意服务器响应。

SSL中的“信任”是通过让受信任的第三方(例如VeriSign和Thawte Consulting等公司)对证书进行签名来提供的,表明他们已经验证了该证书的拥有者(理论上通过访问IT管理员)人或其他建立直接信任的方法,尽管有证据表明他们实际上对此并不满意-获得签名的SSL证书所需的全部时间通常是800码和一些演技。

因此,如果您连接到提供SSL证书但未由受信任的第三方签名的Web服务器,则从理论上讲,这可能意味着您正在与冒名顶替者进行通信,该冒名顶替者冒充是属于其他组织的服务器。


实际上,自签名证书通常仅意味着运行服务器的组织选择不支付已签名证书的费用(根据您想要的功能,它们可能会非常昂贵),或者缺乏配置一个证书的技术专长(一些小型企业解决方案提供了一种用于自签名证书的一键式机制,但是要获得受信任的证书,则需要更多的技术步骤。

我个人认为该系统已损坏,与不提供加密的服务器通信比与提供带有自签名证书的SSL的服务器通信要危险得多。造成这种情况的三个原因是浏览器不这样做:

  1. 未加密的通信是Internet上的常见现象,因此,如果浏览器使您单击警告以查看未提供加密的网站,则您会很快烦恼并禁用该警告。
  2. 由于向客户发出了可怕的警告,因此在生产网站上看到自签名证书是不正常的。这样就建立了一个自我永存的系统:自签名证书之所以可疑是因为它们很稀有,它们之所以稀有是因为它们具有可疑性。
  3. 这听起来很愤世嫉俗,但是有些公司可以从签署SSL证书(咳嗽 Verisign 咳嗽)中获利颇丰,因此他们使用白皮书(IT术语表示“冗长而无聊的广告”)和其他出版物强制执行未签名证书很危险的想法。

5
如果没有信任链(这是使用CA签名证书而不是自签名),则无法验证所连接的服务器是谁。自签名证书在某种意义上是危险的,因为它们没有为用户提供任何手段来验证他们正在传输的数据是否到达了他们所说的目的地。人们开始学习在进行安全交易时寻找“ https”,因此100%保证对无效或自签名证书进行大警告,因为他们正在失去SSL的主要好处之一。
MDMarra

我不会说“破”。我认为Firefox Certificate Patrol插件比默认插件更接近证书的正确实现和信任管理。尽管如此,默认值还是比完全忽略信任网络更好。
Slartibartfast

4
@MarkM-我的感觉是身份验证不应被视为SSL的主要好处。我没有数据来备份我,但我认为更多的安全事件是通过未加密的连接传输的数据导致的(例如,密码被盗的Facebook安全工程师-他们从wifi网络中窃取了密码) ,因为未对Facebook登录进行加密),而不是通过MitM或冒名顶替者攻击,后者实施起来相对复杂得多。正如我所指出的那样,对SSL加密中身份验证的关注正是造成这种情况的原因。
jcrawfordor's

1
@MarkM-尽管绝对有开销,这是一个合理的考虑,但是使用未签名的证书不会对CA造成任何压力,特别是因为不会将CA用于自签名证书。另外,对于具有足够功能的组织,这也不是问题-考虑到Google现在对gmail和其他一些服务默认为https。我理解您的观点,即不进行身份验证,SSL的实用性将降低。当前模型设计不好。我们真正需要的是标准加密协议和经过身份验证的协议,以实现更安全的使用。
nhinkle

5
我的观点的更大意义是NRHinkle直接说了这一点,那就是我们需要开始将加密和身份验证视为单独的目标,并允许它们分别实现。这些是SSL系统目前的基本缺陷:1)我们认为加密和身份验证密不可分-要实现一个,就必须实现另一个。只提供一个是“可疑的”。2)必须从数量有限的主要营利性CA获得认证。通常,CA要么非常昂贵(Verisign等),要么非常阴暗(NameCheap等)
jcrawfordor 2010年

6

从页面到页面发送凭据基本上是在进行HTTP POST。与通过POST发送搜索词相比,发送凭据没有什么特别的。如果任何发布到不安全页面的帖子会触发警告,则用户将被毫无意义的警告轰炸。

使用安全通道表示程序员打算保护传输。在这种情况下,使用自签名证书警告是正确的做法。


对我来说足够公平。
dag729'7

作为事实上,我记得至少有旧版本的Netscape Navigator 没有弹出的每一个未加密的POST警告。当然,每个人都在五分钟后禁用了它们,所以我想这就是他们将其取出的原因...
sleske 2010年

4

我无法发表评论,因此我将发布此信息,以补充user40350的正确信息。

但是,同一浏览器没有问题,可以跨不安全的页面发送凭据。

实际上,这甚至不是事实。大多数浏览器会显示警告,就像初次尝试通过不安全的连接提交数据时一样,但是您可以将其关闭,以使其不再显示,我敢打赌,这正是您所做的...

米罗A写道:

从页面到页面发送凭据基本上是在进行HTTP POST。与通过POST发送例如搜索字词相比,发送凭据没有什么特别的

这也是不正确的,例如,密码字段是特殊的html标签。最重要的是,诸如“用户名”和“密码”之类的标签也表现出了很多敏感性。对于浏览器来说,考虑此类信息是完全可行的。


3

通过https://协议保护的连接由浏览器指示为“安全”。例如,显示一个小挂锁或URL的一部分标记为绿色。

因此,应该使用户相信他正在访问的页面确实来自他输入的URL,而不是来自其他人。

如果他不使用https://,则应该使用户知道,输入的数据不受保护,并且他所浏览的站点可能会被冒充。

自签名证书不能确保-再次期望浏览的页面不会被伪造,因此不会提供额外的安全性。


1

必须在可信证书(由您信任的权威机构签名)和不可信证书之间进行区分。否则,有人可能会使用具有相对有罪不罚现象的自签名证书来冒充您的银行(例如)。

在这种情况下,面部警告优于微妙警告,因为潜在风险相对较高。人们可能单击https链接,甚至没有想到可能有人坐在中间来监视连接。如果证明证书不受信任的迹象很微妙(例如用红色代替绿色图标,等等),那么人们很容易被愚弄,从而消除了SSL的好处。


如果您有权访问用户的计算机并修改其证书,反正冒充银行难道不是很容易吗?如果用户的计算机没有被更改,则Web浏览器将无法修改网页的URL以声明他们是银行;并且如果他们获得非常相似的URL,他们仍然可以获得该网站的证书,并且用户不必关心该网页的签名者,他们只会看到它是https,并希望注意到该URL不是他们银行的网址...
德米特里

SSL的好处是不信任您认为自己的网站是谁(这是不可能的,因为第三方应用程序可以更改您的证书,否则银行可能会被黑客入侵);但是请您相信,您与网站认为的任何人之间的交流仅存在于你们两个之间,没有其他人能够理解这种交流。没有证书比拥有自签名证书更糟糕,因为与您谈话的对象无关紧要,重要的是,没有其他人可以拦截您的发言。
德米特里

除了作为用户之外,我真的知道谁是Verisign,为什么我应该信任他们?他们对出售证书的兴趣是否不比要求证书所有者对滥用您发送给他们的信息负责?
德米特里

0

列出了许多充分的理由。还有一个:

考虑一个安全网页嵌入另一元素的元素的情况。攻击者可以检测到哪些请求是针对外部网页的(例如,通过查看时间,它必须首先出现),哪些请求是针对内部网页的。他可以将自己作为MITM注入到内部元素中,使用自签名证书并控制页面的各个部分。除非使用SSL但不使用受信任的证书对内部元素发出警告,否则外部页面的安全性将受到损害。

这是一个现实的例子。假设我是供应商,并且有一个“使用PayPal付款”链接。您单击它,我知道。我将您重定向到PayPal,并让您获得合法,安全的PayPal页面。如果我正在监视您的网络,我知道这将是您从PayPal发出的第一个请求,此后不久您将提交密码。因此,我在MITM中submit包含您的电子邮件地址和密码,用我的自签名证书替换了PayPal的证书。

您会看到不警告内页证书是自签名的,从而如何损害外页的安全性?因此,它必须警告来自链接的自签名证书。

而且,当然,如果您https手动输入,它必须警告您。因为您期望它是安全的。


-1

当在https://网站上执行中间攻击的人时,警告仅表示普通用户有问题。因此,这是HTTPS安全性的重要组成部分。

好的问题是为什么不能通过HTTP进行部分不安全的加密示例。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.