في الآونة الأخيرة ركض العديد من الأصدقاء في لعبة الشطرنج ليسألوني، وقالوا الآن ضربت DDoS أكثر وأكثر شراسة، وتريد أن تذهب على CDN الدفاعية العالية وتقلق بشأن تشفير HTTPS - بعد كل شيء، إعادة شحن اللعبة، وبيانات المستخدم، وسجلات لعبة الورق هي معلومات حساسة، والنقل العاري هو ببساطة دعوة للقراصنة لإقامة حفلة. لقد تخلصت مباشرة من الاستنتاج:لا تدعم شبكات CDN عالية الدفاع العادية عالية الدفاع HTTPS فحسب، بل يجب أن تكون مشفرة طوال العملية بأكملهاولكن هناك الكثير من الحفر هنا أكثر مما تعتقد.
في العام الماضي تولى فريقنا مشروع شطرنج، تم ترحيله للتو إلى شبكة CDN من العثة. ستتلقى ملاحظات المستخدم من حين لآخر “تحذير شهادة”، وهو عبارة عن فحص للعثور على عقدة CDN تعود إلى المصدر المستخدم بالفعل HTTP، والبيانات الحساسة في آخر رابط عارية. لقد كنت غاضبًا جدًا لدرجة أنني كنت على الفور للتغلب على الطاولة:في هذه الأيام، حتى شبكات CDN يجب أن “تمنع زملاء الفريق”!。
لماذا يجب أن تلتزم الشطرنج والبطاقات بتشفير HTTPS؟ ببساطة، هناك ثلاث نقاط مؤلمة: أولاً، يتم اعتراض حالة تسجيل دخول المستخدم وبيانات المعاملات مباشرةً مما يعني أن كرنفال الصناعة السوداء؛ ثانياً، قد يقوم المشغل باستنشاق كلمات المقامرة الرئيسية التي قد يقرص بها الخط مباشرةً؛ ثالثاً، أصبحت متاجر iOS و Android الآن على نقل النص العادي لتدقيق التطبيق مرفوضة مباشرةً. لا تسألني كيف أعرف، فقد دفعت مستحقاتي عدة مرات.
بعد اختبار ثلاثة من كبار مزوّدي شبكات CDN عالية الدفاع (يطلق عليها عشوائياً CDN5، CDN07، 08Host على ما أعتقد)، فإن الاستنتاج هودعم HTTPS هو مجرد عملية أساسية، والمفتاح هو معرفة كيفية تحقيق الحلقة المغلقة للرابط المشفرعلى سبيل المثال، في التكوين الافتراضي لـ CDN5، يذهب المستخدم إلى عقدة CDN عبر HTTPS، لكن العقدة تعود إلى المصدر عبر HTTP. على سبيل المثال، في التكوين الافتراضي لـ CDN5، في التكوين الافتراضي لـ CDN5، يذهب المستخدم إلى عقدة CDN عبر HTTPS، لكن العقدة تعود إلى المصدر ولكن عبر HTTP - هذا “التشفير النصفي” هو راحة نفسية بحتة. في وقت لاحق، قلبت المستند لأجد أن فتح مفتاح منفصل “فرض العودة إلى المصدر HTTPS”، مخفي أعمق من القائمة المخفية لسمكة البحر.
ننشر هنا تهيئة مختبرة وقابلة للاستخدام لريبو Nginx لمساعدتك على تجنب المزالق:
لا تنظر إلى بضعة أسطر فقط، أخبرتني خدمة عملاء 08Host في الواقع أنهم لا يدعمون HTTPS مرة أخرى إلى المصدر، وكان علي السماح لي بالتغيير إلى إعادة توجيه منفذ TCP. لقد تراجعت عن اختبار CDN07، لا يدعم الناس فقط الدعم، ولكن أيضًا بشهادته الخاصة للقيام بالتحقق في اتجاهين - خادم اللعبة يقبل فقط الطلبات من عقدة CDN، الابتزاز يريد التزوير مرة أخرى إلى باب حزمة المصدر ليس لديهم.
إدارة الشهادات هي النهاية العميقة الحقيقيةأول شيء عليك القيام به هو الحصول على شهادة لمفتاحك الخاص. يسمح لك بعض مزودي خدمة CDN بتحميل المفتاح الخاص للشهادة، والشركات ذات القلوب الكبيرة تكرههم مباشرةً بشهادات البدل. أوصي بشدة:عدم تعريض عقد الدفاع العالي بشهادات أحرف البدل! بمجرد أن يتم اختراق عقدة الحافة، قد تكون جميع نطاقاتك الفرعية عارية. تتمثل الممارسة السائدة في الوقت الحاضر في إصدار شهادات للنطاقات الفرعية، أو حتى استخدام شهادات قصيرة الصلاحية لتدويرها تلقائيًا (مثل Let's Encrypt مع البرنامج النصي acme.sh).
في العام الماضي، في البنية التي أنشأناها لمشروع ليالي تكساس، وقّعنا شهادات منفصلة لجانب المستخدم، وواجهة برمجة التطبيقات الخلفية، وعمليات استدعاء الدفع. باستخدام وظيفة SNI (مؤشر اسم الخادم) في CDN5، يمكن أن يستضيف نفس عنوان IP عشرات الشهادات، ويريد المخترق التحقق من اسم النطاق من خلال عداد IP؟ دعه مباشرةً يشك في حياته.
مشكلة الأداء هي أيضًا نقطة رهان. يشعر الكثير من الناس أن مصافحة HTTPS تستهلك الأداء، لكن TLS 1.3 الحديث ضغط وقت المصافحة إلى حدود 1RTT. بيانات الاختبار: CDN07 فتح TLS 1.3 + تبادل مفاتيح ECDHE، متوسط التأخير أعلى بـ 8 مللي ثانية فقط من HTTP، ولكن القدرة على مكافحة الاختراق تتضاعف. أما بالنسبة لتشفير استهلاك وحدة المعالجة المركزية، الآن هي بطاقة تسريع الأجهزة، لا يمكن أن تشعر عقدة اللعبة QPS 200,000 أقل من عقدة اللعبة بالتقلبات.
أكثر المناورات توهجاً على الإطلاق هي “احتجاز الشهادات”.”-ستقوم بعض شبكات CDN الصغيرة بتوقيع شهاداتها الخاصة لأسماء نطاقاتك سرًا، وهو ما يسمى “تحسين التجربة”، ولكنه في الواقع يعادل ترك باب خلفي في قناة بياناتك. طريقة الاكتشاف بسيطة للغاية: استخدم opensl s_client للاتصال بعقدة CDN لمعرفة ما إذا كان هناك أي مصدر غير مألوف في سلسلة الشهادات. بعد اكتشافه مرة واحدة، نكتب الآن مباشرةً في العقد “حظر توقيع الشهادة”.
بالحديث عن التكوين العملي، شاركنا درساً في الدم:لا تنقر فقط على “تمكين HTTPS” في وحدة تحكم CDN وتعتقد أن كل شيء على ما يرام!. يتطلب الرابط المشفر الكامل أربع خطوات للتحقق:
وأخيراً، يعلن بعض البائعين عن “دعم HTTPS” كنقطة بيع، ولكن التكوين الافتراضي مليء بالثغرات الأمنية. إذا كنت تريد حقًا حماية أمن بيانات اللوحة، فعليك التحقق من هذه القائمة عنصرًا تلو الآخر:
في نهاية المطاف، فإن HTTPS لشبكات CDN عالية الدفاع للشطرنج ليس سؤالاً متعدد الاختيارات بل سؤالاً لا بد من الإجابة عليه. ولكن التشفير لا يكفي، بل يجب الدفاع عن كل جانب من جوانبها مثل جاك في الصندوق-في حال لم تقم بتشفير أي من الروابط من المتصفح إلى الخادم، فإن الأمر يشبه نشر تركيبة صندوق الودائع الآمن على باب الكازينو.. الآن يقوم فريقي دائمًا بتشغيل HTTPS كامل الارتباط HTTPS بشكل افتراضي للمشاريع الجديدة، بل ويطلب من مورد CDN توفير قوالب تهيئة مع درجات مختبرات SSL بدرجة A+ أو أعلى.
بالمناسبة، أود أن أرسل لك بيضة في النهاية: أثناء الاختبار، وجدت أن العقدة اليابانية لـ 08Host قد ثبتت عن طريق الخطأ شهادة جذر موقعة ذاتيًا، مما أدى إلى إنذارات متكررة على أجهزة iOS. لذلكتأكد من فحص العقدة بالكامل باستخدام أداة فحص SSL قبل بدء البث المباشر!ففي النهاية، لن يمنحك المستخدمون فرصة ثانية للثقة.

