我正在開發我的第一個多人RTS遊戲,我自然會使用UDP套接字來接收/發送數據。管理UDP套接字上的安全性
我一直在試圖弄清楚的一件事是如何保護這些端口不被被DoS攻擊中的虛假數據包淹沒。通常情況下,防火牆可以防止洪水攻擊,但是我需要允許我使用的端口上的數據包,並且必須依靠我自己的軟件來拒絕虛假數據包。什麼會阻止人們嗅探我的數據包,觀察我使用的任何身份驗證或特殊結構,並用類似的數據包發送垃圾郵件?源地址可以很容易地改變,以便檢測和禁止犯罪者幾乎不可能。是否有任何廣泛接受的方法來防範這類攻擊?
我完全瞭解UDP和TCP之間的區別,所以請不要把它變成關於這個的講座。編輯======================== =
我應該補充一點,我還試圖解決如何通過發送我認爲是來自我的遊戲的數據包來防止某人「黑客入侵」遊戲和欺騙行爲。排序/同步號碼或ID很容易被僞造。我可以使用加密,但我擔心這會減慢我的服務器的響應速度,而這不會爲DoS提供保護。
我知道這些都是每個使用UDP套接字的程序員都必須遇到的基本問題,但對於我來說,我找不到任何相關文檔來解決這些問題。
任何方向將不勝感激!
很棒的總結,非常感謝!我不知道如何判斷源IP是否無效?如果遊戲是在筆記本電腦/智能手機上播放的,則會話中的IP可能會發生變化。這是我到目前爲止所做的: *登錄認證開始活動會話 *將會話ID添加到所有數據包中 *用每個數據包的標籤(move/shoot/keepalive)標記每個數據包並限制每個數據包的每秒數 *讓服務器驗證客戶端在過去30秒內發送了多少個X類型的數據包 *邏輯上刪除任何看起來已損壞或僞造的數據包 *經常終止違反這些規則的會話 – Scotty 2012-02-03 22:33:13