用加密来编程点对点聊天的最好方法是什么?SSL对p2p有用吗,因为客户端不会有verisign签名的证书,...?有没有可能在没有主服务器告诉客户端聊天伙伴的ip地址的情况下编写这样的聊天程序?
我真的很想编写这样一个聊天程序,因为在所有这些隐私问题的时候,我想要一个我真正信任的程序。我有一些网络编程的经验,但只有客户端<->服务器。
我不想要任何代码,只是点对点聊天的理论部分(像skype)。
谢谢。
发布于 2012-11-29 14:02:20
首先,您可以强制在两端使用自签名证书,或者您甚至可以使用“预共享密钥”而不是证书进行身份验证。预共享密钥应该事先为所有相关各方所知。
其次,SSL是一种加密机制,与客户/服务器与p2p通信模型的设计无关。
最后,如果您的两个p2p节点都有公共ip或活动ip,并且每个节点都知道对方的ip,那么您就不需要任何类型的中央服务器。这里真正的问题是,在实践中,大多数机器都在使用NAT和内网ip的防火墙后面,所以你需要某种机制来穿越NAT,确定公有ip和端口,才能成功到达目的地机器。
看看下面的SO question,它就是我写的答案。它提到了一些常见的p2p应用程序使用的技术,比如skype (对skype协议的了解是有限的,因为它是专有的),gtalk以及其他基于XMPP的聊天应用程序。
https://stackoverflow.com/questions/13604661
复制相似问题