It would've broken so many dpi based censorship systems in countries like Iran, Turkey, and Russia.
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.
Wouldn't surprise me at all to find there's a market where intelligence services can purchase lists of TOR users - for example...
As mentioned, that doesn't get around the VPN knowing where your traffic is going, and there are issues such as your VPN dropping and your system switching over as opposed to dropping the packets, compromising your privacy.
sshuttle 0.0.0.0/0 --dns -r $server
don't forget --dns ;)
With all due respect, 100% adoption of SNI seems like some sort of popular myth among certain web forum commenters.
Perhaps we should do a survey of all websites found on HN on a given day and publish it. I would bet that the majority do not require SNI.
Assuming one is using an SNI-enabled browser.
I dont use an SNI-enabled browser to make the first encrypted HTTP request.
In fact I didnt even say I was using a "browser". I said "https client".
For example, one can use an https client that has SNI disabled or which has no SNI code at all, or one can send any string as the servername in ClientHello.1 If the server responds with hostname not found, then retry using SNI and the desired hostname. IME, most TLS-enabled websites do not require SNI.
1
exec printf 'GET / HTTP/1.1\r\nHost: example.com\r\nConnection: close\r\n\r\n'|exec openssl s_client -tls1_2 -no_ssl2 -no_ssl3 -ign_eof -connect 93.184.216.34:443 -servername SNI_NOT_REQUIREDMost web servers will just fall back to the default virtual hosts SSL certificate if no SNI header is present in the clients request... They don't reply "hostname not found", or "nope, no such host", or anything similar...
"hostname not found" was meant to be a general term for failure due to not sending the correct servername when it is required, not a specific protocol error. I apologise for not being more precise. What happens with the non-SNI clients I use in the rare case when absence of correct servername is fatal is that the connection fails. (Most times a correct servername, let alone any servername, is not required1 and the connection succeeds. Thats the point of the original comment: in a majority of cases, its possible to get the page content without using SNI.)
1 As in the case of example.com, for example.
However, I use a local forward proxy for TLS-enabled websites. The proxy returns HTTP 503 error when the connection fails due to SNI. Thus, I do get a consistent "server response" when this happens, albeit not from the remote server.
That doesnt happen when I fetch https://example.com without sending a servername in ClientHello.
For the majority of TLS-enabled websites on the internet, that does not happen. I get the page content just fine witout sending a servername in ClientHello.
But I should send the servername in ClientHello anyway?
This reasoning I am too stupid to understand.
That is a reasonable consideration, but Google is very specific about how they use and retain data collected by Google Public DNS. Assuming they are not lying, I don't think it's a significant concern. (Admittedly, their policy is not as good as Cloudflare's "no IP logging" policy.)
https://developers.google.com/speed/public-dns/privacy
TL;DR: Logs with IP addresses are deleted within 48 hours; permanent logs keep city-level location data, but no personally identifiable information. "We don't correlate or combine information from our temporary or permanent logs with any personal information that you have provided Google for other services."
Hahahha, and then he said "Then switch ISPs", like we have more than one high speed choice where we live".
Due to laws designed for more broadband competition, I've got over 6 providers to choose from here in Germany.
I think it really comes down to your threat model though and what tradeoffs you're willing to accept for anonymity (e.g. captchas, performance, etc).
I think the sweet spot for CloudFlare's offering is if you're in a country or service provider that takes liberties in overriding DNS responses.
That’s assuming they can’t just get into your home network through zero days, which an individual has no practical defense against.
Then hope that said provider is reputable enough to be up to date on their security, and honest enough not to just cave under pressure.
Realistically the VPS solution fails simply because there is no obscuring of traffic. We all know that security through obscurity isn't real security. However if a VPN provider has 1,000 users using their IP block than any specific traffic is harder to isolate to one user. -- Presuming they are honest and not keeping logs.
Running your own VPS means that all traffic is owned by you.
As you've mentioned, if someone wants to track you through Tor, that's still potentially possible. But that's a completely different ballgame than "My ISP wants to track every last website I visit so they can pair that with my address/billing info to sell to advertisers". I don't think my ISP is going to go through all the hoops to find my Tor exit node, just so they can sell that to advertisers. Passive onlookers can be untrustworthy too.
The shades on my windows keep people from seeing me change, but if someone really wanted to see specifically me naked, they could probably enter my house and make the shades useless.
I still consider the shades useful.
Of course you have more options, but it's not TOR.
Edit: I mean TOR only figuratively.
The entire point of choosing a good VPN is to get the visible data off of your immediate ISP, since they know who you are, and into a more nebulous net, where others do not.
https://boingboing.net/2016/07/01/researchers-find-over-100-...
That would match to individual IP, or potentially an individual if you're logged in.
Your requests will go to the root dns servers, which then go the dns servers of the domains you request. But also it will cache responses locally (so if you make another request it won't even need to make an external request).
Yes your ISP can still see it but they can see all your traffic anyway.
Forward you DNS requests to servers using DNS with TLS encryption or with a VPN provider. That way the DNS requests can't be seen by your ISP.
Using a non-ISP DNS server isn't enough.
Your ISP knows way less about you if you avoid their DNS. And they are the only ones that know your legal name and billing address, usually.
Your ISP can see exactly which websites you're visiting regardless of how you do DNS, thanks to being able to see which IPs you're sending packets to, and thanks to SNI.
The only thing you get from adding some third party encrypted DNS service to the mix, is an additional party which can also see what websites you're visiting.