最近 XTLS 项目如火如荼,翻墙界还能这么热闹也很令人欣慰。
但是这个项目的方向其实有很大问题——重复发明加密协议。
基本上是走了一遍 Shadowsocks 当年的老路。
Shadowsocks 协议几经发展,历经诸多波折,最终定稿为 AEAD,然而 AEAD 其实就是 TLS 的算法。
XTLS 也走上了类似的方向,不过看起来更加直接。与其模仿 TLS,不如“优化”TLS:
把用不到的算法、格式、逻辑精简掉,XTLS 便这样实现了。
性能当然非常好,就像早期的 Shadowsocks 也是很快的。
那会不会出现早期 Shadowsocks 那样的问题呢?
这取决于作者的水平。
也可能运气更加重要。
现在下结论为时尚早。
老实讲,我还是觉得标准的 TLS 实现更保险。
即使是来自通用库的 TLS 实现,我们都还担心会有小众的指纹,还要想办法用浏览器指纹覆写。
甚至用的浏览器指纹不够常见都会被识别。这是 Tor 项目曾经踩过的坑。
如果“优化”TLS 是可行的,那么通用库为什么不早这么干呢?
对翻墙软件开发者来说,重复发明轮子也不划算。
花费很多时间和精力,挤出一点性能。
一旦运气不好失误踩坑,便是高风险的安全事故。
成本、收益、风险比太过失衡。
用现有的成熟轮子,既安全,还省事。