中间人攻击(mitm)在密码学和计算机安全领域中是指攻击者与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。
(man-in-the-middle attack,缩写:)在密码学和计算机安全领域中是指与通讯的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。在许多情况下这是很简单的(例如,在一个未加密的 wi-fi 无线接入点的接受范围内的中间人攻击者,可以将自己作为一个中间人插入这个网络)。
一个中间人攻击能成功的前提条件是攻击者能将自己伪装成每一个参与会话的终端,并且不被其他终端识破。中间人攻击是一个(缺乏)相互认证的攻击。大多数的加密协议都专门加入了一些特殊的认证方法以阻止中间人攻击。例如,ssl 协议可以验证参与通讯的一方或双方使用的证书是否是由权威的受信任的数字证书认证机构颁发,并且能执行双向身份认证。
需要通过一个安全的通道做额外的传输
与连锁协议不同,所有能抵御中间人攻击的加密系统都需要通过一个安全通道来传输或交换一些额外的信息。为了满足不同安全通道的不同安全需求,许多密钥交换协议已经被研究了出来。
防御攻击
许多抵御中间人攻击的技术基于以下认证技术:
- 公钥基础建设
- 在 pki 方案中,主要防御中间人攻击的方案就是 pki 的相互认证的机制。使用这样的机制并由应用程序验证用户,用户设备验证应用程序。但在某些流氓应用的情况下,这不是很有用,所以需要注意对流氓软件应与正规软件进行区分。
- 更强力的相互认证,例如:
- 密钥(通常是高信息熵的密钥,从而更安全)
- 密码(通常是低的信息熵的密钥,从而降低安全性)
- 延迟测试,例如使用复杂加密哈希函数进行计算以造成数十秒的延迟;如果双方通常情况下都要花费 20 秒来计算,并且整个通讯花费了 60 秒计算才到达对方,这就能表明存在第三方中间人。
- 第二(安全的)通道的校验
- 一次性密码本可以对中间人攻击免疫,这是在对一次密码本的安全性和信任上创建的。公钥体系的完整性通常必须以某种方式得到保障,但不需要进行保密。密码和共享密钥有额外的保密需求。公钥可以由证书颁发机构验证,这些公钥通过安全的渠道(例如,随 web 浏览器或操作系统安装)分发。公共密钥也可以经由 web 在线信任进行在线验证,可以通过安全的途径分发公钥(例如,通过面对面的途径分发公钥)。
中间人攻击的取证分析
从被怀疑是中间人攻击的链接中捕捉网络数据包并进行分析可以确定是否存在中间人攻击。在进行网络分析并对可疑的 ssl 中间人攻击进行取证时,重要的分析证据包括:
- 远程服务器的 ip 地址
- dns 域名解析服务器
- x.509 证书服务器
- 证书是自签名证书吗?
- 证书是由信任的颁发机构颁发的吗?
- 证书是否已被吊销?
- 证书最近被更改过吗?
在互联网上的其他的客户端是否也得到了相同的证书?
其他的非加密的中间人攻击
一个著名的非加密中间人攻击的例子是贝尔金无线路由器 2003 年的某一个版本所造成的。它会周期性地接管通过它的 http 连接,阻止数据包到达目的地。并将它自己对请求的回应作为应答返回。而它发送的回应,则是在用户原本应该显示网页的地方,显示一个关于其他贝尔金产品的广告。在遭到了解技术详情的用户的强烈抗议后,这个功能被贝尔金从路由器后续版本的固件中删除。
另一个典型的非加密中间人攻击的例子是“图灵色情农场”。布赖恩·华纳说,这是垃圾邮件用来绕过验证码的“可以想象的攻击”。垃圾邮件发送者设置了一个色情网站,而访问这个色情网站需要用户解决一些验证问题。这些验证问题实际上是其他网站的验证问题。这样就可以达到绕开网站验证发送垃圾邮件的目的。然而,jeff atwood 指出,这次袭击仅仅是理论上的——没有任何证据指出垃圾邮件发送者曾经在 2006 年创建了图灵色情农场。然而,2007 年 10 月有新闻报道称,垃圾邮件发送者确实创建了一个 windows 游戏,当用户键入从雅虎收到的注册邮箱验证码后,程序将奖励用户色情图片。这将允许垃圾邮件发送者创建临时的免费电子邮件帐户以发送垃圾邮件。