OSSL-GUIDE-LIBSSL-INTRODUCTION(7SSL)

الاسم
ossl-guide-libssl-introduction, ssl - دليل OpenSSL: مقدمة إلى libssl

مقدمة
مكتبة OpenSSL "libssl" تقدم تطبيقات لعدة بروتوكولات اتصالات شبكية آمنة. تحديدًا، تقدم SSL/TLS (SSLv3، TLSv1، TLSv1.1، TLSv1.2 و TLSv1.3)، DTLS (DTLSv1 و DTLSv1.2) و QUIC (جانب العميل فقط). تعتمد المكتبة على "libcrypto" لعملياتها التشفيرية الأساسية (انظر ossl-guide-libcrypto-introduction(7)).

مجموعة واجهات برمجة التطبيقات (APIs) التي توفرها "libssl" مشتركة عبر جميع بروتوكولات الشبكة المختلفة هذه، لذا يمكن لمطور مألوف بكتابة تطبيقات باستخدام أحد هذه البروتوكولات الانتقال إلى استخدام آخر بسهولة نسبية.

تطبيق مكتوب لاستخدام "libssl" سيتضمن ملف الرأس <openssl/ssl.h> وسيستخدم عادةً هيكلين رئيسيين للبيانات، وهما SSL و SSL_CTX.

يُستخدم كائن SSL لتمثيل اتصال بنظير بعيد. بمجرد إنشاء اتصال بنظير بعيد، يمكن تبادل البيانات مع ذلك النظير.

عند استخدام DTLS، أي بيانات يتم تبادلها تستخدم دلالات "رزمة بيانات" (datagram)، أي يمكن تسليم حزم البيانات بأي ترتيب، وليس مضمونًا وصولها على الإطلاق. في هذه الحالة، يُستخدم كائن SSL المستخدم للاتصال أيضًا لتبادل البيانات مع النظير.

يدعم كل من TLS و QUIC مفهوم "تدفق" (stream) من البيانات. البيانات المرسلة عبر تدفق مضمونة التسليم بالترتيب دون أي فقدان للبيانات. يمكن أن يكون التدفق أحادي أو ثنائي الاتجاه.

يدعم SSL/TLS تدفق بيانات واحد فقط لكل اتصال وهو دائمًا ثنائي الاتجاه. في هذه الحالة، يمثل كائن SSL المستخدم للاتصال ذلك التدفق أيضًا. انظر ossl-guide-tls-introduction(7) لمزيد من المعلومات.

يمكن لبروتوكول QUIC دعم تدفقات متعددة لكل اتصال ويمكن أن تكون أحادية أو ثنائية الاتجاه. في هذه الحالة، يمكن لكائن SSL تمثيل الاتصال الأساسي، أو تدفق، أو كليهما. حيث تُستخدم تدفقات متعددة، يُستخدم كائن SSL منفصل لكل منها. انظر ossl-guide-quic-introduction(7) لمزيد من المعلومات.

يُستخدم كائن SSL_CTX لإنشاء كائن SSL للاتصال الأساسي. يمكن استخدام كائن SSL_CTX واحد لإنشاء اتصالات عديدة (كل منها ممثل بكائن SSL منفصل). توجد العديد من دوال API في libssl بشكلين: واحد يأخذ SSL_CTX وآخر يأخذ SSL. عادةً، الإعدادات التي تطبقها على SSL_CTX ستورث بعد ذلك بواسطة أي كائن SSL تنشئه منه. بدلاً من ذلك، يمكنك تطبيق إعدادات مباشرة على كائن SSL دون التأثير على كائنات SSL الأخرى. لاحظ أنه لا ينبغي عادةً إجراء تغييرات على SSL_CTX بعد إنشاء أول كائن SSL منه.

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

SSL_METHOD (طريقة SSL)
    يُستخدم هذا الهيكل للإشارة إلى نوع الاتصال الذي تريد إنشاءه، مثلاً سواء كان لتمثيل العميل أو الخادم، وسواء كان لاستخدام SSL/TLS أو DTLS أو QUIC. يُمرر كمعامل عند إنشاء SSL_CTX.

SSL_SESSION (جلسة SSL)
    بعد إنشاء اتصال مع نظير، يمكن إعادة استخدام المواد التشفيرية المتفق عليها لإنشاء اتصالات مستقبلية مع نفس النظير بسرعة أكبر. مجموعة البيانات المستخدمة لمحاولة إنشاء اتصال مستقبلي تُجمع معًا في كائن SSL_SESSION. قد يولد اتصال ناجح واحد مع نظير صفرًا أو أكثر من كائنات SSL_SESSION هذه لاستخدامها في محاولات الاتصال المستقبلية.

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

    يتم تكوين مجموعة حزم التشفير المتاحة التي يمكن استخدامها في SSL_CTX أو SSL.

قراءة إضافية
انظر ossl-guide-tls-introduction(7) للحصول على مقدمة حول بروتوكول SSL/TLS و ossl-guide-quic-introduction(7) للحصول على مقدمة حول QUIC.

انظر ossl-guide-libcrypto-introduction(7) للحصول على مقدمة حول "libcrypto".

انظر أيضًا
ossl-guide-libcrypto-introduction(7), ossl-guide-tls-introduction(7), ossl-guide-quic-introduction(7)

حقوق النسخ
حقوق النشر 2000-2025 لمؤلفي مشروع 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.