Skip to content

Instantly share code, notes, and snippets.

@NullPointerMaker
Last active June 30, 2021 18:11
Show Gist options
  • Save NullPointerMaker/d340239d2b2d0c74d4314c782f5c2fcb to your computer and use it in GitHub Desktop.
Save NullPointerMaker/d340239d2b2d0c74d4314c782f5c2fcb to your computer and use it in GitHub Desktop.
XTLS

最近 XTLS 项目如火如荼,翻墙界还能这么热闹也很令人欣慰。

但是这个项目的方向其实有很大问题——重复发明加密协议。
基本上是走了一遍 Shadowsocks 当年的老路。

Shadowsocks 协议几经发展,历经诸多波折,最终定稿为 AEAD,然而 AEAD 其实就是 TLS 的算法。

XTLS 也走上了类似的方向,不过看起来更加直接。与其模仿 TLS,不如“优化”TLS:
把用不到的算法、格式、逻辑精简掉,XTLS 便这样实现了。

性能当然非常好,就像早期的 Shadowsocks 也是很快的。
那会不会出现早期 Shadowsocks 那样的问题呢?
这取决于作者的水平。
也可能运气更加重要。
现在下结论为时尚早。

老实讲,我还是觉得标准的 TLS 实现更保险。
即使是来自通用库的 TLS 实现,我们都还担心会有小众的指纹,还要想办法用浏览器指纹覆写。
甚至用的浏览器指纹不够常见都会被识别。这是 Tor 项目曾经踩过的坑。
如果“优化”TLS 是可行的,那么通用库为什么不早这么干呢?

对翻墙软件开发者来说,重复发明轮子也不划算。
花费很多时间和精力,挤出一点性能。
一旦运气不好失误踩坑,便是高风险的安全事故。
成本、收益、风险比太过失衡。
用现有的成熟轮子,既安全,还省事。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment