DNSSEC

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

DNSSEC (zkratka pro Domain Name System Security Extensions) je v informatice sada IETF specifikací, které umožňují zabezpečit informace poskytované DNS systémem v IP sítích (tj. na Internetu). Jedná se o rozšíření, která klientům DNS (resolvery) umožňuje ověření původu dat, jejich integrity. Nezajišťuje však zašifrování (utajení) přenášených dat a nezaručuje jejich dostupnost.

Příklad podvržení DNS[editovat | editovat zdroj]

Běžný DNS systém slouží k překladu doménových jmen na IP adresy (a zpět), ale nemá žádnou ochranu proti napadení. Pokud je do webového prohlížeče zadána adresa www.banka.cz, může být přeložena na podvrženou IP adresu, přičemž v adresním řádku prohlížeče bude stále www.banka.cz, takže uživatel nepostřehne, že prohlížeč ve skutečnosti zobrazil podvrženou stránku (viz Phishing). Tomuto útoku se lze bránit tak, že www.banka.cz použije pro komunikaci zabezpečený protokol HTTPS, avšak ne každý uživatel může tento rozdíl postřehnout (navíc i toto se dá obejít, více viz HTTPS).

Jak DNSSEC funguje?[editovat | editovat zdroj]

DNSSEC používá asymetrické šifrování (jeden klíč pro zašifrování a druhý klíč na dešifrování). Podobný princip se používá pro šifrování a elektronické podepisování elektronické pošty (OpenPGP, S/MIME). Držitel domény, která používá DNSSEC, vygeneruje privátní a veřejný klíč. Svým privátním klíčem pak elektronicky podepíše technické údaje, které o své doméně do DNS vkládá. Pomocí veřejného klíče, který je uložen u nadřazené autority jeho domény, je pak možné ověřit pravost tohoto podpisu. I na úrovni domény .cz (tzv. národní doména, top-level doména, TLD) jsou technická data v DNS elektronicky podepsána a veřejný klíč k tomuto podpisu je opět správcem registru předán nadřazené autoritě (celosvětové kořenové servery DNS). Vytváří se tak hierarchie, která zajistí důvěryhodnost údajů, pokud není v žádném svém bodě porušena a všechny elektronické podpisy souhlasí.

Grafické znázornění[editovat | editovat zdroj]

Grafické znázornění.

Na obrázku vpravo je grafická reprezentaci validace DNSSEC. K doméně si musíme najít DS záznam u rodiče. Ten následně validovat pomocí rodičovského ZSK (který je podepsaný rodičovským KSK) a pokud rodič není kořenový server, pak tento proces opakovat. Kořenový server nad sebou již nikoho nemá, bere se tedy jeho KSK klíč jako validní.

Můžete si všimnout, že vedle kořenového serveru je větev s tzv. DLV záznamem. Jedná se o dodatečný bezpečnostní záznam pro ty domény, které by chtěly být DNSSEC validní, avšak jejich rodič DNSSEC nepodporuje. Tímto, místo DS záznamu u rodiče, je možno najít záznam potřebný pro validaci KSK domény na oficiálních serverech DNSSEC.

Jako další věc, která vás může zaujmout, je DNSKEY, který zdánlivě nic nepodepisuje, ale přesto je na serveru uložen. Některé domény mají více klíčů většinou z důvodu jejich omezené platnosti (každý klíč je platný pouze pro určité časové období, toto období je uvedeno přímo u klíče). V případě, že se blíží konec platnosti jednoho klíče, je třeba mít již nový připravený, aby správce mohl dát svému rodiči nový, platný klíč a změna klíčů tak proběhla takříkajíc hladce.

Prvky používané v DNSSEC[editovat | editovat zdroj]

DNSKEY[editovat | editovat zdroj]

Každá doména, pokud používá DNSSEC, má 2 typy podpisových klíčů. Každý klíč má veřejnou a privátní část. Jelikož DNSSEC je založen na asymetrickém šifrování, jsou data zašifrována privátní částí (není dostupná veřejnosti) a lze je rozšifrovat pouze veřejnou částí klíče.

Zone Signing Key (ZSK)
Slouží k podpisu vlastních dat (tedy dat této domény, která DNS server poskytuje v odpovědích na dotazy klientů), čímž zajistí, že pokud jsou podvržena, jste schopni to zjistit
Key Signing Key (KSK)
Slouží pro podepsání ZSK, hash veřejné části tohoto klíče je zároveň uložen u rodičovské domény. Také se označuje jako DNSKEY-SEP (Secure Entry Point)

Resource Record Signature(RRSIG)[editovat | editovat zdroj]

Pokud sloučíme všechny záznamy daného typu a následně z nich vytvoříme otisk a tento otisk pak zašifrujeme pomocí privátní části ZSK (nebo KSK), dostaneme RRSIG záznam pro daný typ (např. RRSIG over AAAA). Chceme-li tedy ověřit, že daný záznam je autentický (nebyl změněn třetí stranou), pak použijeme právě RRSIG pro porovnání otisků.

Delegation Signer (DS)[editovat | editovat zdroj]

Údaj u rodičovské domény obsahující hash veřejné části KSK (viz dále) potomka, který je rodičem podepsán. Díky tomuto údaji jsme schopni ověřit autenticitu potomka. Podrobné informace o tomto údaji lze nalézt v RFC 3658.

Řetězec důvěry[editovat | editovat zdroj]

Jedná se v podstatě o seznam záznamů, které byly použity pro validaci DNSSEC domény. Kořenová doména má veřejnou část svého KSK záznamuu na oficiálních stránkách, tento klíč pak validuje přes RRSIG její ZSK, který validuje DS záznam o potomku, který validuje KSK potomka a takto tento řetězec pokračuje, až se dostaneme na konec (za předpokladu, že je testovaná doména validní).

Historie DNS(SEC)[editovat | editovat zdroj]

  • 1973 až 1983 – centralizovaný systém.
  • 1983 – John Postel a Paul Mockapetris sepisují základy DNS (RFC881,882,883), první DNS server – Jeeves
  • 1986 – DNS jako IETF standard: RFC1034 a RFC1035
  • 1988 – DNS se začíná prosazovat, první verze BINDu
  • 1990 – Steven Bellovin objevuje vážnou chybu v DNS, publikování této chyby odloženo na 1995, Autentizace přístupů pomocí jména počítačů (rsh, rlogin)
  • 1995 – Steven Bellovin publikuje svojí zprávu z roku 1990, IETF začíná diskutovat o zabezpečení DNS
  • 1997 – publikováno RFC2065 – předchůdce RFC2535
  • 1999 – publikováno RFC2535 – první verze DNSSEC, BIND 9 implementuje DNSSEC
  • 1999 až 2001 – nasazení DNSSECu stagnuje
  • 2001 – ukazuje se, že DNSSEC je nevhodný k nasazení: podepsání záznamů vyžadovalo komplexní komunikaci s nadřazeným serverem, změna klíče u nadřazeného serveru vyžadovala změnu ve všech podřízených zónách, pro vyřešení problémů byla navržena nová verze (draft), která definovala DS záznam a zjednodušila tak komunikaci
  • 2002 až 2003 – implementace v BIND 9, první testu ukazují, že 2535bis je použitelné pro nasazení
  • 2004 – podpora 2535bis v BIND 9.3 a NSD2, čeká se na standardizaci
  • 2005 – publikováno jako RFC4033, RFC4034 a RFC4035, Švédsko jako první podepisuje svoji zónu (doména .se)
  • 2007 – na konferenci v Tallinnu se RIPE domlouvá na otevřeném dopise pro ICANN s výzvou k podpisu kořenové zóny
  • 2008 – ICANN zveřejňuje svůj záměr podepsat kořenovou zónu v dokumentu DNSSEC @ ICANN[1]
  • 2009 – ICANN a Verisign vydávají dokument o postupu podpisu kořenové zóny a požadavky na audit celého procesu[2] a 1. prosince začíná proces podepisování, průběžně se sleduje možný výskyt problémů
  • 2010 – dokončen proces podepisování kořenové zóny[3]

Použití[editovat | editovat zdroj]

Mezi inovátory patří Brazílie (.br), Bulharsko (.bg), Česká republika (.cz), Portoriko (.pr) a Švédsko (.se), kteří používají DNSSEC pro své top-level domény. RIPE NCC podepsalo všechny reverzní (tzv. in-addr.arpa záznamy), které byly ověřeny IANA.[4] ARIN také podepisoval reverzní zóny.[5] Prvním ISP byl ve Švédsku TDC. V ČR byl prvním registrátorem, který DNSSEC začal nabízet, Web4U a v současné době je zároveň největším registrátorem DNSSEC domén v celosvětovém měřítku.[6] V roce 2013 vláda ČR přijala usnesení, podle kterého musí orgány veřejné správy zabezpečit všechny jimi držené domény technologií DNSSEC. Tím se Česká republika stala pravděpodobně první zemí na světě, která se rozhodla pro povinné zabezpečení všech domén veřejné správy.[7]

