-
Notifications
You must be signed in to change notification settings - Fork 4.6k
TLS ECH client: Use chrome-fingerprint and add padding; Add "h2c" and echSockopt
; Fix some issues
#4949
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
707e328
to
06580c3
Compare
echSockopt
, add h2c
echSockopt
, add h2c
, fix fromMitM
echSockopt
, add h2c
, fix fromMitM
echSockopt
, add h2c
, fix fromMitM
, add padding header
@patterniha |
if I fix it, there is no need to do anything else. /// for DOH:
/// i add header-padding and chrome-fingerprint to ech-DOH, but it still doesn't have body-padding. |
各种乱七八糟的padding喜欢加可以加 不过这个doh并没有那么高的query流量 大多数情况下查一个非常接近一个普通查询 没普通dns问题严重 |
@patterniha DoH 时 body-padding 要加的,不然一看返回 body 长度就知道这是在查 ECH |
@Fangliding 盲猜 ECH 查询比普通 A/AAAA 查询的响应长 50+ 字节,你用 WireShark 看下 |
I haven't read the code related to body-padding yet, |
padding的是请求 和返回的响应是什么没关系 还有HTTPS响应反而短一点点 |
@Fangliding DoH 的 body-padding 开了时,“it MUST pad the corresponding response”,我们讨论过 #4516 (comment) |
是这样的吗,我想着它随便发个公钥不比发几个 IPv4/v6 长吗, |
下面不是还有吗 padding到定长字节 响应长了的话padding的部分会自动缩减 所以跟响应长度没啥关系 哪怕响应是真长了点也还是返回那么多body |
@Fangliding 我的意思就是响应没 body-padding 的话,学 GFW 在外面用 WireShark 看应该能看出区别 |
都是468 这肯定不会出问题 人家的dns又不是ray里土制的A/AAAA特化 所有记录都是这个行为 |
|
@patterniha rebase 然后加上 body-padding,我晚点看一下 |
0063c04
to
cecd52e
Compare
cecd52e
to
b282921
Compare
new changes:
|
9f94030
to
2ede1c0
Compare
ready |
echSockopt
, add h2c
, fix fromMitM
, add padding headerechSockopt
, add h2c
, add padding, fix some issues
echSockopt
, add h2c
, add padding, fix some issuesechSockopt
, add h2c
, add padding, fix some issues
|
echSockopt
, add h2c
, add padding, fix some issuesechSockopt
and "h2c"; Use chrome-fingerprint and add padding; Fix some issues
echSockopt
and "h2c"; Use chrome-fingerprint and add padding; Fix some issuesechSockopt
; Use chrome-fingerprint and add padding; Fix some issues
echSockopt
; Use chrome-fingerprint and add padding; Fix some issuesechSockopt
and "h2c"; Use chrome-fingerprint and add padding; Fix some issues
echSockopt
and "h2c"; Use chrome-fingerprint and add padding; Fix some issuesechSockopt
; Fix some issues
|
本来说的是怕填进去的dns服务器不可用才加个force query 这给当bug修了。。 |
@patterniha 我忘了说,由于可能有访问不到 DNS 服务器的情况,任何查询失败都应视为失败,没 force-query 的话十分钟后再查 |
This comment was marked as outdated.
This comment was marked as outdated.
no need for "none", the cache can be use for 6 hours, so if a DOH fails for a moment, the connection will be made for up to 6 hours and try to update the key. also, ech-DNS is like ip-DNS, so if query fails, connection should not be made.(after 6 hours) |
没force-query也要失败 这不是和这里冲突么 |
@Fangliding 我又看了一下,因为他说应只缓存 emptyResponse,我的意思是没 force-query 时任何失败都应该十分钟后再查 总之 force-query 时必须查到再建立连接,没 force-query 时就是允许明文 SNI、十分钟后再查 |
currently we can't use: dialer, built-in-dns, socket-keepalive, happyeyeballs, ... for ech.
in fact, we couldn't set
sockopt
for ech, so i addechSockopt
.the format is exactly
streamSettings-sockopt
.add
h2c
for ech, so withsockopt-dialerProxy
that added in 1, we can use ech for ech-DOH, domain-fronting, and in general we can use our custom-tls.now ech-DOH use chrome-fingerprint
fromMitM
serverName should be set before callingApplyECH
add
X-Padding
header to ech-DOH///