#吐槽
In reply to nevent1q…6ww2
_________________________
DoH, DoT 和 DoQ 都得经过 TLS 和 DNS Bootstrap 才能进行 DNS 解析, 这是个先有鸡还是先有蛋的问题. 我觉得 ECH 主要还是补上了这些加密 DNS 的最后一块拼图, 把加密 DNS 的的 SNI 也隐藏在了通用 SNI 下面. 不过就我个人来说, 加密 DNS 完全可以用 IP 证书, 这就直接没了 SNI 也不需要 DNS Bootstrap, 很适合小规模部署 DNS 代理的组织和个人(也不知道市场里的 IP 证书是否经济实惠). 现阶段几乎所有(包括积极跟进 ECH 的 AdGuard)的 DNS 客户端在查询这些加密 DNS 上游的时候都没有支持 ECH, 当然最主要的还是这些加密上游都没有支持并且用到并且核心开源库也都没支持.
#AdGuard 在 23 年给自己作为 HTTPS 中间人过滤这个角色加入了 ECH 客户端, 所以现在理论上 AdGuard 能给所有的加密连接过滤之后发出之前全部启用 ECH. 所以这也是个问题: 反病毒安全软件的 HTTPS 中间人过滤会直接破坏 HTTP 客户端(特别是浏览器)的原生 ECH, 如果安全软件不能在请求过滤之后发出本机之前重新恢复 ECH 那浏览器们一众实现的客户端侧 ECH 就失效了. 我也不知道 AdGuard 是在安全软件之前还是之后过滤加密流量, 越来越觉得 AdGuard 有点像个不能反病毒的安全软件了.
> https://forum.eset.com/topic/38340-web-access-protection-and-encrypted-client-hello-ech/
对于 ECH 的问题现阶段的问题还是一众浏览器们都只会在设置里面显式启用加密 DNS 之后才能启用 ECH, 这就意味着本地 DNS 代理和路由器下发的 DNS 服务器配置都实际对有这种强制要求 HTTPS 记录查询也加密的客户端无用. 所以如果不使用 AdGuard 这样的中间人, 就得给自己的本地网络回环下部署的 DNS 代理也上 SSL 证书, 然而这又撞上了自签证书的信任问题, 不过好在有 mkcert 这种工具包简化了自签本地证书并信任的流程.
简而言之, 现阶段的 Edge, Firefox 和 Chrome 主流浏览器都对 ECH 启用条件十分苛刻, 它们不允许用户在使用本地回环网络的 DNS 服务器的情况下启用, 即使它们本来的上游就是加密 DNS 也能完成 HTTPS 记录的中继. 而非浏览器应用的 HTTP 客户端更没有动力去支持 ECH.
> https://github.com/DNSCrypt/dnscrypt-proxy/wiki/Local-DoH#creating-your-own-certification
PS: AdGuard for Windows 现阶段依旧还在解决和带有 HTTPS 过滤的反病毒安全软件之间的兼容性问题.
via Nostr@cxplay
In reply to nevent1q…6ww2
_________________________
DoH, DoT 和 DoQ 都得经过 TLS 和 DNS Bootstrap 才能进行 DNS 解析, 这是个先有鸡还是先有蛋的问题. 我觉得 ECH 主要还是补上了这些加密 DNS 的最后一块拼图, 把加密 DNS 的的 SNI 也隐藏在了通用 SNI 下面. 不过就我个人来说, 加密 DNS 完全可以用 IP 证书, 这就直接没了 SNI 也不需要 DNS Bootstrap, 很适合小规模部署 DNS 代理的组织和个人(也不知道市场里的 IP 证书是否经济实惠). 现阶段几乎所有(包括积极跟进 ECH 的 AdGuard)的 DNS 客户端在查询这些加密 DNS 上游的时候都没有支持 ECH, 当然最主要的还是这些加密上游都没有支持并且用到并且核心开源库也都没支持.
#AdGuard 在 23 年给自己作为 HTTPS 中间人过滤这个角色加入了 ECH 客户端, 所以现在理论上 AdGuard 能给所有的加密连接过滤之后发出之前全部启用 ECH. 所以这也是个问题: 反病毒安全软件的 HTTPS 中间人过滤会直接破坏 HTTP 客户端(特别是浏览器)的原生 ECH, 如果安全软件不能在请求过滤之后发出本机之前重新恢复 ECH 那浏览器们一众实现的客户端侧 ECH 就失效了. 我也不知道 AdGuard 是在安全软件之前还是之后过滤加密流量, 越来越觉得 AdGuard 有点像个不能反病毒的安全软件了.
> https://forum.eset.com/topic/38340-web-access-protection-and-encrypted-client-hello-ech/
对于 ECH 的问题现阶段的问题还是一众浏览器们都只会在设置里面显式启用加密 DNS 之后才能启用 ECH, 这就意味着本地 DNS 代理和路由器下发的 DNS 服务器配置都实际对有这种强制要求 HTTPS 记录查询也加密的客户端无用. 所以如果不使用 AdGuard 这样的中间人, 就得给自己的本地网络回环下部署的 DNS 代理也上 SSL 证书, 然而这又撞上了自签证书的信任问题, 不过好在有 mkcert 这种工具包简化了自签本地证书并信任的流程.
简而言之, 现阶段的 Edge, Firefox 和 Chrome 主流浏览器都对 ECH 启用条件十分苛刻, 它们不允许用户在使用本地回环网络的 DNS 服务器的情况下启用, 即使它们本来的上游就是加密 DNS 也能完成 HTTPS 记录的中继. 而非浏览器应用的 HTTP 客户端更没有动力去支持 ECH.
> https://github.com/DNSCrypt/dnscrypt-proxy/wiki/Local-DoH#creating-your-own-certification
PS: AdGuard for Windows 现阶段依旧还在解决和带有 HTTPS 过滤的反病毒安全软件之间的兼容性问题.
via Nostr@cxplay