İçeriğe geç

DNSSEC: açmalı mısınız, nasıl açarsınız?

Derinlemesine rehber. Güncellendi .

DNSSEC neye karşı korur, güven zinciri nasıl çalışır, hangi algoritmayı seçmelisiniz ve bir bölgeyi çevrimdışı bırakmadan nasıl imzalarsınız.

DNSSEC ne yapar, ne yapmaz

Klasik DNS yanıtları, nereden geldiklerine dair hiçbir kanıt taşımaz. Örneğin önbellek zehirlenmesi yoluyla sahte bir yanıtı kabul eden bir çözümleyici, o sahte kayıt önbellekte kaldığı sürece kullanıcıları saldırganın sunucusuna göndermeye devam eder. DNSSEC (RFC 4033, 4034 ve 4035) bu boşluğu DNS verilerine dijital imzalar ekleyerek kapatır; böylece doğrulama yapan bir çözümleyici, aldığı yanıtın gerçekten bölge sahibinden geldiğini ve yolda değiştirilmediğini kendi başına kontrol edebilir. İmza yalnızca tek bir kaydı değil, aynı ada ve türe sahip kayıtların tamamından oluşan kümeyi kapsar; ayrıca bir adın ya da kayıt türünün var olmadığı bilgisi de imzalanır, yani saldırgan var olan bir kaydı gizleyerek de sizi kandıramaz.

DNSSEC özgünlük ve bütünlük sağlar, gizlilik sağlamaz. Sorgular da yanıtlar da ağ üzerinde görünür olmaya devam eder; bunları şifrelemek DNS over TLS veya DNS over HTTPS'in işidir. Koruma ayrıca yalnızca doğrulamanın gerçekten yapıldığı noktaya kadar uzanır: dizüstü bilgisayarınızın kullandığı çözümleyici doğrulama yapıyorsa bundan yararlanırsınız, ancak cihazınız ile o çözümleyici arasındaki yolun güvenliği bambaşka bir konudur ve onu ayrıca çözmeniz gerekir. Pratikte bu iki katman birbirini tamamlar: DNSSEC verinin doğruluğunu, şifreli DNS ise taşınırken gizliliğini üstlenir.

DNSSEC neyi kapsar
TehditDNSSEC kapsıyor mu?
Bir çözümleyici önbelleğine enjekte edilen sahte yanıtlarEvet, doğrulama yapan çözümleyiciler bunları reddeder
DNS sağlayıcınızdaki ele geçirilmiş bir hesabın kayıtları değiştirmesiHayır, sağlayıcı bölgede ne yazıyorsa onu imzalar
Hangi adları sorguladığınızın yolda okunmasıHayır, bunun için şifreli DNS kullanmanız gerekir
Kayıt kuruluşu üzerinden alan adı hırsızlığıHayır, kayıt kuruluşu hesabını MFA ve registry lock ile koruyun
DANE (TLSA) ve SSHFP kayıtları için güvenilir DNSEvet, bu kayıt türleri doğrudan DNSSEC'e bağımlıdır

Güven zinciri

Doğrulama, doğrulama yapan her çözümleyicinin zaten güvendiği tek bir anahtardan başlar: kök bölgenin anahtar imzalama anahtarı. Kök bölge her üst seviye alan adı için bir DS kaydı imzalar, üst seviye alan adı sizin alan adınız için bir DS kaydı imzalar ve sizin bölgeniz de bu DS kaydıyla eşleşen DNSKEY kayıtlarını yayımlar. Zincirdeki her halka kendisinden bir alttakine kefil olur; güven böylece kökten başlayıp tek tek adımlarla sizin kayıtlarınıza kadar iner.

