OPENSSL-CMS(1SSL)

الاسم
openssl-cms - أمر CMS

موجز
openssl cms [-help]

خيارات عامة:

[-in اسم_الملف] [-out اسم_الملف] [-config ملف_الضبط]

خيارات العملية:

[-encrypt] [-decrypt] [-sign] [-verify] [-resign] [-sign_receipt] [-verify_receipt الإيصال] [-digest البصمة] [-digest_create] [-digest_verify] [-compress] [-uncompress] [-EncryptedData_encrypt] [-EncryptedData_decrypt] [-data_create] [-data_out] [-cmsout]

خيارات تنسيق الملف:

[-inform DER|PEM|SMIME] [-outform DER|PEM|SMIME] [-rctform DER|PEM|SMIME] [-stream] [-indef] [-noindef] [-binary] [-crlfeol] [-asciicrlf]

خيارات المفاتيح وكلمات السر:

[-pwri_password كلمة_السر] [-secretkey المفتاح] [-secretkeyid المعرف] [-inkey اسم_الملف|uri] [-passin معطى] [-keyopt الاسم:المعلمة] [-keyform DER|PEM|P12|ENGINE] [-engine المعرف] [-provider الاسم] [-provider-path المسار] [-provparam [الاسم:]المفتاح=القيمة] [-propquery propq] [-rand ملفات] [-writerand ملف]

خيارات التعمية:

[-originator ملف] [-recip ملف] [شهادة-المستلم ...] [-cipher] [-kekcipher المعمي] [-wrap المعمي] [-aes128-wrap] [-aes192-wrap] [-aes256-wrap] [-des3-wrap] [-debug_decrypt] [-recip_kdf kdf] [-recip_ukm ukm]

خيارات التوقيع:

[-md البصمة] [-signer ملف] [-certfile ملف] [-cades] [-nodetach] [-nocerts] [-noattr] [-nosmimecap] [-no_signing_time] [-receipt_request_all] [-receipt_request_first] [-receipt_request_from عنوان_البريد] [-receipt_request_to عنوان_البريد]

خيارات الاستيثاق:

[-signer ملف] [-content اسم_الملف] [-no_content_verify] [-no_attr_verify] [-nosigs] [-noverify] [-nointern] [-cades] [-verify_retcode] [-CAfile ملف] [-no-CAfile] [-CApath دليل] [-no-CApath] [-CAstore uri] [-no-CAstore]

خيارات المخرج:

[-keyid] [-econtent_type نوع] [-text] [-certsout ملف] [-to عنوان] [-from عنوان] [-subject الموضوع]

خيارات الطباعة:

[-noout] [-print] [-nameopt خيار] [-receipt_request_print]

خيارات التحقق:

[-allow_proxy_certs] [-attime طابع_زمني] [-no_check_time] [-check_ss_sig] [-crl_check] [-crl_check_all] [-explicit_policy] [-extended_crl] [-ignore_critical] [-inhibit_any] [-inhibit_map] [-partial_chain] [-policy معطى] [-policy_check] [-policy_print] [-purpose الغرض] [-suiteB_128] [-suiteB_128_only] [-suiteB_192] [-trusted_first] [-no_alt_chains] [-use_deltas] [-auth_level رقم] [-verify_depth رقم] [-verify_email بريد] [-verify_hostname اسم_المضيف] [-verify_ip ip] [-verify_name اسم] [-x509_strict] [-issuer_checks]

الوصف
يعالج هذا الأمر البيانات بتنسيق CMS مثل رسائل البريد الإلكتروني S/MIME v3.1. ويمكنه تعمية الرسائل وفك تعميتها وتوقيعها والاستيثاق منها وضغطها وفك ضغطها وطباعتها.

الخيارات
هناك عدد من خيارات التشغيل التي تحدد نوع العملية المراد تنفيذها: encrypt، أو decrypt، أو sign، أو verify، أو resign، أو sign_receipt، أو verify_receipt، أو digest_create، أو digest_verify، أو compress، أو uncompress، أو EncryptedData_encrypt، أو EncryptedData_decrypt، أو data_create، أو data_out، أو cmsout. وتعتمد صلة الخيارات الأخرى على نوع العملية وقد يختلف معناها وفقًا لها.

-help
    اطبع رسالة الاستخدام.

  خيارات عامة

-in اسم_الملف
    رسالة المدخل المراد تعميتها أو توقيعها أو الرسالة المراد فك تعميتها أو الاستيثاق منها.

-out اسم_الملف
    نص الرسالة الذي فُكت تعميته أو فُحص، أو مخرج رسالة تنسيق MIME التي وُقعت أو فُحصت.

-config ملف_الضبط
    انظر "Configuration Option" في openssl(1).

  خيارات العملية

