SSL,HTTPS,TLS三者的区别

544 阅读8分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第10天,点击查看活动详情

CDN 和 SSL/TLS

安全套接字层 (SSL) 是一种用于建立安全连接的协议,通常在服务器和 Web 浏览器之间。通过SSL连接发送的所有信息都经过加密,因此只能由预期的收件人访问。这有助于敏感数据的安全交换,包括登录详细信息,信用卡信息和电子邮件内容,从而抵御在“中间人”攻击中被第三方窃听的风险。

Imperva CDN 指南:CDN 和 SSL/TLS

截至2015年,SSL的最后一个版本(3.0)被正式弃用。它已被TLS(传输层安全性)取代,TLS提供更强的加密,同时提供类似的功能。但是,原始名称已卡住;许多人仍然将TLS称为“SSL / TLS”或简称为“SSL”。

SSL/TLS于1995年首次推出,在互联网发展中发挥着重要作用,为它提供了作为营业场所所需的信任因素。谷歌在2014年正式将TLS添加到其排名因素列表中,进一步加强了该协议的重要性,并加速了其已经广泛的采用。

从安全和业务角度来看,关于SSL / TLS还有很多话要说。但是,在本指南中,我们的重点是将SSL与内容交付网络(CDN)结合使用的性能和安全性方面 - 这是许多网站所有者越来越受欢迎的选择。

CDN 如何提高 SSL/TLS 性能

问题:SSL/TLS 握手的开销

要了解使用 CDN 如何提高 SSL 性能,让我们首先回顾一下 SSL 连接与常规 TCP 连接有何不同。

典型的 TCP 连接是通过称为三向握手的过程建立的。在其中,客户端发出连接请求 (SYN),接收确认 (SYN/ACK),然后以自己的确认 (ACK) 进行响应。这将关闭循环并建立连接。

Imperva CDN 指南:SSL/TLS 握手的开销

一、二、三...来来回回,来来回回。假设没有打嗝,完成握手所需的时间应正好等于单个往返时间 (RTT)。

另一方面,协商 SSL/TLS 连接需要一些额外的来回操作。这是因为浏览器和服务器现在还需要:

  • 商定一种相互兼容的加密方法。
  • 经历一个相互验证的过程。
  • 生成对称密钥,用于对会话期间交换的所有信息进行编码和解码。

这些额外的交互会增加流程的开销,从而导致两次或更多次往返,具体取决于服务器的配置。

例如

如果从旧金山到伦敦服务器的往返时间为 50 毫秒,则建立 SSL/TLS 握手至少需要 150 毫秒。

解决方案:使用 CDN 缩短往返时间

对于大多数人来说,SSL安全的好处远远超过了连接时间较长的缺点。尽管如此,开销可能是一个麻烦,这就是为什么许多在线企业使用CDN来补偿一些增加的延迟。

缩短往返时间是 CDN 的核心功能,CDN 是一项专门设计的服务,旨在通过减少网站与其用户之间的物理距离来提高响应速度。

通过减少往返时间,CDN 还加快了 SSL/TLS 协商过程中的所有交互。由于握手至少需要三次往返,因此 CDN 每剃掉一毫秒,效果就会达到三倍。

Imperva CDN 指南:使用 CDN 缩短往返时间

例如

如果从旧金山到伦敦服务器的往返时间为 50 毫秒,则建立 SSL/TLS 握手至少需要 150 毫秒。

留意保持活动状态

请注意,仅当您的 CDN 已与源服务器建立开放连接时,上述情况才适用。否则,在 SSL/TLS 连接的第一站就位后,CDN 仍需要启动第二个协商过程。在这里,SSL开销保持不变(甚至可能更长)。

这里重要的是确保 CDN 具有保持活动状态功能,也称为持久连接。使用保持活动状态时,CDN 在不同的用户会话之间保持与服务器的开放连接,一次保持几分钟。

这意味着,只要每隔几分钟访问一次您的网站,CDN和源站服务器就不必重新参与其他SSL / TLS协商。您的所有访客都将受益于更快的握手时间。

例如

与 LA 代理建立 SSL 连接后,在没有保持活动状态功能的情况下,CDN 必须重新打开与伦敦源服务器的连接。

洛杉矶和伦敦之间的往返时间为 30 毫秒,因此协商第二个 SSL 连接需要 90 毫秒。这使总握手时间恢复到 150 毫秒。

Imperva CDN 指南:密切关注 Keep-alive

使用 CDN 进行开箱即用的优化

