2009-10-01 30 views
1

我正在開發一個客戶端/服務器模型的程序,客戶端登錄到服務器,服務器分配一個會話ID /握手,客戶端將用它來標識/授權後續消息到服務器。實現一個套接字連接的握手

我想知道握手的時長是多少,因爲它相當安全,但也足夠短,以儘量減少數據開銷,因爲我希望它是低延遲。

我想用MD5或murmurhash2用戶名和一個隨機數的鹽與碰撞檢測,但我想知道是否有更有效的解決方案(即一個更好的算法)和是否32位是太多/對於這種事情太少了。

任何輸入,非常感謝。

回答

1

我會爲您的客戶端/服務器通信使用HTTPS連接。 它很容易使用(幾乎所有的主要SDK都實現它),它提供了很好的咒語。

問候。

PD:參考加密方法,我會使用Whirlpool,因爲Rivest先生在2005年說它已經壞了。

0

這可能不像看起來那麼簡單。請注意,如果您通過網絡發送任何明確的信息(例如會話ID /握手),任何人都可以竊聽通信並重新使用此值來充當客戶端。 如果您不能使用https,建議您首先回答,您可能需要查看key agreement protocols。一旦雙方就共享的密鑰(不能根據觀察到的通信重建)達成一致,您就可以用它來驗證所有其餘的傳輸(例如HMAC)。

無論你做什麼,都不要使用MD5,它完全破碎。惠而浦可能也不是一個好的選擇,它的速度較慢,主要部分最近(理論上)有一個攻擊,見 ASIACRYPT 2009 Program。 現在我會堅持使用SHA-256。