Authentication
WebRTC 中的 DTLS 是否可以防止活動的中間人?
我想知道是不是這樣。在我看來,參與者無法安全地相互驗證。雖然有信令伺服器,但我不認為它們能夠分發密鑰。
有什麼我錯過的嗎?
WebRTC 使用 DTLS-SRTP 並且根據RFC 5764 DTLS-SRTP 支持客戶端和伺服器的證書。然而,在 WebRTC 的上下文中,使用者之間建立的直接連接是通過在瀏覽器中執行的動態下載軟體建立的。換句話說,使用者不控制該軟體,因此即使該軟體確實為他提供了保護連接的方法,它也可以被其他不控制該軟體的軟體所取代。
這與所有基於 Web 的郵件加密系統所面臨的問題相同。
它在這個RFC 草案中得到了很好的處理:
一般來說,重要的是要理解,與傳統的 SIP 代理不同,呼叫服務(即 Web 伺服器)不僅控制通信端點之間的通道,還控制使用者瀏覽器上執行的應用程序。雖然原則上瀏覽器可以將呼叫服務從循環中切斷並直接呈現可信資訊(並且可能獲得同意),但現代瀏覽器的實踐是盡可能避免這種情況。
正如 Elias 所指出的,我們可以在這個草案中找到有用的資訊。具體來說,在第 4.3.2 節中說:
4.3.2. 防止通話期間攻擊
在通話期間保護免受攻擊是一個更困難的提議。即使呼叫服務不能直接訪問密鑰材料(如上一節所推薦的那樣),它也可以簡單地對連接發起中間人攻擊,告訴 Alice 她正在呼叫 Bob,而 Bob 他正在呼叫 Alice ,而實際上呼叫服務充當呼叫橋並擷取所有流量。防止這種形式的攻擊需要對遠端端點進行肯定的身份驗證,例如顯式的帶外密鑰驗證(例如,通過指紋)或第三方身份服務,如
$$ I-D.ietf-rtcweb-security-arch $$.
由於 WebRTC 本身不提供積極的身份驗證,因此無法保護您免受活動的 MITM 的侵害。