DNSSEC: I have no root and I must scream

Ondřej Surý 11. 2. 2009

Možná si ještě vzpomenete na chybovou hlášku některých verzí jádra, která se vypisovala v případě, že nebyl nalezen diskový oddíl pro kořenový adresář. V případě Linuxu došlo k zastavení bootovací sekvence. U DNSSEC není situace tak kritická a existují způsoby, jak chybějící podpis kořenové zóny vyřešit.

Po podpisu kořenové zóny bude stačit v konfiguraci validujícího resolveru mít pouze klíč pro kořenovou zónu. V ideální případě všechny ostatní domény budou podepsány tak, že k použitým klíčům povede řetěz důvěry od kořenového klíče. V současnosti však kořenová zóna podepsána není a proto je zapotřebí tuto situaci nějakým způsobem vyřešit. Pokud pomineme možnost DNSSEC validaci vůbec nepoužívat, tak nám zbývají tři cesty, jak vytvořit řetěz důvěry.

Způsob první – Jednotlivé klíče

Způsob první už jsme si ukázali v předchozích článcích. Do konfigurace validujícího resolveru přidáme jednotlivé klíče – pevné body důvěry – pro všechny domény (resp. ostrovy důvěry), které chceme validovat. Tento způsob je nejjednodušší, lze jej použít i na doménová jména, která nejsou veřejná, a administrátor má věci pevně pod kontrolou. Z výhod plynou i nevýhody – je zapotřebí se o individuální klíče pečlivě starat. Pokud by administrátor zapomněl nakonfigurovat nové klíče v případě jejich výměny na autoritativním serveru, došlo by k zneplatnění všech podpisů a doména by se jevila jako nedostupná. Tento systém je také velmi nepraktický – pokud bychom přidávali klíč pro každé doménové jméno, brzy by mohlo dojít k tomu, že bychom v konfiguraci validujícího resolveru měli klíčů příliš mnoho a údržba by přestala být zvladatelnou.

Způsob druhý – Domain Lookaside Validation

S druhým způsobem přišla společnost ISC – autor DNS serveru Bind. Mechanismus DLV funguje tak, že se validující resolver podívá „bokem“. V praxi to funguje tak, že nejprve se validující resolver snaží vytvořit řetěz důvěry mezi podpisem a nakonfigurovanými pevnými body důvěry – tedy hledá DS záznam v nadřazené zóně. Pokud DS záznam není v nadřazené zóně nalezen, připojí ke jménu validované domény název DLV registru a hledá DLV RR záznam pro tuto nově vzniklou kombinaci. V případě nálezu DLV záznamu je výsledek dotazu použit stejně, jako kdyby měl validující resolver k dispozici DS záznam v nadřazené zóně.

Komunikace validujícího resolveru s DLV registrem může vypadat například takto:

1. Zóna .cz je podepsaná a v DLV registru
2. Je vytvořen DNSSEC dotaz na A záznam jména www.dnssec.cz a je poslán kořenovým nameserverům
3. Není nalezen DS záznam v kořenové zóně pro zónu .cz
4. Validující resolver se zapnutou DLV validací bude hledat DLV záznam cz.dlv.isc.org

;; ANSWER SECTION:
cz.dlv.isc.org.     3319 IN DLV 7978 5 1 (
                9B6C3898470914CDDA98D0CC001688CB32C17A09 )
cz.dlv.isc.org.     3319 IN RRSIG DLV 5 4 3600 20090228094531 (
                20090129094531 9912 dlv.isc.org.
                GyjKws8ZveMSbDqL/DboeC7MHQmiqTiZDijMoaZd3B2k
                n9UxJPXlG9TPxDH2Ve5EgNOEPIV1Bm5YUzJ64JQFwF/l
                iIBsAMIFu5k41hj5oODsTuLryrUcKMBMCgJfJWBDxi02
                BXcRxfXUbbbCmI5fwEOFRsgDar/aKB6iVW3/Weg= )

