Teknoloji

DNSSEC Nedir? Neden Önemlidir?

Technopat olarak bizim de kullandığımız DNSSEC nedir? Nasıl çalışır? Çayınızı yahut kahvenizi alın, bu yazımızda bu iki sorunun karşılığını vermekteyiz.

DNS nedir? DNS nasıl çalışır?

DNSSEC’i anlayabilmemiz için, evvel DNS’in ne olduğunu bilmeliyiz.

DNS, “Domain Name Server” sözlerinin kısaltmasıdır. Kısaca DNS; alan isimlerini, sitenin gerçek IP adresine çeviren bir sistemdir. DNS hakkında daha fazla bilgi sahibi olmak için “DNS Nedir” isimli makalemizi okuyabilirsiniz.

DNS makalemize ek olarak, DNS bölgelerini anlamamız gerekli. DNS, farklı farklı bölgelere bölünmüştür. Bu bölgeler, DNS alan ismindeki açıkça yönetilen bölgelerden farklıdır. DNS bölgesi, belli bir kuruluş ya da yönetici tarafından yönetilen bir bölgedir.

Örneğin, google.com alan ismi için hayali bir bölge grafiği yapalım.


“google.com” için hayali bir bölge grafiği.

DNS neden inançlı değil?

DNS, 1980’li yıllarda tasarlanan bir sistemdir ve o vakitler Internet günümüze nazaran çok daha küçüktü ve DNS sistemi, güvenlik ön planda tutularak tasarlanmadı. DNS çözücü, yetkili nameserver’a (authoritative nameserver) sorgu gönderdiği vakit yetkili nameserver’dan gelen karşılığı teyit etmesinin tek yolu, çözücünün sorguyu gönderdiği o adresten yanıtın gelmesidir. Lakin bu inançlı bir yol değil; zira o adres verisi çarçabuk manipüle edilebilir.

DNS’in dizaynı gereği, manipüle edilmiş bir data, çözücü tarafından kolay kolay algılanamaz. Bir saldırgan kendisini kolay kolay yetkili nameserver kılığına sokarak, kendi sitesinin sunucusuna yönlendirebilir. Öteki bir deyişle kullanıcı, haberi olmadan diğer bir siteye yönlendirilebilir ve bu da hiç te âlâ olmayan sonuçlar doğurabilir.

Bir başka DNS açığı ise çözücüler hakkında. Çözücüler, yetkili nameserver’lardan aldıkları sitenin ana sunucusu hakkındaki bilgileri, alan ismi bilgisini daha süratli çözebilmek ismine depolarlar. Bir istemci, çözücünün depoladığı bir DNS verisini sorgularsa, çözücü çabucak karşılık verir. Şayet bir saldırgan, çözücü tarafından onaylanmış bir DNS karşılığı verirse, bir “DNS önbellek zehirlenmesi” (DNS cache poisoning) saldırısı gerçekleştirmiş olur ve çözücü, sorgu gönderen öteki aygıtları da makûs gayeli kişinin kurmuş olduğu sayfaya yönlendirir.

Bu hücumların bir banka sitesine gerçekleştirildiğini göz önüne alalım. Bir kullanıcı, sakin bir formda banka sitesine girip süreç yapmak istiyor. Ama o da ne; bankamız DNSSEC kullanmadığı için makus maksatlı bir kişi, “DNS önbellek zehirlenmesi” tekniği ile o bankanın sitesine girmek isteyen şahısları, o şahısların haberi olmadan kendi sitesine çekiyor! Kullanıcılar, bilgilerini girerek süreç yapmak istiyorlar ve süreçlerinin yapılamadığı hakkında bir kusur ile karşılaşıyorlar. Maalesef kullanıcılarımızın dataları, çoktan berbat emelli şahısların eline geçmiş oldu.

DNSSEC nedir?

Açılımı “DNS Security Extensions” olan DNSSEC, az evvelki gördüğümüz senaryo üzere senaryoların önlenmesi hedefiyle, IETF tarafınca bulundu. İsminden de anlaşıldığı üzere, bu sefer asıl maksat güvenlik olarak belirlendi ve 90’lı yıllarda çalışmalara başlandı.

