توضیح موارد بالا در حد معلوماتم :
mail server ها معمولا برای ارسال و دریافت email از پروتکلی استفاده می کنند به نام SMTP که فاقد هرگونه اعتبار سنجی Server فرستنده و کابر فرسنتده هست به همین دلیل اسپمر ها (Spamers) به راحتی قادر به تولید Email های توده ای با فرستنده های جعلی هستند . برای مثال قادرند از طرف سروری با آدرس جعلی یا یک صندوق پستی جعلی اقدام به ارسال نامه های جعلی کنند به همین خاطر برای امن تر شدن فضای وب SMTP-AUTH به وجود آمد تا گیرنده ، سرور فرستنده و شخص فرستنده رو اعتبار سنجی و از وجود server و صندوق مورد نظر اطمینان حاصل کنه !
یکی از شیوه های مورد استفاده برای شناسایی Mail های معتبر که توسط Mail Server ها مورد استفاده قرار می گیره استفاده از Domain Keys هست که به server گیرنده تا حدودی اطمینان می ده که مبدا نامه معتبر هست و در دنیای واقعی تقریبا قابل ردیابی هست ! یعنی به زبان ساده تر اصل و نسب داره ! server فرسنتده بی کس و کار نیست !
مکانیسم Domain keys :
A domain owner generates a private/public key-pairs that will be used to sign messages originating from that domain. The public-key is placed in DNS as a TXT record. The private-key is kept on the mail server which sends email for the domain
صاحب هر دامنه یک جفت کلید خصوصی وعمومی تولید می کنه که برای شناسایی پیام هایی که در hesder شون این دامنه (به عنوان مبدا) ثبت شده به کار می ره ( یعنی نامه هایی فرستنده ای با نام این دامنه دارند رو شناسایی کنه و از صحت نامه اطمینان حاصل کنه)
کلید عمومی در یک رکورد متنی در سرویس نام دامنه (DNS) قرار داده می شه و کلید خصوصی نزد سرور دامنه ی ارسال کننده ی نامه هست !
When an email is submitted by an authorized user of that domain, dk-milter uses the private-key to digitally sign the email associated with the sending domain. The
DomainKey-Signature header and signature is added to the email and the message is sent.
وقتی نامه ای از کابر(فرسنتده) مجاز دامنه به سرور میل دامنه (فرستنده) تحویل داده می شه ، دامنه با استفاده از کلید خصوصی نامه کابر رو نشانه گذاری دیجیتالی می کنه ! ( به سربرگ نامه یک شناسه دیجیتالی اضافه می کنه ! چیزی شبیه شماره ای که در سیستم اداری معمول دبیرخانه به سربرگ نامه های دریافتی و ارسالی اضافه می کنند . در اینجا بهش
DomainKey-Signature گفته شده . به no sig در سربرگ نامه ارسالی تون نگاه کنید فکر کنم متوجه شدید قسمت اول مشکل کجاست تا اینجا !)
When a message is received with a
DomainKey-Signature header, dk-milter extracts the signature and the sender's domain from the email. It does a DNS lookup on the TXT record to fetch the public-key for the sender's domain. Using the public-key, dk-milter verifies whether the signature of the email is valid. An
Authentication-Results: domainkeys=pass header is inserted in the email if the verification is successful.
ادامه ماجرا در طرف سرور گیرنده ی نامه!
وقتی پیامی همراه با header نشانه گذاری شده با یک
DomainKey-Signature توسط یک mail server دریافت می شه ، سرور ، دامنه ی فرسنتده نامه و امضا دیجیتالی (
DomainKey-Signature) پیام رو از header نامه استخراج کرده و طی یک عملیات lookup روی DNS فرسنتده کلید عمومی رو از text record واکشی می کنه و با توجه به کلید عمومی مشخص می کنه که امضا نامه صحت داره یا نه. و در صورت موفقیت آمیز بودن اعتبار سنجی امضا ،
Authentication-Results: domainkeys=pass به Header اضافه می شه
Selectors
Selectors allows a domain to have more than one public-key in DNS. This allows you to administer and change the public-keys advertized in DNS. If the selector is test and the domain is example.com, the public-key will be retrieved from test._domainkey.example.com. The name before _domainkey is the selector.
Dk-milter uses main as the default selector.
سلکتور (انتخاب کننده کلید ) :
یک انتخاب کننده به شما این امکان رو می ده که بیش از یک کلید عمومی داشته باشید . این انتخاب کننده این امکان رو فراهم میاره که کلید عمومی اعلان شده در DNS رو تغییر و مدیریت کنید.اگر selector ما test و دامنه example.com باشه ،کلید عمومی بازیافت شده
test._domainkey.example.com خواهد بود . نامی که قبل از
domainkey_ می آید همان انتخاب گر (Selector) است . میل سرور به صورت پیش فرض از انتخاب گر main استفاده می کند