为什么不建议在 OpenVPN 中进行压缩?

为什么不建议在 OpenVPN 中进行压缩?

在最新的稳定版 OpenVPN 系列 2.5 中,所有与压缩相关的指令均被视为已弃用。从维基页面

不推荐使用压缩,用户应避免使用此功能。为了明确表示这一点,我们不鼓励使用压缩,--comp-lzo并将--compress其视为弃用的功能。从 2.5 开始,这些选项将不再启用压缩,而只是启用压缩帧以便能够接收压缩数据包。

基本上,这些选项现在是“noop”命令。

为什么?尤其是尽管建议压缩在加密之前,因为它会消除数据的冗余,从而使数据整体看起来更加随机(例如这个问题在 SO 上)。有什么问题?

答案1

不建议使用压缩,因为它会使连接容易受到预言机攻击,特别是压缩 Oracle 攻击。OpenVPN 文档中提到了这一点“openvpn” 手册页,在“协议选项”下:

安全注意事项

压缩和加密是一个棘手的组合。如果攻击者知道或能够控制包含机密的数据包的纯文本(部分内容),则如果启用了压缩,攻击者可能能够提取机密。[...]

基本上,如果攻击者可以影响通过 VPN 发送的纯文本数据,他们就可以观察压缩大小的变化(由于数据或多或少可压缩)并发现有关数据的一些信息,即使数据已加密。

例如针对 VPN 网络的压缩 Oracle 攻击(Nafeez)了解详情,以及提交 a59fd147在 OpenVPN Github 存储库中。

相关内容