你知道什么情况下 HTTPS 不安全么?

HTTPS(Hyper Text Transfer Protocol Secure)是一种网络协议,用于保护互联网上的通信安全和数据完整性。它使用TLS/SSL协议来对数据进行加密,这样即使攻击者截获了数据包也无法破解其中的内容。然而,有些情况下HTTPS并不是绝对安全的,本文将深入探讨这些情况。

1. 中间人攻击

中间人攻击(Man-in-the-middle attack,MITM)是一种黑客攻击方式,攻击者通过篡改通信过程中的数据,使得通信双方以为他们正在与对方通信,但实际上攻击者已经截获了所有信息并可以修改或查看其中的内容。

如果服务器和客户端之间的通信被劫持,攻击者可以欺骗客户端,使其认为自己正在与服务器进行HTTPS通信,但实际上客户端正在与攻击者通信,证书也是由攻击者提供的。这种情况下,虽然网络流量通过了加密通道,但是信息会被窃取,因为攻击者可以解密它们。

维基百科:

中间人攻击MITM)在密码学计算机安全领域中是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制[1]。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。在许多情况下这是很简单的(例如,在一个未加密的Wi-Fi 无线接入点的接受范围内的中间人攻击者,可以将自己作为一个中间人插入这个网络)。

一个中间人攻击能成功的前提条件是攻击者能将自己伪装成每一个参与会话的终端,并且不被其他终端识破。中间人攻击是一个(缺乏)相互认证的攻击。大多数的加密协议都专门加入了一些特殊的认证方法以阻止中间人攻击。例如,SSL协议可以验证参与通讯的一方或双方使用的证书是否是由权威的受信任的数字证书认证机构颁发,并且能执行双向身份认证。

以上定义来自维基百科,我们来举一个通俗的例子来理解中间人攻击:

image.png

  1. A发送给B一条消息,却被C截获:

A: “嗨,B,我是A。给我你的公钥”

  1. C将这条截获的消息转送给B;此时B并无法分辨这条消息是否从真的A那里发来的:

C: “嗨,B,我是A。给我你的公钥”

  1. B回应A的消息,并附上了他的公钥:

B -> B 的公钥 -> C

  1. C用自己的密钥替换了消息中B的密钥,并将消息转发给A,声称这是B的公钥:

C -> C 的公钥 -> A

  1. A 用它以为是 B的公钥,加密了以为只有 B 能看到的消息

A -> xxx -> C

  1. C 用 B 的密钥进行修改

C -> zzz -> B

这就是整个中间人攻击的流程。

中间人攻击怎么作用到 HTTPS 中?

首先让我来回顾一下 HTTPS 的整个流程:

回顾 HTTPS 过程

image.png

这是 HTTPS 原本的流程,但是当我们有了 中间人服务器之后,整个流程就变成了下面这个样子。

这个流程建议动手画个图,便于理解

  1. 客户端向服务器发送 HTTPS 建立连接请求,被中间人服务器截获。
  2. 中间人服务器向服务器发送 HTTPS 建立连接请求
  3. 服务器向客户端发送公钥证书,被中间人服务器截获
  4. 中间人服务器验证证书的合法性,从证书拿到公钥
  5. 中间人服务器向客户端发送自己的公钥证书

注意!在这个时候 HTTPS 就可能出现问题了。客户端会询问你:“此网站的证书存在问题,你确定要信任这个证书么。”所以从这个角度来说,其实 HTTPS 的整个流程还是没有什么问题,主要问题还是客户端不够安全。

  1. 客户端验证证书的合法性,从证书拿到公钥
  2. 客户端生成一个随机数,用公钥加密,发送给服务器,中间人服务器截获
  3. 中间人服务器用私钥加密后,得到随机数,然后用随机数根据算法,生成堆成加密密钥,客户端和中间人服务器根据对称加密密钥进行加密。
  4. 中间人服务器用服务端给的证书公钥加密,在发送给服务器时
  5. 服务器得到信息,进行解密,然后用随机数根据算法,生成对称加密算法

解决方式

防止中间人攻击的最好方法是使用公钥基础设施(PKI)。这是一种可以通过数字证书来验证身份的方法。在PKI中,数字证书由可信任的第三方机构颁发,并且公开注册和验证。如果攻击者试图创建自己的数字证书并用它来欺骗通信方,他们将会被检测到。

2. SSL/TLS协议漏洞

SSL/TLS协议是HTTPS使用的加密通信协议。尽管SSL/TLS协议是经过广泛测试的,但仍存在一些漏洞,这些漏洞可能导致黑客能够绕过加密以获取访问受保护的数据的权限。下面列举了几种常见的SSL/TLS协议漏洞:

CRIME攻击

CRIME攻击是一种利用SSL/TLS协议中的压缩算法来窃取信息的攻击方式。攻击者可以利用这个漏洞获得HTTP Cookie等敏感信息。

BEAST攻击

BEAST攻击是一种利用SSL/TLS协议中的加密块猜测漏洞来窃取信息的攻击方式。攻击者可以使用固定内容和不同被攻击者加密块之间的统计分析,进行暴力破解。

POODLE攻击

POODLE攻击是一种利用SSL/TLS协议中的SSLv3协议漏洞来窃取信息的攻击方式。攻击者可以使用它来获得Cookie等敏感信息。

解决方式

针对这些漏洞,TLS1.2版本已经进行了修复。如果您的网站使用较老的版本的SSL/TLS协议,建议升级到TLS1.2。

3. HTTPS代理

HTTPS代理是一种将HTTPS请求转发到目标站点并返回响应的中间代理。在企业内部网络中,通常使用HTTPS代理来监视和过滤员工的互联网活动。但是,如果代理不受信任或管理不善,会对HTTPS通信的机密性和完整性产生影响。

解决方式

为了避免HTTPS代理产生的安全风险,需要使用经过验证和可信任的HTTPS代理。建议使用合法的HTTPS代理软件,并要求员工在访问敏感信息时必须先连接到公司网络。

4. 证书错误

在HTTPS中,数字证书用于验证网站的身份,并确保通讯的机密性和完整性。然而,在某些情况下,证书可能被恶意地篡改或伪造,从而导致HTTP通信变得不安全。

解决方式

为了避免证书错误带来的风险,应该使用证书颁发机构颁发的数字证书,并验证证书的完整性和真实性。在互联网上,有很多工具可以检查SSL/TLS证书,我们建议使用这些工具来确保证书的有效性。

5. 在不安全的网络中使用HTTPS

最后,即使使用HTTPS协议,如果您在公共场合使用无线网络或者其他不安全的网络,您的通信也可能会被截获。恶意用户可以设置“中间人攻击”等技术来拦截和窃听通信,从而获取您的个人信息和敏感数据。

解决方式

为了避免在不安全的网络上使用HTTPS带来的风险,建议使用一个可靠的虚拟专用网络(VPN)。这样,您的网络流量将通过加密隧道到达VPN服务器,可以大大提高数据的安全性。

总结

尽管HTTPS协议相对于HTTP协议更加安全,但仍然存在一些情况下,HTTPS不安全。本文深入探讨了这些情况,包括中间人攻击、SSL/TLS协议漏洞、HTTPS代理、证书错误和在不安全的网络中使用HTTPS。建议在使用HTTPS协议时注意以上相关的安全问题,并采取适当的措施来保护您的数据安全。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值