【发布时间】:2012-07-25 09:40:43
【问题描述】:
我目前正在构建一个快节奏的多人游戏,其中安全性是一个大问题。
我已经在 Java 中通过 UDP 实现了停止等待(为简单起见,这是一种临时措施)。
但是,我担心恶意方可能会分别向发送者或接收者发送错误的确认或消息,从而导致序列号不同步——本质上会导致消息丢失(游戏崩溃!)或发件人无限期地重新发送。
在我的应用程序中,每个参与者都由 RSA 公钥标识,因此我可以为每条消息添加签名哈希以进行身份验证……但这会大大增加标头大小并在一定程度上混淆我的架构层。
这是一种常见的方法吗?这个问题有众所周知的解决方案吗?
【问题讨论】:
-
由于 UDP 数据包不可靠(不保证按发送顺序出现,也不保证传送),您的游戏必须防御乱序数据包、丢失数据包和重复数据包.它不应该崩溃。实际上,无论客户端发送什么内容,您的游戏服务器都无法承受崩溃的后果——您可以拒绝或忽略某些内容,但您无法承受崩溃的后果。
标签: java security authentication udp