VPNS 是否容易受到中间人攻击?

信息安全 中间人 虚拟专用网 密钥交换
2021-09-05 01:47:09

我知道使用 SSL/TLS,中间人攻击是不可能的。例如,如果 Alice 和 Bob 试图通信,而 Trudy 试图进行中间人攻击,那么当 Alice 从 Bob 那里得到公钥时(但实际上是 Trudy 欺骗 Alice),公钥将与证书颁发机构,因此不起作用。

我知道使用 SSH,只有与服务器的第一个连接可能对中间攻击中的活跃人员开放。这是因为在第一次连接期间,客户端将服务器的公钥记录在 $HOME/ssh/known_hosts 文件中。之后的每个连接都会检查此文件以确保公钥匹配。

但是 VPN 加密如何与连接设置一起工作?证书是否像 SSL/TLS 一样用于传递对称密钥?如果不是,这不会使 VPN 在密钥交换期间容易受到中间人攻击吗?

2个回答

为了防止中间人攻击,通信的至少一个端点需要对另一个端点有一些先验知识。通常由客户端来验证它是否正在与正确的服务器通信,因为服务器往往允许潜在的任何客户端连接到它们。提供这种先验知识的基础设施的总称是公钥基础设施

在 HTTPS 的情况下,先验知识通常伴随着证书颁发机构的中间步骤。Web 浏览器包含一个预定义的 CA 列表及其公钥,并且如果网站可以证明其公钥已由 CA 的私钥签名,则它会接受该网站为真实的。

在 SSH 的情况下,先验知识通常来自之前与服务器的联系:客户端记录服务器的公钥,如果服务器的公钥不是记录的公钥,则拒绝继续。(这也适用于带有证书固定的HTTPS 。)在第一次连接时,由 SSH 用户来验证公钥。

VPN软件没有遵循标准。您需要阅读您的 VPN 软件的文档。在企业部署中,通常将服务器证书与 VPN 软件一起部署到员工的计算机上,或者要求员工从不担心 MITM 攻击的公司网络内部首次连接到 VPN。然后证书存储在 VPN 软件配置中,如果服务器的公钥更改,VPN 客户端将拒绝连接。

如果您要部署 VPN 服务供您自己使用或供您的组织使用,您应该在安装时准备好服务器证书,然后再开始使用。如果安全网络不可用,您将需要依靠其他一些通信渠道来发送证书。它可能是一封电子邮件,如果这是您识别用户的方式,但最好依靠预先存在的基础设施,例如 GPG 密钥(在签名的电子邮件中发送证书)——这当然只会将问题转移到如何验证 GPG 密钥。

如果您使用基于云的 VPN 服务,该服务应为您提供验证其证书的方法(例如通过 HTTPS 提供的网页),并应记录如何安装证书或如何在首次使用时对其进行验证。同样,没有一个所有 VPN 软件都遵循的单一过程。

如果设置正确,VPN 将防止许多 MiTM,但不是全部。VPN 通常会保护一个人的计算机和 VPN 网关之间的大多数 MiTM,但是一旦消息/流量到达其目的地,它只是半匿名而不是“完全匿名”,这意味着会有一个或(通常是 +)不止一种攻击可以渗透和修改流量内容。此外,PPTP、LT2P 和 WPA2 都有已知的缺陷,这些缺陷会使它们容易受到 MiTM 和其他类似攻击的攻击。WPA2 特别容易受到字典攻击。有关我所写内容的进一步阅读以及添加数据/上下文,请参见下文:

https://help.riseup.net/en/vpn/security-issues

http://www.computerweekly.com/feature/White-Paper-The-Achilles-heel-of-VPNs-the-man-in-the-middle-attack

第一个链接直截了当且易于阅读,而第二个链接提供了更多详细信息。