5. Tento DLV záznam bude použit jako DS záznam pro zónu cz
6. Je vytvořen DNSSEC dotaz na A záznam jména www.dnssec.cz a je poslán autoritativním serverům pro zónu .cz
7. V zóně .cz je nalezen DS záznam pro zónu dnssec.cz
8. Tento DS záznam je použit pro validaci podpisu A záznamu v zóně dnssec.cz.

Konfigurace DLV registru pro DNS server Bind 9.3.3 a vyšší vypadá takto:

options {
    // zapneme DLV validaci
    dnssec-lookaside . trust-anchor dlv.isc.org.;

};
trusted-keys {
    dlv.isc.org. 257 3 5
        "BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+juoZrW3euWEn4MxDCE1+lLy2
        brhQv5rN32RKtMzX6Mj70jdzeND4XknW58dnJNPCxn8+jAGl2FZLK8t+
        1uq4W+nnA3qO2+DL+k6BD4mewMLbIYFwe0PG73Te9fZ2kJb56dhgMde5
        ymX4BI/oQ+cAK50/xvJv00Frf8kw6ucMTwFlgPe+jnGxPPEmHAte/URk
        Y62ZfkLoBAADLHQ9IrS2tryAe7mbBZVcOwIeU/Rw/mRx/vwwMCTgNboM
        QktUdvNXDrYJDSHZws3xiRXF1Rf+al9UmZfSav/4NWLKjHzpT59k/VSt
        TDN0YUuWrBNh";
};

V sekci options řekneme, od jakého místa v DNS hierarchii se má použít alternativní validace přes DLV registr a jaký DLV registr budeme používat. V současné době je v provozu pouze jeden DLV registr – provozuje ho společnost ISC na adrese dlv.isc.org. Aby mohly být DLV záznamy považovány za důvěryhodné, je zapotřebí, aby k nim také vedla cesta přes řetěz důvěry. Proto je zapotřebí do konfigurace přidat aktuální klíč DLV registru. Pozor! Klíč použitý v příkladu byl aktuální v době psaní tohoto článku, a tento klíč se v pravidelných intervalech mění. Platný klíč vždy najdete na adrese secure.isc.or­g/ops/dlv/. Na stejné adrese také najdete podrobný popis toho, jak používání DLV registru nakonfigurovat.

Pro DNS server Unbound 1.1.0 a vyšší je konfigurace ještě jednodušší, ze stránek secure.isc.or­g/ops/dlv/ si stáhneme aktuální klíč pro zónu dlv.isc.org:

$ wget -O /etc/unbound/dlv.isc.org.key http://ftp.isc.org/www/dlv/dlv.isc.org.key

Na výše zmíněných stránkách je dostupný i PGP podpis tohoto klíče a je velmi vhodné si jej ověřit.

Do konfigurace unbound.conf pak přidáme jednu řádku v sekci server:

# dlv-anchor-file: "/etc/unbound/dlv.isc.org.key"

Načteme novou konfiguraci a DLV validace je tímto zapnuta.

Velká výhoda DLV registru je množství domén, které začnete validovat ve chvíli, kdy DLV registr začnete používat. Mezi nevýhody bych uvedl – žádná kontrola nad tím, jaké klíče chcete nebo nechcete validovat, a provoz jediného DLV registru není v rukou autorit, které mají na starosti správu kořenové zóny, ale konsorcia ISC. DLV registr také není příliš škálovatelný – DLV klíče sice lze rozdělit do více podzón, neexistuje automatizované rozhraní pro přidávání/měně­ní/mazání klíčů z DLV registru. I přes to všechno je DLV registr dobrým způsobem, jak začít s validací DNSSEC podpisů – v ideálním případě musíte hlídat pouze jeden klíč v konfiguraci. Bohužel v DLV registru nejsou ani všechny podepsané TLD domény – např. švédská doména .se v DLV registru uložena není, a pokud ji chcete validovat, musíte přidat její klíč do konfigurace ručně.

Způsob třetí – IANA

