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