SPF, postanın hangi sunucudan geldiğini denetler. DKIM ise farklı bir soruyu yanıtlar: bu posta gerçekten o alan adı tarafından yetkilendirilmiş mi ve yolda değiştirilmiş mi?
Nasıl çalışır
Gönderen sunucu, giden postanın belirli başlıklarını ve gövdesini kendi özel anahtarıyla imzalar. İmzayı bir başlık olarak iletiye ekler.
Alıcı sunucu, gönderen alan adının DNS kaydından ortak anahtarı çeker ve imzayı doğrular. Doğrulama geçerse iki şey kanıtlanmış olur.
Birincisi, postanın o alan adının anahtarını elinde tutan bir sistemden çıktığı. İkincisi, imzalanan kısımların yolda değişmediği.
Ortak ve özel anahtar mantığının arka planı simetrik ve asimetrik şifreleme yazısında.
Seçici kavramı
DNS’te tek bir DKIM kaydı yoktur; her anahtar bir seçici adıyla yayımlanır.
Bunun pratik sebebi, aynı alan adından birden çok sistemin posta göndermesidir. Posta sağlayıcınız kendi seçicisini, pazarlama aracınız kendi seçicisini kullanır. İmzada hangi seçicinin kullanıldığı yazdığı için alıcı, doğru anahtarı bulur.
İkinci fayda anahtar döndürmedir: yeni bir seçici yayımlanır, gönderim ona geçirilir, eski seçici bir süre sonra kaldırılır. Kesinti olmaz.
Neyin imzalandığı önemlidir
Sık atlanan ayrıntı budur ve güvenlik farkı yaratır.
İmza, iletinin tamamını değil seçilen başlıkları ve gövdeyi kapsar. Hangi başlıkların imzalandığı, imzanın içinde listelenir.
Görünen gönderen adresi imzalanmamışsa, saldırgan onu değiştirip imzayı geçerli bırakabilir. Bu yüzden görünen gönderen alanı her zaman imza kapsamında olmalıdır.
Tersi de bir sorundur: çok fazla başlığın imzalanması, yoldaki meşru sistemlerin ilettiği postayı bozar. Konu başlığına etiket ekleyen bir güvenlik geçidi, imzayı geçersiz kılabilir.
İmzayı bozan sistemler
DKIM’in kırılganlığı buradadır: iletiyi değiştiren her aracı imzayı bozar.
Klasik örnek posta listeleridir. Liste yazılımı konu başlığına liste adını ekler ya da gövdenin sonuna abonelikten çıkma bağlantısı koyar. İmza artık doğrulanmaz.
Aynı sorun kurum içi sistemlerde de görülür: giden postaya yasal uyarı metni ekleyen bir geçit, imzalama öncesinde çalışmıyorsa imzayı geçersiz kılar.
Kural basittir ve sıralamadır: iletiyi değiştiren her şey, imzalamadan önce çalışmalıdır. Bu sıra kurulmadığında belirti tuhaftır — postalar gidiyor ama bazı alıcılarda spam’e düşüyor.
Liste sorununu çözmek için tasarlanmış bir aktarma mekanizması vardır; sağlayıcı destekliyorsa listeler için açılması gerekir.
Anahtar uzunluğu ve döndürme
İki bakım kalemi vardır ve ikisi de unutulur.
Uzunluk. Kısa anahtarlar kırılabilir ve bazı alıcılar tarafından geçersiz sayılır. Bugün kabul edilen alt sınır 2048 bittir; bazı DNS sağlayıcıları uzun kayıtları bölmeyi gerektirir ve bu bölme yanlış yapıldığında doğrulama sessizce başarısız olur.
Döndürme. Anahtar süresiz kullanılmamalıdır. Yılda bir kez yeni bir seçiciyle döndürmek makul bir ölçüdür; sağlayıcılar bunu otomatik yapabiliyorsa açılmalıdır.
Aynı süre takibi sertifikalarda da geçerlidir ve aynı nedenle kaçırılır; yöntemi süresi dolan sertifikayı kesintiden önce yakalamak yazısında.
Tek başına yeterli değil
DKIM, postanın imzalandığını kanıtlar — ama imzanın hangi alan adına ait olduğunu kullanıcıya göstermez.
Saldırgan kendi alan adıyla geçerli bir DKIM imzası üretebilir ve görünen adreste sizin alan adınızı gösterebilir. Doğrulama teknik olarak geçer.
Eksik parça, imzadaki alan adının görünen gönderenle uyuşma şartıdır. Bunu koyan DMARC yazısında; zarf adresini denetleyen tamamlayıcı katman ise SPF nedir yazısında.
Üçünün birlikte kurulması gerektiği söylenirken kastedilen tam olarak budur: her biri diğerinin kör noktasını kapatır.
Yayına alma sırası
Kesintisiz kurulum için sıra şudur.
Önce sağlayıcıda imzalamayı açın ve seçici kaydını DNS’e ekleyin. Sonra dışarıya test postaları gönderip başlıklarda doğrulamanın geçtiğini görün. Ardından posta gönderen tüm kaynakları tek tek geçirin — fatura sistemi, destek yazılımı, izleme uyarıları.
Son adım, hiçbir kaynağın imzasız kalmadığını doğrulamaktır. Bunun için DMARC raporları en pratik araçtır; okunması DMARC nedir yazısında.
Doğrulama başarısız olduğunda ne olur
DKIM’in tek başına bir yaptırımı yoktur. İmza doğrulanamazsa alıcı sunucu postayı reddetmek zorunda değildir; genelde yalnızca not düşer ve teslim etmeye devam eder.
Bu, kurulumun sessizce bozulabileceği anlamına gelir. Anahtar döndürme sırasında DNS kaydı eksik yayımlanır, imzalama bir güncellemede kapanır ya da bir aracı sistem iletiyi değiştirmeye başlar — postalar gitmeye devam eder ve kimse fark etmez.
Bozulmanın fark edilmesini sağlayan tek düzenli kaynak, DMARC raporlarıdır. Bu yüzden DKIM kurulumu, raporlama açılmadan tamamlanmış sayılmaz.
Kısaca
DKIM, postayı imzalayarak hem kaynağı hem bütünlüğü kanıtlar; SPF’ten farkı, sunucuya değil iletiye bakmasıdır.
Kurarken üç şeye dikkat edin: görünen gönderen alanının imza kapsamında olması, iletiyi değiştiren sistemlerin imzalamadan önce çalışması ve anahtarların düzenli döndürülmesi.