如何在Cocoa中实现加密的点对点聊天?

时间:2010-12-07 17:04:00

标签: objective-c cocoa encryption p2p

我有兴趣在Cocoa中创建一个公司内加密的点对点聊天应用程序,但我甚至不知道从哪里开始。

你能指出我正确的方向吗?您推荐哪些书籍,文档等?我需要了解点对点和加密。

我知道Objective-C和Cocoa,但我对点对点和加密完全不了解。

2 个答案:

答案 0 :(得分:3)

几年前,我参与了一个具有非常相似设计目标的项目,虽然是用Java编写的,名为Spaghetti Nodes。它更专注于文件共享应用程序,但也包括聊天组件。该项目已经停滞不前,但wiki上有一些您可能会发现有用的注释。我还写了一篇关于这次经历的验尸blog post

这个问题相当广泛,但这里有一些指导:

  • 如果可能,请考虑使用Bonjour进行点对点连接。 (点对点只能在本地网络上工作,如果有的话,跨子网不能正常工作,所以这可能不太可能。)
  • 您可能希望使用类似SSH的方法进行加密。也就是说,用户具有私钥/公钥对,并分发公钥。您可以使用密钥对启动会话,然后协商一次性加密密钥,以便在会话的其余部分使用更快的对称密钥加密。
  • 我们使用Twofish算法进行对称加密。

答案 1 :(得分:1)

作为一个建议,作为一个好的起点(虽然它比P2P /加密更通用)可能是Bonjour Overview文档,因为这样的服务将提供一个很好的广播/收听方式看看谁正在聊天系统上。

还有一些与NSNetService class reference文档关联的示例代码可能非常有用,至少提供了一些关于下一步的好指示。