美文网首页
中间人攻击

中间人攻击

作者: 彳亍口巴 | 来源:发表于2020-08-10 10:39 被阅读0次

    前言

    中间人攻击的定义:中间人攻击是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。

    简单来说,攻击者在请求和响应传输途中,拦截并篡改内容。对于 HTTP 来说,由于设计的简单,不需要太多步骤就可以进行监听和修改报文;在这里主要是针对 HTTPS,HTTPS 使用了 SSL 加密协议,是一种非常安全的机制,目前并没有方法直接对这个协议进行攻击,一般都是在建立 SSL 连接时,利用中间人获取到 CA证书、非对称加密的公钥、对称加密的密钥;有了这些条件,就可以对请求和响应进行拦截和篡改。

    中间人攻击需要截获请求响应

    对于中间人攻击,有一个前提就是:需要截获到客户端与服务器通信的线路。

    抓包工具一般都是用户主动将其设置成系统的网络访问代理服务器,使得所有的网络访问请求都通过它来完成,从而实现了网络封包的截取和分析。

    对于其它工具则是利用 DNS欺骗、ARP投毒、劫持网关等手段,将客户端的请求重定向到攻击者的机器,以便进行网络抓包。

    SSL 证书欺骗攻击

    SSL 证书欺骗攻击流程大概如下:

    1. 截获客户端与服务器通信的通道
    2. 然后在 SSL 建立连接的时候,进行中间人攻击
    3. 将自己伪装成客户端,获取到服务器真实有效的 CA 证书(非对称加密的公钥)
    4. 将自己伪装成服务器,获取到客服端的之后通信的密钥(对称加密的密钥)
    5. 有了证书和密钥就可以监听之后通信的内容了
    image image

    这个避免方法就是:

    • 客户端不要轻易信任证书
    • App 可以提前预埋证书在本地

    SSL 剥离攻击

    SSL 剥离就是将客户端的 HTTPS 请求降级成 HTTP 请求,阻止 HTTP 请求重定向成 HTTPS ,流程图如下:

    image

    总结

    中间人攻击主要是伪装身份,然后截取通信的内容,对于 HTTP 是可以很轻松的截获;但是对于 HTTPS,主要是在建立 SSL 连接的时候,骗取到证书和密钥;流程不是很复杂,但是这个里面会涉及到比较多的知识点。


    引用(本文章只供本人学习以及学习的记录,如有侵权,请联系我删除)

    10·iOS 面试题·什么是中间人攻击?如何避免?

    相关文章

      网友评论

          本文标题:中间人攻击

          本文链接:https://www.haomeiwen.com/subject/rundrktx.html