Vyšlo na Lupě, 12.12.2011
Vytištěno z adresy: http://www.earchiv.cz/b11/b1212001.php3

Mobilní operátoři nasazují DNSSEC

Nejprve Vodafone, a nyní i Telefónica zabezpečila své DNS servery pomocí technologie DNSSEC. Co to přináší a jak to pomáhá koncovým uživatelům jejich služeb?

Historie DNSSEC (DNS Security Extensions) v ČR má dva nové milníky: 24. listopadu 2011 ohlásil podporu této  technologie tuzemský Vodafone, a v těchto dnech (nejspíše právě dnes) ji ohlásí i česká Telefónica.

Třetí do party, T-Mobile, je zatím ve fázi testování technologie DNSSEC, ale o termínu jejího nasazení zatím nemá konkrétní informace. Vzhledem k rozvoji poskytování firemního řešení ProfiNet ale prý o nasazení DNSSEC vážně uvažuje.

UPC zase hlásí, že DNS servery s podporou DNSSEC v tuto chvíli již provozuje, ale pouze pro část B2B klientely  (prý ne všude je to zatím technicky možné). Zároveň pracuje na rozšíření služby i na rezidentní klienty, nicméně výsledky testu stávajících DNS serverů pro tento typ klientu nejsou prý dostatečně uspokojivé, a proto UPC nyní zvažuje otestování jiného technického řešení. Takže, stejně jako T-Mobile, v tuto chvíli nemá stanoven žádný termín nasazení.

Co znamená podpora DNSSEC?

Abychom správně docenili, co znamenají oba nové milníky (zavedení podpory DNSSEC u Vodafone a Telefóniky), pojďme si velmi stručně připomenout, o co vlastně jde a jakou formou může mít podpora DNSSEC.

Bez zacházení do detailů si můžeme říci, že DNSSEC je rozšíření klasického DNS, které využívá elektronický podpis k tomu, aby zabezpečilo vzájemnou komunikaci jednotlivých částí celého DNS. Jinými slovy: když se někdo (v roli tzv. DNS resolveru) na něco ptá někoho jiného (DNS serveru), DNSSEC umožňuje opatřit odpověď elektronickým podpisem. Pak už může být jedno, kudy se odpověď „toulá“ (kudy je přenášená) – protože pokud by ji někdo pozměnil, nebo místo ní podstrčil nějakou úplně jinou odpověď, tazatel (DNS resolver) by to spolehlivě poznal. Představu ukazuje následující obrázek.

Tím se dostáváme i k problému, který DNSSEC řeší: bez něj příjemce nemá podle čeho poznat, zda odpověď není nějak „cinknutá“ (někým po cestě pozměněná), či zda jde o úplně jinou odpověď, podstrčenou místo té správné. Důsledky ovšem mohou být fatální, zvláště v dnešní době plné phishingu a jemu podobných útoků - které staví právě na tom, že někoho zavedou na úplně jiné místo, než kam směřoval a kde si myslí, že je. Ale které vypadá úplně stejné, jako ono „pravé místo“.

Zpět ale k samotnému DNESSEC-u: jeho fungování má dva základní předpoklady. Prvním je to, aby ten, kdo odpovídá na nějaký dotaz, jej mohl opatřit elektronickým podpisem. Toto vyžaduje, aby samotná data, ze kterých odpověď čerpá, byla dostatečně spolehlivá a věrohodná.

Přeskočíme-li opět všechny detaily, musí být elektronicky podepsána ta doména, které se dotaz týká. A to nejenom ta nejvyšší (TLD .cz, resp. jiná), ale i doména druhé úrovně (například vodafone.cz) – aby mohla být elektronicky podepsána odpověď na dotaz například na www.vodafone.cz či samoobsluha.vodafone.cz apod. Analogicky pro domény nižších úrovní.

