Hi, Dennis, > On Oct 6, 2023, at 19:31, Dennis Jackson > <ietf=40dennis-jackson...@dmarc.ietf.org> wrote: > On 06/10/2023 10:45, Raghu Saxena wrote: >> Specifically, I am concerned about the "public name" field in the ECHConfig. >> For services such as cloudflare, they can "hide" everything behind a single >> domain (e.g. "cloudflare-ech.com"). However, for someone who just owns a >> single domain (e.g. "hub.com"), what would the "suggested value" be? >> >> Section 6.1.7 implies it should NOT be an IPv4 address. If I do not wish to >> leak the real domain, is it "acceptable" to use something like >> "fakedomain.com"? > The server needs to be able to answer a TLS connection for the ECH public > name or you risk an outage if the ECHConfigs get out of sync as then clients > will get a TLS error page if they can't get through to the public name.
I think the public name is needed, but should not be required! We do risk an outage if the ECHConfigs get out of sync. However, it's how the DNS works. Image we setup a wrong A/AAAA record accidentally, we have no choice but to wait this wrong record expires. It's an outage. For ECH, we need to rotate it periodically, so we don't want to the risk of outage. So ECH requires a real public name, which will be used to transfer the latest ECHConfigs when the client get the outdated conf. For platform like Cloudflare, this feature is critical, because they cannot afford the outage of their customers. But for indie web services/sites, it is not so big problem. Because this mechanism will introduce another huge risk! If ECH requires the public name, then every web site need to use to domain name, one for their brand, and the other for public name, both of which should be valid domain. If the use service from providers like Cloudfalre, they can only need one domain name, but still depends the providers public domain name. The public name is seldom used, but observed by the sensor, which makes it easy to block web site using ECH. So we should consider to make the public optional. If the server do not afford any outage causing by ECHConfig sync, they could setup the public name, and use it to sync the latest config, but they should take the risk of being blocked by the censor. If the server do not afford the risk of being blocked, they could just ignore the public name, and public the ECHConfigs using some pseudo-domain, which can be changed freely, but they should take the risk of outage caused by ECHConfigs out-sync. All in all, please make the public domain name optional in the specification. >> >> If the public_name leaks domain in anyway, I think it would be quite >> unfortunate, at least for bypassing DPI-blocks. From what I understand, the >> purpose of public_name is only if the server doesn't support ECH, but if a >> client retrieved an ECHConfig, why shouldn't the client just skip this >> field? I fear it will become a situation like the initial SNI extension - >> even when websites do not need it, browsers' TLS stacks send it anyway, >> causing leakage. >> >> For instance, in India, a popular website, let's call it "hub.com", is >> blocked via SNI. However, the website itself does NOT rely on SNI, It is >> possible to open a pure TLS connection to it via IP, it serves the TLS cert >> for "hub.com" so the handshake can be completed, and then the website will >> load as normal. I verified this by manually using "openssl s_client", >> WITHOUT SNI. But since Firefox/Chrome will always send SNI, the ISPs can >> block it. > > If the server can answer with the correct certificate without SNI, then it > must be the only site hosted at that IP. This means that the ISP can also > just block the IP without any collateral damage. The same thing is true if > ECH connections didn't expose an SNI at all, they'd stick out and could be > blocked for that reason. We can change IP freely, but it is hard, if not impossible, to change domain name. For indie web server, they can buy two domains, one for their brand, and the other for ECH. If the public name has been blocked, they have to buy another one. But if we allow the usage of pseudo-domain, this problem will disappear. > > I would describe ECH primarily as a technology for improving privacy. > Unfortunately, I don't think it's any kind of silver bullet for censorship > resistance. Improving privacy imply censorship resistance. Although censorship resistance is not the goal, we should not deliberately design *required* features which will make the censorship easy. BTW, if we public ECHConfig using a domain name which we do not own SSL certificate, it does not make thing worse. Because when the client needs to re-sync the ECHConfig, the SSL handshake will fail due to the invalid certificate. However, I prefer to make this behavior clear in the RFC. _______________________________________________ TLS mailing list TLS@ietf.org https://www.ietf.org/mailman/listinfo/tls