كيف يعثر DKIM على المفتاح
يحدد توقيع DKIM في الرسالة نطاقًا (d=) ومحددًا (s=). يدمجهما المستلم في selector._domainkey.domain، ثم يقرأ سجل TXT هناك ويستخدم المفتاح العام في وسم p= للتحقق من التوقيع. يمكن لنطاق واحد نشر أي عدد من المحددات، بحيث تكون لكل خدمة إرسال مفتاحها الخاص، ويمكن تبديل المفاتيح دون توقف الخدمة.
تحتاج أداة التحقق إلى المحدد لأن DNS لا يوفر طريقة لسرد المحددات الموجودة في النطاق. لا يوجد ما يمكن فحصه، فالمحدد يأتي من توقيع رسالة حقيقية.
ما الذي يجعل المفتاح ضعيفًا أو معطلاً؟
ينص RFC 8301 على أن مفاتيح RSA يجب ألا تقل عن 1024 بت، ويُستحسن أن تكون 2048 بت. قد يتجاهل المدقق المفتاح الأقصر، وأداتنا تفعل ذلك، لذا يُعامل مفتاح 512 بت كما لو لم يوجد توقيع إطلاقًا. مفاتيح Ed25519 (RFC 8463) قصيرة وقوية بحكم تصميمها، لكن بعض المستلمين لا يتحققون منها حتى الآن، لذلك تُنشر عادةً بجانب مفتاح RSA بدلًا من أن تحل محله.
يفك الفاحص ترميز المفتاح بالكامل، لأن السجل المقسم بطريقة خاطئة بين سلاسل TXT، أو بيانات base64 التي يتعذر فك ترميزها، ينتج مفتاحًا لا يستطيع أي مستلم استخدامه. تعني قيمة p= الفارغة أن المفتاح أُلغي عمدًا. تشير t=y إلى أن النطاق لا يزال قيد الاختبار، ويوجه RFC 6376 §3.6.1 المدققين إلى معاملة رسائله تمامًا كالرسائل غير الموقعة.
أسئلة
كيف أعثر على محدد DKIM، وكيف أعرف ما إذا كان DKIM مفعلا؟
أرسل رسالة إلى نفسك وافتح ترويسات النسخة التي وصلت. وجود ترويسة DKIM-Signature يعني أن الرسالة موقعة: المحدد هو قيمة s= والنطاق هو d=. عدم وجود هذه الترويسة يعني أن خدمة الإرسال التي استخدمتها لا توقع الرسائل. توقع كل خدمة إرسال باستخدام محدد خاص بها، لذلك قد تستخدم النشرة البريدية والرسالة المرسلة من صندوق بريدك محددين مختلفين.
المفتاح سليم، لكن DKIM يفشل برسالة "body hash did not verify". لماذا؟
عادةً ما تكون الرسالة قد عُدلت بعد توقيعها، مثل إضافة تذييل بواسطة قائمة بريدية أو إعادة كتابة رابط بواسطة بوابة أمان. لا يستطيع المفتاح سوى تأكيد المحتوى الذي جرى توقيعه. يعرض الاختبار الكامل نتيجة التحقق الفعلية لرسالتك.
الدليل الكامل: DKIM fail
ما طول مفتاح DKIM المناسب: 1024 أم 2048 بت؟
يعمل التحقق من مفتاح بطول 1024 بت في كل مكان، ويسمح به RFC 8301. لكنه يظل الحد الأدنى، لذلك انتقل إلى 2048 بت في المرة التالية التي تبدل فيها المفاتيح.
هل يمكن أن يحتوي النطاق على أكثر من سجل DKIM؟
نعم، سجل واحد لكل محدد، ولدى كثير من النطاقات عدة سجلات: سجل لمزود صندوق البريد وسجل لكل خدمة نشرات بريدية أو فوترة. افحص كل سجل على حدة. إذا حذفت مفتاحا من DNS، فسيفشل التحقق من كل رسالة ما زالت موقعة به.
كم مرة ينبغي تبديل مفاتيح DKIM؟
توصي M3AAWG بتبديل المفاتيح مرة كل ستة أشهر على الأقل، وفورا إذا كان من المحتمل أن يكون مفتاح خاص قد تسرب. انشر المفتاح الجديد تحت محدد جديد، ثم حوّل التوقيع إليه، ولا تحذف السجل القديم إلا بعد توقف وصول الرسائل الموقعة بالمفتاح القديم. يعيد المرسلون المحاولة لمدة أربعة إلى خمسة أيام، لذلك انتظر نحو أسبوع.