首先, 那些成功的商业MMORPG是否使用加密进行游戏数据传输?
我得到的印象是,许多开发人员倾向于不使用加密,因为它无法阻止对作弊和制作私有服务器的逆向工程,但是它不能有效地减少那些数量吗?
加密也会影响性能,即使只是一点点.
良好的加密确实可以防止网络嗅探和中间人,对于MMORPG来说这些重要吗?
如何保护聊天消息以保护隐私?
你怎么想?
PS:我说的是游戏数据,而不是用户/密码,auth信息需要加密.
加密是一种工具.确保该工具符合问题.
加密对于三件事情很有用:1)第三方无法查看数据; 2)双方都是他们所说的人,3)数据未被修改.这些都不适用于此.请记住,客户端位于用户(攻击者)计算机上.如果他们修改了客户端,它将很乐意签署并加密他们想要的任何消息.
要考虑的第二件事是客户端有密钥,因此您应该假设攻击者也有密钥.即使您使用非对称加密,客户端也有密钥来解密它收到的任何内容.如果您向客户端发送"私人数据",攻击可以找到该密钥并对其进行解密.
一个好的MMORPG(欺骗难以作弊)应该假设两件事:a)用户/攻击者可以看到发送给客户端的任何数据(所以不要向客户端发送你不希望用户看到的东西)b)攻击者可以向用户发送任何可能的命令(因此不要依赖客户端的安全性).
在大多数MMORPG中,客户端只不过是一个令人印象深刻的图形的哑终端. 所有计算,错误检查和验证都发生在服务器端.客户不会确定您是否命中,也不会确定损坏程度.客户端只是告诉服务器"我是攻击项目382903128".或其他一些行动(不是结果).服务器验证播放器是否可以访问该选项,是否具有该项目,并且该命令此时有效.为了防止嗅探攻击,客户端仅获得用户无论如何都可以访问的数据.
在任何安全环境中,您都需要考虑威胁情景的确切内容.
攻击者A可以访问运行游戏客户端的机器,并且想要编写机器人来自动执行其操作以便轻松赢得战斗.
攻击者B正在窃听本地网络上的数据包,目的是为了
加密对攻击者A没有影响(因为游戏客户端可以解密通信,攻击者也可以解密;必须在服务器上采取反措施)但是会攻击攻击者B.
我不同意有关传输数据价值的其他一些答案.你与其他玩家的私人聊天与你的即时消息一样值得保护,你的黄金和财产,通过几个小时的辛劳获得,应该受到攻击者的一些保护,如果可能没有你在银行账户中的美元那么多.
如果加密确实能保护有价值的数据,那么它总是一件好事。其中包括银行数据、邮件、即时消息和文件传输。并不是因为我对 ISP 或网络提供商非常偏执,而是因为如果您处于开放网络(例如学校网络或公司网络)中,则存在特定的风险,即有人可能正在读取嗅探网络流量。
对于 MMORPGS,我没有看到安全性和性能方面的优势,因为大多数数据都是高度基于会话的,并且中间人攻击不太可能发生(因为毕竟,为什么你想要嗅探和攻击这样的数据)联系?)。
我要做的是将密码和登录凭据作为散列值传输(甚至仅加密该部分),并保留连接的其余部分明文;因此您不会遭受加密引起的 CPU 占用和延迟(特别是当服务器负载较重时)。