雷锋网消息,4月4日,据外媒报道,对谷歌 Chrome 浏览器来说,丰富的扩展程序是它在浏览器市场出人头地的一大法宝。不过,最近却有人发现一些 VPN 扩展程序可能会导致用户的 DNS 查询泄露,而这一切的罪魁祸首其实就是名为 DNS 预读取的功能。
在用户点击一个链接前,Chrome 会发出 DNS 请求,这时 DNS 预读取功能就会开启。
举例来说,当用户的鼠标悬停在某个连接上,Chrome 就会为某个域名发出 DNS 请求,同时它还会运行 DNS 查询(负责填充 Chrome 地址栏下拉填充)。
很明显,DNS 预读功能的目的就是省掉一部分页面加载时间,即使只有几毫秒。为了让网上冲浪体验更好,在 Chrome 浏览器中 DNS 预读取是个标准配置。
一般情况下,VPN 客户都会使用自定的 DNS 设置来隐藏用户的 DNS 查询。不过,TheBestVPN.com 的 John Mason 表示,一些 Chrome VPN 扩展程序并没能隐藏 DNS 预读系统下的 DNS 查询。
这个问题的根源是 VPN 扩展程序如何将 DNS 查询从 Chrome 泄露给了 VPN 客户,这其中肯定有某些配置出了问题。
“问题在于当进入 pac 脚本模式时,DNS 预读取会一直处于工作状态。鉴于 HTTPS 代理并不支持代理 DNS 查询且 Chrome 不支持 SOCKS 协议下的 DNS,因此所有预读取的 DNS 查询都要通过系统 DNS。从本质上来看,这已经可以算得上 DNS 泄露了。”Mason 从技术的角度描述了这一问题。
Marson 完成的最新调查发现,15 个流行的 Chrome VPN 扩展程序中,至少有 10 个都会泄露用户的潜在浏览模式,这一切都是拜 DNS 预读取查询所赐。以下的 Chrome 扩展就存在这样的问题:
Hola VPN
OperaVPN
TunnelBear
HotSpot Shield
Betternet
PureVPN
VPN Unlimited
ZenMate VPN
Ivacy VPN
DotVPN
不过也有没掉坑里的,WindScribe、NordVPN、CyberGhost、Private Internet Access 和 Avira Phantom VPN 都没有受到谷歌预读取机制的影响。
雷锋网了解到,Mason 已经公布了一个简单的方案,用户只要按步骤走一遍,就能知道自己用的 VPN 扩展程序是否存在 DNS 查询泄露的问题了。
1. 激活你使用的 VPN Chrome 插件;
2. 转到 chrome://net-internals/#dns;
3. 点击“清除主机缓存”(Clear host cache);
4. 将鼠标悬停在链接上方或使用 Chrome 地址来次搜索;
5. 查看是否有新的域名出现在 DNS 主机表中。
Mason 明确表示,问题就出在浏览器的扩展程序上。
“它们本应通过自己的网络发送所有的网络流量,包括 DNS 加密流量,但很多开发者偷懒了。”Mason 说动。“如果用户直接使用系统级的 VPN 应用,就不会出现这种问题。”
因此,想避免 DNS 查询数据的泄露,请直接使用 VPN 客户端应用,别把鸡蛋都放在 Chrome VPN 扩展程序这个篮子里。
此外,用户可以直接关掉 Chrome 里的 DNS 预读取功能。
当然,如果你本来就不用 VPN,完全没必要观点这个功能,毕竟谁都想要个快一点的网络浏览体验。
关闭 DNS 预读取功能的步骤如下:
Chrome→设置→高级→隐私设置和安全性→关掉以下两个选项:
⬥ 使用联想查询服务,帮助你在地址栏中自动填充未输完的搜索字词和网址
⬥ 使用联想查询服务更快速的加载网页
“VPN 扩展程序确实不应该泄露用户的 DNS 数据,这和泄露 IP 地址是一个性质的。希望开发者能尽快对这一问题进行修复。”Mason 说道。
雷锋网Via. Bleeping Computer