“Firefox Hello”的安全性如何?

信息安全 加密 火狐 插件 网络RTC
2021-08-21 02:11:00

新的“Firefox Hello”功能保证了简单安全的视频对话。无需创建帐户,您只需与您的合作伙伴分享一个链接即可开始对话。本网站承诺通信是“私密且安全的” ,但实际上并未深入介绍所使用的技术。webRTC的主页以及他们的常见问题解答也不是很丰富。

Firefox Hello 的安全性如何?它是否使用端到端加密?它是否将元数据存储在服务器上?如果执法部门要求,Mozilla 可以解密我的通信吗?

3个回答

首先,这里是您解释 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
WebRTC 眩晕
获得许可的图像

如果这不起作用,则该过程回退到使用通过服务器代理流量的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是一种 P2P 技术,默认执行端到端加密

Mozilla 的服务器上没有元数据。按会话加密,因此 Mozilla 无法解密。

该技术可能存在一些漏洞(即存在),但该设计应该在架构级别解决您的问题。

很抱歉让各位失望了。WebRTC 被许多公司滥用,应该永远关闭。

https://github.com/EFForg/privacybadgerchrome/issues/431

一个例子是纽约时报,它每分钟对用户进行 12 次轮询,并通过一家名为 WhiteOps.com 的公司获取本地用户 IP。其对隐私的影响留给读者作为练习。