DKIM özel anahtarınızın ifşa edilmiş olabileceğini keşfetmek ciddi bir güvenlik olayıdır. Ele geçirilmiş bir parolanın aksine, sızdırılmış bir DKIM anahtarı sessizce kullanılabilir — bir saldırgan, DKIM doğrulamasını geçen ve DMARC koşullarını potansiyel olarak karşılayan sahte e-postalar imzalayabilir; bu durum müşterilerinize ve iş ortaklarınıza yönelik kimlik avı kampanyalarını çok daha ikna edici hale getirir. İyi haber: hızlı ve etkili bir şekilde yanıt verebilirsiniz. Bu kılavuz, yedek anahtar çifti oluşturmaktan düzeltmeyi doğrulamaya ve gelecekteki açıklamalara karşı kurulumunuzu güçlendirmeye kadar her adımı anlatmaktadır.

Bir DKIM Anahtarı Nasıl Ele Geçirilir?

DKIM, asimetrik kriptografiye dayanır. Posta sunucunuz, giden iletileri imzalamak için kullandığı bir özel anahtar barındırır. Karşılık gelen genel anahtar, bir seçici alt alanı altında DNS'de TXT kaydı olarak yayımlanır (örneğin selector1._domainkey.example.com). Alıcı sunucular genel anahtarı alır ve imzayı doğrular — kontrol başarılı olursa DKIM geçer.

Özel anahtarın gizli kalması zorunludur. Yaygın ifşa yolları şunlardır:

  • Sunucu ihlali. Bir saldırgan, posta sunucunuza veya özel anahtar dosyalarının depolandığı dosya sistemine erişim sağlar. Anahtar dosyaları genellikle /etc/opendkim/keys/ gibi tahmin edilebilir konumlarda veya posta sunucusu yapılandırma dizinlerinde bulunur.
  • Sızdırılmış yapılandırma dosyaları. Yapılandırma dosyalarına gömülü özel anahtarlar — veya yanlışlıkla bir sürüm kontrol deposuna işlenmiş anahtarlar — depo geçmişi açığa çıktığında kalıcı olarak erişilebilir hale gelir.
  • Paylaşımlı barındırma ortamları. Paylaşımlı barındırmada, yetersiz dosya sistemi izin denetimleri diğer kiracıların anahtar materyalinizi okumasına izin verebilir.
  • Eski yedekler. Posta sunucusu yapılandırmasını içeren yedek arşivler, özellikle yedekler şifrelenmemiş bulut depolama gibi daha az güvenli konumlarda saklandığında, sık görülen ancak gözden kaçan bir anahtar sızıntısı kaynağıdır.
  • Ele geçirilmiş ESP hesapları. E-posta servis sağlayıcıları, DKIM anahtarlarını sizin adınıza yönetir. ESP hesabınız ele geçirilirse, saldırgan anahtarları alabilir veya kendi kontrolündeki anahtarlarla değiştirebilir.

Bir saldırgan özel anahtarınıza sahip olduğunda, oluşturduğu her e-postada geçerli DKIM imzaları üretebilir. Bu iletiler alıcı sunuculardaki DKIM kontrollerini geçer ve imzalayan etki alanı Header-From adresiyle hizalanıyorsa reject politikanız olsa bile DMARC koşullarını da karşılar. Dışarıdan bakıldığında bu sahte e-postalar tamamen meşru görünür.

Anlık Adımlar: Paniklemeden Hızlıca Hareket Edin

Ele geçirilmiş bir DKIM anahtarı ciddidir ancak tam olarak kurtarılabilirdir. Müdahale sürecinin açık bir sırası vardır: yeni bir anahtar çifti oluşturun, yeni genel anahtarı DNS'de yayımlayın, posta sunucunuzu yeni anahtarla imzalayacak şekilde güncelleyin, ardından eski anahtarı DNS kaydını geçersiz kılarak iptal edin. Sürecin tamamı çoğu kurulum için bir saatten kısa sürede tamamlanabilir — temel değişken DNS yayılma süresidir.

