suukii / fe-interview

前端面试题整理
5 stars 0 forks source link

什么是中间人攻击 MITM #25

Open suukii opened 4 years ago

suukii commented 4 years ago

中间人攻击是攻击方拦截了通信双方的连接,并重新与它们分别建立连接,控制整个通信过程。比如在一个 HTTP 通信中,攻击方会拦截客户端和服务器的 TCP 连接,并分别建立 客户端 <-> 攻击方 以及 攻击方 <-> 服务器 的 TCP 连接,此时攻击方就相当于一个代理,不仅可以获得双方的通信信息,还能对通信信息进行修改,而通信双方对此毫不知情。

通常来说不建议使用公共的 Wi-Fi,因为很可能会发生中间人攻击的情况,如果在通信过程中传送了敏感信息,就完全泄露给了攻击方。

当然 HTTPS 是一种防御中间人攻击的手段,通过增加一个安全通道来传输信息。不过中间人攻击同样也是可以用于 HTTPS 连接的,只是多了一个 SSL 连接,攻击方先跟客户端建立 SSL 连接,再和服务器建立 SSL 连接。一般这种情况下客户端会提醒用户当前证书是不安全的,但也有可能在某些情况下,攻击方破解了服务器的证书,或者攻击方的证书来自可信赖的 CA 并且 CN 和服务器的一样,这样客户端就不会弹出警告了。而且,攻击方还可能通过某些方式将 HTTPS 降级为 HTTP 从而实现中间人攻击。