WebRTC安全的類型
WebRTC是一種復雜的分層技術,存在于同樣復雜的分層生態系統中,包括應用程序代碼,瀏覽器,本機設備和基礎設施元素。WebRTC從幾個不同的角度處理安全性。首先,它在協議級別是安全的。其次,使用瀏覽器作為參考,它需要一個受保護的私有執行環境。第三,它通過吸引開發人員社區來遵循最佳安全實踐。
網絡RTC協議安全
WebRTC協議的安全性歸結為保護兩個主要元素:用于幫助兩個對等體相互通信的信號以及它們之間共享的媒體。
強制媒體加密
與其他VoIP和視頻會議技術不同,WebRTC中強制要求加密。要在WebRTC中的兩個對等方之間發送視頻,語音或數據,必須使用安全實時傳輸協議(SRTP)對信息進行加密。SRTP對會話進行加密,因此如果沒有正確的加密密鑰,任何人都無法解碼消息。事實上,定義WebRTC的互聯網工程任務組(IETF)規范明確禁止實時傳輸協議(RTP)的未加密版本。
強制安全加密密鑰交換
此外,WebRTC規范要求安全設置加密通道,以使獲取WebRTC加密密鑰變得困難。如果很容易在門墊下找到鑰匙,鎖上你的房子并沒有多大好處。許多密鑰交換機制(如SDES、MIKEY和ZRTP)可用于設置此加密通道。SDES和MIKEY等系統利用信令通道來傳輸這些關鍵數據。這意味著如果信令通道受到損害,則第三方可能會對數據進行解密。為了防止這種可能性,WebRTC規范要求使用DTLY-SRTP,其中密鑰直接在媒體平面上的對等方之間交換。盡管SDES仍然被許多VoIP系統廣泛使用,但由于它不夠安全,它被特別禁止在WebRTC中使用。
安全信令
最后,WebRTC要求在處理信令的Web服務器和對等客戶端之間建立安全連接。這有助于保持該信令通道中的信息安全,并使攻擊者更難充當中間人并悄悄接管會話。信令使用HTTPS協議進行保護-與大多數網站現在使用的協議相同。
在實時流環境中,服務器同時充當信令服務器和WebRTC媒體對等體,但使用相同的安全接口。請注意上圖,它說明了對等架構中的WebRTC安全點,提供端到端加密(有時也稱為P2P加密)。您將在下面找到一個類似的工作流程,演示與Wowza 流媒體引擎一樣的實時流式傳輸架構。
基于瀏覽器的安全性
WebRTC通過在瀏覽器沙箱中運行來進一步保護。Web瀏覽器是最常用的應用程序,并開發了復雜的安全和隱私功能。這些功能有助于隔離Web 應用程序,確保信用卡等敏感用戶信息的安全,并防止瀏覽器劫持。
瀏覽器安全和隱私保護
瀏覽器供應商受到W3C和底層Internet規范定義的嚴格安全標準的約束,例如WebRTC規范。更重要的是,Chrome,Firefox,Edge和Safari等主要瀏覽器之間的競爭導致他們加大了用戶安全和隱私保護,尤其是WebRTC。具體的例子包括:
HTTPS:使用HTTPS,而不是HTTP,是訪問WebRTC功能所必需的(開發有一些小的例外)。
媒體訪問權限:用戶必須先顯式向各個網站授予權限,然后才能訪問攝像頭、麥克風或屏幕共享視頻。
可視化使用指示器:當攝像頭、麥克風和屏幕共享處于活動狀態時,必須顯示突出顯示的指示器。
匿名化設備信息:在用戶向網站授予權限之前,設備信息將保持隱藏狀態。
IP 泄漏保護:共享 IP地址信息的限制和選項有助于避免隱私和跟蹤問題。網上流傳著幾種工具,可以進一步幫助防止WebRTCIP泄漏,包括Google自己的WebRTCLeak Prevent。
同源政策:這實質上是通過限制來自一個Web 源的文檔或腳本與來自另一個Web源的文檔或腳本交互的方式,將網頁使用實例隔離到謹慎的“沙箱”。基本上,它會在您的網站體驗周圍設置圍欄,以保護其免受惡意數據的侵害。
值得注意的是,這些功能的實現可能因瀏覽器而異,但大多數在上面列出的主要瀏覽器中都是相似的。還值得注意的是,許多本機移動應用程序通過嵌入式瀏覽器框架利用部分或全部這些功能。主要的移動操作系統,如Android和iOS,對應用商店提交實施類似的控制,以及額外的安全檢查。
安全源于設計
在數字安全方面,有兩種主要理念:
隱蔽的安全性:保持系統機制的機密性,使其更難被發現和妥協。
安全性設計:打開系統的機制,邀請其他人嘗試闖入,并通過反饋改進設計。
結論:WebRTC足夠安全嗎?
沒有軟件系統是完全安全的,WebRTC也不例外。例如,GoogleProject Zero安全研究人員發布了一個主要漏洞,該漏洞適用于14個最流行的AndroidWebRTC應用程序中的七個。一方面,如此嚴重的問題可能會進入數十億臺設備上使用的應用程序,這是非常糟糕的。另一方面,令人鼓舞的是,深度安全漏洞研究是在公共領域完成的,結果除了一個應用程序之外,所有應用程序都迅速解決了他們的問題。
與大多數軟件一樣,WebRTC開發人員可以遵循一些一般規則來限制攻擊并最大程度地減少漏洞:
使核心WebRTC庫保持最新:舊代碼通常具有更多漏洞。
注意錯誤和安全通知:主要的WebRTC項目和瀏覽器通常非常主動地發送通知(如果你知道在哪里看的話)。
關閉不使用的代碼段:WebRTC是一個龐大而全面的系統,許多應用程序只需要其中的一部分。關閉多余的代碼可最大程度地減少攻擊面。
測試和執行特定于 RTC的安全研究:如果你沒有找到你的問題,其他人最終會發現。
保護您的基礎架構。WebRTC可能是安全的,但是如果你的Web或媒體服務器不安全,它們可能會危及系統。考慮像Wowza 的發布身份驗證這樣的功能,這些功能限制了流劫持的機會。
WebRTC每天都被數十億人使用。它的安全性可能并不完美,但它是有效的。WebRTC要求在低級別進行安全性,通常與已建立的安全沙箱(瀏覽器)一起工作,并鼓勵大型和非常活躍的社區進行審查。
如果您希望更大規模地利用WebRTC,并且擔心WebRTC媒體和信令服務器提供的額外風險,請考慮使用已建立的提供商進行流式傳輸。WowzaVideo的實時大規模流媒體是一個基于云的解決方案,可以通過自定義CDN將WebRTC流式傳輸到一百萬個。此外,Wowza是一家通過 SOC2 認證的公司,這意味著安全性對我們和您一樣有價值。
編輯:黃飛
評論
查看更多