Xray-core icon indicating copy to clipboard operation
Xray-core copied to clipboard

尝试支持ECH

Open Fangliding opened this issue 10 months ago • 5 comments

用类似引入ults的方法引入了cftls(CF的fork) 支持了ECH 目前只完成了客户端 可能还需要加命令生成ECH config 目前加进了httpupgrade tls grpc websocket 似乎强制使用了utls 把握不住还是问问

Fangliding avatar Apr 11 '24 01:04 Fangliding

测试了一下 TCP TLS 可以正常连接到singbox的服务端

Fangliding avatar Apr 11 '24 04:04 Fangliding

感谢佬 我个人意见是 go 那边正在推进 不妨等等 https://github.com/golang/go/issues/63369

yuhan6665 avatar Apr 11 '24 18:04 yuhan6665

gotls估计还要大咕特咕一会

Fangliding avatar Apr 16 '24 14:04 Fangliding

这个 PR 还是相对重一点 ~~先搞 echgenkey 是帮忙朋友项目?~~

yuhan6665 avatar Apr 16 '24 14:04 yuhan6665

ECH 不能结合 uTLS 的话不太实用,~~去给 uTLS PR 个 ECH 吧,应该不难~~

RPRX avatar Apr 18 '24 12:04 RPRX

所以有时间研究给 uTLS 加 ECH 吗,就是说 ECH 不就是把真实 Client Hello 加个密吗,有客户端配置即加密参数的话很简单吧

RPRX avatar May 14 '24 22:05 RPRX

看了下 https://github.com/golang/go/issues/63369#issuecomment-2083070008 ,"We're planning on server support in 1.24.",~~然而对 Xray 来说似乎只需要 client support~~

RPRX avatar May 14 '24 22:05 RPRX

看起来已经写好了就等合并 https://go-review.googlesource.com/c/go/+/578575 ~~reality 的更新工作快来了~~

yuhan6665 avatar May 14 '24 23:05 yuhan6665

看起来已经写好了就等合并 https://go-review.googlesource.com/c/go/+/578575 ~reality 的更新工作快来了~

希望 Golang GKD,~~想起了我那两个没下文的 PR~~

ECH 这个扩展的存在给 XTLS 找了个台阶下,~~后续 data record 长度不稳又怎么了我就不能是 ECH 吗~~ 对 REALITY 则可有可无,反正只要服务端写有你发的 SNI 就只验证 session id,~~啊不过服务端只能读到明文的 key_share 来使用~~

鉴于 Xray 对 ECH 的需求并不紧迫,这个 PR 就先关了,等 Golang 的官方实现

RPRX avatar May 14 '24 23:05 RPRX

看起来已经写好了就等合并 https://go-review.googlesource.com/c/go/+/578575 ~reality 的更新工作快来了~

希望 Golang GKD,~想起了我那两个没下文的 PR~

ECH 这个扩展的存在给 XTLS 找了个台阶下,~后续 data record 长度不稳又怎么了我就不能是 ECH 吗~ 对 REALITY 则可有可无,反正只要服务端写有你发的 SNI 就只验证 session id,~啊不过服务端只能读到明文的 key_share 来使用~

鉴于 Xray 对 ECH 的需求并不紧迫,这个 PR 就先关了,等 Golang 的官方实现

说道这个 话说缓存 server hello 的想法搞得怎么样了()

Fangliding avatar May 15 '24 12:05 Fangliding

@Fangliding 这一手催更反弹 有点东西

yuhan6665 avatar May 15 '24 13:05 yuhan6665