Android中Https通信实现_中间人攻击、DNS欺骗和会话劫持

版权声明:本博客主要记录学习笔记和遇到的一些问题解决方案,转载请注明出处! https://blog.csdn.net/u010982507/article/details/85263085

上一篇文章记述了在Android中使用Https进行单向认证的配置,但单向认证存在中严重的安全漏洞,其中最容易受到中间人攻击和DNS欺骗以及会话劫持,本文主要讲述进行中间人攻击、DNS欺骗和会话劫持的方式。

概览

  • 什么是中间人攻击
  • 模拟中间人攻击
  • 防御中间人攻击
  • 什么是DNS欺骗
  • 防御DNS欺骗
  • 什么是会话劫持
  • 防御会话劫持

什么是中间人攻击

中间人攻击(Man-in-the-MiddleAttack)简称(MITM),是一种“间接”的入侵攻击,这种攻击模式是通过各种技术手段将受入侵者控制的一台计算机虚拟放置在网络连接中的两台通信计算机之间,这台计算机就称为“中间人”。
中间人攻击是一种由来已久的网络入侵手段,并且当今仍然有着广泛的发展空间,如SMB会话劫持、DNS欺骗等攻击都是典型的MITM攻击。简而言之,所谓的MITM攻击就是通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方却毫不知情。

模拟中间人攻击

  • 中间人攻击第一种方式:
    客户端向服务器发起请求,中间人拦截请求,并截取到客户端发送的消息(如果使用Http 请求,这里就会收到明文的消息,而使用Https则拦截的是密文消息),然后中间人使用代理服务器将客户端信息发送到服务端,服务端此时不知道是中间人发送来的消息,以为收到的是客户端消息,就把公开密钥证书发送给代理服务器,代理服务器此时就可以选择使用公开密钥将加密的数据恶意发送到服务端,或者将公开密钥证书再发给客户端,客户端收到公开密钥证书,然后使用公钥对报文进行加密,再将加密后的报文发送给服务端,而代理服务器没有私钥进行解密,所以只好将报文再发给服务端,但是代理服务器此时可以做一些破坏操作。
  • 中间人攻击第二种方式:
    客户端向服务器发起请求,中间人使用代理服务器拦截,而中间人也有CA证书,所以将代理服务器的公开密钥证书发送给客户端,而客户端收到代理服务器的证书,验证没问题。客户端和代理服务器就建立了信任通道。
    代理服务器再将客户端发来的消息发送给服务器,服务器收到请求后将真正的公开密钥证书发送给代理服务器,代理服务器此时就拥有公钥,然后使用公钥将客户端发来的消息进行加密,再发送给服务端,服务端并不知道是中间人发来的消息,所以会将结果返回给代理服务器,这样代理服务器和服务器也建立了信任通道。此时代理服务器就拥有了客户端的私钥和服务端的公钥,就可以做到欺上瞒下的,也就是中间人攻击。

防御中间人攻击

客户端内置证书公钥,客户端使用公钥加密消息,发送给服务器;代理服务器拦截后没有私钥无法解析,就将消息发送给服务器,服务器使用私钥解密,验证客户端合法,然后将私钥加密证书发送给客户端,代理服务器收到服务端消息,因为没有公钥所以无法解密,只好再转发给客户端,客户端收到证书,然后通过公钥解密证书,再进行验证签名,和服务端协商对称密钥。

什么是DNS欺骗

DNS欺骗(DNSSpoofing),就是其中的一种惯用手法。攻击者通过入侵DNS服务器、控制路由器等方法把受害者要访问的目标机器域名对应的IP解析为攻击者所控制的机器,这样受害者原本要发送给目标机器的数据就发到了攻击者的机器上,这时攻击者就可以监听甚至修改数据,从而收集到大量的信息。如果攻击者只是想监听双方会话的数据,他会转发所有的数据到真正的目标机器上,让目标机器进行处理,再把处理结果发回到原来的受害者机器;如果攻击者要进行彻底的破坏,他会伪装目标机器返回数据,这样受害者接收处理的就不再是原来期望的数据,而是攻击者所期望的了。例如让DNS服务器解析银行网站的IP为自己机器IP,同时在自己机器上伪造银行登录页面,那么受害者的真实账号和密码就暴露给入侵者了。

防御DNS欺骗

DNS欺骗的攻击模型太理想了。在实际生活中,大部分用户的DNS解析请求均是通过自己的ISP服务器进行的,换句话说,就是系统在连接网络时会获取到ISP服务器提供的DNS服务器地址,所有解析请求都是直接发往这个DNS服务器的,攻击者根本无处入手,除非他能入侵更改ISP服务器上DNS服务的解析指向。所以这种手法在广域网上成功的几率不大。

什么是会话劫持

会话劫持(SessionHijack)是一种结合了嗅探以及欺骗技术在内的攻击手段。广义上说,会话劫持就是在一次正常的通信过程中,攻击者作为第三方参与到其中,或者是在数据里加入其他信息,甚至将双方的通信模式暗中改变,即从直接联系变成有攻击者参与的联系。简单地说,就是攻击者把自己插入到受害者和目标机器之间,并设法让受害者和目标机器之间的数据通道变为受害者和目标机器之间存在一个看起来像“中转站”的代理机器(攻击者的机器)的数据通道,从而干涉两台机器之间的数据传输,例如监听敏感数据、替换数据等。由于攻击者已经介入其中,他能轻易知道双方传输的数据内容,还能根据自己的意愿去左右它。这个“中转站”可以是逻辑上的,也可以是物理上的,关键在于它能否获取到通信双方的数据。

防御会话劫持

至于局域网内各种各样的会话劫持(局域网内的代理除外),因为它们都要结合嗅探以及欺骗技术在内的攻击手段,必须依靠ARP和MAC做基础,所以网管应该使用交换式网络(通过交换机传输)代替共享式网络(通过集线器传输),这可以降低被窃听的机率,当然这样并不能根除会话劫持,还必须使用静态ARP、捆绑MAC+IP等方法来限制欺骗,以及采用认证方式的连接等。

猜你喜欢

转载自blog.csdn.net/u010982507/article/details/85263085
今日推荐