If I can assume Bob has Alice's public key (and that DNS was gold and whatever; i.e. the same axiom ESNI has), then:
- DNS lookup for _esni.domain CNAME _esni.cloudflare.net,
- client connect to _esni.cloudflare.net via HTTPS and negotiate TLS with SNI rejected
- HTTP Host header contains desired target
Servers can trivially support the above "new" protocol (chances are they already do), no changes to DNS clients libraries or servers, and clients can support the new "encrypted SNI" by using OpenSSL APIs that already exist. GFW can't do anything unless cloudflare give them the key for _esni.cloudflare.net.
Everyone wins except the nerds who really wanted to make a new protocol. Oh and they need to walk back this stupid shit:
https://support.cloudflare.com/hc/en-us/articles/36002977947...