点对点隧道协议(PPTP)是一种用于保护设备与 VPN 服务器之间连接的 VPN 协议。作为最古老的 VPN 协议之一,PPTP 存在诸多安全问题,如今已被视为过时。

尽管如此,由于它与大量旧版软件和硬件具有广泛兼容性、设置简便、轻量,加上企业升级其旧版 PPTP 公司内部网 VPN 系统的成本高昂,因此在 2021 年,该协议仍被广泛使用。

VPN 协议是什么?

VPN 协议由传输协议和加密标准组合而成,用于在设备与 VPN 服务器之间建立安全连接,并在数据于两者之间传输时对其进行加密。

VPN 协议应提供三项功能:

  • 身份验证——防止未经授权的用户连接到 VPN 服务器
  • 保密性——通过加密确保无人能够访问(“嗅探”)通过 VPN 网络发送的数据包内容
  • 完整性——检测传输的数据是否以任何方式被篡改

当今使用的 VPN 协议包括:

  • PPTP
  • L2TP/IPsec
  • IKEv2(/IPsec)
  • OpenVPN
  • WireGuard®
  • SSTP
  • SoftEther
  • Cisco AnyConnect(及其开源变体 OpenConnect)——这些协议几乎仅用于企业 VPN 内部网,而不用于 Proton VPN 等商业 VPN 服务。

详细了解 VPN 协议

详细了解 WireGuard

什么是 PPTP VPN?

历史

PPTP 规范由微软发起的联盟开发,旨在通过拨号网络创建 VPN 连接,并于 1999 年发布。微软迅速在 Windows 95 中加入了对 PPTP 的支持,使其很快成为各公司内部网的默认 VPN 协议。

支持

在过去 20 多年里,几乎所有支持 VPN 的平台都内置了对 PPTP 的支持,而且 Windows 11、Android 12、大多数 Linux 发行版以及绝大多数支持 VPN 的路由器都仍在原生支持该协议。

然而,Apple 于 2018 年从 iOS 10+ 和 macOS 10.12 Sierra 中移除(新窗口)了对 PPTP 的支持,并建议不要在旧版本的操作系统上使用它。

较新版本的 Chrome OS 不直接支持 PPTP,但可以在支持 Google Play 商店的 Chromebook 上通过 Android 子系统配置 PPTP 连接。

工作原理

PPTP 是一种隧道协议(新窗口),其本身并非完整的 VPN 协议。加密和身份验证由点对点协议(新窗口)(PPP)处理,但 PPP 不包含将数据包路由至目的地的机制。

PPTP 通过端口 1723 与 VPN 服务器建立 TCP 连接,并使用通用路由封装(新窗口)(GRE)重新打包 PPP IP 数据包。这些数据包使用微软点对点加密(新窗口)(MPPE)进行加密,MPPE 采用RSA RC4 流加密算法(新窗口),密钥大小最大为 128 位。

身份验证通常使用 MS-CHAP(现为 v2)协议完成。(使用更安全的 AEP-TLS 也是可行的(新窗口),但这需要部署一套服务器证书系统,这在很大程度上抵消了使用 PPTP 的原有优势。)

速度

PPTP 是一种非常简单轻量的 VPN 协议。这使得它具有出色的速度性能(特别是在处理能力较低的设备上),并能让移动设备拥有良好的电池续航。与安全得多(但也更繁琐)的 OpenVPN 协议相比,这一点尤为明显。

安全性

PPTP 存在众多严重的安全问题。其中最严重的问题之一是未封装的 MS-CHAP v2 身份验证,这可能让攻击者利用加密漏洞获取用户凭证。

利用这一漏洞,密码学传奇人物 Moxie Marlinspike 于 2012 年首次发布的工具可以让 PPTP 在不到一天的时间内被破解(新窗口)。这一缺陷促使微软自身也建议(新窗口)改用 L2TP/IP、IKEv2、IPsec 或 SSTP。

2019 年,微软还发布了一份“适用性声明(新窗口)”,指出 MS-CHAP v2 所使用的身份验证方法容易受到字典攻击(新窗口)。更糟的是,PPTP 用于加密数据的 RC4 加密算法容易受到比特翻转攻击(新窗口)。

因此,2014 年,当 Der Spiegel (新窗口)发布从吹哨人 Edward Snowden 处获得的文件,确认美国国家安全局(NSA)访问采用 PPTP 保护的数据几乎不成问题时,几乎没有人感到意外。

从爱德华·斯诺登处获得的绝密幻灯片,详细描述了 NSA 如何轻松破解 PPTP 加密

抗审查能力

PPTP 使用 TCP 端口 1723,由 GRE 封装的数据包则使用 IP 协议号(新窗口) 47,这两者都可以用防火墙轻松拦截。

概览

PPTP 不是一种安全的 VPN 协议,在任何需要考虑安全性的情况下都不应使用。

然而,其易用性、轻量性以及几乎无处不在的支持,意味着它仍可在安全性不成问题的场合派上用场。例如,可以在需要突破 IPS 流量限制、解锁受地理限制的网站,以及在出国旅行时观看已订阅的 Netflix 内容时使用它。

不过,在 Proton VPN,我们认为这一过时协议的安全缺陷使其不适合其用途,现代商业 VPN 服务向用户提供 PPTP 作为选项是不负责任的做法。

在 Proton VPN,我们只提供以其最高安全设置实施的加密安全的 VPN 协议。这些协议包括:

  • OpenVPN 
  • IKEv2
  • WireGuard

常见问题

PPTP 使用哪个端口?

PPT 使用 TCP 端口 1723。

什么是 PPTP 直通?

所有路由器都使用网络地址转换(NAT)将传入和传出的连接映射到与其相连的本地设备。然而,并非所有路由器都知道如何处理使用较旧 VPN 协议(如 PPTP、IPSec 和 L2TP)加密的数据包。

为处理使用这些 VPN 协议的流量,路由器必须支持 VPN 直通。否则,VPN 流量将被路由器拦截。PPTP 直通将 PPTP 所用的基本 GRE 协议替换为包含呼叫 ID 的增强版本,从而识别 PPTP 客户端并正确路由其数据包。

大多数现代路由器都包含可处理受此问题影响的所有常见 VPN 协议(包括 PPTP)的 VPN 直通功能。此外,OpenVPN、IKEv2 和 Wireguard 等现代 VPN 协议在设计时已解决该问题,因此不受其影响。

我需要 PPTP 客户端吗?

大多数支持 VPN 的设备和操作系统都内置原生 PPTP VPN 客户端。Apple 设备是一个主要例外,它们不再支持 PPTP。这是 Apple 迈出的良好一步,因为更现代的 VPN 协议不仅能实现 PPTP 的所有功能,而且安全性也高得多。