Security 人类中间攻击的方式是什么?

Security 人类中间攻击的方式是什么?,security,cryptography,communication,man-in-the-middle,Security,Cryptography,Communication,Man In The Middle,我正在创建一个遵循服务器/客户端模式的聊天服务程序。该聊天程序既作为聊天服务器也作为聊天客户端存在,用户可以主持聊天室(并将其客户端连接到该服务器),也可以加入现有的聊天室 客户端通过其他用户将告诉他们的直接IP地址(如从whatismyip.com获得的地址)和指定的端口号进行连接 在此聊天程序中的任何时候,一个用户都可以向另一个用户发送文件。这是通过要求服务器设置两个用户之间的握手来启动的,用户a将其IP通过服务器传递给用户B,用户B调用用户a为文件传输创建的新服务。这消除了原来的聊天服务器

我正在创建一个遵循服务器/客户端模式的聊天服务程序。该聊天程序既作为聊天服务器也作为聊天客户端存在,用户可以主持聊天室(并将其客户端连接到该服务器),也可以加入现有的聊天室

客户端通过其他用户将告诉他们的直接IP地址(如从whatismyip.com获得的地址)和指定的端口号进行连接

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

在此文件传输过程中,在最初通过RSA加密发送AES私钥后,将使用AES对文件进行加密

我想知道有人能在这里发起一种中间人攻击的方式。显然,我看到了通过服务器将IP地址传递给其他用户时存在的缺陷,但现在我看不到任何其他方式,因为我无法让服务器检索发送方的IPV4

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


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

在进行更多搜索后,我发现了这个伟大的链接,它详细解释了不同类型的MITM攻击及其工作和执行方式

共有四个部分

一个中间人攻击的方式是,他能看到。 这两个用户正在传输文件,并以某种方式提取数据 从两端流到自己身上?他能在已经在进行中的情况下这样做吗 文件传输会话

您需要定义一个威胁模型。通常的怀疑是消息插入、删除、篡改和重新排序。有时攻击者只需篡改消息,您就可以做错事。例如,他/她可能需要稍微翻转一下,以便“从a向B转账100美元”更改为“从a向B转账900美元”。在这种情况下,攻击者不需要在中间或解密消息。
我正试图了解MITM攻击的工作方式,这样我就可以看看我是否 可以保护我的程序免受此类攻击。。。但是如果唯一的办法 可靠地做到这一点是使用证书颁发机构(我仍然是其中的一员) 了解),请继续告诉我

与其尝试设计一个强化的协议,也许您可以使用一个已经存在的协议来解决您的问题

该协议将是Z实时传输协议(ZRTP)。RFC 6189中规定了该协议

ZRTP是一种密钥交换协议,它包含短身份验证字符串(SA)以阻止MitM。本质上,SAS是一种只需执行一次的语音身份验证。您可以省略SAS检查,但不建议这样做。如果你忽略了检查,而坏人没有攻击,那么当前和未来的训练都可以

一旦您在没有对手篡改的情况下建立了第一个安全通道,所有未来会话都将是安全的,因为当前会话的密钥协议依赖于早期会话。已知最早的会话(第一个会话)是安全的

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

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

Matthew Green博士在他的密码工程网站上有一个关于ZRTP的博客

要回答您关于MitM的问题,堆栈溢出的答案太多了。一本伟大的免费书是彼得·古特曼的。MitM有时是攻击者的目标,但它不是他/她的唯一载体。古特曼的书探讨了许多威胁,人类如何行动和反应,攻击者为何成功,以及如何围绕许多问题进行设计