example.com için DNSSEC güven zinciriÇözümleyici kök anahtarına güvenir; kök anahtarı com bölgesinin DS kaydını imzalar, com bölgesi de example.com için DS kaydını imzalar ve bu DS kaydı, example.com bölgesindeki kayıtları imzalayan DNSKEY ile eşleşir.Kök bölge (.)Doğrulama yapan çözümleyicilere gömülü güvençıpası; com için DS kaydını imzalarcom bölgesiDNSKEY kaydı kök zinciriyle imzalanmıştır;example.com için DS kaydını imzalarexample.com için DS kaydı (registrytarafında)example.com'un anahtar imzalama anahtarınınözeti; kayıt kuruluşunuz üzerinden gönderilirexample.com bölgesiDNSKEY kaydı DS ile eşleşir; RRSIG kayıtlarıher kayıt kümesini imzalarDoğrulanmış yanıtÇözümleyici AD (authenticated data) bayrağınıayarlar; zincir kırıksa SERVFAIL döner
Çözümleyici kök anahtarına güvenir; kök anahtarı com bölgesinin DS kaydını imzalar, com bölgesi de example.com için DS kaydını imzalar ve bu DS kaydı, example.com bölgesindeki kayıtları imzalayan DNSKEY ile eşleşir.
DNSSEC kayıt türleri
KayıtNeredeAmacı
DNSKEYKendi bölgenizdeBölgedeki imzaları doğrulamakta kullanılan açık anahtarlar
RRSIGKendi bölgenizdeTek bir kayıt kümesinin imzası; başlangıç ve bitiş zamanlarıyla birlikte
DSÜst bölgede (registry)Anahtar imzalama anahtarınızın özeti; bölgenizi üst bölgeye bağlar
NSEC / NSEC3Kendi bölgenizdeBir adın veya kayıt türünün var olmadığına dair imzalı kanıt
CDS / CDNSKEYKendi bölgenizdeÜst bölgeye hangi DS kaydını yayımlayacağını bildiren sinyal (RFC 7344, RFC 8078)

Bölgeler çoğu zaman iki ayrı tür anahtar kullanır. Anahtar imzalama anahtarı (KSK) yalnızca DNSKEY kümesini imzalar ve DS kaydının işaret ettiği anahtar odur; bölge imzalama anahtarı (ZSK) ise geri kalan her şeyi imzaladığı için kayıt kuruluşuna hiç dokunmadan yenilenebilir. Yönetilen DNS sağlayıcılarının birçoğu bunun yerine tek bir birleşik imzalama anahtarı kullanır; bu kurulum işletmesi daha basittir ve doğrulama açısından tam olarak aynı şekilde çalışır. Hangi modeli kullandığınız çoğu zaman sizin seçiminiz değildir, sağlayıcınızın kararıdır; önemli olan tek şey, DS kaydının işaret ettiği anahtarın bölgede gerçekten yayımlanıyor olmasıdır.

Açmalı mısınız?

Sağladığı koruma gerçektir, ama operasyonel risk de en az onun kadar gerçektir. Zinciri kırılmış imzalı bir bölge, hiç imzalanmamış bir bölgeden çok daha kötü durumdadır: doğrulama yapan çözümleyiciler SERVFAIL döndürür ve o çözümleyicileri kullanan kullanıcılar sitenize hiç ulaşamaz, size posta da teslim edemez. Büyük genel çözümleyicilerin tamamına yakını doğrulama yaptığı için tek bir DNSSEC arızası internet kullanıcılarının önemli bir bölümünü aynı anda etkiler. Bu tür bir arızanın geri alınması da anında olmaz, çünkü hatalı veri çözümleyici önbelleklerinde TTL süresi boyunca kalmayı sürdürür.

