Shadowsocks AEAD 加密漏洞及防重放机制所带来的潜在危险
最近2天,有一名开发者 rprx 在GitHub上提出了一个此前在 Shadowsocks 相关项目中被忽视的问题,而经过众多开发者讨论后认为该漏洞具备较为严重的威胁。
该漏洞出现在 Shadowsocks AEAD 加密方式设计上,现有的方式无法验证返回数据的可靠性。在不需要密码的情况下,中间人可以随意对客户端接收的数据进行移花接木或重放,比如对调两条 TCP 连接所返回的数据。
此后该开发者还发现SS和VMess等工具还存在可被利用防重放机制进行流量阻断的漏洞,中间人(比如防火墙)可以在真实内容到达前抢先发送一条至少包含32个字节的信息即可让真实信息被丢弃。
防火墙可以根据三项特征:未知流量、0-RTT、有重放过滤器即可精准定位。
该漏洞可以被防火长城所利用,从而高效地阻断可疑流量而无需封锁IP地址。
分析认为该漏洞可能在特定极端的情况下被利用,但考虑到有较高的误杀率,它并不是一个完美的解决方案。
SS相关分支项目的开发者正在研究升级方案以修复这两个漏洞。
参考资料
因本文不是用Markdown格式的编辑器书写的,转换的页面可能不符合MIP标准。