【技術詳解】Clubhouse 對話如何被中國聲網 Agora 聲網「聽好聽滿」?

大家都知道 Clubhouse 背後使用的語音技術來自中國聲網公司(Agora)提供的 API,那麼大家都有擔心在 Clubhouse 上的對話是否安全。在技術上又是否可以會被 Agora 聽到,對話是否安全等等。美國的 Stanford’s Internet Observatory 為此進行了一個查探,我們在這裡把它們的結果翻譯出來,供大家參考。

語音通過 Agora 作為中繼

根據 Agora 的檔案,Clubhouse 上的聲音依賴 Agora 的 real time communication (RTC) standard development kit (SDK) 進行。即你在 Clubhouse 上的通話圴會進過 Agora 進行中繼,如同你使用電話致電給外婆拜年時,聲音會經過電訊商的機樓一樣。在 Clubhouse 的場景,Clubhouse App 就是手機,Agora 就是電訊商。

當用戶加入或在 Clubhouse 中建立 room 時,用戶的 Clubhouse App 會通過加密的 HTTPS 向 Agora 發出請求,手機將請求 [POST / api / create_channel] 發送到 Clubhouse 的 API。API 回饋 fields token 和 rtm_token,「tokens」包含 Agora RTC token,而 rtm_token 是 RTM(實時通訊)token。 這些「tokens」用於建立通信路徑,以確保用戶之間的語音通訊。

Stanford’s Internet Observatory 觀察到用戶的電話通過 UDP(一種更輕量級的傳輸機制)將數據包發送到名為 “qos-america.agoralab.co” 的伺服器。用戶的數據包包含有關該頻道的未加密元數據,例如用戶是否已請求加入聊天室,用戶的 Clubhouse ID 以及是否靜音等訊號。

Agora 可獲得加密密鑰

用戶從 Clubhouse 收到 RTC token 後,他們手機將利用 token 向 Agora 進行身份驗證,以便加密的語音資料可以通過 Agora 進行溝通。根據 Agora 的文件,Agora 允許獲得加密密鑰。

根據 SIO 的說法,如果 Clubhouse 不想 Agora 查看用戶的語音檔案,可以採用 end-to-end encryption (E2EE) 加密,但這需要 Clubhouse 向所有用戶發放公鑰,但暫時 Clubhouse 還沒有這樣的功能,也不知道未來最終 Clubhouse 會採用什麼方法。

額外的加密

如果按 SIO 的說法,Agora 有心的話確實可以聽到 Clubhouse 裡的原始語音數據,但到底 Agora 會否這樣做就不知道了。不過,Clubhouse 表示他們將會進行額外的措施來保障用戶。

根據 Clubhouse 的說法,他們將於 72小時內禁止 Clubhouse 向中國的伺服器發送 Ping 訊號,這樣可以避免 clubhouse User ID 出現在中國的伺服器。另外,Clubhouse 也將於為其訊號進行額外的加密,以保障用戶。暫時還不知道這裡指的額外加密是什麼?但或許是 Stanford 裡提到的額外 end-to-end encryption (E2EE) ,具體詳情有待 Clubhouse 公佈。

Over the next 72 hours, we are rolling out changes to add additional encryption and blocks to prevent Clubhouse clients from ever transmitting pings to Chinese servers. We also plan to engage an external data security firm to review and validate these changes.

此文章發佈於 TechRitual 香港