Karar verirken
DurumÖneri
Yönetilen DNS sağlayıcısı otomatik imzalıyor, kayıt kuruluşu DS veya CDS destekliyorAçın; imzaları ve anahtar değişimlerini sağlayıcı yürütür
Posta için DANE (TLSA kayıtları) kullanmak istiyorsunuzZorunlu; DANE, DNSSEC olmadan hiç çalışmaz
Otomasyonu olmayan, kendi barındırdığınız yetkili DNSYalnızca otomatik imzalama ve izleme kurulduktan sonra
Yakın zamanda DNS sağlayıcısı değişikliği planlanıyorGeçiş bitene kadar bekleyin veya çok imzalayıcılı bir geçiş planlayın
Kayıt kuruluşu DS kaydı yayımlayamıyorAlan adını taşıyana ya da kayıt kuruluşu destek ekleyene kadar mümkün değil

Yönetilen bir DNS hizmeti kullanan kurumların çoğu için DNSSEC'i açmak, sağlayıcı panelinde birkaç tıklama ve kayıt kuruluşunda tek bir DS kaydı demektir. Tehlikeli anlar seyrektir ama önceden bilinebilir: DNS sağlayıcısı değiştirmek, kayıt kuruluşu değiştirmek ve elle yürütülen anahtar değişimleri. Bu üç anı önceden planladığınızda DNSSEC geri kalan zaman boyunca, ilgilenmenizi hiç gerektirmeden kendi kendine çalışır.

Algoritma seçimi

Her DNSKEY ve DS kaydı, kullandığı algoritmayı bir numarayla belirtir. RFC 8624 hem uygulama hem de kullanım önerilerini verir; onu izleyen belgeler bu önerileri zaman zaman güncellese de yeni kurulumlar için pratik seçim yıllardır aynı kaldı. Sağlayıcınız size yalnızca başka bir seçenek sunmuyorsa SHA-256 ile birlikte ECDSA P-256'yı, yani algoritma 13'ü seçin.

Yaygın DNSSEC algoritmaları
NumaraAdYeni imzalama için
13ECDSAP256SHA256Önerilen: küçük imzalar, yaygın doğrulama desteği
15ED25519Sağlayıcınız ve doğrulayıcılar destekliyorsa iyi bir seçim
8RSASHA256Kabul edilebilir; ECDSA'ya göre daha büyük yanıtlar üretir
14ECDSAP384SHA384Kabul edilebilir, ancak nadiren gerekir
5 / 7RSASHA1 / RSASHA1-NSEC3-SHA1Yeni imzalamada kullanmayın

DS kayıtlarında SHA-256 (özet türü 2) kullanın. Küçük ECDSA imzaları DNS yanıtlarını yaygın UDP boyut sınırlarının altında tutar; bu da TCP'ye düşmeyi ve parçalanma kaynaklı sorunları belirgin biçimde azaltır. Aynı bölgede birden fazla algoritma yayımlamaktan kaçının: çözümleyicilerin her algoritma için geçerli bir imza bulması beklenir, bu yüzden karışık kurulumlar hem yanıtları büyütür hem de hata olasılığını artırır.

NSEC3 için RFC 9276, fazladan yineleme yapılmamasını ve tuz kullanılmamasını önerir. Yüksek yineleme sayıları çözümleyicilere gereksiz yük bindirir ve bölge içeriğinin tek tek sayılmasına karşı kayda değer bir koruma sağlamaz; üstelik bazı çözümleyiciler çok yüksek sayıları doğrudan güvensiz kabul eder.

DNSSEC'i güvenle açmak

  1. Alan adının ad sunucularının gerçekten DNS sağlayıcınızdakiler olduğunu WHOIS sorgusu ile ya da DNS Sorgulama aracındaki bir NS sorgusuyla doğrulayın.
  2. DNS sağlayıcısında imzalamayı açın ve bölge DNSKEY ile RRSIG kayıtlarını sunmaya başlayana kadar bekleyin.
  3. Sağlayıcının gösterdiği DS kaydı verisini (anahtar etiketi, algoritma, özet türü, özet) kopyalayın; kayıt kuruluşunuz bunun yerine DNSKEY istiyorsa onu alın.
  4. Bu veriyi kayıt kuruluşunda alan adının DNSSEC ayarlarına ekleyin. Bazı registry'ler bölgedeki CDS veya CDNSKEY kayıtlarını kabul eder ve bu adımı sizin yerinize otomatik olarak yapar.
  5. Zinciri kendi ağınızın dışından dig veya delv ile doğrulayın, ardından en az bir gün boyunca izlemeyi sürdürün.
  6. Doğrulama hatalarında ve süresi dolmaya yaklaşan imzalarda uyarı veren kalıcı bir izleme kurun; bu kontrolün kendi altyapınızdan bağımsız çalışması önemlidir.
