这在我们公司内部引起了一些关于是否应该将 HTTPS 证书应用于我们的新站点的讨论。
但是,我们的网站不包含登录详细信息,不携带用户数据,并且实际上是静态内容。
再加上谷歌已经声明它只会被用作一个小因素,这意味着我觉得它会是矫枉过正而不是必需的。
然而,公司的其他人却在说“有什么害处,它只能提供帮助”。
除了成本之外,HTTPS 还有什么缺点吗?
这在我们公司内部引起了一些关于是否应该将 HTTPS 证书应用于我们的新站点的讨论。
但是,我们的网站不包含登录详细信息,不携带用户数据,并且实际上是静态内容。
再加上谷歌已经声明它只会被用作一个小因素,这意味着我觉得它会是矫枉过正而不是必需的。
然而,公司的其他人却在说“有什么害处,它只能提供帮助”。
除了成本之外,HTTPS 还有什么缺点吗?
HTTPS 为您提供机密性(加密)、身份验证(身份)和完整性(防篡改连接)。
在你的情况下,你不太关心第一个,但你应该关心后两个。“身份”部分隐含地保护您免受某些 DNS 攻击,但存在先有鸡还是先有蛋的问题(因此HSTS)。还有“绿色 URL 栏”和所有的废话,但这主要是一个侧面展示。
HTTPS 至少有以下缺点:
(一个不太明显的缺点是登上整个 PKI/CA 火车,但我们今天不去那里......)
除了成本之外,HTTPS 还有什么缺点吗?
是的,第三方代理无法缓存 HTTPS 流量。如果您的内容是高度可缓存的(如果您的网站主要是静态内容,很有可能)并且您有很多互联网连接速度较慢的用户(例如,发展中国家的大多数人只依赖缓慢、拥挤的移动网络),缓存代理由他们的 ISP 或移动提供商或公司/大学网络无法返回本地缓存的结果。相反,即使在附近已经请求了数千次相同的内容,它们也必须一路访问您的服务器。
如果这些用户安装他们的 ISP 代理证书,这可以稍微减轻一点,这允许 ISP 基本上在用户许可的情况下执行 MITM,但这会严重损害实际需要 HTTPS 安全性的站点的安全性。
即使没有通过网络传递敏感数据,HTTPS 仍然有用。SSL 还保证身份,因此客户端知道信息确实来自您而不是其他人。
长期以来唯一真正的缺点是性能。然而,随着 SSL/TLS 实施变得更好和技术进步,这种情况现在已经基本消失。在这里查看详细说明。
HTTPS 是 SSL 连接中的 HTTP,也就是说您还有另一层。这会引入开销,这可能是一个问题,请参阅Is there ever a good reason _not_ to use TLS/SSL? .
作为一个附加层,它还在服务器端引入了更多的复杂性,因为你得到了 HTTP 的所有服务器端问题(像这样的应用程序级 DOS ),然后是 SSL 的问题(比如Hearbleed)。
这意味着,您以增加服务器的攻击面为代价来保护客户端和服务器之间的数据传输。天下没有免费的午餐 :(
请不要将此理解为反对 SSL 的论据。保护传输层的安全非常重要,如果您没有明显的敏感数据(例如隐私),它也有优势。但是,您必须意识到您增加了攻击面,因此您必须准备好处理与 SSL 相关的问题。