-encrypt
    تُعمى البيانات لشهادات المستلمين المعطاة. ملف المدخل هو الرسالة المراد تعميتها. ملف المخرج هو البيانات المعماة بتنسيق MIME. نوع CMS الفعلي هو EnvelopedData.

    لاحظ أنه لا يُجرى فحص للإبطال لشهادة المستلم، لذا إذا جرى اختراق ذلك المفتاح، فقد يتمكن الآخرون من فك تشفير النص.

-decrypt
    تُفك تعمية البيانات باستخدام الشهادة والمفتاح الخاص الموفرين. يتوقع بيانات معماة بتنسيق MIME لملف المدخل. تُكتب البيانات التي فُكت تعميتها في ملف المخرج.

-sign
    تُوقع البيانات باستخدام الشهادة والمفتاح الخاص الموفرين. ملف المدخل هو الرسالة المراد توقيعها. تُكتب البيانات الموقعة بتنسيق MIME في ملف المخرج.

-verify
    يُستوثق من البيانات الموقعة. يتوقع بيانات موقعة عند المدخل ويخرج البيانات الموقعة. كلاً من التوقيع بالنص الصريح وغير الشفاف مدعومان.

    مبدئيًا، يُجرى التحقق من شهادات الموقع وسلسلتها بالنسبة لغرض توقيع S/MIME‏ ("smimesign"). لمزيد من التفاصيل انظر "Certificate Extensions" في openssl-verification-options(1).

-resign
    إعادة توقيع رسالة: أخذ رسالة موجودة وموقع واحد أو أكثر من الموقعين الجدد.

-sign_receipt
    يُوّلد ويُخرج إيصالاً موقعًا للرسالة الموفرة. **يجب** أن تحتوي رسالة المدخل على طلب إيصال موقع. الوظيفة بخلاف ذلك مماثلة لعملية -sign.

-verify_receipt الإيصال
    يُستوثق من إيصال موقع في اسم الملف الإيصال. **يجب** أن تحتوي رسالة المدخل على طلب الإيصال الأصلي. الوظيفة بخلاف ذلك مماثلة لعملية -verify.

-digest البصمة
    عند استخدامه مع -sign، يوفر البصمة بتنسيق ست عشري بدلاً من حسابها من محتوى الرسالة الأصلي. لا يمكن دمجه مع -in أو -nodetach.

    هذه العملية هي المعادل في CMS لتوقيع openssl-pkeyutl(1). عند توقيع بصمة محسوبة مسبقًا، يعتمد الأمان على الوثوق بالبصمة وحسابها من الرسالة الأصلية.

-digest_create
    إنشاء نوع CMS DigestedData.

-digest_verify
    الاستيثاق من نوع CMS DigestedData وإخراج المحتوى.

-compress
    إنشاء نوع CMS CompressedData. يجب أن يكون قد جُمع OpenSSL مع دعم zlib ليعمل هذا الخيار، وإلا سيخرج خطأ.

-uncompress
    فك ضغط نوع CMS CompressedData وإخراج المحتوى. يجب أن يكون قد جُمع OpenSSL مع دعم zlib ليعمل هذا الخيار، وإلا سيخرج خطأ.

-EncryptedData_encrypt
    تعمية المحتوى باستخدام المفتاح المتماثل والخوارزمية الموفرين باستخدام نوع CMS EncryptedData وإخراج المحتوى.

-EncryptedData_decrypt
    فك تعمية المحتوى باستخدام المفتاح المتماثل والخوارزمية الموفرين باستخدام نوع CMS EncryptedData وإخراج المحتوى.

-data_create
    إنشاء نوع CMS Data.

-data_out
    نوع البيانات وإخراج المحتوى.

-cmsout
    يأخذ رسالة مدخلات ويكتب بنية CMS مرمزة بتنسيق PEM.

  خيارات تنسيق الملف

-inform DER|PEM|SMIME
    تنسيق المدخلات لبنية CMS (في حال قراءتها)؛ التنسيق المبدئي هو SMIME. انظر openssl-format-options(1) للتفاصيل.

-outform DER|PEM|SMIME
    تنسيق المخرجات لبنية CMS (في حال كتابتها)؛ التنسيق المبدئي هو SMIME. انظر openssl-format-options(1) للتفاصيل.

-rctform DER|PEM|SMIME
    تنسيق الإيصال الموقّع للاستخدام مع -receipt_verify؛ التنسيق المبدئي هو SMIME. انظر openssl-format-options(1) للتفاصيل.

-stream، -indef
    الخياران -stream و -indef متكافئان ويمكنان الإدخال/الإخراج المتدفق لعمليات الترميز. هذا يسمح بمعالجة البيانات في تمريرة واحدة دون الحاجة إلى الاحتفاظ بكامل المحتويات في الذاكرة، مما يدعم الملفات الكبيرة جدًا. يُضبط التدفق آليًا لتوقيع S/MIME مع البيانات المنفصلة إذا كانت صيغة المخرجات SMIME، وهو حاليًا معطل مبدئيًا لجميع العمليات الأخرى.