Zinciri doğrulamak
# the DS record published by the parent (com)
dig +short DS example.com
12345 13 2 3F8A...9C1D

# the keys in your zone; one should match the DS key tag
dig +dnssec +multi DNSKEY example.com

# a validating lookup; look for "fully validated"
delv example.com A

# the AD flag from a validating resolver
dig +dnssec example.com A | grep -E 'flags:.* ad'

Bölge imzalanmadan DS kaydını asla yayımlamayın

Bölgenin sunmadığı bir anahtarı işaret eden DS kaydı, doğrulama yapan çözümleyiciler için çözümlemeyi anında bozar. Önce imzalayın, DNSKEY kayıtlarının yayında olduğunu doğrulayın, DS kaydını ancak ondan sonra ekleyin.

Anahtar değişimleri

İmzalama anahtarları zaman zaman değiştirilir; bu ya önceden belirlenmiş bir takvime göre ya da anahtarın ele geçirildiğinden şüphelenildiği için yapılır. Yönetilen sağlayıcılar bölge imzalama anahtarlarını kendiliğinden ve siz fark etmeden değiştirir. DS kaydının işaret ettiği anahtarı değiştirmek ise üst bölgenin yeni bir DS kaydı yayımlamasını da gerektirir; bu adım ya CDS/CDNSKEY ile otomatikleştirilir ya da kayıt kuruluşunda elle yapılır. Bu yüzden en riskli anahtar değişimleri, sizin de bir şey yapmanızı gerektirenlerdir.

Güvenli yöntem her zaman örtüşmedir: yeni anahtarı eskisiyle birlikte yayımlayın, önbelleklerin boşalmasını bekleyin (en az DNSKEY kümesinin TTL süresi kadar, KSK değişimlerinde ayrıca DS kaydının TTL süresi kadar), geçişi yapın ve eski anahtarı ancak ondan sonra kaldırın. Eski anahtarı ya da eski DS kaydını erken kaldırmak, çözümleyicilerin elinde bölgedeki hiçbir şeyle artık eşleşmeyen önbellekli veri bırakır; kesintilerin büyük bölümü tam olarak bu aceleden doğar.

İmzaların da bir son kullanma tarihi vardır. Her RRSIG kaydı bir bitiş zamanı taşır; örneğin imzalama sunucusu kapatıldığı için yeniden imzalanmayı bırakan bir bölge, bu zamanlar geçtiği anda doğrulamadan kalmaya başlar. Süre dolmadan günler önce uyarı veren bir izleme, bu arıza sınıfını tümüyle ve kalıcı olarak ortadan kaldırır.

DNS sağlayıcısını veya kayıt kuruluşunu değiştirmek

İmzalı bir bölgeyi yeni bir DNS sağlayıcısına taşımak, DNSSEC'i bozmanın en yaygın yoludur. Yeni sağlayıcı bölgeyi kendi farklı anahtarlarıyla imzalar, oysa registry hâlâ eski anahtarlara ait DS kaydını yayımlamaktadır. Ad sunucuları değişir değişmez doğrulama yapan çözümleyiciler, anahtarları DS kaydıyla uyuşmayan bir bölge görür ve SERVFAIL döndürmeye başlar. Dahası bu arıza, taşımayı yapan ekibe çoğu zaman görünmez; çünkü yeni bölgeyi doğrudan yeni sağlayıcının ad sunucularından sorguladığınızda her şey kusursuz görünür.

