可以启动中间人攻击的方式是什么?

时间:2013-01-16 23:42:52

标签: security cryptography communication man-in-the-middle

我正在创建一个遵循服务器/客户端范例的聊天服务程序。该聊天程序既作为聊天服务器又作为聊天客户端存在,并且用户可以托管聊天室(并且它将客户端连接到该服务器),或者他可以加入现有的聊天服务器。

客户端通过其他用户告诉他们的直接IP地址进行连接,例如从whatismyip.com获得的,以及指定的端口号。

在此聊天程序的任何时间,一个用户可以将文件发送给另一个用户。这是通过要求服务器在两个用户之间建立握手来启动的,用户A通过服务器将IP传递给用户B,用户B调用用户A为文件传输创建的新服务。这消除了原始聊天服务器,并且使用nettcp协议通过直接IP连接用户。

通过此文件传输,在最初通过RSA加密发送AES私钥后,文件使用AES加密。

我想知道有人可以通过什么方式在这里发起中间人攻击。显然我看到了通过服务器将IP地址传递给其他用户的缺陷,但是现在我没有看到任何其他方式,因为我无法让服务器检索发件人的IPV4。

中间人攻击的方式是,他可以看到这两个用户正在传输文件,并以某种方式将数据流从两端拉到自己身边?他可以在已经进行的文件传输会话中执行此操作吗?

我正在尝试了解MITM攻击的工作方式,所以我可以看看我是否可以保护我的程序免受此类攻击...但是如果可靠的唯一方法就是使用证书颁发机构(我是我还在学习,请继续告诉我。

2 个答案:

答案 0 :(得分:1)

在进行了更多搜索之后,我发现了这个很棒的链接,解释了不同类型的MITM攻击以及它们如何工作并且执行得非常详细。

http://www.windowsecurity.com/articles/Understanding-Man-in-the-Middle-Attacks-ARP-Part1.html

总共有四个部分。

答案 1 :(得分:0)

  

中间人攻击的方式是否正常,是他能看到的   这两个用户正在传输文件,并以某种方式提取数据   从两端流向自己?他能否在已经持续的情况下做到这一点   文件传输会话?

您需要定义威胁模型。通常的嫌疑人是邮件插入,删除,篡改和重新排序。有时攻击者只需要篡改消息,这样你就会做错事。例如,他/她可能需要翻转一下,以便“从A到B转移100美元”变为“从A转移到A到900”。在这种情况下,攻击者不需要在中间或解密消息。


  

我正在试图了解MITM攻击的工作方式,所以我可以看看是否可以   可以保护我的程序免受此类攻击......但如果是唯一的方法   可靠地这样做是使用证书颁发机构(我仍然是   了解一下,请继续告诉我。

您可以使用已经存在的解决您问题的协议,而不是尝试设计强化协议。

该协议将是Z-Real-time Transport Protocol(ZRTP)。该协议在RFC 6189中指定,ZRTP: Media Path Key Agreement for Unicast Secure RTP

ZRTP是一种密钥交换协议,包括短认证字符串(SAS)以阻止MitM。从本质上讲,SAS是一种语音验证,只需要执行一次。您可以省略SAS检查,但不建议这样做。如果省略检查,那么坏人不会攻击,那么当前和未来的会话都可以。

一旦建立了第一个没有对抗性篡改的安全通道,由于当前会话的密钥协议取决于早期会话的方式,所有未来的会话都将是安全的。并且最早的会话(第一次会议)是安全的。

ZRTP还提供前向保密,因此当前会话的妥协不会影响过去会话的安全性。

ZRTP不要求认证机构或其他(非)受信任的第三方。

博士。 Matthew Green在Let's talk about ZRTP的密码工程网站上有一个关于ZRTP的博客。

要回答关于MitM的问题,Stack Overflow的答案太多了。一本伟大的免费书是彼得古特曼的Engineering Security。 MitM有时是攻击者的目标,但它不是他/她唯一的向量。 Guttman的书着眼于许多威胁,人类如何行动和反应,攻击者为何成功,以及如何围绕许多问题进行设计。