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