Check-Host.cc

فحص التحقق العالمي من الـ SPF

بروتوكول SPF (Sender Policy Framework) هو بروتوكول حاسم لمصادقة الإيميلات بيمنع انتحال الدومين (Spoofing) عن طريق نشر Whitelist مشفرة بعناوين الـ IPs المصرح ليها بالإرسال. ورغم إن بروتوكول SPF نفسه مهم جداً لضمان وصول الإيميلات في الوقت الحالي (Deliverability)، إلا إن نوع سجل الـ DNS المخصص للـ SPF (واللي هو Type 99) ليه تاريخ فوضوي جداً وتم إيقاف دعمه رسمياً.

صعود وسقوط السجل Type 99

لما تم وضع فكرة بروتوكول SPF في البداية (RFC 4408)، منظمة الـ IETF هندست نوع سجل DNS مخصوص (Type 99) عشان يعزل الـ SPF Payloads عن بيانات الـ TXT العادية. النظرية وقتها كانت إن استخدام سجل مخصص هيسرع عملية الـ Parsing عند الـ Resolvers. لكن الـ Rollout كان فاشل جداً. سيرفرات الـ DNS القديمة، والـ Firewalls، وأجهزة الـ Hardware Load Balancers مقدروش يتعرفوا على الـ Syntax الجديد بتاع Type 99 وكانوا دايماً بيسقطوا الحزم (Packets)، وده عمل مشاكل وانقطاعات واسعة في الإيميلات. وبسبب عدم التوافق ده في الهاردوير، الـ IETF نزلت RFC 7208، واللي وقف الدعم رسمياً لسجل Type 99 (Deprecated). النهاردة، كل إعدادات SPF لازم تنزل كسجلات TXT عادية. لو أي Admin كمل في استخدام السجل القديم Type 99 للـ SPF، المنصات الحديثة زي Microsoft Exchange و Google Workspace هتتجاهله تماماً، وده هيسبب فشل فوري في فحص DMARC.

الحد الميكانيكي لـ 10 عمليات استعلام (10-Lookup Limit)

أكتر نقطة فشل فني بتقابل المطورين اللي بيديروا SPF هي الحد الصارم لـ 10 عمليات استعلام (Lookups). عشان سجل SPF بيسمح للـ Admins إنهم يدخلوا سياسات دومينات تانية جوا السجل باستخدام أمر include: (زي include:_spf.salesforce.com)، سيرفر الإيميل اللي بيستقبل لازم يعمل Recursive DNS Query عشان يجيب الـ IPs من الـ Third-party ده. وعشان يحموا الـ MTAs من الـ Infinite Routing Loops وهجمات الـ DDoS Amplification المستهدفة، البروتوكول حط سقف أقصى للتنفيذ عند 10 عمليات Recursive DNS Lookups. لو الشركة استخدمت خدمات SaaS كتير وعملت 11 Lookup، العملية بتقف وترجع رسالة SPF "PermError". ده بيخلي الإيميلات الصادرة الشرعية يحصلها Hard-bounce أو تترمي في الـ Quarantine فوراً.

الـ Flattening والتشخيص

عشان يتجاوزوا حدود الـ Lookup، مهندسي الشبكات بيستخدموا أدوات "SPF Flattening". السكربتات دي بتشتغل كل ساعة، وبتفك كل أوامر الـ include: من خلال API، وبتشيل الـ Hostnames خالص، وبتجمع كل عناوين الـ IPv4/IPv6 الخام في سجل TXT واحد ضخم ومسطح (Flat). استخدامك لأداة تشخيص عالمية بيضمن إن الـ Syntax بتاعك سليم، وإن أوامر الـ includes بتاعتك متخطتش حد الـ DNS في صمت، وإن السياسة بتاعتك بتنتهي صراحة بـ Flag صارم زي -all (Fail) أو ~all (Softfail) عشان ترفض أي Payloads مزيفة.