是否已接受 SSL?

如今,越来越多的人从更多地方连接到了网络,并且数量达到了前所未有的水平。

我们已经开始连接笔记本电脑、手机和平板电脑,可能很快就能使用个人设备和配件了。我们从不受信任的网络(有时甚至是恶意网络)访问互联网。随着我们生活中越来越多的信息转向线上,我们必须采取措施来保护自己的数据和用户数据。

首先,作为开发者,我们需要了解 SSL 的必要性和实用性。

什么是 SSL?它是“Secure Sockets Layer”(安全套接字层)的首字母缩写,是一种旨在提供互联网通信安全性的加密协议。它通过加密和完整性保证私密性,从而防范窥探或篡改您的互联网连接。SSL 有其缺点,但它是确保互联网上任何类型的数据通信安全的最主要方式,并且是唯一的唯一方式。

根据 SSL Pulse,一年前的 SSL 采用率约为不到 15%,而现在的采用率已超过 50%。

两个首字母缩写词:

  • TLS:对于大多数意图和用途而言,都与 SSL 相同。确切地说,SSL 3.1 已重命名为 TLS,而 TLS 则是 IETF 的标准名称。但它们可以互换使用!

  • HTTPS:这是一种基于 SSL 的 HTTP,只是 SSL 和标准 HTTP 的安全功能的分层。首先是客户端与服务器握手,使用公钥/私钥加密创建一个共享密钥,SSL 协议的第二部分使用该密钥对通信进行加密。

您可以畅享快速、安全、即时的互联网网络。感觉就像我们在与网站直接对话。但实际上,这两者之间并不是直接的联系。我们的通信会通过 Wi-Fi 路由器、ISP 以及您的设备与网站之间的其他中间代理进行。如果没有 HTTPS,我们所有的通信都将采用纯文本。

问题在于,用户很少输入指定 HTTPS 的完整网址,或者使用 HTTP 点击链接。更糟糕的是,可能会发起中间人攻击,并将 HTTPS 替换为 HTTP。2009 年推出的一款名为 SSLstrip 的工具可以实现此目的。自 2010 年起,Firesheep 刚刚开始用它在开放 Wi-Fi 网络中接收明确发送的 Cookie:这意味着你可以监听聊天内容,或登录某人的 Facebook 帐号。

但 SSL (相对)便宜、快速且易于部署(请参阅 ssllabs.com 和 Ilya Grigorik 的《高性能浏览器网络》一书)。对于非商业用途,您甚至可以从 startssl.com 获取免费证书!公钥固定旨在为网站运营者提供一种方式,用于限制哪些证书授权机构可以为其网站实际颁发证书。

“今年 (2010 年) 1 月,Gmail 在默认情况下对所有内容都改用 HTTPS。...为了做到这一点,我们不需要部署额外的机器,也不需要部署任何特殊硬件。在我们的生产前端计算机上,SSL 占 CPU 负载的不到 1%,每个连接的内存不到 10 KB,网络开销也不到 2%...

如果您现在停止阅读,只需记住一件事:SSL 的计算开销不再很高。”

- Overclocking SSL,Adam Langley(Google)

最后,最常见的几个 bug:

  • 混合内容:既使用 HTTP 又使用 HTTPS 的网站。您的用户会很恼火,因为他们必须点击权限按钮才能加载内容。(Chrome 和 Firefox 实际上会禁止来自 iframe 的混合内容。)通过使用相对网址或相对方案网址(例如 <style src="//foo.com/style.css">),确保 HTTPS 网页上的所有资源均通过 HTTPS 加载
  • 不安全的 Cookie:通过 HTTP 连接以明文形式发送。为避免出现这种情况,请在 Cookie 标头上设置安全属性。您还可以使用新的“严格传输安全”标头来要求使用 SSL 传输安全 (HSTS)。

断球数

  • 如果您重视用户数据的隐私性和完整性,则需要使用 SSL。与以往相比,现在更快速、更轻松、更便宜。
  • 避免常见的实现问题,例如混合内容 bug 或未正确设置 HTTP 标头位。
  • 使用相对网址或方案相对网址。
  • 查看 HSTS 和证书固定等新功能

幻灯片已经了解 SSL?