V praxi to tedy znamená, že musí být podepsána TLD doména .cz, a pak musí být individuálně podepsány domény druhé úrovně jako vodafone.cz, o2.cz, či lupa.cz, mojedatovaschranka.cz atd. (zůstaneme-li jen u domén druhé úrovně pod TLD .cz).

Tento proces (podepisování domén různých úrovní) již nějakou dobu probíhá. Doména .cz byla podepsána již na podzim roku 2008, aktuální stav podepsání jiných TLD můžeme vidět zde. Domény druhých úrovní jsou podepisovány následně, podle svých individuálních možností. A to, zda konkrétní doména druhé úrovně pod TLD .cz je či není podepsána (ve smyslu podpory DNSSEC) zjistíte například pohledem do záznamů o ní v databázi CZ.NICu, viz následující obrázky:

Vzhledem k výše uvedeným milníkům – zprovoznění podpory DNSSEC u Vodafone a Telefóniky – si řekněme, že Vodafone nechal podepsat některé své domény druhé úrovně pod TLD .cz, ale nikoli všechny. Podepsány jsou například domény vodafone.cz a vodafonepark.cz. Naopak bez podpisu je nadacevodafone.cz, či cilichili.cz.

Naproti tomu Telefónica (alespoň do uzávěrky tohoto článku) „své“ domény zatím nepodepsala. Bez podpisu je například o2.cz, či o2active.cz.

Podpora DNSSEC na straně DNS resolverů

Někteří tuzemští registrátoři, konkrétně Active24, OneSolution a Web4U, automaticky podepisují všechny domény druhé úrovně (pod TLD .cz) svých zákazníků. I díky tomu je 18% domén druhé úrovně podepsáno, což nás staví na první místo mezi všemi TLD.

Nicméně česká Telefónica, která je také registrátorem, tak nečiní – a ani „její vlastní“ domény podepsány nejsou. V jakém smyslu tedy nyní Telefónica zavádí podporu DNSSEC, když nejde o podepisování „jejích“ domén, ani domén jejích zákazníků (coby registrátora)? Podobně pro Vodafone, byť ten není registrátorem?

Odpověď souvisí se druhým předpokladem, který je nutný pro fungování DNSSECu a pro využití toho, co přináší. Ukazuje to i následující obrázek: ten, kdo dostává podepsanou odpověď (tedy: DNS resolver), musí být schopen ji vyhodnotit. Tedy ověřit platnost elektronického podpisu na odpovědi, neboli tzv. ji validovat.

Takový DNS resolver, který má schopnost provést ověření platnosti elektronického podpisu na odpovědi, je označován jako tzv. validující DNS resolver.

Co je ale DNS resolver vlastně zač, a kde se s ním setkáme?

Odpověď na tuto otázku je jednoduchá: jde o roli, ve které vystupuje „běžný“ DNS server, když dostane nějaký dotaz (například od koncového uživatele), a sám na něj nedokáže odpovědět: pak se sám postaví do role tazatele a zeptá se jiného DNS serveru, který je oprávněn na daný dotaz odpovědět (je tzv. autoritativní vůči doméně, na kterou dotaz směřuje).

Přeskočíme-li opět všechny technické detaily, je resolverem (ve smyslu předchozích obrázků a příkladů) právě ten DNS server, který internetový provider provozuje pro své zákazníky. Tedy ten, jehož adresu si zákazníci nastavují na svém počítači. Většinou tak ale činit nemusí (a ti méně zkušení by ani neměli), protože adresa tohoto serveru je jejich počítači poskytnuta automaticky, jejich providerem.

No a teď již se můžeme vrátit k oznámení obou operátorů: tomu je třeba rozumět v tom smyslu, že jejich DNS servery – konkrétně ty, které používají jejich zákazníci, a jejichž adresy jim jsou přidělovány automaticky – nyní podporují DNSSEC jako tzv. validující resolvery. V obou případech, tedy jak u Telefóniky tak u Vodafone, se toto má týkat jak DNS serverů používaných při pevném připojení (např. ADSL), tak i při mobilním připojení.

Jak je chráněn koncový uživatel?

