أدوات المطورين · SHA حاسبة التجزئة
لصق الأسرار في أدوات التجزئة عبر الإنترنت: لماذا يجب أن يكون الملخص محليًا
· لماذا يهم
شا-256 حماية خصوصية متصفح API
إذا أرسلت أداة التجزئة مدخلاتك إلى خادمها، فهذا يعني أن السر الذي كنت تقوم بتجزئته قد غادر جهازك بالفعل. يشرح هذا المنشور المخاطر، وكيف يجعل Web Crypto الخادم غير ضروري، وكيفية التحقق من أن الأداة محلية.
المفتاح API الذي قمت بتجزئته للمقارنة بملف التكوين - وأين ذهب
يحتاج المطور إلى تجزئة مفتاح API لمقارنته بقيمة مخزنة في التكوين، حتى يتمكن من الوصول إلى أقرب أداة تجزئة عبر الإنترنت. يقومون بلصق المفتاح، والنقر فوق الزر، والحصول على الملخص. يتطابق التجزئة، وبالتالي ينجح الاختبار. ما لا يدركونه على الأرجح هو أن المفتاح API قد غادر أجهزتهم بالفعل. تتلقى أي أداة تجزئة يتم تشغيلها على الخادم إدخال النص العادي قبل حساب أي ملخص. يمكن للخادم تسجيله أو تخزينه أو بيعه أو إرساله إلى المنافسين.
يعتبر الخداع دقيقًا لأن أداة التجزئة يمكنها حقًا إنتاج المخرجات الصحيحة ولا تزال تشحن المدخلات إلى الخادم. تعتبر العملية الحسابية للتجزئة مستقلة عن الموقع، لذا فإن التجزئة من جانب الخادم تكون صحيحة من الناحية التشفيرية على الرغم من أن البنية غير آمنة. لا يحتاج المهاجم إلى إفساد حساب التجزئة للفوز؛ إنهم فقط بحاجة إلى إدخال النص العادي. المطور الذي يفترض أن أداة التجزئة محلية لأن الإخراج صحيح يثق في الخاصية الخاطئة.
ما تتلقاه أداة التجزئة من جانب الخادم - إدخال النص العادي الكامل، حسب التعريف، قبل حساب أي ملخص
تتطلب أداة التجزئة من جانب الخادم إدخال نص عادي كمدخل، حسب التعريف. يستقبله الخادم عبر HTTPS، مما يحميه أثناء النقل، ولكن فقط حتى يتم الوصول إلى الخادم. يتم بعد ذلك تسجيل النص العادي بواسطة الخادم، وتخزينه في الذاكرة أثناء التجزئة، ومن المحتمل كتابته على القرص، وإدراجه في أي نسخ احتياطية أو آثار مراقبة يحتفظ بها الخادم. يمكن للشركة التي تدير الخادم قراءة السجلات ورؤية كل سر تم تجزئته هناك.
البديل هو استخدام Web Crypto، وهو تطبيق التشفير الخاص بالمتصفح. على أصل آمن، وهو ما يعني HTTPS أو المضيف المحلي، يعرض المتصفح crypto.subtle.digest، وهي وظيفة تحسب SHA-1، SHA-256، SHA-384 وSHA-512 يتم استيعابها بالكامل داخل عملية المتصفح. لا يغادر الإدخال الجهاز مطلقًا، ولا يشارك أي خادم. يتم تدقيق تنفيذ المتصفح بواسطة موردي المتصفح، ويتم تصحيحه بواسطة موردي المتصفح، ويتم تشغيله كرمز أصلي محسّن بدلاً من شحنه JavaScript.
لماذا يعد الخادم غير ضروري - يقوم Web Crypto الخاص بالمتصفح بحساب كل SHA-2 ملخصًا محليًا
يتطلب التحقق من أن أداة التجزئة محلية فقط فتح لوحة شبكة DevTools ومشاهدة ما ترسله الأداة عبر الشبكة. في معظم المتصفحات، يتم فتح DevTools باستخدام F12 أو Cmd+Option+I وعلامة التبويب "الشبكة" هي المكان المناسب لمشاهدة حركة مرور الشبكة. مع فتح علامة تبويب الشبكة وإظهار أداة التجزئة، الصق النص العادي، وانقر فوق زر التجزئة، وشاهد ما يحدث. إذا تم استخدام أداة محلية، فلن تعرض لوحة الشبكة أي طلبات جديدة.
تعمل طريقة التحقق هذه لأن المتصفحات تطبق قيودًا من نفس المصدر. يمكن للصفحة تقديم طلبات إلى مصدرها الخاص دون إثارة مشكلات CORS، لذلك يمكن للأداة المحلية تقديم طلبات إلى خادم على نفس المجال إذا أرادت ذلك. عندما يظهر طلب شبكة في لوحة DevTools، فهذا يثبت أن الأداة ترسل البيانات إلى مكان ما. المطور الذي يتحقق من ذلك ولا يرى أي حركة مرور على الشبكة لديه ضمان قوي بأن الإدخال لا يغادر المتصفح. تنتج حاسبة التجزئة ToolAcre SHA لوحة شبكة تظل فارغة عند التجزئة.
التحقق باستخدام لوحة الشبكة - اللصق والتجزئة والمراقبة لعدم وجود طلبات
يمكن أن توفر سياسة أمان المحتوى الصارمة ضمانًا إضافيًا يتجاوز فحص لوحة الشبكة. سياسة أمان المحتوى هي رأس HTTP يرسله الخادم، معلنًا عن النطاقات التي يجب أن يسمح المتصفح بتحميل البرامج النصية وتقديم الطلبات. إن السياسة التي لا تسمح بجميع البرامج النصية الخارجية وجميع أوراق الأنماط الخارجية وجميع عمليات إرسال النماذج إلى أصول خارجية تحد مما يمكن أن تفعله الصفحة المخترقة. لا يمكن للمهاجم إرسال تعليمات برمجية ضارة ترسل الإدخال إلى خادم خارجي إذا كانت السياسة تحظر الطلبات الخارجية.
يتم إرسال رؤوس سياسة أمان المحتوى مع الاستجابة HTTP ويمكن فحصها في قسم رؤوس الاستجابة في علامة التبويب DevTools Network. سطر مثل Content-Security-Policy: default-src 'self'; يعلن script-src 'self' أن البرامج النصية لا يمكن أن تأتي إلا من نفس الأصل. تمنع السياسة الأكثر صرامة التي تتضمن "لا شيء" أسلاف الإطار الصفحة من تضمينها في إطار iframe، مما يمنع ناقل هجوم واحدًا إذا حاول إطار iframe الضار سرقة التركيز. تعتبر هذه التفاصيل مفيدة لفهم الدفاعات، ولكن يظل فحص لوحة الشبكة هو التحقق الأساسي.
CSP هو الدفاع في العمق؛ مصادر المستودع المقروءة هنا لا تنشئ الرأس المنشور
مثال عملي: لصق مفتاح API من AWS أو Azure في حاسبة التجزئة ToolAcre SHA للتحقق من ذلك مقابل بصمة الإصبع المخزنة. افتح DevTools، وحدد علامة التبويب "الشبكة"، وتأكد من تسجيلها. الصق المفتاح API في أداة التجزئة، وحدد SHA-256، ثم انقر فوق التجزئة. يظهر الملخص في الأداة، ولا تعرض لوحة الشبكة أي طلبات جديدة. يتوفر متجه الاختبار في وثائق الأداة للتحقق من صحة التجزئة إذا لزم الأمر. النقطة الأساسية هي أن المفتاح API لم يغادر المتصفح مطلقًا، ويمكن الآن مقارنة الملخص بقيمة مخزنة دون الكشف عن السر مطلقًا.
ما لا يغطيه سير العمل هذا هو ما إذا تم اختراق ملحق المتصفح أو إذا تم اختراق المتصفح نفسه. يمكن للملحق الضار الذي يتمتع بأذونات واسعة رؤية كل حركة المرور واعتراض محتوى الحافظة ومراقبة ما يكتبه المستخدم. يمكن إجبار المتصفح المخترق، إما من خلال ثغرة يوم صفر أو من خلال تثبيت ضار، على إرسال الإدخال إلى أي مكان. بالنسبة لهذه التهديدات، لا توجد أداة ويب يمكنها توفير الحماية. الدفاع المناسب هو الثقة في تثبيت المتصفح، وإبقائه محدثًا، ومراجعة الملحقات المثبتة.
مثال عملي: استخدم علامة غير ضارة وافحص الطلبات بدلاً من لصق مفتاح API المباشر
النصيحة لأي شخص يقوم بلصق الأسرار في الأدوات هي التحقق من أن الأداة محلية قبل اللصق. هذه خطوة بسيطة تقضي على أكبر خطر: مشغل الخادم، وموظفيه، والنسخ الاحتياطية، وسجلاتهم جميعهم يرون النص العادي. استخدم لوحة شبكة DevTools، وراقب عدم وجود طلبات، ثم ثق في الأداة بالسر. تم تصميم حاسبة التجزئة ToolAcre SHA لاستخدامها بهذه الطريقة. فهو لا يقوم بتخزين أي شيء، ولا يقوم بتحميل أي شيء، وتظل لوحة الشبكة فارغة.
بالنسبة للمطورين الذين قاموا بالفعل بلصق الأسرار في الأدوات الموجودة على جانب الخادم، فإن الخطوة التالية هي تدوير تلك الأسرار. يجب افتراض أن المفتاح API الذي تم إرساله إلى خادم غير معروف قد تم اختراقه. ويجب إلغاءه وإصدار قانون جديد. يجب تغيير كلمات المرور. يجب استبدال المفاتيح SSH. بالنسبة للأسرار الثابتة مثل مفاتيح البنية التحتية API، فهذه عملية تتم مرة واحدة. بالنسبة للرموز المميزة للجلسة أو بيانات الاعتماد المؤقتة، يحدث التدوير تلقائيًا مع انتهاء صلاحية الرموز المميزة.
ما لا يغطيه هذا هو امتدادات المتصفح والأجهزة المخترقة، والتي لا يمكن لأي أداة ويب الدفاع عنها
يبدأ بناء الثقة في الأدوات عبر الإنترنت بفهم مكان إجراء العمليات الحسابية والتحقق من هذا الفهم باستخدام أدوات مطور المتصفح. لوحة الشبكة هي إشارة واضحة: إذا غادرت البيانات المتصفح، فسوف تظهر هناك. إذا لم يحتوي أي طلب على إدخال الاختبار المميز، فإن هذه الجلسة توفر دليلاً لمسار التحويل المحلي. إنه ليس ضمانًا بشأن الإضافات أو كود المتصفح المخترق أو عمليات النشر المستقبلية. إن الجمع بين هذا الفحص ومراجعة كود المصدر، إذا كان متاحًا، يوفر الثقة.
بالنسبة للمؤسسات التي تقوم بتقييم أدوات التشفير لاستخدامها مع البيانات الحساسة، يظل المبدأ كما هو: التحقق من أن الحساب يحدث حيث يمكنك التحكم فيه. بالنسبة للأفراد الذين يقومون بتجزئة مفتاح API أو التحقق من ملف، استخدم فحص لوحة الشبكة أولاً. بالنسبة لأنظمة الإنتاج، استخدم HMAC أو التوقيعات بدلاً من التجزئة البسيطة للمصادقة. تعد حاسبة التجزئة ToolAcre SHA إحدى أدوات التعلم وحساب الملخص المحلي. إنه غير مناسب لمصادقة الإنتاج.
الخلاصة: تحقق، ثم ثق - تعمل حاسبة التجزئة ToolAcre SHA في متصفحك، ولا تحمل أي شيء ولا تخزن أي شيء بين الزيارات
يعد مبدأ الشفافية عنصرًا أساسيًا في نهج ToolAcre: فكل أداة توثق ما تفعله، وما يقدمه المتصفح، وما يجب على المطور فعله. توثق حاسبة التجزئة SHA أنها تستخدم تطبيق Web Crypto الخاص بالمتصفح لـ SHA-256 وSHA-384 وSHA-512، وأنها لا تنفذ HMAC أو اشتقاق المفتاح. بالنسبة للتجزئة، الأداة دقيقة. للمصادقة، يجب على المطورين البحث في مكان آخر. يمنع هذا الوضوح الارتباك الذي ينشأ عندما تحاول أداة واحدة القيام بالكثير.
عندما يرى المطور أن لوحة الشبكة فارغة وأن كود المصدر مفتوح، فإن علاقة الثقة تكون على أساس متين. تقوم الأداة بما تدعي: حساب التجزئة محليًا باستخدام التطبيق الخاص بالمتصفح. يمكن للمطور بعد ذلك اتخاذ قرار مستنير بشأن ما إذا كانت الأداة تناسب حالة الاستخدام الخاصة به. للتحقق من مفتاح API، فهو مناسب تمامًا. لمصادقة الإنتاج، يلزم HMAC. لتخزين كلمة المرور، هناك حاجة إلى وظيفة اشتقاق مفتاح مثل Argon2id. إن معرفة هذه الحدود هي الخطوة الأولى نحو بناء أنظمة آمنة.