I don’t know any good Debian package creation tutorials. Lots of online tutorials focus on compiled code which is a lot harder to get right than shipping shell scripts / configuration files which Whonix is doing.
Building documentation:
And how the file placement looks like can be inferred from many Whonix packages. List:
Why bother with encrypted DNS at all? Encrypting DNS queries doesn’t actually add any real privacy or security benefits.
Security:
When using HTTPS and unencrypted DNS, you still cannot be MITM’ed. My browser expects a valid TLS certificate for the website I’m visiting regardless of what the DNS query gave me.
When not using HTTPS and using encrypted DNS, you can still be MITM’ed. The attacker doesn’t need to mess with DNS.
Privacy:
Encrypted DNS alone doesn’t hide the domain names you visit. That can still be gotten from SNI or the IP address.
If anything, this will worsen security by increasing attack surface and by taking away focus from other, more important issues.
The only reason it has been pushed so hard in other projects is for marketing purposes.
It’s not only about encrypted DNS. More important goal of this ticket is to provide DNSSEC (authenticated DNS). Many ISP provided DNS servers nowadays still do not offer DNSSEC. With an DNS-enhancement opt-in package users could get an option to easily enable system wide DNSSEC. DNS being encrypted on top of that since for example by using DNSCrypt is only a bonus on top.
SNI: true but that may in the future no longer be the case thanks to ESNI (encrypted SNI)? Reference:
IP: When behind cloudflare (or similar) that might be no longer applicable too? Would be ironic. Shared hosting might then be a privacy advantage.
Indeed.
Depends. On first visit of the website could be victim to sslstrip.
sslstrip can be prevented if the website signed up to be added to the HSTS preload list.
Even if using HTTPS and encrypted DNS there could still be MITM attempts. In absence of 1) (HSTS preload) and 2) (CAA policy) there are still risks.
Right. My biggest worry is DoH centralizes DNS traffic at a few DoH resolvers. Increases centralization. If Firefox/Chrome enable that by default, and then DoH resolvers start with censorship, effectively fewer users can get access to information. Yes, there would be options to circumvent this and some would succeed but the net effect is that fewer people will have access. Censorship doesn’t become totally useless just because it’s not 100% efficient.
However, DNS-over-HTTPS isn’t what was previously implemented in this ticket which was was DNSCrypt instead.
If DNS-over-HTTPS in Firefox/Chrome gets enabled by default then whatever this opt-in package would do would be much less effective. It would then be for system traffic except from usual major sources of traffic, the browsers.
True, eSNI would fix that but it’s not really used currently.
Maybe, although it’d be circumstantial and even then, there is still OCSP. There are probably other things that I haven’t thought of that leak this too. Would be good to do some of our own testing.
I need to ask in the CF or FF forum/chat to see if they have or working on solution to that… ← (no need to ask as the ocsp stapling will be the answer)
Looks good. What about DNSSEC?
Some domains support it. Other’s don’t. Therefore probably nobody is setting their browsers or programs to only accept authenticated DNS replies.
DNSSEC seems more useful in theory. Under the assumption that DNSSEC cannot be stripped similar to sslstrip… [1] [2]
DNSSEC can transmit information signed/authenticated information. (DNSSEC root trust key… [3]) Some such information can be potentially very worthwhile.
CAA policy is similar to CA pinning. Unfortunately, CAA policy is only consumed by CA authorities to check if they are allowed to issue a certificate for a website. A malicious/hacked CA might ignore it. But then there is nowadays certificate transparency logs so such CA would be spotted and expelled. I recognize that doesn’t help the victims of successful MITM in case of a compromised CA.
Unfortunately browsers do not check CAA policy from DNS. [4]
DANE TLSA [5] [6]
In short: use DNS (authenticated by DNSSEC) to authenticate the TLS certificate.
Not an option for browsers yet, or ever(?) but perhaps good for mail servers? Didn’t investigate that.
Other seemingly less important DNS entries such as SPF, DKIM, DMARC.
Can browsers such as Firefox, Chrome, Tor Browser verify DNSSSEC and can these be DNSSEC striped in their current default configuration? If yes, are fixes planned? I mean, if a domain was DNSSEC signed and the signature was stripped, would these browsers reject the connection?