2013-05-12 61 views
0

我想創建一個實時多人遊戲,我想知道我應該如何保護和識別每個用戶。例如,假設我有一張包含5個玩家的地圖,每個玩家通過udp將每個1/60秒的位置發送給服務器。信息應該如何顯示?也許從客戶機到服務器的UDP消息可能是:安全通信在實時遊戲

回購球員玩家IDXÿ

但隨後有人可能會發送數十億美元的消息給我的服務器與他想要的任何球員ID並基本上管理每個用戶的位置。任何想法應該如何解決?

回答

0

您正確地注意到欺騙是這裏的主要威脅。

解決它的一個方法是要求玩家先登錄。成功登錄後,給他們一個令牌或臨時密鑰,然後使用此密鑰來檢查每條消息的有效性。

爲了檢查有效性,您可以使用其中一種數字簽名方案對消息進行簽名,也可以只包含祕密臨時令牌和消息。

您可以通過每幾分鐘更換一次該密鑰來進一步改進此方案。這將需要一個單獨的消息類型,必須使用現有的臨時密鑰進行身份驗證。