İlk eylem olarak eski DNS kaydını silmeyin. Posta sunucunuz yeni imzalama anahtarına geçmeden eski genel anahtarı kaldırırsanız, eski anahtarla imzalanmış aktarımdaki iletiler DKIM doğrulamasında anında başarısız olur. Aşağıdaki adımları sırasıyla izleyin.

Adım 1: Yeni bir DKIM Anahtar Çifti Oluşturun

Minimum 2048 bit anahtar boyutuna sahip yeni bir RSA anahtar çifti oluşturarak başlayın. 512 bit ve 1024 bit anahtarlar zayıf kabul edilir ve birçok alıcı sunucu bunları doğrudan reddeder. Yeni bir seçici adı seçin — 20260415 gibi tarih tabanlı bir kural kullanmak rotasyon geçmişini izlemeyi kolaylaştırır.

OpenDKIM çalıştıran bir sunucuda anahtar çiftini şu şekilde oluşturabilirsiniz:

opendkim-genkey -b 2048 -d example.com -s 20260415

Bu işlem iki dosya üretir: 20260415.private (yeni özel anahtar) ve 20260415.txt (yayımlanacak DNS TXT kaydı). Özel anahtar dosyasını katı dosya sistemi izinleriyle saklayın — yalnızca posta sunucusu işlemi tarafından okunabilir olsun, asla herkese açık olmasın.

Google Workspace, Microsoft 365, Mailchimp veya SendGrid gibi bir e-posta servis sağlayıcısı kullanıyorsanız, anahtar oluşturma adımı kendi sunucunuzda değil ESP'nin yönetim panelinde gerçekleşir. DKIM ayarları veya etki alanı kimlik doğrulama bölümünü bulun ve orada yeni bir anahtar oluşturun. ESP, yayımlamanız gereken DNS TXT kaydı değerini size verecektir.

Adım 2: Yeni Genel Anahtarı DNS'de Yayımlayın

Yeni anahtarınız için seçici alt alanında yeni bir DNS TXT kaydı oluşturun. Kayıt formatı şöyledir:

20260415._domainkey.example.com  IN  TXT  "v=DKIM1; k=rsa; p=<base64-encoded-public-key>"

Seçici adı olarak 20260415 yerine seçtiğiniz adı, example.com yerine ise kendi etki alanınızı yazın. p= değeri, opendkim-genkey tarafından oluşturulan .txt dosyasına dahil olan veya ESP'niz tarafından sağlanan Base64 kodlu genel anahtardır.

Bu kaydın TTL değerini düşük tutun — aktif anahtar rotasyonu sırasında 300 saniye (5 dakika) önerilir. Kısa bir TTL, değişikliklerin hızla yayılmasını sağlar. Rotasyon tamamlanıp stabil hale geldiğinde daha yüksek bir değere (3600 veya daha fazla) geri yükseltebilirsiniz.

Eski seçicinin DNS kaydına henüz dokunmayın. Posta sunucunuzun yeni anahtarı tamamen kullandığını onaylayana kadar geçerli kalması gerekir.

Adım 3: Posta Sunucunuzu Yeni Anahtarla İmzalayacak Şekilde Güncelleyin

Yeni DNS kaydı yayınlandıktan ve yayılmaya başladıktan sonra, posta sunucunuzun yapılandırmasını giden iletileri yeni özel anahtar ve yeni seçiciyle imzalayacak şekilde güncelleyin. OpenDKIM'de bu, anahtar tablosu ve imzalama tablosunu yeni seçiciye ve anahtar dosyasına başvuracak şekilde güncellemek ve ardından servisi yeniden yüklemek anlamına gelir:

systemctl reload opendkim

ESP tarafından yönetilen DKIM için bu adım, genellikle panelden yeni anahtarın etkinleştirilmesi veya devreye alınmasıyla tamamlanır — ESP, etkinleştirmeden hemen sonra yeni anahtarla imzalamaya başlayacaktır.

