.\" -*- coding: UTF-8 -*- .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .\" -*- mode: troff; coding: utf-8 -*- .\" Automatically generated by Pod::Man v6.0.2 (Pod::Simple 3.45) .\" .\" Standard preamble: .\" ======================================================================== .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .ie n \{\ . ds C` "" . ds C' "" 'br\} .el\{\ . ds C` . ds C' 'br\} .\" \*(C` and \*(C' are quotes in nroff, nothing in troff, for use with C<>. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .de IX .. .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .if n .ds AD l .\" .\" Required to disable full justification in groff 1.23.0. .\" ======================================================================== .\" .IX Title "SSL_CTX_SET_OPTIONS 3ssl" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH SSL_CTX_SET_OPTIONS 3ssl "7 أبريل 2026" 3.6.2 OpenSSL .if n .ad l .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .nh .SH الاسم SSL_CTX_set_options، SSL_set_options، SSL_CTX_clear_options، SSL_clear_options، SSL_CTX_get_options، SSL_get_options، SSL_get_secure_renegotiation_support \- معالجة خيارات SSL .SH موجز .IX Header موجز .Vb 1 \& #include \& \& uint64_t SSL_CTX_set_options(SSL_CTX *ctx, uint64_t options); \& uint64_t SSL_set_options(SSL *ssl, uint64_t options); \& \& uint64_t SSL_CTX_clear_options(SSL_CTX *ctx, uint64_t options); \& uint64_t SSL_clear_options(SSL *ssl, uint64_t options); \& \& uint64_t SSL_CTX_get_options(const SSL_CTX *ctx); \& uint64_t SSL_get_options(const SSL *ssl); \& \& long SSL_get_secure_renegotiation_support(SSL *ssl); .Ve .SH الوصف .IX Header الوصف \&\fBSSL_CTX_set_options()\fP تُضيف الخيارات المُعيّنة عبر قناع بت في \fBoptions\fP إلى \fBctx\fP. \&\fBctx\fP \fBيجب ألا\fP يكون NULL. الخيارات المُعيّنة سابقًا لا تُمسح! .PP \&\fBSSL_set_options()\fP تُضيف الخيارات المُعيّنة عبر قناع بت في \fBoptions\fP إلى \fBssl\fP. الخيارات المُعيّنة سابقًا لا تُمسح! .PP \&\fBSSL_CTX_clear_options()\fP تمسح الخيارات المُعيّنة عبر قناع بت في \fBoptions\fP من \fBctx\fP. .PP \&\fBSSL_clear_options()\fP تمسح الخيارات المُعيّنة عبر قناع بت في \fBoptions\fP من \fBssl\fP. .PP \&\fBSSL_CTX_get_options()\fP تُرجع الخيارات المُعيّنة لـ \fBctx\fP. .PP \&\fBSSL_get_options()\fP تُرجع الخيارات المُعيّنة لـ \fBssl\fP. .PP \&\fBSSL_get_secure_renegotiation_support()\fP تُشير إلى ما إذا كان النظير يدعم إعادة التفاوض الآمنة. لاحظ، هذا مُنفّذ عبر ماكرو. .SH ملاحظات .IX Header ملاحظات يمكن تغيير سلوك مكتبة SSL بتعيين عدة خيارات. الخيارات مُرمّزة كأقنعة بت ويمكن دمجها عبر عملية \fBأو\fP البتية (|). .PP \&\fBSSL_CTX_set_options()\fP و \fBSSL_set_options()\fP تؤثران على سلوك البروتوكول (الخارجي) لمكتبة SSL. يمكن تغيير سلوك API (الداخلي) باستخدام الدوال المماثلة \&\fBSSL_CTX_set_mode\fP\|(3) و \fBSSL_set_mode()\fP. .PP أثناء المصافحة، تُستخدم إعدادات الخيارات لكائن SSL. عند إنشاء كائن SSL جديد من سياق باستخدام \fBSSL_new()\fP، تُنسخ إعدادات الخيارات الحالية. التغييرات على \fBctx\fP لا تؤثر على كائنات SSL المُنشأة مسبقًا. \fBSSL_clear()\fP لا يؤثر على الإعدادات. .PP الخيارات التالية \fBلتجاوز الأخطاء\fP متاحة: .IP SSL_OP_CRYPTOPRO_TLSEXT_BUG 4 .IX Item SSL_OP_CRYPTOPRO_TLSEXT_BUG أضف امتداد server\-hello من الإصدار المبكر لمسودة cryptopro عند التفاوض على مجموعة معميات GOST. مطلوب للتوافق البيني مع CryptoPro CSP 3.x. .IP SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS 4 .IX Item SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS يعطّل إجراءً مضادًا ضد ثغرة بروتوكول SSL 3.0/TLS 1.0 التي تؤثر على معميات CBC، والتي لا يمكن معالجتها بواسطة بعض تطبيقات SSL المعطوبة. هذا الخيار ليس له تأثير على الاتصالات التي تستخدم معميات أخرى. .IP SSL_OP_SAFARI_ECDHE_ECDSA_BUG 4 .IX Item SSL_OP_SAFARI_ECDHE_ECDSA_BUG لا تُفضّل معمّيات ECDHE\-ECDSA عندما يظهر العميل كـ Safari على OS X. OS X 10.8..10.8.3 لديه دعم معطوب لمعمّيات ECDHE\-ECDSA. .IP SSL_OP_TLSEXT_PADDING 4 .IX Item SSL_OP_TLSEXT_PADDING يُضيف امتداد حشو لضمان ألا يتراوح حجم ClientHello بين 256 و511 بايت. هذا ضروري كحل بديل لبعض التطبيقات. .IP SSL_OP_ALL 4 .IX Item SSL_OP_ALL جميع الحلول البديلة للأخطاء المذكورة أعلاه. .PP من الآمن عادةً استخدام \fBSSL_OP_ALL\fP لتفعيل خيارات الحلول البديلة للأخطاء إذا كانت التوافقية مع تطبيقات معطوبة جزئيًا مرغوبة. .PP الخيارات \fBالمعدّلة\fP التالية متاحة: .IP SSL_OP_ALLOW_CLIENT_RENEGOTIATION 4 .IX Item SSL_OP_ALLOW_CLIENT_RENEGOTIATION إعادة التفاوض التي يبدأها العميل مُعطّلة مبدئيًا. استخدم هذا الخيار لتفعيلها. .IP SSL_OP_ALLOW_NO_DHE_KEX 4 .IX Item SSL_OP_ALLOW_NO_DHE_KEX في TLSv1.3، اسمح بوضع تبادل مفاتيح لا يعتمد على (ec)dhe عند الاستئناف. وهذا يعني أنه لن يكون هناك سرية أمامية (forward secrecy) للجلسة المستأنفة. .IP SSL_OP_PREFER_NO_DHE_KEX 4 .IX Item SSL_OP_PREFER_NO_DHE_KEX في TLSv1.3، عند الاستئناف، دع الخادم يُفضّل وضع تبادل مفاتيح غير قائم على (ec)dhe على الوضع القائم على (ec)dhe. يُتجاهل دون تعيين \fBSSL_OP_ALLOW_NO_DHE_KEX\fP أيضًا. يُتجاهل دائمًا على العميل. .IP SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION 4 .IX Item SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION اسمح بإعادة التفاوض غير الآمنة القديمة بين OpenSSL والعملاء أو الخوادم غير المُصحّحة. راجع قسم \fBSECURE RENEGOTIATION\fP لمزيد من التفاصيل. .IP SSL_OP_SERVER_PREFERENCE 4 .IX Item SSL_OP_SERVER_PREFERENCE عند اختيار معمّي، توقيع، منحنى (TLS 1.2) أو مجموعة (TLS 1.3)، استخدم تفضيلات الخادم بدلاً من تفضيلات العميل. عندما لا يُعيّن، سيتبع خادم SSL دائمًا تفضيلات العملاء. عندما يُعيّن، سيختار خادم SSL/TLS وفقًا لتفضيلاته الخاصة. لا يزال استخدام الاسم القديم والمضلل نوعًا ما SSL_OP_CIPHER_SERVER_PREFERENCE ممكنًا لكنه غير مُشجّع. .IP SSL_OP_CISCO_ANYCONNECT 4 .IX Item SSL_OP_CISCO_ANYCONNECT استخدم معرف إصدار Cisco لـ DTLS_BAD_VER عند إنشاء اتصال DTLSv1. متاح فقط عند استخدام واجهة برمجة التطبيقات المُهملة \fBDTLSv1_client_method()\fP. .IP SSL_OP_CLEANSE_PLAINTEXT 4 .IX Item SSL_OP_CLEANSE_PLAINTEXT مبدئيًا، تحتفظ كائنات TLS و QUIC SSL بنسخة من بيانات التطبيق النصية الصريحة المستلمة في مخزن مؤقت ثابت حتى تُستبدل بالجزء التالي من البيانات. عند تفعيل SSL_OP_CLEANSE_PLAINTEXT، تُنظّف بيانات التطبيق المُفكّكة باستدعاء \fBOPENSSL_cleanse\fP\|(3) بعد تمرير البيانات إلى التطبيق. تُنظّف البيانات أيضًا عند تحرير الاتصال (مثل \fBSSL_free\fP\|(3)). .Sp بما أن OpenSSL ينظف فقط المخازن المؤقتة الداخلية، فإن التطبيق لا يزال مسؤولاً عن تنظيف جميع المخازن المؤقتة الأخرى. والأهم من ذلك، ينطبق هذا على المخازن المؤقتة الممررة إلى دوال مثل \fBSSL_read\fP\|(3)، \&\fBSSL_peek\fP\|(3) وكذلك \fBSSL_write\fP\|(3). .Sp اتصالات TLS لا تخزن البيانات المرسلة كنص واضح في مخزن مؤقت. كائنات تدفق QUIC تخزن البيانات النصية الواضحة المرسلة في مخزن مؤقت، وسيتسبب هذا الخيار أيضًا في تنظيف تلك البيانات عند التخلص منها. .Sp يمكن تعيين هذا الخيار بشكل مختلف على كائنات تدفق QUIC الفردية وليس له تأثير على كائنات اتصال QUIC (باستثناء عند استخدام تدفق مبدئي). .IP SSL_OP_COOKIE_EXCHANGE 4 .IX Item SSL_OP_COOKIE_EXCHANGE تشغيل تبادل الكعكات كما هو موصوف في RFC4347 القسم 4.2.1. يؤثر فقط على اتصالات DTLS. .IP SSL_OP_DISABLE_TLSEXT_CA_NAMES 4 .IX Item SSL_OP_DISABLE_TLSEXT_CA_NAMES عطّل إضافة TLS لأسماء المراجع المصدقة (CA Names). قد ترغب في تعطيلها لأسباب أمنية أو للتوافق مع بعض تطبيقات Windows TLS التي تنهار عندما تكون هذه الإضافة أكبر من 1024 بايت. .IP SSL_OP_ENABLE_KTLS 4 .IX Item SSL_OP_ENABLE_KTLS تمكين استخدام TLS النواة. للاستفادة من TLS النواة، يجب أن يكون OpenSSL قد جُمِع مع دعم له، ويجب أن يكون مدعومًا من قبل مجموعات المُعمِّيات والامتدادات المتفاوض عليها. قد تختلف مجموعات المُعمِّيات والامتدادات المحددة المدعومة حسب المنصة وإصدار النواة. .Sp مسار بيانات TLS النواة ينفذ طبقة السجل وخوارزمية التعمية. ستستخدم النواة أفضل عتاد متاح للتعمية. يجب أن يقلل استخدام مسار بيانات النواة من بصمة ذاكرة OpenSSL لأنه لا يلزم تخزين مؤقت. أيضًا، يجب أن يتحسن الإنتاجية لأنه يتم تجنب نسخ البيانات عندما تُعمى بيانات المستخدم في ذاكرة النواة بدلاً من التعمية المعتادة ثم النسخ إلى النواة. .Sp قد لا يدعم TLS النواة جميع ميزات OpenSSL. على سبيل المثال، إعادة التفاوض وتعيين الحد الأقصى لحجم القطعة غير ممكنين اعتبارًا من Linux 4.20. .Sp لاحظ أنه مع تمكين TLS النواة، تُنفذ بعض العمليات التعميمية بواسطة النواة مباشرة وليس عبر أي مزودي OpenSSL متاحين. قد يكون هذا غير مرغوب فيه إذا، على سبيل المثال، يتطلب التطبيق أن تُنفذ جميع العمليات التعميمية بواسطة مزود FIPS. .IP SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE 4 .IX Item SSL_OP_ENABLE_KTLS_TX_ZEROCOPY_SENDFILE مع هذا الخيار، سيستخدم \fBsendfile()\fP وضع النسخ الصفري، مما يعطي تحسينًا في الأداء عند استخدامه مع تفريغ عتاد KTLS. لاحظ أنه قد تُنقل سجلات TLS غير صالحة إذا تغير الملف أثناء إرساله. ليس لهذا الخيار تأثير إذا لم يكن \fBSSL_OP_ENABLE_KTLS\fP ممكّنًا. .Sp ينطبق هذا الخيار فقط على Linux. لا يقدم KTLS sendfile على FreeBSD خيارًا لتعطيل النسخ الصفري ويعمل دائمًا في هذا الوضع. .IP SSL_OP_ENABLE_MIDDLEBOX_COMPAT 4 .IX Item SSL_OP_ENABLE_MIDDLEBOX_COMPAT إذا تم تعيينه، فسيتم إرسال رسائل تغيير مواصفات التعمية (CCS) الوهمية في TLSv1.3. هذا له تأثير جعل TLSv1.3 يبدو أشبه بـ TLSv1.2 بحيث لا تقطع الصناديق الوسيطة التي لا تفهم TLSv1.3 الاتصال. بغض النظر عما إذا كان هذا الخيار معينًا أم لا، سيتم دائمًا تجاهل رسائل CCS المستلمة من النظير في TLSv1.3. هذا الخيار معين مبدئيًا. لإيقاف تشغيله، استخدم \&\fBSSL_clear_options()\fP. قد لا يعين إصدار مستقبلي من OpenSSL هذا مبدئيًا. .IP SSL_OP_IGNORE_UNEXPECTED_EOF 4 .IX Item SSL_OP_IGNORE_UNEXPECTED_EOF بعض تطبيقات TLS لا ترسل تنبيه close_notify الإلزامي عند الإغلاق. إذا حاول التطبيق انتظار تنبيه close_notify لكن النظير أغلق الاتصال دون إرساله، يتم إنشاء خطأ. عندما يكون هذا الخيار ممكّنًا، لا يحتاج النظير إلى إرسال تنبيه close_notify وسيتم التعامل مع الاتصال المغلق كما لو تم استلام تنبيه close_notify. .Sp يجب عليك تمكين هذا الخيار فقط إذا كان البروتوكول الذي يعمل فوق TLS يمكنه اكتشاف هجوم الاقتطاع بنفسه، وأن التطبيق يتحقق من هجوم الاقتطاع ذلك. .Sp لمزيد من المعلومات حول إغلاق اتصال، انظر \fBSSL_shutdown\fP\|(3). .IP SSL_OP_LEGACY_SERVER_CONNECT 4 .IX Item SSL_OP_LEGACY_SERVER_CONNECT اسمح بإعادة التفاوض غير الآمن القديم بين OpenSSL والخوادم غير المُصححة \&\fBفقط\fP. راجع القسم \fBإعادة التفاوض الآمن\fP لمزيد من التفاصيل. .IP SSL_OP_LEGACY_EC_POINT_FORMATS 4 .IX Item SSL_OP_LEGACY_EC_POINT_FORMATS فعّل استخدام تنسيقات النقاط القديمة للمنحنيات الإهليلجية. يُفعّل هذا الخيار دعم تنسيقات النقاط المضغوطة ANSI X9.62 prime وchar2 المُهملة، بالإضافة إلى التنسيق غير المضغوط المُفعّل مبدئيًا. .IP SSL_OP_NO_ANTI_REPLAY 4 .IX Item SSL_OP_NO_ANTI_REPLAY مبدئيًا، عندما يُهيأ خادم للبيانات المبكرة (أي max_early_data > 0)، يُشغّل OpenSSL حماية إعادة التشغيل. راجع \fBSSL_read_early_data\fP\|(3) لوصف ميزة حماية إعادة التشغيل. تُطلب إجراءات مكافحة إعادة التشغيل للامتثال لمواصفات TLSv1.3. قد تتمكن بعض التطبيقات من تخفيف مخاطر إعادة التشغيل بطرق أخرى، وفي هذه الحالات لا تُطلب وظيفة OpenSSL المدمجة. يمكن لتلك التطبيقات إيقاف تشغيل هذه الميزة بتعيين هذا الخيار. هذا خيار من جانب الخادم فقط. يُتجاهل من قبل العملاء. .IP SSL_OP_NO_TX_CERTIFICATE_COMPRESSION 4 .IX Item SSL_OP_NO_TX_CERTIFICATE_COMPRESSION عادةً، سيحاول العملاء والخوادم شفافية التفاوض على خيار ضغط الشهادة RFC8879 على اتصالات TLSv1.3. .Sp إذا عُيّن هذا الخيار، يُتجاهل امتداد ضغط الشهادة عند الاستلام، ولن تُرسل الشهادات المضغوطة إلى النظير. .IP SSL_OP_NO_RX_CERTIFICATE_COMPRESSION 4 .IX Item SSL_OP_NO_RX_CERTIFICATE_COMPRESSION عادةً، سيحاول العملاء والخوادم شفافية التفاوض على خيار ضغط الشهادة RFC8879 على اتصالات TLSv1.3. .Sp إذا عُيّن هذا الخيار، لن يُرسل امتداد ضغط الشهادة ولن تُقبل الشهادات المضغوطة من النظير. .IP SSL_OP_NO_COMPRESSION 4 .IX Item SSL_OP_NO_COMPRESSION لا تستخدم ضغط سجل TLS حتى لو كان مدعومًا. يُعيّن هذا الخيار مبدئيًا. لإيقاف تشغيله، استخدم \fBSSL_clear_options()\fP. لاحظ أن ضغط سجل TLS غير موصى به وغير متوفر في مستوى الأمان 2 أو أعلى. من OpenSSL 3.2، مستوى الأمان المبدئي هو 2، لذا فإن مسح هذا الخيار لن يكون له تأثير دون تغيير مستوى الأمان المبدئي أيضًا. راجع \&\fBSSL_CTX_set_security_level\fP\|(3). .IP SSL_OP_NO_ENCRYPT_THEN_MAC 4 .IX Item SSL_OP_NO_ENCRYPT_THEN_MAC عادةً، سيحاول العملاء والخوادم شفافية التفاوض على خيار التشفير ثم MAC RFC7366 على اتصال TLS وDTLS. .Sp إذا عُيّن هذا الخيار، يُعطّل تشفير ثم MAC. لن يقترح العملاء، ولن يقبل الخوادم الامتداد. .IP SSL_OP_NO_EXTENDED_MASTER_SECRET 4 .IX Item SSL_OP_NO_EXTENDED_MASTER_SECRET عادةً، سيحاول العملاء والخوادم شفافية التفاوض على خيار السر الرئيسي الموسع RFC7627 على اتصال TLS وDTLS. .Sp إذا عُيّن هذا الخيار، يُعطّل السر الرئيسي الموسع. لن يقترح العملاء، ولن يقبل الخوادم الامتداد. .IP SSL_OP_NO_QUERY_MTU 4 .IX Item SSL_OP_NO_QUERY_MTU لا تستعلم عن MTU. يؤثر فقط على اتصالات DTLS. .IP SSL_OP_NO_RENEGOTIATION 4 .IX Item SSL_OP_NO_RENEGOTIATION عطّل كل إعادة التفاوض في (D)TLSv1.2 والإصدارات الأقدم. لا تُرسل رسائل HelloRequest، وتجاهل طلبات إعادة التفاوض عبر ClientHello. .IP SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION 4 .IX Item SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION عند أداء إعادة التفاوض كخادم، ابدأ دائمًا جلسة جديدة (أي، طلبات استئناف الجلسة تُقبل فقط في المصافحة الأولية). هذا الخيار غير ضروري للعملاء. .IP "SSL_OP_NO_SSLv3, SSL_OP_NO_TLSv1, SSL_OP_NO_TLSv1_1, SSL_OP_NO_TLSv1_2, SSL_OP_NO_TLSv1_3, SSL_OP_NO_DTLSv1, SSL_OP_NO_DTLSv1_2" 4 .IX Item "SSL_OP_NO_SSLv3, SSL_OP_NO_TLSv1, SSL_OP_NO_TLSv1_1, SSL_OP_NO_TLSv1_2, SSL_OP_NO_TLSv1_3, SSL_OP_NO_DTLSv1, SSL_OP_NO_DTLSv1_2" هذه الخيارات تُعطّل إصدارات البروتوكول SSLv3، TLSv1، TLSv1.1، TLSv1.2 أو TLSv1.3 مع TLS أو إصدارات DTLSv1، DTLSv1.2 مع DTLS، على التوالي. اعتبارًا من OpenSSL 1.1.0، هذه الخيارات مُهمَلة، استخدم \&\fBSSL_CTX_set_min_proto_version\fP\|(3) و \&\fBSSL_CTX_set_max_proto_version\fP\|(3) بدلاً من ذلك. .IP SSL_OP_NO_TICKET 4 .IX Item SSL_OP_NO_TICKET يدعم SSL/TLS آليتين لاستئناف الجلسات: معرفات الجلسة وتذاكر الجلسة عديمة الحالة. .Sp عند استخدام معرفات الجلسة، تُخبّأ نسخة من معلومات الجلسة على الخادم ويُرسل معرف فريد إلى العميل. عندما يرغب العميل في الاستئناف، يُوفّر المعرف الفريد ليتمكن الخادم من استرجاع معلومات الجلسة من خبيئته. .Sp عند استخدام تذاكر الجلسة عديمة الحالة، يستخدم الخادم مفتاح تعمية تذكرة الجلسة لتعمية معلومات الجلسة. تُرسل هذه البيانات المُعمّاة إلى العميل كـ"تذكرة". عندما يرغب العميل في الاستئناف، يُرسل البيانات المُعمّاة عائدة إلى الخادم. يستخدم الخادم مفتاحه لفك تعمية البيانات واستئناف الجلسة. بهذه الطريقة، يمكن للخادم العمل بدون حالة \- لا حاجة لتخبئة معلومات الجلسة محليًا. .Sp بروتوكول TLSv1.3 يدعم التذاكر فقط ولا يدعم معرفات الجلسة مباشرة. ومع ذلك، يسمح OpenSSL بنمطين من تشغيل التذاكر في TLSv1.3: ذات حالة وعديمة الحالة. التذاكر عديمة الحالة تعمل بنفس الطريقة كما في TLSv1.2 وما دونه. التذاكر ذات الحالة تُحاكي سلوك معرف الجلسة المتاح في TLSv1.2 وما دونه. تُخبّأ معلومات الجلسة على الخادم ويُلف معرف الجلسة في تذكرة ويُعاد إرساله إلى العميل. عندما يرغب العميل في الاستئناف، يُقدّم تذكرة بنفس الطريقة كما للتذاكر عديمة الحالة. يمكن للخادم بعد ذلك استخراج معرف الجلسة من التذكرة واسترجاع معلومات الجلسة من خبيئته. .Sp مبدئيًا، سيستخدم OpenSSL التذاكر عديمة الحالة. خيار SSL_OP_NO_TICKET سيؤدي إلى عدم إصدار التذاكر عديمة الحالة. في TLSv1.2 وما دونه، هذا يعني عدم إرسال أي تذكرة إلى العميل على الإطلاق. في TLSv1.3، ستُرسل تذكرة ذات حالة. هذا خيار من جانب الخادم فقط. .Sp في TLSv1.3، من الممكن كبت كل التذاكر (ذات الحالة وعديمة الحالة) من الإرسال باستدعاء \fBSSL_CTX_set_num_tickets\fP\|(3) أو \&\fBSSL_set_num_tickets\fP\|(3). .IP SSL_OP_PRIORITIZE_CHACHA 4 .IX Item SSL_OP_PRIORITIZE_CHACHA عند تعيين SSL_OP_SERVER_PREFERENCE، أعد ترتيب أولويات المُعمّيات ChaCha20\-Poly1305 مؤقتًا إلى أعلى قائمة المُعمّيات للخادم إذا كان مُعمّي ChaCha20\-Poly1305 في أعلى قائمة المُعمّيات للعميل. هذا يساعد هؤلاء العملاء (مثل الجوال) على استخدام ChaCha20\-Poly1305 إذا كان ذلك المُعمّي في أي مكان في قائمة المُعمّيات للخادم؛ لكنه لا يزال يسمح للعملاء الآخرين باستخدام AES ومُعمّيات أخرى. يتطلب \fBSSL_OP_SERVER_PREFERENCE\fP. .IP SSL_OP_TLS_ROLLBACK_BUG 4 .IX Item SSL_OP_TLS_ROLLBACK_BUG عطّل كشف هجوم التراجع عن الإصدار. .Sp أثناء تبادل مفتاح العميل، يجب على العميل إرسال نفس المعلومات حول مستويات بروتوكول SSL/TLS المقبولة كما في أول ترحيب. بعض العملاء ينتهكون هذه القاعدة بالتكيف مع إجابة الخادم. (مثال: يُرسل العميل ترحيب SSLv2 ويقبل حتى SSLv3.1=TLSv1، الخادم يفهم فقط حتى SSLv3. في هذه الحالة، يجب على العميل لا يزال استخدام نفس الإعلان SSLv3.1=TLSv1. بعض العملاء ينزلون إلى SSLv3 بالنسبة لإجابة الخادم وينتهكون حماية التراجع عن الإصدار.) .PP الخيارات التالية لم يعد لها أي تأثير ولكن تُحتفظ بمعرفاتها لأغراض التوافق: .IP SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 4 .IX Item SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG .PD 0 .IP SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 4 .IX Item SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER .IP SSL_OP_SSLEAY_080_CLIENT_DH_BUG 4 .IX Item SSL_OP_SSLEAY_080_CLIENT_DH_BUG .IP SSL_OP_TLS_D5_BUG 4 .IX Item SSL_OP_TLS_D5_BUG .IP SSL_OP_TLS_BLOCK_PADDING_BUG 4 .IX Item SSL_OP_TLS_BLOCK_PADDING_BUG .IP SSL_OP_MSIE_SSLV2_RSA_PADDING 4 .IX Item SSL_OP_MSIE_SSLV2_RSA_PADDING .IP SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 4 .IX Item SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG .IP SSL_OP_MICROSOFT_SESS_ID_BUG 4 .IX Item SSL_OP_MICROSOFT_SESS_ID_BUG .IP SSL_OP_NETSCAPE_CHALLENGE_BUG 4 .IX Item SSL_OP_NETSCAPE_CHALLENGE_BUG .IP SSL_OP_PKCS1_CHECK_1 4 .IX Item SSL_OP_PKCS1_CHECK_1 .IP SSL_OP_PKCS1_CHECK_2 4 .IX Item SSL_OP_PKCS1_CHECK_2 .IP SSL_OP_SINGLE_DH_USE 4 .IX Item SSL_OP_SINGLE_DH_USE .IP SSL_OP_SINGLE_ECDH_USE 4 .IX Item SSL_OP_SINGLE_ECDH_USE .IP SSL_OP_EPHEMERAL_RSA 4 .IX Item SSL_OP_EPHEMERAL_RSA .IP SSL_OP_NETSCAPE_CA_DN_BUG 4 .IX Item SSL_OP_NETSCAPE_CA_DN_BUG .IP SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG 4 .IX Item SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG .PD .SH "إعادة التفاوض الآمن" .IX Header "إعادة التفاوض الآمن" يحاول OpenSSL آلي استخدام إعادة التفاوض الآمن كما هو موصوف في RFC5746. هذا يصد هجوم البادئة الموصوف في CVE\-2009\-3555 وفي أماكن أخرى. .PP لهذا الهجوم عواقب بعيدة المدى يجب أن يكون كتاب التطبيقات على دراية بها. في الوصف أدناه، يُشار إلى التنفيذ الذي يدعم إعادة التفاوض الآمن باسم \fIpatched\fP. ويُشار إلى الخادم الذي لا يدعم إعادة التفاوض الآمن باسم \fIunpatched\fP. .PP تصف الأقسام التالية العمليات المسموح بها بواسطة تنفيذ إعادة التفاوض الآمن في OpenSSL. .SS "العميل والخادم المُصحَّحان" .IX Subsection "العميل والخادم المُصحَّحان" يُسمح دائمًا بالاتصالات وإعادة التفاوض بواسطة تطبيقات OpenSSL. .SS "العميل غير المُصحَّح وخادم OpenSSL المُصحَّح" .IX Subsection "العميل غير المُصحَّح وخادم OpenSSL المُصحَّح" تنجح الاتصالات الأولية ولكن يرفض الخادم إعادة التفاوض من العميل مع تنبيه تحذيري \fBno_renegotiation\fP إذا استُخدم TLS v1.0 أو تنبيه قاتل \&\fBhandshake_failure\fP في SSL v3.0. .PP إذا حاول خادم OpenSSL المُصحَّح إعادة التفاوض، يُرسل تنبيه قاتل \&\fBhandshake_failure\fP. وذلك لأن كود الخادم قد لا يكون على دراية بالطبيعة غير المُصحَّحة للعميل. .PP إذا وُضع الخيار \fBSSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION\fP فإن إعادة التفاوض \fBتنجح دائمًا\fP. .SS "عميل OpenSSL المُصحَّح والخادم غير المُصحَّح" .IX Subsection "عميل OpenSSL المُصحَّح والخادم غير المُصحَّح" إذا وُضع الخيار \fBSSL_OP_LEGACY_SERVER_CONNECT\fP أو \&\fBSSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION\fP فإن الاتصالات الأولية وإعادة التفاوض بين عملاء OpenSSL المُصحَّحين والخوادم غير المُصحَّحة تنجح. إذا لم يُوضع أي من الخيارين، فإن الاتصالات الأولية بالخوادم غير المُصحَّحة تفشل. .PP وضع الخيار \fBSSL_OP_LEGACY_SERVER_CONNECT\fP له آثار أمنية؛ العملاء المستعدون للاتصال بخوادم لا تطبق إعادة التفاوض الآمنة RFC 5746 معرضون لهجمات مثل CVE\-2009\-3555. .PP تطبيقات عميل OpenSSL الراغبة في ضمان قدرتها على الاتصال بالخوادم غير المُصحَّحة يجب أن \fBتضع\fP \fBSSL_OP_LEGACY_SERVER_CONNECT\fP دائمًا .PP تطبيقات عميل OpenSSL التي تريد ضمان أنها \fBلا تستطيع\fP الاتصال بالخوادم غير المُصحَّحة (وبالتالي تجنب أي مشكلات أمنية) يجب أن \fBتمسح\fP \&\fBSSL_OP_LEGACY_SERVER_CONNECT\fP باستخدام \fBSSL_CTX_clear_options()\fP أو \&\fBSSL_clear_options()\fP. .PP الفرق بين الخيارين \fBSSL_OP_LEGACY_SERVER_CONNECT\fP و\&\fBSSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION\fP هو أن \&\fBSSL_OP_LEGACY_SERVER_CONNECT\fP يُفعّل الاتصالات الأولية وإعادة التفاوض الآمنة بين عملاء OpenSSL والخوادم غير المُصحَّحة Bفقط، بينما \&\fBSSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION\fP يسمح بالاتصالات الأولية وإعادة التفاوض بين OpenSSL والعملاء أو الخوادم غير المُصحَّحة. .SS "قابلية تطبيق الخيارات على اتصالات وتدفقات QUIC" .IX Subsection "قابلية تطبيق الخيارات على اتصالات وتدفقات QUIC" تنطبق هذه الخيارات على كائنات SSL التي تشير إلى اتصال QUIC: .IP SSL_OP_ALLOW_NO_DHE_KEX 4 .IX Item SSL_OP_ALLOW_NO_DHE_KEX .PD 0 .IP SSL_OP_NO_TX_CERTIFICATE_COMPRESSION 4 .IX Item SSL_OP_NO_TX_CERTIFICATE_COMPRESSION .IP SSL_OP_NO_RX_CERTIFICATE_COMPRESSION 4 .IX Item SSL_OP_NO_RX_CERTIFICATE_COMPRESSION .IP SSL_OP_NO_TICKET 4 .IX Item SSL_OP_NO_TICKET .IP SSL_OP_PRIORITIZE_CHACHA 4 .IX Item SSL_OP_PRIORITIZE_CHACHA .PD .PP تنطبق هذه الخيارات على كائنات SSL التي تشير إلى تدفق QUIC: .IP SSL_OP_CLEANSE_PLAINTEXT 4 .IX Item SSL_OP_CLEANSE_PLAINTEXT .PP تُهيَّأ الخيارات على اتصالات QUIC من الخيارات الموضوعة على SSL_CTX قبل إنشاء كائن SSL لاتصال QUIC. تُهيَّأ الخيارات على تدفقات QUIC من الخيارات المكوَّنة على كائن SSL لاتصال QUIC الذي أُنشئت منه. .PP وضع خيارات تتعلق بتدفقات QUIC على كائن SSL لاتصال QUIC ليس له تأثير مباشر على كائن SSL لاتصال QUIC نفسه، ولكنه سيغير الخيارات الموضوعة على التدفق المبدئي (إن وُجد) وسيحدد أيضًا الخيارات المبدئية الموضوعة على أي تدفقات مستقبلية تُنشأ. .PP الخيارات الأخرى غير المذكورة أعلاه ليس لها تأثير وسيتم تجاهلها. .PP يمكن أيضًا وضع الخيارات المتعلقة بتدفقات QUIC مباشرة على كائنات SSL لتدفق QUIC. وضع خيارات متعلقة بالاتصال على مثل هذا الكائن ليس له تأثير. .SH "القيم المُرجعة" .IX Header "القيم المُرجعة" تُرجع \&\fBSSL_CTX_set_options()\fP و\fBSSL_set_options()\fP قناع البت الجديد للخيارات بعد إضافة \fBoptions\fP. .PP \&\fBSSL_CTX_clear_options()\fP و \fBSSL_clear_options()\fP تُعيد قناع الخيارات الجديد بعد مسح \fBoptions\fP. .PP \&\fBSSL_CTX_get_options()\fP و \fBSSL_get_options()\fP تُعيد قناع الخيارات الحالي. .PP \&\fBSSL_get_secure_renegotiation_support()\fP تُعيد 1 إذا كان النظير يدعم إعادة التفاوض الآمن و 0 إذا لم يدعمه. .SH "انظر أيضًا" .IX Header "انظر أيضًا" \&\fBssl\fP\|(7), \fBSSL_new\fP\|(3), \fBSSL_clear\fP\|(3), \fBSSL_shutdown\fP\|(3) \&\fBSSL_CTX_set_tmp_dh_callback\fP\|(3), \&\fBSSL_CTX_set_min_proto_version\fP\|(3), \&\fBopenssl\-dhparam\fP\|(1) .SH التاريخ .IX Header التاريخ أُضيفت محاولة استخدام إعادة التفاوض الآمن دائمًا في OpenSSL 0.9.8m. .PP أُضيفت الخيارات \fBSSL_OP_PRIORITIZE_CHACHA\fP و \fBSSL_OP_NO_RENEGOTIATION\fP في OpenSSL 1.1.1. .PP أُضيفت الخيارات \fBSSL_OP_NO_EXTENDED_MASTER_SECRET\fP و \fBSSL_OP_IGNORE_UNEXPECTED_EOF\fP في OpenSSL 3.0. .PP غُيّرت ثوابت \fBSSL_OP_\fP والمعاملات وقيم الإرجاع المقابلة للدوال المتأثرة إلى نوع \f(CW\*(C`uint64_t\*(C'\fP في OpenSSL 3.0. لهذا السبب، لم يعد من الممكن استخدام قيم ماكرو \fBSSL_OP_\fP في شروط المعالج الأولي \f(CW\*(C`#if\*(C'\fP. ومع ذلك، لا يزال من الممكن اختبار ما إذا كانت هذه الماكروات مُعرَّفة أم لا. .PP اعتبارًا من OpenSSL 3.6، يُثبط استخدام الثابت \fBSSL_OP_CIPHER_SERVER_PREFERENCE\fP وأصبحت دلالاته متاحة باستخدام الثابت الأكثر تسمية مناسبة \&\fBSSL_OP_SERVER_PREFERENCE\fP. .SH "حقوق النسخ" .IX Header "حقوق النسخ" حقوق النشر 2001\-2025 لمؤلفي مشروع OpenSSL. جميع الحقوق محفوظة. .PP مرخص بموجب رخصة Apache 2.0 (المشار إليها فيما يلي بـ ”الرخصة“). لا يجوز لك استخدام هذا الملف إلا وفقًا لشروط الرخصة. يمكنك الحصول على نسخة منها في الملف LICENSE الموجود في حزمة التوزيع المصدرية أو على الرابط . .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .