پروتکل Dkim Record چیست و چگونه کار میکند؟
در این مقاله میخوانید
رکورد DKIM روشی امنیتی برای احراز هویت ایمیل است. این پروتکل از جعل هویت دامنه اصلی ایمیل ازطریق هرزنامهها و سایر روشهای هک جلوگیری میکند. در این مطلب از بلاگ پارس پک، درباره رایجترین روش سرقت اطلاعات ازطریق ایمیل و DKIM و روش مقابله با آن، مفصل صحبت میکنیم.
اطلاعات ایمیلها چگونه افشا میشوند؟
قبل از هر نکتهای، باید اشاره کنیم که همه آدرسهای ایمیل یک دامنه دارند. این دامنه شامل دو بخش است:
- قسمت قبل از @
- قسمت بعد از @ که همان دامنه اصلی است.
بخش بعد از @ بخش اصلی دامنه محسوب میشود که ثابت است؛ اما بخش قبل از @ کاملاً متغیر است و میتواند برای مثال نام کاربر باشد. بهعنوان نمونه، «[email protected]» را در نظر بگیرید. «akbari» بخش متغیر و «@example.com» بخش ثابت یا همان دامنه اصلی و قانونی ایمیل است.
حالا یکی از روشهای سرقت اطلاعات ساخت دامنه جعلی ایمیل است؛ یعنی هکر دامنهای جعلی درست شبیه به دامنه اصلی (در این مثال @example.com) میسازد و از آن ایمیل به افراد داخل آن شرکت پیام میدهد. بدینترتیب، با دامنهای که جعل کرده است، میتواند اعتماد افراد را جلب کند.
مثالی از سرقت اطلاعات ازطریق جعل دامنه ایمیل
برای درک بهتر سازوکار DKIM Records، بیایید مثالی را ببینیم. فرض کنید دامنه ایمیل شرکتی «example.com» است. حالا فرد X که هکر است، دامنهای جعلی شبیه به «[email protected]» میسازد. سپس، از این دامنه به فرد Y ایمیل میفرستد و از او میخواهد که اطلاعات محرمانه شرکت را برایش ارسال کند. ازآنجاکه دامنه این ایمیل شبیه به دامنه اصلی و قانونی ایمیل شرکت است، احتمال دارد فرد Y متوجه این حمله خرابکارانه نشود و به فرد X اعتماد کند.
برای آشنایی کامل با انواع ایمیل سازمانی و آموزش دریافت این سرویس، مقالهی زیر را از دست ندهید.
پروتکل DKIM چیست؟
رکورد DKIM پروتکلی امنیتی است که دیواری امنیتی بین فرستنده و گیرنده ایمیل میسازد و عملیات جعلکردن دامنه ایمیل را برای مهاجمان سختتر میکند. این رکورد زمانی مسئولیت خود را به بهترین شکل انجام میدهد که با دو فناوری زیر همراه شود:
- SPF (مخفف Sender Policy Framework): چهارچوب خطمشی فرستنده
- DMARC (مخفف Domain-based Message Authentication Reporting and Conformance): تصدیق هویت و گزارش و مطابقت پیام مبتنیبر دامنه
ایمیلهایی که از دیوار DKIM و SPF و DMARC عبور نمیکنند، بهعنوان «Spam» شناخته میشوند یا اصلاً سرورهای ایمیل آنها را تحویل نمیدهند. شایان ذکر است که اگر DKIM و SPF و DMARC برای دامنه example.com تنظیم و فعال شده باشند، فرد Y که گیرنده ایمیل است، یا این ایمیل جعلی را در پوشه Spam میبیند یا اگر سرور ایمیل آن را رد کند، اصلاً ایمیل جعلی را نمیبیند.
DKIM Records چگونه کار میکند؟
پروتکل DKIM دو جنبه دارد:
- رکورد DKIM که در رکوردهای DNS برای دامنه ذخیره میشود.
- هِدِر DKIM که به همه ایمیلهای دامنه پیوست میشود.
DKIM از تکنیک امضای دیجیتال که مبتنیبر رمزنگاری کلید عمومی است، استفاده میکند تا مبدأ ایمیل را تأیید کند. مبدأ این ایمیل همان سروری است که ایمیلها از آن ارسال میشوند؛ اما مسئله مهم اعتبار این دامنه و اصل بودن آن است که باید تأیید شود. برای این کار از دو کلید استفاده میشود:
- کلید خصوصی که متعلق به فرستنده و برای امضاکردن پیامهاست (مرحله رمزگذاری ایمیل)
- کلید عمومی که متعلق به گیرنده و برای تأیید امضاهاست (مرحله رمزگشایی ایمیل)
نکته مهم این است که گیرنده نمیتواند از کلید عمومی برای امضای پیامها استفاده کند و برعکس. این کلیدها از سمت سرور ایمیل ساخته میشوند و کلید عمومی به صاحب دامنه داده میشود. او نیز این کلید عمومی را در رکورد DNS ذخیره میکند که دردسترس عموم است (همان DKIM Records).
همه ایمیلهای ارسالشده از دامنه اصلی (مثلاً @example.com) هِدِر یا سربرگ DKIM دارند. این هِدِر شامل بخشی از دادههاست که با کلید خصوصی رمزگذاری یا امضا شدهاند. به این فرایند «امضای دیجیتال» گفته میشود. حالا وظیفه سرور ایمیل این است که رکورد DKIM DNS را بررسی و کلید عمومی را دریافت و سپس، امضای دیجیتال را با استفاده از کلید عمومی تأیید کند.
فایده رمزگذاری ایمیل بهوسیله فرستنده چیست؟
فرایند تولید امضای دیجیتال (رمزگذاری ایمیل) علاوهبر تأیید مبدأ، تضمین میکند که ایمیل در طول انتقال نیز تغییر نکرده است؛ چراکه وقتی ایمیل بهدست گیرنده میرسد، اگر هِدِر یا متن ایمیل تغییر کرده باشد، امضای دیجیتال تأیید نمیشود؛ حتی اگر فقط یک کاراکتر متفاوت باشد! این فرایند درست مثل مُهروموم نامههای قدیمی است.
هریک از بخشهای پروتکل DKIM چه کاری انجام میدهند؟
پیشتر گفتیم که DKIM دو بخش کلی دارد. درادامه، مسئولیت این دو بخش را باهم بررسی میکنیم.
1. بخش اول: رکورد DKIM
DKIM رکوردی از نوع «DNS TXT» یا رکورد متنی است. این نوع رکوردها زمانی کاربرد دارند که میخواهیم یک متن را هرچه هست، به دامنه خود متصل کنیم. حال رکورد DKIM دقیقاً چه میکند؟ این رکورد کلید عمومی DKIM را ذخیره میکند. کلید یادشده رشتهای تصادفی شامل کاراکترهای مختلف است. سرورهای ایمیل نیز برای پیداکردن DKIM Records و مشاهده کلید عمومی، سوابق DNS دامنه را رصد میکنند که رکورد DKIM نیز بخشی از این سوابق است.
مثالی از DKIM Records
در تصویر زیر، نمونهای از رکورد DKIM DNS TXT را مشاهده میکنید:
درادامه، بخشهای مختلف رکوردهای DKIM را بررسی میکنیم.
1. نام رکورد
رکوردهای DKIM برخلاف اکثر رکوردهای متنی، فقط با نام دامنه ذخیره نمیشوند؛ بلکه یک نام تخصصی هم دارند. این نام از فرمت کلی زیر پیروی میکند:
[selector]._domainkey.[domain]
در این نام، Selector پارامتری است که ارائهدهنده سرویس ایمیل تعیین میکند. این سلکتور در هِدِر DKIM گنجانده میشود تا سرور بهکمک آن بتواند بین رکوردهای DNS بهدنبال رکورد DKIM مدنظر بگردد و آن را سریعتر پیدا کند. «domain» نیز نام دامنه اصلی ایمیل و «domainkey» عبارتی مشترک در نام تمام رکوردهای DKIM است.
هاست ایمیل چه سرویسی است و چه تفاوتی با هاست معمولی دارد؟ چطور میتوان آن را دریافت کرد؟ در مقالهی زیر بخوانید.
2. محتوا
محتوای رکورد را میتوانید در بخش «Content» ببینید. محتوا بخشی است که نوع رکورد و کلید عمومی را نشان میدهد. در مثال بالا، اول v=DKIM1 را داریم که نشان میدهد این رکورد از نوع DKIM است. سپس، کلید عمومی را داریم که بعد از p= دیده میشود.
3. نوع رکورد و TTL
نوع رکورد در ستون «Type» نشان داده میشود که TXT یا متنی است. حال TTL چیست؟ TTL مخفف عبارت «Time to Live» و بهمعنی «زمان زندهماندن» است. این پارامتر که یک عدد است، نشان میدهد این رکورد تا چه مدت معتبر است. TTL رکوردهای DKIM معمولاً چنددقیقهای است.
2. بخش دوم: هدر DKIM
سرور ایمیل ارسالکننده امضای دیجیتال خود را بهکمک سه مؤلفه زیر میسازد:
- هِدِر ایمیل
- متن ایمیل
- کلید خصوصی
این امضای دیجیتال بهعنوان بخشی از هِدِر DKIM به ایمیل پیوست میشود. شایان ذکر است که اکثر سرویسهای ایمیل هِدِر ایمیل را بهصورت پیشفرض نمایش نمیدهند؛ مگر اینکه کاربر در تنظیمات خود این قابلیت را فعال کرده باشد. بهعنوان مثال، کاربران جیمیل باید روی آیکون سهنقطه عمودی واقع در بالا و سمت راست فضای کاری کلیک کنند تا هِدِر ایمیل را ببینند.
برای آموزش ورود به Webmail و تغییر زبان آن، مقالهی زیر را بخوانید.
مثالی از هدر DKIM
متن زیر نمونهای از هدر DKIM Records است:
v=1; a=rsa-sha256; d=example.com; s=big-email; h=from:to:subject; bh=uMixy0BsCqhbru4fqPZQdeZY5Pq865sNAnOAxNgUS0s=; b=LiIvJeRyqMo0gngiCygwpiKphJjYezb5kXBKCNj8DqRVcCk7obK6OUg4o+EufEbB tRYQfQhgIkx5m70IqA6dP+DBZUcsJyS9C+vm2xRK7qyHi2hUFpYS5pkeiNVoQk/Wk4w ZG4tu/g+OA49mS7VX+64FXr79MPwOMRRmJ3lNwJU=
در این متن متغیرهای زیر را داریم:
- v نشاندهنده نسخه DKIM است.
- d نام دامنه فرستنده است.
- s سلکتوری است که سرور گیرنده ایمیل باید از آن برای جستوجوی رکورد DNS استفاده کند.
- h فیلدهای هِدِری را فهرست میکند که قرار است برای ساخت امضای دیجیتال استفاده شود. در مثال بالا، از هِدِرهای «from» و «to» و «subject» استفاده میشود. فیلدهایی که در این مرحله انتخاب میشوند، بعداً تغییردادنی نیستند.
- bh هش بدنه ایمیل است. هش از تابعی ریاضی به نام تابع هش بهوجود میآید. این هش همراه ایمیل ارسال میشود تا سرویس ایمیل گیرنده بتواند امضا را قبل از دانلودِ کل ایمیل محاسبه کند؛ چراکه دانلود بعضی ایمیلها زمان زیادی میبرد.
- A الگوریتمی است که b (امضای دیجیتال) یا bh را محاسبه میکند. در این مثال، RSA-SHA-256 را داریم که نشاندهنده الگوریتم RSA است و از تابع هش SHA-256 برای امضای دیجیتال استفاده میکند.
- b امضای دیجیتال است که برپایه h و bh تولید و با کلید خصوص امضا شده است. b اجازه دو کار را به سرور گیرنده پیام میدهد: ۱. احراز هویت سرور ارسالکننده؛ ۲. اطمینان از اینکه یکپارچگی ایمیلها دستکاری نشده است.
نکته: سرور گیرنده ایمیل بهکمک همان محتواهایی که در h و bh هستند و کلید عمومی DKIM مطمئن میشود که امضای دیجیتال معتبر است. در این صورت، اگر از کلید خصوصی درست استفاده شده و محتوا (یعنی هِدِر و متن) تغییر نکرده باشد، ایمیل از دیوار DKIM عبور میکند.
جمعبندی
DKIM Records از روشهای قدرتمند احراز هویت ایمیل است، تا جایی که بهعنوان بهترین فناوری احراز هویت در جیمیل شناخته میشود. ازآنجاکه در دنیای فناوری چیزی قطعی نیست، این رکورد نیز ممکن است بهدلایل مختلف دچار اختلال شود؛ اما همراهکردن DKIM با SPF و DMARC میتواند ضعفهای این پروتکل را تا حد چشمگیری جبران کند و ترکیبی کمنقص برای احراز هویت ایمیلها بسازد.
سؤالات متداول
1. پروتکل DKIM چیست؟
DKIM روشی برای احراز هویت ایمیل است که میتواند جعلیبودن دامنه فرستنده پیام را تشخیص دهد. با فعالبودن این پروتکل، گیرنده پیام مطمئن میشود که این ایمیل را فرستندهای معتبر فرستاده است.
2. ارتباط DKIM با DMARC چیست؟
DMARC یکی از فناوریهای احراز هویت ایمیل است که روی DKIM و SPF ساخته و بهعنوان رکورد TXT ذخیره میشود. DMARC درواقع سرنوشت ایمیلهایی را تعیین میکند که نتوانستهاند از سد SPF و DKIM بگذرند. SPF و SKIM و DMARC دست در دست یکدیگر میدهند تا از جعل ایمیل جلوگیری کنند.
3. آیا استفاده از رکورد DKIM ضروری است؟
خیر، این رکورد پروتکل امنیتی اختیاری است؛ اما پیشنهاد ما این است که آن را بهعنوان لایه امنیتی قوی به DNS خود اضافه کنید.
4. پروتکل DKIM از چه اجزایی تشکیل شده است؟
این پروتکل از دو بخش تشکیل شده است: ۱. رکورد DNS که از نوع TXT (متنی) است؛ ۲. هِدِری که به خودِ ایمیل پیوست میشود و تضمین میکند که این ایمیل معتبر است.
5. آیا ممکن است پروتکل DKIM با شکست مواجه شود؟
این پروتکل نیز مثل اکثر روشهای امنیتی دیگر گاهی دچار ضعف میشود. مهمترین دلیل شکست آن نیز تطابقنداشتن دامنه هِدِر امضای DKIM با دامنه موجود در هِدِر From است.
6. آیا DKIM بهتنهایی برای احراز هویت ایمیل کافی است؟
پروتکل DKIM با وجود مزایای بسیارش، ضعفهایی هم دارد؛ بههمیندلیل، بهتر است این فناوری با SPF و DKIM نیز ترکیب و ضعفهایش پوشش داده شود.