DNSSEC
DNSSEC

DNSSec Nedir?

DNSSec henüz tam anlaşılmış ve devreye alınmış bir teknoloji değil maalesef. Ancak standart DNS’in bilinen zaafiyetlerinin giderilmesi için ihtiyaç duyulmaktadır.

HTTP’den HTTPS’e geçişte, SSL’den TLS’e geçişte olduğu gibi güvenlik ihtiyaçları doğrultusunda geçiş zorunludur ve yakın zamanda bu geçişin tamamlanacağını düşünüyorum.

İsterseniz DNSSec kapsamında ele almamız gereken terminolojilerden, DNS’in maruz kaldığı atak çeşitlerinden, asimetrik anahtar şifrelemeden, dijital imzalardan, vs bahsedelim.

Sonrasında da DNSSec’in nasıl çalıştığını inceleyelim.

 

DNS Tarihi:

1990 : Dr. Steven M. Bellovin tarafından DNS’in güvenlik zaafiyetleri bulunmuştur.

1995 : Dr. Steven M. Bellovin DNS güvenlik zaafiyetleri ile ilgili makalesini yayınlamıştır.

1997 : IETF (Internet Engineering Task Force) bahsedilen açıklıklar ile ilgili ilk yayını yapmıştır:

RFC 2065 : Domain Name System Security Extensions

1999 : IETF gözden geçirilmiş ve tam anlamıyla çalışabilir durumda olduğuna inandığı ikinci yayını yapmıştır:

RFC 2535 : Domain Name System Security Extensions

2005 : IETF, şimdilerde DNSSec olarak bilinen ve internet ağ yapısı ile uyumlu hale getirilmiş yayınları yapmıştır:

RFC 4033 : DNS Security Introduction and Requirements

RFC 4034 : Resource Records for the DNS Security Extensions

RFC 4035 : Protocol Modifications for the DNS Security Extensions

2010 : ICANN (Internet Corporation for Assigned Names and Numbers), imzalı “Root Zone” devreye aldı.

Bu son gelişme ile DNSSec tam anlamı ile kullanılmaya başlanmıştır.

 

Dijital İmza Terminolojisi:

Asimetrik Anahtar Şifreleme (Asymmetric Key Cryptography) : Genel Anahtar Şifreleme olarak da bilinir. 2 ayrı anahtar kullanan bir şifreleme yapısına sahiptir. Bir anahtar genel kullanımda iken, diğeri özelde tutulur ve birinin şifrelediğini ancak diğeri açabilir.

Hash Fonksiyonu : Tek yönlü, matematiksel bir fonksiyon ile şifrelenen ve giren verinin boyutundan bağımsız olarak, sabit uzunlukta bir çıktı veren fonksiyondur. Çok çok düşük olasılıkla farklı iki verinin sonucu aynı çıkabilir. Geri dönüşsüzdür.

Digest : Hash fonksiyonu sonucu elde edilen çıktıdır.

 

Dijital İmzalama Çalışma Mantığı:

Aşağıdaki şemadaki yapıyı inceleyelim.

Erdem’in bir dökümanı var. Bu dökümanı MD5 algoritması ile hash’liyor ve bir digest elde ediyor. Bu digest’i de Erdem’in Private Key’i ile encrypt ediyor (şifreliyor).

Erdem bu dökümanı Ayça’ya gönderiyor (*1).

Erdem ayrıca kendi private anahtarı ile şifrelediği digest çıktısını da Ayça’ya gönderiyor (*2).

Ayça gelen dökümanı aynı algoritmayı kullanarak hash’liyor ve bir digest elde ediyor. Sonra gelen şifreli veriyi de Erdem’in Public Key’i ile decrypt ediyor (şifresini açıyor).

Sonuçta Ayça’nın elinde 2 adet digest oluyor. Karşılaştırdığında aynı olduğunu görürse 2 şeyden emin oluyor:

  1. Dökümanı Erdem’in gönderdiğinden,
  2. Dökümanın içeriğinin değişmediğinden.

 

digital signing

digital signing

 

DNS Terminolojisi:

Iterative DNS Query : Yinelemeli DNS sorgusu olarak çevirebiliriz. Sorguyu gönderdiğimiz sunucudan cevap bekleriz ancak onun başkasına sormasını istemeyiz. Yani ne biliyorsa o söyleyecek, başkasına sormayacak. Yanıt yoksa istek zaman aşımına uğrar.

Recursive DNS Query : Özyinelemeli DNS sorgusu olarak çevirebiliriz. Aslında kelime anlamı olarak çok yakın iki kavramdır. Sorguyu gönderdiğimiz sunucu (Recursive caching DNS Server), cevabı bulana kadar sorguyu iterative olarak devam ettirir ve kendisi bilmiyorsa bile bilen birisine ulaşıp cevap döner.

 

DNS Nasıl Çalışır:

DNS (DNSSec değil), istemcinin recursive caching DNS sunucusuna recursive bir istek yapması ile başlar. Bu sunucunun iterative istekler ile .(root), TLD, Auth. DNS Server, … gibi bir dizi sorgu ile devam eder. Aranan domain’e (alan adına) karşılık gelen IP adresinin bulunması ile, bu sorgu sona erer. Aşağıdaki şemada yapıyı inceleyebiliriz:

Normal DNS

Normal DNS

  1. İstemci yerel Recursive Caching DNS Sunucusu’na, erdemerdag.com adresinin çözümlenmesi için recursive sorgusu gönderir.
  2. Recursive Caching DNS Sunucusu erdemerdag.com için “root sunucusu”na “(.)” iterative sorgu gönderir.
  3. Root DNS Sunucusu, com zone isim sunucusuna yönlendirir.
  4. Recursive Caching DNS Sunucusu erdemerdag.com için “com sunucusu”na iterative sorgu gönderir.
  5. Com DNS Sunucusu, erdemerdag.com zone isim sunucusuna yönlendirir.
  6. Recursive Caching DNS Sunucusu erdemerdag.com için “erdemerdag.com sunucusu”na iterative sorgu gönderir.
  7. erdemerdag.com DNS Sunucusu, erdemerdag.com IP adresini paylaşır.
  8. Recursive Caching DNS Sunucusu, istemciye IP adresini gönderir.
  9. İstemci öğrenmiş olduğu sunucu IP adresi ile etkileşime geçer.

 

Man In The Middle Saldırısına Maruz Kalan DNS:

DNS yapısı gereği zaafiyetler barındırmaktaddır ve Man In The Middle (aradaki adam) saldırılarına açıktır. Bu atağa maruz kalan DNS şeması aşağıdaki gibidir:

Hacked DNS

Hacked DNS

Yukarıdaki şemaya göre 7. adımdan sonra istenmeyen bir sunucu bilgisi önce recursive caching DNS’e sonra client’a paylaşılır. Sonucunda da istemci istenmeyen, zararlı bir sunucunun IP adresine istek yapar.