DNSSEC, DNS’in doğrulamasını “açık anahtarlı şifreleme” (public-key cryptography) ile arttırdı. DNSSEC ile birlikte DNS sorgu ve karşılıkları değil, DNS verisinin kendisi, data sahibi tarafından şifrelenmekte.

DNSSEC’te, her DNS bölgesinin açık/gizli anahtar eşleşmesi bulunmaktadır. Bölge yöneticisi, bölgenin özel anahtarını (private key) kullanarak bölgedeki DNS verisini imzalar ve o bilginin üzerinde dijital imza oluşturur. Özel anahtar, bölge sahibi tarafınca bilinmeyen tutulur. Lakin açık anahtar (public key), erişen herkesin erişimine açıktır. Rastgele bir çözücü şayet o bölgede DNS sorgusu yaparsa, o da açık anahtarı döndürecektir ve bu bilgi de DNS verisinin doğrulanmasında kullanılacaktır. Şayet anahtar geçerli ise, DNS verisi de geçerli demektir ve kullanıcıya DNS verisi geri döndürülür. Değilse de, kullanıcıya kusur bildirisi gösterilir ve ilişki otomatik olarak kesilir.

DNSSEC, DNS protokolüne 2 adet kıymetli özellik ekler:

  • Çözücü, bilginin geldiği yeri kriptografik şifre ile doğrular. Şayet şifre geçerli değil ise sunucu ile ilişkiyi keser. Buna “data origin authentication” (veri kaynağı doğrulaması) denmektedir.
  • “Data integrity protection” (veri içeriği koruması) ile de çözücü, gelen datanın gelirken değiştirilmediğini ve bölgenin özel şifresi ile şifrelendiğini bilir.


DNSSEC anahtarlarına emniyetli mi?

Her bölgenin kendine has bir anahtarı var ve bu anahtar aracılığı ile de çözücü, o bölgenin verisini doğrulamakta. Ama çözücü, bu anahtarın emniyetli olduğunu nasıl anlıyor?

Bir bölgenin açık anahtarı imzalıdır. Lakin açık anahtar, bölgenin bilinmeyen anahtarıyla değil, bir üst bölgenin (parent zone) zımnî anahtarı ile imzalıdır. Örnek verecek olursak, “technopat.net” adresinin açık anahtarı, “.net” üst bölgesi tarafınca şifrelenir. Her bölgenin şifrelemesi, bir üst bölge tarafından yapılır ancak yalnızca kök bölgenin (root zone) şifrelemesi yapılamaz, zira rastgele bir üst bölgesi bulunmamakta.

Kök bölgesinin açık anahtarı, DNS verisini doğrulamak ismine değerli bir nokta. Şayet bir çözücü, kök bölgesinin açık anahtarına güveniyorsa, kök bölge tarafından imzalanan başka anahtarlara da güvenecektir, az evvelki örneğimizdeki “.net” alt bölgesi üzere. Ve şayet “.net” alt bölgesine güvenilirse de “technopat.net” alt bölgesine de güvenilecektir.

Bu stil zincirleme imzalamalara inanç zinciri (chain of trust), bu zincirin başındaki anahtara ise destek noktası (trust anchor) denmektedir. Bir çözücüde, destek noktası listesi bulunmaktadır. Bu destek noktaları ise farklı farklı bölgeler için çözücünün güvendiği açık anahtarlardır. Birçok çözücü yalnızca bir adet destek noktasına nazaran konfigüre edilmiştir; o da kök bölgenin açık anahtarıdır.

DNS hiyerarşisinin en üstündeki kök bölgesinin anahtarına güvenerek; çözücü, tüm bölgeler imzalı olduğu sürece DNS alan ismindeki her lokasyona güvenlik zinciri oluşturabilir.

Özet

DNSSEC, yaşadığımız çağ içerisinde bilgi güvenliği ismine atılmış çok değerli bir adım. Bilhassa neredeyse her şeyin Internet ile yapıldığı çağımızda, “DNS Spoofing” üzere atak teknikleri büyük bir risk arz ediyordu ve DNSSEC ile bunun önüne geçildi.

Başa dön tuşu