Thanks & very, very good luck!
The domain is there in the certificate itself. There are, of course, some (or maybe many, I don't have statistics) certificates for multiple domains (wildcard and alt. name), but still.
With TLS 1.3, the certificate is in the encrypted portion of the handshake.
The attacker can't trivially continue the handshake beyond that point but that might give enough info to log the attempt and terminate the connection.
You could have a server listen on a subnet and clients randomizing its target IP.
I cannot imagine exposing the IPv6 IPs of single racks: it makes the whole "cloud" thing fall apart.
They're not routable.
That allows you to have routing tables that don't include every single host on the internet. This is what allows efficient routing to happen.
That means you can't use sni to route your request to a different server.
It is if that’s all you’re trusting, but you get to check the validity of the cert, so someone could MITM a TLS 1.3, but it wouldn’t do them much good as all they would get is a request for a certificate, then the normal TLS certification steps must proceed. Without the certificate private key the rest of the handshake would fail.
[1]: https://www.bamsoftware.com/papers/fronting/
[2]: https://tools.ietf.org/html/draft-bishop-httpbis-http2-addit...
Could the browser send a symmetric key encrypted in the public key of the target website, as part of the initial challenge?
Still, encrypting SNI hides quite some information (were you searching, watching youtube, reading blogger, was it image search, maps...?)
Besides, even if such extension had existed it would've been easy to write X in TLS header and Y in the HTTP payload to circumvent the ban, like the domain fronting[1] trick currently being used by e.g. Signal.
It would've broken so many dpi based censorship systems in countries like Iran, Turkey, and Russia.