DKIM Nedir, Nasıl Çalışır?

DKIM (DomainKeys Identified Mail), bir posta sisteminin iletiyi belirli bir alan adı adına dijital olarak imzalamasını ve alıcının imzayı açık anahtarla doğrulamasını sağlayan e-posta kimlik doğrulama yöntemidir. Özel anahtar imza üreten sistemde gizli kalır; açık anahtar DNS içinde yayımlanır.
DKIM, seçilen üstbilgiler ve gövde için kriptografik hash hesaplar. İmzalama ve doğrulama öncesindeki canonicalization (normalleştirme), veriyi imzada belirtilen kurallara göre hesaplamaya hazırlar; iletinin aktarılan içeriğini değiştirmez. Alıcı aynı kuralları uygular, DNS’teki açık anahtarı alır, gövde özetini karşılaştırır ve dijital imzayı doğrular. Doğrulama geçerse imzalanan verinin imzadan sonra sonucu bozacak biçimde değişmediği ve imzayı atan alanın ilgili özel anahtara eriştiği anlaşılır.
DKIM şifreleme değildir; iletiyi gizlemez, yazarı bireysel olarak doğrulamaz ve teslimatı garanti etmez. İmza, alan adıyla sınırlı bir sorumluluk beyanı ve imza kapsamındaki veri için bütünlük kanıtı taşır.
DKIM İmzalama ve Doğrulama Akışı
| Aşama | Gönderen sistem | Alıcı sistem |
|---|---|---|
| Hazırlık | İmzalanacak üstbilgileri ve gövdeyi seçilen normalleştirme kurallarıyla işler. | İletideki DKIM-Signature üstbilgisini bulur ve zorunlu etiketleri okur. |
| Gövde özeti | Normalleştirilmiş gövdenin özetini bh= alanına yazar. | Gövde özetini yeniden hesaplar ve bh= ile karşılaştırır. |
| Anahtar bulma | Alan adını d=, seçiciyi s= alanında bildirir. | s._domainkey.d biçimindeki DNS TXT kaydından açık anahtarı alır. |
| Dijital imza | Seçilen üstbilgiler ile DKIM-Signature verisini, hesaplama sırasında bu imzanın b= değerini boş sayarak özel anahtarla imzalar; sonucu b= alanına yazar. | Açık anahtarla b= imzasını doğrular. |
| Sonuç | İmzalı iletiyi teslim zincirine bırakır. | DKIM sonucunu yerel güvenlik ve teslim politikasıyla birlikte yorumlar. |
İmza, ileti gönderen alanın yönetim sınırından çıkmadan önce eklenmelidir. Bir aracı sistem iletiyi değiştirip yeniden imzalayacaksa önce mevcut imzayı değerlendirmeli, değişikliği yapmalı ve ardından kendi imzasını eklemelidir.
Bir ileti birden fazla DKIM-Signature üstbilgisi taşıyabilir. Kurumsal sistem, gönderim hizmeti ve aracı ayrı imza ekleyebilir; alıcı her imzayı bağımsız doğrular. İmzaların üstbilgideki sırası tek başına güven veya öncelik anlamına gelmez.
DKIM-Signature Üstbilgisindeki Temel Alanlar
| Etiket | Anlamı | Denetim notu |
|---|---|---|
v= | DKIM sürümü | Gerekli etikettir; güncel sürüm değeri 1 biçimindedir. |
a= | İmza algoritması | RSA ile SHA-256’yı kullanan rsa-sha256 veya desteklenen başka güncel algoritmayı gösterir. |
c= | Üstbilgi ve gövde normalleştirmesi | simple ve relaxed seçeneklerini gösterir; yoksa simple/simple kabul edilir. |
d= | İmzayı atan alan adı | İmzanın ilişkilendirildiği alan adıdır; görünen From adresinin alan adıyla aynı olmak zorunda değildir. |
s= | Selector (seçici) | Aynı alan için hangi açık anahtarın sorgulanacağını belirler. |
h= | İmzalanan üstbilgi adları | From üstbilgisi mutlaka listede bulunmalıdır. |
bh= | Normalleştirilmiş gövde özeti | Gövde değişirse yeniden hesaplanan değer eşleşmeyebilir. |
b= | Dijital imza değeri | Açık anahtarla kriptografik olarak doğrulanır. |
t= / x= | İmzalama ve isteğe bağlı sona erme zamanı | x= yoksa sabit sona erme zamanı tanımlanmaz; bu etiket tekrar oynatma savunması değildir. |
l= | İmzalanan gövde uzunluğu | Sonuna yetkisiz içerik eklenmesine alan açabileceği için güçlü gerekçe olmadan kullanılmamalıdır. |
Zorunlu etiketlerden biri eksikse veya h= listesi From üstbilgisini içermiyorsa imza geçerli sayılmaz. Return-Path (geri dönüş yolu) gibi teslim sırasında meşru biçimde değişebilen üstbilgileri imzalamak kırılganlık oluşturabilir.
Seçici ve DNS Açık Anahtar Kaydı
Seçici, aynı imzalayan alan için birden fazla anahtarın birlikte yönetilmesini sağlar. İmzada d=example.com ve s=mail2026 bulunuyorsa alıcı mail2026._domainkey.example.com adını sorgular. Bu ad yalnız örnektir; gerçek seçici hizmet yapılandırmasından alınır.
DNS TXT kaydı genellikle v=DKIM1; k=rsa; p=... biçimindedir. v=DKIM1 etiketi kullanılıyorsa ilk sırada bulunur. p= açık anahtarı taşır; özel anahtar hiçbir zaman DNS’e, e-posta üstbilgisine veya herkese açık dosyaya yazılmaz. Boş p= değeri anahtarın iptal edildiğini bildirir; DNS önbellekleri nedeniyle iptalin bütün alıcılarda anında görünmesi beklenmemelidir.
Birden fazla gönderim hizmeti aynı alanı imzalayabilir; her hizmete ayrı seçici vermek anahtar sahipliğini, değişimi ve olay müdahalesini kolaylaştırır. Seçici güvenlik sırrı değildir; amacı doğru açık anahtara ulaşmaktır.
Algoritma ve Anahtar Boyutu Nasıl Seçilir?
RSA tabanlı DKIM için rsa-sha256 kullanılmalıdır. rsa-sha1 ile imzalama ve doğrulama güncel standartta yasaktır. RSA anahtarı en az 1024 bit olmalı, en az 2048 bit kullanılması önerilir; doğrulayıcıların 1024 ile 4096 bit arasındaki anahtarları işleyebilmesi gerekir.
DKIM’e ayrıca Edwards eğrisi tabanlı ed25519-sha256 imza algoritması eklenmiştir. İmza üreten sistemlerin bunu uygulaması önerilir ve doğrulayıcıların desteklemesi gerekir. Bu algoritmada imzada a=ed25519-sha256, DNS açık anahtar kaydında k=ed25519 kullanılır. E-posta sağlayıcısının, DNS panelinin ve gerçek alıcıların uyumluluğunu sınayın; geçişte RSA-SHA256 ve Ed25519-SHA256 ile bağımsız iki imza birlikte taşınabilir.
Anahtar boyutunu gereksiz yere büyütmek DNS TXT dizesini uzatabilir ve panel uyumluluğunu etkileyebilir. Güvenlik, birlikte çalışabilirlik, anahtar saklama ve düzenli değişim planı birlikte değerlendirilmelidir.
Normalleştirme Mesaj Değişikliklerini Nasıl Etkiler?
simple normalleştirmesi biçime daha katıdır. relaxed normalleştirmesi üstbilgi adındaki büyük-küçük harf farkı ve belirli boşluk değişiklikleri gibi anlamsal olmayan ayrıntıları düzenleyerek aktarım sırasında imzanın korunma olasılığını artırır. Anlamlı içerik değişikliğini geçerli kılmaz.
c=relaxed/relaxed ilk değerle üstbilgi, ikinci değerle gövde normalleştirmesini seçer. c= yoksa simple/simple varsayılır. Hangi seçimin uygun olduğu, iletinin geçtiği aracıların meşru biçim değişiklikleri ve güvenlik gereksinimiyle sınanmalıdır.
l= kullanıldığında imza, normalleştirilmiş gövdenin yalnız belirtilen sayıdaki ilk baytını kapsar; sona eklenen veriyi kapsam dışında bırakabilir. Bu özellik, imza korunurken alıcıya yanıltıcı içerik eklenmesi riskini doğurur. İmza üretenler bu etikete karşı son derece dikkatli olmalıdır.
Alıcı DKIM İmzasını Nasıl Doğrular?
- İletideki her DKIM-Signature üstbilgisini ayrı aday olarak okur.
v=,a=,b=,bh=,d=,h=ves=gibi zorunlu alanları denetler.d=ves=ile DNS anahtar adını oluşturur, TXT kaydını sorgular.- Anahtar türünün algoritmayla uyumunu ve anahtarın iptal edilmediğini kontrol eder.
- Gövdeyi
c=ve varsal=kurallarına göre işler; özetibh=ile karşılaştırır. h=listesindeki üstbilgileri ve DKIM-Signature verisini işleyerek açık anahtarlab=imzasını doğrular; özet hesaplanırken doğrulanan imzanınb=değeri boş sayılır.- Sonucu diğer kimlik doğrulama, itibar ve yerel teslim sinyalleriyle birlikte kullanır.
DNS zaman aşımı geçici hata oluşturabilir; kayıt bulunmaması, bozuk kayıt, iptal edilmiş anahtar, eksik zorunlu alan veya eşleşmeyen özet kalıcı başarısızlığa yol açabilir. Başarısız doğrulama tek başına sahtecilik kanıtı değildir; yapılandırma ve aktarım değişiklikleri de incelenmelidir.
DKIM Neyi Kanıtlar, Neyi Kanıtlamaz?
| DKIM’in sağladığı kanıt | DKIM’in sağlamadığı güvence |
|---|---|
d= alanındaki imzalayanın özel anahtara eriştiği | İletiyi yazan kişinin bireysel kimliği |
| İmza kapsamındaki üstbilgi ve gövdenin doğrulamayı bozacak biçimde değişmediği | Bütün üstbilgilerin veya imza dışı verinin değişmediği |
| DNS’te yayımlanan açık anahtarla imzanın eşleştiği | İçeriğin güvenli, zararsız veya istenen ileti olduğu |
| Alan adıyla kriptografik sorumluluk ilişkisi | Görünen From adresinin alan adıyla otomatik hizalama veya teslim garantisi |
| Alıcının yerel kararında kullanabileceği kimlik doğrulama sonucu | Şifreleme, gizlilik veya tekrar oynatmayı tek başına önleme |
Geçerli imza, yetkili bir sistemde ele geçirilmiş hesabın kötüye kullanılmadığını göstermez. Saldırgan, imza hizmetine erişebiliyorsa teknik olarak geçerli DKIM taşıyan zararlı ileti gönderebilir.
Yönlendirme ve İleti Değişiklikleri DKIM’i Nasıl Etkiler?
Yalnız yönlendirme yapılması DKIM’i bozmak zorunda değildir; imzalanan veri değişmeden taşınırsa imza geçerli kalabilir. Konu satırının değiştirilmesi, imzalanmış üstbilgi ekleme-silme, gövdeye alt bilgi veya takip bağlantısı ekleme, içerik kodlamasını değiştirme ya da MIME (Multipurpose Internet Mail Extensions) yapısını yeniden yazma doğrulamayı bozabilir.
relaxed normalleştirmesi belirli boşluk ve biçim değişikliklerine tolerans sağlar; metin, bağlantı veya ek içeriğin anlamlı biçimde değiştirilmesini gizlemez. Hangi üstbilgilerin imzalandığı h= listesinden incelenmelidir.
Anahtar Değişimi ve Olay Müdahalesi
- Yeni seçici için yeni anahtar çifti oluşturun; özel anahtarı yalnız imza üreten yetkili sistemde saklayın.
- Yeni açık anahtarı DNS’te yayımlayın ve yetkili DNS sunucularından alınabildiğini doğrulayın. Yeni seçici için daha önce kaydın bulunmadığına ilişkin bir DNS yanıtı önbelleğe alınmışsa bu yanıtın önbellek süresinin dolmasını da bekleyin.
- Yeni seçiciyle imzalamayı başlatın; gerçek alıcılarda DKIM sonucunu doğrulayın.
- Eski imzalı iletilerin aktarım, yeniden deneme ve gecikmeli doğrulama penceresi boyunca eski açık anahtarı yayımlamayı sürdürün.
- Yeni seçiciyle imzalama ve doğrulama sınandıktan, eski imzalı iletiler için bekleme süresi dolduktan sonra eski seçiciyi kaldırın veya planlı biçimde iptal edin.
Özel anahtar ele geçirilirse ilgili imzalamayı durdurun, yeni seçiciye geçin ve eski anahtarı boş p= ile iptal etmeyi ya da kaydı kaldırmayı olay planına göre uygulayın. DNS önbellekleri ve önceden üretilmiş imzalar nedeniyle anahtar iptali anlık ve evrensel bir geri alma mekanizması değildir.
DKIM Sonucunun SPF ve DMARC ile İlişkisi
SPF (Sender Policy Framework), bağlantının kaynak IP adresinin MAIL FROM adresindeki alan adını kullanarak posta göndermeye yetkili olup olmadığını denetler. DMARC (Domain-based Message Authentication, Reporting, and Conformance) ise DKIM tarafında geçerli imzanın d= alan adıyla görünen From adresinin alan adının uyumlu olup olmadığını denetler; bu uyum alan adı hizalaması olarak adlandırılır. Geçerli fakat hizasız DKIM, tek başına DMARC başarısı sağlamaz.
Her gerçek gönderim kaynağından kontrollü ileti gönderin. Güvenilir alıcının Authentication-Results (kimlik doğrulama sonuçları) üstbilgisinde dkim=pass, imzalayan header.d alanı, seçici ve DMARC hizalamasını inceleyin. Bu üstbilgiyi yalnız alıcı sistemin güven sınırı içinde eklediği biliniyorsa kanıt sayın; dışarıdan taşınan aynı adlı alan sahte olabilir.







