أدوات المطورين · SHA حاسبة التجزئة
لماذا تقدم Web Crypto SHA-1 إلى SHA-512 ولكن ليس MD5 أو SHA-3
· كيف يعمل
التشفير متصفح API شا-256 جافا سكريبت
ملخص المتصفح API يدعم أربع خوارزميات بالضبط. يشرح هذا المنشور سبب استبعاد MD5، ولماذا لم تتم إضافة SHA-3، وماذا يعني ذلك بالنسبة للأداة التي ترفض شحن ما لا توفره المنصة.
أين MD5؟ — السؤال الأول من أي شخص يقوم بترحيل سير عمل المجموع الاختباري القديم
يوفر تشفير الويب الخاص بالمتصفح API أربع خوارزميات ملخصة بالضبط: SHA-1 وSHA-256 وSHA-384 وSHA-512. إذا وصلت إلى ToolAcre SHA حاسبة التجزئة وتتوقع MD5 أو SHA-3، فلن تجدها. هذه الخصوصية ليست قيدًا على الأداة؛ إنه يعكس اختيارًا متعمدًا للمنصة. إن فهم سبب إدراج هذه العناصر الأربعة وسبب استبعاد بديلين شائعين يخبرك كثيرًا عن كيفية تصميم واجهات برمجة تطبيقات المتصفح.
يكشف كل متصفح رئيسي عن crypto.subtle.digest في أصول آمنة. عندما يستدعي JavaScript هذه الطريقة، فإنه يمر عبر تنفيذ التشفير الخاص بالنظام الأساسي - وهو رمز أصلي يعمل مع وضع الحماية الأمني وتحسين الأداء. تم اختيار خوارزميات الملخص المقدمة من قبل مجموعة عمل تشفير الويب W3C مع أولويات محددة: التوافق مع معايير الأمان الحالية، والدعم المتاح عبر مكتبات التشفير، والنضج، والاحتياجات الأمنية العملية لمنصة الويب.
الخوارزميات الأربع التي يدعمها SubtleCrypto.digest — SHA-1، SHA-256، SHA-384 و SHA-512، ولا شيء آخر
يقبل ToolAcre نفس المعرفات الأربعة التي تفرضها DigestBytes: SHA-1، SHA-256، SHA-384 وSHA-512. يتم رفض الاسم غير المعروف قبل استدعاء Web Crypto، وتقوم مجموعة الاختبار بتمرير MD5 على وجه التحديد لتأكيد هذا الرفض. لذلك يصف المنتقي حدود المنتج التي تم اختبارها بدلاً من إجراء مسح لكل ملخص تم توحيده على الإطلاق.
SHA-1 الذي يظهر في تلك القائمة لا يؤدي إلى تقديم جميع التوصيات الأربعة المكافئة. يحمل الكائن الناتج علامة مكسورة وتكرر الواجهة تحذيرًا قديمًا؛ أما الثلاثة الأخرى فهي خيارات SHA-2 المتوفرة. يجب أن يظل التوفر والملاءمة منفصلين عندما تقوم أداة التوافق بإعادة إنتاج قيمة قديمة دون تشجيع الاعتماد الجديد عليها.
MD5 غائب عن هذا التطبيق وWeb Crypto؛ لا تضيف هذه المقالة أساسًا منطقيًا للمعايير غير المصدر
MD5 هي دالة تجزئة مشفرة تنتج ملخصًا يبلغ 128 بت، مما يجعلها أقصر وأرخص من الناحية الحسابية من SHA-256. لعقود من الزمن كان الخيار القياسي للمجموعات الاختبارية والتوقيعات الرقمية. ومع ذلك، فإن مقاومة الاصطدام MD5 مكسورة بشكل أساسي. في 2004، أظهر علماء التشفير تصادمات عملية — مدخلين مختلفين بنفس الملخص — وتم تفكيك الخوارزمية تمامًا من خلال العمل الأكاديمي. الضعف الرياضي مطلق ودائم.
اتخذت مواصفات W3C لتشفير الويب خيارًا متعمدًا بعدم تضمين MD5. والسبب واضح ومباشر: إن شحن خوارزمية معطلة إلى الملايين من مستخدمي المتصفح من شأنه أن يؤدي إلى تطبيع استخدامها في التطبيقات الجديدة، على الرغم من أنها يجب أن تظهر فقط في سيناريوهات التوافق القديمة. إذا كان التطبيق يتطلب حقًا MD5 لقابلية التشغيل التفاعلي مع الأنظمة القديمة، فإن هذا الرمز ينتمي إلى وقت التشغيل من جانب الخادم حيث يتم فهم المتطلبات وتدقيقها، وليس في المتصفح. إن جعل الخوارزمية المعطلة سهلة الوصول إليها من شأنه أن يخلق توقعات أمنية في الأنظمة الجديدة.
لا تقوم حاسبة التجزئة ToolAcre SHA بشحن تطبيق MD5 أيضًا. مثل النظام الأساسي API الذي يستخدمه، فإنه يرفض تسهيل الوصول إلى الخوارزمية المعطلة. إذا كان تطبيقك يتطلب تمامًا MD5 — وهو أمر نادر خارج أنظمة Git القديمة — فإن التنفيذ ينتمي إلى قاعدة التعليمات البرمجية الخاصة بك مع ملاحظة واضحة بأنها عبارة عن شريحة توافق. تخلق إمكانية الوصول توقعات، والخوارزميات المعطلة لا تستحق أي توقعات.
SHA-3 موجود خارج المتصفح API والأداة؛ تاريخ اعتماده خارج دليل المستودع
تم توحيد SHA-3 بواسطة NIST في 2015 بعد منافسة عامة طويلة، وهي قوية من الناحية التشفيرية. فهو يستخدم بنية مختلفة تمامًا عن SHA-2، تسمى الإسفنجة، والتي توفر خصائص نظرية مثيرة للاهتمام ومقايضات في الأداء اعتمادًا على أجهزتك. في الأنظمة الحديثة، يمكن أن يكون SHA-3 أسرع من SHA-256. ومع ذلك، فإن منصة المتصفح لا تكشف عنها اليوم، ويعكس هذا التأخير قرارات عملية بشأن نضج المنصة ووتيرة اعتمادها.
يعكس التأخير في الشحن SHA-3 الواقع: تم تصميم Web Crypto لتغطية الخوارزميات على أوسع نطاق استخدام عبر الويب وفي HTTPS/TLS. عند الانتهاء من API، SHA-2 (256، 384، 512) كان الإجماع الساحق على الأنظمة الجديدة، والانتقال إلى SHA-3 يحدث بشكل أبطأ بكثير من الانتقال من MD5 أو SHA-1. لا تحتاج معظم التطبيقات إلى SHA-3 حتى الآن. تكلفة توسيع API واختباره عبر كل متصفح ومنصة لم يكن لها ما يبررها من خلال الطلب عند الإطلاق.
وهذا ليس رفضًا دائمًا. يمكن لتشفير الويب API أن يتطور. إذا تسارع اعتماد SHA-3، فيمكن لمجموعة العمل إضافتها. تمثل المجموعة الحالية الخوارزميات الناضجة والموحدة على نطاق واسع والتي يحتاجها Web Crypto لتلبية الاحتياجات الأمنية الفورية للنظام الأساسي. يجب أن تكون واجهات برمجة تطبيقات المتصفح مستقرة ويتم صيانتها بعناية؛ إن التسرع في إضافة الميزات قبل الحاجة إليها على نطاق واسع يخلق عبء الصيانة ومخاطر التوافق لسنوات قادمة.
لماذا لا يزال SHA-1 موجودًا - احتياجات التحقق القديمة، والفرق بين العرض والتوصية
تم تضمين SHA-1 في Web Crypto على الرغم من كسر التشفير. غالبًا ما يفاجئ هذا الاختيار غير البديهي المطورين. تنتج الخوارزمية ملخصًا 160 بت، وأصبحت هجمات الاصطدام ضد SHA-1 عملية الآن - يمكن إنشاء مستندين مختلفين لمشاركة نفس الملخص. تسمح تصادمات البادئة المختارة للمهاجمين بصياغة وثيقتين لهما معنى أثناء التصادم، مما يؤدي إلى كسر التوقيعات والشهادات. ومع ذلك يبقى في المنصة.
يظل SHA-1 في Web Crypto لسبب واحد ضروري: التوافق القديم. تعتمد معرفات كائنات Git على SHA-1، وبينما ينتقل مشروع Git إلى SHA-256، لا تزال ملايين المستودعات والمراجع وأنظمة البناء الحالية تصدر تجزئة SHA-1. TLS تحمل بصمات الشهادات من الأنظمة القديمة SHA-1 ملخصًا. لا تزال واجهات برمجة التطبيقات التي أصدرت توقيعات HMAC-SHA1 منذ سنوات بحاجة إلى التحقق من الصحة. يجب التحقق من هذه الأنظمة المنشورة أو ترحيلها. يتضمن النظام الأساسي SHA-1 لجعل هذا العمل الضروري ممكنًا.
يتضمن النظام الأساسي API SHA-1 مع فهم واضح أنه موجود من أجل التوافق، وليس التوصية. تسميات واجهة المستخدم للمتصفح SHA-1 مع تحذير. تعرض حاسبة التجزئة ToolAcre SHA "مكسورة تشفيرًا" بجوار نتيجة SHA-1، مما يضمن أن أي شخص يستخدمها يفهم أنه يعمل مع مواد قديمة. الشفافية ضرورية. يجب ألا يخطئ المستخدمون أبدًا في الخلط بين توافق SHA-1 وتأييد SHA-1.
إذا كان التوافق يتطلب MD5، فاستخدم تطبيقًا تمت مراجعته خارج هذه الأداة ولا تخلط أبدًا بين التوافق والأمان
تتوافق الخوارزميات الأربع في Web Crypto مع النظام البيئي لمجموعة التشفير TLS ومع معايير الأمان الأكثر أهمية. SHA-256 هو الإعداد الافتراضي الحالي للتجزئة ذات الأغراض العامة، والمستخدم في عمليات التحقق من سلامة الموارد الفرعية، وعنونة المحتوى، وأنظمة الأمان الجديدة. SHA-512 أسرع على أجهزة 64 بت ويقدم ملخصًا أوسع. SHA-384 معروف في المقام الأول باستخدامه في مجموعات التشفير TLS.
يتم الاحتفاظ بـ SHA-1 من أجل قابلية التشغيل التفاعلي، وليس لأنه يجب على أي شخص أن يبدأ نظامًا جديدًا به. إذا كنت تقوم بالتحقق من المجموع الاختباري SHA-1 الموجود، أو مطابقة بصمة الشهادة القديمة، أو إعادة إنتاج معرف التزام Git، فإن SHA-1 في ToolAcre يتيح لك القيام بذلك. إذا كنت تصمم نظامًا جديدًا، فإن SHA-256 هو الخيار الواضح. تشير الخوارزمية التي تختارها إلى فهمك لنموذج الأمان.
ما لا يغطيه هذا هو أوقات التشغيل من جانب الخادم، والتي عادةً ما تكشف عن العديد من خوارزميات الملخص
إذا كان تطبيقك يحتاج حقًا إلى MD5 أو SHA-3 أو أي خوارزمية أخرى، فالخيار واضح: احتفظ بهذا الرمز في وقت التشغيل من جانب الخادم واعرض النتيجة النهائية فقط للمتصفح. لا تقم بشحن تطبيق JavaScript الخاص بك لخوارزمية التشفير لاستخدام المتصفح. يعد Web Crypto الأصلي للمتصفح أسرع وأكثر أمانًا ويتم تدقيقه بطرق لا يمكن أن تتطابق مع وظيفة JavaScript المكتوبة بخط اليد. إن التفويض إلى المنصة هو دائمًا الاختيار الصحيح عندما توفر المنصة ما تحتاجه.
وهذا ينطبق حتى على الخوارزميات "البسيطة". قد يبدو تنفيذ MD5 المكتوب ذاتيًا غير ضار لأن MD5 معطل على أي حال، ولكن الخوارزميات المعطلة ليس لها تدرجات - فهي معطلة فقط. يعمل الشحن على تطبيع ممارسة تنفيذ التشفير في كود التطبيق. يوفر المتصفح ما تحتاجه المنصة؛ استخدام ما يقدمه. يعد التشفير المدلفن يدويًا أكبر مصدر منفرد للثغرات الأمنية في تطبيقات الويب لأن المطورين يقللون من تقدير حالات الدقة والحواف.
الخلاصة: القيود جزء من المنتج - توفر حاسبة التجزئة ToolAcre SHA الخوارزميات الأربعة التي ينفذها المتصفح محليًا، وتوثيق تلك الحدود
تظهر حاسبة التجزئة ToolAcre SHA هذا القيد مباشرة: ترى بالضبط الخوارزميات الأربع التي يوفرها Web Crypto، لا أكثر ولا أقل. إذا قمت بلصق قيمة وفكرت "أحتاج إلى MD5"، فإن الغياب مقصود. إذا كنت في حاجة إليها، فهذه إشارة إلى أن نظامك يحتوي على مكون قديم يحتاج إلى معالجة دقيقة - وهو بالضبط نوع الشيء الذي تستخدمه أداة الترحيل المتخصصة من جانب الخادم، وليس أداة مساعدة للمتصفح. إن صدق الأداة بشأن ما تفعله وما لا تقدمه هو في حد ذاته معلومات قيمة.
يعكس تصميم Web Crypto عقودًا من ممارسة التشفير: خوارزميات موحدة ومدققة ومثبتة في النشر على نطاق واسع. SHA-256 و SHA-512 هي الإعدادات الافتراضية المعقولة. SHA-384 يحمل نسب TLS الخاص به. SHA-1 موجود لأن الويب يحتوي على SHA-1 ملخصات ستحتاج إلى التحقق منها لسنوات. MD5 وSHA-3 غير موجودين لأن MD5 معطل وSHA-3 ليس بالغ الأهمية للنظام الأساسي بعد.