自 2020 年起,所有网站都应使用 SSL。
- 自 2016 年以来,Let's Encrypt 已免费提供证书。
- 自 2018 年以来,Chrome 和 Firefox 一直将纯 HTTP 网站标记为不安全。
- 自 2017 年以来,谷歌一直在对纯 HTTP 网站进行 SEO 处罚。
有时有人争辩说,仅发布低价值、低信任度、只读公共信息的网站仍应使用 HTTP,但它们也应使用 HTTPS。HTTP 内容仍然可以让攻击者在内容中插入恶意软件或广告软件或重定向。一些主要的 ISP 向所有客户的 HTTP 页面注入广告;如果恶意广告进入他们的提要,这是一个潜在的问题。
建议制定“一切都通过 SSL,没有特定豁免”的公司政策。安全标准(PCI-DSS、ISO、big4 审计等)要求对处理敏感信息的系统进行加密,而缺乏它被认为是危险信号。
您还应该考虑部署HTTP Strict Transport Security以确保即使用户的第一个输入请求example.com
也是通过 HTTPS 发送的。
中间人攻击是一个现实问题,尤其是在 wifi 网络上,但在 ISP 和国家层面也是如此。如果您的站点仅使用 SSL 登录,然后通过未加密的链接返回会话 cookie,则该会话 cookie 不仅可以,而且会被窃取。请参阅Firesheep以获得清晰的演示。
SSL 可以为每个用户安全地缓存,无论是会话还是无限期。客户端代理缓存现在很少见,针对这种情况进行优化并不重要。当它们确实存在时,它们通常会出错,通过 SSL 绕过它们是值得的。
正确实现的 SSL 或 SPDY 可以很快:服务器开销不高,并且很容易移动到单独的反向代理机器上。有 SSL CDN。
无需为仅供开发人员和测试人员使用的网站购买真正的证书。即使对于非商业网站,证书的成本也只有几十美元,可以忽略不计。
通过网络加密数据是一个有用的纵深防御层。显然,单靠服务是不够的,但它消除了一些问题,成本低。
即使对于只读数据,客户知道他们正在获取真实站点也是有价值的:例如,如果他们正在下载二进制文件,您不希望插入木马。
安全地将需要通过 SSL 的页面与那些几乎可以肯定可以更好使用的不需要开发人员努力的页面区分开来。
使标准成为各种系统的紧身衣,尤其是在没有协商的情况下,很少需要,但 SSL 上的所有内容都应该有一个强大的默认值。
个案例外情况的良好示例,您仍应提供 SSL 但不强制重定向:
该站点提供大型二进制下载(音乐/视频/软件分发),因此允许更多缓存和更快下载很重要(显示数据)-- 重要的是二进制文件在传输过程中不会被修改,它通过其他验证提供深度防御
客户端是陈旧的 IE 或嵌入式客户端,无法充分执行 SSL-- 到 2020 年,此类客户将非常老旧(并且可能很危险)
网站上有很多资源,您希望机器人通过 HTTPS 对其进行索引-- 如果你强制一切都使用 HTTPS,谷歌和可能的其他机器人会做得很好
如果您在任何地方都使用 SSL,您将使用更多的机器资源,如果它们变得重要,可以以可以优化的方式使用。如果您不使用 SSL,则您要么花费更多的开发人员资源来逐个考虑安全性,要么您很可能更容易发生帐户盗窃。
谷歌的亚当兰利在 2010 年写道:
如果有一点我们想与世界交流,那就是 SSL/TLS 不再是计算昂贵的。十年前它可能是真的,但现在不再是这样了。您也有能力为您的用户启用 HTTPS。
今年 1 月(2010 年),Gmail 切换到默认使用 HTTPS。以前它是作为一个选项引入的,但现在我们所有的用户都使用 HTTPS 来保护他们的浏览器和谷歌之间的电子邮件,一直。为了做到这一点,我们不必部署额外的机器和特殊硬件。在我们的生产前端机器上,SSL/TLS 占 CPU 负载的不到 1%,每个连接不到 10KB 的内存和不到 2% 的网络开销。 许多人认为 SSL 会占用大量 CPU 时间,我们希望上述数字(首次公开)有助于消除这种情况。