2016-08-16 62 views
0

有一个公共P2P网络和节点(基于peer.js),它具有以下条件:如何验证节点的合法性,在公众P2P网络(peer.js)

  • 任何人(包括恶意节点)可以加入到P2P网络
  • 每一个合法的节点有通过安全的方式

共享在此条件下一个共同的安全密钥,节点必须建立唯一合法节点之间的全网状连接。

在这里,我需要实现一个安全协商协议,它将在建立节点之间的连接之前使用。我需要确保每个节点都应该通过协商将恶意节点关闭,也许只有在合法节点之间共享的通用安全密钥。

我认为这种情况会有一个众所周知的解决方案,但我还找不到它。这种情况的典型解决方案是什么?

回答

0

创建对等网络需要某种信令服务器。只需让该服务器验证同行。您提到一个密钥,使用此密钥来验证对等体,并只允许经过验证的对等体加入网络。
通常您会看到客户直接连接到客房,但您可以等待他们进行身份验证,然后再允许他们创建或加入房间。您可以通过简单地在未通过身份验证时将客户端数据发送到其他客户端,或者通过将客房ID设置为秘密并仅将密钥ID发送给经过身份验证的客户端来实现此目的。

+0

不幸的是,我不能让信令服务器验证对等体,因为我没有拥有信令服务器。它超出了我的控制范围。 –

+0

@KoheiNozaki那么,使用一个在你的控制之下,然后...或者使用一个单独的门户进行身份验证,并以某种方式连接到此信令服务器,只有在验证后才可能(例如,通过从此验证门户获取服务器的IP/URL) 。但请记住,这绝不会是安全的。 – Kevin

+0

不幸的是,在我的情况下,使用一个在我的控制下不是一个选项......这个问题的关键是,如何安全地使用我无法控制的那个。 –