Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Encryption MMORPG应该使用加密吗?_Encryption - Fatal编程技术网

Encryption MMORPG应该使用加密吗?

Encryption MMORPG应该使用加密吗?,encryption,Encryption,首先,, 那些成功的商业MMORPG是否使用加密进行游戏数据传输 我得到的印象是,许多开发人员倾向于不使用加密,因为它不能防止欺骗和制作私有服务器的反向工程,但是它不是有效地减少了这些人的数量吗 加密也会影响性能,哪怕只是一点点 良好的加密确实可以防止网络嗅探和中间人,这些对MMORPG很重要吗 为隐私问题保护聊天信息怎么样 你觉得怎么样 PS:我说的是游戏数据,而不是用户/密码,身份验证信息肯定需要加密。如果加密确实保护了有价值的数据,那么它总是一件好事。这将是银行数据、邮件、即时消息和文件传

首先,, 那些成功的商业MMORPG是否使用加密进行游戏数据传输

我得到的印象是,许多开发人员倾向于不使用加密,因为它不能防止欺骗和制作私有服务器的反向工程,但是它不是有效地减少了这些人的数量吗

加密也会影响性能,哪怕只是一点点

良好的加密确实可以防止网络嗅探和中间人,这些对MMORPG很重要吗

为隐私问题保护聊天信息怎么样

你觉得怎么样


PS:我说的是游戏数据,而不是用户/密码,身份验证信息肯定需要加密。

如果加密确实保护了有价值的数据,那么它总是一件好事。这将是银行数据、邮件、即时消息和文件传输。这并不是因为我对我的ISP或网络提供商非常偏执,而是如果你在一个开放的网络(例如,学校网络或公司网络)中,有人可能正在阅读嗅探网络流量

对于MMORPG,我看不到安全性和性能方面的好处,因为大多数数据都是高度基于会话的,中间人攻击不太可能发生(因为,毕竟,你为什么要嗅探和攻击这样的连接?)


我要做的是将密码和登录凭证作为散列值传输(甚至只加密这一部分),并将连接的其余部分保留为明文;因此,您不会因为加密而占用CPU和延迟(特别是在服务器负载较重的情况下)。

至少登录应该加密,客户端应该根据白名单验证服务器的公钥,以防止中间人攻击

加密游戏过程中传输的数据本身并不重要

您需要区分具有完全不同目标的加密和模糊处理。
例如,SSL作为加密很有用,但作为模糊处理没有用,因为加密发生在已知的API中,当明文传入/传出这些API时,拦截明文很简单。

混淆需要混合到您自己的代码中,并且不需要加密安全。

在90年代的探索中,使用了低级别的数据包加密。我深情地回忆起曾经有一个辅助应用程序,它可以嗅探数据包数据,并向您提供区域内所有人的信息。EQ团队在添加数据包加密时使这一功能瘫痪了一段时间,但这并没有阻止黑客社区,因为他们只是从客户端机器上获取密钥。所以最后,这真的没有任何帮助。
至于其他的MMO,我没有通过查看数据包来做出判断。

加密是一种工具。确保工具适合问题

加密在三个方面非常有用:1)第三方不能查看数据,2)双方都是他们所说的人,3)数据没有被修改。这些都不适用于这里。请记住,客户端位于用户(攻击者)计算机上。如果他们修改了客户端,它将很乐意对他们想要的任何消息进行签名和加密

第二个要考虑的事实是客户端有密钥,因此你应该假设攻击者也有密钥。即使使用非对称加密,客户机也拥有解密其接收的任何内容的密钥。如果您向客户端发送“私有数据”,则攻击可以找到密钥并对其进行解密

一个好的MMORPG(旨在使作弊变得困难)应该具备两个条件: a) 用户/攻击者可以看到发送到客户端的任何数据(所以不要将您不希望用户看到的内容发送到客户端) b) 攻击者可以向用户发送任何可能的命令(因此不要依赖客户端来确保安全)


在大多数MMORPG中,客户端只不过是一个具有令人印象深刻的图形的哑终端。所有计算、错误检查和验证都发生在服务器端。客户不确定你是命中还是未命中,也不确定你的损失有多大。客户机只是简单地告诉服务器“我被382903128攻击了。”或者其他一些操作(不是结果)。服务器验证播放机是否有权访问该选项、是否拥有该项以及此时该命令是否有效。为了防止嗅探攻击,客户端只获得用户无论如何都可以访问的数据

在任何安全环境中,您都需要考虑威胁场景到底是什么

攻击者可以访问运行游戏客户端的机器,并希望编写一个机器人来自动执行其操作,以便轻松赢得战斗

攻击者B正在窃听本地网络上的数据包,目的是

  • 窃取登录凭据以便免费玩游戏
  • 监视玩家之间的私人聊天,可能是为了在游戏中获得优势,也可能是为了在现实世界中进行勒索或骚扰
  • 在命令流中插入额外的行为,例如以为攻击者赚钱的价格买卖物品的指令
加密对攻击者A没有影响(因为游戏客户端可以解密通信,攻击者也可以解密通信;必须在服务器上采取应对措施),但可以击败攻击者B


关于传输数据的价值,我不同意其他一些答案。你与其他玩家的私人聊天和你与他们的即时消息一样值得保护,而你通过几个小时的辛勤劳动获得的黄金和财产,如果可能不如你在银行账户中的美元那么值得攻击者的保护。

你本身不需要加密

考虑一下这个“包”:

<USER_ID><COMMAND><MD5HASH>

MD5HASH
是从
USER\u ID
+
命令生成的,服务器和客户端都知道一些其他值