O varnosti protokola DNS se ni ravno veliko spraševalo vse do leta 2008, ko je Bolgar Dan Kaminsky odkril varnostno luknjo, poimenovano aktivno zastrupljanje medpomnilnika DNS. Preprosto povedano, odkril je, kako rekurzivnemu DNS-strežniku podtakniti lažne podatke. Tako je lahko napadalec na preprost način dosegel, da so uporabniki, ki za poizvedbe večinoma uporabljajo DNS-strežnike svojih internetnih ponudnikov, namesto na želeni strežnik dostopali do strežnika v upravljanju napadalca. Luknjo so proizvajalci DNS-strežnikov odpravili hitro. Se je pa takrat pojavila potreba po dodatnih varnostnih mehanizmih v sistemu DNS. Tem varnostnim mehanizmom pravimo DNSSEC – varnostna razširitev protokola DNS.

Kaj DNSSEC rešuje in česa ne

Podatki, ki pridejo do rekurzivnega DNS-strežnika, so digitalno podpisani in se preverijo s pomočjo kriptografije z javnim ključem (Public Key Criptography). Torej istim mehanizmom, ki ga uporabljata protokola SSL in TLS in ki se ju uporablja na primer za varen dostop do spletne banke ali storitev javne uprave. DNSSEC nam tako zagotavlja, da rekurzivni strežnik že sam zavrne lažne podatke, ki bi jih potencialni napadalec poskušal podtakniti uporabnikom prek strežnika. Vendar nam DNSSEC ne zagotavlja zaupnosti. Če nam nekdo prisluškuje, nas sicer ne bo mogel preusmeriti na lažni naslov, bo pa kljub temu videl, po katerih domenskih imenih sprašujemo. Če bi v DNS dodali zaupnost, ne bi dosegli veliko, saj nam lahko še vedno prisluškujejo prek večine najbolj razširjenih protokolov (HTTP, FTP, SMTP …), ki so podlaga za naše vsakdanje delo in zabavo na spletu.

Domena, vrhnja domena, korenska domena DNS je strukturiran hierarhično. Hierarhija je v obliki drevesa prikazana na sliki 1. Na vrhu drevesa je korenska (root) domena, ki jo zapišemo tudi s praznim znakom („“). Eno raven nižje so vrhnje (TLD – top level domain) domene (com, net, si). Domenam, ki sledijo, pa pravimo kar domene (na primer dnssec.si, register.si). Sliko beremo ravno nasprotno kot pot do datoteke na disku. Če bi drevo iz slike zapisali kot pot na disku, bi dobili /si/dnssec.

Zakaj sploh potrebujemo DNSSEC

Certifikatni sistem, na katerega se zanašata SSL in TLS, poka po šivih. Verjetno se vas veliko spomni varnostnega incidenta, povezanega s certifikatno agencijo DigiNotar. Hekerjem je lansko poletje uspelo vdreti v njihov sistem za digitalno podpisovanje in podpisati certifikate za google.com, facebook.com in še marsikatere druge domene. Tako je obstajala možnost prisluškovanja uporabnikom, ki so dostopali do teh strani, ne da bi ti kar koli opazili, kar so na določenih mestih zlonamerne vlade in organizacije tudi izkoristile. Varnost certifikatnega sistema je odvisna od najšibkejšega člena, ki mu zaupamo. Tako nam čisto nič ne pomaga, če skoraj vse certifikatne agencije zelo dobro skrbijo za svojo varnost, če obstaja neka druga, ki je precej ranljiva. Tudi sami si v nastavitvah svojega brskalnika lahko ogledate, komu vse zaupa. Presenečeni boste opazili, da je takšnih certifikatnih agencij preveč. Če povzamemo, lahko vsaka od agencij, ki jim brskalnik zaupa, podpiše certifikat za katero koli domeno, do katere boste dostopali.

Veriga zaupanja in digitalno preverjanje podpisane domene

