HTTP系列(第5部分):安全性

你真的需要HTTPS吗?

您可能会想:“当然并非所有网站都需要受到保护和保护”。如果一个网站没有提供敏感数据或者没有任何表格提交,那么购买证书并减慢网站速度就太大了,只是为了在URL栏上显示“安全”的绿色标记。

如果你拥有一个网站,你知道它尽可能快地加载是至关重要的,所以你尽量不要用不必要的东西加重它。

HTTPS加密您的消息并解决MITM问题

在HTTP系列的前一部分中,我谈到了不同的HTTP身份验证机制及其安全漏洞。基本和摘要式身份验证无法解决的问题是中间攻击的人。中间的人表示在您与您正在与之通信的网站之间插入自己的任何恶意方。它的目标是通过两种方式拦截原始消息,并通过转发修改后的消息来隐藏其存在。

HTTP系列(第5部分):安全性

通信的原始参与者可能不知道正在收听他们的消息。

HTTPS通过加密通信来解决MITM攻击问题。现在,这并不意味着您的流量无法再被收听。这意味着任何侦听和拦截您的消息的人都无法看到其内容。要解密消息,您需要密钥。我们将在稍后了解它的工作原理。

一切都在关注速度

HTTPS是使用HTTP 2.0协议的要求。

如果我们查看网络选项卡,我们将看到在HTTPS情况下,图像是通过h2协议加载的。瀑布看起来也很不一样。

HTTP 2.0是当前流行的HTTP / 1.1的继承者。

它比HTTP / 1.1有许多优点:

  • 它是二进制的,而不是文本的
  • 它是完全多路复用的,这意味着它可以通过单个TCP连接并行发送多个请求
  • 通过使用HPACK压缩减少开销
  • 它使用新的 ALPN 扩展,允许更快加密的连接
  • 它减少了额外的往返时间(RTT),使您的网站加载速度更快
  • 很多其他的

SSL与TLS

术语SSL(安全套接字层)和TLS(传输层安全性)可以互换使用,但事实上,今天,当有人提到SSL时,他们可能意味着TLS

SSL最初是由Netscape开发的,但1.0版本从未见过当天的亮点。版本2.0是在1995年引入的,而版本3.0是在1996年引入的,并且它们在此之后被使用了很长时间(至少在IT中被认为很长),尽管它们的继任者TLS已经开始引起关注。直到2014年。服务器支持从TLS到SSL的回退,这是POODLE攻击如此成功的主要原因。之后,完全禁用了SSL的回退

TLS握手

在客户端和服务器之间真正的加密通信开始之前,它们执行所谓的“TLS握手”。

以下是TLS握手的工作原理。

HTTP系列(第5部分):安全性

建立连接后,加密通信开始。

实际的机制比这复杂得多,但是要实现HTTPS,您不需要知道TLS握手实现的所有实际细节。

您需要知道的是客户端和服务器之间存在初始握手,它们交换密钥和证书。在握手之后,加密通信就可以开始了。

如果您想确切了解TLS Handshake的工作原理,可以在RFC 2246中查找。

在TLS握手图像中,正在发送证书,因此让我们看看证书代表什么以及如何颁发证书。

证书和证书颁发机构(CA)

证书是通过HTTPS进行安全通信的关键部分。它们由其中一个受信任的证书颁发机构颁发。

数字证书允许网站用户在使用网站时以安全的方式进行通信。

证书链

那么为什么您的浏览器会信任服务器发回的证书?任何服务器都可以发送一份数字文档并声称它是您想要的。

这就是根证书的用武之地。通常证书是链接的,根证书是您的机器隐含信任的证书。

您的计算机和浏览器都有一个受信任的根证书列表,他们依赖这些证书来确保您浏览的域名是可信的。如果证书链由于某种原因而中断(发生在我身上,因为我为我的博客启用了CDN),您的站点将在某些计算机上显示为不安全。

您可以通过按Windows按钮+ R并键入certmgr.msc来运行证书管理器,以检查Windows上受信任的根证书列表。然后,您可以在“受信任的根证书颁发机构”部分中找到计算机可信证书。此列表由Windows,IE和Chrome使用。另一方面,Firefox管理自己的列表。

通过交换证书,客户端和服务器知道他们正在与正确的一方通话并且可以开始加密的消息传输。

HTTPS弱点

如果未正确实现站点后端,HTTPS可能会提供错误的安全感。提取客户信息的方式有很多种,即使使用HTTPS,许多网站也会泄露数据。除了MITM之外,还有许多其他机制可以从网站获取敏感信息。

网站可以拥有HTTP链接是另一个潜在问题,即使它们通过HTTPS运行。这可能是MITM攻击的机会。在将网站迁移到HTTPS时,这可能会被忽视。

这是另一个奖励:通过不安全页面访问的登录表单即使加载在安全页面也可能存在风险。因此,最好保持整个网站的安全,以避免这一点。


分享到:


相關文章: