我正在創建一個遵循服務器/客戶端範例的聊天服務程序。該聊天程序既作爲聊天服務器也作爲聊天客戶端存在,用戶可以主持聊天室(並將其客戶端連接到該服務器),也可以加入現有聊天室。中間人可以發起什麼樣的攻擊?
客戶端通過其他用戶告訴他們的直接IP地址連接,例如從whatismyip.com獲得的IP地址和指定的端口號。
在這個聊天程序中的任何時候,一個用戶可以發送文件給另一個用戶。這是通過要求服務器在兩個用戶之間建立握手而發起的,其中用戶A通過服務器將他的IP傳遞給用戶B,並且用戶B調用用戶A爲文件傳輸創建的新服務。這消除了原始的聊天服務器,並且用戶通過使用nettcp協議的直接IP連接。
通過此文件傳輸,在最初通過RSA加密發送AES私鑰之後,文件會用AES加密。
我想知道有什麼樣的方法可以在這裏發起中間人的攻擊。很明顯,我看到了我通過服務器將IP地址傳遞給其他用戶的缺陷,但現在我沒有看到任何其他方式,因爲我無法讓服務器檢索發件人的IPV4。
中間人攻擊是如何工作的,是他可以看到這兩個用戶正在傳輸文件,並以某種方式將數據流從兩端拉向自己?他可以在已經進行的文件傳輸會話上做到這一點嗎?
我試圖理解MITM攻擊的方式,以便我可以看到我是否可以保護我的程序免受此類攻擊......但是如果可靠地這樣做的唯一方法是使用證書頒發機構(其中I還在學習中),請繼續並告訴我。