-noindef
    عطّل الإدخال/الإخراج المتدفق حيث قد ينتج عنه ترميز مُنشأ بطول غير محدد. ليس لهذا الخيار أي تأثير حالياً. في المستقبل سيُفعل التدفق مبدئياً لجميع العمليات ذات الصلة وسيعطله هذا الخيار.

-binary
    عادةً ما تُحول رسالة المدخلات إلى التنسيق "القياسي" الذي يستخدم فعليًا CR و LF كنهاية للسطر: كما هو مطلوب في مواصفة S/MIME. عند وجود هذا الخيار لا يحدث أي تحويل. وهذا مفيد عند التعامل مع البيانات الثنائية التي قد لا تكون بتنسيق MIME.

-crlfeol
    عادةً ما يستخدم ملف المخرجات محرف LF واحدًا كنهاية للسطر. عند وجود هذا الخيار يُستخدم CRLF بدلاً من ذلك.

-asciicrlf
    عند التوقيع، استخدم المعيرة بتنسيق ASCII CRLF. يؤدي هذا إلى تجريد المسافات البيضاء اللاحقة من جميع الأسطر، وحذف الأسطر الفارغة اللاحقة في نهاية الملف وتعيين نوع المحتوى المغلّف. يُستخدم هذا الخيار عادةً مع المحتوى المنفصل وتنسيق توقيع مخرجات من نوع DER. لا توجد حاجة لهذا الخيار عادةً عند التحقق لأنه يُفعل آلياً إذا كُشف عن تنسيق المحتوى المغلّف.

  خيارات المفاتيح وكلمة السر

-pwri_password كلمة_السر
    حدد كلمة السر للمستلم.

-secretkey المفتاح
    حدد المفتاح المتماثل للاستخدام. يجب تقديم المفتاح بتنسيق سداسي عشري وأن يكون متسقاً مع الخوارزمية المستخدمة. يدعمه الخيارات -EncryptedData_encrypt و -EncryptedData_decrypt و -encrypt و -decrypt. عند استخدامه مع -encrypt أو -decrypt، يُستخدم المفتاح المقدم لتغليف أو فك تغليف مفتاح تعمية المحتوى باستخدام مفتاح AES في النوع KEKRecipientInfo.

-secretkeyid المعرف
    معرف المفتاح للمفتاح المتماثل المقدم للنوع KEKRecipientInfo. يجب وجود هذا الخيار إذا استُخدم الخيار -secretkey مع -encrypt. في عمليات -decrypt، يُستخدم المعرف لتحديد مكان المفتاح ذي الصلة، وإذا لم يُقدم تُجرى محاولة لفك تعمية أي بنيات KEKRecipientInfo.

-inkey اسم_الملف|معرف_مورد
    المفتاح الخاص المراد استخدامه عند التوقيع أو فك التعمية. يجب أن يطابق الشهادة المقابلة. إذا لم يُحدد هذا الخيار، فيجب تضمين المفتاح الخاص في ملف الشهادة المحدد مع ملف -recip أو -signer. عند التوقيع، يمكن استخدام هذا الخيار عدة مرات لتحديد مفاتيح متتالية.

-passin المعطى
    مصدر كلمة سر المفتاح الخاص. لمزيد من المعلومات حول تنسيق المعطى انظر openssl-passphrase-options(1).

-keyopt الاسم:المعامل
    للتوقيع والتعمية، يمكن استخدام هذا الخيار عدة مرات لضبط معاملات مخصصة للمفتاح أو الشهادة السابقة. يمكن استخدامه حالياً لضبط RSA-PSS للتوقيع، أو RSA-OAEP للتعمية أو لتعديل المعاملات المبدئية لـ ECDH.

-keyform DER|PEM|P12|ENGINE
    تنسيق ملف المفتاح الخاص؛ غير محدد مبدئيًا. انظر openssl-format-options(1) للتفاصيل.

-engine id
    انظر "خيارات المحرك" في openssl(1). هذا الخيار مهجور.

-provider الاسم
-provider-path المسار
-provparam [الاسم:]المفتاح=القيمة
-propquery propq
    انظر "خيارات المزود" في openssl(1)، و provider(7)، و property(7).

-rand ملفات، -writerand ملف
    انظر "خيارات الحالة العشوائية" في openssl(1) للتفاصيل.

  خيارات التعمية وفك التعمية

-originator ملف
    شهادة لمنشئ الرسالة المعماة. ضرورية لفك التعمية عند استخدام اتفاق المفتاح (Key Agreement) لمفتاح مشترك. حالياً، غير مسموح بها للتعمية.