Třetí způsob v sobě zahrnuje celkem dvě metody – nicméně obě jsou provozovány organizací IANA, která je (zjednodušeně řečeno) zodpovědná za obsah kořenové zóny. IANA již nějakou dobu provozuje testovací prostředí na podepisování kořenové zóny a toto testovací prostředí je veřejně přístupné. Naleznete jej na adrese ns.iana.org/dns­sec/status.html. Na těchto stránkách lze také najít ukázkovou konfiguraci pro Bind 9:

options {
...
        dnssec-enable yes;
        dnssec-validation yes;
...
};

zone "." {
     type hint;
     file "dnssec.root";
};

trusted-keys {
        "." 257 3 5 "AwEAAff8EiNa/S3wovNzPUmuBqe1pSjnNoen
                                        cXDNMpmjTgngGMPct+8KDKxM6FwvPSRx15gN
                                        RyRQfzSPU0WshDNkBV2TMtVpzqn/dsurbmTo
                                        ixRzLyLK2Kd2adg5o5yS/gaTgCo0HVBmIruS
                                        N3FVI2ugCWJBFLkFGHLvMJ0BTSYVqWGwQIzp
                                        EPKCbKN+L9nrLcvJRCWG59Yq6BUsSEKlzSK3
                                        jMhYQs6y5IiCGAVol+3VyjN93/lXkeUG6u7d
                                        lQsyiY9fxfeUvmn004y0TjAgjZqdwKZB0K9M
                                        A7qcALG3Tw2TXEdQsn9aY3DzNii3YEBidzER
                                        mY7n4hIUri1r59MnuNJq2x0=";
        "." 257 3 5 "AwEAAb+qUOkdZKCP0Qn/4TxJy2XD07xOckKj
                                        wwAHOE/Hn3rLGy0RpmVYCOrmJbVtfyC6i8SQ
                                        sRRKj6YUVlNg7EJ9gjK6rTiDlYMxSc0hFsoG
                                        I8qfAfmsjwClVh86rSIJvruvbcRsQURp/gvJ
                                        EdOaEHlA3JEIHS3cRR5AjKeF1IQdsGYtJMBM
                                        2VMtrgHKgOPZjzfM6bPyg+H9uMBwOm2HkSiE
                                        geAw2vXEHp0eNM2sOxUQMYYPkoywa28oxP4v
                                        dUI7ht4I8etlq3gNCEuBJjV4347ZQ0VHIwDw
                                        JSVmYBzc4f3REfEZS7h6fR33wPVQIw9NNi9p
                                        Cy7JRqzEGwHVft/re6SRqE0=";
};

Soubor dnssec.root pak bude obsahovat následující obsah:

. 3600 IN NS ns.iana.org.
ns.iana.org 3600 IN A 208.77.188.32

Touto konfigurací způsobíme přepsání konfigurace kořenových nameserverů na pouhý jeden. V případě výpadku toto serveru by (po vypršení záznamů ve vyrovnávací paměti resolveru) přestalo DNS být dostupné. Proto je tato konfigurace vhodná pouze pro testovací účely.

Žhavou novinkou chladného měsíce ledna je spuštění beta verze Interim Trust Anchor Repository na adrese itar.iana.org. ITAR je dočasné úložiště klíčů pro kořenovou zónu do doby než bude podepsaná kořenová zóna a DS záznamy budou uloženy přímo v ní. Z toho plynou určitá omezení – klíče do ITARu můžou vkládat pouze TLD operátoři. V současné době je ITAR v testovacím provozu a obsahuje klíče pro tři TLD – švédskou, brazilskou a také tu naši českou. Použití klíčů z ITAR registru pro DNS server Bind je v současnosti poněkud krkolomné, protože ITAR negeneruje soubor ve formátu trusted-keys, tudíž jeho použití znamená trochu toho skriptování na konverzi z DS záznamů do konfigurace Bindu. Master soubor je poskytován i ve speciálně naformátovaném souboru XML, který bude velmi snadné přes XSLT transformaci dostat do požadovaného formátu ve formě trusted-keys {}; direktivy.

