DNSSEC:
motiváció és elv

Pásztor Miklós

ISZT

pasztor@iszt.hu

Jelen dokumentum a Creative Commons license by-sa alatt érhető el.

Miről lesz szó?

  1. Elsősorban előadás
    • Mi indokolja, a DNSSEC bevezetését?
    • Hogyan működik?
  2. Elsősorban beszélgetés
    • Hogyan vezetik/vezessék be az egyes .hu alatti domain-okban?
    • Hogyan vezessük be a .hu-ban és a másodlagos közdomain-ekben?

Név feloldás

A DNS szerverek kettős feladata

Secondary elkötés

DNS cache poisoning / cache mérgezés

DNS cache poisoning (2.)

A cache poisoning nehézség

1. könnyítés: birthday attack

  
#!/bin/perl    
#   Mi a valószínűsége, hogy mindenki különböző napon született? ($p)
$N=31;$p=1;for $i (1..$N) { $p=(($N-$i)/$N)*$p;$r=1-$p;print $i+1, ":\t$p\t$r\n"}

2:	0.967741935483871	0.032258064516129
3:	0.905306971904266	0.0946930280957337
...
7:	0.481708424598635	0.518291575401365
...
16:	0.00864440401314186	0.991355595986858
17:	0.00418277613539122	0.995817223864609
...
32:	0	1

2. könnyítés: Kaminsky felfedezése

Hogyan működik?

Mi van veszélyben?

Hogyan lehet cache poisoning ellen védekezni?

Cache poisoning ellen sokat tehetnek a routerek gazdái!

DNSSEC

Elv

RR-ek és RRset-ek

A DNSSEC kriptográfia sajátosságai

Bevezetünk új flag-eket a DNS üzenetekben

DNSKEY rekord

  
                        1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |              Flags            |    Protocol   |   Algorithm   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                                                               /
   /                            Public Key                         /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

DNSKEY flag-ek

KSK és ZSK

Újabb DNSKEY flag: revoke

DS - Delegated Signer rekord

DS rekord formátum

                        1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Key Tag             |  Algorithm    |  Digest Type  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                                                               /
   /                            Digest                             /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Key Tag

RRSIG rekord

                        1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |        Type Covered           |  Algorithm    |     Labels    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         Original TTL                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Signature Expiration                     |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Signature Inception                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            Key Tag            |                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+         Signer's Name         /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   /                                                               /
   /                            Signature                          /
   /                                                               /
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

RRSIG rekord mezők

Hogyan tudjuk aláírni a ,,nincs ilyen'' (NXDOMAIN) üzenetet

NSEC (Next Secure)

hu.  			86400	NSEC	0-24.hu. NS SOA TXT RRSIG NSEC DNSKEY

DNS walk

Alternatíva: NSEC3

H(example)       = 0p9mhaveqvm6t7vbl5lop2u3t2rp3tom
H(ns1.example)   = 2t7b4g4vsa5smi47k61mv5bv1a22bojr

0p9mhaveqvm6t7vbl5lop2u3t2rp3tom.example. NSEC3 1 1 12 aabbccdd (
                          2t7b4g4vsa5smi47k61mv5bv1a22bojr MX DNSKEY NS
                          SOA NSEC3PARAM RRSIG )

Key rollover - KSK

Key rollover - ZSK

Látó (rekurzív) név szerver konfiguráció


trusted-keys {
        "ripe.net.net." 256 3 1 AwEAAa9iBXsfILIS4dOA/wXPAIFst2Ma6F78Bf0bu8jmHgmZNwpbw6x0j/kLtFD65zlFfoMoXdv3gOX/+QYsTic3vaikzBItdBpDDUlWQHqhFLWpqrTup6tl2z6sIg1jp/kNrpBLyB59C9MtPpzxJeIWhXhJMUuUHpUB4V7AEiUaTNrJv+zB40Af9okXGwEIMlnpqsi4W/JfSJmg1XE8jSibt+f99I4zybZtbblqiZewwv4OUyBsr72PCP4qCweMWGNYqQ10JLo/s09cRzbUG3jAAKo17AptpBWILSuVIjXu3zVUQ1ptZgKjH93dsrmsgD+K3Ia6KGXYhl/JV0zXLmGjGPs= ;{id = 811 (ksk), size = 2048b};
        };

Segédeszközök

Példa drill használatra

  $drill -T -t ns -k ~/dnssec/keys/Kripe.net.+005+00811.key  ris.ripe.net

;; Domain: .
;; No DNSKEY record found for .
;; No DS for net.
;; Domain: net.
;; No DNSKEY record found for net.
;; No DS for ripe.net.
;; Domain: ripe.net.
[T] ripe.net. 3600 IN DNSKEY 256 3 5 ;{id = 64728 (zsk), size = 1216b}
ripe.net. 3600 IN DNSKEY 256 3 5 ;{id = 1725 (zsk), size = 1216b}
ripe.net. 3600 IN DNSKEY 257 3 5 ;{id = 21238 (ksk), size = 2064b}
ripe.net. 3600 IN DNSKEY 257 3 5 ;{id = 811 (ksk), size = 2064b}
[T] ris.ripe.net. 0 IN DS 25861 5 1 4c856668a2dfe12981ae7f61fbb873a97bfe52cc 
;; Domain: ris.ripe.net.
[T] ris.ripe.net. 3600 IN DNSKEY 256 3 5 ;{id = 20613 (zsk), size = 1216b}
ris.ripe.net. 3600 IN DNSKEY 256 3 5 ;{id = 20103 (zsk), size = 1216b}
ris.ripe.net. 3600 IN DNSKEY 257 3 5 ;{id = 25861 (ksk), size = 2064b}
ris.ripe.net. 3600 IN DNSKEY 257 3 5 ;{id = 21022 (ksk), size = 2064b}
[T] ris.ripe.net.	1800	IN	NS	sec1.apnic.net.
ris.ripe.net.	1800	IN	NS	ns-pri.ripe.net.

;;[S] self sig OK; [B] bogus; [T] trusted
  

A DNSSEC bevezetése változásokkal jár

.hu nídz DNSSEC ???

  1. Kinek van szüksége DNSSEC-re?
    • Ahol nagyon fontos a biztonság, ezt is érdemes bevezetni
      • Tisztában kell lenni a korlátaival és veszélyeivel is
  2. Kell-e a .hu-ban DNSSEC?
    • Kell, de nem érdemes sietni vele
    • Érdemes NSEC3 és opt-in használatával
      • Így megakadályozzuk a ,,walk''-ot
      • A zónának csak egy töredékét érinti a bevezetés
    • Nem csak technikai vonatkozásai vannak!
      • Például kedvencbankom.hu NS rekordjai nem közvetlenül, hanem a regisztrátor által kerülnek a .hu-ba
      • A DS rekordra ez vélhetőleg nem tartható...

Olvasnivaló