Posted by Virus Bulletin on Aug 15, 2013
Name servers unable to distinguish faulty from rogue responses.
A glitch at VeriSign yesterday led to DNSSEC-aware name servers being unable to verify responses on the .gov top-level domain (TLD), which in turn led to many users being unable to access services residing on a .gov domain.
It wasn't a good day for the Internet yesterday. A 'maintenance glitch' caused the website of the New York Times to display a "service unavailable" message for several hours, Microsoft recalled a patch for Exchange 2013 just hours after its release, and many users were unable to reach US government websites.
DNSSEC cryptographically signs information provided by DNS. DNS, which translates domain names such as www.virusbtn.com into harder-to-memorize IP addresses like 22.214.171.124, is often called 'the phonebook of the Internet'. In fact, it does a lot more than making web addresses memorable, and opening a single web page into a browser can easily result in more than 100 DNS lookups.
This makes DNS a weak spot in the Internet infrastructure, and someone who is able to send rogue responses to DNS queries can do a lot of harm. The DNSChanger malware, which modified victims' DNS settings to have them served advertisements of the criminals' partners rather than those of paying advertisers, saw its owners make millions of dollars before their arrest in 2011.
By digitally signing responses, DNSSEC attempts to prevent harm that can be caused by incorrect and possibly malicious responses. Because a DNS query typically requires several requests, the response to each of them is signed.
A request for www.fbi.gov, for instance, starts with a request to one of the Internet's 'root servers', which responds with the name servers responsible for the .gov TLD. A request to one of these name servers then returns the name servers responsible for fbi.gov and its subdomains. One of these name servers will then respond with the IP address of www.fbi.gov.
For DNSSEC to work as intended, each of these responses has to been signed. The bug at VeriSign caused the second step to fail, resulting in invalid responses. In practice, this meant if you made a request to a .gov domain, all of which use DNSSEC, and your name server supported DNSSEC, the domain would not resolve.
Yesterday's .gov issues highlight an important problem with DNSSEC. In practice, when a DNS response is received with an invalid signature, it is far more likely that this is caused by a technical glitch rather than a malicious or even incorrect response. Yet the name server cannot distinguish between these cases and the end-user can't even distinguish between these and a third possibility: that the domain simply doesn't exist.
When DNSSEC matures, glitches like this are likely to become less common, but they will still happen from time to time. At the same time, for DNSSEC to return anything but an empty response, would seriously weaken its properties.
I am aware of some of the criticism on DNSSEC, but I think that in the end, the protocol is worthy of being implemented widely. However, we should be well aware that doing so will lead to the occasional lack of availability of services we want to access.
Posted on 15 August 2013 by Martijn Grooten