-recip ملف
    عند فك تعمية رسالة، يحدد هذا شهادة المستلم. يجب أن تطابق الشهادة أحد مستلمي الرسالة.

    عند تعمية رسالة، يمكن استخدام هذا الخيار عدة مرات لتحديد كل مستلم. يجب استخدام هذا النموذج إذا كانت هناك حاجة لمعاملات مخصصة (على سبيل المثال لتحديد RSA-OAEP).

    يدعم هذا الخيار فقط الشهادات التي تحمل مفاتيح RSA أو Diffie-Hellman أو EC.

شهادة-المستلم ...
    هذا بديل لاستخدام الخيار -recip عند تعمية رسالة. يمكن تقديم اسم ملف شهادة واحد أو أكثر.

-تعمية
    خوارزمية التعمية المراد استخدامها. على سبيل المثال، AES (256 بت) - -aes256 أو DES الثلاثي (168 بت) - -des3. يمكن أيضًا استخدام أي اسم خوارزمية قياسي (كما هو مستخدم بواسطة دالة EVP_get_cipherbyname()) مسبوقًا بشرطة، على سبيل المثال -aes-128-cbc. انظر openssl-enc(1) للحصول على قائمة بأنواع التعمية التي يدعمها إصدار OpenSSL الخاص بك.

    حالياً، متغيرات AES مع وضع GCM هي خوارزميات AEAD الوحيدة المدعومة.

    إذا لم تُحدد، يُستخدم AES-256-CBC كخيار مبدئي. يُستخدم فقط مع الأوامر -encrypt و -EncryptedData_encrypt.

-kekcipher التعمية
    خوارزمية التعمية لاستخدامها في تعمية مفتاح كلمة السر. هذا الخيار وثيق الصلة عند تقديم كلمة سر لمعلومات مستلم كلمة السر باستخدام -pwri_password، واختيار خوارزمية تعمية AEAD. في مثل هذه الحالات، يجب تحديد خوارزمية غير AEAD باستخدام هذا الخيار.

-wrap التعمية
    خوارزمية التعمية لاستخدامها في تغليف المفتاح عند تعمية الرسالة باستخدام اتفاق المفتاح لنقل المفتاح. يجب أن تكون الخوارزمية المحددة مناسبة لتغليف المفتاح.

-aes128-wrap، -aes192-wrap، -aes256-wrap، -des3-wrap
    استخدم AES128، أو AES192، أو AES256، أو 3DES-EDE، على التوالي، لتغليف المفتاح. اعتمادًا على خيارات بناء OpenSSL المستخدمة، قد لا يكون -des3-wrap مدعومًا.

-debug_decrypt
    يضبط هذا الخيار علامة CMS_DEBUG_DECRYPT. يجب استخدام هذا الخيار بحذر: انظر قسم الملاحظات أدناه.

-recip_kdf
    يضبط هذا الخيار KDF المستخدم لتوليد مفتاح تعمية المفتاح في النوع KEMRecipientInfo. يمكن استخدام أي KDF يأخذ المعاملات OSSL_KDF_PARAM_KEY و OSSL_KDF_PARAM_INFO ويكون معرفاً بالكامل باسمه أو معرفه الرقمي (OID)، على سبيل المثال HKDF-SHA256.

-recip_ukm
    يضبط هذا الخيار مواد مفاتيح المستخدم الاختيارية (UKM) لنوع KEMRecipientInfo بصيغة ست عشرية. ستُرمز UKM، جنبًا إلى جنب مع معلومات أخرى، في معامل OSSL_KDF_PARAM_INFO الخاص بـ KDF لنوع KEMRecipientInfo.

  خيارات التوقيع

-md digest
    خوارزمية الملخص المراد استخدامها عند التوقيع أو إعادة التوقيع. إذا لم تكن موجودة فتُستخدم خوارزمية الملخص المبدئية لمفتاح التوقيع (عادةً SHA-256).

-signer ملف
    شهادة توقيع. عند توقيع رسالة أو إعادة توقيعها، يمكن استخدام هذا الخيار مرات متعددة إذا طُلب أكثر من موقِّع واحد.

-certfile ملف
    يُسمح بتحديد شهادات إضافية. عند التوقيع، ستُضمَّن في الرسالة. وعند التحقق، سيُبحث فيها عن شهادات الموقِّع وتُستخدم لبناء السلسلة.

    يمكن أن يكون المدخل بتنسيق PEM، أو DER، أو PKCS#12.

-cades
    عند استخدامه مع -sign، يضيف سمة موقعة ESS signingCertificate أو ESS signingCertificateV2 إلى SignerInfo، من أجل جعل التوقيع متوافقًا مع متطلبات التوقيع الإلكتروني الأساسي CAdES (CAdES-BES).

