Dkim چیست؟
DomainKeys Identified Mail روشی است برای احراز هویت ایمیل که به جهت جلوگیری از جعل هویت یک دامنه توسط هرزنامهها و سایر موارد مخرب دیگر کاربرد دارد. به صورت کلی همهی ایمیلها دارای یک دامنه هستند و ایجاد کنندههای هرزنامهها و مهاجمان، ممکن است هنگام ارسال ایمیلها برای انجام حملات فیشینگ و یا … سعی در جعل هویت دامنه داشته باشند. این رکورد همراه با Sender Policy Framework (SPF) و Domain-based Message Authentication Reporting and Conformance (DMARC) جعل هویت دامنهها را برای مهاجمان بسیار دشوارتر میکند. ایمیلهایی که از DKIM و SPF عبور نمیکنند به عنوان هرزنامه علامت گذاری میشوند و یا به طور کلی توسط سرورهای ایمیل تحویل داده نمیشوند.
Dkim چگونه کار میکند؟
این مکانیزم دارای دو بخش اصلی میباشد:
- رکورد dkim که در محل ذخیره رکوردهای دامنه وجود دارد
- dkim هدر (header) بر روی هر ایمیل
DomainKeys Identified Mail از طرحهای امضای دیجیتال مبتنی بر رمزنگاری کلید عمومی استفاده میکند تا تأیید کند که ایمیل از کجا آمده است. در واقع تایید میکند ایمیل از سروری که دامنه را میزبانی میکند ارسال شده است.
یک جفت کلید برای رمزنگاری و رمزگشایی استفاده میشود
یک کلید خصوصی برای فرستنده که برای امضای پیامها استفاده میشود و یک کلید عمومی برای گیرنده که برای تأیید امضاها کاربر دارد. گیرنده نمیتواند از کلید عمومی برای امضای پیامها استفاده کند و بالعکس. سرور ایمیل فرستنده کلید عمومی و کلید خصوصی را تولید میکند. کلید عمومی به صاحب دامنه داده میشود تا کلید عمومی را در یک رکورد DNS در دسترس عموم قرار دهد و به عنوان یک رکورد DKIM ذخیره میکند.
تایید اینکه ایمیل در حین ارسال تغییری نکرده است
تمامی ایمیلهای ارسالی از یک دامنه، شامل یک هدر DKIM میباشد که حاوی بخشی از دادهها است که با کلید خصوصی امضا شده است. به این امضاء «امضای دیجیتال» میگویند. ایمیل سرور گیرنده میتواند رکورد DKIM را بررسی کند، کلید عمومی را دریافت کند و از کلید عمومی برای تأیید امضای دیجیتال استفاده کند. این فرآیند همچنین تضمین میکند که ایمیل در حین انتقال تغییر پیدا نکرده است. اگر هدر ایمیل یا متن ایمیل تغییر کرده باشد، امضای دیجیتال تایید نمیشود. (hash تغییر پیدا کرده و تایید نمیشود)
رکورد Dkim چیست؟
یک رکورد DKIM کلید عمومی را ذخیره میکند که شامل یک رشتهی تصادفی از کاراکترها بوده که برای تأیید هر آنچه که با کلید خصوصی امضا شده است، استفاده میشود. ایمیل سرورها برای مشاهده رکورد DKIM و مشاهده کلید عمومی، سوابق DNS دامنه را جستجو میکنند تا به آن دست پیدا کنند. این رکورد در واقع یک رکورد از نوع TXT است. رکوردهای TXT را میتوان برای ذخیره هر متنی که یک مدیر دامنه میخواهد با دامنه خود مرتبط شود، استفاده کرد.
یک مثال از رکورد
Name | Type | Content | TTL |
---|---|---|---|
big-email._domainkey.example.com |
TXT |
v=DKIM1; p=76E629F05F70 |
14400 |
بخش name
برخلاف اکثر رکوردهای TXT، رکوردهای DKIM تحت یک نام تخصصی ذخیره میشوند، نه فقط نام دامنه و از این فرمت پیروی میکند:
[selector]._domainkey.[domain]
selector : انتخابگر یک مقدار تخصصی است که توسط ارائه دهنده خدمات ایمیل مورد استفاده دامنه صادر میشود.
domain : نام دامنه
._domainkey. : عبارت مشترک در نام تمام رکوردهای dkim میباشد.
بخش Content
- v = نمایش دهنده این که این TXT باید به عنوان dkim استفاده شود
- p = هر چیزی که در جلوی این عبارت بکار میرود نمایش دهنده public key میباشد
هدر Dkim چیست؟
سرور ایمیل، فرستنده امضای دیجیتال خود را با استفاده از متن ایمیل و کلید خصوصی خود ایجاد میکند. امضای دیجیتال به عنوان بخشی از هدر DKIM به ایمیل پیوست میباشد.
نمونه ای از یک هدر در ایمیل:
v=1; a=rsa-sha256; d=example.com; s=big-email; h=from:to:subject; bh=uMixy0BsCqhbru4fqPZQdeZY5Pq865sNAnOAxNgUS0s=; b=LiIvJeRyqMo0gngiCygwpiKphJjYezb5kXBKCNj8DqRVcCk7obK6OUg4o+EufEbB tRYQfQhgIkx5m70IqA6dP+DBZUcsJyS9C+vm2xRK7qFEFJowedow0pjdkeiNVoQk/Wk4w ZG4tu/g+OA49mS7VX+64FXr79MPwOMRRmJ3lNwJU=
- v = نمایش دهنده ورژن dkim را که در حال استفاده میباشد، نمایش میدهد
a = نوع الگوریتمی است که امضاء دیجیتال و هش متن بدنهی ایمیل را محاسبه میکند
d = نام دامنه فرستنده را نمایش میدهد
s = نام انتخابگر dkim میباشد که سرور گیرنده با استفاده از آن این رکورد را پیدا میکند (به طور مثال گوگل)
h = لیست هدرهایی که قرار است برای امضاء دیجیتال استفاده شود به طور مثال : from to subject
bh = نوع هشی که بدنهی ایمیل به وسیله آن هش شده است
b = امضای دیجیتال است که از ترکیب h و bh به همراه کلید خصوصی ایجاد شده است
نحوه ی فعال سازی در Cpanel
پس از لاگین به کنترل پنل گزینه Authentication را انتخاب نمایید.
و سپس DKIM را Enable کنید.
با دیگر مقالات ما در server.ir همراه باشید.