DNS-over-TLS (RFC7858) #536

Closed
spacekitteh opened this Issue Dec 18, 2016 · 13 comments

Comments

Projects
None yet
3 participants
@spacekitteh

spacekitteh commented Dec 18, 2016

RFC7858

From my limited understanding, Bionic appears to implement Android's DNS lookup mechanism. Thus it must be investigated if this is even possible without separating out the libresolv-ish parts from libc in order to link to a TLS lib.

Here seems to be the meat of the implementation.

Some items of interest:

Related upstream issue/feature request

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Dec 18, 2016

Contributor

It definitely shouldn't involve code in the kernel.

Contributor

thestinger commented Dec 18, 2016

It definitely shouldn't involve code in the kernel.

@spacekitteh

This comment has been minimized.

Show comment Hide comment
@spacekitteh

spacekitteh Dec 19, 2016

Indeed, it is merely an example of a complete-ish implementation at a low level. Do the external deps use Bionic for their libc as well?

Indeed, it is merely an example of a complete-ish implementation at a low level. Do the external deps use Bionic for their libc as well?

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Dec 19, 2016

Contributor

Everything Android uses Bionic. If you wanted to bundle BoringSSL into Bionic you could.

Contributor

thestinger commented Dec 19, 2016

Everything Android uses Bionic. If you wanted to bundle BoringSSL into Bionic you could.

@spacekitteh

This comment has been minimized.

Show comment Hide comment
@spacekitteh

spacekitteh Dec 19, 2016

As a workaround in the meantime, perhaps including a simple dns-over-tls-supporting resolver app and forward all requests to it might be acceptable?

As a workaround in the meantime, perhaps including a simple dns-over-tls-supporting resolver app and forward all requests to it might be acceptable?

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Dec 20, 2016

Contributor

It can likely just be done in netd because DNS requests are likely already proxied to netd from everywhere else by default and preventing apps from shooting themselves in the foot by going out of the way to change that isn't necessary.

Contributor

thestinger commented Dec 20, 2016

It can likely just be done in netd because DNS requests are likely already proxied to netd from everywhere else by default and preventing apps from shooting themselves in the foot by going out of the way to change that isn't necessary.

@stensonb

This comment has been minimized.

Show comment Hide comment
@stensonb

stensonb Jan 4, 2017

fair warning: I know nothing about android development or the android ecosystem...

why not use dnscrypt-proxy, and a local dns cache?

stensonb commented Jan 4, 2017

fair warning: I know nothing about android development or the android ecosystem...

why not use dnscrypt-proxy, and a local dns cache?

@spacekitteh

This comment has been minimized.

Show comment Hide comment
@spacekitteh

spacekitteh Jan 4, 2017

@thestinger thestinger changed the title from Investigate DNS-over-TLS (RFC7858) to DNS-over-TLS (RFC7858) Jun 11, 2017

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Jun 11, 2017

Contributor

They might be interested in this upstream which would be a way of getting it done, not sure. Since DNS queries are usually followed by connecting to the resolved IP, it won't hide much other than hosts with multiple / many hostnames and in terms of authentication DNS should be untrusted either way. Authentication might be more useful in terms of mitigating denial of service a compromised DNS server, by falling back to a different server if authentication fails, but it's a marginal benefit.

Contributor

thestinger commented Jun 11, 2017

They might be interested in this upstream which would be a way of getting it done, not sure. Since DNS queries are usually followed by connecting to the resolved IP, it won't hide much other than hosts with multiple / many hostnames and in terms of authentication DNS should be untrusted either way. Authentication might be more useful in terms of mitigating denial of service a compromised DNS server, by falling back to a different server if authentication fails, but it's a marginal benefit.

@spacekitteh

This comment has been minimized.

Show comment Hide comment
@spacekitteh

spacekitteh Jun 12, 2017

It is important for anonymity, like when using VPNs and Tor, for example.

It is important for anonymity, like when using VPNs and Tor, for example.

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Jun 12, 2017

Contributor

The DNS should be going over the VPN / Tor already.

Contributor

thestinger commented Jun 12, 2017

The DNS should be going over the VPN / Tor already.

@spacekitteh

This comment has been minimized.

Show comment Hide comment
@spacekitteh

spacekitteh Jun 12, 2017

True enough

True enough

@thestinger

This comment has been minimized.

Show comment Hide comment
@thestinger

thestinger Oct 23, 2017

Contributor

This is being implemented upstream so we'll just wait for it. It's a very low priority for us since the IP addresses are still leaked and TLS SNI leaks the domain being requested so there's not much really being hidden.

Contributor

thestinger commented Oct 23, 2017

This is being implemented upstream so we'll just wait for it. It's a very low priority for us since the IP addresses are still leaked and TLS SNI leaks the domain being requested so there's not much really being hidden.

@thestinger thestinger closed this Oct 23, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment