1 DNSSEC for dummies CZ.NIC z.s.p.o. Ondřej Surý /
2 DNSSEC a DNS ● Nemění se základní princip fungování DNS - na dotaz se opět odpoví seznamem záznamů publikovaných v zóně ● Přidává se několik nových bitových příznaků do protokolu ● Ke známým typům záznamů se zavádí čtyři nové typy záznamů – RRSIG – podpis nějakého záznamu – DNSKEY – veřejný klíč určený k podepisování – DS – delegace veřejného klíče o úroveň víš – NSEC – pro vyřešení negativních odpovědí ● DNS server přidají tyto nové záznamy k originální odpovědi
3 RRSIG – podpis záznamů ● Protože v odpovědi jsou vždy záznamy stejného typu, podepisuje se jedním podpisem celá skupina těchto záznamů v zóně ● RRSIG záznam obsahuje hash těchto záznamů podepsaných privátním klíčem ● Klient obdrží kromě originální odpovědi související RRSIG záznam a pokud má veřejný klíč může odpověď ověřit ● RRSIG záznam kromě vlastního podpisu obsahuje: – Identifikaci klíče, kterým se podepisovalo – Algoritmus použitý pro podepsání
4 DNSKEY – veřejný klíč ● Aby klient mohl ověřit data proti jejich RRSIG záznamu, potřebuje veřejný klíč ● Klíč je zveřejněn v zóně v podobě DNSKEY záznamu ● DNSKEY záznam obsahuje: – Identifikaci klíče pro jeho rychlé vyhledání (stejná jako v RRSIG) – Algoritmus použitý pro podepisování ● Klíčů může být několik (například s různou dobou platnosti) ● ZSK – klíč podepisující všechny záznamy v zóně s krátkou dobou platnosti ● KSK – klíč podepisující KSK s dlouhou dobou platnosti, který se zveřejňuje ven
5 DS – vytvoření „chain of trust“ ● Jak vím, že zveřejněný klíč který mám, patří dané doméně? ● Tento klíč je vložen do nadřazené domény v podobě DS záznamu ● DS záznam je spolu s ostatními záznamy této domény podepsán jejím privátním klíčem ● Tím se vytvoří řetěz důvěry, který vede až ke kořenové zóně ● K fungování celého mechanismu ověřování stačí jediný klíč – klíč kořenové zóny ● Pro urychlení mechanismu se tyto klíče kešují v resolverech ● DS záznam obsahuje hash klíče, jeho identifikaci pro vyhledání a algoritmus jakým byl vytvořen
6 NSEC – záporná odpověď ● Jak odpovědět, když dotazovaný záznam neexistuje? ● DNS standardně nevrací žádný záznam, jen příznak že záznam neexistuje ● Řešením je NSEC záznam, který reprezentuje prázdná místa v zónovém souboru ● NSEC záznam obsahuje předchozí a následující existující doménu – Domény musí být abecedně setříděné ● NSEC záznam je standardně podepsán jako ostatní záznamy ● Odpovědí na neexistující doménu je tedy podepsaný NSEC záznam dokazující, že tam daná doména opravdu není
7 Podpora v software ● Autoritativní servery – BIND, NSD, ANS ● Rekurzivní servery – BIND, Unbound ● Toolkity – Net::DNS::SEC, ldns, DNSRuby ● Nástroje – ldns, drill, dig, dnssec-tools ● Více na
8 Rekurzivní BIND ● Konfigurace důvěryhodných klíčů – Podepsat ROOT zónu! – Lookaside validace (DLV) ● Zapnutí DNSSEC ověřování
9 Zapnutí ověřování options { // zapneme DNSSEC dnssec-enable yes; // zapneme ověřování DNSSEC podpisů dnssec-validation yes; };
10 Důvěryhodné klíče // Klíče, kterým věříme // trusted-keys { "." "AwEAAbWMiPoQlFp+snq84lbEPx2kPgessP91ieS+jeab Isxi9tE9MCbEeCrRqPtKT1p50l+C0cvapYFAsg8VhyDI M1Tpyw8KHTgh267GciKfVkxRRZy68ndKRHC/bq8zqD4c YxVdJofTbIAmbxdX8OdYwtJ7ZFS7B14aSSQ/1y/8stX+ l3oAPgSbcIhjCMKzHOloR9npD6gGJpUud5zoyG1+GkVv uD7XPQpzmqO8KAyMz7/Nh2MmJHzfWp4LglqT4cdCT/S8 YTdE46I9+vDGlhknHIyEyI5mP9kZWXZa58wWbv9ZBTzN 0PNPWQHfPWp045wUAqrRagTbRs7sWw/fpKgC5I0=“; "in-addr.arpa." "AwEAAcNF+NK6ZTvr6JNptCBtDVB404U+AZ89E2r3tN1s StDTsgFZ7/9ZORS6NJ+68e56g5V2Tak7+KFTylXwQhj3 w3o84iu/8V4YxDUcXfKd8H2dK4ow5nJJcbYoaObKULCv 0VjuZ/5UKXLh56rCpiNrTmS1ixJcnWV/TjCHcTrPT5o/ NbsulfhHKDCGwSoRho298f0IJsYFFNM8+5/QqDY07Rmh xWLL030W6ur/EeT8GfRzVORExYlmgSqvhDAXsvP5WbPz lmcfyrJgaMQDSI+N0Jy+qRafCQbJubQRDpVXSvAj5LJL efttEkon1DQKJX5+oWKlGz7fOU5VUnV4axsLsmU=“ };
11 DLV registr options { // zapneme DNSSEC dnssec-enable yes; // zapneme ověřování DNSSEC podpisů dnssec-validation yes; // Náš DLV registr bude „dlv.isc.org“ dnssec-lookaside "." trust-anchor "dlv.isc.org."; }; trusted-keys { dlv.isc.org "BEAAAAPp1USu3BecNerrrd78zxJIslqFaJ9csRkxd9LCMzvk9Z0wFzoF kWAHMmMhWFpSLjPLX8UL6zDg85XE55hzqJKoKJndRqtncUwHkjh6zERN uymtKZSCZvkg5mG6Q9YORkcfkQD2GIRxGwx9BW7y3ZhyEf7ht/jEh01N ibG/uAhj4qkzBM6mgAhSGuaKdDdo40vMrwdv0CHJ74JYnYqU+vsTxEIw c/u+5VdA0+ZOA1+X3yk1qscxHC24ewPoiASE7XlzFqIyuKDlOcFySchT Ho/UhNyDra2uAYUH1onUa7ybtdtQclmYVavMplcay4aofVtjU9NqhCtv f/dbAtaWguDB"; };
12 Podepsání vlastní zóny ● Vygenerování KSK ● Vygenerování ZSK ● Vložení klíčů do zóny ● Podepsání zóny ● Zveřejnění DS záznamů
13 Vygenerování KSK a ZSK # dnssec-keygen -f KSK -a RSASHA1 -b n ZONE cz Kcz # dnssec-keygen -a RSASHA1 -b n ZONE cz Kcz
14 Vložení klíčů do zóny cz. IN DNSKEY AwEAAbCk0Gtxx/VY/fP4xSiNf+qhaD6Ng6Ukf4rj981Qtd96yaZJ 06q6lbfh0s9zwenOmizupAGYLhSVJQwCwbCH0waI5yZy/dFADaCg ho+47s+a5wHgTqOGhCqxlaVPH72taU6cLTRXqgg1qHkGjuY+cUQe dbE39EV/Y99rOKyXc55IfK+K8Tp2NtEo0nLSz0ZV+n+OPDvXWx7M /UwTxs19kqqulHMm GYHCa9ksa0ODyp9rUi6AvlJKl4rmyv2vId1 oUOSCTUE+egBTXGKR3Z/rFZc6wbcRKvsuhnPTiJsur45OswuWqLH TbioTQKCUlDnY89B1fKMo1h+H MhVXl82L/i0= cz. IN DNSKEY AwEAAeTTHMR3LVzgMyBUudaN6+6gdvloATdrERnMAaFMOQXyKBFC/DZL 1LNHGUQSm/76gALNTA2XPzCdT836z0h7zjfKbgw9NteDYQO56opz9d2m y5ryf4wtW46e2QrIwREvIPFY10rDPQ01n+pzvirmSsvwFtv79zXGau9f qbF9b+47
15 Podepsání zóny # dnssec-signzone -o cz -k Kcz db.cz Kcz cz IN SOA a.ns.nic.cz. hostmaster.nic.cz. ( ; serial 1800 ; refresh (30 minutes) 900 ; retry (15 minutes) ; expire (1 week) 900 ; minimum (15 minutes) ) RRSIG SOA ( cz. bapUMQULITCurLHSvZTKnrw5NNar5r92CwOX l7+Jdd0WwYU/QaMCSL0ckQ4/RcYQs5CY0bsc JnM5bZdq1VnSzo/ejx6RN3ucWsRkPLG5K6Vd eI2XNvilqqHnKKySJCsLMqrGx0kdzUxUhkr6 VLbPcnlO9gHb5RpU03jgT8joZt8= )
16 Zveřejnění DS záznamů # dnssec-signzone -g -o cz -k Kcz db.cz Kcz # cat dsset-cz. cz. IN DS AB0766D2A67E3A6C15D2DF9244A54E1D66172 cz. IN DS E214CCEBF D320D02D39BC8F4237A48E744FB858F394DAE86A 615D8CA0 # dnssec-signzone -l dlv.isc.org -o cz -k Kcz db.cz Kcz # cat dlvset-cz. cz.dlv.isc.org. IN DLV AB0766D2A67E3A6C15D2DF9244A54E1D66172 cz.dlv.isc.org. IN DLV E214CCEBF D320D02D39BC8F4237A48E744FB858F394DAE86A 615D8CA0
17 Otázky?