泄漏案例研究2:WebRTC泄漏

[ware_item id=33][/ware_item]

您的公共IP地址构成了个人在网络上的身份的一部分,使站点,应用程序和第三方可以跟踪他们在网络上的活动并将其与该特定个人相关联。使用VPN,站点可以看到VPN服务器的公共IP地址而不是用户的IP地址,从而保护其身份.


但是,WebRTC有时可能使网站能够查看用户的公共IP地址,这表示泄露隐私的漏洞。来自我们的隐私研究实验室的此案例研究描述了WebRTC泄漏的发生方式,以及如何使用ExpressVPN泄漏测试工具对其进行测试.

WebRTC概述

WebRTC是一组开放技术,允许Web页面通过Web浏览器提供对等(P2P)通信。现在,大多数现代浏览器都完全支持WebRTC标准.

WebRTC除其他功能外,还使Web浏览器能够检测用户的公共IP地址及其本地IP地址。此功能是仅使用Web浏览器即可促进P2P通信的关键,而无需其他应用程序或插件.

WebRTC泄漏

WebRTC泄漏是IP泄漏的一种形式。网页可以使用JavaScript WebRTC API向浏览器询问设备的IP地址。一旦他们收集了这些IP地址,便可以将其发送到服务器,并使用它们来识别谁正在访问特定的网页或服务。.

大多数VPN应用程序可以有效地防止WebRTC泄漏IPv4地址,但是许多VPN应用程序倾向于以相同的方式忽略IPv6地址泄漏.

WebRTC如何检测IP地址?

WebRTC使用两种主要技术来确定设备的IP地址:STUN / TURN服务器和主机候选发现.

眩晕/转弯 服务器通过检查用于访问它们的公用IP地址来发现IP地址。通常这些不是VPN IP泄漏的原因.

主机候选发现 对于WebRTC泄漏,问题更加严重。此功能使浏览器可以直接检查您的系统和网络接口,并查看与它们关联的IP地址。.

设备上所有活动的网络接口都需要IP地址才能起作用。例如,对于活动的Wi-Fi连接,设备上将存在相应的网络接口。该接口将依次具有IP地址.

WebRTC可以将这些IP地址(通常在设备外部无法看到)显示给网页.

为什么IPv6泄漏有问题?

IPv4地址短缺-根本不够用!通常,IPv4地址在人与人之间共享。为此,使用了称为网络地址转换(NAT)的系统。该系统允许设备在通常通过ISP共享公共公用IP地址的同时为其网络接口分配“本地IPv4”地址。这些本地IP地址在全球范围内被数百万台计算机使用,并且很难直接与特定个人相关联.

IPv6的问题在于地址不是短缺的。有一个 很多 其中!这意味着通常每个人都被分配一个唯一的IPv6地址。将这样的IPv6地址分配给网络接口后,这意味着WebRTC可以发现一个标识您的IP地址,即使该地址通常对于外界是不可见的.

那里有什么类型的泄漏?

WebRTC泄漏有两种类型,严重性不同。哪个用户可能容易受到攻击取决于其是否向网页授予与WebRTC相关的特定权限。在两种情况下,良好的VPN都应防止泄漏.

请注意,浏览器制造商可能会使用不同的方法来实施WebRTC,因此即使使用相同的设备设置和VPN提供商,一个浏览器也可能会泄漏而另一浏览器不会泄漏.

持续泄漏(无需权限)

默认情况下,不授予网页WebRTC权限。但是,页面仍然可以使用WebRTC API访问用户的某些IP地址。在这种情况下,网站可以在不知情的情况下通过其IP地址轻松跟踪用户.

触发泄漏(需要许可)

网页可以显式请求权限以使用与WebRTC相关的功能。这些权限实际上被分类为 麦克风 相机 权限。原因是WebRTC是面向语音通话或视频会议等P2P通信的技术.

当授予这些权限中的任何一个时,网页都可以访问设备上更大范围的IP地址,这可能导致泄漏。在某些浏览器中,这些权限会在整个会话中持续存在,即,如果用户一次授予了该网页的权限,则当用户将来返回该页面时,网页会保留这些权限.

请注意,必须分别为各个网页授予权限,因此,授予一个网站的权限不会授予另一个网站的权限.

尽管这些泄漏不如上面的持久性泄漏严重,但由于它们需要用户主动授予权限,因此我们仍然认为它们值得关注。 WebRTC越来越受欢迎,用户有望在未来几年中看到使用该技术的越来越多的网站。如果在用户授予站点权限时VPN不会隐藏IP地址,则它们只有两个选项:

  • 不使用任何启用WebRTC的网站和服务
  • 接受与暴露其IP地址相关的安全和隐私风险

测试泄漏

这些测试可以在任何台式计算机上执行。在执行泄漏测试时,我们建议您在测试设备上使用IPv6,因为这是VPN提供商最有可能泄漏的情况.

手动测试

您可以使用我们的在线WebRTC泄漏测试手动测试泄漏.

复制步骤

  • 确保泄漏测试页是 关闭
  • 确保您的VPN应用程序是 断开连接
  • 访问WebRTC泄漏测试页面
  • 记下所有 上市 您在测试输出中看到的IP地址
    • 他们将与他们的显示 状态 作为“潜在泄漏”
  • 关闭泄漏测试页
  • 连接到您的VPN
  • 重新打开WebRTC泄漏测试页面
  • 如果您看到上面刚刚记下的任何IP地址,则表明存在泄漏

请注意,我们明确要求您关闭泄漏测试页面,以避免浏览器缓存问题。许多浏览器会缓存通过WebRTC检测到的IP,因此重新加载网页不是运行测试的可靠方法.

请注意,此测试页仅测试最严重的泄漏类别,即上述“持久性泄漏”。为了测试在授予浏览器权限时是否泄漏,我们建议您使用下面的泄漏测试工具.

使用ExpressVPN泄漏测试工具进行测试

ExpressVPN泄漏测试工具是可扩展的开源Python工具套件,旨在用于VPN应用程序的手动和自动泄漏测试。请参阅我们对工具的介绍,以获取有关下载和设置工具的说明.

设置完工具后,请确保您位于工具的根目录中并执行:

./run_tests.sh -c configs / case_studies / webrtc_leaks.py

此命令将在多个浏览器上运行两个测试用例。这两个测试用例基本上都是上述手动步骤的自动化,并执行以下操作:

  • 确保被测VPN应用程序已断开连接
  • 确定设备的公共IPv4和IPv6地址
  • 连接VPN应用程序
  • 使用简化的泄漏测试网页收集WebRTC IP
  • 检查连接后收集的任何公共IP是否在连接后通过WebRTC可见

当未授予浏览器权限时,一个测试将测试持久性泄漏,另一个测试将在权限授予时测试是否泄漏 被授予.

注意:您可以通过更改 浏览器 列出 webrtc_leaks.py 文件.

泄漏案例研究2:WebRTC泄漏
admin Author
Sorry! The Author has not filled his profile.