| OPENSSL-CMS(1ssl) | OpenSSL | 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 filename
- رسالة المدخل المراد تعميتها أو توقيعها أو الرسالة المراد فك تعميتها أو الاستيثاق منها.
- -out filename
- نص الرسالة الذي فُكت تعميته أو فُحص، أو مخرج رسالة تنسيق 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 name
- -provider-path path
- -provparam [name:]key=value
- -propquery propq
- انظر "خيارات المزود" في openssl(1)، و provider(7)، و property(7).
- -rand files، -writerand file
- انظر "خيارات الحالة العشوائية" في 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 قيد الفحص.
- لعملية -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 على حشوة PKCS #1 v1.5 RSA)، تُجرب جميع المستلمين سواء نجحوا أم لا، وإذا لم يتطابق أي مستلم، تُجرى "فك تعمية" الرسالة باستخدام مفتاح عشوائي سيخرج عادةً نفايات. يمكن استخدام الخيار -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 الموقعة. وهذا يعني أن على المستخدم تضمين خوارزمية التعمية الصحيحة يدويًا. يجب أن يخزن قائمة الشيفرات المسموح بها في قاعدة بيانات ويستخدمها فقط.
لا يُجرى فحص للإبطال على شهادة الموقع.
انظر أيضًا
التاريخ
غُيرت شيفرة التعمية المبدئية من 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 أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.
إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.
| 7 أبريل 2026 | 3.6.2 |