V primeru DNSSEC je veriga zaupanja zgrajena prek sistema DNS. Administrator sistema DNS domene (za primer vzemimo domeno dnssec.si) ustvari par ključev, s katerimi bo domena podpisana. Domeno podpiše z zasebnim delom ključa, javni del pa objavi v DNS. Da se vzpostavi veriga zaupanja, mora administrator v zadnjem koraku digitalni izvleček javnega dela ključa objaviti v starševski domeni.

Verigo zaupanja preverimo po naslednjih korakih. Korak 1: Domena www.dnssec.si je podpisana z zasebnim delom ključa domene dnssec.si. Podpis preverimo z javnim delom ključa domene dnssec.si. Korak 2: Digitalni izvleček javnega dela ključa domene dnssec.si je podpisan z zasebnim delom ključa vrhnje domene si. Podpis preverimo z javnim delom ključa vrhnje domene si. Korak 3: Digitalni izvleček javnega dela ključa domene si je podpisan z zasebnim delom ključa korenske domene. Podpis preverimo z javnim delom ključa korenske domene. Korak 4: Rekurzivni DNS-strežnik mora poznati javni del ključa korenske domene oziroma njegov digitalni izvleček. To je edini podatek, ki ga mora rekurzivni DNS-strežnik poznati vnaprej, da lahko preveri poljubno domeno.

Dodana vrednost DNSSEC

Zdaj ko smo se seznanili z uporabo in prednostmi DNSSEC, pa pride na vrsto naslednja faza. Namesto certifikatnih agencij lahko za overjanje certifikatov uporabimo kar DNSSEC. Sistem preverjanja certifikatov prek DNSSEC pa je uporaben širše kot zgolj za spletno varnost. Mnogi poštni strežniki pri izmenjavi elektronske pošte že uporabljajo sistem šifriranja podatkov (na primer TLS). TLS se pri izmenjavi elektronske pošte zanaša na certifikate, preverjanje njihove veljavnosti pa je trenutno še bistveno slabše od certifikatov, ki jih uporabljajo spletni brskalniki. Ko prvič dostopamo do SSH-strežnika, moramo preveriti njegov ključ. Javni del ključa oziroma njegov digitalni izvleček lahko damo v DNS, vendar do vpeljave varnosti v DNS to ni bila učinkovita rešitev. DNSSEC nam zdaj omogoča vse to.

Faze vpeljave DNSSEC v Sloveniji in svetu

DNSSEC je bil na korenski domeni implementiran 15. julija 2010. Vrhnja domena org je bila podpisana že pred tem (junija 2009), net je bila podpisana decembra 2010, com pa aprila 2011. Domena si je bila podpisana 30. novembra 2011, veriga zaupanja pa je bila dokončno sklenjena 24. decembra istega leta. V Sloveniji se, kljub številnim prednostim in zagotavljanjem večje varnosti, z DNSSEC trenutno ukvarjajo le posamezniki, ki jih tehnologija zanima. Nekatere državne ustanove se že zanimajo za uvedbo DNSSEC v svoje sisteme, pogrešamo pa večje zanimanje organizacij, pri katerih je varnost resnično ključnega pomena (na primer banke).

V tujini je stanje sicer boljše. Nekatere vlade, kot sta ameriška in nizozemska, so izdale direktive, s katerimi zahtevajo, da so domene vladnih ustanov podpisane. Znotraj vrhnje domene gov sta tako podpisani že več kot dve tretjini vseh domen. Poleg tega se v tujini uporabo tehnologije DNSSEC promovira s cenovno politiko. Tako so lahko domene, ki uporabljajo DNSSEC, celo cenejše od tistih, ki tega ne uporabljajo. Cena je še en dodaten razlog, da predstavlja DNSSEC resno konkurenco certifikatnim agencijam, za katere je izdajanje certifikatov zelo donosen posel.

Dušan Kozic, Arnes