【问题标题】:Chrome - Tunnel WebRTC UDP traffic through proxyChrome - 通过代理隧道 WebRTC UDP 流量
【发布时间】:2022-06-11 18:35:08
【问题描述】:

用户的 IP 地址通常会被 WebRTC 泄露,即使在使用代理时也是如此。这对安全性来说很重要,但不是我感兴趣的原因。一些网站,如www.omegle.com,基于 WebRTC 创建视频聊天。不幸的是,他们的行为是恶意的,他们使用 WebRTC 在 VPN 隧道之外检测您的真实 IP 地址,然后通过将您泄露的真实 IP 与常规 HTTP 请求提供的虚假 IP 进行比较来阻止具有代理连接的用户。

我的问题是,在 Chrome 中,是否可以通过浏览器修改或可注入的 javascript 来欺骗 WebRTC“发现”的 IP 地址?

我的目标不是禁用 WebRTC,而是修改它发现的 IP 以匹配代理提供给远程服务器的 IP。

示例测试站点:https://www.expressvpn.com/webrtc-leak-test

我在 Chrome 中看到有许多内部设置选项:

chrome.privacy.IPHandlingPolicy.DEFAULT
chrome.privacy.IPHandlingPolicy.DEFAULT_PUBLIC_AND_PRIVATE_INTERFACES
chrome.privacy.IPHandlingPolicy.DEFAULT_PUBLIC_INTERFACE_ONLY
chrome.privacy.IPHandlingPolicy.DISABLE_NON_PROXIED_UDP

...但没有代理该 UDP 流量。任何帮助将不胜感激!

【问题讨论】:

    标签: google-chrome webrtc chromium


    【解决方案1】:

    当您启动 WebRTC 连接时,您首先创建 RTCPeerConnection 对象(javascript api 的一部分)。

    然后调用它的 createAnswer/createOffer 方法,开始收集“候选人”的过程。

    其中一些候选地址是您的本地 IP 地址或您在 NAT 后面的地址(显示在 www.omegle.com 上的地址)。其他人是“接力”候选人;它们不包含您的 IP 地址,而是一个转地址,它是路由 WebRTC 流量的代理。

    在候选人列表中,您应该看到您的本地 IP 地址和通过 vpn 代理的地址。如果您过滤掉本地候选人,那么您可以欺骗试图阻止您的网站。

    我相信应该可以使用浏览器扩展模拟 RTCPeerConnection 并使其过滤候选列表。有一个用于 chrome 的插件 webrtc-network-limiter 将候选人限制为仅代理。这让我觉得一定有办法过滤掉本地 IP 地址(虽然我对浏览器改装没有太多经验)。

    另一种方法是修改你想愚弄的网站的js代码。如果这是一个选项,那么您应该在createOffer/createAnswer 结果和onicecandidate 回调中寻找候选人。过滤它们并将其传递回原始网站处理程序应该可以解决问题。

    【讨论】:

    • 太棒了,伊万。
    猜你喜欢
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 2013-05-08
    • 1970-01-01
    相关资源
    最近更新 更多