Co ale toto vše znamená pro koncového uživatele? Jak je on chráněn, resp.: před čím a jak je chráněn?

Výše popsaný mechanismus chrání proti tomu, aby někdo napadl celou soustavu DNS serverů a snažil se nějak měnit to, co si navzájem sdělují. Protože jakmile tazatel (DNS resolver) dostane takovou odpověď, která je opatřena elektronickým podpisem, ale ten se mu nepodaří ověřit, samotné odpovědi nemůže důvěřovat. Obvykle ji zahodí, ale hlavně ji nešíří dál – ani ji neukládá do své vlastní cache paměti, ani ji neposkytuje koncovému uživateli, který si ji původně vyžádal. 

Pokud by tedy někdo skutečně napadl vzájemnou komunikaci mezi DNS servery, například pro potřeby nějakého phishingového útoku, DNSSEC na to přijde – a chrání před potenciálními důsledky. Z pohledu koncového uživatele by se to projevilo tak, že by vůbec nedostal požadovanou odpověď od toho DNS serveru, na který se jeho počítač obrací (a který vystupuje v roli DNS resolveru). Požadovaná stránka, které se odpověď týká, by se mu jevila jako nedostupná (z důvodu toho, že jeho počítač není schopen získat odpovídající IP adresu).

Můžete si to vyzkoušet na doméně rhybar.cz, která je záměrně „podvržena“ pro potřeby testování (ve smyslu neplatného podpisu, jinak je samozřejmě zcela nezávadná): pokud právě používáte DNS server s podporou DNSSEC, neměla by se vám tato stránka vůbec načíst. Tedy například pokud jste právě připojeni přes Telefóniku či Vodafone.

Existuje ale i řada jiných testů, podle kterých poznáte, zda v rámci svého připojení právě používáte DNS servery s podporou DNSSEC. Jeden z nich provozuje i sdružení CZ.NIC na svých stránkách na adrese www.dnssec.cz, věnovaných právě problematice DNSSEC.

Na následujícím obrázku vidíte příklad počítače (rezidenčního zákazníka) připojeného přes UPC, kdy jsou využívány DNS servery tohoto providera. Jak již zaznělo v úvodu, tyto DNS servery zatím nepodporují DNSSEC – což indikátor v podobě klíče signalizuje červenou barvou.

Na dalším obrázku je tentýž počítač, ale připojený (mobilně) přes Vodafone. A jelikož jeho DNS servery již podporují DNSSEC, indikátor to zohledňuje zelenou barvou.

Na Internetu ale existuje celá řada dalších možností pro otestování toho, zda vaše připojení je právě zabezpečeno pomocí DNSSECu. Například zde je jeden vtipný test, který je sice v angličtině, ale snad bude srozumitelný i těm, kteří angličtinou nevládnou:

Co když váš provider nepodporuje DNSSEC?

Pokud váš internetový provider stále ještě nepodporuje DNSSEC, stále máte možnost využívat výhody této technologie. Musíte ale pro to něco udělat: sami si na používaných počítačích (tabletech, mobilech atd.) nastavit takové DNS servery, které DNSSEC již podporují.

Dělat by to ale měli jen zkušenější uživatelé, kteří vědí, co a jak dělají. Přitom by měli mít na paměti, že DNS servery, provozované internetovými providery, často poskytují „plné portfolio“ svých služeb jen těm uzlům, které se nachází v jejich síti. Proto chcete-li používat jiné DNS servery, než ty od vašeho providera, musíte najít takové, které poskytují své služby všem.

Z těch, které plnohodnotně podporují DNSSEC, jsou to například DNS servery provozované sdružením CZ.NIC, na adresách 217.31.204.130 a 217.31.204.131. Podrobný návod k jejich nastavení najdete zde.

Kde zůstává úzké místo?

Nepříjemné je, že i když používáte DNS servery, které řádně podporují DNSSEC, stále ještě nejste chráněni vůči úplně všem možným útokům, vedeným skrze DNS.

