WebRTC和WebRTC安全漏洞和注意事项

安全设备/系统

157人已加入

描述

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 认证的公司,这意味着安全性对我们和您一样有价值。

编辑:黄飞

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分