SIDN’s excellent DNSSEC tutorial

We agree with our friends at the ISOC Deploy360 Programme when they say that the e-learning course on DNSSEC from SIDN, the .NL registry, is excellent.

No Comments

Leveraging DNSSEC to protect BGP

It’s not news to anyone involved in the deployment of DNSSEC, but some of the Internet protocols we use today were designed years ago, when the Internet itself was as much a research project as the research projects it helped facilitate at university and government or government-funded institutions. Many of the insecure protocols of those days have been replaced or augmented by more secure versions. Telnet and rlogin/rsh have given way to ssh. There’s now HTTPS in addition to HTTP and many other protocols now support end-to-end security using SSL/TLS.

Even with all of these changes to transport and application-level security, infrastructure security has lagged behind. DNSSEC is one piece of the puzzle to secure the infrastructure. It ensures that the mappings that DNS provides — that are required by just about every other protocol and application on the Internet — are the ones intended by domain owners.

But even having validating mappings that result in, among other things, IP addresses is insufficient. Another piece of infrastructure — this one far more hidden from end users than DNS — is routing. Specifically, it’s the Border Gateway Protocol (BGP) that is used to identify how packets should flow between corporate and ISP networks across the Internet to get to their intended recipients.

BGP has been under study to improve its security for as long as DNS. Many of the same organizations that have funded or performed work on improving DNS security have done the same for BGP.  The US Department of Homeland Security, which funds the DNSSEC Deployment Initiative, has also funded work on securing BGP.

As reported in The Register, those securing BGP are benefiting from the deployment of DNSSEC with the development of BGP Route Origin Verification (ROVER).  According to the article,

Several early adopter telcos and ISPs are in the process of publishing route origins in their reverse DNS and signing with DNSSEC. In addition, Secure64 has established a Rover Testbed available at “rover.secure64.com” (registration required).

This adds BGP to the growing list of protocols and services that can benefit from leveraging DNSSEC deployment.

No Comments

Ukraine signed ahead of schedule

 

As reported previously, the .UA hostmaster provided a schedule for DNSSEC deployment at ICANN43.

In a comment this past Friday on that article and in a press release on their own site, the .UA hostmaster announced that they’re signed, their DS is in the root, and several companies are already using DNSSEC to protect their domains.   They end their press release with the following:

UA is our home, let’s make it safe!

No Comments

FCC DNSSEC Recommendations for ISPs Published

The recommendations that were previously announced have been published on the FCC’s CSRIC III website.

In brief, the report (318KB PDF)  lays out four levels of possible deployment with respect to validation and recommends that all ISPs implement at least the next to highest level, DNSSEC-aware resolvers, if not the highest level, actual validation at the ISP level.  This lays the foundation for ISPs to go to the next step and, perhaps more importantly, enables end systems to do their own validation without having to bypass the ISP’s DNS service completely.

No Comments

Labs around the world enabling DNSSEC

IBM705 from US Social Security Agency archives

In addition to planning for DNSSEC and applying metrics, Government and TLD registry labs around the world are producing tools that enable the deployment of DNSSEC.

In the case of the ccTLDs, these same countries are leading in the adoption of DNSSEC.  The rest of us benefit from their sharing their work.  Following are some of the labs and what they provide.

CZ.NIC Labs (ICANN 44 is being hosted by CZ.NIC):

NLnet Labs:

  • Unbound validating recursive and caching DNS resolver
  • Dnssec-Trigger local Unbound server for end-system validation
  • NSD authoritative only, high performance, simple and open source name server
  • DNS Check DNS server checking and error reporting

Sandia National Laboratories:

  • DNSViz DNS visualization tool

US DHS S&T Cyber Securtity R&D-funded:

Verisign Labs:

1 Comment

FCC recommendations promote DNSSEC capability

The US Federal Communications Commission‘s Communications Security, Reliability, and Interoperability Council (CSRIC) has come out with recommendations to ensure that end-users’ ability to use DNSSEC is not impaired by ISP infrastructure.  The report is not yet out, but there is a fact sheet and a press release  that states:

DNS Best Practices:

CSRIC recommended that ISPs implement best practices to better secure the Domain Name System. DNS works like a telephone book for the Internet, but lack of security for DNS has enabled spoofing, allowing Internet criminals to coax credit card numbers and personal data from users who do not realize they are on an illegitimate website. DNSSEC is a set of secure protocol extensions that prevent such fraudulent activity. This recommendation is a significant first step toward full DNSSEC implementation by ISPs and will allow users, with software applications like browsers, to validate that the destination they are trying to reach is authentic and not a spoofed website.

The slide presentation (2.7MB pptx) on DNSSEC from today’s meeting is available from the CSRIC III web site, as are FCC chairman Genachowski’s remarks.  A video of the meeting is also on the FCC’s web site.

No Comments

Is a $70 router fast enough for DNSSEC?

In a blog post a few days ago, Bob Novas talked about configuring an inexpensive home router as a DNSSEC validator for a home/small office network.

