كيف يعمل HTTPS و TLS فعليًا: دليل عملي
لقد رأيت أيقونة القفل في متصفحك آلاف المرات، لكن هل تعرف ما الذي يحدث فعليًا خلف الكواليس عند زيارة موقع ويب يستخدم HTTPS؟ البروتوكول الذي يجعل التصفح الآمن للويب ممكنًا هو TLS (أمان طبقة النقل)، المعروف سابقًا باسم SSL. فهم كيفية عمل TLS ليس مجرد أمر أكاديمي—بل يساعدك في تصحيح مشكلات الإعداد، واتخاذ قرارات مستنيرة بشأن خوادمك الخاصة، وتقدير ضمانات الأمان التي تعتمد عليها يوميًا.
المشكلة: HTTP غير الآمن
قبل HTTPS، كان HTTP يرسل كل شيء كنص صريح. كان بإمكان أي شخص على مسار الشبكة—نقطة اتصال Wi-Fi، مزود خدمة الإنترنت، جهاز توجيه—قراءة كلمات المرور وملفات تعريف الارتباط والبيانات الشخصية. والأسوأ من ذلك، يمكن للمهاجم تعديل المحتوى أثناء النقل، وحقن برامج ضارة أو صفحات مزيفة. الحل هو تشفير البيانات والتحقق من هوية الخادم. هذا بالضبط ما يفعله TLS.
كيف يتناسب TLS مع HTTPS
HTTPS هو ببساطة HTTP يعمل عبر اتصال TLS. يقع بروتوكول TLS بين طبقة التطبيق (HTTP) وطبقة النقل (TCP). يوفر ثلاث خدمات أساسية:
- التشفير – يتم تشويش البيانات بحيث لا يمكن للمتنصتين قراءتها.
- المصادقة – يمكنك التحقق من أن الخادم هو من يدّعي عبر الشهادات الرقمية.
- السلامة – يتم اكتشاف أي عبث بالبيانات.
ولكن كيف يتفق العميل والخادم على مفاتيح التشفير ويثبتان الهويات؟ هذه هي مهمة مصافحة TLS.
مصافحة TLS خطوة بخطوة
عند زيارة موقع HTTPS، يقوم متصفحك والخادم بمصافحة—سلسلة من الرسائل لإنشاء جلسة آمنة. إليك نسخة مبسطة من مصافحة TLS 1.3 الحديثة:
- ClientHello: يرسل العميل رسالة تسرد إصدارات TLS المدعومة، ومجموعات التشفير، ورقمًا عشوائيًا.
- ServerHello: يختار الخادم مجموعة تشفير ويرسل رقمه العشوائي الخاص.
- شهادة الخادم: يرسل الخادم شهادته الرقمية، التي تحتوي على مفتاحه العام وهويته.
- تبادل المفاتيح: باستخدام المفتاح العام للخادم وتقنية مثل Diffie-Hellman، يحسب الطرفان سرًا مشتركًا—مفتاح الجلسة.
- الانتهاء: يرسل الطرفان رسالة مشفرة تؤكد أن كل شيء على ما يرام. من الآن فصاعدًا، يتم تشفير جميع البيانات بمفتاح الجلسة.
في TLS 1.3، يحدث هذا في جولة واحدة فقط، مما يجعل الاتصالات أسرع من الإصدارات الأقدم.
ماذا عن الشهادات؟
شهادة الخادم هي مستند رقمي صادر عن طرف ثالث موثوق يسمى السلطة المصدقة (CA). تربط مفتاحًا عامًا باسم نطاق. يتحقق متصفحك من صحة الشهادة، وانتهاء صلاحيتها، وما إذا كانت صادرة عن سلطة مصدقة موثوقة. إذا كان النطاق غير مطابق أو الشهادة منتهية الصلاحية، سترى تحذيرًا.
للحصول على شهادة، يستخدم مالكو المواقع بروتوكول ACME (غالبًا مع أدوات مثل Let's Encrypt) لإثبات أنهم يسيطرون على النطاق. ثم توقع السلطة المصدقة الشهادة بمفتاحها الخاص. هذا ينشئ سلسلة ثقة من متصفحك إلى السلطة المصدقة إلى الموقع.
التشفير المتماثل مقابل غير المتماثل
يستخدم TLS نوعين من التشفير:
- التشفير غير المتماثل (مفتاح عام/خاص) يُستخدم أثناء المصافحة لتبادل الأسرار بأمان دون مشاركة مفتاح مسبقًا.
- التشفير المتماثل (نفس المفتاح للتشفير وفك التشفير) يُستخدم لنقل البيانات الفعلي لأنه أسرع بكثير.
على سبيل المثال، يُستخدم RSA بشكل شائع لتبادل المفاتيح الأولي (على الرغم من أن TLS 1.3 يفضل Diffie-Hellman)، وAES-GCM هو تشفير متماثل شائع للبيانات الضخمة.
مجموعات التشفير: اللبنات الأساسية
مجموعة التشفير هي مزيج من الخوارزميات التي تحدد كيفية عمل المصافحة والتشفير. على سبيل المثال، المجموعة TLS_AES_256_GCM_SHA384 تعني:
- تبادل المفاتيح: (مضمّن في المجموعة في TLS 1.3)
- التشفير الرئيسي: AES في وضع GCM بمفتاح 256 بت
- دالة التجزئة للسلامة: SHA-384
عند تكوين خادم، تختار مجموعات التشفير التي تريد تمكينها. المجموعات الأقدم مثل ECDHE-RSA-AES128-GCM-SHA256 لا تزال شائعة. الهدف هو تفضيل المجموعات التي توفر سرية تامة—بمعنى أنه حتى إذا تم اختراق المفتاح الخاص للخادم لاحقًا، تظل الجلسات السابقة آمنة.
إليك مقارنة صغيرة لإصدارات TLS الشائعة:
| الإصدار | تاريخ الإصدار | الميزات الرئيسية | الحالة |
|---|---|---|---|
| TLS 1.2 | 2008 | SHA-256، تشفير AEAD | مدعوم على نطاق واسع |
| TLS 1.3 | 2018 | مصافحة أسرع، تشفير بسرية تامة فقط | موصى به |
| TLS 1.0/1.1 | 1999/2006 | قديم وضعيف | مهمل |
المزالق الشائعة وكيفية تجنبها
حتى مع تمكين TLS، يمكن أن تؤدي الأخطاء إلى تعريض الأمان للخطر:
- المحتوى المختلط: تقديم بعض الموارد عبر HTTP على صفحة HTTPS. تمنع المتصفحات العديد من أنواع المحتوى المختلط. استخدم دائمًا عناوين URL نسبية أو HTTPS لجميع الموارد الفرعية.
- البروتوكولات القديمة: ترك TLS 1.0 أو 1.1 ممكّنًا يعرض المستخدمين للهجمات. قم بتعطيلها على خادمك.
- مجموعات التشفير الضعيفة: بعض المجموعات الأقدم تستخدم RC4 أو DES، والتي يمكن كسرها بسهولة. استخدم مجموعات حديثة بسرية تامة.
- انتهاء صلاحية الشهادة: الشهادة منتهية الصلاحية تسبب أخطاء. أتمتة التجديد باستخدام certbot أو التجديد التلقائي لمزودك.
- غياب HSTS: أمان النقل الصارم لـ HTTP يخبر المتصفحات باستخدام HTTPS دائمًا، مما يمنع هجمات خفض الإصدار. أضف الترويسة
Strict-Transport-Security.
لاختبار تكوين TLS لخادمك، يمكنك استخدام ماسحات عبر الإنترنت مثل SSL Labs' SSL Server Test (ليس تابعًا لنا). ستقيم إعدادك وتشير إلى نقاط الضعف.
تصحيح أخطاء TLS باستخدام OpenSSL
في بعض الأحيان تحتاج إلى رؤية ما يحدث على الشبكة. أداة سطر الأوامر openssl هي صديقك. على سبيل المثال، لعرض شهادة الخادم:
openssl s_client -connect example.com:443 -showcerts
يعرض هذا سلسلة الشهادات وتفاصيل أخرى. يمكنك أيضًا اختبار إصدار TLS محدد:
openssl s_client -tls1_2 -connect example.com:443
إذا كنت تستكشف مشكلة في عميل يفشل في الاتصال، فهذا يظهر لك بالضبط البروتوكولات والتشفيرات التي يدعمها الخادم.
لماذا TLS مهم لموقعك
بعيدًا عن الأمان، HTTPS هو إشارة ترتيب لمحركات البحث ومتطلب للعديد من ميزات المتصفح الحديثة مثل تحديد الموقع الجغرافي والعاملين في الخدمة. إذا لم تقم بالترقية بعد، فافعلها الآن. أدوات مثل Let's Encrypt تجعلها مجانية وسهلة.
بمجرد أن تكون على HTTPS، يجب أيضًا التفكير في استخدام أداة لفحص سجلات خادم الويب الخاص بك بحثًا عن أي حالات شاذة. على سبيل المثال، إذا كنت تدير خادم Nginx، فإن تحليل سجلات الوصول يمكن أن يساعدك في اكتشاف المصافحات الفاشلة المتكررة أو الطلبات المشبوهة. يمكن أن يساعدك محلل سجلات Nginx في تحليل وفهم تلك السجلات بسرعة.
الأسئلة الشائعة
ما الفرق بين SSL و TLS؟
SSL (طبقة المقابس الآمنة) هو السلف لـ TLS. جميع إصدارات SSL مهملة وغير آمنة. TLS هو البروتوكول الحديث، مع TLS 1.2 و 1.3 كمعايير حالية. غالبًا ما يقول الناس "SSL" عندما يقصدون "TLS"، لكنهم تقنيًا مختلفون.
كيف يتحقق المتصفح من الشهادة؟
يتحقق المتصفح من التوقيع الرقمي للشهادة باستخدام المفتاح العام للسلطة المصدقة المُصدرة. كما يتحقق من أن الشهادة غير منتهية الصلاحية، والنطاق مطابق، والسلطة المصدقة موجودة في مخزن الجذر الموثوق به. إذا فشل أي فحص، يعرض المتصفح تحذيرًا.
ما هي السرية التامة؟
السرية التامة (أو السرية التامة المثالية) هي خاصية لطرق تبادل المفاتيح مثل ECDHE. تضمن أنه حتى إذا تم اختراق المفتاح الخاص طويل الأجل للخادم، لا يمكن اشتقاق مفاتيح الجلسات السابقة، لذا تظل حركة المرور المسجلة سرية. يفرض TLS 1.3 مجموعات تشفير بسرية تامة.
الخلاصة
HTTPS و TLS ليسا سحرًا—إنهما مزيج مصمم جيدًا من التشفير والثقة. من خلال فهم المصافحة والشهادات ومجموعات التشفير، يمكنك اتخاذ قرارات أفضل لمشاريعك الخاصة واستكشاف المشكلات بثقة. حافظ على تحديث بروتوكولاتك، واستخدم مجموعات تشفير قوية، واختبر تكوينك دائمًا.
هل أنت مستعد لتطبيق معرفتك؟ إذا كنت تدير خادم Nginx، جرب محلل سجلات Nginx لمعرفة من يتصل بموقعك واكتشاف مشكلات الأمان المحتملة في سجلاتك.