magnify
Home Active Directory Domain Key ve DomainKeys Identified Mail (DKIM)
formats

Domain Key ve DomainKeys Identified Mail (DKIM)

Domain Key, spam ve phishing maillerin engellenmesi için kullanılan bir teknolojidir. Bu teknoloji Mark Delany tarafından yahoo için geliştirilmiştir. Teknolojinin çalışma mantığı son derece basittir. Gönderilen maillerin şifreli bir şekilde imzalanarak alıcı tarafından ( MTA seviyesinde kullanıcı seviyesinde değil ) gönderilen mailin bu domain için yetkili bir MTA dan gönderilip gönderilmediğinin kontrolünün yapılmasını sağlar.

Sizin domainden gönderilen maillerin gerçekten sizin yetkili bir sunucunuzdan çıkıp çıkmadığının kontrolünün DomainKey üzerinden kontrol edilmesi için ( normal şartlarda sunucular bu kontrolü yapmaz, pek çok MTA için bu ayarların nasıl yapıldığını bu adresten öğrenebilirsiniz http://domainkeys.sourceforge.net ) DNS üzerindeki TXT- Record kullanılır. Yani özetle DomainKey Policy ve Mailleri şifrelemek için kullanılan anahtarın "public key" bölümünü dns’ ten edinebilirsiniz.

DomainKey yapısını kullanmak istiyorsanız bilmeniz gereken ilk konu DNS üzerinde iki kayıt oluşturmanız gerektiğidir. Bunlardan birisi DomainKey Policydir.

1

Bu kaydın ismi "_domainkey" ile başlıyor olmalı ve devamında domain ismi gelmeli. cozumpark.com için örnek kayıt aşağıdaki gibidir.

_domainkey.cozumpark.com

Bunun yanında ek olarak "o=-" veya "o=~" kayıtlarını da kullanıyoruz. Bunlardan ilki olan "o=-" bu domainden gönderilen tüm maillerin imzalandığını, ikinci komut olan "o=~" yardımı ile bu domainden gönderilen bazı maillerin imzalandığını belirtebiliriz. Bunlara ise ek olarak test (t), sorumlu email adresi (r), ve note (n) ekleyebiliriz. Buna da örnek vermek gerekirse

"o=-; n=deneme maili; r=hakan.uzuner@hakanuzuner.com" gibi bir kayıt hazırlayabilirsiniz.

Alıcı MTA bu policy çerçevesinde hareket edecektir, yani eğer tüm gönderilen maillerde imza olacak ise bu durumda gelen mail içinde bu imzayı arayacaktır, ancak böyle bir dns kaydı yok ise ve maili alan MTA Domain Key kontrolü yapıyor ise bu durumda admin olarak o MTA da siz domain KEY bulunmaması halinde nasıl bir aksiyon alınacak ise ( maili kabul etme veya işaretleyerek kullanıcıya ulaşatır vb ) bu aksiyon alınır.

 

Gelelim ikinci bölüme, yani domain Key policy dns üzerinde tanımlandı, dns üzerinde tanımlanacak ikinci kayıt olan "public key record" kısmıdır.

Bu bölümünde daha net anlaşılabilmesi için DomainKey çalışma mantığının biraz daha detaylarına girmek istiyorum.

Sahip olduğunuz MTA eğer gönderdiği mesajları DomainKey mimarisine göre imzalayacak ise sistem aşağıdaki şekilde çalışmaktadır.

Bir mail DomainKey ile imzalanması halinde header bölümünde kriptografik imza’ yı içeren "DomainKey-Signature" ve buna ek olarak bazı bölümler içerir

Buna bir örnek vermek gerekirse

DomainKey-Signature: a=rsa-sha1;

s=istanbul;

d=cozumpark.com;

c=simple;

q=dns;

b=dydVyOfAKCdLXdJOc8G2q8LoXSlEniSbav+yuU4zGffruD00lszZVoG4ZHRNiYzR;

Maili alan sunucu imzayı kontrol etmek için ilk olarak DNS üzerindeki TXT record içerisinde bulunan public key’ i edinmesi gerekmektedir, bu nedenle bizimde bir public key oluşturmamız ve bunu dns üzerinden yayınlıyor olmamız gerekmektedir.

TXT kaydı için örnek aşağıdaki gibidir

selector (s=…) + ._domainkey. + the domain name

istanbul._domainkey.cozumpark

içerisine ise

k=rsa;p=Publickey ( buraya ürettiğiniz public key’ i giriyorsunuz)

Buradaki public key sizin sunucunuz tarafından üretilmektedir veya opensll ile sizde oluşturabilirsiniz ki bunu da mail serverların DomainKey için nasıl konfigüre edileceğini anlattığım bölümden edinebilirsiniz.

Tabiki bu public key, mail sunucununzun mailleri gönderirken imzalamak için kullandığı private key ile eşleşmek zorundadır.

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
Domain Key ve DomainKeys Identified Mail (DKIM) için yorumlar kapalı  comments 
© Hakan Uzuner
credit