billlee
2014-06-10 13:32:39 +08:00
PPTP 除了加密算法上的漏洞,协议本身的安全性也有很多问题,通过破解加密算法攻击是下下策。PPTP 的安全性完全依赖于上面跑的 PPP, 而 PPP 是设计来做点对点连接的,用到 Internet 上很不合适。
首先 PPP 没有对完整性的保护,链路上的分组可以被篡改和重放。没有完整性保护的加密是没有意义的。比如,攻击者可以窃听,然后修改 IP payload 上的 destination 后重放(这也是早期针对 WEP 的攻击方法之一)。
另外 PPP 的控制消息也没有任何保护,对于配置不当(或者实现不当)的 PPTP, 可以通过伪造 ECP 包,把 ms-chap, mppe 降级成 pap, 无加密。
这些问题在 RFC3193 - Securing L2TP using IPsec 里都提到了。另外 Windows 下 L2TP/IPSec 实现也不完全安全,它没有可以把 IPSec 指定为 required 的选项,通过干扰 IKE, 可以把 L2TP/IPSec 降级成没有 IPSec 保护的 L2TP.