تحقق DKIM: أفضل ممارسة لمصادقة البريد الإلكتروني
البريد الإلكتروني
·
08/04/2017

النقاط الرئيسية
DKIM (إثبات ملكية البريد الإلكتروني) هو أسلوب مصادقة البريد الإلكتروني معتمد على المحتوى يتحقق مما إذا كان قد تم تغيير الرسالة بعد توقيعها.
على عكس SPF، الذي يتحقق من مسار الإرسال، فإن DKIM يتحقق من محتوى الرسالة نفسه باستخدام التوقيعات التشفيرية.
تستخدم DKIM مفتاحين: مفتاح خاص لتوقيع الرسائل الصادرة ومفتاح عام منشور في DNS للمستلمين للتحقق من التوقيعات.
تتضمن توقيع DKIM تجزئات لكلا الرأس والجسم، والمحددات، والتوقيتات، وحقول الهوية - كل ما يجب أن يعيد إنتاجه والتحقق منه من قبل المستلم.
تعتمد مصادقة DKIM على استلام الرسالة كاملة أولاً، مما يعني أنه يمكن أن تحدث الإخفاقات في وقت متأخر من العملية.
غالبًا ما يكون استكشاف مشاكل مصادقة DKIM صعبًا لأن المرسلين والمستلمين لا يمكنهم إعادة إنتاج بيئات التوقيع/التحقق لبعضهم البعض.
حتى عندما تفشل DKIM، فإنها عادةً لا تسبب مباشرة مشاكل في وصول الرسائل بمفردها ما لم يتم دمجها مع إشارات سمعة سلبية أخرى.
أهم النقاط في الأسئلة والأجوبة
ماذا تفعل DKIM بالضبط؟
يضيف DKIM توقيعًا تشفيريًا إلى رسالة البريد الإلكتروني، مما يسمح للخادم المستقبل بتأكيد ما إذا كان قد تم تعديل محتوى الرسالة بعد إرسالها.
كيف يختلف DKIM عن SPF؟
SPF يتحقق من من يُسمح له بإرسال البريد لاسم النطاق (استنادًا إلى المسار).
DKIM يتحقق مما إذا كان المحتوى سليمًا (استنادًا إلى المحتوى).
كلاهما يخدم أغراضًا مختلفة ويكملان بعضهما البعض.
ما الذي يوجد داخل رأس DKIM-Signature؟
تشمل الحقول الرئيسية:
v= الإصدار
a= خوارزمية
c= قواعد التوحيد
d= مجال التوقيع
s= المحدد
h= الرؤوس المضمنة في التوقيع
bh= تجزئة الجسم
b= بيانات التوقيع الفعلية
يساهم كل جزء في كيفية التحقق من صحة التوقيع.
كيف يتحقق الخادم المستلم من DKIM؟
يستخرج قيم d= و s=.
يبحث عن المفتاح العام في:
يعيد توليد تجزئات الرأس والجسم.
يقارنها بالقيم bh= و b= في البريد الإلكتروني.
إذا كانت متطابقة، فإن الرسالة تجتاز DKIM.
ما هي أسباب فشل DKIM؟
تم تعديل الرسالة أثناء النقل (حتى تغييرات المسافة البيضاء إذا كنت تستخدم التهيئة الصارمة)
مفتاح عام غير صحيح أو مفقود في نظام أسماء النطاقات
أخطاء في تنسيق نظام أسماء النطاقات
تمت إزالة المحدد أو تدويره بشكل غير صحيح
هويات غير متناسقة (i= يجب أن تكون نفس النطاق أو النطاق الفرعي لـ d=)
لماذا يمكن أن تكون مشاكل DKIM صعبة في التحليل؟
نظرًا لأن الموقّع والمحقق يعملان في بيئات مختلفة تمامًا - ولا يمكن لأي من الجانبين إعادة بناء شروط التجزئة أو حالة التوقيع للجانب الآخر.
هذا يجعل فشل "مطابقة التجزئة" الغامض هو الأكثر إحباطًا للتشخيص.
هل يعني فشل DKIM أن البريد الإلكتروني سيصل إلى صندوق spam؟
ليس بالضرورة.
تعتبر DKIM مجرد إشارة واحدة. إذا كان للنطاق سمعة قوية وجاوز اختبارات أخرى (محاذاة SPF و DMARC، وانخفاض معدلات الشكاوي)، فإن فشل DKIM المعزول عادةً لا يؤثر على وصول الرسائل إلى صندوق الوارد بمفرده.
لماذا نستخدم DKIM على الإطلاق؟
يحمي سلامة الرسالة
يبني سمعة المجال
يتيح محاذاة DMARC
يساعد مقدمي خدمات البريد الإلكتروني على تمييز المرسلين الشرعيين عن المحتالين
تُعتبر DKIM ممارسة جيدة لجميع مرسلي البريد الإلكتروني الجادين.
عندما نتحدث عن "مصادقة البريد الإلكتروني"، فإننا نشير إلى تقنية توفر للمستلم رسالة مستوى معين من اليقين بأن الرسالة جاءت بالفعل من المصدر المدعى للرسالة. الفكرة وراء هذه التقنيات هي تحقيق مستوى معين من الدفاع ضد البريد الإلكتروني الاحتيالي، مثل التصيد الاحتيالي والتزوير، البريد الذي قد يقوض ثقة المستلم في تلقي البريد الإلكتروني. ومع ذلك، فإن فعل إرسال بريد إلكتروني موثق لا يعني أن البريد جيد أو مرغوب فيه؛ بل يعني فقط أن البريد هو من نوع يمكن من خلاله تأسيس سمعة للجهة الموثقة يمكن الاعتماد عليها واستخدامها في قرارات قبول البريد الإلكتروني وتوزيعه.
هناك نوعان من مصادقة البريد الإلكتروني قيد الاستخدام اليوم:
إطار سياسة المرسل (SPF)
البريد المُعرّف بمفاتيح المجال (DKIM)
في منشور اليوم، سأغطي ما هو DKIM وكيف يعمل.
نظرة عامة على DKIM
على عكس نظيرتها في المصادقة SPF، التي توفر طريقة لنطاق ما لتفويض مضيف لإرسال البريد نيابةً عنه، فإن DKIM توفر وسيلة لكي تأخذ كيان (نطاق، منظمة، شخص، إلخ) المسؤولية عن رسالة، بغض النظر عن الكيان الذي أرسل الرسالة فعليًا. بينما في كثير من الحالات يكون الكيان المسؤول والكيان المرسل هو نفسه، أو على الأقل مرتبط بشكل وثيق، مع DKIM لا يوجد شرط بأن يكون الأمر كذلك.
أهدافي لك من خلال هذا المنشور هي أن تتعلم وتفهم المفاهيم التالية حول DKIM:
DKIM هو مصادقة "مبنية على المحتوى"، على عكس SPF "المبنية على المسار".
يؤكد الكيان المسؤول مسؤوليته من خلال "توقيع" الرسالة باستخدام زوج من الهاشات التشفيرية المدخلة في رأس الرسالة.
يتم التحقق من صحة DKIM بواسطة النطاق المستقبل الذي يحاول توليد نفس الهاشين.
لا يمكن إكمال التحقق من صحة DKIM في كثير من الحالات حتى يتم نقل الرسالة الكاملة من قبل خادم الإرسال.
يمكن أن تكون عيوب التحقق صعبة في التحري عنها.
المصادقة المعتمدة على المحتوى
يشار إلى DKIM بأنه مصادقة "مبنية على المحتوى"، بدلاً من "مبنية على المسار"، لأن ما إذا كانت الرسالة تمر بعملية التحقق من DKIM يعتمد فقط على ما إذا كان المحتوى قد تغير بين الوقت الذي تم فيه التوقيع والوقت الذي تم فيه محاولة التحقق.
توقيع DKIM والتحقق منه
تسعى المنظمات التي ترغب في توقيع البريد باستخدام DKIM أولاً إلى توليد مفتاحين تشفيريين. يتم الاحتفاظ بأحد المفاتيح بشكل خاص ومتاح للخادم المرسل من أجل توقيع البريد، بينما يجب جعل المفتاح الآخر عامًا في DNS لاستخدامه من قبل المجالات المستلمة في محاولاتها للتحقق من التوقيع. تعتبر الأساليب المستخدمة لتوليد هذه المفاتيح وتثبيتها معتمدة على المنصة وخارج نطاق هذه التدوينة، على الرغم من أنني سأصف لاحقًا نشر مفتاح DKIM العام في DNS.
رأس توقيع DKIM
تحقق من DKIM
فشل التحقق واستكشاف الأخطاء وإصلاحها
ذكرت أعلاه أن فشل DKIM يمكن أن يكون من الصعب استكشافه، وسأشرح لماذا يكون الأمر كذلك هنا.
بعض حالات فشل التحقق من DKIM لها أسباب واضحة، مثل عدم توقيع الرسالة، أو عدم العثور على المفتاح العام لمجال التوقيع في DNS أو عدم كونه صحيحًا نحويًا، أو ربما تم تعديل الرسالة بوضوح أثناء النقل. عندما تحدث حالات الفشل من هذا النوع، يكون من السهل معرفة المشكلة وتوصية بحل. ومع ذلك، فإن الحالات الصعبة، والتي تؤدي إلى تجربة دعم أكثر إحباطًا، هي الحالات التي تم فيها توقيع الرسالة، والمفتاح العام موجود في DNS، ولم يتم تعديل الرسالة بوضوح، لكن المدقق يبلغ أن التوقيع فشل في التحقق.
السبب في أن هذه الأمور صعبة الاستكشاف هو أنه لا يوجد طريقة حقيقية لأي من الجانبين لإعادة إنتاج الظروف التي تم فيها توقيع الرسالة والتحقق منها. تحتوي الرسالة في رأس DKIM-Signature الخاص بها على التجزئات التي تم إنشاؤها بواسطة الموقّع في وقت التوقيع، ولكن المدقق على الأرجح ليس لديه وصول إلى بنية الموقّع التحتية لذا لا يمكنه محاولة إعادة إنتاج التوقيع تحت ظروف الموقّع. وبالمثل، من المحتمل أن الموقّع ليس لديه وصول إلى بنية المدقق التحتية لذا ليس لديه وسيلة لمحاولة التحقق من الرسالة بالطريقة التي فعلها المدقق.
تعد حالات الفشل مثل التي أصفها هنا نادرة الحدوث، وعادة ما لا تؤثر حالات فشل التحقق من DKIM بمفردها على مكانة التسليم. بينما يتعامل DKIM مع مصادقة الرسائل، تضمن تنفيذ تقنيات التحقق من البريد الإلكتروني الشاملة أنك ترسل إلى عناوين شرعية يمكنها فعلاً تلقي رسائلك ومصادقتها. لقد كانت تجربتي أن مثل هذه الحالات من الفشل تؤدي إلى المزيد من تذاكر الدعم أكثر من أي نوع آخر من مشاكل DKIM.