Bir test iletisi gönderin (Gmail adresine göndermek işe yarar) ve DKIM-Signature başlığının yeni seçicinize atıfta bulunduğunu doğrulamak için ham ileti başlıklarını inceleyin. İmza başlığında s=20260415 (veya seçtiğiniz seçici adı) ifadesini arayın.

Adım 4: Eski Anahtarı İptal Edin

Posta sunucunuzun yeni anahtarla imzaladığını onayladıktan sonra, eski seçicinin DNS kaydını geçersiz kılın. Bir DKIM anahtarını iptal etmenin doğru yolu, DNS kaydını tamamen silmek değildir — bunun yerine kaydı boş bir genel anahtar değeri kullanacak şekilde güncelleyin:

old-selector._domainkey.example.com  IN  TXT  "v=DKIM1; p="

p= değerini boş dizeye ayarlamak, RFC 6376'da tanımlanan standart iptal mekanizmasıdır. Alıcı sunuculara anahtarın iptal edildiğini ve bu anahtarla imzalanmış herhangi bir iletinin geçerli bir DKIM imzası yokmuş gibi ele alınması gerektiğini bildirir. Bu yöntem tam silmeye tercih edilir; çünkü bazı DNS çözümleyicileri olumsuz yanıtları önbelleğe alır ve silinmiş bir kaydı hemen yeniden kontrol etmeyebilir.

Devam etmeden önce eski seçicinin TTL'sinin dolmasını bekleyin. Eski kayıt 3600 saniyelik bir TTL'ye sahipse, iptal kaydını yayımladıktan sonra önbelleğe alınmış kopyaların tamamen geçerliliğini yitirdiğini kabul etmeden önce en az bir saat bekleyin. Bu sürenin ardından iptal edilmiş kaydı süresiz bırakabilir veya tamamen kaldırabilirsiniz — TTL dolduktan sonra her ikisi de güvenlidir.

Adım 5: Rotasyonu Doğrulayın

Yeni anahtarın doğru şekilde yayımlandığını ve eski anahtarın iptal edildiğini dig kullanarak doğrulayın:

# Check the new selector
dig TXT 20260415._domainkey.example.com +short

# Check the old selector (should return p= with empty value)
dig TXT old-selector._domainkey.example.com +short

Ayrıca yeni seçicinizi ağınızın dışından doğrulamak için DMARCFlow DKIM Denetleyicisini kullanabilirsiniz. Genel anahtarın doğru biçimlendirildiğini, kaydın sözdizimsel olarak geçerli olduğunu ve anahtar uzunluğunun 2048 bit minimumu karşıladığını onaylamak için etki alanınızı ve yeni seçici adınızı girin. Denetleyici, posta akışınızı etkilemeden önce kayıt yapısındaki sorunları işaretleyecektir.

DKIM kurulumunuzu ücretsiz doğrulayın
Yeni seçicinizin doğru şekilde yayımlandığını ve anahtarınızın güncel güvenlik standartlarını karşıladığını saniyeler içinde kontrol edin.
DKIM'inizi Kontrol Edin

Adım 6: DMARC Raporlarını İzleyin

Anahtar rotasyonunun ardından geçen günlerde DMARC toplu raporlarınızı yakından takip edin. Rotasyonun hemen ardından DKIM hatalarında yaşanan ani bir artış, bazı gönderim yollarının hâlâ eski anahtarı kullandığına işaret eder — örneğin güncellenmeyen ikincil bir posta sunucusu veya bir ESP entegrasyonu. DMARC raporları, DKIM hatası üreten kaynak IP adreslerini ve kullandıkları seçiciyi tam olarak gösterir; bu da geride kalanları tespit etmeyi kolaylaştırır.

