خطوات الاستخدام
الخطوة 1: فهم مصافحة TLS 1.3. مصافحة TLS هي عملية تبادل المفاتيح وإنشاء اتصال آمن. في TLS 1.3، تم تبسيط العملية لتقليل عدد جولات الاتصال (RTT). بناءً على طريقة تبادل المفاتيح، يمكن أن تختلف عدد الجولات. أدخل طريقة تبادل المفاتيح من القائمة (قيمها الداخلية: ecdhe و psk و psk_dhe) وزمن الرحلة RTT بالمللي ثانية. الخيارات المتاحة هي: - 'DHE' أو 'ECDHE': تبادل مفتاح Diffie-Hellman المؤقت (Ephemeral). - 'PSK': مفتاح مشترك مسبقًا (Pre-Shared Key). - 'PSK-DHE': مزيج من المفتاح المشترك مع Diffie-Hellman. اختيارك يحدد عدد جولات الاتصال المطلوبة.
الخطوة 2: تحليل طريقة تبادل المفاتيح. لكل طريقة، عدد الجولات: - لـ (EC)DHE (Diffie-Hellman المؤقت): يتطلب مصافحة كاملة من جولة واحدة (1-RTT). يحدث ذلك عندما لا يكون لدى العميل والخادم مفتاح مشترك مسبقًا. يقوم العميل بإرسال ClientHello، ويستجيب الخادم بـ ServerHello وشهادته وFinished، ثم يرسل العميل Finished. - لـ PSK (المفتاح المشترك المسبقًا): يدعم TLS 1.3 اتصال 0-RTT (صفر جولة) إذا كان العميل يمتلك مفتاحًا مشتركًا (مثل تذكرة الجلسة). يرسل العميل البيانات المبكرة (Early Data) مع ClientHello، ولا حاجة لجولة إضافية. - لـ PSK-DHE: يجمع بين PSK و (EC)DHE لعملية تحديث المفتاح مع الحفاظ على استخدام PSK. هذا يتطلب جولة واحدة (1-RTT) لأن Diffie-Hellman لا يزال يحتاج إلى تبادل. لاحظ أن حساب عدد الجولات يفترض عدم وجود خسائر أو إعادة إرسال. في الواقع، قد تزيد الجولات بسبب فقدان الحزم.
الخطوة 3: تطبيق المعرفة. بعد إدخال طريقة تبادل المفاتيح، ستحصل على عدد الجولات. استخدم هذه المعلومة لتقييم زمن الوصول (Latency) لاتصالات TLS. على سبيل المثال، في تطبيقات الويب، كل جولة تضيف زمنًا يساوي زمن الرحلة ذهابًا وإيابًا (RTT) على الشبكة. لذلك، اختيار PSK مع 0-RTT يقلل التأخير بشكل كبير مقارنة بـ 1-RTT. هذا مفيد بشكل خاص في شبكات الجوال أو الأقمار الصناعية ذات زمن الوصول العالي.
أمثلة محلولة
تطبيقات عملية على مصافحة TLS بخطوات الحل كاملة.
الحل
الحل:
- طريقة تبادل المفاتيح هي ECDHE، والتي تتطلب جولة واحدة (1-RTT).
- زمن الجولة الواحدة = 50 مللي ثانية.
- زمن المصافحة الإجمالي = 1 * 50 = 50 مللي ثانية.
ملاحظة: هذا الزمن لا يشمل معالجة الشهادات أو التشفير، بل هو زمن الشبكة فقط. في الواقع، قد يحتاج الخادم إلى وقت إضافي لتوليد المفاتيح، لكنه ضئيل نسبيًا.
تطبيق: في متصفح الويب، عند زيارة موقع https://example.com لأول مرة، يحدث مصافحة كاملة (1-RTT) إذا لم يكن هناك جلسة مخزنة. هذا يضيف 50 مللي ثانية إلى وقت تحميل الصفحة.
يمكن تحسين ذلك باستخدام 0-RTT إذا كان الموقع يدعم تذاكر الجلسة.
الحل
الحل:
- طريقة PSK تتيح 0-RTT (صفر جولات).
- زمن المصافحة = 0 مللي ثانية (بافتراض أن البيانات المبكرة تُرسل فورًا).
- مقارنة باستخدام DHE (1-RTT): التأخير = 1 * 100 = 100 مللي ثانية.
- التوفير = 100 مللي ثانية.
ملاحظة: 0-RTT في TLS 1.3 يسمح بإرسال البيانات (مثل طلب HTTP) مع ClientHello مباشرة، مما يلغي جولة واحدة. لكن يجب الحذر من هجمات إعادة التشغيل (Replay Attacks). لذلك، يُستخدم عادةً للطلبات الآمنة (GET) وليس للمعاملات الحساسة (POST).
تطبيق: في تطبيقات الويب الحديثة، يمكن استخدام 0-RTT لتسريع تحميل الصفحات المتكررة. على سبيل المثال، عند العودة إلى موقع بعد زيارة سابقة، يمكن استئناف الجلسة دون تأخير.
أمثلة محسوبة
قيم مُدخَلة ونتيجة محسوبة فعليًا بواسطة مصافحة TLS.
أوراكل — مصافحة كاملة بـ ECDHE
- طريقة تبادل المفاتيح
- ecdhe
- زمن الرحلة ذهابًا وإيابًا (مللي ثانية)
- 50
أوراكل — استئناف بمفتاح مشترك
- طريقة تبادل المفاتيح
- psk
- زمن الرحلة ذهابًا وإيابًا (مللي ثانية)
- 100