2016-08-16 41 views
0

有一個公共P2P網絡和節點(基於peer.js),它具有以下條件:如何驗證節點的合法性,在公衆P2P網絡(peer.js)

  • 任何人(包括惡意節點)可以加入到P2P網絡
  • 每一個合法的節點有通過安全的方式

共享在此條件下一個共同的安全密鑰,節點必須建立唯一合法節點之間的全網狀連接。

在這裏,我需要實現一個安全協商協議,它將在建立節點之間的連接之前使用。我需要確保每個節點都應該通過協商將惡意節點關閉,也許只有在合法節點之間共享的通用安全密鑰。

我認爲這種情況會有一個衆所周知的解決方案,但我還找不到它。這種情況的典型解決方案是什麼?

回答

0

創建對等網絡需要某種信令服務器。只需讓該服務器驗證同行。您提到一個密鑰,使用此密鑰來驗證對等體,並只允許經過驗證的對等體加入網絡。
通常您會看到客戶直接連接到客房,但您可以等待他們進行身份驗證,然後再允許他們創建或加入房間。您可以通過簡單地在未通過身份驗證時將客戶端數據發送到其他客戶端,或者通過將客房ID設置爲祕密並僅將密鑰ID發送給經過身份驗證的客戶端來實現此目的。

+0

不幸的是,我不能讓信令服務器驗證對等體,因爲我沒有擁有信令服務器。它超出了我的控制範圍。 –

+0

@KoheiNozaki那麼,使用一個在你的控制之下,然後...或者使用一個單獨的門戶進行身份驗證,並以某種方式連接到此信令服務器,只有在驗證後纔可能(例如,通過從此驗證門戶獲取服務器的IP/URL) 。但請記住,這絕不會是安全的。 – Kevin

+0

不幸的是,在我的情況下,使用一個在我的控制下不是一個選項......這個問題的關鍵是,如何安全地使用我無法控制的那個。 –