SPF تنها کافی نیست تا ایمیل‌هاتون معتبر باشن. DKIM یه لایه امنیتی مهم دیگه‌ست که ثابت میکنه ایمیل واقعاً از سمت شما اومده و تو مسیر دست نخورده. تو این مقاله همه چیز درباره DKIM رو یاد میگیرید و راه‌اندازیش رو یاد میگیرید.

DKIM چیه؟

DKIM مخفف DomainKeys Identified Mail هست. کارش اینه که هر ایمیل خروجی از دامنه شما یه امضای دیجیتال به نام رمزنگاری داشته باشه. سرور گیرنده با این امضا میتونه دو چیز رو ثابت کنه:

۱. ایمیل واقعاً از سرور مجاز دامنه اومده
۲. محتوای ایمیل تو مسیر دست نخورده

این کار با رمزنگاری کلید عمومی-خصوصی انجام میشه. کلید خصوصی روی سرور ایمیل شماست، کلید عمومی تو DNS.

DKIM چطور کار میکنه؟

وقتی شما ایمیل میفرستید، سرور ایمیلتون این کارها رو انجام میده:

۱. یه Hash از محتوای ایمیل (Header + Body) میسازه
۲. این Hash رو با کلید خصوصی امضا میکنه
۳. امضا رو تو Header ایمیل قرار میده
۴. ایمیل فرستاده میشه

وقتی گیرنده ایمیل رو میگیره:

۱. کلید عمومی رو از DNS دامنه شما میگیره
۲. با کلید عمومی، امضا رو باز میکنه
۳. Hash رو با محتوای فعلی ایمیل مقایسه میکنه
۴. اگه مطابقت داشت: ایمیل معتبره
۵. اگه نه: ایمیل مشکل داره یا جعلیه

چرا DKIM مهمه؟

جلوگیری از جعل

بدون DKIM، هر کس میتونه ادعا کنه از دامنه شما ایمیل میفرسته. با DKIM، فقط سرور شما (که کلید خصوصی داره) میتونه ایمیل معتبر بفرسته.

جلوگیری از دستکاری

اگه یه هکر ایمیل شما رو تو مسیر عوض کنه، امضا نامعتبر میشه و گیرنده متوجه میشه.

افزایش اعتبار

Gmail، Outlook و Yahoo به ایمیل‌های امضا شده اعتماد بیشتری دارن. ایمیل‌های شما بیشتر به Inbox میرسن، نه Spam.

لازم برای DMARC

برای پیاده‌سازی DMARC (مرحله بعدی)، حتماً باید DKIM یا SPF داشته باشید.

ساختار رکورد DKIM

رکورد DKIM یه رکورد TXT خاص با نام مخصوص خودشه:

Name: default._domainkey
Type: TXT
Value: v=DKIM1; k=rsa; p=MIGfMA0GCS...

بخش‌هاش:

selector

در نام رکورد، بخش قبل از _domainkey هست (اینجا default). این یه اسم دلخواهه که مشخص میکنه کدوم کلید DKIM استفاده میشه. میتونید چند تا selector داشته باشید.

v=DKIM1

ورژن DKIMه، همیشه DKIM1.

k=rsa

الگوریتم رمزنگاری. معمولاً RSA استفاده میشه.

p=xxx

کلید عمومی رمزنگاری. اینو نباید تغییر بدید، از سرور ایمیل تولید میشه.

راه‌اندازی DKIM در cPanel

اگه از cPanel استفاده میکنید، خیلی راحته:

۱. وارد cPanel بشید
۲. Email Authentication رو باز کنید
۳. زیر DKIM، Enable رو بزنید
۴. cPanel خودش کلیدهای DKIM رو تولید میکنه
۵. رکورد DNS مورد نیاز رو نشون میده
۶. رکورد رو تو DNS دامنه‌تون اضافه کنید
۷. صبر کنید propagation انجام بشه (چند ساعت)

راه‌اندازی DKIM در Google Workspace

اگه از Google Workspace استفاده میکنید:

