问题只以一个问题的形式出现,却需要两个答案。隧道改变数据包的去向,客户端改变机器上运行的东西,把两者混为一谈,得到的要么是虚假的安心,要么是多余的惊慌。把两者分开,剩下的答案就来自你能核实的事实。

流量那一半由配置文件安装的路由决定。机器那一半由客户端的行为决定,也由你自己的电脑在网络上公开什么决定。

一个问题藏着两个

全局隧道经公司网关安装默认路由,因此对外请求从那里发出,网关、它的代理和它的解析器都能记录目的地、时间和流量大小。分流隧道只安装选定的路由,因此日常浏览从你自己的连接出去,看到的反而是你的运营商。两种安排都无关加密强度:HTTPS 在两种情况下都保护内容,也都在两种情况下暴露目的地。区别在路由,而路由在机器本身就看得见。

客户端还可以安装检查数据包的驱动程序,在允许连接之前做健康检查,并报告存在哪些软件。这些是软件的能力,而不是隧道的能力,两种路由模式下都成立。

网关和代理留下什么

当默认路由指向隧道时,可以预期公司解析器和任何 Web 代理都会保留你访问过的目的地记录。代理还会记录未加密 HTTP 请求的请求行,以及 HTTPS 所用的 CONNECT 目标,这比流日志更丰富。HTTPS 内部的内容仍然不可读——除非组织在机器上安装了自己的受信证书,而那是另一项看得见的更改。仅凭流元数据就足以确定你何时在工作、用了哪些服务。

在分流隧道下,那些公开目的地从你自己的线路出去,因此公司记录覆盖的是内部名称和公司目的地,而不是全部。这是更小的记录,但仍然不是空记录。任何说分流隧道意味着雇主什么都看不到的说法,都是错的。

DNS 看到隧道未必承载的名字

名称解析是另一条路径,强制使用公司解析器的配置文件即使连接从本地出去,也会把查询发到那里。解析器记录你查询过的名称,这往往比你去过的地址更有信息量。分流 DNS 把它限制在内部域名内,而有自带加密解析器的浏览器可以完全绕过这套安排。一次查询可能由三个组件回答,其中只有一个属于公司。

把解析路径与路由路径分开测试。连接从本地出去、查询却发往公司解析器,这是按设计工作的分流配置,而且它仍然泄露名称。

检查路由和共享

两个事实决定你实际暴露了什么,而两者在机器上都看得见。下面的命令显示隧道开启时的默认路由、名称解析路径,以及这台电脑发布的共享。连接前运行一次,连接后再运行一次。

Get-NetRoute -DestinationPrefix 0.0.0.0/0
Resolve-DnsName corp.example.com -Type A
Get-SmbShare
Get-NetFirewallProfile -Name Public | Select-Object Name, Enabled

默认路由指向隧道适配器,说明公司承载你的公开流量;默认路由指向你自己的适配器,说明它没有承载。第三条命令列出的共享,在隧道开启时可以从公司网络到达,即使常规主机名无法解析;来宾访问则让它无需账户即可到达。防火墙配置文件很重要,因为隧道适配器可能被归为公用网络,这决定了是否允许文件共享。把四条放在一起读,边界就是被描述出来的,而不是猜出来的。

根据这条边界选择安排:直接连接给雇主的工具最大的可达范围,公司设备让工作监控远离你的文件,虚拟机隔离安装而不改变流量出口。记录你接受了哪条路由、哪些共享。

相关文章