İmzalı bir bölgeyi taşımanın iki yolu
YaklaşımAdımlarÖdünleşim
Geçici olarak imzasız kalmakKayıt kuruluşundaki DS kaydını kaldırın, DS TTL süresini (ve üstüne bir güvenlik payını) bekleyin, ad sunucularını taşıyın, yeni sağlayıcıda imzalayın, yeni DS kaydını ekleyinBasit; bölge kısa bir süre boyunca korumasız kalır
Çok imzalayıcılı geçiş (RFC 8901)İki sağlayıcı da birbirinin anahtarlarını yayımlar, her iki anahtar için DS kayıtları eklenir, ardından eski sağlayıcı devreden çıkarılırKorumasız dönem yok; iki sağlayıcının da desteklemesi gerekir

Kayıt kuruluşu değişiklikleri, yani alan adı transferleri DS kaydını genellikle korur, ama transfer tamamlandıktan sonra bunu mutlaka kontrol edin. Alan adı taşıma kontrol listesi, bu adımları posta, TLS ve yönlendirmelerle birlikte doğru sıraya koyar.

İmzalı bir bölgeyi izlemek

DNSSEC arızaları sizin için sessiz, kullanıcılarınız için gürültülüdür: kendi çözümleyiciniz doğrulama yapmıyor olabilir, bu yüzden ofisten bakıldığında her şey yolunda görünürken internetin büyük bir bölümü SERVFAIL alır. Bu nedenle izlemenin, ağınızın dışından ve doğrulama yapan bir çözümleyici üzerinden sorgu yapması gerekir. İzlemenin ayrıca ileriye de bakması gerekir, çünkü en sık görülen arıza olan imza süresi dolması günler öncesinden tahmin edilebilir bir arızadır.

  • Doğrulama yapan bir çözümleyici, önemli adlarınız için (apex, www, MX sunucuları) SERVFAIL döndürdüğünde uyarı verin.
  • RRSIG kayıtlarının bitiş zamanlarına birkaç günden az kaldığında uyarı verin.
  • Üst bölgedeki DS kaydı, bölgedeki hiçbir DNSKEY kaydıyla eşleşmediğinde uyarı verin.
  • DNSKEY ve DS değişikliklerini kayıt altına alın; böylece anahtar değişimleri değişiklik geçmişinizde görünür olur.
  • DNSSEC durumunu taşıma ve kayıt kuruluşu değişikliği kontrol listelerine de ekleyin.

Yönetilen DNS sağlayıcıları genellikle kendi imzalama süreçlerini izler, ancak kayıt kuruluşunuzda yapılan hataları göremezler; sağlayıcı değişikliğinden sonra unutulup kalmış eski bir DS kaydı bunun en tipik örneğidir. Zincirin tamamını, tam olarak kullanıcıların gördüğü biçimde gören tek kontrol sizin kendi dış kontrolünüzdür.

Kontrolü, yıllar boyunca çalışmaya devam edecek kadar basit tutun. Bulut üzerindeki bir makineden apex için günde bir kez çalıştırılan bir delv komutu ve "fully validated" dışındaki her sonuçta tetiklenen bir uyarı, riskin büyük bölümünü tek başına karşılar. Karmaşık bir izleme kurup altı ay sonra bakımsız bırakmaktansa, böyle küçük ama kesintisiz çalışan bir kontrole sahip olmak çok daha değerlidir.

SERVFAIL sorunlarını gidermek

