实现一个套接字连接的握手

问题描述:

我正在开发一个客户端/服务器模型的程序,客户端登录到服务器,服务器分配一个会话ID /握手,客户端将用它来标识/授权后续消息到服务器。实现一个套接字连接的握手

我想知道握手的时长是多少,因为它相当安全,但也足够短,以尽量减少数据开销,因为我希望它是低延迟。

我想用MD5或murmurhash2用户名和一个随机数的盐与碰撞检测,但我想知道是否有更有效的解决方案(即一个更好的算法)和是否32位是太多/对于这种事情太少了。

任何输入,非常感谢。

我会为您的客户端/服务器通信使用HTTPS连接。 它很容易使用(几乎所有的主要SDK都实现它),它提供了很好的咒语。

问候。

PD:参考加密方法,我会使用Whirlpool,因为Rivest先生在2005年说它已经坏了。

这可能不像看起来那么简单。请注意,如果您通过网络发送任何明确的信息(例如会话ID /握手),任何人都可以窃听通信并重新使用此值来充当客户端。 如果您不能使用https,建议您首先回答,您可能需要查看key agreement protocols。一旦双方就共享的密钥(不能根据观察到的通信重建)达成一致,您就可以用它来验证所有其余的传输(例如HMAC)。

无论你做什么,都不要使用MD5,它完全破碎。惠而浦可能也不是一个好的选择,它的速度较慢,主要部分最近(理论上)有一个攻击,见 ASIACRYPT 2009 Program。 现在我会坚持使用SHA-256。