参考答案

中间人攻击(Man-in-the-middle attack, MITM),指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者窃听、篡改甚至完全控制。没有进行严格的证书校验是中间人攻击着手点。目前大多数加密协议都提供了一些特殊认证方法以阻止中间人攻击。如 SSL (安全套接字层)协议可以验证参与通讯的用户的证书是否有权威、受信任的数字证书认证机构颁发,并且能执行双向身份认证。攻击场景如用户在一个未加密的 WiFi下访问网站。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。
场景

  • i)在一个未加密的Wi-Fi 无线接入点的接受范围内的中间人攻击者,可以将自己作为一个中间人插入这个网络
  • ii)Fiddler / Charles (花瓶)代理工具
  • iii)12306 之前的自己证书

过程

  • i)客户端发送请求到服务端,请求被中间人截获
  • ii)服务器向客户端发送公钥
  • iii)中间人截获公钥,保留在自己手上。然后自己生成一个【伪造的】公钥,发给客户端
  • iv)客户端收到伪造的公钥后,生成加密hash值发给服务器
  • v)中间人获得加密hash值,用自己的私钥解密获得真秘钥,同时生成假的加密hash值,发给服务器
  • vi)服务器用私钥解密获得假密钥,然后加密数据传输给客户端

使用抓包工具fiddle来进行举例说明

  • 首先通过一些途径在客户端安装证书
  • 然后客户端发送连接请求,fiddle在中间截取请求,并返回自己伪造的证书
  • 客户端已经安装了攻击者的根证书,所以验证通过
  • 客户端就会正常和fiddle进行通信,把fiddle当作正确的服务器
  • 同时fiddle会跟原有的服务器进行通信,获取数据以及加密的密钥,去解密密钥

常见攻击方式

  • 嗅探:嗅探是一种用来捕获流进和流出的网络数据包的技术,就好像是监听电话一样。比如:抓包工具
  • 数据包注入:在这种,攻击者会将恶意数据包注入到常规数据中的,因为这些恶意数据包是在正常的数据包里面的,用户和系统都很难发现这个内容。
  • 会话劫持:当我们进行一个网站的登录的时候到退出登录这个时候,会产生一个会话,这个会话是攻击者用来攻击的首要目标,因为这个会话,包含了用户大量的数据和私密信息。
  • SSL剥离:HTTPS是通过SSL/TLS进行加密过的,在SSL剥离攻击中,会使SSL/TLS连接断开,让受保护的HTTPS,变成不受

保护的HTTP(这对于网站非常致命)

  • DNS欺骗,攻击者往往通过入侵到DNS服务器,或者篡改用户本地hosts文件,然后去劫持用户发送的请求,然后转发到攻击者想要转发到的服务器
  • ARP欺骗,ARP(address resolution protocol)地址解析协议,攻击者利用APR的漏洞,用当前局域网之间的一台服务器,来冒充客户端想要请求的服务端,向客户端发送自己的MAC地址,客户端无从得到真正的主机的MAC地址,所以,他会把这个地址当作真正

的主机来进行通信,将MAC存入ARP缓存表。

  • 代理服务器

预防方案:

  • i)用可信的第三方CA厂商
  • ii)不下载未知来源的证书,不要去下载一些不安全的文件
  • iii)确认你访问的URL是HTTPS的,确保网站使用了SSL,确保禁用一些不安全的SSL,只开启:TLS1.1,TLS1.2
  • iv)不要使用公用网络发送一些敏感的信息
  • v)不要去点击一些不安全的连接或者恶意链接或邮件信息