Bir alan adı doğrulama yapmayan bir çözümleyici üzerinden açılıyor ama doğrulama yapan bir çözümleyicide SERVFAIL veriyorsa ilk şüpheli DNSSEC'tir. İki çözümleyiciden gelen yanıtları karşılaştırın, ardından çözümleyiciden doğrulamayı atlamasını isteyen dig +cd komutunu kullanın. +cd ile yanıt gelip onsuz SERVFAIL alınması, sorunun bir doğrulama hatası olduğunu kesin olarak doğrular. Bundan sonraki iş, zincirin hangi halkasının koptuğunu bulmaktır; aşağıdaki tablo en sık karşılaşılan nedenleri ve her birinin çözümünü sıralıyor.

Doğrulama hatasını teyit etmek
dig @192.0.2.53 example.com A        # validating resolver: SERVFAIL
dig @192.0.2.53 example.com A +cd    # checking disabled: answer returned
Doğrulama hatalarının nedenleri
NedenÇözüm
Kayıt kuruluşundaki DS, hiçbir DNSKEY ile eşleşmiyorDoğru DS kaydını yayımlayın veya kaldırıp imzalamadan sonra yeniden ekleyin
Süresi dolmuş RRSIG imzalarıOtomatik imzalamayı yeniden başlatın ya da düzeltin; bölgeyi yeniden imzalayın
DNS sağlayıcısı değiştikten sonra kalan eski DSEski DS kaydını kaldırın; yeni sağlayıcının DS kaydını ekleyin
Desteklenmeyen veya kullanımdan kaldırılmış algoritmaAlgoritma 13 veya 15'e geçin
Kayıtların imzalayıcı dışında düzenlenmesi (elle bölge dosyası değişikliği)Değişiklikleri yalnızca imzalama sistemi üzerinden yapın

SSS

DNSSEC sitemi yavaşlatır mı?

Kayda değer biçimde yavaşlatmaz. Doğrulama yapan çözümleyiciler biraz daha fazla iş yapar ve sonuçları önbelleğe alır; ECDSA imzaları da yanıtları küçük tutar. Kullanıcılar pratikte bir fark hissetmez.

Bir alan adının DNSSEC kullanıp kullanmadığını görebilir miyim?

dig DS example.com komutuyla DS kaydını sorgulayın ya da registry'nin WHOIS çıktısında signedDelegation gibi bir DNSSEC alanına bakın. Üst bölgede bir DS kaydı bulunması, o alan adının imzalı olmasının beklendiği anlamına gelir.

DNSSEC, DNS trafiğini şifreler mi?

Hayır. Kayıtları yalnızca doğrulanabilir olsunlar diye imzalar. Sorguların ve yanıtların şifrelenmesi DNS over TLS veya DNS over HTTPS'in işidir; onlar bambaşka bir sorunu çözer.

DNSSEC'i kaldırırsam ne olur?

Önce kayıt kuruluşundaki DS kaydını kaldırın ve TTL süresinin dolmasını bekleyin, imzalamayı ancak ondan sonra durdurun. DS kaydı hâlâ yayımdayken imzalamayı durdurmak doğrudan doğrulama hatalarına yol açar.

Algoritma 8 (RSASHA256) hâlâ güvenli mi?

Evet, yaygın biçimde desteklenir ve kabul edilebilir bir seçimdir. Yeni kurulumlarda algoritma 13 tercih edilir, çünkü anahtarları ve imzaları çok daha küçüktür.

Alan adım bende çalışırken neden bazı kullanıcılarda çalışmıyor?

Sizin çözümleyiciniz DNSSEC doğrulaması yapmıyor, onlarınki yapıyor olabilir. Doğrulama başarısız olduğunda doğrulama yapan çözümleyiciler SERVFAIL döndürür. Doğrulama yapan genel bir çözümleyici üzerinden ve delv ile test edin.

E-posta güvenliği için DNSSEC gerekli mi?

SPF, DKIM, DMARC veya MTA-STS için gerekli değildir. DANE için ise zorunludur; DANE, posta sunucusu sertifikalarını MTA-STS'e alternatif ya da onu tamamlayıcı biçimde DNS üzerinde sabitler.

Kaynaklar