Problém je v tom, že ten, kdo vyhodnocuje platnost elektronických podpisů na odpovědích (tedy validující resolver, neboli vámi používaný DNS server) není umístěn přímo na vašem počítači, ale „někde jinde“ (u vašeho providera, resp. u sdružení CZ.NIC atd.). A tak může být napadena a podvržena i komunikace mezi vaším počítačem a tímto validujícím resolverem, viz následující obrázek. Byť prostor pro takovéto napadení je zde výrazně užší.

Obranou proti tomuto nebezpečí může být přenesení samotného (validujícího) DNS resolveru blíž ke koncovému uživateli, tak aby k vyhodnocování platnosti elektronického podpisu docházelo přímo u něj, v jeho vlastní síti. To je ale řešení jen pro dosti speciální situace a hodně zkušené uživatele, kteří si umí takový validující resolver ve své síti nainstalovat a provozovat.

Další možností je to, aby funkce validujícího resolveru byla realizována přímo na počítači uživatele. Tedy aby se dotazy do DNS nepřeposílaly na příslušný (vnější, resp. externí DNS server), ale rovnou „kladly“ přímo z uživatelova počítače (včetně vyhodnocování el. podpisu na odpovědi). Zde už určitá řešení existují, jako například projekt DNSSEC-Trigger od NLnet Labs, ale zatím nejsou příliš rozšířená.

Určitou podporu technologie DNSSEC lze nalézt také na platformě Windows 7: zdejší DNS klient sice vyhodnocovat (validovat) elektronické podpisy na odpovědích od DNS serverů neumí (je „non-validating“), ale dokáže se alespoň zeptat příslušného DNS serveru, který mu odpověď zprostředkovává, zda on provedl pověření (validaci) a jak dopadla. S tím, že pokud dopadla špatně (odpověď byla podepsaná, ale podpis nebyl platný), bude i on odpověď ignorovat. Pro zabezpečení své komunikace s DNS serverem přitom umí používat IPSec.

Jelikož jde o věc poměrně novou a pokročilou, její nastavení není určeno běžným uživatelům, a také pro něj neexistuje žádné běžné uživatelské rozhraní. Vyžaduje zásah do tabulky NRPT (Name Resolution Policy Table), což lze udělat pohodlněji přes nástroje pro řízení skupin (Group Policies), a při jejich absenci ručně, zásahem do registru – způsobem, který je popsán například zde a zde.

Na svém počítači jsem potřebné nastavení provedl, snad správně - ale požadovaný efekt a funkčnost nemohu potvrdit. Možná proto, že na druhé straně musí být DNS server také na platformě MS Windows.

Plug-in do Firefoxu

Na obdobném principu, jako „nevalidující resolver“ ve Windows 7 funguje i plug-in (DNSSEC validátor), vyvinutý v laboratořích CZ.NICu. Běžně dostupný je pro Firefox, v alfa verzi existuje i pro Internet Explorer, a připravuje se také pro Google Chrome.

Také tento plug-in se ptá DNS resolveru (který by měl být validujícím resolverem), zda se mu podařilo podpis ověřit jako platný. A pokud ano, signalizuje to zeleně zbarveným klíčem v adresním řádku, viz následující obrázek:

Pokud plug-in narazí na doménu, která není chráněna pomocí DNSSEC, pochopitelně to také dá najevo, jako třeba na následujícím obrázku s internetbankingem České spořitelny.

Mimochodem, Česká spořitelna opakovaně varuje své zákazníky přes nebezpečím phishingu, což je určitě v pořádku – ale doménu, na které provozuje svůj internetbanking, pomocí DNSSECu nechrání.

V případě, kdy popisovaný plug-in nedokáže ověřit zabezpečení dané domény, dá to najevo žlutým trojúhelníkem (s otazníkem) přes svůj klíč. A pokud narazí na něco podvrženého, přesněji na případ, kde podpis nesouhlasí, vyznačí to červeným klíčem. Jako třeba u již zmiňované domény rhybar.cz, kde je tato situace navozena záměrně. Jako na následujícím obrázku.