如前所述,SSL/TLS 握手所需的往返次数取决于服务器的配置。例如,当您的服务器未优化以处理超过特定大小的 TLS 记录时,会发生额外的往返行程,从而导致额外的来回交互。

此外,某些服务器配置可以加速 SSL/TLS 通信,包括:

错误启动

使浏览器能够在 SSL 协商完成之前发送加密的应用程序数据。

Imperva CDN 指南:错误启动

续会

缓存访问者和服务器的信息,以减少重复访问者的协商时间。

Imperva CDN 指南:会话恢复

大多数现代 CDN 都针对优化的 SSL/TLS 通信进行了预配置。然后,只需使用 CDN,即可自动消除所有潜在瓶颈,并从优化的 TLS 性能中受益 — 开箱即用。

请注意,建议您也查看源服务器配置。这主要是为了确保在与 CDN 重新接合并打开新的持久连接时保持最佳性能。

 

CDN 如何增强 SSL/TLS 安全性

问题:低等级证书和次优实施

您可能已经知道,SSL/ TLS通信依赖于SSL证书的存在。除了用于启动加密通信的公钥外,它们还包含有关您的域和组织的信息。

在这里,重要的是要注意SSL证书的质量和可信度各不相同。

Imperva CDN 指南:非专用连接

首先,从官方证书颁发机构(CA)购买的SSL证书与可以使用OpenSSL工具包生成的免费(自签名)证书之间存在差异。

在这两者中,CA证书显然是一个更好,更受信任的选择 - 以至于使用自签名证书会导致所有访问者在每次尝试访问您的HTTPS资产时都会收到一条令人震惊的消息。这可能会导致您的流量出现巨大损失。

其次,所有 SSL/TLS 证书都根据其单独实现的质量进行分级,通常基于以下标准:

  • 协议支持 – 优先考虑强制实施最新和最安全协议的实现。
  • 密钥交换支持 – 在编码会话密钥时,优先考虑使用更强加密的实现(例如,Diffie-Hellman 2048 位参数)。
  • 密码支持 – 优先考虑强制实施具有更强加密(例如,256位)的密码的实现。

英佩华CDN指南:总体评级

由于您的证书等级是公共知识,并且可以使用SSLLabs或类似工具轻松确定,因此它也反映了用户对您网站的看法。

但是,除了负面的心理影响之外,此分数还会告知您SSL / TLS实现的实际安全性以及受到损害的可能性。显然,后者可能导致财务损失,并对您的品牌和业务造成长期损害。

解决方案:CDN,用于无忧无虑的 A+ 级证书

使用 CDN 意味着 SSL/TLS 连接的第一站始终使用提供商自己的证书(托管在 CDN 代理上)建立。这样做的好处是可以自动优化 SSL 通信的安全方面。

您自己的 SSL 实现可能不太理想,并且您可能只使用免费的自签名证书。但是,从您开始使用CDN代理的那一刻起,您的所有访问者都将立即受到A +级证书的保护,该证书由世界上最受信任的CA之一签名。

Imperva CDN指南:用于无忧A +级证书的CDN

最后,当出现新的 SSL 漏洞时(有时也会出现),您的 CDN 提供商可能会比您更快地响应这些漏洞,将其 SSL 实现作为托管服务的一部分进行更新。

Heartbleed和POODLE漏洞就是这种情况。CDN用户是首批受到保护的用户之一 - 几乎在漏洞消息出现时就一样。

免费的SSL通过让我们加密变得更好

Let's Encrypt是一个开放的证书颁发机构,可让您轻松创建免费的SSL证书。这些证书的好处之一是它们不会触发上述浏览器警报。

Let's Encrypt由互联网安全研究小组(ISRG),Mozilla基金会和其他几个主要组织赞助。

两个比一个好

即使使用CDN自动优化SSL连接的第一站,仍然建议通过调整源服务器上的SSL配置来改进第二站的实现。

虽然第二条腿上的攻击场景确实不太可能发生,但“安全比抱歉更安全”的古老原则适用 - 特别是如果您正在经营一家可能处于目标网络攻击接收端的知名企业。

用于轻松激活 HSTS 的 CDN

HTTP 严格传输安全 (HSTS) 是一项安全功能,可确保只能通过 SSL/TLS 连接访问您的域。HSTS对于具有多个子域的网站特别有用,因为它可用于轻松批量管理所有这些子域的SSL / TLS。

大多数现代 CDN 使 HSTS 实现变得轻而易举,将其作为开箱即用的功能提供,可直接从其仪表板进行管理。