假设我想参与一个可以通过中间人攻击(比如密钥交换)而受到攻击的行动。 我已经尽了最大的努力来保证我的通信结束,直到networking离开build筑物:我确保我的机器没有受到损害,我的局域网上没有无法识别的设备,我确认我的DNS没有被破坏等。我的搭档也是这样做的,我们相信一个中间人不能从楼内进行。
攻击者要成功地妥协我们之间的networking,以便在中间人攻击中进行攻击,是否有动力? 我假设美国政府与互联网服务提供商的合作将能够做到这一点。 但是如果没有ISP的许可呢?
如果我使用DSL,是否有人闯入本地DSLAM并插入代理?
他们可以在别人的前院挖掘电线并妥协吗?
是否有可能远程攻击骨干路由器,并将其作为代理?
关于防止中间人攻击的大多数讨论都集中在当地的networking上,暗示了一旦它从你的build筑物中走出来就是安全的。 这在理论和实践中有多真实?
一般的安全答案是一些信息,例如共享密钥或其他密钥,必须“带外”交换。 该信息然后用于encryption端点之间的连接,并提供某种程度的authentication。 如果一切都通过一个特定的连接,那么任何端点都不能在连接的任何方面有信心,因为一个或两个端点可能被中间人欺骗。
即使对于某些表面上带内的连接(如SSL连接),SSL连接之外也会交换信息 – 安装CA时,证书(证书颁发机构)与您的浏览器一起打包,最终与您之间的SSL连接和你的银行(希望)。
至于通常的安全性讨论,我认为隐含的假设与所描述的“一旦从你的build筑物(或网段或主机)走出来就是安全的”相反。 一旦数据不在您的build筑物中,您就无法控制它,数据和连接隐含不安全。 这就是为什么在build筑物之间创buildVPN的原因 – 所以如果攻击者篡改连接,你可能有机会了解它。
也许你已经注意到了关于端点安全性的讨论,即如果攻击者靠近其中一个端点,那么攻击者可以更容易地攻击一个特定的目标。 一旦将连接复用到Telco的核心networking中,就很难区分一个连接。 也许你已经注意到关于端点安全的讨论,许多公司对于保护自己的本地networking的安全性要比ISP为了保护其数据中心安全起见less,因此端点更容易受到攻击。
如果你真的想研究保护networking连接的偏执狂,看看军方的彩虹系列安全书籍(由“评估和validation通用标准”取代,而“彩虹系列”则是一个令人瞩目的绰号)。
“一旦我确保了build筑外的安全,我是否可以从中间人的安全逃脱?”
总之, 没有 。 你不安全只是因为你把它安全地从build筑物中取出来了。
MITM的例子往往围绕局域网或主机妥协,因为这些是MITM攻击最可能的途径。
攻击者可以通过许多方式(你提到的其中一些方法)利用你和对方之间的任何路由器,攻击者可以获得执行MITM攻击的能力。
所有你build议的项目都是可能的 。
使用SSL与正确validation的证书是迄今为止最好的主意。