DKIM Kaydı Nedir?
DKIM (DomainKeys Identified Mail, RFC 6376), sunucunuzun gönderdiği her iletiye dijital bir imza ekler. İmza, sunucuda kalan bir özel anahtarla oluşturulur. Eşleşen açık anahtar DNS'te selector._domainkey.yourdomain.com adresinde TXT kaydı olarak yayınlanır; alıcılar bu anahtarı alarak iletinin gerçekten alan adınızdan geldiğini ve yolda değiştirilmediğini kontrol eder.
Seçici (selector), default veya s1 gibi sizin belirlediğiniz bir etikettir. Bir alan adının aynı anda birden fazla anahtar yayınlamasını sağlar: her servis veya her anahtar nesli için bir tane. Örneğin yönlendirme sonrasında SPF hizalanamadığında e-postanın DMARC'tan geçmesini sağlayan da kendi alan adınızdan gelen geçerli bir DKIM imzasıdır.

Kendi DKIM Anahtarınızı Oluşturmanız Gerekir mi?
Çoğu zaman gerekmez. Google Workspace anahtarı sizin için oluşturur (Yönetici konsolu, Uygulamalar, Google Workspace, Gmail, E-posta kimliğini doğrulama) ve Microsoft 365, Microsoft'un yönettiği anahtarlara işaret eden selector1._domainkey ve selector2._domainkey adlı iki CNAME kaydı kullanır. Çoğu bülten ve işlemsel e-posta servisi de size kendi kayıtlarını verir.
Kendi anahtar çiftinize posta sunucusunu kendiniz çalıştırdığınızda ihtiyaç duyarsınız; örneğin OpenDKIM veya rspamd ile Postfix ya da Exim kullanıyorsanız veya bir uygulama ya da relay sizden özel anahtar yüklemenizi istediğinde. Bu oluşturucu tam olarak bunun içindir.
Advertisement
DKIM Anahtarı Nasıl Oluşturulur ve Kayıt Nasıl Yayınlanır?
Seçici; harf, rakam ve tirelerden oluşan herhangi bir ad olabilir. s2026 gibi tarihe dayalı bir seçici, anahtar rotasyonunu takip etmeyi kolaylaştırır.
Neredeyse herkes için doğru seçim RSA 2048 bittir. Anahtar çifti, sayfa yüklendiği anda ve türü her değiştirdiğinizde tarayıcınızda oluşturulur.
İndirin ve posta sunucunuza kurun. Hiçbir yerde saklanmaz, bu yüzden kaybederseniz yeni bir çift oluşturmanız gerekir.
Host değeri selector._domainkey olan ve oluşturulan değeri içeren bir TXT kaydı ekleyin, kendinize bir ileti gönderin ve DKIM Kontrolü ile kontrol edin.
DKIM Kaydı Sözdizimi
Bir DKIM anahtar kaydı, noktalı virgülle ayrılmış etiket=değer çiftlerinden oluşan bir listedir. Yalnızca p= zorunludur, ancak v ve k etiketlerini de yayınlayın.
Kaydı bir DKIM anahtarı olarak tanımlar. Varsa ilk sırada olmalıdır.
Anahtar algoritması. Etiket yoksa varsayılan rsa'dır.
Base64 biçimindeki açık anahtar. Boş bir p=, anahtarın iptal edildiği ve onunla yapılan imzaların başarısız olduğu anlamına gelir.
Alıcılardan alan adını DKIM'i test ediyor olarak değerlendirmelerini ister. İmzalar doğrulandığında kaldırın.
Katı mod: imzadaki i= kimliği, alt alan adını değil tam olarak d= alan adını kullanmalıdır.
Hash algoritmalarını (h=sha256) veya anahtarın hangi servis için olduğunu (s=email) sınırlar. Çoğu kayıt bunları içermez.
Advertisement
RSA 2048, 1024, 4096 ve Ed25519 Karşılaştırması
RSA 2048 bit: önerilen boyut. RFC 8301, imzalayanların en az 2048 bit kullanmasını söyler. TXT değeri yaklaşık 410 karakterdir.
RSA 1024 bit: hâlâ doğrulanır ve alıcıların kabul ettiği minimumdur, ancak bugünün standartlarına göre zayıftır. Daha kısa anahtarlarla yapılan imzalar geçerli sayılmaz. Yalnızca DNS sağlayıcınız daha uzun bir değeri saklayamıyorsa kullanın.
RSA 4096 bit: alıcılar 4096 bite kadar anahtarları doğrulamak zorundadır, ancak değer yaklaşık 750 karakterdir ve bazı DNS panelleri ile eski sistemler bunu iyi işlemez. 2048'e göre pek bir şey katmaz.
Ed25519: modern ve çok daha kısa bir anahtar (kaydın tamamı yaklaşık 66 karakter, RFC 8463). Henüz her alıcı bunu doğrulamıyor, bu yüzden ikinci bir seçici altında bir RSA anahtarıyla da imzalayın.
DKIM Kaydım Neden Birkaç Dizeye Bölünmüş?
Tek bir TXT dizesi en fazla 255 karakter tutabilir ve 2048 bitlik bir DKIM değeri bundan uzundur. DNS bunu, değeri alıcıların yeniden birleştirdiği birkaç tırnaklı dize olarak saklayarak çözer.
Çoğu DNS paneli uzun değeri olduğu gibi kabul eder ve sizin için böler. Amazon Route 53 ve BIND zone dosyaları bölünmüş biçimi kendiniz girmenizi gerektirir; zone dosyası düğmesi size tam olarak bunu verir (Route 53'te yalnızca tırnaklı dizeleri tek satırda yapıştırın). Anahtarın içine boşluk veya satır sonu eklemeyin ve her yarıyı ayrı bir kayda koymayın.
Advertisement
Anahtarı Posta Sunucunuza Kurun
Özel anahtarı default.private olarak (kendi seçicinizle) kaydedin, yalnızca imzalama servisi tarafından okunabilir yapın ve imzalayıcıyı ona yönlendirin. default seçicisiyle example.com için bir OpenDKIM örneği:
sudo mkdir -p /etc/opendkim/keys/example.com
sudo mv default.private /etc/opendkim/keys/example.com/
sudo chown opendkim:opendkim /etc/opendkim/keys/example.com/default.private
sudo chmod 600 /etc/opendkim/keys/example.com/default.privatedefault._domainkey.example.com example.com:default:/etc/opendkim/keys/example.com/default.private*@example.com default._domainkey.example.comopenssl genrsa -out default.private 2048
openssl rsa -in default.private -pubout -out default.publicopendkim-genkey -b 2048 -d example.com -s defaultDKIM Anahtarları Nasıl Yenilenir (Rotasyon)?
Yeni bir seçici altında yeni bir anahtar çifti oluşturun; örneğin s2027.
Yeni TXT kaydını yayınlayın ve her yerde çözümlenmesini bekleyin.
Posta sunucusunu yeni seçiciyle imzalayacak şekilde değiştirin.
Eski kaydı, onunla imzalanmış e-postalar teslim edilip kontrol edilene kadar bir hafta kadar tutun.
Ardından eski kaydı silin veya iptal etmek için boş bir
p=ile yayınlayın.
Advertisement
Diğer E-posta Kimlik Doğrulama Araçları
DKIM, alıcıların kontrol ettiği üç kayıttan biridir. Seti tamamlayın:
Yayınlanmış bir anahtarı seçiciyle sorgulayın, sözdizimini ve boyutunu kontrol edin.
Sağlayıcılarınız için canlı sorgu sayısıyla bir SPF kaydı oluşturun.
SPF ve DKIM sonuçlarınızı kullanan bir DMARC politikası oluşturun.
Gerçek bir iletinin DKIM, SPF ve DMARC'tan geçip geçmediğini görün.