-nodetach
    عند توقيع رسالة، استخدم التوقيع غير الشفاف: هذا الشكل أكثر مقاومة للترجمة بواسطة مرحلات البريد ولكنه لا يقرأ بواسطة وكلاء البريد الذين لا يدعمون S/MIME. بدون هذا الخيار، يُستخدم توقيع النص الصرف مع نوع MIME‏ multipart/signed.

-nocerts
    عند توقيع رسالة، تُدرج شهادة الموقع عادةً؛ وباستخدام هذا الخيار تُستثنى. سيؤدي هذا إلى تقليل حجم الرسالة الموقعة ولكن يجب أن يتوفر لدى الملحق نسخة من شهادة الموقع محليًا (تُمرر باستخدام الخيار -certfile على سبيل المثال).

-noattr
    عادةً عندما تُوقع رسالة، تُضمّن مجموعة من السمات التي تشمل وقت التوقيع والخوارزميات التناظرية المدعومة. مع هذا الخيار لا تُضمّن هذه السمات.

-nosmimecap
    استبعاد قائمة الخوارزميات المدعومة من السمات الموقعة، مع استمرار تضمين خيارات أخرى مثل نوع المحتوى ووقت التوقيع (اختياريًا).

-no_signing_time
    استبعاد وقت التوقيع من السمات الموقعة، مع استمرار تضمين الخيارات الأخرى مثل نوع المحتوى.

-receipt_request_all، -receipt_request_first
    لخيار -sign، يُضمّن طلب إيصال موقّع. يشير إلى أن الطلبات يجب أن تُقدم من جميع المستلمين أو مستلمي الطبقة الأولى (أولئك الذين أُرسل إليهم البريد مباشرة وليس من قائمة بريدية). يُتجاهل إذا ضُمّن -receipt_request_from.

-receipt_request_from عنوان_البريد_الإلكتروني
    لخيار -sign، يُضمّن طلب إيصال موقّع. يضيف عنوان بريد إلكتروني صريح يجب تقديم الإيصالات إليه.

-receipt_request_to عنوان_البريد_الإلكتروني
    يضيف عنوان بريد إلكتروني صريح يجب إرسال الإيصالات الموقعة إليه. هذا الخيار يجب توفيره إذا طُلب إيصال موقّع.

  خيارات الاستيثاق

-signer ملف
    إذا استوثق من رسالة بنجاح، فستُكتب شهادة (أو شهادات) الموقِّع في هذا الملف إذا كان الاستيثاق ناجحًا.

-content اسم_الملف
    يحدد هذا ملفًا يحتوي على المحتوى المنفصل للعمليات التي تأخذ مدخلات S/MIME، مثل أمر -verify. هذا متاح للاستخدام فقط إذا كانت بنية CMS تستخدم نموذج التوقيع المنفصل حيث لا يُضمّن المحتوى. سيتجاوز هذا الخيار أي محتوى إذا كان تنسيق المدخلات هو S/MIME وكان يستخدم نوع محتوى MIME‏ multipart/signed.

-no_content_verify
    لا تستوثق من تواقيع المحتوى الموقعة.

-no_attr_verify
    لا تستوثق من تواقيع السمات الموقعة.

-nosigs
    لا تتحقق من توقيع الرسالة.

-noverify
    لا تتحقق من شهادة الموقعين لرسالة موقعة.

-nointern
    عند التحقق من رسالة، يُبحث عادةً في الشهادات (إن وجدت) المضمنة في الرسالة عن شهادة التوقيع. مع هذا الخيار، تُستخدم الشهادات المحددة في خيار -certfile فقط. ومع ذلك، يمكن الاستمرار في استخدام الشهادات المقدمة كجهات تصديق (CAs) غير موثوقة.

-cades
    عند استخدامه مع -verify، يتطلب ويفحص ملخص شهادة الموقع. انظر قسم الملاحظات (NOTES) لمزيد من التفاصيل.

-verify_retcode
    اخرج بقيمة غير صفرية عند فشل الاستيثاق.

-CAfile ملف، -no-CAfile، -CApath دليل، -no-CApath، -CAstore معرف_المورد، -no-CAstore
    انظر "Trusted Certificate Options" في openssl-verification-options(1) للتفاصيل.

  خيارات المخرج

-keyid
    استخدم معرف مفتاح الموضوع (subject key identifier) لتحديد الشهادات بدلاً من اسم المصدر والرقم التسلسلي. الشهادة المزودة يجب أن تتضمن ملحق معرف مفتاح الموضوع. مدعوم بخيارات -sign و -encrypt.

-econtent_type نوع
    اضبط نوع المحتوى المغلّف إلى نوع، وإذا لم يُزود، فيُستخدم النوع Data. يمكن أن يكون معامل نوع أي اسم OID صالح بتنسيق نصي أو عددي.

