DKIM چیست؟
DomainKeys Identified Mail (DKIM) روشی است برای احراز هویت رمزنگاریشده پیامهای ایمیلی و اعتبارسنجی دامنهای که ایمیل از آن ارسال شده است.
DKIM با استفاده از یک کلید عمومی (Public Key) که در DNS دامنه به صورت رکورد TXT منتشر میشود، پیامها را امضا و سپس توسط گیرنده تأیید میکند.
این امضا تضمین میکند که محتوای ایمیل از زمان ارسال تا رسیدن به گیرنده، تغییر نکرده است.
کلیدهای DKIM برای کاربر نهایی قابل مشاهده نیستند و فرآیند امضا و بررسی کاملاً در بکاند سرورها انجام میشود.
DKIM چگونه کار میکند؟
DKIM از دو بخش اصلی تشکیل شده است:
امضا کردن (Signing)
امضای ایمیل میتواند توسط:
- نویسنده پیام
- یک سرور واسط در مسیر
- یا یک سرویس شخص ثالث
انجام شود. این امضا بهصورت هدر DKIM-Signature به پیام اضافه میشود.
امضای هدرها اختیاریست، اما هدر From همیشه باید امضا شود.
تأیید (Verifying)
سرور گیرنده (یا سرورهای واسط) با بررسی رکورد DNS دامنه، امضای DKIM را تأیید میکند.
ساختار جستجوی رکورد DNS به این صورت است:
pgsql
CopyEdit
selector._domainkey.domain.com
مثال:
CopyEdit
brisbane._domainkey.example.com
رکورد بازگشتی شامل یک سری مقدارهای tag=value است، از جمله کلید عمومی دامنه. سرور گیرنده با استفاده از این کلید، هش پیام را رمزگشایی کرده و آن را با هش بدنه پیام مقایسه میکند.
اگر این دو هش با هم مطابقت داشته باشند، نشان میدهد که پیام:
- از طرف دامنه معتبر ارسال شده،
- و در مسیر ارسال دستکاری نشده است.
نکته مهم:
شکست در اعتبارسنجی DKIM باعث رد خودکار پیام نمیشود، اما اطلاعات آن معمولاً در Authentication-Results ثبت میشود یا از طریق فیدبکلوپها در اختیار فرستنده قرار میگیرد.
نقش DKIM در مبارزه با فیشینگ و اسپم
برای تغییر این متن بر روی دکمه ویرایش کلیک کنید. لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از طراحان گرافیک است.
DKIM بهتنهایی ایمیل اسپم را مسدود نمیکند، اما به اعتباردهی فرستنده کمک میکند.
اگر اسپمرها مجبور به استفاده از دامنه واقعی خود شوند، ابزارهای فیلترینگ راحتتر میتوانند پیامها را شناسایی کنند.
وقتی ایمیلی بدون امضای DKIM باشد، سرور گیرنده میتواند آن را مشکوک به جعل یا تقلب در نظر بگیرد.
DMARC میتواند تعیین کند که در صورت شکست DKIM چه برخوردی با پیام شود (Reject، Quarantine یا None).
طول کلید پیشنهادی
طول کلید DKIM باید حداقل ۱۰۲۴ بیت باشد.
سرویسهایی مانند Google، Yahoo و Microsoft، کلیدهایی با طول کمتر را رد میکنند یا در آینده رد خواهند کرد.
ساختار یک رکورد DKIM-Signature
نمونهای از یک رکورد DKIM:
makefile
CopyEdit
DKIM-Signature: v=1; a=rsa-sha256; d=example.net; s=brisbane;
c=relaxed/simple; q=dns/txt; l=1234; t=1117574938; x=1118006938;
h=from:to:subject;
bh=MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI=;
b=dzdVyOfAKCdLXdJOc9G2q8LoXSlEniSbav+yuU4zGeeruD00lszZVoG4ZHRNiYzR
معنی تگها (tag=value):
تگ | توضیح |
v | نسخه DKIM (معمولاً 1) |
a | الگوریتم امضا (مثلاً rsa-sha256) |
d | دامنهای که پیام را امضا کرده |
s | سلکتور (Selector) برای تعیین کلید |
c | الگوریتم سادهسازی (Canonicalization) هدر و بدنه |
q | روش جستجوی رکورد (مثلاً dns/txt) |
l | طول بدنهای که امضا شده |
t | زمانسنجی یا زمان امضا |
x | تاریخ انقضای امضا |
h | فهرست هدرهایی که امضا شدهاند |
bh | هش بدنه پیام |
b | امضای دیجیتال پیام |
منابع مقاله:
ارسال پاسخ