Protocol-Design

匿名群聊

  • January 8, 2021

我想知道是否有可能有一個點對點的群聊協議,任何人都可以自由地加入聊天並使用選定的使用者名向所有加入它的其他人廣播,但具有強大的匿名性。所需的屬性是,中間人不可能或至少難以確定哪個 IP 地址與聊天中的每個使用者名相關聯。需要明確的是,中間人能夠(像其他任何人一樣)加入聊天並觀察所說的一切,並且還可以假設他能夠監控聊天中至少一些成員的所有傳輸。

自然,數據包的時間可能會洩露誰是誰,因此所有使用者都必須定期發送數據包以隱藏哪些使用者正在說話。

如果聊天系統使用伺服器,則可以假定中間人有權訪問伺服器。因此,簡單地加密每個使用者和伺服器之間的所有消息是沒有好處的。

我正在考慮一種方案,其中使用者不斷在彼此之間傳遞“片段”消息,並嘗試通過對最近的片段進行異或來將片段組裝成完整的消息,這種方式不清楚是誰首先發送了所需的所有片段資訊。每個點對點連結都可以用接收者的公鑰加密。

但是,中間人可以自由地創建任意數量的使用者,這可能會破壞該方案。如果中間人使用者的數量大大超過其他使用者,那麼中間人可以追踪大部分正在發生的事情。

可能嗎?

您實質上是通過洋蔥路由大蒜路由來描述即時消息傳遞。 Tox就是這種協議的一個例子。Tor Chat是另一個。

在洋蔥網路中,消息被封裝在加密層中,類似於洋蔥層。加密數據通過一系列稱為洋蔥路由器的網路節點傳輸,每個節點“剝離”一層,揭示數據的下一個目的地。當最後一層被解密時,消息到達目的地。

下面是洋蔥路由的簡單圖解說明(取自 Wiki)。

洋蔥路由

在這個洋蔥範例中,數據源將洋蔥發送到路由器 A,路由器 A 移除了一層加密,只知道下一步將其發送到哪里以及它來自哪裡(儘管它不知道發送者是源還是只是另一個節點)。路由器 A 將其發送到路由器 B,路由器 B 解密另一層以了解其下一個目的地。路由器 B 將其發送到路由器 C,路由器 C 刪除最後一層加密並將原始消息傳輸到其目的地。

這並不能完全擊敗攻擊,但如果實施得當,應該很難對使用者進行去匿名化和解釋流量。絲綢之路的創造者羅斯·烏布利希被捕表明,只要有足夠的慾望、時間和運氣,聯邦調查局就能抓住你。但即便如此,您也可能需要在此過程中犯一些錯誤。很明顯,聯邦調查局不是你中間的普通人。

匿名消息系統確實存在。範例包括卡拉 OK、體育場和 Vuvuzela。在這些系統中,匿名性是使用差分隱私的概念來定義的。具有更強隱私/匿名概念的系統也存在。有關範例和參考,請參閱卡拉 OK 論文中的第 2.1 節:https ://www.usenix.org/system/files/osdi18-lazar.pdf

請注意,像 Tor 網路這樣的洋蔥路由不能防止流量分析。

引用自:https://crypto.stackexchange.com/questions/87404