تعمل شبكة BBC على طرح آلية HSTS لموقعها الإلكتروني من أجل تحسين مستوى الأمان والأداء. تعرَّف على معناها وكيف يمكن لآلية HSTS مساعدتك.
زاد استخدام HTTPS بشكل مطرد في السنوات الأخيرة. وفقًا لتقويم الويب لعام 2021 التابع لأرشيف HTTP، تم عرض حوالي% 91 من جميع الطلبات لكل من أجهزة الكمبيوتر المكتبي والأجهزة الجوّالة عبر HTTPS. بروتوكول HTTPS لا يقتصر على بقاءه، بل هو شرط أساسي لاستخدام ميزات مثل مشغّل الخدمات والبروتوكولات الحديثة مثل HTTP/2 وHTTP/3.
نشر مؤخرًا نيل كريغ، أحد المهندسين الفنيين الرئيسيين في شبكة BBC، غريدةً بشأن الطرح التدريجي لأمان النقل المشدَّد لبروتوكول HTTP (HSTS) على bbc.com. تعرَّف على تأثير هذا التغيير على شبكة BBC وما قد يعنيه ذلك بالنسبة إليك.
المشكلة
غالبًا ما تستجيب خوادم الويب للطلبات على كل من المنفذين 80 و443. المنفذ 80 مخصّص لطلبات HTTP غير الآمنة بينما يُستخدم المنفذ 443 مع بروتوكول HTTPS الآمن. قد يتسبب ذلك في حدوث مشكلة، لأنّه عند إدخال عنوان في شريط العناوين بدون بادئة البروتوكول https://
، كما هو الحال بالنسبة إلى معظم المستخدمين، ستوجّه بعض المتصفحات الزيارات إلى إصدار HTTP غير الآمن من أحد المواقع الإلكترونية لأسباب قديمة (على الرغم من أنّ هذا لا يحدث دائمًا).
هناك طريقة شائعة لضمان عدم وصول المستخدمين إلى نسخة غير آمنة من موقع إلكتروني، وهي استخدام إعادة توجيه HTTP من HTTP إلى HTTPS لجميع الطلبات. هذا صحيح بالتأكيد، ولكنه بدأ سلسلة الأحداث التالية:
- يتلقى الخادم طلب HTTP.
- يصدر الخادم عملية إعادة توجيه للانتقال إلى مكافئ HTTPS للمورد المطلوب.
- يجب أن يتفاوض الخادم لإنشاء اتصال آمن مع المتصفح.
- يتم تحميل المحتوى كالمعتاد.
على الرغم من أنّ عمليات إعادة التوجيه تعمل بشكل جيد، إلا أنّه يمكن ضبطها بشكل خاطئ بطرق تتيح الوصول إلى الإصدار غير الآمن من الموقع الإلكتروني. حتى في حال ضبط كل شيء بشكل صحيح، لا تزال هناك مشكلة أمنية تتمثل في استمرار اتصال المستخدم عبر بروتوكول HTTP غير الآمن أثناء مرحلة إعادة التوجيه، ما يعرّض المستخدمين لاحتمالية هجمات الوسيط.
إدخال HSTS
تعتمد آلية HSTS على عنوان استجابة HTTP Strict-Transport-Security
لطلبات HTTPS. وعند ضبط هذه السياسة، ستؤدّي الزيارات المتكررة إلى أحد المواقع الإلكترونية إلى إجراء عملية إعادة توجيه خاصة تُعرف باسم "إعادة التوجيه الداخلية 307"، أي عندما يتعامل المتصفّح مع منطق إعادة التوجيه بدلاً من الخادم. وهذا يمنع اعتراض الطلب، حيث إنه لا يغادر المتصفح إطلاقًا، ولذلك أكثر أمانًا. وكميزة إضافية، تتميّز هذه الأنواع من عمليات إعادة التوجيه بسرعة كبيرة، لذلك يتم التخلّص من أي وقت استجابة ملحوظ خلال الانتقال من HTTP إلى HTTPS.
![عملية إعادة توجيه داخلية 307 من HTTP إلى HTTPS يتم تشغيلها بواسطة عنوان HSTS. وتستغرق عملية إعادة التوجيه 307 2 ملي ثانية فقط.](https://web.dev/static/blog/bbc-hsts/image/a-307-internal-redirect-cd7d384b0a833.png?authuser=6&hl=ar)
كما هو الحال في بنية التوجيه max-age
في Cache-Control
، يحدِّد عنوان HSTS التوجيه max-age
. يتم تحديد قيمة هذا التوجيه بالثواني لتحديد مدة سريان السياسة على النحو التالي:
Strict-Transport-Security: max-age=3600
في المثال السابق، من المفترض أن يتم تطبيق هذه السياسة لمدة ساعة فقط.
نشر HSTS
يتمثل العيب الرئيسي في نشر HSTS في عدم استعدادك للتعامل مع المصدر على أنه آمن تمامًا. لنفترض أنّ لديك عددًا من النطاقات الفرعية التي تعرض الموارد منها، ولكن قد لا تكون جميعها آمنة. في هذا السيناريو، قد يؤدي استخدام عنوان HSTS إلى تعطّل موقعك الإلكتروني.
اتخذت بي بي سي النهج الصحيح لنشر HSTS. كما ذكر نيل كريغ في تغريدةته، كانت القيمة الأولية التي تمّ ضبطها للموقع bbc.com هي max-age=10
.
يعني هذا النهج أنّ السياسة لم تسري في البداية سوى لمدة عشر ثوانٍ. ولا تقدم هذه الطريقة فائدة كبيرة، ولكن الفكرة الرئيسية هي معرفة ما إذا كانت هناك مشكلات في تطبيق HSTS على الإطلاق. ومع مرور الوقت، يمكنك زيادة السياسة بشكل تدريجي ومعرفة ما إذا كانت هناك مشاكل أم لا. في وقت كتابة هذا التقرير، يحدد bbc.com سياسة HSTS في max-age=86400
، ومن المؤكد أن هذه السياسة ستزداد بمرور الوقت.
أنت بالتأكيد لا تريد الخروج من البوابة بقيمة max-age
طويلة عند نشر HSTS. قد تجد نفسك فجأة تحاول حل المشكلات بينما يواجه المستخدمون مشكلات. ابدأ بشيء صغير ويزداده مرور الوقت. وعندما تكون على ثقة بأنّ كل شيء على ما يرام، يمكنك ضبط توجيه max-age
على فترة زمنية أطول. وننصح بضبط السمة max-age
على عام أو عامين عندما يتم طرحها بالكامل.
يمكنك إجراء عمليات تنقُّل أوّلية أسرع وأكثر أمانًا باستخدام قائمة التحميل المُسبق لآلية HSTS.
لا تسري سياسة HSTS إلا بعد الزيارة الأولى إلى الموقع الإلكتروني، ولذلك لا تتوفر مزاياه في الزيارة الأولى إلى الموقع. وسيظل هذا يتطلب إعادة التوجيه غير الآمنة. ومع ذلك، يمكنك التحميل المسبق لسياسة HSTS عن طريق إرسال موقعك الإلكتروني إلى قائمة التحميل المسبق لآلية HSTS، وهي قائمة مشفَّرة من مواقع الويب التي يعلم المتصفح أنها تستخدم بروتوكول HTTPS تمامًا. عندما يكون موقعك الإلكتروني في قائمة التحميل المُسبق، ستتم حماية الزيارة الأولى أيضًا، وستكون إعادة التوجيه من HTTP إلى HTTPS فورية.
جرِّب الخدمة بنفسك
إذا شعرت شبكة BBC بالارتياح تجاه اختبار HSTS، فهناك احتمال كبير أن تتمكن من إجراء الشيء نفسه على موقعك الإلكتروني. جرِّب هذه الطريقة لموقعك الإلكتروني، وإذا كنت تريد تحسين بعض الميزات، أضِفه إلى قائمة التحميل المسبق لآلية HSTS عندما تكون واثقًا من عدم وجود أخطاء، ما يمنح المستخدمين تجربة أكثر أمانًا وسرعةً.