DMARC raporlarını henüz almıyor ve incelemiyorsanız, DMARCFlow toplu raporlarınızı otomatik olarak ayrıştırır ve kaynak bazında dökümlerle DKIM hata kalıplarını ortaya çıkarır. Rotasyonun ardından DKIM geçme oranlarının 24–48 saat içinde olay öncesi taban çizgisine döndüğünü görmek istersiniz. Dönmezlerse, rapor verileri kalan hataların tam olarak nereden kaynaklandığını size gösterecektir.

Ayrıca ele geçirilen anahtarın aktif olarak kötüye kullanılıp kullanılmadığını kontrol edin. Bir saldırgan, siz iptal etmeden önce eski özel anahtarı sahte iletileri imzalamak için kullanmışsa, bu iletiler DMARC raporlarında etki alanınızdan DKIM geçişleri olarak, ancak tanımadığınız IP adreslerinden kaynaklanıyormuş gibi görünecektir. Bu tür etkinlikleri belgeleyin ve etkilenen tarafları bilgilendirmeyi düşünün.

Gelecekteki Anahtar İhlallerini Önleme

Reaktif bir müdahale gereklidir; ancak asıl amaç bu senaryonun yeniden yaşanmasını önlemektir. Aşağıdaki uygulamalar maruziyetinizi önemli ölçüde azaltır:

  • Özel anahtar dosyası izinlerini kısıtlayın. Anahtar dosyaları yalnızca posta sunucusu daemon'ınızı çalıştıran kullanıcı hesabı (örneğin opendkim kullanıcısı) tarafından okunabilir olmalıdır. Doğru sahiplikle 600 veya 640 modu asgari gereksinimdir. Anahtar dosyalarını asla herkese açık yapmayın.
  • Özel anahtarları asla sürüm kontrolüne göndermek. .gitignore dosyanıza anahtar dosyası kalıpları ekleyin. Mevcut depoları, truffleHog veya git-secrets gibi araçları kullanarak yanlışlıkla işlenmiş gizli bilgiler için tarayın. Bir anahtar işlendiyse, deponun özel olup olmadığından bağımsız olarak ele geçirilmiş kabul edin.
  • Minimum olarak 2048 bit anahtar kullanın. RFC 8301, 1024 bitten kısa anahtarları geçersiz sayar; ancak anlamlı güvenlik için pratik minimum 2048 bittir. DNS kaydı boyutu ve doğrulama CPU maliyetindeki hafif artışı kabul ederek uzun ömürlü seçiciler için 4096 bit anahtarları düşünün.
  • Düzenli bir rotasyon takvimi oluşturun. Şüpheli bir ihlal olmasa bile, DKIM anahtarlarını düzenli bir tempoda — her 6 ila 12 ayda bir — döndürmek, geçmişte fark edilmemiş herhangi bir ihlalden kaynaklanan maruziyet penceresini sınırlandırır. Rotasyon geçmişini görünür kılmak için tarih damgalı seçiciler kullanın.
  • Yedekleri güvenli ve ayrı saklayın. Posta sunucusu yapılandırmasını içeren yedek arşivleri şifreleyin. Bunları üretim sunucusundan ayrı, erişim denetimli konumlarda saklayın. Yedeğin yaşı veya kaynağı belirsizse, yedekten geri yüklemenin ardından anahtarları döndürün.
  • ESP hesap erişimini izleyin. DKIM anahtarlarınız bir ESP tarafından yönetiliyorsa, bu hesapta çok faktörlü kimlik doğrulamayı etkinleştirin ve erişim günlüklerini periyodik olarak inceleyin. DKIM güvenliği açısından bir hesap ele geçirme, bir sunucu ihlali kadar zararlı olabilir.
  • DMARC raporlarını sürekli inceleyin. DMARC raporlarınızdaki tanımadığınız IP adreslerinden gelen beklenmedik DKIM geçişleri, ihlalden haberdar olmadan önce bile ele geçirilmiş bir anahtarın kullanıldığına işaret edebilir. Düzenli inceleme erken uyarı sağlar.