-text
    يضيف هذا الخيار ترويسات MIME نصية صرفة (text/plain) إلى الرسالة المزودة عند التعمية أو التوقيع. وعند فك التعمية أو التحقق، فإنه يجرد الترويسات النصية: إذا لم تكن الرسالة التي فُكت تعميتها أو التي جرى التحقق منها من نوع MIME‏ text/plain، فسيحدث خطأ.

-certsout ملف
    أي شهادات محتواة في رسالة المدخلات تُكتب في ملف.

-to، -from، -subject
    ترويسات البريد الإلكتروني ذات الصلة. تُدرج هذه الترويسات خارج الجزء الموقع من الرسالة لذا يمكن إدراجها يدويًا. عند التوقيع، يتحقق العديد من عملاء بريد S/MIME من مطابقة عنوان البريد الإلكتروني في شهادة الموقع للعنوان المحدد في From:.

  خيارات الطباعة

-noout
    لعملية -cmsout، لا تخرج بنية CMS المعالجة. هذا مفيد إذا كانت صياغة بنية CMS قيد الفحص.

-print
    لعملية -cmsout، اطبع جميع حقول بنية CMS. يتضمن هذا -noout. هذا مفيد رئيس لأغراض الاختبار.

-nameopt خيار
    لعملية -cmsout عند استخدام خيار -print، يحدد خيارات الطباعة لحقول السلاسل. في معظم الحالات، تعد قيمة utf8 معقولة. انظر openssl-namedisplay-options(1) للتفاصيل.

-receipt_request_print
    لعملية -verify، اطبع محتويات أي طلبات إيصال موقعة.

  خيارات التحقق من الصلاحية

-allow_proxy_certs، -attime، -no_check_time، -check_ss_sig، -crl_check، -crl_check_all، -explicit_policy، -extended_crl، -ignore_critical، -inhibit_any، -inhibit_map، -no_alt_chains، -partial_chain، -policy، -policy_check، -policy_print، -purpose، -suiteB_128، -suiteB_128_only، -suiteB_192، -trusted_first، -use_deltas، -auth_level، -verify_depth، -verify_email، -verify_hostname، -verify_ip، -verify_name، -x509_strict -issuer_checks
    اضبط خيارات متنوعة للتحقق من سلسلة الشهادات. انظر "خيارات التحقق" في openssl-verification-options(1) للحصول على التفاصيل.

    تتسبب أي أخطاء في التحقق من الصلاحية في إنهاء الأمر.

ملاحظات
يجب إرسال رسالة MIME بدون أي أسطر فارغة بين الترويسات والمخرجات. ستضيف بعض برامج البريد سطرًا فارغًا آليًا. يعد تمرير البريد مباشرة إلى sendmail إحدى الطرق لتحقيق التنسيق الصحيح.

يجب أن تتضمن الرسالة الممررة المطلوب توقيعها أو تعميتها ترويسات MIME اللازمة وإلا فلن يعرضها العديد من عملاء S/MIME عرضًا صحيحًا (هذا إن عُرضت أصلًا). يمكنك استخدام الخيار -text لإضافة ترويسات نصية صرفة آليًا.

الرسالة "الموقعة والمشفرة" هي تلك التي تُشَفَّرُ فيها رسالة موقعة بالفعل. يمكن إنتاج ذلك عن طريق تشفير رسالة وُقِّعَت مسبقاً: راجع قسم الأمثلة.

يسمح هذا الإصدار من البرنامج بموقع واحد فقط لكل رسالة ولكنه سيتحقق من موقعين متعددين في الرسائل المستلمة. تتعطل بعض عملاء S/MIME إذا كانت الرسالة تحتوي على موقعين متعددين. من الممكن توقيع الرسائل "بالتوازي" عن طريق توقيع رسالة موقعة بالفعل.

يعكس الخياران -encrypt و -decrypt الاستخدام الشائع في عملاء S/MIME. من الناحية الدقيقة، تعالج هذه الخيارات بيانات CMS المغلفة: تُستخدم بيانات CMS المعماة لأغراض أخرى.

يستخدم الخيار -resign خلاصة رسالة موجودة عند إضافة موقع جديد. هذا يعني أن السمات يجب أن تكون موجودة في موقع واحد موجود على الأقل يستخدم نفس خلاصة الرسالة وإلا ستفشل هذه العملية.

يُمكّن الخياران -stream و -indef دعم الإدخال/الإخراج المتدفق. ونتيجة لذلك، يكون الترميز BER باستخدام ترميز مبني غير محدد الطول ولم يعد DER. التدفق مدعوم لعمليتي -encrypt و -sign إذا لم يكن المحتوى منفصلاً.

يُستخدم التدفق دائمًا لعملية -sign مع البيانات المنفصلة، ولكن بما أن المحتوى لم يعد جزءًا من بنية CMS، يظل الترميز DER.

إذا استخدم الخيار -decrypt بدون شهادة مستلم، فستُجرى محاولة لتحديد موقع المستلم عبر تجربة كل مستلم محتمل بالتناوب باستخدام المفتاح الخاص الممرر. لإحباط هجوم MMA (هجوم Bleichenbacher على حشوة RSA في PKCS #1 v1.5)، يُجرب جميع المستلمين سواء نجحوا أم لا، وإذا لم يتطابق أي مستلم تُفك تعمية الرسالة باستخدام مفتاح عشوائي مما سينتج عنه عادةً بيانات تالفة. يمكن استخدام الخيار -debug_decrypt لتعطيل الحماية من هجوم MMA وإرجاع خطأ إذا لم يُعثر على مستلم: يجب استخدام هذا الخيار بحذر. لوصف أوفى، انظر CMS_decrypt(3)).

توقيع كيدس الإلكتروني الأساسي (CADES-BES)
يحتوي توقيع كيدس الإلكتروني الأساسي (CAdES-BES)، كما هو محدد في المعيار الأوروبي ETSI EN 319 122-1 V1.1.1، على:

•   بيانات المستخدم الموقعة كما هي محددة في CMS (RFC 3852)؛

•   نوع المحتوى (Content-type) لقيمة EncapsulatedContentInfo التي يتم توقيعها؛

•   خلاصة الرسالة (Message-digest) لـ eContent OCTET STRING داخل encapContentInfo التي يتم توقيعها؛

•   سمة ESS signingCertificate أو ESS signingCertificateV2، كما هو محدد في خدمات الأمان المحسنة (ESS)، و RFC 2634 و RFC 5035. تسمح سمة ESS signingCertificate فقط بـ SHA-1 كخوارزمية خلاصة. بينما تسمح سمة ESS signingCertificateV2 بأي خوارزمية خلاصة.

•   قيمة التوقيع الرقمي المحسوبة على بيانات المستخدم، وعند وجودها، على السمات الموقعة.

    لاحظ أن الخيار -cades ينطبق على عمليتي -sign أو -verify. مع هذا الخيار، تتطلب عملية -verify أيضًا وجود سمة signingCertificate وتتحقق من مطابقة المعرفات المعطاة لسلسلة ثقة التحقق التي بُنيت أثناء عملية التحقق.

رموز الخروج

0   نُفذت العملية بنجاح تام.

1   حدث خطأ أثناء تحليل خيارات الأمر.

2   أحد ملفات المدخلات لا يمكن قراءته.

3   حدث خطأ أثناء إنشاء ملف CMS أو عند قراءة رسالة MIME.

4   حدث خطأ أثناء فك تعمية الرسالة أو الاستيثاق منها.

5   فُحصت الرسالة بشكل صحيح ولكن حدث خطأ أثناء كتابة شهادات الموقعين.

التوافق مع تنسيق PKCS#7
لا يمكن لـ openssl-smime(1) إلا معالجة تنسيق PKCS#7 القديم. يدعم openssl cms تنسيق Cryptographic Message Syntax. سيؤدي استخدام بعض الميزات إلى رسائل لا يمكن معالجتها بواسطة التطبيقات التي تدعم التنسيق القديم فقط. هذه الميزات مفصلة أدناه.

استخدام الخيار -keyid مع -sign أو -encrypt.

يستخدم خيار -outform PEM ترويسات مختلفة.

خيار -compress.

خيار -secretkey عند استخدامه مع -encrypt.

استخدام PSS مع -sign.

استخدام OAEP أو مفاتيح غير RSA مع -encrypt.

بالإضافة إلى ذلك، لا يمكن معالجة النوعين -EncryptedData_encrypt و -data_create بواسطة أمر openssl-smime(1) القديم.

أمثلة
أنشئ رسالة موقعة بنص واضح:

 openssl cms -sign -in message.txt -text -out mail.msg \
        -signer mycert.pem

أنشئ رسالة موقعة غير شفافة

 openssl cms -sign -in message.txt -text -out mail.msg -nodetach \
        -signer mycert.pem

أنشئ رسالة موقعة، وضمّن بعض الشهادات الإضافية واقرأ المفتاح الخاص من ملف آخر:

 openssl cms -sign -in in.txt -text -out mail.msg \
        -signer mycert.pem -inkey mykey.pem -certfile mycerts.pem

أنشئ رسالة موقعة بموقعين اثنين، باستخدام معرف المفتاح:

 openssl cms -sign -in message.txt -text -out mail.msg \
        -signer mycert.pem -signer othercert.pem -keyid

أرسل رسالة موقعة تحت يونكس مباشرة إلى sendmail، مع تضمين الترويسات:

 openssl cms -sign -in in.txt -text -signer mycert.pem \
        -from steve@openssl.org -to someone@somewhere \
        -subject "Signed message" | sendmail someone@somewhere

تحقق من رسالة واستخرج شهادة الموقع إذا نجح ذلك:

 openssl cms -verify -in mail.msg -signer user.pem -out signedtext.txt

أرسل بريدًا معمى باستخدام triple DES:

 openssl cms -encrypt -in in.txt -from steve@openssl.org \
        -to someone@somewhere -subject "Encrypted message" \
        -des3 user.pem -out mail.msg

توقيع وتعمية البريد:

 openssl cms -sign -in ml.txt -signer my.pem -text \
        | openssl cms -encrypt -out mail.msg \
        -from steve@openssl.org -to someone@somewhere \
        -subject "Signed and Encrypted message" -des3 user.pem

ملاحظة: أمر التشفير لا يتضمن خيار -text لأن الرسالة التي يجري تشفيرها تحتوي بالفعل على ترويسات MIME.

فك تعمية رسالة:

 openssl cms -decrypt -in mail.msg -recip mycert.pem -inkey key.pem

المخرج من توقيع نماذج نيتسكيب (Netscape) هو هيكل PKCS#7 بتنسيق التوقيع المنفصل. يمكنك استخدام هذا البرنامج لفحص التوقيع عن طريق لف أسطر الهيكل المرمز بـ base64 وإحاطته بـ:

 -----BEGIN PKCS7-----
 -----END PKCS7-----

واستخدام الأمر،

 openssl cms -verify -inform PEM -in signature.pem -content content.txt

بدلاً من ذلك، يمكنك فك ترميز التوقيع من base64 واستخدام

 openssl cms -verify -inform DER -in signature.der -content content.txt

أنشئ رسالة معمّاة باستخدام Camellia بـ 128 بت:

 openssl cms -encrypt -in plain.txt -camellia128 -out mail.msg cert.pem

أضف موقعًا إلى رسالة موجودة:

 openssl cms -resign -in mail.msg -signer newsign.pem -out mail2.msg

وقع رسالة باستخدام RSA-PSS:

 openssl cms -sign -in message.txt -text -out mail.msg \
        -signer mycert.pem -keyopt rsa_padding_mode:pss

أنشئ رسالة معماة باستخدام RSA-OAEP:

 openssl cms -encrypt -in plain.txt -out mail.msg \
        -recip cert.pem -keyopt rsa_padding_mode:oaep

استخدم SHA256 KDF مع شهادة ECDH:

 openssl cms -encrypt -in plain.txt -out mail.msg \
        -recip ecdhcert.pem -keyopt ecdh_kdf_md:sha256

اطبع بيانات CMS الثنائية الموقعة بتنسيق يمكن للبشر قراءته:

 openssl cms -in signed.cms -binary -inform DER -cmsout -print

العلل
محلل MIME ليس ذكيًا جدًا: يبدو أنه يتعامل مع معظم الرسائل التي ألقيتها عليه ولكنه قد يواجه صعوبة مع رسائل أخرى.

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

من الناحية المثالية، يجب صيانة قاعدة بيانات للشهادات لكل عنوان بريد إلكتروني.

لا يأخذ الكود حاليًا في الاعتبار خوارزميات التعمية المتناظرة المسموح بها كما هي ممررة في سمة SMIMECapabilities الموقعة. وهذا يعني أن على المستخدم إدراج خوارزمية التعمية الصحيحة يدويًا. ينبغي تخزين قائمة الشفرات المسموح بها في قاعدة بيانات واستخدام تلك القائمة فقط.

لا يُجرى فحص للإبطال على شهادة الموقع.

انظر أيضًا
ossl_store-file(7)

التاريخ
غُيرت شيفرة التعمية المبدئية من 3DES إلى AES-256 في OpenSSL 3.5.

أُضيف استخدام خيارات -signer المتعددة وأمر -resign لأول مرة في OpenSSL 1.0.0.

أُضيف خيار -keyopt في OpenSSL 1.0.2.

أُضيف دعم RSA-OAEP و RSA-PSS في OpenSSL 1.0.2.

أُضيف استخدام مفاتيح غير RSA مع -encrypt و -decrypt في OpenSSL 1.0.2.

أُضيف خيار -no_alt_chains في OpenSSL 1.0.2b.

أُضيف خيار -nameopt في OpenSSL 3.0.0.

خيار -engine أصبح مهجوراً في OpenSSL 3.0.

أُضيف خيار -digest في OpenSSL 3.2.

أُضيف الخياران -recip_kdf و -recip_ukm في OpenSSL 3.6.

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