Security 我需要担心游戏服务器的安全性吗?

Security 我需要担心游戏服务器的安全性吗?,security,encryption,tcp,protocols,server,Security,Encryption,Tcp,Protocols,Server,我有一个游戏服务器,客户端可以通过TCP连接和通信。如果知道IP和端口,任何设备都可以连接服务器 我想知道是否需要为服务器添加一些安全性。比如说, (1) 为发送/接收的邮件添加一些加密。(防止协议内容泄露) (2) 向消息添加一些密钥,这样,如果服务器在解密后无法识别密钥,消息将被丢弃。(防止未知连接/消息涌入) 你认为这些东西是必要的吗?对于这样一个游戏服务器,我是否还应该添加其他东西。我更愿意将此发布到gamedev的问题上,但那里的mods显然比这里快。在你引用我的话之前,我想指出,以下

我有一个游戏服务器,客户端可以通过TCP连接和通信。如果知道IP和端口,任何设备都可以连接服务器

我想知道是否需要为服务器添加一些安全性。比如说,

(1) 为发送/接收的邮件添加一些加密。(防止协议内容泄露)

(2) 向消息添加一些密钥,这样,如果服务器在解密后无法识别密钥,消息将被丢弃。(防止未知连接/消息涌入)


你认为这些东西是必要的吗?对于这样一个游戏服务器,我是否还应该添加其他东西。

我更愿意将此发布到gamedev的问题上,但那里的mods显然比这里快。在你引用我的话之前,我想指出,以下内容并非基于100%的书本知识,我也没有这些主题的学位。如果你知道的更好,请改进这个答案,而不是评论和/或竞争

这是我从研究和/或经验中收集的客户机/服务器/安全问题的一个相当全面的列表:

数据
“后端”服务器包含每个人的用户名、密码、信用卡详细信息等,应该是一个堡垒。此服务器仅用于身份验证,应位于专用子网上;它仅在收到格式良好的登录请求时才与登录服务器通信,并且只回复“允许”或“拒绝”。如果你拿走了人们的个人信息,你有义务保护它,明智的做法是卸下与专业或托管公司相关的所有安全责任。没有对该服务器的非关键攻击;如果它被破坏了,你就完了。许多/大多数/所有公司现在都在另一家公司的后端信用卡/账单系统上绘制了漂亮的登录屏幕

登录
与登录服务器的连接应该是安全的。登录服务器只是公共登录机制、私有数据存储和客户机/服务器连接状态之间的消息泵。出于安全目的,对登录系统的任何HTTP访问都应托管在单独的HTTP服务器上;WWW服务器崩溃不应该关闭你的在线游戏(我的意见)

世界/UDP

成功登录和身份验证后,服务器会通知客户端开始侦听“大容量数据”或在特定UDP端口上启动绑定连接(可能是随机的,每次连接尝试一次)。无论哪种方式,服务器都应该保持静默,等待客户端通过某种类型的握手进行识别,以验证“声称的客户端”实际上是您的代码。服务器按顺序请求输入时更容易猜测;相反,在与外界联系时,要依靠客户知道正确的握手方式,而放弃那些不知道的握手方式。要使用的正确握手可以是CPU时钟滴答声的函数或其他任何函数。TCP将被最低限度地使用和/或从该点断开连接。初始批量数据是发布当前服务器端软件版本的好地方,这样过期的客户端就可以更新。可以在多个服务器之间分发UDP端口的公共池,并且可以将客户端负载平衡到正确的端口/服务器中。在游戏中,“区域传输”可能意味着从一个服务器/端口断开连接,然后重新连接到另一个服务器/端口。在MMO中,这通常表现为“如果你认为加密可以解决你的问题,你不理解加密,你也不理解你的问题。”。如果你想要一般性的建议,你应该阅读并理解。但是,如果你想得到具体的建议,你应该理解并解释你的“威胁模型”是什么。想想你想要什么样的保护,或者换句话说,想想你的威胁模型。你重视保密吗?您需要某种授权连接吗?的副本