مصافحة TLS 1.3 واستئناف 0-RTT
تتبّعوا مصافحة TLS 1.3 خطوةً بخطوة، وتعرّفوا إلى كيفية تحقيقها للسرية الأمامية افتراضيًا، وقيّموا المفاضلات الأمنية لاستئناف الجلسات باستخدام 0-RTT.
مصافحة TLS 1.3 واستئناف 0-RTT درس مجاني في Security+ Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Security+ Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Security+ Academy 4 دروس في المجموع.
لماذا كانت TLS 1.3 ضرورية
صُممت TLS 1.3، التي أُصدرت عام 2018 (RFC 8446)، لمعالجة نقاط الضعف التي تراكمت في TLS 1.2 على مدى عقد من الهجمات الواقعية. كانت الإصدارات الأقدم تسمح بالتفاوض على مجموعات تشفير ضعيفة، وتدعم التشفير المخصص للتصدير، وتتطلب عدة جولات ذهابًا وإيابًا قبل إمكانية نقل البيانات. تزيل TLS 1.3 جميع الخوارزميات المتقادمة وتبسّط عملية المصافحة إلى جولة ذهاب وإياب واحدة في الحالة العادية، مما يحسن الأمان والأداء تحسنًا كبيرًا.
نظرة عامة على المصافحة: جولة ذهاب وإياب واحدة
في TLS 1.3، يُكمل العميل والخادم المصافحة في 1-RTT (جولة ذهاب وإياب واحدة). يرسل العميل ClientHello الذي يتضمن مجموعات التشفير المدعومة وحصة مفتاح (باستخدام Diffie-Hellman). ويرد الخادم برسالة ServerHello وحصة المفتاح الخاصة به وشهادة وأول بيانات تطبيق مشفرة — كل ذلك في إرسال واحد. بعد ذلك يتحقق العميل من الشهادة ويرسل رسالة Finished قبل تبادل بيانات التطبيق.
# Trace TLS 1.3 handshake with openssl
openssl s_client -connect example.com:443 -tls1_3 -msg 2>&1 | grep -E 'ClientHello|ServerHello|Finished'تبادل المفاتيح: Diffie-Hellman مؤقت فقط
تفرض TLS 1.3 تبادل المفاتيح المؤقت — فقد أزالت تبادل مفاتيح RSA بالكامل. ويجب أن يستخدم تبادل المفاتيح إما ECDHE (Elliptic Curve Diffie-Hellman Ephemeral) أو DHE (Diffie-Hellman Ephemeral). وتعني كلمة «مؤقت» إنشاء زوج مفاتيح جديد لكل جلسة. وهذا هو الأساس الذي تقوم عليه السرية الأمامية التامة: إذ إن اختراق المفتاح الخاص طويل الأمد للخادم لا يمكّن من فك تشفير الجلسات السابقة، لأن كل جلسة استخدمت مفتاحًا مؤقتًا فريدًا.
شرح السرية الأمامية التامة
تضمن السرية الأمامية التامة (PFS) أنه حتى إذا سجّل مهاجم جميع حركات المرور المشفرة اليوم وحصل على المفتاح الخاص للخادم مستقبلًا، فلن يتمكن من فك تشفير الجلسات القديمة. ففي TLS 1.2 مع تبادل مفاتيح RSA، كان بإمكان المفتاح الخاص للخادم فك تشفير السر السابق للتشفير في أي جلسة سابقة — وهو فشل كارثي. أما مفاتيح DH المؤقتة في TLS 1.3 فتعني أن كل جلسة تشتق مفاتيحها الخاصة، وأن هذه المفاتيح المؤقتة تُتلف بعد استخدامها.
تبسيط مجموعة التشفير
كانت TLS 1.2 تدعم أكثر من 300 مجموعة تشفير، وكان كثير منها ضعيفًا أو مكسورًا. وتقلص TLS 1.3 هذا العدد إلى خمس مجموعات تشفير فقط، تستخدم جميعها AEAD (التشفير الموثق مع البيانات المرتبطة): TLS_AES_128_GCM_SHA256، وTLS_AES_256_GCM_SHA384، وTLS_CHACHA20_POLY1305_SHA256، وTLS_AES_128_CCM_SHA256، وTLS_AES_128_CCM_8_SHA256. ويؤدي ذلك إلى إزالة فئات هجوم كاملة مثل BEAST وPOODLE وFREAK، التي استغلت التفاوض على تشفير ضعيف.
# Check supported TLS 1.3 cipher suites on a server
nmap --script ssl-enum-ciphers -p 443 example.comاستئناف 0-RTT: السرعة مقابل الأمان
يُعد استئناف 0-RTT (زمن ذهاب وإياب صفري) ميزة اختيارية في TLS 1.3 تتيح للعميل إرسال بيانات التطبيق في أول رسالة مباشرة، قبل اكتمال المصافحة. ويعمل ذلك باستخدام مفتاح مشترك مسبقًا (PSK) من جلسة سابقة. وعلى الرغم من أن 0-RTT يقلل زمن الاستجابة بدرجة كبيرة — وهو أمر بالغ الأهمية لواجهات API ذات حركة المرور الكثيفة — فإنه ينطوي على مفاضلة مهمة: فالبيانات المبكرة غير محمية من هجمات إعادة الإرسال.
خطر هجوم إعادة الإرسال في 0-RTT
في هجوم إعادة الإرسال على بيانات 0-RTT، يستطيع مهاجم يعترض رسالة البيانات المبكرة إعادة إرسالها إلى الخادم، مما قد يؤدي إلى تنفيذ الإجراء نفسه مرتين (مثل إجراء دفعة أو تغيير حالة). ويحذر معيار TLS 1.3 صراحةً من أن البيانات المبكرة في 0-RTT يجب ألا تحمل إلا عمليات متساوية النتائج — أي العمليات التي تنتج النتيجة نفسها بغض النظر عن عدد مرات تنفيذها، مثل طلب GET. ولا ينبغي مطلقًا استخدام 0-RTT مع العمليات غير المتساوية النتائج (POST وDELETE).
المفاتيح المشتركة مسبقًا واستئناف الجلسة
بعد اكتمال مصافحة TLS 1.3 بنجاح، يرسل الخادم رسالة NewSessionTicket تتضمن PSK (مفتاحًا مشتركًا مسبقًا) يخزّنه العميل. وعند إعادة الاتصال، يضمّن العميل هذا PSK في ClientHello باستخدام امتداد pre_shared_key. ويتعرف الخادم عليه، ثم يوافق إما على بيانات 0-RTT أو يعود إلى استئناف 1-RTT. وتكون تذاكر PSK محددة المدة، وينبغي تدويرها بانتظام لتقليص فترة تعرضها.
المصافحة المشفرة: إخفاء البيانات الوصفية
من التحسينات الرئيسية في TLS 1.3 أن معظم المصافحة مشفر، بما في ذلك شهادة الخادم. ففي TLS 1.2، كانت شهادة الخادم تُرسل بنص صريح، مما يتيح لمراقب الشبكة تحديد النطاق الذي يتصل به العميل. وتشفّر TLS 1.3 الشهادة ومعظم رسائل المصافحة اللاحقة، مما يقلل البيانات الوصفية المتاحة للمراقبين السلبيين. أما Encrypted Client Hello (ECH) فهو امتداد ناشئ يخفي حتى حقل SNI (Server Name Indication).
الميزات المُزالة: ما الذي أزالته TLS 1.3
أزالت TLS 1.3 العديد من الميزات القديمة التي أصبحت تمثل مسؤوليات أمنية: تبادل مفاتيح RSA (لا يوفر السرية الأمامية)، ومجموعات التشفير بنمط CBC (عرضة لهجمات مستودع الحشو)، وRC4 (خوارزمية تدفق مشفرة مكسورة بالكامل)، والتشفير المخصص للتصدير (سبب FREAK وLogjam)، وMD5 وSHA-1 في التوقيعات الرقمية، والضغط (سبب CRIME)، وإعادة التفاوض (سبب هجمات متعددة). وبإزالة هذه الميزات، أصبح سطح الهجوم في TLS 1.3 أصغر بكثير.
تهيئة الخوادم لـ TLS 1.3
يتطلب نشر TLS 1.3 على نحو صحيح تهيئة خادم الويب لتفضيله، مع تعطيل TLS 1.0 و1.1. وتدعم معظم خوادم الويب الحديثة (Nginx وApache وIIS) TLS 1.3 محليًا. وينبغي أيضًا التأكد من تمكين OCSP Stapling لتوفير حالة إبطال الشهادة من دون اتصال العميل بجهة إصدار الشهادة، ومن أن رؤوس HSTS تمنع هجمات الرجوع إلى إصدار HTTP. استخدموا أدوات مثل SSL Labs للتحقق من أن تهيئتكم تحقق تصنيف A+.
# Nginx TLS 1.3 configuration
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers off;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
add_header Strict-Transport-Security 'max-age=63072000' always;تحقق سريع
اختبروا مدى فهمكم لمفاهيم CompTIA Security+ (SY0-701) الواردة في هذا الدرس.
مراجعة الدرس
تعلمتم في هذا الدرس أن TLS 1.3 تكمل المصافحة في 1-RTT باستخدام تبادل مفاتيح DH المؤقت فقط لتحقيق السرية الأمامية التامة، وأن استئناف 0-RTT يتيح إعادة اتصال أسرع باستخدام PSK، لكنه عرضة لهجمات إعادة الإرسال ولا ينبغي أن يحمل إلا عمليات متساوية النتائج، وأن TLS 1.3 تزيل جميع الميزات القديمة الضعيفة — مثل تبادل مفاتيح RSA وتشفير CBC وRC4 وتشفير التصدير والضغط — مما يقلل سطح الهجوم بدرجة كبيرة. بعد ذلك، سنستكشف خوارزميات التشفير الموثق مثل AES-GCM.
الأسئلة الشائعة
هل درس «مصافحة TLS 1.3 واستئناف 0-RTT» مجاني؟
نعم — نص درس «مصافحة TLS 1.3 واستئناف 0-RTT» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Security+ Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Security+ Academy 4 دروس في المجموع.
ماذا ستتعلم في «مصافحة TLS 1.3 واستئناف 0-RTT»؟
تتبّعوا مصافحة TLS 1.3 خطوةً بخطوة، وتعرّفوا إلى كيفية تحقيقها للسرية الأمامية افتراضيًا، وقيّموا المفاضلات الأمنية لاستئناف الجلسات باستخدام 0-RTT. تتمرن على Security+ Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Security+ Academy؟
لا تُشترط خبرة سابقة. Security+ Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «مصافحة TLS 1.3 واستئناف 0-RTT»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Security+ Academy هذا؟
نعم. كل درس في Security+ Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- مصافحة TLS 1.3 واستئناف 0-RTT
- التشفير الموثّق: AES-GCM وChaCha20-Poly1305
- دوال اشتقاق المفاتيح: PBKDF2 وbcrypt وArgon2
- التشفير ما بعد الكمي: CRYSTALS-Kyber وDilithium