Unbound podporuje formát souboru anchors.mf. Tento soubor je ke stažení na výše uvedených stránkách (včetně synchronizace přes protokol rsync):

$ rsync -rvP rsync://rsync.iana.org/itar/ /etc/unbound/itar/
$ cd /etc/unbound/itar/ && gpg --verify anchors.mf.sig anchors.mf
gpg: Signature made Sun 01 Feb 2009 01:45:06 AM CET using DSA key ID 81D464F4
gpg: Good signature from "IANA Trust Anchor Repository <itar@iana.org>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 1642 571A 578F 0DF2 6F82  785F F47D FB30 81D4 64F4

Zapnutí validace se provede následující direktivou:

trust-anchor-file: "/etc/unbound/itar/anchors.mf"

Opět i o této službě platí, že je zatím vhodná k použití pouze v testovacím provozu. V případě použití v produkčním prostředí bych doporučil spíše ruční kontrolu nově stažených klíčů a následné úpravy v konfiguraci DNS serverů dělat také ručně. Nicméně předpokládám, že v průběhu první poloviny tohoto roku dojde ke stabilizaci a spuštění repozitáře ITAR do produkce.

To je pro dnešek vše a v příštím díle seriálu o technologii DNSSEC se dostaneme k již avizovanému hledání problémů v DNSSEC validaci.


Autor je technickým ředitelem sdružení CZ.NIC.

Ohodnoťte jako ve škole:

Průměrná známka 2,91

Našli jste v článku chybu?
Zasílat nově přidané názory e-mailem
Vitalia.cz: Grilujte v parku i na loďce

Grilujte v parku i na loďce

Měšec.cz: Udali ho na nelegální software a přišla Policie

Udali ho na nelegální software a přišla Policie

120na80.cz: Poznáte, který z léků je pravý?

Poznáte, který z léků je pravý?

DigiZone.cz: Nové iRadio nabídne i stažení pořadu

Nové iRadio nabídne i stažení pořadu

120na80.cz: Odřenina. Jakou použít dezinfekci?

Odřenina. Jakou použít dezinfekci?

120na80.cz: 5 triků, jak zastavit krvácení po holení

5 triků, jak zastavit krvácení po holení

Vitalia.cz: Falšovaný salám v Kauflandu

Falšovaný salám v Kauflandu

Podnikatel.cz: Myšlenky Henryho Forda. Berte je za své

Myšlenky Henryho Forda. Berte je za své

Vitalia.cz: Taky ji kupujete? Je šizená

Taky ji kupujete? Je šizená

Vitalia.cz: 10 rad šéfkuchařů pro perfektní grilování

10 rad šéfkuchařů pro perfektní grilování

120na80.cz: 10 dezinfekcí: Vede „starý dobrý“ peroxid

10 dezinfekcí: Vede „starý dobrý“ peroxid

Vitalia.cz: 7 nemocí očí, které musíte léčit včas

7 nemocí očí, které musíte léčit včas

DigiZone.cz: Stream představil souboj žroutů

Stream představil souboj žroutů

Podnikatel.cz: Konečně vývar. Skoro jako od Steva Jobse

Konečně vývar. Skoro jako od Steva Jobse

Podnikatel.cz: Různé podoby lahve Coca–Coly. Úchvatné

Různé podoby lahve Coca–Coly. Úchvatné

Vitalia.cz: Před, nebo po snídani? Kdy je lepší čistit si zuby

Před, nebo po snídani? Kdy je lepší čistit si zuby

DigiZone.cz: O2TV zve na souboj Ledecké s Myslivcovou

O2TV zve na souboj Ledecké s Myslivcovou

Podnikatel.cz: Přechod z OSVČ na firmu? Totální šok!

Přechod z OSVČ na firmu? Totální šok!

DigiZone.cz: Panasonic v Praze uvedl TV pro rok 2016

Panasonic v Praze uvedl TV pro rok 2016

Vitalia.cz: SÚKL: vakcíny jsou bezpečné a s autismem nesouvisí

SÚKL: vakcíny jsou bezpečné a s autismem nesouvisí