A DNSSEC megértéséhez mindenekelőtt a DNS rendszer alapvető működésével kell tisztában lenni.

A DNS fő funkciója, hogy a domain neveket (mint a pelda.hu) numerikus internet címekre (mint a 91.227.139.235) fordítja le.

Habár ez a numerikus címzési rendszer nagyon hatékony adatok olvasására és feldolgozására számítógépek esetében, az embereknek nagyon nehéz ezeket megjegyeznie.

Tegyük fel: minden alkalommal amikor egy webhelyet szeretnénk meglátogatni, akkor az IP cím alapján kellene ezt megtenni. Emiatt is hívják a DNS-t az internet telefonkönyvének.

Ezen probléma megoldására egy numerikus IP-címet csatoltak minden domain név mellé.

A webhelyek címei, amiket ismerünk tulajdonképpen domain nevek.

Domain nevekkel kapcsolatos információk speciális szervereken vannak eltárolva és ezen keresztül is hozzáférhetőek. Ezeket Domain név szervereknek nevezzük, ezek alakítják a domaineket IP címekké és az IP-ket domainekké.

A DNS felső szintje egy úgynevezett root zónában helyezkedik el, ahol az összes IP és domain név adatbázisokban van tárolva és TLD-k alapján rendezve, mint például .com, .net, .org ,stb…

Mikor a DNS-t először helyezték szolgálatba nem volt védve, sem pedig felügyelve, és hamar sok potenciális veszélyforrásra derült fény. Ennek eredményeként, kifejlesztésre került egy biztonsági rendszer olyan módon, hogy azt könnyedén hozzá lehetett adni kiegészítésként a meglévő DNS protokollokhoz.

A Domain Name System Security Extension (DNSSEC) nem más, mint egy protokollkészlet, ami hozzáad egy biztonsági réteget DNS lekérdezésekhez és az adatcsere folyamatokhoz, amik a weboldalak eléréséhez szükségesek.

Hogyan működik a DNSSEC:

A DNSSEC eredeti célja az volt, hogy védelmet nyújtson a hamis DNS adatokkal szemben. Ezt az adatokba ágyazott digitális aláírással kívánta elérni.

Mikor egy látogató beír egy domain nevet a böngészőjébe, az ellenőrző hitelesíti az aláírást.

Ha a digitális aláírás egyezik a mester DNS szerveren tárolt adatokkal, az adatok hozzáférhetőek a kérést intéző kliens számítógép számára.

Ha a digitális aláírás egyezik a DNS szerveren tárolt adatokkal, az adatok hozzáférhetőek lesznek a kérést intéző kliens számítógép számára.

A DNSSEC digitális aláírás biztosítja, hogy a felhasználó azzal a weboldallal kommunikál, amelyet fel akart keresni.

A DNSSEC egy publikus kulcsokból és digitális aláírásokból álló rendszert használ az adatok hitelesítéséhez. Ez egyszerűen hozzáad egy új rekordot a már létező DNS rekordokhoz. Ezek az új rekordok, mint például RRSIG és DNSKEY, ugyanúgy lekérdezhetőek mint az A, CNAME és az MX rekordok.

Ezek az új rekordok digitálisan megjelölik, aláírják a domaint, egy publikus kulcs-kriptográfiaként ismert módszerrel.

Az aláírt névszerver minden zónájában rendelkezik egy publikus és egy privát kulccsal. Mikor valaki egy kérést intéz a szerverhez, ez a szerver privát kulcsával aláírt információt küld neki, majd a címzett ezt a publikus kulccsal oldja fel. Ha egy harmadik fél ismeretlen, megbízhatatlan információt próbál küldeni, az nem oldható fel megfelelően a publikus kulccsal, így a fogadó fél tudni fogja, hogy az információ hamis.

DNSSEC által használt kulcsok

Két a DNSSEC által használt kulcs létezik.

A zóna aláírókulcs (zone signing key) – a zónában található egyedülálló rekordok megjelölésére és hitelesítésére szolgál.

A „kulcs aláíró kulcs” (key signing key) – a zónában található DNSKEY rekord aláírására használják.

Mindkét kulcs DNSKEY rekordként van tárolva a zóna fájlban.

DS rekord megtekintése

A DS rekord a Delegation Signer rövidítése. A rekord tartalmazza a publikus kulcs egyedi karakterláncát és a kulcsról szóló metaadatot is, ami például azt is leírja, hogy milyen algoritmust használ.

Minden DS állomány négy részből áll: KeyTag, Algorithm, DigestType és Digest és a következőképpen néz ki: pelda.hu. 3600 IN DS 2371 13 2 18e02779e597bf3662db339464ea2614c3607d7127bc7684f56f31dfab038e96

A DS állomány külön részeit fel tudjuk bontani, hogy lássuk az egyes részek, milyen információt tartalmaznak:

  • pelda.hu – domain név, ahova a DS tartozik.
  • 3600 – TTL, az az időtartam, ameddig az állomány a cache-ben marad.
  • IN – mint internet.
  • 2371 – KeyTag, a kulcs azonosítója.
  • 13 – az algoritmus típusa. Minden engedélyezett algoritmusnak saját száma van a DNSSEC-ben.
  • 2 – digest típus, vagy a hash funkció, aminek a segítségével generálódott a digest a publikus kulcsból.
  • A hosszú karakterlánc a végén a digest vagy a publikus kulcs hash-je.

Minden DS állománynak meg kell felelnie az RFC 3658-nak.