SSL_CTX_SET_SESSION_CACHE_MODE(3SSL)

الاسم
SSL_CTX_set_session_cache_mode, SSL_CTX_get_session_cache_mode - تمكين/تعطيل خبيئة الجلسة

موجز
 #include <openssl/ssl.h>

 long SSL_CTX_set_session_cache_mode(SSL_CTX ctx, long mode);
 long SSL_CTX_get_session_cache_mode(SSL_CTX ctx);

الوصف
SSL_CTX_set_session_cache_mode() يُفعِّل/يُعطِّل خبيئة الجلسة بتعيين النمط التشغيلي لـ ctx إلى <mode>.

SSL_CTX_get_session_cache_mode() يُرجع نمط الخبيئة المستخدم حاليًا.

ملاحظات
مكتبة OpenSSL يمكنها تخزين/استرجاع جلسات SSL/TLS لإعادة استخدامها لاحقًا. يمكن الاحتفاظ بالجلسات في الذاكرة لكل ctx، وإذا تم الحفاظ على أكثر من كائن SSL_CTX، تكون الجلسات فريدة لكل كائن SSL_CTX.

لإعادة استخدام جلسة، يجب على العميل إرسال معرف الجلسة إلى الخادم. يمكنه إرسال معرف واحد فقط بالضبط. ثم يوافق الخادم إما على إعادة استخدام الجلسة أو يبدأ مصافحة كاملة (لإنشاء جلسة جديدة).

يبحث الخادم عن الجلسة في تخزين الجلسة الداخلي. إذا لم تُوجد الجلسة في التخزين الداخلي أو تم تعطيل عمليات البحث للتخزين الداخلي (SSL_SESS_CACHE_NO_INTERNAL_LOOKUP)، يحاول الخادم التخزين الخارجي إذا كان متاحًا.

نظرًا لأن العميل قد يحاول إعادة استخدام جلسة مخصصة للاستخدام في سياق مختلف، يجب تعيين سياق معرف الجلسة بواسطة الخادم (انظر SSL_CTX_set_session_id_context(3)).

أنماط ومعدِّلات خبيئة الجلسة التالية متاحة:

SSL_SESS_CACHE_OFF
    لا تحدث خبيئة جلسة للعميل أو الخادم.

SSL_SESS_CACHE_CLIENT
    تُضاف جلسات العميل إلى خبيئة الجلسة. نظرًا لعدم وجود طريقة موثوقة لمكتبة OpenSSL لمعرفة ما إذا كان يجب إعادة استخدام جلسة أو أي جلسة تختار (بسبب طبقة BIO المجردة، لا يملك محرك SSL تفاصيل عن الاتصال)، يجب على التطبيق تحديد الجلسة المراد إعادة استخدامها باستخدام الدالة SSL_set_session(3). هذا الخيار غير مُفعَّل مبدئيًا.

SSL_SESS_CACHE_SERVER
    تُضاف جلسات الخادم إلى خبيئة الجلسة. عندما يقترح العميل جلسة لإعادة استخدامها، يبحث الخادم عن الجلسة المقابلة في (أولاً) خبيئة الجلسة الداخلية (ما لم يُضبط SSL_SESS_CACHE_NO_INTERNAL_LOOKUP)، ثم (ثانيًا) في الخبيئة الخارجية إذا كانت متاحة. إذا وُجدت الجلسة، يحاول الخادم إعادة استخدام الجلسة. هذا هو المبدئي.

SSL_SESS_CACHE_BOTH
    فعِّل كلاً من SSL_SESS_CACHE_CLIENT وSSL_SESS_CACHE_SERVER في نفس الوقت.

SSL_SESS_CACHE_NO_AUTO_CLEAR
    عادةً، يُفحص خبيئة الجلسة بحثًا عن الجلسات منتهية الصلاحية كل 255 اتصالًا باستخدام الدالة SSL_CTX_flush_sessions(3). نظرًا لأن هذا قد يؤدي إلى تأخير لا يمكن التحكم فيه، فقد يُعطّل التنظيف الآلي ويمكن للتطبيق استدعاء SSL_CTX_flush_sessions(3) صراحةً.

SSL_SESS_CACHE_NO_INTERNAL_LOOKUP
    بتعيين هذه العلامة، لن تبحث عمليات استئناف الجلسة في خادم SSL/TLS آليًا عن الجلسات في الخبيئة الداخلية، حتى لو خُزنت الجلسات هناك آليًا. إذا كانت استدعاءات التخزين المؤقت الخارجي للجلسة قيد الاستخدام، تضمن هذه العلامة توجيه جميع عمليات البحث إلى الخبيئة الخارجية. نظرًا لأن البحث الآلي ينطبق فقط على خوادم SSL/TLS، فليس للعلامة أي تأثير على العملاء.

SSL_SESS_CACHE_NO_INTERNAL_STORE
    اعتمادًا على وجود SSL_SESS_CACHE_CLIENT و/أو SSL_SESS_CACHE_SERVER، قد تُخبّأ الجلسات المتفاوض عليها في مصافحة SSL/TLS لإعادة استخدامها المحتملة. عادةً، تُضاف جلسة جديدة إلى الخبيئة الداخلية بالإضافة إلى أي تخزين مؤقت خارجي للجلسة (استدعاء) مُهيأ لـ SSL_CTX. ستمنع هذه العلامة تخزين الجلسات في الخبيئة الداخلية (على الرغم من أن التطبيق يمكنه إضافتها يدويًا باستخدام SSL_CTX_add_session(3)). ملاحظة: في أي خوادم SSL/TLS حيث يُهيأ التخزين المؤقت الخارجي، تُنسخ أي عمليات بحث ناجحة عن الجلسة في الخبيئة الخارجية (أي لطلبات استئناف الجلسة) عادةً إلى الخبيئة المحلية قبل متابعة المعالجة - تمنع هذه العلامة هذه الإضافات إلى الخبيئة الداخلية أيضًا.

SSL_SESS_CACHE_NO_INTERNAL
    فعّل كلاً من SSL_SESS_CACHE_NO_INTERNAL_LOOKUP وSSL_SESS_CACHE_NO_INTERNAL_STORE في نفس الوقت.

SSL_SESS_CACHE_UPDATE_TIME
    يُحدّث الطابع الزمني للجلسة عند استخدامها، مما يزيد من عمر الجلسة. ينطبق انتهاء صلاحية الجلسة على آخر استخدام، وليس وقت الإنشاء.

الوضع المبدئي هو SSL_SESS_CACHE_SERVER.

القيم المُرجعة
تُعيد SSL_CTX_set_session_cache_mode() وضع الخبيئة المُعيَّن سابقًا.

تُعيد SSL_CTX_get_session_cache_mode() وضع الخبيئة المُعيَّن حاليًا.

انظر أيضًا
ssl(7), SSL_set_session(3), SSL_session_reused(3), SSL_CTX_add_session(3), SSL_CTX_sess_number(3), SSL_CTX_sess_set_cache_size(3), SSL_CTX_sess_set_get_cb(3), SSL_CTX_set_session_id_context(3), SSL_CTX_set_timeout(3), SSL_CTX_flush_sessions(3)

حقوق النسخ
حقوق النشر 2001-2021 لمؤلفي مشروع OpenSSL. جميع الحقوق محفوظة.

مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط <https://www.openssl.org/source/license.html>.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.