But those DNSSEC nuts do have some valid points. A compromised DNS server is a profoundly dangerous thing. It enables the worst form of attacks, from mass-pharming to malware distribution (imagine running a fake http://windowsupdate.microsoft.com). DNS servers, like any other computer, have vulnerabilities of various kinds. The most discussed way to compromise DNS is through "cache poisoning," a variety of attacks in which an attacker tricks DNS into providing false information. In other words, you ask for the address of a particular domain, but you get a different address. The server at that address might have a phishing image of your banks site, for example.
The Firefox issue had to do with the common hard-coding in the extension itself of a URL that the extension checks for updates. The attack requires that the DNS be compromised so as to point the extension to a malicious fake update server. My first thought when I heard about this issue was to wonder how common compromised DNS servers really are. Then I remembered research by Trend Micro that found a network of "more than 115 rogue DNS servers that are used by a certain variant of TROJ_DNSCHANG."
Unfortunately, the link to the actual study I heard about is dead now, but the story certainly sounded plausible. And whoever compromised the DNS servers was trying not to be greedy about it, letting most existing domains resolve correctly, while nonexisting domains were resolved to a malicious address.
Im sure theres plenty of opportunity out there to compromise DNS for a talented hacker. Im certain that most administrators hesitate to change things on boxes so critical, even to apply critical updates. And its not just big companies and ISPs; there are lots of small DNS servers in small businesses, and even broadband routers perform DNS functions.
The solution to this, apart from prodigious hardening of DNS servers themselves, is DNSSEC. DNSSEC is a set of protocols and applications for using public key cryptography to make DNS secure. Digital signatures are used to to authenticate clients and servers and sign communications between them. Ultimately, the process can go end-to-end, between the actual client and server, although often these things result in compromises; its easy to imagine DNSSEC partly implemented between the users ISP to the authoritative DNS for outside domains, leaving clients without encryption between them and the server.
Ron Aitchison dismisses the arguments against DNSSEC and argues for it all the way from client to server. Application-level encryption and authentication are no substitute, he says, and his argument makes sense.
Of course, not everyone believes in DNSSEC. Thomas Ptacek of Matasano Security makes a fun argument against it. Ptacek seems to be making the SSL argument that Aitchison refutes. Ptacek:
Theyre both right about some things. Ptacek is right that a compromised DNSSEC server is a profoundly dangerous thing, and of course it will happen. Aitchison is correct that DNS is important and its good for it to be secured. Ptacek actually seems not to care whether DNS is secure or not.
But the ruling point is that DNSSEC is one of those massive changes, like IPv6, that wont happen until people have no choice but to implement it. Its really complicated and theres been no massive security disaster with the DNS that would give everyone a sense of urgency about it.
So in that sense, maybe Ptacek is right after all. If DNSSEC wont be riding to the rescue, were better off putting as much security as we can where we can. Theres a lot you can do at the application level.
Security Center Editor Larry Seltzer has worked in and written about the computer industry since 1983.
More from Larry Seltzer