DISQUS

Matasano Chargen: A Case Against DNSSEC, Count 1: Solves A Non-Problem

  • LonerVamp · 2 years ago
    I don't consider DNS insecure as a protocol only because I don't buy into the assumption that DNS must be secure.

    Does that mean I think it is perfect and secure? Of course not, but it does the job it should do. I'm not sympathetic to the view that DNS needs bloating, necessarily...

    I will say I don't like the dismissal of DoS as an attack against DNSSEC. If attackers can just bring it down, all that other security seems pretty useless.
  • Thomas Ptacek · 2 years ago
    To be fair, the dirty secret is that for the most part, cryptographically secure, highly transactional protocols like DNSSEC and HTTPS are all susceptable to DOS.

    This is like, 90% of the motivation behind Bernstein's work on high-speed crypto and, in particular, high-speed signing schemes.

    Having spent over 4 years at Arbor Networks, half of that in charge of their DoS product, which is deployed everywhere, I'm suspicious of any argument that says that DOS attacks are unimporant. The amount of effort people put into DOS is startling. And there's easy money in it: you just extort protection money out of casinos.

    But just because they are important doesn't mean they need to be solved inside the protocol.

    On the other hand, when a protocol's sole obvious benefit is being in a position to prevent DoS attacks, punting on DoS is a bit weird. That's a caricature of an argument though, presuming that you, like me, believe that all the rest of the "problems" DNSSEC "solves" are kind of silly.
  • Ryan Russell · 2 years ago
    Couple things:

    Just to clarify, you're not arguing against the possible utility of unspoofable name lookups, right? Just that DNSSEC isn't it?

    Or are you saying there's no point at all, and are concerned about the time wasted working on it?

    Because I think I'd like to have the threat of name lookup spoofing removed to whatever degree possible, as an ideal.

    Second, I'm trying to puzzle out whether you may be high, regarding more DNS servers in the world than SSH keys.

    Things I can think of that are DNS Servers:
    -Intentional, dedicated DNS servers
    -Windows AD/DHCP/WINS boxen
    -$40 linksys/dlink home routers?
    -(Potentially) every *nix box and Windows Server box?

    I'm reluctant to count much from the last bullet. While I'm sure most *nixes ship with DNS Server(s), I'm guessing they aren't on out of the box.

    Other guesses are on the order of 9 million?
    http://www.domaininformer.com/news/press/061009...

    Now, SSH. I can't seem to find a simple OS market share link with just numbers instead of percentages, but I see a few that have "unix" looking in the neighborhood of 15-20% of the machines, and that's out of some few hundreds of millions of machines?

    So, I dunno, 50 millions *nix boxes in the world?

    I think a big chunk of those will be running SSH. I think most SSH Server installs will be generating the Server keys the first time you boot. Plus some possible multiples for user-side keys.

    I believe some portion of those $40 routers also do SSH. While heisenburging, I'm perfectly willing to count the number of Windows boxes running SSH servers as zero.

    So, back of my envelope says you're high.
  • Thomas Ptacek · 2 years ago
    I may be high.
  • Thomas Ptacek · 2 years ago
    Oh and, I'm saying, "don't waste time trying to make DNS reliable".
  • Thomas Ptacek · 2 years ago
    If I got to be king of the Internet, like Paul Mockapetris, Jim Reid, and Karl Denninger, I would issue a decree saying that all XSRF problems needed to be solved on every site in the 90th percentile on Alexa before anyone was allowed to discuss DNS security.
  • Johnathan Nightingale · 2 years ago
    I need to know, NEED to know, whether you and I both arrived at a blue passport dude for CAs independently within a month of each other.

    http://blog.johnath.com/index.php/2007/03/21/re...

    (And yes, of course neither of us invented the idea, nor am I implying we're particularly brilliant for invoking it, but nevertheless it sort of caught my eye.)
  • Thomas Ptacek · 2 years ago
    Easy. I diagram with a set of network widgety things I drew myself, and the AIGA common pictograms (which you can download as a series of EPS documents). Until Illustrator comes out with a universal binary, I'm stuck with OmniGraffle, and the AIGA pictograms are a stencil in our OmniGraffle install.

    So, you look at the stencil for things that could apply to "security" and you get, uh, "key", "message", "deny sign", "alice and bob", "arrows", and "passport guy". I thought about using "ticket girl" for DNS but that seemed demeaning.

    All joking and self-importance aside: the AIGA pictograms RULE, and they're open-source (really, Alan!). You can get 100x better diagrams tomorrow by:

    1. Using black and white and one or two accent colors.

    2. Never using single-pixel strokes for borders.

    3. Drawing a guide box to represent a plane for all your little icons to live on.

    4. Using the AIGA symbols instead of trying to draw your own stick figures.

    5. Picking one typeface and sticking with it.

    You too can be a bad, wannabe graphic artist!
  • Thomas Ptacek · 2 years ago
    Demeaning to ticket girl I mean.
  • Thomas Ptacek · 2 years ago
    BTW, Ryan, I said SSH keys, meaning to imply, "people who have gone through the trouble of generating, encrypting, and saving their own personal SSH keys". The numbers may work out better that way.
  • Ryan Russell · 2 years ago
    Private key auth, then? Yes, I would agree there are more DNS server than that. I don't know if that supports your point as well, though. ;) You know I'm just poking at you for fun's sake, and not as an actual argument against your thesis, right?
  • Thomas Ptacek · 2 years ago
    That's too bad. I was kind of hoping that you were. I don't think I'll keep the smart IETF type's attention, and the dumb ones are just going to say, "well, how many RFCs have YOU written?"

    Somebody devil's advocate!
  • trevp · 2 years ago
    Hi Tom,

    I think you overlook one potential use of a secure DNS. You say -

    "Securing the DNS protects DNS lookups. But Alice and Bob still need another layer of security."

    You mention that web-of-trust (PGP), CAs (PKI), or key continuity (SSH) all can bootstrap this other layer of security.

    But so could a secure DNS! Consider the potential for putting, say, key fingerprints in DNS to authenticate MTAs and webservers. Or policy information indicating "all emails from this domain are signed".

    I think your argument against this would be that key-management external to DNS is superior due to the end-to-end argument - it's better to have specialized third parties "whose only job is to protect cryptographic secrets" than to burden DNS with this.

    However, when you really look at it, whether the function of providing authenticated (domain-name, public-key) mappings is best provided in DNS or by external 3rd parties is not immediately clear.

    For example, how are these third-parties going to check that someone really is the correct owner of "example.com" before issuing them a certificate? By checking with the domain name infrastructure? In that case, the domain name infrastructure already is the authoritative source for this information, and already has the capability of delivering it efficiently to requestors. So introducing 3rd-party CAs is introducing an additional point of control, security risk, and protocol complexity, and it's not clear that the gains of, say, more centralized private-key security, compensate for that.

    Anyways, certainly CAs can be useful in certifying attributes besides domain-name - e.g., "the holder of this key is a trusted financial institution" or somesuch. And it may be that these other bindings are more important than (domain-name, public-key) bindings.

    However, if authenticated (domain-name, public-key) bindings do have value (and I think they do), then it would seem to me that a secure DNS is a fairly elegant way of providing this. (though I'm not familiar with DNSSEC enough to know whether it's the best way to provide this).

    My 2c, anyways... Cheers.
  • Ryan Russell · 2 years ago
    Well, I'm not going to discount your position based only on the number of DNS servers vs. keys running around, that's what I was poking fun at.

    I really would like to see secure name resolution, I don't see any good reason for that problem to not be solved eventually.

    I know basically nothing about DNSSEC, so I'm happy to take your word for it that it's a mess. I don't know much about IPSEC either, but it didn't take me long as a VPN administrator to not like it.

    I also have little faith that a big standards committee is going to come up with the "right" solution. So, I can't lobby that the IETF whatever needs to try again. It's like thinking there should be a law, and not trusting the lawmakers to get it right. That's why a lot of people are afraid of Net Neutrality.

    And finally, I'd have to agree in many ways that this isn't the highest priority in the security world. I didn't know there was a limit to the number of efforts, I thought they kind of went in parallel. But yes, there's a limit on our ability to consume new standards.

    So I don't have any good basis for arguing with you. Sorry.

    Next time, though.
  • Chris Pepper · 2 years ago
    Nice explanation. Unfortunately ssh isn't really that secure. In at leaset 90% of cases, initial ssh connection goes through on the blind assumption that the server isn't already cracked. I've never seen someone actually verify a hostkey (although you can do it through DNS, which is good for organizations more paranoid or organized than us).

    Also, the DNS MitM protection assumes that people are somewhere on the Internet, and can subvert DNS, but cannot subvert sshd or the server OS, in which case they can steal the unencrypted hostkeys and impersonate all they want, or simply eavesdrop without affecting the client-server communicatons at all.
  • Thomas Ptacek · 2 years ago
    Trevor has lucidly stated probably the most common case I see made for DNSSEC, which is that once you have DNSSEC, you can build other security applications on top of it. DKIM seems like an example of a practical proposal like this.

    Trevor is totally, 100% correct.

    I simply propose then that we evaluate the -SEC seperately from the DNS-: create a totally seperate hierarchy, run the protocol on different ports, get it the hell out of BIND, and use it solely as a building block. But leave the DNS hostname resolution system alone, because it works well enough now.

    Trevor, I have 3 more detailed posts coming on this, and I'd love to see if the rest of my arguments influence you. =)
  • Thomas Ptacek · 2 years ago
    Chris, I'm going to challenge that: I don't verify hostkeys, but I *DO* notice when I suddenly get prompted to accept a new one. SSH does a pretty good job of being loud about this.

    We're pretty paranoid about this, so maybe we're not representative.

    Of course, in the current state of the art, key verification finds its asymptote at browser cert verification, which end-users completely ignore. The same security problem you point out for SSH ALSO occurs if you click through the browser warning. When you discuss getting any better than browser cert verification, you are talking about making SSL/TLS more attractive, and thus (by my reasoning) making DNSSEC LESS attractive.
  • Thomas Ptacek · 2 years ago
    Edited this post because I'm removing a word from my vocabulary.

    (Yeah, right. But Dave is going to make me put a dollar in a jar every time I say it!)
  • Dave G. · 2 years ago
    What Tom forgot to mention is that the jar is labeled "Donations for DNSSEC"
  • Chris Pepper · 2 years ago
    Thomas,

    Yes, SSH warns you when keys change out from under you, but there are 3 major categories of threat here, and this protects you from the uncommon one.

    1) If I subvert DNS and interpose my machine running sshd for yours, hostkeys will warn you. But I've never seen that happen (not that it doesn't, that it's uncommon).

    2) If I break SSH (which used to happen all the time, but has definitely tapered off), I 0wn sshd, and grab its keys. You can't tell you're now talking to a compromised sshd.

    3) If I break into the host OS any other way and get root, I can "upgrade" to my own compromised sshd binary and keep the old keys. We upgrade sshd all the time, retaining keys. No help from hostkeys here.

    3a) If I'm really sneaky, I could grab the hostkeys, and tap port 22. If I have the hostkey, I should be able to eavesdrop on all communications either way by "following along at home" and replicating the host's crypto calculations with its key.
  • Thomas Ptacek · 2 years ago
    It's kind of hard for any protocol to help you if you lose your machine to an attacker. My point is, losing entire DNS servers to attackers seems to be the common failure mode for DNS security. Maybe protocols aren't the answer.
  • Chris_B · 2 years ago
    TP

    I think you finally hit the nail on the head. Protocols are generally not the answer because technology cant fix social problems on a large scale. This has been under my fingernails for a while now but I dont think the idea will be generally popular with anyone. The Internet isnt broken and cant be fixed. People are broken. The "fix" tends to come from social structures and laws (and law enforcement).

    In any case its not SSL/TLS or the Verisign protection racket goons which secure your purchases from Amazon or your ebanking; its consumer protection laws which limit your liability for misuse of your credit card or protect you from bank fraud (in the US anyways, the rest of the world is different).

    SSL/TLS/PGP/SSH are due dilligance practices. DNSSEC may or may not be in the future.
  • Thomas Ptacek · 2 years ago
    Well, OK, that's fine as far as it goes. But independent of how far technology can go to protect us, DNSSEC is bad technology.
  • Chris_B · 2 years ago
    "bad technology" in the sense that it will cause Godzilla like counter effects or in the sense that there is disagreement on what problem it is intended to solve exactly ?

    But seriously. All hyperbole aside, I see your points but for reasons of practicality, I dont entirely agree with your assertion that authentication should be solved at a higher layer.
  • Thomas Ptacek · 2 years ago
    DNS doesn't solve authentication problems for applications. All it does is bind names to IP addresses, or (in a better world), names to little bundles of opaque data.

    And, as I hope my next 2 posts make an adequate case for, I mean "bad" in your first sense. "Really" bad.
  • Gustavo Bittencourt · 2 years ago
    Thomas

    I agree with everything you wrote here. BTW, I love the illustrations too.

    Regards
  • Shawn F · 2 years ago
    (sorry if this has already been discussed but I have not had a chance to read this post in detail)

    For the paranoid among us I found this interesting:

    http://www.theregister.co.uk/2007/04/03/dns_mas...

    I wonder how much truth there is to in and if this is in anyway going to cause the US Gov to try and push DNSSEC forward.
  • Thomas Ptacek · 2 years ago
    I'm going to talk a bit about DLV and all the fun that that entails; I don't want to get too far ahead of myself, but, think, "ALTERNATE IANA/IETF FOR DNS".
  • Chris_B · 2 years ago
    my bad. "authentication" wasnt the word to use. should have gone for "authenticity" instead. Still chewing on this overall so may back down again or not.
  • Thomas Ptacek · 2 years ago
    Don't! I can use the opposition!
  • dot tilde dot · 2 years ago
    thomas, thank you for putting it together so nicely, all with the beautiful illustrations. great writing style. gotta show it to mom. shell love it.

    .~.
  • Peter · 1 year ago
    @Chris Pepper

    3a) If I’m really sneaky, I could grab the hostkeys, and tap port 22. If I have the hostkey, I should be able to eavesdrop on all communications either way by “following along at home” and replicating the host’s crypto calculations with its key.

    I don't think so - can you also follow the Diffie-Hellman calc?
  • fdask · 1 year ago
    Brilliant article! Your diagrams really make it.

    The last point about BIND having many security flaws related to DNSSEC is an interesting one. I use tinydns myself, and was actually looking into DNSSEC after reading about irs.gov implementing it (Slashdot). Apparently tinydns does not support DNSSEC, nor is the author interested in it for a lot of the flaws in the system you pointed out.

    "I'm not going to bother implementing DNSSEC until I see (1) a stable, sensible DNSSEC protocol and (2) a detailed, concrete, credible plan for central DNSSEC deployment. " - http://cr.yp.to/djbdns/forgery.html

    A chicken and egg problem I guess! Anyways, kudos on the informative post.
  • creditcardquick.com · 4 months ago
    I like the way you tried explaining the concepts behind the issue. It makes readers want to scroll down and read word after word. However there were certain parts where it gets a little confusing but all in all it was good.