An Overview of DNSSEC


Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

An Overview of DNSSEC

  1. 1. 1 An Overview of DNSSECTATT Workshops, Port of Spain Carlos Martínez-Cagnazzo carlos @
  2. 2. DNSSEC•  Cryptography 101•  DNSSEC•  Where DNSSEC ?•  How does DNSSEC work ?•  New Resource Records•  Trust Chains2
  4. 4. Cryptography•  Cryptography concepts well need for DNSSECu  Public-key Cryptographyu  Hashing algorithmsu  Digital signaturesu  Trust Chains4
  5. 5. Cryptography (ii)•  Lets imagine two parties which need to communicate ina private manner. They will like to see certainproperties enforced in their data exchanges.u  Theyd like to be sure that no one else has been able toread their messages (privacy property)u  Theyd like to be sure that no one else has been able tochange or alter their messages (integrity property)u  Theyd like to be sure that the party who sends amessage is really who it claims to be (authenticationproperty)5
  6. 6. Symmetric Cryptography[Source: Stallings]6•  E[.] y D[.] are two functionsboth which are inversemappings of each other•  D[ E [X] ] = XK (the key) is aparameterintroduced to easecompromiserecoveries•  Symmetric Cryptography•  DK[ EK [X] ] = X
  7. 7. Cryptographic Hashes•  H is a transformation with the following propertiesu  p << nu  For each algorithm ”p” is a given valueu  len(H) is fixed regardless of len(M)•  This means that collisions do exist•  Collision: If for a pair M1 and M2, H(M1) == H(M2), then M1 andM2 represent a collision•  If H() is chosen and designed carefully then finding collisions isvery difficult
  8. 8. Cryptographic Hashes (ii)•  Intuitivelyu  The more "random" the result of a hash "looks", thebetter it is•  Some well-known algorithms:•  MD5•  p=128 bits•  SHA1 / SHA256•  p=160 / 256 bits
  9. 9. Public-key Cryptography•  Key distribution was always the weak point in traditional(symmetric) cryptography•  A lot effort was put to find workarounds and alternatives•  Breakthrough: (Diffie-Hellman ca. 1976) “Public-keyCryptography”•  A public-key cryptosystem has the following properties:u  DK1[ EK2 [X] ] = Xu  D cannot be easily found even if E is knownu  E cannot be broken with a chosen plaintext attack9
  10. 10. Public-key Cryptography (ii)•  Each party generates a keypair, that is one public andone secret keyu  Kpub, Kprivu  Both keys in the pair are related•  If one is given the other is also given•  When transmitting a message “X” from A -> B thefollowing computation takes place:u  Y = E [ KpubB, X]•  When B receives the encrypted message the followingcomputation takes place:10
  11. 11. Public-key Cryptography (iii)•  [Source: Stallings]11
  12. 12. Digital Signatures•  Goal:u  Create integrityproofs of digitaldocuments•  Usuallyimplemented usingpublic-keycryptography12
  13. 13. Digital Signatures (iii)•  Given M, a digital document to be signed by partyA(lice) to be received by party B(ob)u  A computes:•  A hash for M, H = Hash[M]•  A signature for M, F = E[ KprivA, H]u  A sends the pair {M, F} to B•  When B receives the encrypted message the followingcomputation takes place:u  A hash for M, H = Hash[M]u  The hash of the signature is recalculated, H = D[ KpubA,F]u  Is the signature VALID ? Is H == H’ ??13
  14. 14. Digital Signatures (iii)•  Trust Chainsu  Each level in the hierarchysigns data in the next oneu  The root needs to beanalyzed separatelyu  Validation can be either•  Top down•  Up down14
  16. 16. Protocol Specification•  Overview of DNSs wire packet formatu  Header•  Protocol header•  Flags (QR, RA, RD,…)u  Question Section•  Query we send to the DNS serveru  Tuples (Name, Type, Class)u  Answer Section•  RRs that answer the query (if any areavailable), also in (N, T, C) tuple formatu  Authority Section•  RRs pointing to authoritative servers (optional)u  Additional Section•  RRs that may be useful to the querying client(according to the server answering the query)HeaderQuestionAnswerAuthorityAdditional
  17. 17. DNS Querieslocal resolver local recursiveDNS serverOtherauthoritativeservers
  18. 18. Attack Vectors in DNS
  19. 19. Vulnerabilities in DNS•  DNS transmitted data is more prone to spoofing as it ismostly transported over UDPu  Between master and slaves (AXFR)u  Between masters and clients (AXFR) “resolver”•  Currently the DNS protocol does not have a way tovalidate information found in a query responseu  Vulnerable to different poisoning techniquesu  Poisoned data can be a problem for long periods of timedepending on the TTL values of the zones•  Neither do slave servers have a way to authenticate themaster servers theyre talking to 19
  20. 20. Introducing DNSSEC•  Threat analysis in the DNS systemu  RFC 3833: “Threat Analysis of the Domain Name System(DNS)”•  DNSSEC:u  “DNS Security Extensions”u  RFC 4033, 4034, 4035u  ~ May 200520
  21. 21. What does DNSSEC Protect usfrom?•  DNSSEC will protect us from data corruption andspoofingu  It provides a way to validate both the integrity and theauthenticity of the records contained in a DNS zone•  DNSKEY/RRSIG/NSECu  It provides a way to delegate trust in public keys (trustchains)•  DSu  It provides a way to authenticate zone transfers betweenmasters and slaves•  TSIG21
  22. 22. DNSSEC Introduction•  DNSSEC is not a new protocol•  Is a set of extensions to the DNS protocol as we knowitu  Changes to the wire protocol (EDNS0)•  Maximum UDP query response extended from 512 to 4096bytesu  New resource records added•  RRSIG, DNSKEY, DS, NSECu  New flags added•  Checking Disabled (CD)•  Authenticated Data (AD) 22
  23. 23. DNSSEC Introduction (2)•  New RRsu  RRSIG: Resource Record Signatureu  DNSKEY: DNS Public Keyu  DS: Delegation Signeru  NSEC: Next Secure•  New Flags:u  AD: authenticated datau  CD: checking disabled23
  24. 24. DNSSEC Introduction (3)•  A resource record in DNS is a five-value tupleu  (name, class, type, TTL, value)•  The record:u 86400 IN A u  Is represented by the tuple:•  Name (•  Class (IN)•  Type (A)•  TTL (86400 seconds)•  Value (
  25. 25. DNSSEC Introduction (4)u  Resource Record Sets (RRSets)•  DNSSEC works by signing RRSets (not individual RRs)•  An RRSet is a set of resource records that share the same:u  Classu  Typeu  Nameu  Sample RRSet (TTL omitted for clarity)•  www IN A •  www IN A 25
  26. 26. DNSSEC Introduction (5) ZoneSigning•  A key pair is created for each zoneu  Each zone has at least one key pairu  The private key is kept, well, private•  The private key is used to sign the RRSets in the zoneu  The public key is published in DNS using DNSKEYrecords•  The private key is also used to verify the signatures of theRRSetsu  An RRSet can have multiple signatures generated usingdifferent key pairs26
  27. 27. DNSSEC Introduction (6)•  The digital signature of a RRSet is returned in a specialRRSIG record with the query answer•  Example:27 ~ carlosm$ dig +dnssec ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 4, ADDITIONAL: 1 ;; ANSWER SECTION: 60 IN A 60 IN RRSIG A 5 3 60 2010102113200120101011132001 23369 HeeUZ5h5iExK5uU1SuNRIf2Dbmh2/aWV8FkjmzixUzTAVrHv39PfmfnG DHdHoZxoz85hqqYiWb+t9EZh5+iqxQk8AxRDic9Nn6WxifOoWeS+IUKQrVyqXf1NtkZvu1A325vwa8obtbeVGVkhqg6bDIjKYeHixjlQ4cRoFcEW Izk= ;; AUTHORITY SECTION: 2974 IN NS 2974 IN NS 2974 IN NS 3600 IN RRSIG NS 5 2 360020101021132001 20101011132001 23369 GSzAUC3SC3D0G/iesCOPnVux8WkQx1dGbw491RatXz53b7SY0pQuyT1Web063Z62rtX7etynNcJwpKlYTG9FeMbDceD9af3KzTJHxq6B+TpmmxykFoKAVaV0cHTcGUXSObFquGr5/03G79C/YHJmXw0bHun5ER5yrOtOLegU IAU=
  28. 28. Trust Chains•  How do clients verify a zones RRSets?u  It queries for the corresponding DNSKEYu  The necessary computations are carried out and thencompared with the signature in the RRSIG•  If they match the signatures are valid•  But, how can we trust the DNSKEY? It listed on thesame zone we want to verify!u  We need to validate the trust chain28
  29. 29. Trust Chains (ii)•  DS Record “Delegation Signature”u  DS records "sign" the keys in their child zonesu  In this way one can also verify the DNSKEY as it issigned when the parent zone is signed•  DS records contain a hash of the public keyu  That is a hash of the DNSKEYs record content•  DS records in the parent zone are signed with the keysof the parent zone•  To complete the full trust chain we also need the rootof the DNS to be signed29
  30. 30. Trust Chains (iii)•  What about the root zone ?u  The root zone has no parent zone where a DS recordcould be placedu  The DNS root has been signed since July 2010•  [ ]u  The DS record for "." is obtained out-of-band andinstalled locally in each server•  [ ]•  . IN DS49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB530
  31. 31. DNSSEC Introduction (9) RootZone Signing•  How is the the root trust anchor verified?•  It is verified also out-of-bandu  It can be downloaded using http/httpsu  Several validation mechanisms are in place (X.509 certs,PGP signatures)u  It is locally installed in the same way the root zone itself isconfigured locally31
  32. 32. DNSSEC Introduction (10) Denialof Existence•  "NXDOMAIN" answersu  Provide “denial of existence” answers via a flag on the“Header” pseudo-sectionu  NXDOMAINS are cached in the same way as otherresponses areu  Forging NXDOMAINs is a DDoS attack vector•  How can non-existence be signed ?u  We need an RRSet to sign•  Remember that DNSSEC always signs RRSetsu  Two different techniques have been proposed:•  NSEC and NSEC3 32
  33. 33. Thank You!Questions?33