یک توضیح مختصر درباره SPF,DKIM,DMARC

هیچ کدام از ما دوست نداریم ایمیل اسپم دریافت کنیم! بعید میدانم کسی را پیدا کنید که عاشق ایمیل های اسپم باشد؛ به همین دلیل بود که سرویس دهندگان ایمیل یک فولدر به نام SPAM ساختند تا چشممان به این میهمان های ناخوانده نخورد. هرچند، گاهی مجبور میشویم بعد از ثبت نام در یک سایت، نیم نگاهی به ایمیل های اسپم شده نیز داشته باشیم. همان موقع که از ما میخواهند ایمیل مان را تایید کنیم :) . یا وقتی که منتظر یک ایمیل مهم هستیم و از ترس اسپم (هرزنامه) شدن ایمیل، فولدر اسپم را نیز چک میکنیم.به راستی چه اتفاقی برای یک ایمیل رخ میدهد که توسط سرویس دهنده به عنوان اسپم شناسایی میشود؟استانداردهای متفاوتی برای تشخیص اسپم بودن یک ایمیل وجود دارند. مثلا ممکن است Gmail از نحوه نوشتار شما و لینک هایی که در ایمیل قرار می دهید ایمیل شما را در فولدر اسپم قرار دهد. با رعایت کردن استانداردهای ارسال ایمیل میتوانید از این اتفاق جلوگیری کنید. اما در این پست قصد نداریم درباره نحوه نوشتن ایمیل صحبت کنیم. بلکه قصد داریم درباره پروتکل و متد هایی صحبت کنیم که سرنوشت ایمیل شما را مشخص میکنند.رکورد SPFSPF یکی از قدیمی ترین شیوه های اعتبار سنجی ایمیل میباشد. این رکورد از نوع TXT است و مشخص میکند کدام آدرس های آی پی اجازه دارند از طریق دامنه شما ایمیل ارسال کنند. فرض کنید قصد دارید برای دوستتان یک نامه ارسال کنید؛ علاوه بر آدرس گیرنده، روی پاکت نامه آدرس فرستنده هم نوشته میشود تا گیرنده بداند نامه از طرف چه کسی ارسال شده است.نحوه ایجاد رکورد SPFرکورد SPF یک رشته بسیار ساده است که میتواند به آسانی توسط مدیر دامنه ایجاد شود و به DNS دامنه به عنوان یک رکورد TXT اضافه شود. این رکورد از چهار بخش تشکیل شده است:1. ورژن SPF استفاده شده2. آی پی هایی که اجازه ارسال ایمیل از دامنه را دارند3. هر دامنه شخص ثالثی که اجازه ارسال ایمیل از دامنه شما را دارند (مثلا alias domain ها)4. تگ all در شکل زیر میتوانید یک رکورد SPF معمولی را مشاهده نمایید:v=spf1 ip4:22.23.24.25 include:alias-domain -allv=spf1 این عبارت مشخص میکند ما در حال استفاده از SPF نسخه 1 هستیم. در زمان نگارش این مقاله ، تنها "نسخه یک" موجود است. بنابراین این بخش از رکورد همیشه ثابت است.ip4:22.23.24.25 این بخش آدرس های آی پی مجاز برای ارسال از دامنه شما را مشخص میکند. حتی میتوانید چندین آی پی در این بخش اضافه کنید. مثلا ip4:22.23.24.25 ip4:12.13.14.15 نکته: دقت کنید تمام آی پی آدرس هایی که توسط میل سرور شما استفاده میشود باید در این رکورد درج شودalias-domain این دومین دامنه ای است که اجازه ارسال ایمیل از دامنه شما را دارد. all این تگ به سرور دریافت کننده میگوید در صورتی که ایمیل ارسال شده منطبق با رکورد SPF شما نبود نحوه برخورد با آن ایمیل به چه صورت باشد. سه حالت مختلف برای استفاده از این تگ وجود دارد.all- در این حالت میل هایی که مورد تایید رکورد SPF شما نباشند؛ توسط میل سرور مقصد پذیرفته نخواهند شد و بلادرنگ رد میشوند.all~ در این حالت میل سرور مقصد ایمیل را رد نخواهد کرد. اما ایمیل به عنوان اسپم علامت گذاری می شود.all+ این تگ به معنای مجاز بودن آی پی ها و دامنه هایی است که در رکورد SPF شما نیستند. به هیچ عنوان از این حالت استفاده نکنید زیرا فلسفه وجود SPF زیر سوال میرود!رکورد DKIMDKIM مخفف عبارت "DomainKeys Identified Mail" می باشد. و درست شبیه رکورد SPF باید در DNS دامنه اضافه شود. اگر SPF را آدرس فرستنده در نظر بگیریم؛ DKIM ارسال نامه از طریق یک سیستم پستی معتبر است.( شاید این مثال برای ما ایرانی ها زیاد ملموس نباشد زیرا زمانی که ارسال نامه در بین مردم رواج داشت تنها یک سیستم پستی در ایران فعالیت میکرد. ) به هر حال یک سیستم پستی معتبر تضمین میکند نامه بدون تغییر و به همان شکلی که فرستنده ارسال کرده به دست شما برسد. مثلا آدرس فرستنده و محتویات نامه تغییر نکند.DKIM از الگوریتم رمزنگاری برای ایجاد یک جفت کلید - یک کلید عمومی و یک کلید خصوصی - استفاده میکند. کلید خصوصی روی سروری که ایجاد شده می ماند (میل سرور شما) و کلید عمومی در رکورد DNS قرار میگیرد.چطور یک رکورد DKIM ایجاد کنیم ؟اکثر میل سرور ها ابزاری برای ایجاد رکورد DKIM دارند . مهم نیست از ابزار میل سرور استفاده کنید و یا به صورت دستی رکورد را ایجاد کنید؛ به هر حال یک رکورد DKIM از اطلاعات زیر تشکیل شده است:s - این انتخاب کننده است و توسط ارسال کننده ایجاد میشود.d - دامنه ای که توسط انتخاب کننده استفاده میشود و کمک می کند تا کلید عمومی مشخص شود.p - این کلید عمومی واقعی است که به عنوان بخشی از رکورد DNS منتشر می شود و به همین دلیل از حروف بزرگ، کوچک، اعداد و برخی علائم نگارشی تشکیل شده است.این ها سه بخش اصلی از رکورد DKIM هستند. برچسب های دیگر نیز موجود هستند؛ اما اغلب از همین سه مورد استفاده میکنیم. بنابراین یک رکورد DKIM چنین شکلی خواهد داشت:2B8U4DAB93D58YR._domainKey.yourdomain.com;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1TaNgLlSyQMNWVLNLvyY/neDgaL2oqQE8T5illKqCgDtFHc8eHVAU+nlcaGmrKmDMw9dbgiGk1ocgZ56NR4ycfUHwQhvQPMUZw0cveel/8EAGoi/UyPmqfcPibytH81NFtTMAxUeM4Op8A6iHkvAMj5qLf4YRNsTkKAVرکورد DMARCDMARC مخفف "Domain-based Message Authentication, Reporting and Conformance" است و برای کار کردن به SPF و DKIM نیاز دارد.چطور یک رکورد DMARC ایجاد کنیم؟راحت ترین راه برای ایجاد رکورد DMARC استفاده از ابزار کمکی است. سایت های زیادی هستند که این ابزار را ارایه می دهند. مثلا MXToolbox , DMARC Analyzer , Dmarcian و ...تفاوتی ندارد از چه ابزاری استفاده کنید؛ رکورد DMARC تعدادی تگ را به کار میگیرد. و در حقیقت تنها دو عدد از آن ها ضروری است. "v" و "p". تگ های دیگر به ندرت استفاده می شود. بیایید نگاهی به تگ های ضروری داشته باشیم:v - درست شبیه SPF، از این تگ برای مشخص کردن ورژن DMARC استفاده میکنیم. مقدار آن باید "DMARC1" باشد و اولین تگی است که در رکورد قرار میگیرد.p - این تگ به میل سرور مقصد میگوید که با ایمیل هایی که تست DMARC را با موفقیت پشت سر نگذاشته اند چه رفتاری داشته باشد. "none" هیچ اقدامی انجام نمیدهد. "quarantine" ایمیل را قرنطینه می کند و "reject" ایمیل را رد میکند.بنابراین در ساده ترین حالت، رکورد شما به شکل زیر خواهد بود:v=DMARC1; p=none;آیا استفاده از DMARC,DKIM,SPF الزامی است؟پاسخ به این سوال کمی دشوار است. DKIM و SPF به طور عمده در میل سرور ها استفاده می شوند. اما DMARC هنوز به زمان نیاز دارد تا فراگیر شود. اما بهتر است هر سه مورد را روی سرور خود ایجاد نمایید. زیرا هر روز تعداد میل سرورهای بیشتری به استفاده از DMARC روی می آورند.به علاوه استفاده از هر سه مورد فوق کمک میکند تا هویت سرور شما، بیش از پیش مورد تایید قرار بگیرد. امیدوارم از خواندن مقاله لذت برده باشید. عذرخواهی میکنم کمی تئوری بود. :) حتما به سایت MXToolbox سر بزنید. ابزارهای مفیدی داره که اکثر اوقات میتونه مشکلات میل سرور شما رو حل کنه. درباره مشکلات ارسال ایمیل تجربه دارین؟ در بخش نظرات مطرح کنید. ممنون