İçeriğe geç

DKIM nedir, nasıl kontrol edilir?

DKIM (DomainKeys Identified Mail), gönderen sunucunun maili kendi alan adı adına özel bir anahtarla imzaladığı, alıcı sunucunun ise imzayı alan adının DNS'te yayınladığı genel anahtarla doğruladığı standarttır. İmza, mailin gerçekten o alan adının yetkili sistemlerinden çıktığını ve yolda değişmediğini kanıtlar. Standart RFC 6376 ile tanımlanır.

Bu yazı DKIM'in nasıl çalıştığını, seçici (selector) kavramını, bir alan adının DKIM kaydının nasıl kontrol edildiğini ve sık görülen üç sorunu anlatır.

DKIM nasıl çalışır?

  1. Gönderen sunucu, mailin seçili başlıklarından ve gövdesinden bir özet hesaplar ve bunu özel anahtarla imzalar.
  2. İmza maile DKIM-Signature başlığı olarak eklenir. Başlıkta iki önemli etiket vardır: imzayı atan alan adı (d=) ve hangi anahtarın kullanıldığını söyleyen seçici (s=).
  3. Alıcı sunucu <seçici>._domainkey.<alan-adi> adındaki DNS kaydından genel anahtarı okur ve imzayı doğrular.

Örnek bir imza başlığından kısaltılmış bir bölüm:

DKIM-Signature: v=1; a=rsa-sha256; d=ornek.com.tr; s=selector1; ...

Bu mail için alıcı selector1._domainkey.ornek.com.tr kaydını sorgular.

DKIM seçicisi (selector) nedir?

Seçici, aynı alan adı altında birden fazla anahtar yayınlamayı sağlayan addır. Mail sağlayıcısı bir seçici, bülten servisi başka bir seçici kullanabilir; anahtar değiştirilirken eski ve yeni anahtar bir süre birlikte yayında kalabilir. Microsoft 365 bu amaçla iki seçici kullanır: selector1 ve selector2. Google Workspace varsayılan olarak google seçicisini kullanır.

Önemli bir sınır: DNS, bir alan adının tüm seçicilerini listelemeyi sağlamaz. Seçici adını bilmeden kaydı bulmanın yolu yoktur. Bu yüzden dışarıdan yapılan her DKIM kontrolü, sağlayıcıların bilinen seçicilerine ve yaygın adlara bakar.

DKIM kaydı nasıl görünür?

Genel anahtar bir TXT kaydı olarak yayınlanır:

selector1._domainkey.ornek.com.tr.  IN  TXT  "v=DKIM1; k=rsa; p=MIIBIjANBgkq..."
EtiketAnlamı
v=DKIM1Sürüm.
k=Anahtar türü; çoğunlukla rsa. ed25519 de tanımlıdır (RFC 8463).
p=Base64 kodlu genel anahtar. Boş p= anahtarın iptal edildiği anlamına gelir.
t=yAlan adı DKIM'i test ediyor.

Bazı sağlayıcılar (Microsoft 365 gibi) TXT kaydı yerine bir CNAME ister: sizin seçici adınız, sağlayıcının yönettiği bir kayda yönlendirilir. Böylece sağlayıcı anahtarı sizin DNS'inize dokunmadan değiştirebilir. Ayrıntılar: Microsoft 365'te SPF, DKIM ve DMARC.

DKIM nasıl kontrol edilir?

1. Mail başlığından seçiciyi bulun. Alan adınızdan gönderilmiş bir maili açın, "orijinali göster" ya da "ileti başlıkları" seçeneğiyle başlıkları görün. DKIM-Signature satırında d= ve s= değerlerini not edin. Aynı başlıklarda alıcının değerlendirmesi de yazar:

Authentication-Results: ... dkim=pass header.d=ornek.com.tr ...

dkim=pass görmeniz ve header.d= değerinin kendi alan adınız olması gerekir. İmza yalnız sağlayıcının alan adıyla atılıyorsa (ör. d= sağlayıcının alan adıysa) DKIM geçer ama DMARC için hizalı sayılmaz.

2. Kaydı DNS'ten sorgulayın.

nslookup -type=TXT selector1._domainkey.ornek.com.tr
dig +short TXT selector1._domainkey.ornek.com.tr

Kayıt CNAME ise sorgu önce CNAME hedefini, ardından hedefteki TXT kaydını döndürür.

3. Anahtarı değerlendirin. p= boş mu, t=y var mı, anahtar kaç bit?

Sık görülen DKIM sorunları nelerdir?

İmza hiç yok. En yaygın durum budur. Sağlayıcıda DKIM imzalama açılmamıştır ya da açılmış ama DNS kaydı yayınlanmamıştır. DKIM yoksa DMARC yalnız SPF'ye dayanır; yönlendirilen mailler SPF'den kaldığı için DMARC'ı zorlamaya almak riskli hale gelir.

Anahtar 2048 bitten kısa. 1024 bit RSA anahtar bugün yeterince güçlü kabul edilmiyor. Anahtar kırılırsa saldırgan alan adınız adına DKIM'den geçen mail üretebilir. Çözüm, sağlayıcıda 2048 bit yeni anahtar üretip kaydı güncellemektir.

