2015-09-10 43 views
1

过去一年来,我一直在积极开发一个名为NitroNet的networking library,并且希望了解如何安全地区分连接到同一台计算机上的服务器的多个客户端(套接字)。区分同一台机器上的多个客户端

我一直在开发使用Java的库,我目前已经区分使用客户端UDP端口作为唯一标识符的客户端。这工作正常,但我不相信它是实际区分它们的最安全的方法。所以我想知道,是否有更好的更安全的方法来真正区分它们?

当我说我需要“区分它们”时,我的意思是,当从服务器端的客户端接收到数据包时,我需要能够仅使用信息在服务器端获取相应的连接实例从插座。我不希望任何ID号存储在实际的客户端上,因为担心逆向工程和手动更改ID。任何想法或建议将不胜感激。

回答

1

当客户端首次连接时,让初始服务器响应包含使用UDP端口和连接建立时间构建的哈希。这样你就知道它是同一个客户端,因为两个客户端不能完全同时在同一个端口上连接。

这并没有解决逆向工程的恐惧,除非你可以保持你的服务器,并因此哈希构建算法,安全。但是,即使这样做受到威胁,UDP端口仍然保持不变,这使您处于与当前相同的安全级别。

+0

我正在考虑创建类似于此的令牌/票证系统,我认为这是唯一的好选择。我会试试看,谢谢你的建议。 – Jmrapp

相关问题