News for hackers. Stuff that matters.
Re:Improving DNS Privacy in Firefox by gnode on Friday June 01, 2018 @07:41AM (#17204382)
There seems to be little point of doing this, in my opinion, when SNI doesn't secure the hostname.
Re:Improving DNS Privacy in Firefox by st3fan on Friday June 01, 2018 @08:20AM (#17204584)
You have to start somewhere. Security is the sum of all parts. This is a small part, but it may have a big impact already.

I'm sure SNI is next on the list, it will just take a bit longer. Until then, let's harden other parts of the infrastructure.

Re:Improving DNS Privacy in Firefox by tialaramex on Friday June 01, 2018 @08:43AM (#17204748)
Encrypted SNI is very hard. The TLS working group agreed a problem statement, seeing out what should be achieved, but they haven't found any viable way forward on achieving that.

If I'm in a city square and I want to tell Bob something, but I refuse to let anybody know that I want to communicate with Bob, it's hard to see what I can do. Bob has no way to know I'm even trying to contact him, so he can't help.

Re:Improving DNS Privacy in Firefox by gnode on Friday June 01, 2018 @09:38AM (#17205158)
> but I refuse to let anybody know that I want to communicate with Bob

That's not the problem though. You're not trying to stop an eavesdropper knowing you're communicating with a particular server, but rather which hostname you're talking to them as.

To extend the Bob analogy; you're not trying to hide that you're communicating with Bob, but that you're speaking to each other as members of Fight Club.

It's certainly not impossible, although overcoming issues of scaling or increased handshake round trips is a difficulty.

Re:Improving DNS Privacy in Firefox by tialaramex on Friday June 01, 2018 @01:27PM (#17207730)
You say "difficulty", the evidence seems to suggest impossibility. I am 100% certain that if you have an actual plan for how to do this without an extra round trip the TLS WG wants to hear about it (but please read the draft with the problem statement first so that you don't embarrass yourself and propose something that doesn't actually solve the problem)

In order to be sure we're talking to Bob, so that it's OK if Bob knows we want his Fight Club certificate, I think we have to incur an extra round trip while we obtain the proof he's Bob and send back the request for Fight Club.

If we try to skip that step, Mallory simply interposes, we send our message to Mallory, believing she is Bob, and she reads it to determine we want Fight Club, we are undone. So we have to wait until Bob proves his identity, and only then reveal that we wanted Fight Club.

Re:Improving DNS Privacy in Firefox by gnode on Friday June 01, 2018 @02:50PM (#17208722)
Forgive me if there's some flaw I've overlooked in this approach, but couldn't you use DNS to aid in this? I.e. add Bob's public key to the DNS for fight.club which you get for free in round trips, as you're resolving the A & AAAA records anyway. You then encrypt the SNI asking for fight.club (along with a random nonce) with Bob's pubkey.

Of course, this approach would require the DNS record is authenticated, so DNSSEC is a must, added to which the DNS resolution must be encrypted, so DNS over HTTPS, DNSCurve, etc.

Re:Improving DNS Privacy in Firefox by tialaramex on Saturday June 02, 2018 @01:58PM (#17215600)
After some thought I agree with you that this can work, if you have encrypted DNS and DNSSEC in play. I am of course not a world-renowned expert so maybe we both overlooked something.

Two small problems I will mention, one of which I'm sure you already know: First, encrypted DNS and DNSSEC are not yet widely deployed, so this isn't the silver bullet many people expected of Encrypted SNI.

Second, for an endpoint which has many unrelated names and certificates - which is the case where encrypted SNI is gaining us a clear security benefit given our packets must have a plaintext IP destination - now they need to try every possible private key to see if they can open our encrypted SNI. This might be a very considerable burden.

Re:Improving DNS Privacy in Firefox by gnode on Monday June 04, 2018 @07:08AM (#17226623)
> now they need to try every possible private key to see if they can open our encrypted SNI.

The idea was to have a single common introductory keypair which all tenants publish to their DNS, in order to encrypt the SNI. That way there is no need to try multiple private keys.

The lack of DNSSEC deployment is an issue, although there's nothing to stop such schemes being employed on an opportunistic basis. However, when DNSSEC is available for a domain, the scheme should be enforced to prevent a MITM attack.

Re:Improving DNS Privacy in Firefox by zzzcpan on Friday June 01, 2018 @09:21AM (#17205012)
> If I'm in a city square and I want to tell Bob something, but I refuse to let anybody know that I want to communicate with Bob, it's hard to see what I can do

You can tell a few people near you that "someone" wants to tell something to Bob and an answer from Bob. They tell people near them and so on, until it reaches Bob. He then answers and tells people near him, they tell those who told them and so on, until the answer is delivered back to you. And since no one can hear what people tell each other, no one can assume that "someone" is you and not someone else talking to you in secrecy, many connections away from you.

Think overlay peer-to-peer networks.

But the minimum viable threat model is ISP appliances that do classification and identification of traffic, both passively and actively, like trying to probe for protocols and hostnames. If you are not targeting them, you are effectively doing nothing, but pretend privacy PR. Which is the case with Cloudflare's DNS.

Re:Improving DNS Privacy in Firefox by falcolas on Friday June 01, 2018 @09:34AM (#17205120)
You yell "Hey, Zanizabo, call Fylnatis" at the top of your lungs. Zanizabo being a phrase encrypted such that only Bob knows you are talking to him, and Fylnatis is your similarly encrypted contact information.

Sure, scaling is harder, but it's not impossible.

Re:Improving DNS Privacy in Firefox by tialaramex on Friday June 01, 2018 @01:51PM (#17208033)
For this to work you unsolve the key-sharing problem. Everybody who will ever want to communicate with anybody must agree in advance shared secrets with every such party and then retain them indefinitely. You assert the resulting scaling "is harder, but it's not impossible" and I'm sure that by some technical definition of "impossible" this statement is even true, but in practical terms it's never going get done which is why such systems are used (if at all) only by secret agents.

If you decide well that's OK, we can do something simpler - everybody will have an infinite set of aliases like "Zanizabo" or "Fylnatis" but they won't be one-to-one shared secrets, alas Mallory simply hears you say "Zanizabo" and she says "Hey, Zanizabo, call Oxymoron" (Oxymoron is an alias Mallory has chosen for this purpose) and soon discovers that Bob answers so now she knows who you wanted to talk to.

Re:Improving DNS Privacy in Firefox by falcolas on Tuesday June 05, 2018 @01:17PM (#17239829)
Public Private key sharing manages the key sharing problem pretty thoroughly. All I have to do is look up the published public key before yelling.
Re:Improving DNS Privacy in Firefox by Lennie on Friday June 01, 2018 @11:47AM (#17206454)
Well, Diffie-Hellman Key Exchange does something similar.

Create a key out of nowhere for 2 parties to boot strap communicate safely. (obviously Diffie-Hellman doesn't solve all problems like knowing who you are actually talking to)

Re:Improving DNS Privacy in Firefox by QasimK on Friday June 01, 2018 @08:39AM (#17204714)
I was curious about TLS1.3’s attempt to encrypt SNI, and found that it is genuinely a hard problem. The best solution seemed to be to use a proxy/fronting service, but that isn’t the ideal solution.
Re:Improving DNS Privacy in Firefox by jedisct1 on Friday June 01, 2018 @08:25AM (#17204619)
Encrypted SNI for TLS 1.3 is being worked on: https://github.com/ekr/draft-rescorla-tls-esni/blob/master/d...
Re:Improving DNS Privacy in Firefox by arghwhat on Friday June 01, 2018 @08:16AM (#17204561)
You can't wiretap the DNS and obtain data about all site visits from there. That's really quite nice.

It still means that your ISP or a wiretap on your own internet pipe can check your browsing activity by monitoring SNI's, but then again, they can also figure that out for a lot of sites by just checking the IP.

Then you could argue that all sites should use CDNs to hide this, but then you open the argument of whether the internet should be centralized or decentralized.

Encrypted SNI would be nice, but are tricky (wouldn't work well in multi-tenant setups), and those that can sniff the SNI probably know where you were going anyway.

Re:Improving DNS Privacy in Firefox by tialaramex on Friday June 01, 2018 @08:21AM (#17204589)
SNI doesn't encrypt the hostname but in TLS 1.3 it does secure it against middleboxes. If a MitM tries to alter the SNI then the connection fails.

TLS 1.3 also encrypts the server certificate. So if you want to send bonus SNI but get back real certificates that's just a matter between client and server.

The use case for Encrypted SNI remains sketchy. If I am the secret police of some authoritarian nation, who would block diebartdie.example why wouldn't I instead block the IP addresses of servers offering diebartdie.example? Only because it causes collateral damage? But why do I care, teach them not to associate with my enemies.

Re:Improving DNS Privacy in Firefox by gnode on Friday June 01, 2018 @09:49AM (#17205255)
> Only because it causes collateral damage? But why do I care

Because the collateral damage may not be worth it. The website a handful of dissidents use may not be worth blocking everything running on Cloudflare for all your citizens, for instance.

Re:Improving DNS Privacy in Firefox by zzzcpan on Friday June 01, 2018 @07:54AM (#17204448)
Agreed, SNI and DNS need to be fixed together, not separately. And definitely without centralized services, like Cloudflare. Otherwise why not just go all the way with centralization and provide secure proxy for everyone in the browser.
Re:Improving DNS Privacy in Firefox by phicoh on Friday June 01, 2018 @08:08AM (#17204520)
They are completely independent protocols, with their own issues in this area.

For the DNS, the specification for DNS over TLS is almost trivial. DNS over HTTPS is a bit more tricky because their are more possibilities, interactions with HTTPS, etc. But still not very hard from a protocol point of view.

Operationally, DNS over TLS/HTTPS is mostly unknown. So it will take quite a bit of time before it is well know how to actually run that as a service at scale.

Encrypting the SNI in TLS is mostly the other way around. Fixing that has significant impact on the protocol.

There is no point in making very complex changes in TLS, which is already a tricky protocol without the DNS community committing to provide DNS over TLS/HTTPS at scale.

At the same time, securing traffic between a DNS stub resolver and the recursive resolver prevents are lot of middle box issues (but also creates a completely new set of issues). So it is worth deploying the even if TLS still leaks the SNI.

Re:Improving DNS Privacy in Firefox by zzzcpan on Friday June 01, 2018 @09:28AM (#17205056)
They cannot be independent if actual privacy is concerned. At least sharing a threat model that touches both layers.
Re:Improving DNS Privacy in Firefox by phicoh on Friday June 01, 2018 @09:41AM (#17205185)
They are mostly independent. Your privacy loss is by and large the sum (or max) of the privacy loss caused by DNS and TLS individually.

For TLS, the threat model is relatively simple: only an on path attacker has access to a plaintext SNI. In the context of route hijacks, 'on path' is not as simple as it sounds, but route hijacks are relatively rare.

For DNS the situation is much more complex. You have to consider not only traffic between stub resolver and recursive resolver, but also between recursive resolver and the various auth. resolvers.

At the end of the day, you need to consider all places where information is leaked and whether you want to do something about that or not. And in that sense DNS is independent from TLS.

Re:Improving DNS Privacy in Firefox by gnode on Friday June 01, 2018 @09:55AM (#17205319)
Ironically, some amount of centralisation can improve privacy. Security is about confusion and diffusion; to get lost in a crowd you need to not be differentiated, and to not be the whole crowd. Encrypted SNI would mean ISPs could tell you were contacting Cloudflare servers, but not which of the many hosted websites you were requesting (assuming you also plug the DNS privacy gap too).
Re:Improving DNS Privacy in Firefox by LudoA on Friday June 01, 2018 @10:08AM (#17205438)
Doesn't DNScrypt (DNS over HTTPS) fix this issue?