“Firefox Hello”的安全性如何?
首先,这里是您解释 WebRTC 时使用的所有缩写的小列表,因此,如果您不知道其中一个,可以在那里查看:https ://hacks.mozilla.org/2013/07/webrtc-and-the-缩写词的海洋/
概括
这里做一个小总结。更详细的信息如下。
- 连接是端到端加密的
- DTLS 和 SRTP 用于加密
- 尽可能使用对等连接
- 如果不可能,流量可能会通过 TURN 服务器进行路由
- 信令服务器用于交换元数据
- 用于加密连接的证书的哈希值也被交换,这使得信令服务器可以对连接执行中间人攻击
- STUN 服务器用于获取对话伙伴使用的 IP 地址列表
- 这可能被滥用于跟踪用户,但这更像是一个隐私问题而不是安全问题
安全
WebRTC 是一项复杂的技术,但有一些事情需要注意。
起初,参考实现是开源的,Firefox 中的实现也是如此。然而,这并不直接与技术有关。此外,连接是端到端加密的。非加密模式被明确禁止。对于加密连接,使用了DTLS(UDP 的 TLS 变体)(第 18 页,PDF),音频和视频(媒体)通信使用 SRTP(第 6 页,PDF)加密,密钥与用于DTLS 握手(称为DTLS-SRTP)。对于数据通道,规范要求SCTP over DTLS. 不允许对 DTLS-SRTP 连接使用的“密钥材料”进行 Javascript 访问。因此,这是在浏览器中安全处理的。
由于 Firefox 38 Firefox 仅支持前向保密套件。在规范中,建议优先选择前向保密密码套件而不是非前向保密密码套件 - 并且所有实现都必须支持它们(第 19 页,PDF)。此外,它还添加了一些有关可能使用的密码套件的信息:
所有实现必须同时实现 DTLS 1.2 和 DTLS 1.0,使用密码套件 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 和 TLS_DHE_RSA_WITH_AES_128_CBC_SHA 以及 DTLS-SRTP 保护配置文件 SRTP_AES128_CM_HMAC_SHA1_80。
此外,它需要一个“允许用户确定媒体的安全特性的检查器界面”。但是目前这似乎没有在 Firefox 中实现。您可以通过访问显示有关 WebRTC 的一些详细信息about:webrtc,但正如我所见,这可能用于调试而不是检查连接的安全性。
路由
它总是试图建立对等连接。为此,使用STUN服务器返回连接到它们的用户的公共 IP。这用于 ICE - 很容易说 - 尝试多种方法绕过防火墙和 NAT 以创建与通信伙伴的直接连接。Mozilla Hacks在CC-BY-SA下

获得许可的图像
如果这不起作用,则该过程回退到使用通过服务器代理流量的TURN 。
中间人
基本上,用于加密的证书是通过信令通道交换的,因此流氓信令服务器可以 MITM 连接。然而,当所谓的身份提供者用于验证用户相互连接的身份时,用户可以确定没有对服务器进行 MITM 攻击。Firefox Hello 提供了使用 Firefox 帐户登录的功能,但我看到目前没有进行身份验证,因此目前您必须信任 Mozilla 使用的信令服务器。
与信令服务器的连接作为正常的 HTTPS 连接进行保护(尽管 WebRTC 通常不需要这样做)。
更多信息:如何在 WebRTC 中执行 MITM?
隐私
@schroeder提到的问题不是安全问题,而是隐私问题。此外,泄漏用户的本地 IP 地址是一种不受欢迎但不可避免的影响。在与 VPN 结合使用的错误配置中,它甚至可能泄露真实的外部 IP。然而,这是否是隐私影响是可以讨论的。
如果你不想使用它,你可以这样做。在 Firefox 42 中实现了允许附加组件干扰和禁用部分 WebRTC 连接的功能。在 Firefox 42 发布之前,您可以(并且仍然可以)通过about:config. 此外,还有 用于禁用 WebRTC的 插件。
更多资源:IETF 在当前工作草案中的安全考虑
想要深入了解细节?在这里您可以找到更多信息:https : //webrtc-security.github.io/
很抱歉让各位失望了。WebRTC 被许多公司滥用,应该永远关闭。
https://github.com/EFForg/privacybadgerchrome/issues/431
一个例子是纽约时报,它每分钟对用户进行 12 次轮询,并通过一家名为 WhiteOps.com 的公司获取本地用户 IP。其对隐私的影响留给读者作为练习。