Such a router has much less computational power than most computers today, so many people assume it is not fast enough to do DNSSEC validation.  To test that assumption, I ran the router through a set of tests designed to measure DNS and DNSSEC validation performance.  I ran each of the following tests in sequence against the router with DNSMASQ (the default, non-validating forwarding resolver used by OpenWrt), Unbound without validation, and Unbound with validation:

  • Test #1 Cold cache: query for X signed names from 2 different zones
  • Test #2  Warm cache: query once for each of the names in #1
  • Test #3 Mixed case query for  the names in cache and intermingle  30% queries for names not in cache
  • Test #4 Remote Ask for 50 nonexistent names in .gov

In tests 1-3,  the names queried are from zones served by authoritative servers on the same LAN, minimizing network delays.

The reason I have the value X above is that I use different values depending on the speed of the device under test.  The goal of the tests is to run experiments #1 and #3 for just long enough to get meaningful results.

When running without DNSSEC, DNSMASQ and Unbound performed about the same In the Cold test — around 700 queries/second.

Unbound was six times faster on the Warm test since it caches responses and DNSMASQ doesn’t.  Unbound was two faster on Mixed test for the same reason.

With DNSSEC turned on, Unbound was able to handle about 140 validated queries/second, which is quite fast.  This is with answers that are signed by a 1024-bit RSA key.  It ran at the same speed as it did without DNSSEC  in the Warm case.

This performance is more than enough for a home or small office.

When comparing the results for the Remote test, validating Unbound finished in about seven seconds while non-validating DNSMASQ took about ten.  Network delay, not validation time,  dominates the time to perform this test.  In non-test situation, DNSSEC validation thus will not be a bottleneck when the doing lookups from the Internet.

 

 

 

 

, , ,

1 Comment

Menu for .UA DNSSEC deployment

Dmitry Kohmanyuk

Dmitry Kohmanyuk

At ICANN43, Steve Crocker, ICANN Board Chairman and DNSSEC Deployment Initiative memember, met with Dmitry Kohmanyuk, the .UA hostmaster.  On the back of  a menu for the Gala Dinner, Dmitry outlined the plans for .UA DNSSEC deployment.

Crocker notes

This makes the set of DNSSEC deployment maps I presented on the 14th obsolete, and I’m very happy about that.

 

Menu with schedule

Planned .UA DNSSEC a of 14 March 2012

(As with other menus, substitutions may occur)

  • Experimental:  1 March 2012
  • Announcement: 3 December 2011
  • Partial Operation: 1 April 2012
  • DS in Root: 15 April 2012
  • Full Operation: 1 December 2012

 

 

,

1 Comment

A validating recursive resolver on a $70 home router

As an experiment, I installed a validating recursive resolver on a home/SOHO router.  I also set the router to advertise this resolver in DHCP as the DNS server for the LAN served by the router. The experiment was a resounding success — the clients on the router LAN only receive Secure or Provably Insecure DNS responses and do not receive Bogus responses.

