點對點隧道協議
点对点隧道协议(英语:Point-to-Point Tunneling Protocol,缩写为 PPTP)是实现虚拟专用网(VPN)的一种方式。PPTP 使用传输控制协议(TCP)建立控制通道以发送控制命令,并利用通用路由封装(GRE)通道封装点对点协议(PPP)数据包以发送数据。该协议最早由微软等厂商主导开发,但由于其加密方式容易被破解,微软现已不建议使用此协议。 PPTP 的协议规范本身并未描述加密或身份验证部分,而是依靠点对点协议(PPP)来实现安全功能。由于 PPTP 协议内置于微软 Windows 系列产品中,因此微软的点对点协议(PPP)协议栈提供了多种标准的身份验证与加密机制以支持 PPTP[1]。例如,在微软视窗系统中,PPTP 可以搭配 PAP、CHAP、MS-CHAP v1/v2 或 EAP 进行身份验证,通常也可以与微软点对点加密 或 IPSec 的加密机制结合使用以增强安全性[2]。 在Windows 或 macOS平台之外,Linux 与 FreeBSD等平台也提供开源版本。 规格PPTP不是IETF建议的标准,是由微软、阿森德通信公司(Ascend Communications)(現在属于 Alcatel-Lucent 集团)、3Com 等厂商联合形成的产业联盟开发[3]。 1999年7月发布的 RFC 2637 是第一個正式的PPTP規格書。 PPTP以通用路由封装(GRE)协议向对方作一般的点对点传输。通过 TCP 1723 端口來发起和管理 GRE 状态。因为 PPTP 需要 2 个网络状态,因此会对穿越防火墙造成困难。很多防火墙不能完整地传递链接,导致无法连接。 在 Windows 或 macOS 平台,通常PPTP可搭配 MSCHAP-v2 或 EAP-TLS 进行身份验证 ,也可配合 微軟點對點加密(MPPE)进行连接时的加密。 与 PPTP 相似的另一种常见的 VPN 协议是第二层隧道协议(L2TP)[4]。 应用PPTP因為易於設定和是首個支援微軟撥號連線的協議而流行。自Microsoft Windows 95 OSR2開始包含PPTP用戶端,但是被限制只可同時存2個向外連線。Windows XP的遠程桌面連接包含PPTP。 過往因MPPE是軟件專利,所以Linux曾缺乏完整的PPTP支援。但是,自從在2005年10月28日發布的Linux 2.6.14起,Linux核心提供完整的PPTP支援(包含對免費版本的MPPE支持)。 实作PPTP 是第一個被 Microsoft 撥號網路支援的 VPN 通訊協定。自 Windows 95 OSR2 起,所有的 Microsoft Windows 版本都內建了 PPTP 用戶端軟件(雖然只能支援最多兩個同時對外的連線)。 在 Mobile 版本上,Microsoft Windows Mobile 2003 與更新的版本也支援 PPTP。Windows 的路由及遠端存取套件有包含 PPTP 伺服器。 Microsoft 的實作在 MS-CHAP 認證協定內使用了單次 DES 加密,但單次 DES 常被認為無法提供資料足夠等級的安全防護。[2] Windows Vista 與更新版本的 PPTP 開始支援 PEAP。認證機制有 PEAPv0 / EAP-MSCHAPv2 (使用密碼) 還有 PEAP-TLS (智慧卡與憑證)。 Windows Vista 同時停止了 MSCHAP-v1 的認證協定。[3] Linux 的 PPTP 伺服器一般是使用 PoPToP[4] 套件加上 PPP 與 MPPE 的 Kernel Module。PPTP的用戶端程式從 1997[5] 就開始提供了,但伺服器部份要等到 Matthew Ramsay 在 1999[6]開發的版本從 Moreton Bay 以 GNU GPL 發行後才真正開始有人大量使用。但是,Linux發行版本一開始通常都不包含 MPPE 的部份(因為擔心有專利問題)所以不完整,直到 2005/10/28 發布的 Linux Kernel 2.6.14 才正式支援 MPPE。 SuSE Linux 10 是第一個有完整可用的 PPTP 用戶端程式的版本。另外還有 ACCEL-PPP 套件: 它提供了 PPTP / L2TP / PPPoE 伺服器[7],可提供 kernel 模式的 PPTP 協定。 OpenBSD 跟 FreeBSD 在 "ports" 套件系統裡提供 PoPToP。 macOS 與 iOS 曾提供內建 PPTP 用戶端程式,但在 2016 年發表的 iOS 10 和 macOS Sierra 中,PPTP 支援被移除。 OS X Server 內建了 PPTP 服務。 Cisco 與 Efficient Networks 有另外販賣給舊版 Mac OS 使用的 PPTP 用戶端程式。 許多 Android 智慧型手機也支援 PPTP,不過官方版本的 Android 12 已移除了PPTP功能。 安全性因已經發現了PPTP嚴重的安全漏洞,所以該協議經常被使用作為安全分析的課題。已知的漏洞包括所使用的底層PPP認證協議、MPPE協議的設計以及MPPE和PPP認證之間在建立會話密鑰方面的整合。[5][6][7] 以下是這些漏洞的摘要:
EAP-TLS被認為是PPTP的高級認證選擇;[13]然而,它需要為用戶和服務器證書實現公鑰基礎設施。因此,對於一些遠程訪問的設備來說,它可能不是一個可行的認證選擇。大多數使用PPTP的網絡必須應用額外的安全措施,否則會被認為完全不適合現代互聯網環境。同時,這樣做意味著在某種程度上否定了該協議的上述好處。因此,不管從哪方面考慮,使用PPTP都是一種雙輸的局面。[14]
其他 VPN 协议
参考文献
外部链接
|
Portal di Ensiklopedia Dunia