为什么 OpenVPN 中不建议压缩?

Nik*_*nov 5 compression encryption vpn openvpn

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

不建议使用压缩,并且用户应避免使用压缩功能。为了清楚地表明这一点,--comp-lzo--compress鼓励并认为已弃用的功能。从2.5开始,这些选项将不再启用压缩,只是启用压缩帧能够接收压缩数据包。

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

为什么?特别是尽管事实上建议在加密之前进行压缩,因为它消除了数据中的冗余,因此使其整体看起来更加随机(例如参见SO 上的这个问题)。有什么问题?

sle*_*ske 8

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

安全考虑

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

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

有关详细信息,请参阅VPN 网络上的压缩 Oracle 攻击(Nafeez),并在 OpenVPN Github 存储库中提交 a59fd147 。