فنی · پاسخ مستند

SPF (Sender Policy Framework) چیست؟

چارچوب سیاست فرستنده یا Sender Policy Framework ‏(SPF) سازوکاری مبتنی بر DNS برای احراز هویت ایمیل است که به مالک دامنه امکان می‌دهد مشخص کند کدام سرورهای ایمیل مجازند از طرف دامنه او ایمیل بفرستند. SPF با فراهم کردن امکان بررسی وجود نشانی IP فرستنده در رکورد SPF دامنه برای سرورهای ایمیل گیرنده، از جعل ایمیل جلوگیری می‌کند.

SPF از نظر فنی چگونه کار می‌کند

وقتی ایمیلی دریافت می‌شود، سرور گیرنده رکورد TXT دامنه موجود در نشانی MAIL FROM در SMTP را جست‌وجو می‌کند. رکورد SPF فهرستی از نشانی‌های IP یا سرویس‌های شخص ثالث مجاز را در خود دارد. گیرنده نشانی IP سرور SMTP متصل‌شده را با این فهرست مقایسه می‌کند. اگر IP در فهرست باشد، بررسی موفق است. در غیر این صورت، بسته به qualifier به‌کاررفته در رکورد، نتیجه fail یا softfail است.

اهمیت برای فرستندگان

SPF یکی از خطوط اصلی دفاع در برابر جعل ایمیل و فیشینگ است. بدون رکورد SPF معتبر، سرورهای گیرنده راهی برای بررسی مشروع بودن ایمیلی که ادعا می‌کند از دامنه شما آمده ندارند. این اغلب باعث می‌شود ایمیل‌ها اسپم علامت بخورند یا کاملاً رد شوند. پیاده‌سازی SPF پیش‌نیاز هم‌راستایی DMARC است که چارچوب قوی‌تری برای گزارش‌دهی و اعمال سیاست‌های امنیتی ایمیل فراهم می‌کند.

اشتباهات عملیاتی رایج

خطای رایج، فراتر رفتن از محدودیت 10 lookup در DNS است. رکوردهای SPF که بیش از حد از سازوکار include استفاده می‌کنند خطای PermError ایجاد می‌کنند و احراز هویت شکست می‌خورد. اشتباه رایج دیگر، داشتن چند رکورد SPF روی یک دامنه است که نامعتبر است و به شکست خودکار منجر می‌شود. فرستندگان باید همه منابع مجاز را در یک رکورد TXT واحد ادغام کنند تا ارزیابی یکسانی انجام شود.

نمونه رکورد SPF

یک رکورد SPF معمولی به این شکل است: v=spf1 ip4:1.2.3.4 include:_spf.google.com ~all. در این مثال، v=spf1 نسخه را مشخص می‌کند، ip4:1.2.3.4 یک سرور مشخص را مجاز می‌کند، include:_spf.google.com سرویس Google Workspace را مجاز می‌کند و ~all برای هر منبع دیگری softfail را نشان می‌دهد. می‌توانید رکورد فعلی خود را با ابزارهای رایگان SendHQ در https://sendhq.cc/tools بررسی کنید تا از درستی نحو مطمئن شوید.

qualifierهای ارزیابی

رکورد با یک qualifier به پایان می‌رسد که به گیرنده می‌گوید با ایمیل غیرمجاز چه کند. علامت منفی ‎-all نشان‌دهنده hard fail است و پیشنهاد می‌کند ایمیل رد شود. علامت مد ‎~all نشان‌دهنده softfail است و پیشنهاد می‌کند ایمیل پذیرفته اما مشکوک علامت‌گذاری شود. علامت سؤال ‎?all نتیجه‌ای خنثی است و هیچ دستور مشخصی به سرور گیرنده نمی‌دهد.

پرسش‌هایی که تیم‌ها می‌پرسند

آیا می‌توانم بیش از یک رکورد SPF داشته باشم؟

خیر. هر دامنه باید دقیقاً یک رکورد SPF داشته باشد. چند رکورد باعث خطای دائمی و شکست احراز هویت می‌شود.

محدودیت lookup در DNS چیست؟

رکوردهای SPF به 10 lookup بازگشتی DNS محدودند. فراتر رفتن از این محدودیت باعث PermError می‌شود و رکورد نامعتبر می‌شود.

آیا SPF از همه انواع جعل ایمیل جلوگیری می‌کند؟

SPF فقط نشانی Return-Path را اعتبارسنجی می‌کند، نه هدر From که کاربر می‌بیند. برای اعتبارسنجی کامل هدر، DKIM و DMARC لازم‌اند.

منابع اصلی