Test bayrağı (t=y) unutulmuş. Kurulumda eklenen ve kaldırılması unutulan bir bayraktır. RFC 6376'ya göre alıcı sunucular bu anahtarla imzalanmış maili imzasız mail gibi değerlendirir. Kaydı siz yayınlıyorsanız t=y etiketini silin, diğer etiketlere dokunmayın. Kaydı sağlayıcınız yayınlıyorsa (CNAME) bayrağı sağlayıcının panelinden kapatın.

İmza yolda bozuluyor. DKIM, imzalanan başlıklar ve gövde değişmediği sürece geçerlidir. Konu satırına etiket ekleyen, gövdenin altına not ekleyen e-posta listeleri ya da içeriği yeniden yazan güvenlik ağ geçitleri imzayı kırar. Kendi altyapınızda böyle bir aracı varsa (ör. giden maile imza ya da uyarı ekleyen bir ürün), DKIM imzasının o aracıdan sonra atılması gerekir.

DKIM anahtarı nasıl değiştirilir?

Anahtarın düzenli değiştirilmesi (rotasyon), sızmış ya da zayıflamış bir anahtarın etkisini sınırlar. Seçici mekanizması bunu kesintisiz yapmayı sağlar:

  1. Yeni anahtarı yeni bir seçici adıyla üretin (ör. s2026) ve genel anahtarı s2026._domainkey.ornek.com.tr adında yayınlayın.
  2. Kayıt dışarıdan görünür olduktan sonra gönderen sunucuyu yeni seçiciyle imzalamaya geçirin.
  3. Eski anahtarı, yolda olan maillerin doğrulanabilmesi için birkaç gün daha yayında tutun.
  4. Ardından eski kaydın p= değerini boşaltarak anahtarı iptal edin ya da kaydı silin.

CNAME ile çalışan sağlayıcılarda (Microsoft 365 gibi) bu adımları sağlayıcı yürütür; iki seçici dönüşümlü kullanılır ve siz yalnız panelden döndürme işlemini başlatırsınız. Bu durumda bekleyen ikinci anahtarın da 2048 bit olduğunu kontrol etmek gerekir; eski kurulumlarda bekleyen anahtar 1024 bit kalmış olabilir.

Denetta DKIM'de neyi kontrol eder?

Denetta'nın Alan Adı ve E-posta Güvenliği modülü, büyük mail sağlayıcılarının bilinen seçicilerini (ör. selector1, selector2, google) ve yaygın seçici adlarını DNS'te sorgular; mail sağlayıcısını MX kayıtlarından tanır ve düzeltme metnini ona göre yazar. İlgili kural kodları:

  • MAIL-010: DKIM imzası yayınlanmamış (denenen seçicilerin hiçbirinde anahtar yok).
  • MAIL-011: DKIM anahtarı 2048 bitten kısa.
  • MAIL-026: DKIM anahtarı test modunda (t=y).

Farklı bir seçici adı kullanıyorsanız MAIL-010 bulgusu bunu söyler; seçiciyi bildirdiğinizde kontrol o adla yapılır. Düzeltme metni mail sağlayıcınıza ve DNS barındırma sağlayıcınıza göre yazılır ve yalnız gösterilir; Denetta DNS kaydı değiştirmez.

DKIM durumunuzu alan adı kontrolüyle görebilirsiniz. Kontrol yalnız DNS kayıtlarını okur ve 21 kuralla bir ön kontrol puanı üretir; Alan Adı ve E-posta Güvenliği modülünün tamamı 31 kuraldan oluşur. DKIM'in DMARC ile birlikte nasıl çalıştığı için DMARC nedir? yazısına bakın.

Sıkça sorulan sorular

Alan adımın DKIM seçici adını nasıl öğrenirim?

Alan adınızdan gönderilmiş bir mailin başlıklarını açın ve DKIM-Signature satırındaki s= değerine bakın. Seçici adları DNS'ten listelenemez; ya bu başlıktan ya da mail sağlayıcınızın panelinden öğrenilir.

DKIM için 1024 bit anahtar yeterli mi?

Bugün 2048 bit RSA önerilir. 1024 bit anahtar zayıf kabul ediliyor; anahtar kırılırsa saldırgan alan adınız adına DKIM'den geçen mail üretebilir.

DKIM kaydında t=y ne demek?

t=y, alan adının DKIM'i test ettiğini bildirir. RFC 6376'ya göre alıcılar bu durumda imzalı maili imzasız mail gibi değerlendirir. Kurulum bittiyse bayrak kaldırılmalıdır.

DKIM yönlendirilen (forward) maillerde neden önemli?

Yönlendirmede gönderen IP adresi değişir ve SPF kırılır. DKIM imzası mailin içeriğine bağlıdır; içerik değişmediği sürece yönlendirmeden sonra da geçerli kalır ve DMARC'ın geçmesini sağlar.

Alan adınız ne durumda?

SPF, DKIM, DMARC ve DNSSEC kayıtlarınızı yalnız DNS sorgusuyla, sunucunuza bağlanmadan ölçün.

Alan adınızı kontrol edin

Altyapınızı birlikte inceleyelim.

Bir görüşmede Denetta’yı kendi senaryonuzla gösterelim ya da bir FortiGate yedeğiyle ücretsiz ilk raporunuzu isteyin.