为 MMO 登录服务生成安全令牌的算法

Kyl*_*e C 2 c++ security authentication encryption

我正在为开源 MMO 游戏构建登录服务。我对安全/加密方面的了解不多,我正在寻找一种解决方案,该解决方案可以为黑客提供良好的保护,并且生成成本不能太高。

我们的旧系统使用非常简单的身份验证系统,将密码作为 SHA1 存储在数据库中。对于我们的新服务,我们希望通过用户第一次登录时生成的身份验证令牌进行身份验证,并且在整个会话期间都有效。一个简单的随机生成的字符串是否就足够了,还是我应该查看一些更复杂的东西来保证它的安全?

roo*_*ook 5

不要重新发明轮子。现代密码学的最大问题是当人们想要推出自己的密码时,使用 SSL/TLS 或 HTTPS。如果您对自签名证书进行硬编码,则无需购买证书即可安全地完成此操作。虽然每个服务器都应该有自己的证书,不然你就冒着中间人的风险。

您正在寻找的是会话处理程序,理想情况下您将使用机智库。然而,这个库可能合适也可能不合适。简而言之,会话处理程序使用加密 Nonce作为密钥,该密钥用于在持久数据存储中查找会话状态。每次用户进行身份验证时,他都会获得一个新的加密 Nonce,并且该值在一段时间不活动后过期。对于 nonce 生成,我会使用openssl 库,256 字节的大小应该足够了。超时取决于您的应用程序,但不应超过 1 天。