JSON Formatter
Pretty-print, validate and minify JSON with precise error positions.
المطورون
توليد تواقيع HMAC للتحقق من الطلبات.
أشيع استخدام عملي هو التحقق من الطلبات الواردة.
حين ترسل خدمة خارجية طلبًا إلى خادمك — تأكيد دفعة، أو إشعار حالة — لا تعرف ابتداءً أنه صادر منها فعلًا، فعنوانك قد يعرفه أي أحد.
وHMAC يحل ذلك: يحسب المرسل توقيعًا من محتوى الرسالة ومن سر مشترك ويرسله معها. وتحسب أنت التوقيع نفسه بالسر نفسه وتقارن.
فإن تطابقا، كانت الرسالة من جهة تعرف السر، ولم تُعدَّل في الطريق.
والاستخدام الثاني هو توقيع طلبات واجهات البرمجة، حيث تُوقَّع الطريقة والمسار والطابع الزمني والمحتوى معًا.
ونقطة مهمة للتصنيف: HMAC ليس تشفيرًا. الرسالة تبقى مقروءة، وهو يضمن المصدر وسلامة المحتوى فقط.
وليس توقيعًا رقميًا بالمعنى القانوني: الطرفان يعرفان السر نفسه، فكلاهما قادر على إنتاج التوقيع. أما التوقيع الإلكتروني المعتمد قانونًا في دول الخليج فيقوم على أنظمة المعاملات الإلكترونية وعلى جهات تصديق مرخّصة، وآليته غير متماثلة.
تتكرر الأخطاء نفسها عند التحقق.
قارن التواقيع مقارنة ثابتة الزمن. فالمقارنة النصية المعتادة تتوقف عند أول اختلاف، ومن زمن التنفيذ يمكن تخمين التوقيع الصحيح تدريجيًا. وتوفّر أغلب اللغات دالة مخصصة لذلك.
ووقّع المحتوى الخام للطلب لا الكائن بعد تحليله وإعادة تركيبه. فاختلاف بسيط في المسافات أو في ترتيب مفاتيح JSON يغيّر التوقيع.
وافحص الطابع الزمني إن أرسله المزوّد، وارفض الطلبات القديمة. وإلا أمكن لمهاجم إعادة إرسال رسالة صحيحة لاحقًا.
وانتبه للترميز بدقة: ست عشري أم Base64، بأحرف كبيرة أم صغيرة، مع بادئة أم بدونها. تختلف الجهات في ذلك، وهو أشيع سبب لتوقيع يكاد يتطابق ولا يتطابق.
وتعامل مع السر كما تتعامل مع كلمة المرور: لا في الشيفرة، ولا في المستودع، بل في إعدادات البيئة.
اختيار خوارزمية التجزئة أبسط مما يبدو.
| الخوارزمية | التقييم |
|---|---|
| HMAC-SHA256 | الخيار القياسي |
| HMAC-SHA512 | جيدة كذلك |
| HMAC-SHA1 | قديمة، للأنظمة الموروثة فقط |
| HMAC-MD5 | لا تُستخدم |
SHA-256 هو الخيار الافتراضي المعقول، وهو ما تستخدمه أغلب الجهات.
واللافت أن HMAC نفسه متين نسبيًا أمام ضعف دالة التجزئة الأساسية، ولذلك لا يُعدّ HMAC-SHA1 مكسورًا فورًا. ومع ذلك لا سبب لاختياره في شيء جديد.
وطول المفتاح يجب ألا يقل عن طول ناتج دالة التجزئة، أي 32 بايتًا عشوائيًا مع SHA-256.
ويجب أن يكون المفتاح عشوائيًا. فالسر الذي تبتكره بنفسك هو أضعف حلقة في السلسلة كلها.
وهذه الأداة تحسب داخل متصفحك بالكامل، ولا يغادر المفتاح جهازك. ومع ذلك: لا تستخدم واجهة ويب لأسرار الإنتاج، بل بيئتك الخاصة.
للتحقق من أن رسالة واردة — غالبًا من خدمة خارجية — صحيحة المصدر ولم تُعدَّل.
لا. الرسالة تبقى مقروءة، وهو يضمن المصدر والسلامة فقط.
لأن زمن المقارنة العادية يتيح تخمين التوقيع الصحيح تدريجيًا.
غالبًا لأن المحتوى أُعيد تركيبه، أو لاختلاف الترميز بين ست عشري وBase64.
HMAC-SHA256 كخيار قياسي، ولا تستخدم MD5.
لا، الحساب يجري في المتصفح. ومع ذلك استخدم بيئتك الخاصة لأسرار الإنتاج.