如果我的 VPN 在使用 SSL 连接时突然掉线会怎样?

信息安全 tls 证书 防火墙 虚拟专用网 tls-拦截
2021-09-01 11:44:06

情况

我在一个办公室里,连接通过 BigIP 防火墙路由,带有 SSL 拦截;我们的计算机有一个根证书来允许拦截证书。如果我浏览到诸如https://www.google.com/之类的站点并查看安全证书,我会看到防火墙颁发的证书,但浏览器会欣然接受它,因为它映射到计算机上的根证书。

我有一个绕过防火墙的 VPN 连接;VPN 协商中使用的证书是预期的 VPN 服务器证书,表明防火墙没有拦截此连接。连接后,我的所有流量都通过 VPN 路由,HTTPS 流量显示正确的站点证书而不是防火墙证书,表明我的 HTTPS 流量不再被拦截。

混乱

每隔一段时间,VPN 服务器就会暂时断开连接(OpenVPN 显示它正在重新协商连接,然后在 3-5 秒内重新连接)。发生这种情况时运行的任何 AJAX/其他后台 HTTPS 请求会发生什么情况?连接似乎从来没有错过任何一个节拍(更新的数据继续在页面上刷新),这表明即使 VPN 连接断开,流量也会继续流动。

当 VPN 连接断开时,浏览器是否会立即(并且透明地)使用防火墙证书重新协商 HTTPS 连接?或者防火墙是否以某种方式看到数据是现有连接的一部分并在没有 MITMing 的情况下传递数据?或者 AJAX 调用实际上是否因为证书更改而被拒绝,并且页面只是继续刷新它在丢弃之前拾取的内容,所以它只会让我觉得它是连续的?

细节

  • 平台:Windows 7
  • 隧道:OpenVPN 服务器,带有 OpenVPN GUI 客户端
  • 浏览器:谷歌浏览器(有时还有 Mozilla Firefox)
  • 防火墙:f5 BigIP,可能是 AFM

这不是关于使用 VPN 绕过防火墙是否(道德、道德、法律等)的问题;这是一个关于当 VPN 暂时掉线时数据会发生什么,以及它是否可能被拦截的问题。由于法律问题,我有权这样做。

2个回答

网络堆栈中的“tcp”将很高兴地补偿小于 tcp 超时的中断,要求服务器重新发送它错过的任何数据包。现有的套接字连接不会通过不同的路由切换(这通常在路由器上完成,而不是在端点设备上完成)。由于 tcp 网络堆栈非常擅长此操作,因此浏览器内没有处理此类事件的能力。

我看不到在没有任何网络连接的情况下如何传递内容。请注意,呈现和 javascript 执行与内容检索(来自服务器和本地缓存)异步发生,因此屏幕可能会在没有交换数据包的情况下发生变化。

您的 VPN 应用程序将自身安装为网络驱动程序。这意味着它会告诉您的系统“嘿!通过我发送你所有的流量!

现在,当您的VPN退出时,可能是由以下几个原因引起的:

  • 路由器和系统之间的错误

  • VPN 驱动程序/应用程序中的错误或某些外部影响迫使系统停止使用网络适配器

  • 您的 ISP 刚刚发生了一次小中断(不太可能)

  • 以上的组合。


在所有这些情况下,连接断开的那一刻,*网络适配器或您的 VPN 适配器就会死掉。这完全取决于您的系统配置及其切换速度/能力。这相当于打开水龙头并伸到水槽下方关闭阀门。这些数据包无处可去。 但是- 如果您的系统能够或配置为使用另一个适配器作为后备,那么根据它能够切换的速度,您的系统有可能继续将这些数据包发送到它们的目的地 - 这意味着您的防火墙将能够再次查看内容。

其他可能的缓解策略可能包括阻止除您的 VPN 端口之外的所有端口(阻止除 UDP 1194 之外的所有端口) - 这将确保所有数据都必须通过 VPN 端口进行路由。

但是,如果许多站点检测到包含来自多个 IP 的相同 cookie 的数据包,它们会立即将您注销。但同样,您的雇主(或管理防火墙的人)可能会传输和读取数据。

此外,我应该提到,许多 VPN 程序都带有一个终止开关,可以监控您的 VPN 连接是否失败,并立即停止传输数据包。OpenVPN 还没有。