【发布时间】:2012-12-31 10:49:55
【问题描述】:
我正在创建一个遵循服务器/客户端范例的聊天服务程序。该聊天程序同时作为聊天服务器和聊天客户端存在,用户可以托管聊天室(并将其客户端连接到该服务器),也可以加入现有的聊天室。
客户端通过其他用户将告诉他们的直接 IP 地址(例如从 whatismyip.com 获得)和指定的端口号进行连接。
在此聊天程序中的任何时候,一个用户都可以将文件发送给另一个用户。这是通过要求服务器在两个用户之间建立握手来启动的,用户 A 通过服务器将他的 IP 传递给用户 B,并且用户 B 调用用户 A 为文件传输创建的新服务。这样就去掉了原来的聊天服务器,用户通过nettcp协议通过直接IP连接。
在此文件传输中,文件在最初通过 RSA 加密发送 AES 私钥后使用 AES 加密。
我想知道有人可以通过何种方式在这里发起中间人攻击。显然,我看到了通过服务器将 IP 地址传递给其他用户的缺陷,但现在我看不到任何其他方式,因为我无法让服务器检索发件人的 IPV4。
中间人攻击的方式是不是他可以看到这两个用户正在传输文件,并以某种方式从两端将数据流拉到自己?他可以在已经进行的文件传输会话上执行此操作吗?
我正在尝试了解 MITM 攻击的工作方式,以便查看是否可以保护我的程序免受此类攻击......但如果唯一可靠的方法是使用证书颁发机构(我'我还在学习),请继续告诉我。
【问题讨论】:
标签: security cryptography communication man-in-the-middle