U tohoto obrázku se ale ještě na chvilku zastavme. Dokumentuje totiž ještě jeden důležitý aspekt při práci s plug-inem: pokud by vaše připojení bylo zabezpečené pomocí DNSSEC (přesněji: pokud právě používáte DNS servery s podporou DNSSEC), vůbec byste tuto stránku neměli načíst. Načte se jen tehdy, pokud právě používáte takové připojení, které není zabezpečeno pomocí DNSSEC (přesněji: právě používané servery nepodporují DNSSEC). Proto také onen červeně zbarvený klíč (v pravé spodní části obrázku), signalizující absenci podpory DNSSEC.

Jak ale potom může zmíněný plug-in poznat, že podpis nesedí a ukazovat červený křížek i v adresovém řádku? Odpověď je taková, že plug-in sám musí spolupracovat s jinými DNS servery, které již DNSSEC podporují. Protože pouze tak se může dozvědět, že podpisy nesouhlasí.

Plug-inu proto lze nastavit, s jakými DNS servery má spolupracovat. Na výběr jsou tři možnosti:

  • „Načíst ze systému“ znamená použít ty DNS servery, které aktuálně používá i sám browser a celý operační systém (tj. „ty od providera“, resp. explicitně nastavené pro celý počítač)
  • „DNSSEC validující resolvery“ – zde jsou předdefinovány dvě možnosti: servery CZ.NICu a OARC
  • vlastní – zde je možné přímo zadat IP adresu konkrétních DNS serverů.

Jednou možnou strategií, jak plug-inu využít, je nechat „v systému“ takové nastavení, jaké poskytuje sám provider, a plug-in nastavit tak, aby pracoval s DNS servery CZ.NICu. Právě toto nastavení bylo použito pro předchozí obrázek s doménou rhybar.cz: systém i browser používaly DNS servery UPC, které ještě DNSSEC nepodporují. Proto se „doptaly“ na doménu rhybar.cz a stránka se načetla. Proto také červený klíč přímo na stránce. Ale plug-in byl nastaven tak, aby se ptal DNS serverů CZ.NIC, a od nich se dozvěděl, že podpis „nesedí“ – a proto zobrazil svůj červený křížek.

Pochopitelně nejjednodušší, a také nejspolehlivější, je situace kdy DNSSEC řádně podporují přímo DNS servery, provozované internetovým providerem pro jeho zákazníky. Ti pak nemusí nic nastavovat, a jsou chráněni automaticky. Což je nyní případ zákazníků Telefóniky a Vodafone.

A pokud váš provider DNSSEC ještě nepodporuje, můžete si v mezičase (než podporu zavede) nastavit DNS servery CZ.NICu již na úrovni celého systému, a ne pouze pro popisovaný plug-in. Protože ten pouze signalizuje (ale nechrání, ve smyslu zabránění přístupu).

Na závěr ještě malý výhled do budoucna: dnes je systém DNS využíván zejména jako převodní mechanismus mezi symbolickými doménovými jmény a číselnými IP adresami, rozšířený o některé další funkce (související například s doručováním elektronické pošty, umístěním konkrétních serverů apod.). Až bude dostatečně zabezpečený, bude možné jej rozšířit o další funkce, které souvisí právě s bezpečností, zabezpečením a důvěrností. Rozpracováno je například řešení (viz pracovní skupina IETF DANE, DNS-based Authentication of Named Entities), které umožní zveřejňovat důvěryhodným způsobem v DNS například SSL certifikáty. Správci jednotlivých domén tak budou mít dostatečně spolehlivý a zabezpečený způsob, jak dát všem uživatelům najevo, kterými SSL certifikáty se mohou prokazovat jejich servery. Či které certifikační autority takovéto certifikáty vydávají. Což dále zvýší celkovou bezpečnost v Internetu.