2016-05-24 64 views
0

我使用Kryonet,我要确保工作游戏服务器+客户端系统。我已经阅读了很多Kryo和Kryo​​net的源代码,还有一些关于java.nio(SocketChannels和SSL)的内容。我对使用Java进行加密的理解有了很好的理解,但我不确定当谈到使用SSL的Kryonet和SocketChannel时,我是否能够理解所有概念。如何保护Kryonet(SSLSocketChannel)

您可以加密你Kryonet发送带有河豚的对象,但我不能看到这是安全的?我的意思是所有的客户端都必须使用相同的对称密钥,因为您不会分别对客户端连接进行加密,而是在服务器上进行序列化,因此所有客户端都需要相同的密钥,并且不再是秘密了?

然后我看着改变Kryonet源使用SSLSockets,但我看到Kryonet使用非阻塞IO,并从我读取使用SSLSocket而不是一个套接字不会是好的时候使用SocketChannels?这是我真的很茫然,不知道是否值得付出努力,所以我希望在Kryonet和SocketChannels中有更多洞察力的人能够帮助我一点。保护Kryonet似乎是不可能的,但我真的不想在我的项目中切换,所以任何建议都非常受欢迎!

回答

0

你是正确的,如果你解决了密钥分发问题,除非Kryonet也做所有的SSL确实,从对等身份验证的东西仅仅是加密并不安全,甚至。

有没有在java SSLSocketChannel。你必须用SocketChannel和亲爱的老SSLEngine自己完成所有困难的yakka,这实际上取得了博士学位。正确驾驶。

查看标签,passim,有关我的SSLEngine的许多帖子,我在此不再赘述。

+0

不是我希望的答案,但谢谢你,现在我知道肯定。稍后我会研究一些SSLSocketChannel的第三方解决方案。现在我只是使用普通的SSLSocket进行用户登录,并发回一个会话令牌用于登录到Kryonet服务器,这样我至少可以保护用户密码。 –