2010-12-07 63 views
2

我有興趣在Cocoa製作公司內加密的對等聊天應用程序,但我甚至不知道從哪裏開始。如何在Cocoa中實現加密的點對點聊天?

您能否指點我正確的方向?你推薦什麼書,文件等?我需要了解點對點和加密。

我知道Objective-C和Cocoa,但對於點對點和加密我完全無能爲力。

+0

只是一個想法。你爲什麼需要推出自己的? iChat是可以加密的,MS Communicator或Skype(以及其他許多)也是可以加密的,只是好奇你爲什麼要花費更多的開發時間而不是現成的。 – 2010-12-07 19:53:52

回答

3

幾年前,我在一個項目中進行了非常類似的設計目標,儘管用Java編寫,名爲Spaghetti Nodes。它更專注於文件共享應用程序,但也包括一個聊天組件。該項目自此停滯不前,但wiki上有一些註釋可能對您有所幫助。我還寫了關於體驗的驗屍blog post

這個問題是非常寬泛的,但這裏有幾個指針開始:

  • 考慮使用Bonjour爲對等網絡連接,如果可能的話。 (對等網絡只能在本地網絡上運行,即使在子網上也不能正常工作,所以這可能不是一種可能性。)
  • 您可能想要使用類似SSH的方法加密。也就是說,用戶擁有私鑰/公鑰對,並分發公鑰。您可以使用密鑰對來啓動會話,然後協商一次性加密密鑰,以便在會話的其餘部分使用更快的對稱密鑰加密。
  • 我們使用Twofish算法進行對稱加密。
1

作爲一個建議,作爲任何一個良好的起點(雖然它比P2P /加密更通用)可能是Bonjour Overview文檔,因爲這樣的服務將提供一個很好的廣播/收聽方式來查看目前是誰在聊天系統上。

還有一些與NSNetService class reference文檔關聯的示例代碼,可能證明它非常有用,至少可以提供關於接下來的位置的一些好的指示。