什么是 WebRTC 泄漏
即使正在使用 ,网络信息也可能通过浏览器功能变得可见。
其中有代表性的话题就是 WebRTC 泄漏(WebRTC leak)。
WebRTC 是一种用于在浏览器中实现语音通话、视频通话、屏幕共享和实时通信的机制。 它是方便的功能,但根据设置和环境不同,你以为已经通过 VPN 或代理隐藏的网络信息,可能会通过浏览器成为可见线索。
本文会整理 WebRTC 泄漏意味着什么、它与 VPN 和 有什么关系,以及在匿名性中应该确认什么。
什么是 WebRTC
WebRTC 是 Web Real-Time Communication 的缩写。
它用于在浏览器之间,或浏览器与服务之间,实时交换音频、视频和数据。
例如,它与浏览器中的视频会议、语音通话、屏幕共享、类似 P2P 的通信功能有关。
| 用途 | 例子 | 匿名性中要看的点 |
|---|---|---|
| 语音通话 | 浏览器通话 | 麦克风和通信路径有关 |
| 视频通话 | Web 会议 | 摄像头、背景、声音也会成为线索 |
| 屏幕共享 | 浏览器上的共享功能 | 通知、账号名、标签页可能会显示出来 |
| 实时通信 | 部分 Web 应用 | 确认网络信息如何被处理 |
WebRTC 本身并不是坏技术。 问题在于,在重视匿名性的场景中,用户可能没有掌握浏览器会向外发送哪些信息。
WebRTC 泄漏中会看到什么
WebRTC 泄漏这个说法,主要指 IP 地址或网络相关信息通过浏览器变得可见的问题。
使用 VPN 时,基本预期是连接目标网站看到 VPN 服务器的 IP 地址。 但是,通过 WebRTC 机制,局域网信息,或者在某些环境下意料之外的 IP 信息,可能会变得可见。
近年来,浏览器的对策已经有所推进。 即便如此,如果考虑匿名性,仍值得确认“自己当前环境中会显示什么”。
| 信息 | 说明 | 注意点 |
|---|---|---|
| 本地 IP | 设备在内部网络中的 IP | 单靠它不能知道个人姓名,但会成为环境线索 |
| 外部 IP | 从外部可见的 IP | 使用 VPN 时确认是否符合意图 |
| 浏览器信息 | WebRTC 支持情况 | 可能成为指纹的一部分 |
| 通信行为 | 通信走哪条路径 | 与确认 VPN 或代理的覆盖范围有关 |
WebRTC 泄漏并不一定会单独识别出本人。 但是,当它与 IP、、登录状态、浏览器指纹、发布时间组合起来时,就会成为关联分析的材料。
使用 VPN 时为什么要注意
WebRTC 泄漏经常被讨论,是因为它与 VPN 使用有关。
使用 VPN 的目的之一,是让连接目标更难直接看到家里或职场的 IP 地址。 可是,如果网络信息从浏览器的其他功能流出,VPN 本应改变的可见方式就会出现漏洞。
| 状态 | 发生的事 | 要确认的事 |
|---|---|---|
| 没有 VPN | 普通线路信息可见 | 掌握平时的可见方式 |
| 有 VPN | 连接目标看到 VPN 的 IP | WebRTC 测试中也确认是否符合意图 |
| 浏览器设置不明 | 显示预想外的信息 | 查看 WebRTC 设置和扩展功能 |
| 使用多个浏览器 | 每个浏览器的行为不同 | 在匿名用浏览器中确认 |
即使 VPN 应用显示“已连接”,也要另行确认浏览器一侧正在暴露什么。
在匿名性中,需要把通信路径和浏览器环境作为一组来考虑。
与 Tor Browser 的关系
Tor Browser 不只是使用 Tor 网络,还具有减少浏览器发出的识别信息的设计。
因此,在重视匿名性的 Web 浏览中,比起给平时的浏览器添加 Tor 用设置,使用 Tor Browser 作为设计更容易理解。
不过,即使使用 Tor Browser,如果登录实名账号,行为也会与账号关联。 如果 Tor Browser 以外的应用通过普通线路通信,信息会从另一条路径流出。
仅仅禁用 WebRTC 并不会让人匿名。 需要把浏览器、账号、通信路径、发布内容整体分开。
确认时的视角
确认 WebRTC 泄漏时,要看外部测试页面显示的 IP 信息。
这时重要的不是测试结果本身,而是它是否符合你的使用目的。
例如,如果你使用 VPN 是为了不让连接目标看到家里 IP,就要看测试结果中是否出现了像家庭网络的信息。 如果想把匿名用浏览器和平时用浏览器分开,也要确认两个环境中是否出现相似特征。
| 确认项目 | 查看理由 |
|---|---|
| 显示的外部 IP | 确认是否符合 VPN 或 Tor 的意图 |
| 本地 IP 的显示 | 确认内部网络信息是否可见 |
| 浏览器之间的差异 | 分开匿名用环境和平时用环境 |
| 扩展功能 | 查看新增扩展是否改变行为 |
| OS 和 VPN 设置 | 不只看浏览器,也看整个设备的设置 |
BrowserLeaks WebRTC 是一个可以确认浏览器可见 WebRTC 相关信息的检测页面。 在使用 VPN 或区分匿名用浏览器时,它可以帮助查看浏览器一侧是否流出了非预期的 IP 信息或网络信息。
URL : https://browserleaks.com/webrtc
测试网站的结果会因环境和浏览器版本而变化。 因此,不要只因测试结果的显示而安心,而要以“自己想隐藏的信息是否没有从外部可见”为标准来确认。
只看 WebRTC 并不够
WebRTC 泄漏是重要的确认项目。
但是,匿名性的失败并不只由 WebRTC 引起。
即使使用 VPN,WebRTC 的显示也没有问题,只要发送同一个 Cookie,就会被当作同一个浏览器处理。 如果登录实名账号,行为会与账号关联。 如果使用相同文风、相同图片、相同发布时间,就会从网络以外的地方被关联。
| 留下的线索 | 说明 |
|---|---|
| Cookie | 被当作同一浏览器的再次访问处理 |
| 登录状态 | 行为与账号关联 |
| User-Agent | 浏览器和 OS 信息会被发送 |
| 文风和发布内容 | 可能与实名侧的发布相似 |
| 图片和文件 | 可能从元数据或背景中被推测 |
WebRTC 对策只是检查浏览器环境的一部分。 它不能替代匿名性整体。
总结
WebRTC 是用于在浏览器中进行实时通信的机制。 它用于语音通话、视频通话、屏幕共享等场景。
WebRTC 泄漏的问题在于,网络信息会通过浏览器变得可见。 尤其在使用 VPN 时,即使以为已经改变了连接目标看到的 IP,也需要确认浏览器一侧是否没有流出其他信息。
不过,只调整 WebRTC 并不会完成匿名性。 Cookie、登录状态、浏览器指纹、DNS、发布内容、图片、时间、过去信息也需要另行确认。
在匿名性中,需要考虑的不只是单一泄漏,还包括多个小线索彼此连接起来。
相关工具
WhatIsMyIP
与本文相关的外部资源。只有在符合你的处境和威胁模型时再打开。
列在这里的原因: 它可能有助于理解本文主题,但位于 Anonymity Sense 之外,使用前应先自行确认。
DNSLeakTest
与本文相关的外部资源。只有在符合你的处境和威胁模型时再打开。
列在这里的原因: 它可能有助于理解本文主题,但位于 Anonymity Sense 之外,使用前应先自行确认。
BrowserLeaks WebRTC
与本文相关的外部资源。只有在符合你的处境和威胁模型时再打开。
列在这里的原因: 它可能有助于理解本文主题,但位于 Anonymity Sense 之外,使用前应先自行确认。
BrowserLeaks Fingerprint
与本文相关的外部资源。只有在符合你的处境和威胁模型时再打开。
列在这里的原因: 它可能有助于理解本文主题,但位于 Anonymity Sense 之外,使用前应先自行确认。
EFF Cover Your Tracks
与本文相关的外部资源。只有在符合你的处境和威胁模型时再打开。
列在这里的原因: 它可能有助于理解本文主题,但位于 Anonymity Sense 之外,使用前应先自行确认。