不安装ssl有多大风险?

信息安全 tls
2021-09-01 16:34:46

我想更深入地了解服务器何时应安装 ssl,特别是何时值得花钱购买有效证书。由于我的客户通常不太了解他们为什么需要 ssl,而且与租用 vps 相比,证书的成本相当高,我想知道一些统计数字或其他描述性信息。

假设一个用户论坛有成千上万的用户,他们所有的用户名和密码都是通过互联网不加密发送的。除密码外,没有信用卡信息或其他敏感数据。在这种情况下获取 ssl 的理由是什么,不这样做的理由是什么?

我希望这个问题是可以理解的。我真的不知道如何更直接地问。

感谢您的时间和建议!

4个回答

如果没有 SSL,通过线路发送的所有内容都可能被不雅的路由器监视或更改。“改变”包括恶意劫持连接和中间人攻击攻击者在 WiFi 热点环境中相对容易设置这些 - 这意味着如果用户从餐厅或公园(使用他的笔记本电脑或平板电脑)访问您的网站,那么他的数据(特别是密码和 cookie ) 可以被配备了现成的 100 美元小工具的恶意人员悄悄窃听

此外,非 SSL 连接不仅很容易被敌对的外人强占,而且人们也开始知道这一点。当您的用户看到您使用没有 SSL 的密码时,他们中的一些人会认为“您不关心他们的安全性”。仅此一点并不是一件好事。您希望您的用户感到安全,否则他们会被诱惑不再成为您的用户。


SSL 成本经常被夸大,原因尚不完全清楚(关于这个主题有一些理论):

  • 在服务器上: SSL 隐含的额外 CPU 和网络开销在 2% 范围内,即不多。最大的间接成本是 SSL 阻止了一些透明代理(由一些 ISP 运行)进行优化;如果您的服务器托管大型静态文件,它可能会产生一些影响。证书的成本可以为零——或者更准确地说,没有购买费用,并且每年执行一次管理任务。即使在商业环境中,就托管成本和系统管理时间而言,证书的成本也可以忽略不计。

  • 在客户端:主要影响是增加了第一次连接的延迟打开第一个连接时,客户端和服务器运行完整的 TLS 握手。但是对于后续的 HTTP 请求,连接将保持打开状态(正常的“保持活动”机制),如果连接由于长时间不活动而关闭,则新连接将使用缩写握手,它重用前一个连接的加密元素。简短的握手要快得多,特别是因为它意味着更少的网络往返。

没有什么比实际测量更好的了,所以我们鼓励您进行实验,即使只使用自制证书(也称为“自签名”);但是,总的来说,SSL 不能被认为是非常昂贵的(15 年前它曾经很昂贵,但是从那时起计算机的计算能力有所增长)。

如果没有 SSL,通过MITM攻击接管用户帐户将是微不足道的。所有用户名和密码都以明文形式发送,因此非常容易嗅探。如果用户在多个站点上重复使用相同的用户名/密码组合,这会产生相当严重的间接后果。

如果没有激活 SSL,还有很多其他的攻击,但我觉得这很简单,也很严重,足以说明这一点。

SSL(或更确切地说是有效的 SSL 证书)的一个更间接的影响是浏览器上的挂锁激发了用户的信心。向非技术用户解释 SSL 的原因是相当困难的。训练他们将绿色挂锁与安全站点关联起来稍微容易一些。没有相同的挂锁可能会导致用户(正确地)质疑您网站的安全性。

如果成本是一个问题,有很多免费的 SSL 证书提供程序,例如StartSSL请注意,我以前从未尝试过他们的服务,因此我无法保证他们的可靠性。

如果没有 SSL,用户的数据将通过未加密的线路传输。这是可接受的风险吗?

这里的每个人都在使用不使用 SSL 的论坛(SE 在这方面并不是唯一的;例如,reddit 不使用 SSL)12017 年编辑stackexchange 和 reddit 现在都使用 SSL,这与 2013 年编写此答案时不同

我的计算机和 stackexchange 的服务器之间的网络窃听者(例如,同一 wifi 接入点的其他用户,或者我的 ISP 的其他用户,或我工作的网络管理员)可以窃取我的身份验证 cookie 或更改我的消息并获得对我的 stackexchange 帐户的完全访问权限. 我不希望这种情况发生,所以我不在公共 wifi 上使用 stackexchange,并相信我的 ISP 不会窃取和滥用用户的秘密信息。

诚然,这是我愿意承担的风险。虽然有人捕获了我的 stackexchange 帐户(暂时直到我的会话 cookie 过期),但他们不会捕获太多信息,并且他们的大部分操作可能会在以后撤消(例如,可以恢复任何编辑)。

此外,不要将 VPS 上的 SSL 等同于完全隐私。您仍然必须本质上信任您的 VPS 主机,它可以轻松地从您的 VM 中获取您的私有 SSL 证书(它在其磁盘上的文件中),然后解密您的所有传入流量。我怀疑大多数著名的 VPS 提供商会这样做,但他们绝对可以。


1好吧,stackexchange 让您通过像 google/facebook/yahoo/etc 这样的 OpenID 提供商进行身份验证,这些提供商将使用 https 连接(至少我检查过的每个人),因此密码是加密发送的。他们确实有一个“使用 stackexchange 登录”选项,该选项将您定向到使用 javascript 的 http 页面,因此带有密码的表单提交应该加密传输(使用 SSL)。当然,对此发起 MitM 攻击是微不足道的,因为https连接对用户来说并不明显。同样,虽然攻击者无法获取您的密码,但他们稍后可以获取会话 cookie,因此它们将显示为您的经过身份验证的版本。

同样,对于 reddit.com,他们(秘密地)使用 SSL 进行表单操作,但由于表单托管在非 ssl 页面上,攻击者很容易发起中间人攻击并捕获您的密码。诚然 reddit.com 确实有一个带有正确签名 CA 的SSL 版本,但这个网站不在他们的 CDN 上,目前仅供广告商/进行信用卡交易的人使用。

与租用vps相比相当昂贵

这让我感到惊讶 - 只需不到低端 VPS 托管价格的十分之一,就可以在互联网上快速检查并获得基本证书(单个站点,没有 EV,但经过认可的链)。

在这种情况下获取 ssl 的理由是什么

您有责任照顾您的客户——即使他们不了解相关性/技术价值。大多数人在多个服务中使用相同的密码(和用户名)。因此,不使用 SSL,您可能会暴露此信息。

是的,SSL 会损害性能(很多)。

虽然仅通过 HTTPS 运行身份验证可以避免性能问题,但仍然存在会话接管的风险 - 冒名顶替者可能会发布似乎来自其他人的诽谤性评论。尽管为此还有其他风险缓解方法(条款和条件、发布删除政策等)。