Bir alan adı yazdığınızda, tarayıcınız o adı bir IP adresine çevirmek için DNS'e sorar ve dönen cevaba koşulsuz güvenir. Peki ya bu cevap yolda değiştirilirse? Klasik DNS'in en büyük zaafı tam olarak budur: gelen yanıtın gerçekten yetkili sunucudan mı geldiğini, yoksa bir saldırgan tarafından mı üretildiğini doğrulamanın bir yolu yoktur. Bir saldırgan sahte bir cevap enjekte ederek ziyaretçileri farkında olmadan sahte bir bankaya veya kötü amaçlı bir sunucuya yönlendirebilir.
İşte DNSSEC (DNS Security Extensions) tam olarak bu boşluğu doldurmak için tasarlandı. DNS kayıtlarını kriptografik olarak imzalayarak, bir cevabın gerçekten yetkili kaynaktan geldiğini ve yolda değiştirilmediğini matematiksel olarak kanıtlar. Bu rehberde klasik DNS'in açığını, DNSSEC'in bu açığı nasıl kapattığını, güven zincirinin nasıl işlediğini, DS kaydının rolünü ve DNSSEC'i kendi alan adınızda nasıl etkinleştirip doğrulayacağınızı adım adım ele alacağız.
Klasik DNS'in Güvenlik Açığı#
DNS, internetin ilk günlerinde güvenlikten çok hız ve basitlik düşünülerek tasarlandı. Sorgular çoğunlukla UDP üzerinden gönderilir ve gelen cevapta hiçbir kimlik doğrulama bulunmaz. Bir resolver, doğru soruya makul görünen bir cevap aldığında onu kabul eder ve önbelleğine yazar. Bu tasarım, birkaç ciddi saldırı türüne kapı aralar.
Cache poisoning (önbellek zehirlenmesi), bu saldırıların en bilinenidir. Saldırgan, bir resolver'a yetkili sunucudan önce ulaşacak sahte bir cevap enjekte etmeye çalışır. Başarılı olursa, resolver banka.com için saldırganın IP'sini önbelleğine yazar ve o resolver'ı kullanan tüm ziyaretçiler TTL süresi boyunca sahte siteye yönlendirilir. 2008'de Dan Kaminsky'nin ortaya koyduğu ünlü zafiyet, bu saldırının pratikte ne kadar kolay olabileceğini gösterdi ve DNSSEC'in yaygınlaşmasını hızlandırdı.
DNS spoofing ve man-in-the-middle saldırıları da benzer mantıkla çalışır: kullanıcı ile resolver arasındaki trafiği izleyebilen bir saldırgan, gerçek cevabı taklit eden sahte bir yanıt üretir. Kullanıcı doğru adresi yazmış olsa bile yanlış sunucuya ulaşır. Klasik DNS'te bu sahte cevabı gerçeğinden ayırt etmenin bir yolu yoktur, çünkü hiçbir imza ya da bütünlük kontrolü yapılmaz. DNS'in genel çalışma mantığını hatırlamak isterseniz DNS nedir yazısı iyi bir başlangıçtır.
DNSSEC Tam Olarak Nedir?#
DNSSEC, DNS'in üzerine eklenen bir dizi standarttır (RFC 4033-4035) ve tek bir amaca hizmet eder: DNS cevaplarının kimliğini ve bütünlüğünü doğrulamak. Bunu, her DNS kaydını yetkili sunucunun özel anahtarıyla kriptografik olarak imzalayarak yapar. Resolver, cevapla birlikte gelen imzayı ilgili açık anahtarla doğrular; imza tutuyorsa cevabın gerçek ve değiştirilmemiş olduğundan emin olur.
Burada çok önemli bir noktanın altını çizmek gerekir: DNSSEC şifreleme ya da gizlilik sağlamaz. DNSSEC ile korunan bir sorgu-cevap trafiği yolda hâlâ okunabilir; kimin hangi siteyi sorduğu görünür. DNSSEC yalnızca cevabın doğruluğunu garanti eder, gizliliğini değil. Yani "bu cevap gerçekten yetkili sunucudan mı geldi ve değiştirilmemiş mi?" sorusuna cevap verir; "bu trafiği başkaları görebilir mi?" sorusuyla ilgilenmez.
Bu ayrım, DNSSEC'i sık karıştırıldığı DNS-over-HTTPS (DoH) veya DNS-over-TLS (DoT) gibi teknolojilerden ayırır. DoH ve DoT, sizinle resolver arasındaki trafiği şifreleyerek gizlilik sağlar, ancak cevabın kaynağını doğrulamaz. DNSSEC ise trafiği şifrelemez ama cevabın gerçekliğini kanıtlar. İkisi birbirini tamamlar; biri diğerinin yerini tutmaz. En sağlam kurulum, ikisinin bir arada kullanılmasıdır.
DNSSEC Nasıl Çalışır? Güven Zinciri#
DNSSEC'in kalbinde güven zinciri (chain of trust) kavramı yatar. Fikir şudur: her seviye bir üst seviye tarafından imzalanır ve doğrulanır; en tepede ise herkesin güvendiği tek bir kök vardır. Bir alan adı çözülürken bu zincir kökten aşağıya doğru takip edilir:
Kök (.) → TLD (örneğin .com veya .tr) → Alan adı (ornek.com)
Her düğüm, altındaki düğümün anahtarının doğruluğunu onaylar. Kök bölgeye ait açık anahtar ise dünyanın önde gelen resolver yazılımlarına gömülü olarak gelir; bu "güven çıpası" (trust anchor) zincirin başlangıç noktasıdır. Zincirin her halkası doğrulanabiliyorsa, resolver en alttaki alan adı kaydının gerçek olduğundan emin olur.
Bu mekanizma birkaç yeni DNS kaydı türüne dayanır:
- RRSIG (Resource Record Signature): Bir DNS kaydının (örneğin A kaydının) imzasıdır. Her imzalı kayıt kümesinin yanında bir RRSIG bulunur.
- DNSKEY: Alan adının imzalarını doğrulamak için kullanılan açık anahtarları içerir.
- DS (Delegation Signer): Alt bölgenin DNSKEY'inin bir özetidir (hash). Kritik olan budur; çünkü bu kayıt üst bölgede (registry'de) saklanır ve zinciri birbirine bağlar.
- NSEC / NSEC3: Bir kaydın gerçekten var olmadığını güvenli biçimde kanıtlar (yetkilendirilmiş yokluk ispatı).
Zincirin nasıl bağlandığını şöyle özetleyebiliriz: alan adınızın DNSKEY'i, bu anahtarın DS özetiyle üst bölgede (örneğin .com registry'sinde) doğrulanır. .com bölgesinin anahtarı ise kök bölge tarafından imzalanır. Böylece kökten alan adınıza kadar kesintisiz, kriptografik olarak doğrulanabilir bir zincir oluşur. Zincirdeki bir tek halka bile kopuksa (örneğin DS kaydı yanlışsa), doğrulama başarısız olur.
ZSK ve KSK ayrımı#
DNSSEC pratikte iki tür anahtar kullanır ve bunları kısaca bilmek işe yarar. KSK (Key Signing Key), yalnızca DNSKEY kaydını imzalayan, daha uzun ömürlü "ana" anahtardır; DS kaydı bu anahtarın özetidir. ZSK (Zone Signing Key) ise bölgedeki asıl kayıtları (A, MX, TXT vb.) imzalayan, daha sık değiştirilen "çalışma" anahtarıdır. Bu ayrım, günlük imzalama işini güvenliği düşürmeden yaparken ana anahtarı daha güvende tutmayı sağlar. İyi haber şu ki modern DNS sağlayıcıları bu anahtar yönetimini genellikle otomatik yürütür; sizin tek yapmanız gereken imzalamayı açmak ve DS kaydını girmektir.
DNSSEC Nasıl Etkinleştirilir?#
DNSSEC etkinleştirme iki taraflı bir işlemdir ve bu iki adımın doğru sırayla yapılması hayati önemdedir. Bir tarafta alan adınızın DNS'ini yöneten DNS sağlayıcı (bölgeyi imzalar), diğer tarafta alan adını kayıt ettiğiniz registrar (DS kaydını üst bölgeye iletir) vardır.
Adım 1 — DNS sağlayıcıda imzalamayı açın. Alan adınızın DNS kayıtlarını hangi panelde yönetiyorsanız (hosting sağlayıcınız, Cloudflare, kendi nameserver'larınız), oradaki DNSSEC anahtarını "Etkinleştir" konumuna getirin. Sağlayıcı bu adımda bölgeyi imzalar ve size bir DS kaydı üretir. Bu kayıt genellikle şu bilgileri içerir: anahtar etiketi (key tag), algoritma numarası, özet türü (digest type) ve özetin kendisi.
Adım 2 — DS kaydını registrar'a girin. Sağlayıcının ürettiği DS kaydını, alan adını satın aldığınız registrar panelindeki DNSSEC bölümüne ekleyin. Registrar bu kaydı, alan adının bağlı olduğu TLD registry'sine iletir. DS kaydı üst bölgeye yazıldığı anda güven zinciri tamamlanır ve doğrulama devreye girer.
Bu sıralama neden önemli? Çünkü önce bölge imzalanmalı, sonra DS kaydı girilmelidir. DS kaydını girip de bölge henüz imzalı değilse ya da anahtarlar uyuşmuyorsa, güven zinciri "kopuk" olarak yorumlanır ve DNSSEC doğrulaması yapan resolver'lar alan adını hiç çözemez — yani siteniz doğrulama yapan kullanıcılar için tamamen erişilemez hale gelir. Bu yüzden anahtar değişimlerinde (key rollover) her zaman DNS sağlayıcının otomatik yönetimine güvenmek en güvenlisidir.
Eğer alan adınızın nameserver'larını değiştirmeyi de planlıyorsanız, DNSSEC'i önce kapatıp taşımayı tamamladıktan sonra yeni sağlayıcıda yeniden açmanız gerekir; aksi halde eski DS kaydı yeni imzalarla uyuşmaz. Bu konudaki ayrıntılar için nameserver değiştirme yazımıza göz atabilirsiniz.
.tr ve Diğer Uzantılarda DNSSEC Desteği#
DNSSEC desteği, hem kök bölgede hem de büyük TLD'lerin çoğunda uzun süredir mevcuttur. .com, .net, .org gibi klasik uzantılar ile pek çok yeni gTLD, DS kaydı kabul eder. Türkiye'nin ülke kodu uzantısı olan .tr (ve alt uzantıları .com.tr, .org.tr vb.) de DNSSEC'i destekler; bu, .tr alan adları için de kökten aşağı uzanan tam bir güven zinciri kurulabildiği anlamına gelir.
Ancak pratikte iki tarafın da desteği gereklidir: hem registrar'ın DS kaydı girişine izin vermesi hem de DNS sağlayıcınızın bölgeyi imzalayabilmesi gerekir. Bazı düşük maliyetli sağlayıcılar bu özelliği sunmayabilir. Bir .com.tr alan adı alırken DNSSEC'in desteklenip desteklenmediğini önceden teyit etmek isterseniz .com.tr alan adı alma rehberimiz süreci baştan sona açıklar.
Şunu da unutmayın: alan adı tarafında DNSSEC'in etkin olması, ziyaretçinin de bundan yararlanması için ziyaretçinin resolver'ının DNSSEC doğrulaması yapması gerekir. Cloudflare (1.1.1.1), Google (8.8.8.8) ve Quad9 (9.9.9.9) gibi büyük genel resolver'lar varsayılan olarak doğrulama yapar, dolayısıyla bu resolver'ları kullanan herkes DNSSEC korumasından otomatik faydalanır.
DNSSEC'i Doğrulama#
DNSSEC'i etkinleştirdikten sonra gerçekten çalışıp çalışmadığını doğrulamak şarttır — özellikle yanlış bir DS kaydının siteyi erişilemez yapabileceği düşünülürse. En pratik araç yine dig komutudur.
+dnssec bayrağıyla sorgu attığınızda, cevapla birlikte RRSIG kayıtlarının döndüğünü ve başlıkta AD (Authenticated Data) bayrağının bulunduğunu görmeniz gerekir. AD bayrağı, resolver'ın imzayı başarıyla doğruladığını gösterir:
# DNSSEC imzalarıyla birlikte sorgula, doğrulayan bir resolver kullan
dig @1.1.1.1 ornek.com A +dnssec
# DNSKEY kayıtlarını gör
dig ornek.com DNSKEY +short
# DS kaydının üst bölgede yayınlandığını doğrula
dig ornek.com DS +short
Doğru yapılandırılmış bir alan adında çıktının başlık satırında flags: bölümünde ad ibaresini ve ANSWER bölümünde A kaydının yanında bir RRSIG satırını görürsünüz. Örneğin:
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2
ornek.com. 3600 IN A 203.0.113.10
ornek.com. 3600 IN RRSIG A 13 2 3600 20260801000000 (...)
Buradaki ad bayrağı doğrulamanın başarılı olduğunu, RRSIG satırı ise A kaydının imzalı olduğunu kanıtlar. Eğer bir yapılandırma hatası varsa (örneğin DS kaydı yanlışsa), doğrulayan resolver SERVFAIL döndürür — yani cevap gelmez. Bu durumda hemen dig ornek.com A (bayraksız) ve +cd (checking disabled) ile karşılaştırın:
# Doğrulamayı atlayarak sorgula — bu çalışıp normal sorgu SERVFAIL veriyorsa hata DNSSEC'tedir
dig @1.1.1.1 ornek.com A +cd
Komut satırına ek olarak, imza zincirini görsel olarak analiz eden çevrim içi araçlar (DNSViz veya Verisign'ın DNSSEC analiz araçları gibi) da zincirin nerede koptuğunu adım adım gösterir. Bir sorun yaşadığınızda bu araçlar, hatanın DNSKEY'de mi, DS kaydında mı yoksa üst bölgede mi olduğunu hızla teşhis etmenizi sağlar.
Artıları, Eksileri ve Dikkat Edilecekler#
DNSSEC güçlü bir koruma sağlar, ancak her teknoloji gibi kendi maliyet ve risklerini de beraberinde getirir. Karar vermeden önce dengeli bir bakış açısı faydalıdır.
| Artılar | Eksiler / Dikkat |
|---|---|
| Cache poisoning ve spoofing'e karşı güçlü koruma | Yanlış DS kaydı siteyi tamamen erişilemez yapar |
| Cevabın bütünlüğünü kriptografik olarak kanıtlar | Şifreleme/gizlilik sağlamaz (bunun için DoH/DoT gerekir) |
| Büyük TLD'ler ve resolver'larca yaygın desteklenir | Yapılandırma klasik DNS'ten daha karmaşıktır |
| E-posta güvenliği için DANE gibi ek özellikleri mümkün kılar | Anahtar değişiminde (rollover) hata riski vardır |
En kritik uyarıyı tekrar vurgulamakta fayda var: hatalı yapılandırılmış DNSSEC, hiç DNSSEC olmamasından daha kötü sonuçlar doğurabilir. Süresi dolmuş bir imza, uyuşmayan bir DS kaydı ya da yanlış yönetilen bir anahtar değişimi, alan adının doğrulama yapan tüm resolver'larda çözülememesine yol açar. Bu yüzden anahtar yönetimini elle yapmak yerine, bunu otomatikleştiren güvenilir bir DNS sağlayıcı kullanmak en akıllıca yaklaşımdır. Doğru kurulduğunda ise DNSSEC, arka planda sessizce çalışan ve kullanıcı deneyimine hiçbir olumsuz etkisi olmayan bir güvenlik katmanıdır.
Sıkça Sorulan Sorular#
DNSSEC internet trafiğimi şifreler mi?#
Hayır. Bu en yaygın yanılgıdır. DNSSEC yalnızca DNS cevaplarının gerçekliğini ve bütünlüğünü doğrular; trafiği şifrelemez ve gizlilik sağlamaz. Sorgularınızı şifrelemek istiyorsanız DNS-over-HTTPS (DoH) veya DNS-over-TLS (DoT) kullanmanız gerekir. DNSSEC ile bu teknolojiler birbirinin alternatifi değil, tamamlayıcısıdır.
DNSSEC etkinleştirmek sitemi yavaşlatır mı?#
Fark edilebilir bir yavaşlama beklemeyin. DNSSEC, cevaplara imza kayıtları eklediği için DNS yanıtlarının boyutunu bir miktar büyütür ve resolver'da küçük bir doğrulama işlemi gerektirir. Ancak bu ek yük milisaniyeler mertebesindedir ve modern resolver'larda önbellekleme sayesinde neredeyse hissedilmez. Kullanıcı deneyiminde pratik bir etkisi yoktur.
Yanlış DS kaydı girersem ne olur?#
Bu, DNSSEC'in en ciddi riskidir. DS kaydı, alan adınızın DNSKEY'iyle uyuşmuyorsa, güven zinciri kopuk kabul edilir ve DNSSEC doğrulaması yapan resolver'lar (Cloudflare, Google, Quad9 gibi) alan adınızı hiç çözemez, SERVFAIL döndürür. Sonuç olarak siteniz bu resolver'ları kullanan ziyaretçiler için tamamen erişilemez hale gelir. Bu yüzden DS kaydını daima DNS sağlayıcınızın verdiği değerlerle birebir aynı girmelisiniz.
DNSSEC'i kapatmak istersem ne yapmalıyım?#
Doğru sıra önce registrar tarafından DS kaydını silmek, sonra DNS sağlayıcıda imzalamayı devre dışı bırakmaktır. DS kaydı üst bölgeden kaldırıldıktan sonra resolver'lar alan adını artık DNSSEC ile doğrulamaya çalışmaz. DS kaydı hâlâ dururken sağlayıcıda imzalamayı kapatırsanız zincir kopar ve alan adı çözülemez; bu yüzden sıraya dikkat edin ve değişikliklerin yayılması için biraz bekleyin.
.com.tr alan adları DNSSEC destekler mi?#
Evet. .tr uzantısı ve .com.tr dahil alt uzantıları DNSSEC destekler; yani bu alan adları için kökten aşağı uzanan tam bir güven zinciri kurulabilir. Ancak pratikte registrar'ınızın DS kaydı girişine izin vermesi ve DNS sağlayıcınızın bölgeyi imzalayabilmesi gerekir. Alan adını almadan önce her iki tarafın da DNSSEC desteğini teyit etmeniz önerilir.
DNSSEC ile DNS-over-HTTPS arasındaki fark nedir?#
İkisi farklı sorunları çözer. DNSSEC, cevabın gerçekliğini doğrular — yani "bu cevap yetkili sunucudan geldi ve değiştirilmedi" der, ama trafiği şifrelemez. DNS-over-HTTPS ise sizinle resolver arasındaki trafiği şifreleyerek gizlilik sağlar, ancak cevabın kaynağını doğrulamaz. En güçlü koruma, ikisini birlikte kullanmaktır: DNSSEC bütünlüğü, DoH ise gizliliği sağlar.
Kapanış#
DNSSEC, internetin en eski ve en çok güvenilen ama en az korunan katmanlarından birine kimlik doğrulama getirir. Cache poisoning ve DNS spoofing gibi sinsi saldırılara karşı, DNS cevaplarını kriptografik imzalarla mühürleyerek her yanıtın gerçekliğini kanıtlar. Doğru kurulduğunda arka planda sessizce çalışır; yanlış kurulduğunda ise siteyi erişilemez yapabildiği için anahtar yönetimini otomatikleştiren güvenilir bir sağlayıcı ile ilerlemek en doğrusudur.
Alan adınızı DNSSEC ve modern bir DNS paneliyle yönetmek istiyorsanız, alan adı ve hosting hizmetlerimiz tek panelden imzalama ve DS kaydı yönetimini kolaylaştırır. Güvenliğinizi bir üst seviyeye taşımak için DNSSEC'i, aktarım katmanını koruyan bir SSL sertifikası ile birlikte düşünerek uçtan uca bir güven zinciri oluşturabilirsiniz.