DKIM (DomainKeys Tanımlı Posta)

E-posta ve Güvenlik
Giden e-postalara dijital imza ekleyen ve alıcının iletinin değiştirilmediğini doğrulamasını sağlayan e-posta kimlik doğrulama yöntemi.
← Sözlüğe Dön

DKIM nedir?

DKIM (DomainKeys Identified Mail), gönderen sunucunun giden iletileri dijital olarak imzalamasını sağlayan bir e-posta kimlik doğrulama yöntemidir. Alıcı sunucu, DNS'te yayımlanan genel anahtarı kullanarak bu imzayı doğrulayabilir; böylece e-postanın aktarım sırasında değiştirilmediği ve gerçekten iddia edilen alan adından gönderildiği teyit edilir.

DKIM nasıl çalışır?

1. Anahtar oluşturma: Alan adı sahibi bir genel/özel anahtar çifti oluşturur

2. DNS'te yayımlama: Genel anahtar TXT kaydı olarak yayımlanır

3. İleti imzalama: Giden e-postalar özel anahtarla imzalanır

4. İmza doğrulama: Alıcı sunucu genel anahtarı alır ve imzayı doğrular

İmzalama süreci

Bir e-posta gönderildiğinde:

1. Mail server calculates a hash of message headers and body

2. Hash is encrypted with the private key (creating the signature)

3. Signature is added as a DKIM-Signature header

4. Email is transmitted

Doğrulama süreci

Bir e-posta alındığında:

1. Server extracts the DKIM-Signature header

2. Finds selector and domain (s=selector; d=domain.com)

3. Queries DNS for selector._domainkey.domain.com TXT record

4. Uses public key to decrypt the signature

5. Calculates its own hash of the message

6. Compares: match = pass, mismatch = fail

DKIM kayıt biçimi

DKIM kayıtları belirli bir alt alan adındaki TXT kayıtlarıdır:

selector._domainkey.example.com.    IN    TXT    "v=DKIM1; k=rsa; p=MIGfMA0..."

Kayıt bileşenleri

EtiketAçıklamaÖrnek
vSürümv=DKIM1
kAnahtar türük=rsa
pGenel anahtar (base64)p=MIGfMA0GCSqG...
tBayraklar (isteğe bağlı)t=y (test modu)
hÖzet algoritmalarıh=sha256

Seçiciler

Seçiciler, bir alan adı için birden çok DKIM anahtarına izin verir:

google._domainkey.example.com       # Google Workspace

s1._domainkey.example.com # Sendgrid

mailchimp._domainkey.example.com # Mailchimp

Her e-posta hizmeti kendi seçicisini ve anahtarını sağlar.

DKIM imza başlığı

DKIM imzası şu şekilde görünür:

DKIM-Signature: v=1; a=rsa-sha256; d=example.com; s=google;

c=relaxed/relaxed; q=dns/txt;

h=from:to:subject:date:message-id;

bh=2jUSOH9NhtVGCQWNr9BrIAPreKQjO6Sn7XIkfJVOzv8=;

b=AuUoFEfDxTDkHlLXSZEpZj79...

Temel alanlar:

DKIM kurulumu

Google Workspace için

1. Yönetici Konsolu → Uygulamalar → Gmail → E-postayı doğrula bölümüne gidin

2. DKIM anahtarı oluşturun (2048 bit önerilir)

3. Google'ın sağladığı TXT kaydını ekleyin

4. DKIM imzalamayı etkinleştirin

Üçüncü taraf hizmetler için

Çoğu e-posta hizmeti (SendGrid, Mailchimp vb.) şunlardan birini sağlar:

1. Eklenmesi gereken bir CNAME kaydı (yönetilen anahtarları için)

2. Veya genel anahtarı içeren bir TXT kaydı

Örnek (SendGrid):

s1._domainkey.example.com    CNAME    s1.domainkey.sendgrid.net

DKIM'i doğrulama

Test e-postasını, başlıkları gösteren bir hizmete gönderin (Gmail kimlik doğrulama sonuçlarını gösterir). Komut satırını kullanarak:
dig google._domainkey.example.com TXT
DomScan kullanarak:
curl "https://domscan.net/v1/health?domain=example.com"

# Reports DKIM status based on common selectors

DKIM için en iyi uygulamalar

2048 bit anahtar kullanın

Eski 1024 bit anahtarlar giderek daha savunmasız hale geliyor. Çoğu sağlayıcı artık varsayılan olarak 2048 bit kullanır.

Anahtarları düzenli olarak yenileyin

DKIM anahtarlarını yılda bir veya güvenlik olaylarından sonra yenileyin. Geçiş yapmadan önce yeni anahtarı yeni bir seçiciyle yayımlayın.

Önemli başlıkları imzalayın

From, To, Subject, Date ve Message-ID başlıklarının imzalara dahil edildiğinden emin olun.

İmzalanmış iletileri değiştirmeyin

İçeriği değiştiren posta listeleri veya yönlendirme hizmetleri DKIM'i bozar. Yönlendirilen postalar için ARC (Authenticated Received Chain) kullanın.

DKIM'in sınırlamaları

DKIM tek başına sahteciliği önlemez; yalnızca iletinin değiştirilmediğini kanıtlar. Bir alan adında geçerli DKIM bulunurken saldırganlar imzasız sahte e-postalar gönderebilir. DMARC, imzasız iletiler için ne yapılacağını belirleyerek bu sorunu ele alır.

Bu Bilgiyi Uygulamaya Koyun

Alan adı uygunluğunu, durumunu ve daha fazlasını kontrol etmek için DomScan API'sini kullanın.