DKIM Seçicisi Nedir ve Nasıl Bulunur?

DKIM (DomainKeys Identified Mail), gönderici posta sisteminin bir iletiyi alan adı adına dijital olarak imzalamasını ve alıcının bu imzayı açık anahtarla doğrulamasını sağlar. Seçici (selector), DKIM-Signature (DKIM imzası) üstbilgisinde s= etiketiyle taşınan ve hangi açık anahtar kaydının sorgulanacağını belirleyen addır.
Alıcı, seçiciyi d= etiketindeki imzalayan alan adı ve sabit _domainkey etiketiyle birleştirir. Oluşan adı DNS üzerinden sorgular. Bu nedenle seçici tek başına bir anahtar veya kayıt içeriği değildir; sorgulanacak tam DNS adını oluşturan parçalardan biridir.
Seçiciyi bulmanın en güvenilir yolu, ilgili gönderim sisteminden çıkmış gerçek bir iletinin ham üstbilgisini okumaktır. Örnek ileti yoksa e-posta hizmetinin yönetim paneli ve yetkili DNS bölgesi kullanılabilir. Yalnız görünen gönderen adresine veya tahmini default ve mail adlarına dayanmak güvenilir değildir.
DKIM Seçicisi İmza ve DNS Arasında Nasıl Çalışır?
- Gönderen sistem, imzalanacak üstbilgileri ve gövdeyi canonicalization (biçim normalleştirmesi) kurallarıyla işler.
DKIM-Signatureüstbilgisindekid=alanına imzalayan alan adını,s=alanına seçiciyi yazar; diğer zorunlu imza bilgilerini de ekler.- İmza kapsamındaki gövdenin kriptografik hash’ini hesaplayıp
bh=alanına yazar. - Seçilen üstbilgiler ve
DKIM-Signatureüzerinden hesaplanan özeti özel anahtarla imzalar. Hesaplamada bu imzanınb=değeri boş sayılır; oluşan dijital imza bu alana yazılır. Özel anahtar yalnız yetkili gönderim sisteminde kalır. - Alıcı,
s._domainkey.ddüzeninden DNS sorgu adını oluşturur ve açık anahtar kaydını alır. - Gövde özetini yeniden hesaplayıp
bh=ile karşılaştırır ve dijital imzayı açık anahtarla doğrular; sonucu diğer kimlik doğrulama ve teslim sinyalleriyle birlikte değerlendirir.
DNS kaydının bulunması, imzanın kendiliğinden geçerli olduğu anlamına gelmez. Açık anahtar doğru olsa bile ileti değişmişse, imza alanları hatalıysa veya anahtar türü algoritmayla uyuşmuyorsa DKIM doğrulaması başarısız olabilir.
DKIM-Signature İçindeki s= ve d= Değerleri
| Parça | Görevi | Nereden alınır? |
|---|---|---|
s= | Seçiciyi bildirir. | Aynı DKIM-Signature üstbilgisinden alınır. |
d= | İmzayı atan alan adını bildirir. | Aynı DKIM-Signature üstbilgisinden alınır. |
_domainkey | DKIM anahtarları için ayrılmış sabit DNS etiketidir. | Yönetici tarafından seçilmez; sorgu adına aynen eklenir. |
s._domainkey.d | Açık anahtarın sorgulanacağı tam DNS adını oluşturur. | Seçici, sabit etiket ve imzalayan alan birleştirilir. |
Görünen From (Gönderen) adresinin alan adı ile d= alan adı aynı olmak zorunda değildir. Anahtar konumunu belirlerken tahmin edilen gönderici alanı değil, incelenen imzanın kendi d= değeri kullanılır.
DMARC (Domain-based Message Authentication, Reporting, and Conformance), DKIM tarafında geçerli imzanın d= alan adı ile görünen From adresinin alan adının uyumlu olup olmadığını denetler; bu uyuma alan adı hizalaması denir. Seçici doğru anahtarı buldurur; alan adı hizalamasını, gönderen itibarını veya teslim kararını tek başına belirlemez.
Bir iletide birden fazla DKIM-Signature bulunabilir. Her imzanın d= ve s= değerleri kendi içinde eşleştirilmelidir; bir imzanın seçicisini başka imzanın alan adıyla birleştirmek yanlış sorgu üretir.
Tam DNS Sorgu Adı Nasıl Oluşturulur?
Genel düzen seçici._domainkey.imzalayan-alan biçimindedir. İmzada s=mail2026 ve d=example.com bulunuyorsa tam sorgu adı mail2026._domainkey.example.com olur. Buradaki example.com yalnız belgeleme örneğidir.
Seçici noktayla ayrılmış birden fazla DNS etiketinden oluşabilir. s=birim.mail ve d=mail.example.com değerleri birim.mail._domainkey.mail.example.com adını oluşturur. d= bir alt alan adı içeriyorsa tamamı korunur.
Belgelerdeki selector sözcüğü çoğu zaman yer tutucudur. Gerçek seçici mail2026 ise selector._domainkey.example.com değil, gerçek değeri içeren ad sorgulanır. DNS paneli alan adını otomatik ekliyorsa yalnız ana bilgisayar bölümü istenebilir; panel etiketini okumadan tam adı tekrar yazmak alan adının iki kez eklenmesine yol açabilir.
Seçici Ham E-posta Üstbilgisinden Nasıl Bulunur?
E-posta istemcisinde “Orijinali göster”, “İleti kaynağını görüntüle” veya “Ham ileti” benzeri görünümü açın. Görünen kısa özet yerine tam DKIM-Signature üstbilgisini bulun. Üstbilgi görsel olarak birkaç satıra katlanmış olabilir; noktalı virgülle ayrılan etiketler aynı üstbilginin parçalarıdır.
DKIM-Signature: v=1; a=rsa-sha256;
d=example.com; s=mail2026; ...Bu örnekte seçici mail2026, imzalayan alan example.com değeridir. a=rsa-sha256, RSA anahtarıyla SHA-256 birleşimini gösterir; algoritma etiketi seçicinin parçası değildir.
- İncelenecek gönderim kaynağından teslim edilmiş gerçek iletiyi seçin.
- Tam
DKIM-Signatureüstbilgisini bulun. - Aynı imza içindeki
s=ved=değerlerini ayrı ayrı kopyalayın. - Değerlerin sonuna taşınmış noktalama, tırnak veya boşlukları eklemeyin.
- Tam DNS adını kurup kaydı sorgulayın; ardından imzanın gerçek doğrulama sonucunu inceleyin.
Alıcının Authentication-Results (kimlik doğrulama sonuçları) üstbilgisi yardımcı kanıt sağlayabilir, ancak yalnız alıcı sistemin güven sınırı içinde eklendiği biliniyorsa kullanılmalıdır. Dışarıdan taşınan aynı adlı üstbilgi taklit edilebilir.
Yönetim Paneli ve DNS Bölgesinden Seçici Nasıl Bulunur?
| Kaynak | Ne gösterir? | Sınırı |
|---|---|---|
| Ham e-posta üstbilgisi | Gerçek bir imzada kullanılan s= ve d= çiftini gösterir. | Yalnız incelenen gönderim ve imzalar için kanıttır. |
| E-posta hizmeti paneli | Kurulması veya kullanılması planlanan seçiciyi ve DNS kaydını gösterir. | Kaydın yayımlandığını ve gerçek iletinin imzalandığını tek başına kanıtlamaz. |
| Yetkili DNS bölgesi | Yönetici erişimi varsa DNS TXT kaydı ile başka bir DNS adına yönlendiren CNAME kayıtlarını listeler. | Hangi seçicinin şu anda gönderimde kullanıldığını tek başına göstermez. |
| Dış DNS sorgusu | Bilinen bir tam adın yayımlanmış yanıtını gösterir. | Yalnız alan adından bütün seçicileri standart biçimde listeleyemez. |
Dışarıdan tüm DKIM seçicilerini keşfetmeyi sağlayan standart bir listeleme kaydı yoktur. default, mail, google veya tarih benzeri tahminleri denemek yalnız olasılık kontrolüdür; ham üstbilgi ya da hizmet paneli kanıtının yerini tutmaz.
DNS Açık Anahtar Kaydı Nasıl Okunur?
Açık anahtar çoğunlukla DNS TXT kaydında v=DKIM1; k=rsa; p=... biçiminde yayımlanır. v=DKIM1 kullanılıyorsa ilk etikettir. k= anahtar türünü, zorunlu p= ise açık anahtar verisini taşır. Özel anahtar hiçbir zaman DNS’e, e-posta üstbilgisine veya herkese açık dosyaya konmaz.
Boş p= değeri anahtarın iptal edildiğini bildirir. h= kabul edilen özet algoritmalarını sınırlar; t= ise test modu gibi seçenekleri belirten isteğe bağlı bayrakları bildirir. Bu etiketler DNS anahtar kaydına aittir; imza üstbilgisindeki h= imzalanan üstbilgileri, t= ise imzalama zamanını belirtir. n= açıklama notudur; güvenlik kararı veren bir komut olarak kullanılmaz.
Bazı hizmetler açık anahtarı doğrudan TXT kaydında vermek yerine CNAME kaydı ister. Bu durumda CNAME hedefinin de geçerli yanıta ulaşması gerekir. DNS paneli, uzun TXT değerini aynı kayıt içinde birden fazla tırnaklı karakter dizisine bölebilir; DKIM anahtar değeri okunurken bu diziler araya boşluk eklenmeden birleştirilir. Panel görünümündeki tırnaklar her zaman anahtar verisinin parçası değildir.
Birden Fazla Seçici Neden Kullanılır?
Aynı alan, kurumsal posta, destek sistemi ve toplu gönderim hizmeti için ayrı seçiciler kullanabilir. Böylece her hizmetin özel anahtarı ve DNS kaydı birbirinden ayrılır; bir hizmetteki değişiklik diğer gönderim kaynaklarını doğrudan etkilemez.
Anahtar değişiminde yeni seçiciyle yeni kayıt yayımlanır, ardından yeni imzalar bu seçiciye geçirilir. Eski seçici, daha önce imzalanmış ve kuyrukta bekleyen iletilerin doğrulanabileceği süre boyunca tutulabilir. Eski ve yeni seçicinin eş zamanlı yayımlanması bu geçişte normaldir.
Aynı seçici adı farklı d= alanlarında kullanılabilir; mail._domainkey.example.com ile mail._domainkey.example.net bağımsız DNS adlarıdır. Seçici adı bir e-posta sağlayıcısını, güven düzeyini veya anahtar sahibini tek başına kesinleştirmez.
DNS Sorgusunda Seçici ve Alan Adı Nasıl Girilir?
Bir DNS sorgu aracı kullanırken giriş alanlarının etiketlerini okuyun. Araç seçici ve alan adını ayrı istiyorsa s= değerini seçici alanına, d= değerini alan adı alanına girin.
- Seçici: Yalnız gerçek değer; örneğin
mail2026. - Alan adı: Yalnız imzadaki değer; örneğin
example.com. - Tam kayıt adı: Araç bunu açıkça istiyorsa
mail2026._domainkey.example.com.
Seçici alanına s= önekini, tırnakları, tüm imza satırını veya araç bunları kendisi ekliyorsa _domainkey ile alan adını yazmayın. Aynı parçanın iki kez eklenmesi, doğru kayıt mevcut olsa bile farklı bir DNS adının sorgulanmasına neden olur.
“Kayıt bulundu” sonucu yalnız DNS yanıtını gösterir. Alıcı, gerçek iletinin gövde özetini yeniden hesaplayıp bh= ile karşılaştırmalı ve dijital imzayı açık anahtarla doğrulamalıdır.
Sorgu Sonuçları ve Yaygın Hatalar Nasıl Ayrılır?
| Gözlem | Olası neden | Denetim |
|---|---|---|
| Kayıt yok veya NXDOMAIN (alan adı bulunamadı) yanıtı | Yanlış s=/d= çifti, yayımlanmamış ya da kaldırılmış kayıt | Ham üstbilgideki imzayı, tam adı ve yetkili DNS bölgesini karşılaştırın. |
| Geçici DNS hatası veya zaman aşımı | Recursive resolver (özyinelemeli DNS çözümleyicisi), ağ veya yetkili DNS sunucusu sorunu | Sonucu kalıcı kayıt yokluğu gibi yorumlamadan yeniden denetleyin. |
| TXT var, içerik bozuk | Eksik p=, yanlış kopyalama, geçersiz etiket düzeni | Hizmetin verdiği kayıtla yayımlanan birleşik TXT değerini karşılaştırın. |
p= boş | Anahtar iptal edilmiş | Bu seçiciyle yeni imza üretimini durdurun ve yeni seçiciyi doğrulayın. |
| CNAME var, hedef yanıt vermiyor | Yanlış hedef veya hedef adı yöneten DNS sisteminde eksik kayıt | CNAME zincirini ve son TXT yanıtını birlikte izleyin. |
| Kayıt var, imza başarısız | Yanlış anahtar, değişmiş ileti, uyumsuz algoritma veya eski önbellek | İmza alanlarını, gövde özetini ve güvenilir alıcı sonucunu inceleyin. |
Birden fazla imza varsa her sonucu kendi d=, s=, algoritma ve açık anahtarıyla değerlendirin. Bir imzanın geçmesi diğerinin geçeceğini; birinin başarısız olması da tüm iletinin sahte olduğunu göstermez.
Seçici ve Anahtar Değişimi Nasıl Yönetilir?
- Yeni seçici için yeni anahtar çifti oluşturun ve özel anahtarı yalnız yetkili imza sisteminde saklayın.
- Yeni açık anahtar kaydını yayımlayın ve yetkili DNS sunucularından alınabildiğini doğrulayın. Yeni seçici için daha önce kaydın bulunmadığı yanıtı önbelleğe alınmışsa bu yanıtın önbellek süresinin dolmasını bekleyin.
- Yeni seçiciyle imzalamayı başlatın ve farklı gerçek alıcılarda DKIM sonucunu doğrulayın.
- Gecikmiş veya yeniden denenen eski iletiler için gereken süre boyunca eski açık anahtarı yayımlamayı sürdürün.
- Yeni seçiciyle imzalama doğrulandıktan ve eski iletiler için gereken bekleme süresi dolduktan sonra eski seçiciyi kaldırın veya planlı biçimde boş
p=ile iptal edin.
Özel anahtar ele geçirilirse eski seçiciyle imzalamayı durdurun, yeni seçiciye geçin ve olay planına göre eski anahtarı iptal edin. DNS önbellekleri nedeniyle değişikliğin bütün alıcılarda aynı anda görünmesi beklenmez.







