网络 – 点对点聊天理论

什么是用加密编程点对点聊天的最佳方式.是SSL对p2p有用,因为客户端没有verisign签署的证书,…?是否可以在没有主服务器的情况下编程这样的聊天,主服务器告诉客户端他们的聊天伙伴的IP?

我真的很喜欢编程这样的聊天程序,因为在所有这些隐私问题的时候,我想要一个我真正可以信赖的程序.我有一些网络编程经验,但只有客户< – >服务器.

我不想要任何代码,只需要点对点聊天的理论部分(如Skype).

谢谢.

最佳答案 首先,您可以在两端强制使用自签名证书,或者甚至可以使用“预共享密钥”而不是证书进行身份验证.预共享密钥应该由提前参与的所有各方知道.

其次,SSL是一种加密机制,因此它与通信模型的设计无关,即客户端/服务器与p2p.

最后,如果你的两个p2p节点都有公共或实时IP,并且每个节点都知道对方的节点,那么你就不需要任何类型的中央服务器.这里真正的问题是,在实践中,大多数机器都使用NAT和私有IP防火墙.因此,您需要某种机制来遍历NAT,确定公共IP和端口以便成功到达目标计算机.

看看下面的SO question,这是我写的答案.它提到了常见的p2p应用程序使用的一些技术,例如skype(skype的协议知识,因为它是专有的),gtalk以及其他基于XMPP的聊天应用程序.

点赞