中间人攻击带来的威胁

7
有多少中间人攻击(MITM)是多么频繁(和/或复杂)?
关于
在密码学中,中间人攻击(常缩写为MITM),或称桶式攻击或Janus攻击,是一种主动窃听形式,攻击者与受害者建立独立的连接并在其之间中继消息,使他们相信他们正在通过私人连接直接交谈,而实际上整个对话都由攻击者控制。攻击者必须能够拦截两个受害者之间的所有消息并注入新消息,在许多情况下这是很简单的(例如,一个位于未加密Wi-Fi无线访问点接收范围内的攻击者可以将自己插入中间人)。

http://en.wikipedia.org/wiki/Man-in-the-middle_attack

我之所以问这个问题是为了尝试衡量是否值得增加加密重要内容的开销,或者直接发送未加密的内容是否安全。注意:我知道这并不严格属于“编程”问题,因为没有代码解决方案,但它影响编码决策并且基于编码,所以仍然适用。

你问题相关的一个想法是:当阻止安全系统的(感知到的)收益超过了付出的成本和努力时,该系统就会失效。 - Vivian River
6个回答

9
不需要MITM攻击就可以读取未加密的数据。 MITM攻击用于允许攻击者读取已经加密的数据。编辑:与MITM攻击相关的问题不是您是否应该进行加密,而是在设置加密连接时是否应进行某种身份验证(即验证远程方的身份)。如果完全不加密,则“窃听者”只需查看数据随着流动的过程并看到其中的所有内容。 MITM攻击适用于您进行加密但未验证发送加密数据对象的情况。在这种情况下,攻击者将自己插入对话中-您连接到攻击者,并向他发送加密数据。他连接到您打算通话的人,并与您两个人创建一个加密连接。然后,当您发送数据时,他接收它,使用您的密钥解密,使用目标的密钥重新加密,并将其发送到目标。同样,他使用目标的密钥解密任何返回的数据,并使用您的密钥重新加密。这样,对您和目标来说,通信似乎正常进行-但攻击者可以阅读您发送的所有内容。但是,如果您根本不加密数据,则所有这些都是不必要的,因为您正在发送纯文本,攻击者可以在数据传输中查看数据。

2
显然,OP不需要关心这个问题,他想知道是否值得设置TLS或类似的防御措施来防范中间人攻击。 - L̲̳o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e̲̳̳
@Longpoke:也许吧——但是你的结论似乎主要基于你自己的假设,而不是原帖实际说/问的内容。 - Jerry Coffin

4
MITM攻击并不一定会被加密所阻止。例如,如果您使用所谓的“自签名证书”进行加密,则您的通信将被加密,但MITM攻击仍然可能发生。例如,如果您加载"Fiddler"到客户端上,并使用自签名证书,它将执行MITM操作以便观察所有流量。客户端和服务器将意识不到MITM正在发生。
如果您使用真正的PKI(涉及真正受信任的第三方),则MITM是不可能的。
无论如何,如果您的数据价值对攻击者来说“值得”,那么MITM攻击就相当容易实现。

1
不是说这是不可能的,而是中间人攻击必须在你下载网络浏览器时修改感兴趣的密钥认证机构的公钥,并始终充当所有安全事务的认证机构。你的ISP有能力这样做,但保护自己免受此类攻击将涉及到安全过度防护的领域。 - tloach
@tloach:答案明确提到了自签名证书,所以这不是真的——我们不是在谈论浏览器... - BlueRaja - Danny Pflughoeft
@LongPoke: 这与下载公共CA列表是不等同的。如果有人修改了CA列表,那么他们需要拦截每一个发送给被修改的CA的消息,即使他们对该流量不感兴趣。此外,公共CA列表通常随浏览器(或在IE或safari的情况下随操作系统)提供,这在第一时间就会更具挑战性,因为您需要实时修改一个大型二进制加上MD5签名。 - tloach
虽然当有人中间人攻击操作系统或浏览器传输时,更可能的是他只会注入恶意代码... - L̲̳o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e̲̳̳
@tloach,1. 一旦你劫持了一个CA,很有可能你会用它来接管目标计算机,然后再替换被劫持的CA为正常的。2. 全职MITM并不是问题,你只需要做足够长的时间来获取所需的信息。3. 即使你留下了一个损坏的CA,用户也有99%的可能不知道发生了什么,并且会:a)强制接受损坏的CA;b)重新安装浏览器;c)重新安装操作系统。 - L̲̳o̲̳̳n̲̳̳g̲̳̳p̲̳o̲̳̳k̲̳̳e̲̳̳
显示剩余5条评论

3

根据应用程序而定,但如果发送的数据具有任何敏感性,一定要防止中间人攻击!这是一个非常相关的危险,特别是随着Wi-Fi的普及越来越容易实现;去年我和朋友很轻松地复制了Gmail MIMA。


2
我建议您查阅Internet Storm Center (isc.sans.org)以了解有关互联网攻击类型频率的任何问题。
请记住,MITM是一个非常广泛的术语,您似乎更担心仅仅是会话嗅探(即窃听)攻击。嗅探攻击很容易实现。完整的MITM可以修改会话,这可能与仅查看信息有不同的含义。此修改需要更高级的技巧,但不需要自定义工具。
在您的站点上使用TLS/SSL将保护数据免受窥视,并确保客户端确实与正确的服务器通信。
针对编码的说明 - 无论您是否决定使用加密,都应该设计您的Web应用程序,使得以后添加加密不会太麻烦。

1

任何时候当你谈论安全性时,都是在谈论数据的敏感性。你的秘密对某人越有价值,他们就会越有决心去获取它,并且他们将扩大使用的资源。相反,对你来说,如果保守秘密越有价值,那么你应该扩大保护它所用的资源。


0

中间人攻击对于任何人来说都很容易,特别是在公共网络上。你需要决定是否允许任何人阅读你的数据...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接