Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DNSSEC and Bind

DNSSEC and Bind

Basics of DNS and DNSSEC. Setting up Bind locally.

Chinmay Pendharkar

May 21, 2014

More Decks by Chinmay Pendharkar

Other Decks in Technology


  1. What is DNS? - Domain Name System - Translate URLs

    to IP Addresses (and more) www.google.com =>
  2. No really... - UDP - User Datagram Protocol (mostly) -

    Me - Q: “What’s the IP for www.google.com” - DNS - A: “”
  3. DNS has issues. - No guarantee that you’re talking to

    a authentic name server - Me - Q: “What’s the IP for www.google.com” - Evil ISP Server - A:
  4. How? Send a request generally in the direction of the

    assigned DNS name server. Anyone in between can respond to that query!!
  5. DNS has more issues DNS Responses can be tampered with

    in flight. - Me - Q: “What’s the IP for www.google.com” - DNS Nameserver - A: “” - Evil ISP Server - A: “”
  6. DNSSEC to the Rescue Domain Name System Security Extensions “provide

    origin authentication, authenticated denial of existence, and data integrity”
  7. But how?? “digitally signing records for DNS lookup using public-key

    cryptography” “authenticated via a chain of trust” “you trust the root, then use the root to verify the rest of the chain”
  8. Setup for Domain owners. - generate own public/private key pair.

    - upload public key to registrar, - registrar pushes the keys via secDNS to the zone operator (e.g.: Verisign for .com) - zone operator signs and publishes them in DNS.
  9. What if my registrar/root doesn’t DNSSEC? - DNSSEC Lookaside Validation

    - Internet Systems Consortium DLV Registry. - an additional entry point (besides the root zone) to obtain DNSSEC validation information
  10. How can I use this stuff? We need. 1. A

    Name server that speaks DNSSEC 2. All clients speak DNSSEC
  11. #2

  12. But but but... HTTP Stack -> Local Name server (DNS)

    Local Name server Server -> DNS (DNSSEC)
  13. Get bound? http://www.bind9.net/ Your favourite package manager should have it

    apt-get bind9; pacman -S bind9 port install bind9
  14. What are we doing? - Generate and verify DNSSEC root

    key - Generate and verify DLV key - Add the keys into bind configuration - Enable DNSSEC in bind configuration dnssec-enable yes; dnssec-validation yes; dnssec-lookaside "." trust-anchor dlv.isc.org.;
  15. Setup Bind Make sure it only listens to YOU! listen-on

    {; }; Run Bind as a Daemon. sudo launchctl load -w /System/Library/LaunchDaemons/org.isc.named.plist
  16. Has it worked out? - No noticeable delay in queries.

    - No noticeable increase in CPU usage. - Rare domains don’t work (yimg/yahoo WTH??)