I was able to verify this by navigating to a bogus addresses. For example, here is a screen shot of navigating to a domain with a bogus signature (http://bogussig.dnssec.tjeb.nl). If you are on a non-validating network, you will be able to resolve this link. If your network is validating, however, you should get an error if you click the link.

The HttpWatch browser plugin shows that the DNS query for this address very quickly returns an error.

screen shot of a DNS query of a domain with a bogus signature

Dump of a DNS query of a domain with a bogus signature

Here is a screen shot of loading this site, which has a css page that is served from a domain with a bogus signature. When loaded from a validating network, this page will show a green checkmark. Otherwise, it won’t. (You can see the checkmark — or not — at the top of this page.) Although the entire page load is not shown, the page loaded in 2.3 seconds. This is comparable to the time it takes the page to load using a local copy of Unbound.  Again, the bogus href is quickly errored out.

Loading a page where names are signed

So, how did I do this?  I started with a Buffalo WZR-HP-G300NH v2 router, which I purchased online for just under US$70. The router runs a customized version of the DD-WRT Open Source software out of the box. The router has 32MB of NVRAM and 64MB of RAM. The basic configuration with an Unbound recursive resolver requires about 10MB of NVRAM, so this router has more than enough storage.

A few words of caution.  Not all routers are suitable — you need to have a router that is supported by OpenWRT and the router needs to have enough flash memory.  Also, you may lose any special features that are included in the manufacturer’s firmware.  For the router I used, I lost the “movie engine” feature and the ability to support a file system on the router’s USB port.  I could have loaded more packages from OpenWRT to support a file system.  Finally, there is a risk that you will brick the router — i.e., turn it into a paperweight.  You’ll need some level of expertise with technology and a platform that supports telnet, ssh and scp (e.g., Cygwin on Windows, or a Mac or Linux box).

Because of the greater ease of configuration that it offers, I reflashed the router with the OpenWRT router software. Then I loaded and configured Unbound, a BSD-licensed recursive resolver and was up and running.

Here are the specifics of how I accomplished this:

  •  I downloaded the right firmware image for the router from the OpenWRT nightly build site.  For the Buffalo WZR-HP-G300NH2 router, I used this build for the squashfs file system for a system upgrade. The system upgrade is because I was going from a DD-WRT build to an OpenWRT build. Other firmware images are available for this router that are specific to other circumstances. If you are not flashing this specific router, you will need to establish the right firmware to use for yourself.
  • I connected my PC  to a LAN port on the router. I set the PC to use an address on the same subnet as the router – in my case 192.168.1.10 as the router is at 192.168.1.1.
  • I pointed my browser at the router, set a password, and logged in to the router’s Web UI.
  • I navigated to the Administration/Services page and enabled the SSH daemon.  At the same time I set up the  authentication for SSH.
  • From a terminal window on my PC, I copied the OpenWRT firmware to the router.
scp openwrt-ar71xx-generic-wzr-hp-g300nh2-squashfs-sysupgrade.bin [email protected]:/tmp
  • I then logged into the router via ssh to flash OpenWRT onto the router in place of the supplied dd-wrt:
ssh [email protected]

cd /tmp

mtd -r write openwrt-ar71xx-wrz-hp-g300nh2-squashfs-sysupgrade.bin linux
  • I waited for a good long while. When the red light stopped blinking, I had successfully flashed the router. It did not yet have a Web UI, but I was able to access it using telnet.
  • I used telnet to acces the router with no username or password and set a password. This should disable telnet and enable ssh with that password (username root):
telnet 192.168.1.1
set a password when prompted
  • I connected an Ethernet cable from my home LAN to the router’s WAN port (you could also connect the cable directly to your cable or DSL modem).
  • I ssh’d into the router and loaded and installed the router’s Web UI, called luci:
ssh [email protected]
opkg update
opkg install luci
⁄etc⁄init.d⁄uhttpd enable
⁄etc⁄init.d⁄uhttpd start
  • At this point I was able to login to the router’s Web UI by pointing my browser to 192.168.1.1.   On my first login, I needed to set a username and password. I found that no matter what username I set, I always needed to use the username root to login to the router via ssh.  It did use the password I set, however.
  • I think the best thing to do next is to move the router’s LAN subnet to another subnet. My primary subnet (i.e., the one my ISP’s router provides and the one I have plugged into the router I’m working on’s WAN port) is 192.168.1.x.  I logged in to the router’s Web UI and moved the router’s LAN to 192.168.2.1. This avoid IP address conflict between the two subnets. Since my PC is plugged into the LAN port of the router, I had to change my PC’s address to something like 192.168.2.10 so it can talk to the router once it’s on 192.168.2.1.
  • I then ssh’d back into the router and installed unbound  (This can also be done this using the Web UI from the System/Software page).   I ssh’d into the router and used opkg to install Unbound:
ssh [email protected]
opkg install unbound
  • I enabled Unbound at startup by navigating a browser to the router’s System/Startup page and clicking on Unbound’s Enabled button to turn it to Disabled.
  • I disabled dnsmasq’s (the default DHCP and DNS server on the router’s)  DNS function by navigating the browser to the Network/DHCP and DNS/Advanced page and setting DNS Server Port to 0 (zero).
  • Finally, from my ssh session, I told dnsmasq to advertise the router (unbound, really) as the DNS server in DHCP responses:
uci add_list dhcp.lan.dhcp_option="6,192.168.2.1"
uci commit dhcp
⁄etc⁄init.d⁄dnsmasq restart

At this point, my router was up and running, dnsmasq’s DHCP was advertising the router as the DNS server, and Unbound was running as a recursive resolver on the router. All computers I put on the 192.168.2.1 router’s LAN that auto-configure using DHCP used this router’s unbound resolver for DNS, and are protected by DNSSEC. My network is configured as shown in the figure below.

Configure all PCs to use the DNSSEC router

One thing we noticed after running the router for a few days — be sure to leave NTP running on the router. In our case, we turned NTP off for some debugging and forgot to turn it back on (NTP is on the OpenWRT System/System page, under “Enable buildin NTP Server”.)  After a few days, the router’s time was far enough off to cause validation to fail. Time is important for validation to work correctly because DNSSEC signatures have inception and expiration times.

We plan on doing some benchmarking of Unbound’s performance on this platform and on doing similar experiments with other routers. Email us at info @ dnssec-deployment.org with your experience doing this or any questions or feedback.


No Comments

Have some DNSSEC with your Pi

Happy Pi Day (to the 36th digit)! by Mykl Roventine

If Pi Day (3/14 in month/day format) isn’t already enough to make this Wednesday a great day, the DNSSEC workshop at ICANN 43 will be streamed live.  The streaming information, detailed agenda, and presentations are all available on the DNSSEC Workshop page.  The workshop is scheduled to start at 8:30AM CST (UTC-6).

,

No Comments