Všechny projekty s DNSSEC jsou uvedeny na adrese http://www.dnssec.net/projects. Jsou také znázorněny na mapě v Google Maps.[8]

Nástroje[editovat | editovat zdroj]

DNSSEC potřebuje software na straně serveru a také na straně klienta. Zde jsou příklady nástrojů který DNSSEC podporují:

  • BIND hodně populární nástroj DNS server. Verze 9.3 implementuje nově DNSSEC-bis (DS záznamy) i když nepodporuje NSEC3 záznamy. BIND 9.6 byl představen v prosinci 2008 a má plnou podporu pro NSEC3 záznamy.
  • Drill zvládá také DNSSEC Domain Information Groper -jako nástroj v balíku s ldns.
  • Drill extension for Firefox přidává do Mozilla Firefox schopnost zjistit, zda je doména může být ověřen pomocí DNSSEC.
  • DNSSEC-Tools je SourceForge jejímž cílem je poskytnout snadno použitelné nástroje pro podporu všech typů správců a uživatelů využívající DNSSEC. Nabízí nástroje pro správce autoritativní zóny, autoritativního serveru a Rekurzivního serveru, stejně jako knihovny a nástroje pro vývojáře aplikací patchů pro rozšíření stávající běžné aplikace.
  • Zone Key Tool je software určený pro snadnou údržbu zón DNSSEC. Je primárně určen pro prostředí s malým a středním počtu zón a poskytuje plně automatický podpis klíče rolovací zóny stejně jako automatické odstupující zóny.
  • Unbound je DNS server, který byl napsán od základu na DNSSEC.
  • DNSSEC podpora se zavádí v Windows 7 a Windows Server 2008 R2.[9]
  • mysqlBind GPL OSS na DNS ASP nyní také podporuje DNSSEC.
  • OpenDNSSEC je určen DNSSEC signatářem nástroj pomocí PKCS#11 pro rozhraní s Hardwarovými ochrannými moduly.

Reference[editovat | editovat zdroj]

  1. http://www.icann.org/en/announcements/dnssec-paper-15jul08-en.pdf – DNSSEC @ ICANN
  2. http://www.ntia.doc.gov/DNS/DNSSEC_Requirements_102909.pdf – Testing and Implementation Requirements for the Initial Deployment of DNSSEC in the Authoritative Root Zone
  3. http://www.root.cz/clanky/hotovo-dns-je-podepsano/ – Hotovo: DNS je podepsáno
  4. RIPE NCC DNSSEC Policy
  5. https://www.arin.net American registry for internet numbers
  6. http://blog.nic.cz/2010/03/02/dnssec-chrani-vice-nez-90-000-domen-cz/
  7. http://www.nic.cz/page/1821/vlada-schvalila-povinnost-zavedeni-dnssec-a-rozsirila-podporu-ipv6-/
  8. http://www.xelerance.com/dnssec/ – World Wide DNSSEC Deployment
  9. https://www.dns-oarc.net/files/workshop-2006/Microsoft-DNSSEC.pdf

Externí odkazy[editovat | editovat zdroj]

Odborné články[editovat | editovat zdroj]

  • www.lupa.cz-zde probírají v seriále DNSSEC z obou úhlů pohledu.
  • www.root.cz- zde to probírají více do detailů, ve více článcích.

Organizace[editovat | editovat zdroj]

Standardy DNSSEC[editovat | editovat zdroj]

  • RFC 2535 Domain Name System Security Extensions
  • RFC 3833 A Threat Analysis of the Domain Name System
  • RFC 4033 DNS Security Introduction and Requirements (DNSSEC-bis)
  • RFC 4034 Resource Records for the DNS Security Extensions (DNSSEC-bis)
  • RFC 4035 Protocol Modifications for the DNS Security Extensions (DNSSEC-bis)
  • RFC 4398 Storing Certificates in the Domain Name System (DNS)
  • RFC 4509 Use of SHA-256 in DNSSEC Delegation Signer (DS) Resource Records (RRs)
  • RFC 4641 DNSSEC Operational Practices
  • RFC 5155 DNSSEC Hashed Authenticated Denial of Existence

V tomto článku byl použit překlad textu z článku Domain_Name_System_Security_Extensions na anglické Wikipedii.