Hacker News
points by eqvinox 3 days ago | 0 comments
The point of running a local unbound is indeed to turn on DNSsec validation. After that, it's the domains' fault for not using DNSsec. But at least your own stuff won't be tampered with, because you use DNSsec on your own domains, right? Right?

:-(

Coincidentally, a bunch of free wifi stuff blocks the root key queries unbound does at startup, resulting in nothing working until you get those records in there somehow (e.g. load_cache).

[–] yjftsjthsd-h 3 days ago
I was under the impression that dnssec's entire value was rather controversial? I'm not a crypographer so I had to skim https://sockpuppet.org/blog/2015/01/15/against-dnssec/ and I still don't understand it, but if

> In fact, it does nothing for any of the “last mile” of DNS lookups: the link between software and DNS servers. It’s a server-to-server protocol.

is true, then I'm ... pretty unsold on its usefulness. Anyone wanna ELI5 whether that's untrue or anything's changed in the last decade?

[–] jeroenhd 3 days ago
DNSSEC as designed is pretty useless. It was designed in an era where computers could not be relied upon to do cryptographic validation of something like DNS records, so that duty was delegated to DNS servers like the ones ISPs ran, where records could be cached.

There are also potential downsides (like someone being able to enumerate your subdomains, if you care about such a thing) and it's often switched off by default on operating systems consumers use.

However, it's the only thing that validates DNS records at this moment. That alone makes it worth enabling, in my opinion. For many domain owners, you only need to tick the checkbox in your registrar's domain control pane. If you use a modern DNS server, it's also one config flag and maybe copy/pasting a handful of fields away.

I'll gladly turn off DNSSEC the moment we come up with something better. DoT/DoH doesn't solve the same problem and no real solutions seem to have been proposed. That said, modernisation efforts are still being done. Smaller keys and modern cryptography rather than the massive RSA ones for instance.

[–] alwillis 2 days ago
> DNSSEC as designed is pretty useless.

Another approach that we analysed in more detail is the distribution of the host key fingerprints via a special resource record. This removes any user interaction, potential human error, or presumed configuration of a user’s device because OpenSSH-client can query the DNS and do the comparison. It only requires the administrator to publish a host’s fingerprints as a set of SSHFP records, which can be securely obtained (DNSSEC). If the latter holds, MITM attacks are mitigated, and overall security is improved. [1]

[1]: "Improving SSH’s security with SSHFP DNS records" - https://blog.apnic.net/2022/12/02/improving-sshs-security-wi...

[–] tptacek 1 day ago
I have never been able to get my head around the idea that the DNS should have anything whatsoever to do with my SSH fleet. The DNS exists to solve the problem of introductions between unaffiliated network endpoints. To a first approximation nobody SSH's to a random server. You don't need any third-party PKI to get optimal SSH security!
[–] eqvinox 1 day ago
Same reason https://sshfp.github.io/sshfp.html exists, anchoring SSH fingerprints to the Web PKI: it's a convenient distribution method. Which helps, because people suck at distributing fingerprints. DNSsec and the Web PKI take an equivalent role here, I'd say.

Alternate solutions I'm aware of would be SSH certificates and querying LDAP. One of the issues with SSH certificates (AFAIK) is that they become rather cumbersome when administrative domains aren't cleanly separated, which is quite common once you're outside rigid and obvious organizational structures that reflect into sysadmin. LDAP has the same scoping issues, except even worse.

> You don't need any third-party PKI to get optimal SSH security!

This is a very binary view on an issue that is all about grimey, squishy user behavior. Sure, if users copy around SSH fingerprints, they don't need this. And either way they don't need it very often. But have you met users? The Web PKI goes to great lengths to avoid people shooting themselves in the foot (on both server and client side), why not look at some options for SSH?

[–] tptacek 1 day ago
You don't have to distribute fingerprints by hand. SSH already has a built-in PKI that handles this, and it's what most large fleet operators use (it's also the simplest way to connect an SSH fleet to an SSO IdP). SSH certificates, not WebPKI certificates.
[–] eqvinox 1 day ago
> You don't have to distribute fingerprints by hand. SSH already has a built-in PKI that handles this, and it's what most large fleet operators use (it's also the simplest way to connect an SSH fleet to an SSO IdP). SSH certificates, not WebPKI certificates.

I know. I'm discussing them in my post.

If you're replying on posts without reading them in their entirety, that certainly explains some of the communication issues we were having on another post (re. DANE) a while back. I don't think I'm interested in any further exchange with you.

[–] jeroenhd 2 days ago
SSHFPS is what I should be using in my homelab if it weren't for the awful split-DNS setup I have!

I personally prefer the theoretical advantages of SSH certificates, but those don't have CRL support (let alone an ACME alternative) as far as I know, so that's not exactly perfect either.

I want DNSSEC('s goals and ambitions) to succeed, but having a "trusted" ISP server that sets a "trust me bro" bit is the design flaw that kills the original design.

[–] eqvinox 2 days ago
There's a patch for openssh to use the ldns library and do its own DNSsec validation. A few distros apply it to their packages, though I'm not sure what the current status is. It never got accepted into openssh sadly.
[–] teddyh 2 days ago
[–] teddyh 1 day ago
Sometimes that rebuttal is summarily dismissed for being old, so here is a modern rebuttal, from a few weeks ago in fact: <https://circleid.com/posts/common-beliefs-about-dnssec-put-t...>
[–] eqvinox 1 day ago
Huh. Multiple European TLDs (dk cz se nl sk no ch) with >50% DNSsec signatures on domains. https://stats.dnssec-tools.org/#/?top=tlds&tld_tab=3

Honestly, I would've expected everything in that table to be an order of magnitude worse for DNSsec. Good to know!

(It's linked from the article you linked, transitively thanks for that link!)

[–] tptacek 1 day ago
This is the funniest DNSSEC thing I've read, by the way. Apparently the market failure of DNSSEC is because of... me?
[–] teddyh 1 day ago
I don’t know why you would find it funny; You brag about trying your best to do exactly that:

“[…] it's what the security team at one of the few large tech companies that actually have [DNSSEC] enabled told me when I asked why the hell they had it enabled.”

— <https://news.ycombinator.com/item?id=44957512>

[–] tptacek 1 day ago
Oh, I absolutely have it as a goal! It just shouldn't be possible for me to singlehandedly succeed at it.
[–] teddyh 23 hours ago
I agree. You have even stopped responding to rebuttals entirely.
[–] akerl_ 1 day ago
Somewhere out there, a Linux users group is acting out mock trials to charge you with murder of a crucial security standard.
[–] usr1106 3 days ago
I can't speak about the strength or weaknesses of the whole concept.

Out of curiosity I enabled DNSSEC checking beginning this year. I mostly noted nothing in my browsing. However, with 2 services I noted obscure problems that worked only partially. Some Jira plugins and Swedish railway SJ. I needed to excempt some of their domains from being checked to use their services. Of course you waste a couple of hours every time it happens because you don't think of DNSEC first when some web-based services behaves weirdly. There might be more requests not served to my browser, but I just never noticed or bothered to debug.

So not fit for general use. And even as an experienced developer it's not easy to understand why an exception would be needed. A bug in systemd? Incorrect data in DNS? A real attack?

Edit: I don't use standard DNS on port 53 at all. Blocked outgoing requests on that port. Everything DoH or DoT. Of course I need to trust those endpoints at least in repect to confidentiality. And most domains are unsigned. At least for those unsigned ones I need to just trust also in respect to integrity.

[–] jeroenhd 3 days ago
DNSSEC failures need to be louder. If websites that fucked up their DNSSEC would get the same error messages as websites that fucked up other parts of their security, people wouldn't be so eager to turn off security festures as workarounds.

Give SJ the option to turn off DNSSEC and their website will stay broken. Give people a "someone might be tampering with your connection" popup and they would start caring.

There are also other issues with DNSSEC that need working out, but I still believe it does much more good than it does bad. Leaving everything in the background with an easy-to-disable setting makes it next to useless.

[–] eqvinox 2 days ago
> DNSSEC failures need to be louder.

Full ACK. As a part of this, DNSsec validation needs to be as close to the client app as possible and reasonable; definitely never off-host. (Caches can do additional validation, but that makes the error reporting complicated.)

corollary: the AD bit should never be relied on on anything actually on the network. Maybe on localhost, but even there it's questionable in UX results.

[–] cowlevel 2 days ago
It's about time to question the whole off-host DNS resolver thing entirely. Fine if you want to have a cache, but the cache should return the whole record chain starting from the root in that case, so the client can validate it. Also fine to have an on-host cache that caches validation status.
[–] alwillis 2 days ago
> It’s a server-to-server protocol is true, then I'm ... pretty unsold on its usefulness.

You can run a DNSSEC-aware resolver like unbound on your laptop if you wanted to. It comes with a bunch of Linux distros.

[–] cowlevel 2 days ago
Can and should! Unbound is very easy to set up, if you know how to administer Linux systems at all. It also acts as a local cache and I noticed a small improvement to page loading time because of having the cache. Otherwise there is no local cache - every single call to getaddrinfo sends a network request to your configured DNS server.
[–] tptacek 1 day ago
People should just say what they mean here. DNSSEC is in fact a server-to-server protocol, and your response is "yes, you should just run your own servers".
[–] teddyh 1 day ago
Fact check: A resolver is not restricted to servers, and DNSSEC is not restricted to server-to-server traffic.
[–] tptacek 1 day ago
Ah, yes. What even is a "DNS server"? Clearly it's not the thing that shows up in your network configuration under "DNS server"; that, as you observe, is properly labeled "resolver".
[–] alwillis 2 days ago
Automatic Certificate Management Environment (ACME), RFC 8555, recommends certificate issuers use DNSSEC when using DNS to validate control of the DNS zone:

  As noted above, DNS forgery attacks against the ACME server can
  result in the server making incorrect decisions about domain control
  and thus mis-issuing certificates.  Servers SHOULD perform DNS
  queries over TCP, which provides better resistance to some forgery
  attacks than DNS over UDP.
    
    An ACME-based CA will often need to make DNS queries, e.g., to [1]
  validate control of DNS names.  Because the security of such
  validations ultimately depends on the authenticity of DNS data, every
  possible precaution should be taken to secure DNS queries done by the
  CA. Therefore, it is RECOMMENDED that ACME-based CAs make all DNS
  queries via DNSSEC-validating stub or recursive resolvers.  This
  provides additional protection to domains that choose to make use of
  DNSSEC.
  
  An ACME-based CA must only use a resolver if it trusts the resolver
  and every component of the network route by which it is accessed.
  Therefore, it is RECOMMENDED that ACME-based CAs operate their own
  DNSSEC-validating resolvers within their trusted network and use
  these resolvers both for CAA record lookups and all record lookups in
  furtherance of a challenge scheme (A, AAAA, TXT, etc.).
  
  
[1]: https://www.rfc-editor.org/info/rfc8555/#section-11.2
[–] tptacek 1 day ago
That's saying less than it appears to. What the RFC is saying is that CAs should be validating DNSSEC where it exists. It was written at a time when CAs didn't uniformly validate DNSSEC at all (because DNSSEC causes outages and pisses off customers). Even I think CAs should validate DNSSEC where it exists! It is not a general recommendation that everyone sign their zones, though.
[–] teddyh 2 days ago
Just yesterday, there was a talk by representatives from Ukraine and Germany about how and why they use DNSSEC:

<https://www.icann.org/en/engagement-calendar/details/icann-t...>

[–] tptacek 1 day ago
This is literally a presentation about Ukraine using its control over the DNS to manipulate queries from clients! Like, I like and support Ukraine and all, but this is the problem with top-down PKIs: states use them as policy instruments!
[–] teddyh 1 day ago
You are literally full of it. There are two presentations, where one only talks about the security benefits of DNSSEC and how Ukraine uses them to great advantage. From what I can tell, the other presentation also talks about that, but also talks about blocking threats at the resolver level. You know, like most public resolvers already (optionally) do. DNSSEC has nothing to do with this. DNSSEC is, instead, a defense against falsified information, should a user choose to use their own resolver instead of a centralized one.
[–] tptacek 1 day ago
Google [if-by-whiskey].
[–] teddyh 23 hours ago
Google [middlebrow dismissal]
[–] eqvinox 3 days ago
Note the linked post is from 2015. But also:

> domain-validated certificates remain insecure

...99% of the internet runs on DV certificates; that's what ACME & Let's Encrypt are at the end of the day.

(You might also note I didn't actually speak in favor of DNSsec, I'm just arguing that running unbound locally without having DNSsec validation enabled isn't particularly useful. I am, generally, in favor of rolling out DNSsec, but it certainly has its problems. It doesn't help against ISP tampering on unsecured domains, for example. DoT and DoH are better against that, if [and only if] you have a trustworthy cache to point them at.)

[–] denkmoon 3 days ago
DNSSEC adoption rate means that this would be insufficient to detect (let alone prevent) that type of tampering for most domains. The correct solution is identified the the first paragraph of the post, which is to use a tamper resistant transport to the dns server (eg DoT, or DoH if you like everything being wrapped in http)
[–] cowlevel 2 days ago
Which DNS server? Your client talks to a central cache (of your choice) which talks to the chain of servers for all relevant domains, most of which don't support DoT or DoH.
[–] Bender 2 days ago
Adoption at the TLD is high as it is expected of the TLD operators but the second level is very low. So .org itself is signed but .org second level domains are just below 5% adoption overall. .com second level is around 4.2%. .net second level are a little higher at around 5.2%. So most people's answer would be a solid no. HN audience may be some of that 5%.