安全分离隧道的基础
2021年9月10日
恭喜你!你已经完成我们的分离隧道系列文章!在第五部分中,我们将解释影响我们安全设计的关键属性,并邀请你在此基础上进行构建。
前一篇有关分离隧道的文章探讨了现有解决方案设计和实施中的常见失误。在我们开始构建自己的解决方案时,我们希望创造一些更好的、更安全的东西。在仔细检讨常见问题的清单后,几个模式开始浮现。
将应用程序分为三组
我们发现许多现有实现未能定义和执行适当的模型。在我们的设计中,我们使用了一种模型,将所有应用程序分为三组:排除、包含和待决。这一点非常重要,因为我们现在可以为每组定义规则,以确保应用程序以安全的方式运行。
这些组的规则其实很简单。这个系统的优势在于,各组之间没有重叠,而待决组则消除了竞争条件和不确定性。
“排除”组
- 新连接被强制放置在隧道外部。
- 隧道内的现有连接被阻止。
- 如果局域网接口上没有IPv6,则该应用程序的所有IPv6都会被阻止,以防泄漏到隧道内。
- 子进程继承组别关联。
“包含”组
- 新连接被强制放置在隧道内部。
- 隧道外的现有连接被阻止。
“待决”组
- 此组不会在任何网络上自由通信。
- 新连接需待定,直到该应用程序被提升到另一组。
看完这些规则后,你可以想像应用程序是如何在这些组之间轻松转换的。应用程序总是存在于隧道的某一侧,永远不会同时在两侧。
为什么是三组?
待决组解决了一个非常重要的问题。通常在Windows上,应用程序会从包含组启动,然后被移动到排除组。这个移动通常在VPN完成对它的分类之后,时间是未指定的。这对许多应用程序来说运作良好,通常也相当快。但并没有保证。根据当天的某些因素(实际上是:CPU型号、系统负载、Windows版本等)可能会导致VPN反应缓慢,而此时应该被排除的应用程序却在隧道内发送和接收数据。
Mullvad应用会将所有启动的应用程序放在待决组。这可以防止数据泄漏,消除了应用启动过程中潜在的不确定性。
拿走我们的解决方案并加以运用!
我们希望我们的设计和实现能推动Windows分离隧道的技术进步。前一篇文章中所列的所有泄漏问题,都在设计或主动编码中得到了处理。如往常一样,,我们邀请其他人学习我们的工作并在此基础上进行开发。
我该怎么使用Mullvad的分离隧道功能?
该功能目前在Mullvad VPN的Windows、Android和Linux版本中可用。
你可以在 设置 > 高级 > 分离隧道 找到此设置。平台特定的详细信息可以在我们的
中查找。
就这样,各位!
感谢你关注我们的五部分分离隧道系列!如果你错过了之前的文章,欢迎随时查阅:
- 安全分离隧道的基础(这篇文章)
为了普遍的隐私权,
Mullvad VPN