۱. وارد Admin Console گوگل بشید
۲. برید Apps → Google Workspace → Gmail
۳. Authenticate email رو باز کنید
۴. Generate new record رو بزنید
۵. رکورد DNS رو تو دامنه‌تون اضافه کنید
۶. برگردید Admin Console و Start authentication رو بزنید

راه‌اندازی DKIM برای Mailchimp و سرویس‌های دیگه

هر سرویس ایمیل مارکتینگ رکوردهای DKIM خاص خودش رو داره:

- Mailchimp: از تنظیمات domain، رکوردهای CNAME رو میگیرید
- SendGrid: از Sender Authentication تنظیم میشه
- Amazon SES: از AWS Console رکوردها رو میگیرید

اگه از چند سرویس استفاده میکنید، برای هر کدوم یه selector جدا میسازید. مثلاً mailchimp._domainkey برای Mailchimp و default._domainkey برای هاست خودتون.

بررسی درستی DKIM

بعد از تنظیم، حتماً DKIM رو تست کنید:

ابزار MXToolbox

به mxtoolbox.com/dkim.aspx برید، دامنه و selector رو وارد کنید. اگه سبز شد، همه چیز درسته.

تست با ارسال ایمیل

یه ایمیل به mail-tester.com بفرستید. اونا امتیازی به شما میدن که SPF، DKIM و DMARC چطوره.

Google Postmaster Tools

اگه ایمیل‌های زیادی به Gmail میفرستید، Postmaster Tools گوگل آمار DKIM شما رو نشون میده.

خطاهای رایج DKIM

Wrong Selector

سرور ایمیل باید ایمیل رو با selector درست امضا کنه که مطابق DNS باشه. اگه اشتباه باشه، امضا کار نمیکنه.

Key Size Issue

کلید DKIM باید حداقل 1024 بیت باشه. 2048 بیت توصیه میشه. اگه کوتاه‌تر باشه، بعضی سرورها اعتماد نمیکنن.

Whitespace in Public Key

وقتی رکورد DNS رو کپی میکنید، حتماً همه فاصله‌ها رو حذف کنید. یه فاصله اضافه میتونه امضا رو خراب کنه.

Not Signing All Outgoing Mail

بعضی سرورها فقط بعضی ایمیل‌ها رو امضا میکنن. مطمئن شید همه ایمیل‌های خروجی امضا میشن.

DKIM و اعتبار دامنه

DKIM با گذشت زمان اعتبار دامنه‌تون رو میسازه. هر بار که Gmail یه ایمیل امضا شده از شما میگیره و کاربر بازش میکنه و اسپم نمیزنه، اعتبار DKIM شما بالاتر میره.

اگه یه دفعه کلید DKIM رو عوض کنید، این اعتبار از دست میره. بنابراین بهتره یه selector جدید بسازید و کم کم بین دو تا سوئیچ کنید.

چرخش کلید DKIM (Key Rotation)

بهترین شیوه امنیتی اینه که هر چند ماه کلید DKIM رو عوض کنید. این کار روی cPanel و سرویس‌های ابری راحته:

۱. یه selector جدید بسازید (مثلاً 2026._domainkey)
۲. رکورد جدید رو تو DNS اضافه کنید
۳. سرور ایمیل رو به selector جدید سوئیچ کنید
۴. بعد از یه ماه، selector قدیمی رو پاک کنید

DKIM با DMARC

DMARC از SPF و DKIM استفاده میکنه تا مشخص کنه با ایمیل‌های نامعتبر چیکار بشه. بدون DKIM، DMARC ضعیفه. با هم پیاده کنید تا حداکثر امنیت رو داشته باشید.

جمع‌بندی

DKIM ستون اصلی امنیت ایمیل حرفه‌ایه. با پیاده‌سازی درست، ایمیل‌هاتون بیشتر به Inbox میرسن و دامنه‌تون در برابر جعل محافظت میشه.

اگه از سباهاست هاست دارید، DKIM به راحتی از cPanel قابل فعال‌سازیه. فقط چند کلیک و رکورد DNS، و ایمیل‌هاتون به حرفه‌ای‌ترین حالت میرسن.