table of contents
- trixie-backports 4.31.0-1~bpo13+1
- testing 4.31.0-1
- unstable 4.31.0-1
| OPENSSL-SMIME(1SSL) | OpenSSL | OPENSSL-SMIME(1SSL) |
الاسم¶
openssl-smime - أمر S/MIME
موجز¶
openssl smime [-help] [-encrypt] [-decrypt] [-sign] [-resign] [-verify] [-pk7out] [-binary] [-crlfeol] [-cipher] [-in ملف] [-certfile ملف] [-signer ملف] [-nointern] [-noverify] [-nochain] [-nosigs] [-nocerts] [-noattr] [-nodetach] [-nosmimecap] [-recip ملف] [-inform DER|PEM|SMIME] [-outform DER|PEM|SMIME] [-keyform DER|PEM|P12|ENGINE] [-passin وسيطة] [-inkey اسم_ملف|uri] [-out ملف] [-content ملف] [-to عنوان] [-from عنوان] [-subject موضوع] [-text] [-indef] [-noindef] [-stream] [-md ملخص] [-CAfile ملف] [-no-CAfile] [-CApath دليل] [-no-CApath] [-CAstore uri] [-no-CAstore] [-engine معرف] [-rand ملفات] [-writerand ملف] [-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] [-provider اسم] [-provider-path مسار] [-provparam [اسم:]مفتاح=قيمة] [-propquery propq] [-config ملف_إعدادات] شهادة_مستلم ...
الوصف¶
يعالج هذا الأمر بريد S/MIME. يمكنه تشفير وفك تشفير وتوقيع والتحقق من رسائل S/MIME.
الخيارات¶
توجد ستة خيارات عملية تحدد نوع العملية المراد تنفيذها: -encrypt و-decrypt و-sign و-resign و-verify و-pk7out. هذه الخيارات متعارضة. يختلف معنى الخيارات الأخرى وفقًا لنوع العملية.
- -help
- اطبع رسالة الاستخدام.
- -encrypt
- تشفير
البريد
لشهادات
المستلمين
المعطاة.
ملف
الإدخال هو
الرسالة
المراد
تشفيرها.
ملف
الإخراج هو
البريد
المشفر
بتنسيق MIME.
لاحظ أنه لا يُجرى فحص للإبطال لشهادة المستلم، لذا إذا جرى اختراق ذلك المفتاح، فقد يتمكن الآخرون من فك تشفير النص.
- -decrypt
- فك تشفير البريد باستخدام الشهادة والمفتاح الخاص المقدمين. يتوقع رسالة بريد مشفرة بتنسيق MIME لملف الإدخال. يُكتب البريد المفكوك تشفيره إلى ملف الإخراج.
- -sign
- توقيع البريد باستخدام الشهادة والمفتاح الخاص المقدمين. ملف الإدخال هو الرسالة المراد توقيعها. تُكتب الرسالة الموقعة بتنسيق MIME إلى ملف الإخراج.
- -resign
- إعادة توقيع رسالة: أخذ رسالة موجودة وموقع واحد أو أكثر من الموقعين الجدد.
- -verify
- التحقق من البريد الموقع. يتوقع رسالة بريد موقعة عند الإدخال ويخرج البيانات الموقعة. يُدعم كل من التوقيع بالنص الواضح والتوقيع المعتم.
- -pk7out
- يأخذ رسالة إدخال ويكتب بنية PKCS#7 مشفرة بتنسيق PEM.
- -in اسم_الملف
- رسالة الإدخال المراد تشفيرها أو توقيعها أو رسالة MIME المراد فك تشفيرها أو التحقق منها.
- -out اسم_الملف
- نص الرسالة الذي فُكت تعميته أو فُحص، أو مخرج رسالة تنسيق MIME التي وُقعت أو فُحصت.
- -inform DER|PEM|SMIME
- تنسيق الإدخال لبنية PKCS#7 (S/MIME) (إذا كانت تُقرأ)؛ المبدئي هو SMIME. انظر openssl-format-options(1) للتفاصيل.
- -outform DER|PEM|SMIME
- تنسيق الإخراج لبنية PKCS#7 (S/MIME) (إذا كانت تُكتب)؛ المبدئي هو SMIME. انظر openssl-format-options(1) للتفاصيل.
- -keyform DER|PEM|P12|ENGINE
- تنسيق المفتاح؛ غير محدد بشكل مبدئي. انظر openssl-format-options(1) للحصول على التفاصيل.
- -stream، -indef
- الخياران -stream و -indef متكافئان ويمكنان الإدخال/الإخراج المتدفق لعمليات الترميز. هذا يسمح بمعالجة البيانات في تمريرة واحدة دون الحاجة إلى الاحتفاظ بكامل المحتويات في الذاكرة، مما يدعم الملفات الكبيرة جدًا. يُضبط التدفق آليًا لتوقيع S/MIME مع البيانات المنفصلة إذا كانت صيغة المخرجات SMIME، وهو حاليًا معطل مبدئيًا لجميع العمليات الأخرى.
- -noindef
- عطّل الإدخال/الإخراج المتدفق حيث قد ينتج عنه ترميز مُنشأ بطول غير محدد. ليس لهذا الخيار أي تأثير حالياً. في المستقبل سيُفعل التدفق مبدئياً لجميع العمليات ذات الصلة وسيعطله هذا الخيار.
- -content اسم_الملف
- يحدد هذا ملفًا يحتوي على المحتوى المنفصل، هذا مفيد فقط مع الأمر -verify. يمكن استخدامه فقط إذا كانت بنية PKCS#7 تستخدم نموذج التوقيع المنفصل حيث لا يُضمن المحتوى. سيتجاوز هذا الخيار أي محتوى إذا كان تنسيق الإدخال هو S/MIME ويستخدم نوع محتوى MIME متعدد الأجزاء/موقع.
- -text
- يضيف هذا الخيار ترويسات MIME نصية صرفة (text/plain) إلى الرسالة المزودة عند التعمية أو التوقيع. وعند فك التعمية أو التحقق، فإنه يجرد الترويسات النصية: إذا لم تكن الرسالة التي فُكت تعميتها أو التي جرى التحقق منها من نوع MIME text/plain، فسيحدث خطأ.
- -md digest
- خوارزمية الملخص المراد استخدامها عند التوقيع أو إعادة التوقيع. إذا لم تكن موجودة، فسيُستخدم خوارزمية الملخص المبدئية لمفتاح التوقيع (عادةً SHA1).
- -تعمية
- خوارزمية
التشفير
المراد
استخدامها.
على سبيل
المثال، DES (56
بت) - -des، triple DES (168 بت)
- -des3، أو AES (256 بت) -
-aes256. يمكن
أيضًا
استخدام أي
اسم
خوارزمية
قياسي (كما
تستخدمه
دالة EVP_get_cipherbyname())
مسبوقًا
بشرطة، على
سبيل
المثال -aes-128-cbc.
انظر openssl-enc(1)
لقائمة
الشفرات
المدعومة
من إصدار OpenSSL
الخاص بك.
إذا لم يُحدد، يُستخدم AES-256-CBC كمبدئي. يُستخدم فقط مع -encrypt.
- -nointern
- عند التحقق من رسالة، يُبحث عادةً في الشهادات (إن وجدت) المضمنة في الرسالة عن شهادة التوقيع. مع هذا الخيار، تُستخدم الشهادات المحددة في خيار -certfile فقط. ومع ذلك، يمكن الاستمرار في استخدام الشهادات المقدمة كجهات تصديق (CAs) غير موثوقة.
- -noverify
- لا تتحقق من شهادة الموقعين لرسالة موقعة.
- -nochain
- لا تقم بالتحقق من سلسلة شهادات الموقعين؛ أي لا تستخدم الشهادات في الرسالة الموقعة كمراجع تصديق غير موثوقة.
- -nosigs
- لا تحاول التحقق من التوقيعات على الرسالة.
- -nocerts
- عند توقيع رسالة، يتم تضمين شهادة الموقع عادةً. مع هذا الخيار يتم استبعادها. سيقلل هذا من حجم الرسالة الموقعة، لكن يجب أن يكون لدى المدقق نسخة من شهادة الموقع متاحة محلياً (ممررة باستخدام خيار -certfile مثلاً).
- -noattr
- عادةً، عند توقيع رسالة، تُدرج مجموعة من السمات التي تتضمن وقت التوقيع والخوارزميات المتناظرة المدعومة. مع هذا الخيار لا تُدرج.
- -nodetach
- عند توقيع رسالة استخدم التوقيع المعتم. هذا الشكل أكثر مقاومة للترجمة بواسطة مرحلات البريد لكن لا يمكن قراءته بواسطة وكلاء البريد الذين لا يدعمون S/MIME. بدون هذا الخيار يُستخدم التوقيع بنص واضح مع نوع MIME multipart/signed.
- -nosmimecap
- عند توقيع رسالة، لا تُدرج سمة SMIMECapabilities.
- -binary
- عادةً ما تُحول رسالة المدخلات إلى التنسيق "القياسي" الذي يستخدم فعليًا CR و LF كنهاية للسطر: كما هو مطلوب في مواصفة S/MIME. عند وجود هذا الخيار لا يحدث أي تحويل. وهذا مفيد عند التعامل مع البيانات الثنائية التي قد لا تكون بتنسيق MIME.
- -crlfeol
- عادةً ما يستخدم ملف المخرجات محرف LF واحدًا كنهاية للسطر. عند وجود هذا الخيار يُستخدم CRLF بدلاً من ذلك.
- -certfile ملف
- يُسمح
بتحديد
شهادات
إضافية. عند
التوقيع،
ستُضمَّن
في الرسالة.
وعند
التحقق،
سيُبحث
فيها عن
شهادات
الموقِّع
وتُستخدم
لبناء
السلسلة.
يمكن أن يكون المدخل بتنسيق PEM، أو DER، أو PKCS#12.
- -signer ملف
- شهادة توقيع عند توقيع أو إعادة توقيع رسالة، يمكن استخدام هذا الخيار عدة مرات إذا كان مطلوبًا أكثر من موقع واحد. إذا كانت الرسالة قيد التحقق فستُكتب شهادات الموقعين إلى هذا الملف إذا كان التحقق ناجحًا.
- -recip ملف
- شهادة المستلمين عند فك تشفير رسالة. يجب أن تطابق هذه الشهادة أحد مستلمي الرسالة وإلا يحدث خطأ.
- -inkey اسم_الملف|معرف_مورد
- المفتاح الخاص المراد استخدامه عند التوقيع أو فك التعمية. يجب أن يطابق الشهادة المقابلة. إذا لم يُحدد هذا الخيار، فيجب تضمين المفتاح الخاص في ملف الشهادة المحدد مع ملف -recip أو -signer. عند التوقيع، يمكن استخدام هذا الخيار عدة مرات لتحديد مفاتيح متتالية.
- -passin المعطى
- مصدر كلمة مرور المفتاح الخاص. لمزيد من المعلومات حول تنسيق arg انظر openssl-passphrase-options(1).
- -to، -from، -subject
- ترويسات البريد ذات الصلة. يتم تضمين هذه خارج الجزء الموقع من الرسالة لذا يمكن تضمينها يدوياً. إذا تم التوقيع، فإن العديد من عملاء البريد S/MIME يتحققون من تطابق عنوان البريد الإلكتروني لشهادة الموقع مع ذلك المحدد في عنوان From:.
- -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)
للحصول على
التفاصيل.
تتسبب أي أخطاء في التحقق في خروج الأمر.
- -CAfile ملف، -no-CAfile، -CApath دليل، -no-CApath، -CAstore معرف_المورد، -no-CAstore
- انظر "Trusted Certificate Options" في openssl-verification-options(1) للتفاصيل.
- -engine id
- انظر "خيارات المحرك" في openssl(1). هذا الخيار مهجور.
- -rand ملفات، -writerand ملف
- انظر "خيارات الحالة العشوائية" في openssl(1) للتفاصيل.
- -provider الاسم
- -provider-path المسار
- -provparam [الاسم:]المفتاح=القيمة
- -propquery propq
- انظر "خيارات المزود" في openssl(1)، و provider(7)، و property(7).
- -config ملف_الضبط
- انظر "Configuration Option" في openssl(1).
- recipcert ...
- شهادة واحدة أو أكثر لمستلمي الرسالة، تُستخدم عند تشفير رسالة.
ملاحظات¶
يجب إرسال رسالة MIME بدون أي أسطر فارغة بين الترويسات والمخرجات. ستضيف بعض برامج البريد سطرًا فارغًا آليًا. يعد تمرير البريد مباشرة إلى sendmail إحدى الطرق لتحقيق التنسيق الصحيح.
يجب أن تتضمن الرسالة الممررة المطلوب توقيعها أو تعميتها ترويسات MIME اللازمة وإلا فلن يعرضها العديد من عملاء S/MIME عرضًا صحيحًا (هذا إن عُرضت أصلًا). يمكنك استخدام الخيار -text لإضافة ترويسات نصية صرفة آليًا.
الرسالة "الموقعة والمشفرة" هي تلك التي تُشَفَّرُ فيها رسالة موقعة بالفعل. يمكن إنتاج ذلك عن طريق تشفير رسالة وُقِّعَت مسبقاً: راجع قسم الأمثلة.
يسمح هذا الإصدار من البرنامج بموقع واحد فقط لكل رسالة ولكنه سيتحقق من موقعين متعددين في الرسائل المستلمة. تتعطل بعض عملاء S/MIME إذا كانت الرسالة تحتوي على موقعين متعددين. من الممكن توقيع الرسائل "بالتوازي" عن طريق توقيع رسالة موقعة بالفعل.
الخياران -encrypt و -decrypt يعكسان الاستخدام الشائع في عملاء S/MIME. بالمعنى الدقيق، يعالجان بيانات PKCS#7 المغلفة: تُستخدم بيانات PKCS#7 المشفرة لأغراض أخرى.
يستخدم الخيار -resign خلاصة رسالة موجودة عند إضافة موقع جديد. هذا يعني أن السمات يجب أن تكون موجودة في موقع واحد موجود على الأقل يستخدم نفس خلاصة الرسالة وإلا ستفشل هذه العملية.
يُمكّن الخياران -stream و -indef دعم الإدخال/الإخراج المتدفق. ونتيجة لذلك، يكون الترميز BER باستخدام ترميز مبني غير محدد الطول ولم يعد DER. التدفق مدعوم لعمليتي -encrypt و -sign إذا لم يكن المحتوى منفصلاً.
يُستخدم البث دائمًا لعملية -sign مع البيانات المنفصلة لكن نظرًا لأن المحتوى لم يعد جزءًا من بنية PKCS#7 يبقى الترميز DER.
رموز الخروج¶
- 0
- نُفذت العملية بنجاح تام.
- 1
- حدث خطأ أثناء تحليل خيارات الأمر.
- 2
- أحد ملفات المدخلات لا يمكن قراءته.
- 3
- حدث خطأ أثناء إنشاء ملف PKCS#7 أو عند قراءة رسالة MIME.
- 4
- حدث خطأ أثناء فك تعمية الرسالة أو الاستيثاق منها.
- 5
- فُحصت الرسالة بشكل صحيح ولكن حدث خطأ أثناء كتابة شهادات الموقعين.
أمثلة¶
أنشئ رسالة موقعة بنص واضح:
openssl smime -sign -in message.txt -text -out mail.msg \
-signer mycert.pem
إنشاء رسالة موقعة معتمة:
openssl smime -sign -in message.txt -text -out mail.msg -nodetach \
-signer mycert.pem
أنشئ رسالة موقعة، وضمّن بعض الشهادات الإضافية واقرأ المفتاح الخاص من ملف آخر:
openssl smime -sign -in in.txt -text -out mail.msg \
-signer mycert.pem -inkey mykey.pem -certfile mycerts.pem
إنشاء رسالة موقعة مع موقعين:
openssl smime -sign -in message.txt -text -out mail.msg \
-signer mycert.pem -signer othercert.pem
أرسل رسالة موقعة تحت يونكس مباشرة إلى sendmail، مع تضمين الترويسات:
openssl smime -sign -in in.txt -text -signer mycert.pem \
-from steve@openssl.org -to someone@somewhere \
-subject "Signed message" | sendmail someone@somewhere
تحقق من رسالة واستخرج شهادة الموقع إذا نجح ذلك:
openssl smime -verify -in mail.msg -signer user.pem -out signedtext.txt
أرسل بريدًا معمى باستخدام triple DES:
openssl smime -encrypt -in in.txt -out mail.msg -from steve@openssl.org \
-to someone@somewhere -subject "Encrypted message" \
-des3 user.pem
توقيع وتعمية البريد:
openssl smime -sign -in ml.txt -signer my.pem -text \
| openssl smime -encrypt -out mail.msg \
-from steve@openssl.org -to someone@somewhere \
-subject "Signed and Encrypted message" -des3 user.pem
ملاحظة: أمر التشفير لا يتضمن خيار -text لأن الرسالة التي يجري تشفيرها تحتوي بالفعل على ترويسات MIME.
فك تشفير البريد:
openssl smime -decrypt -in mail.msg -recip mycert.pem -inkey key.pem
المخرج من توقيع نماذج نيتسكيب (Netscape) هو هيكل PKCS#7 بتنسيق التوقيع المنفصل. يمكنك استخدام هذا البرنامج لفحص التوقيع عن طريق لف أسطر الهيكل المرمز بـ base64 وإحاطته بـ:
-----BEGIN PKCS7----- -----END PKCS7-----
وباستخدام الأمر:
openssl smime -verify -inform PEM -in signature.pem -content content.txt
بدلاً من ذلك، يمكنك فك ترميز التوقيع base64 واستخدام:
openssl smime -verify -inform DER -in signature.der -content content.txt
أنشئ رسالة معمّاة باستخدام Camellia بـ 128 بت:
openssl smime -encrypt -in plain.txt -camellia128 -out mail.msg cert.pem
أضف موقعًا إلى رسالة موجودة:
openssl smime -resign -in mail.msg -signer newsign.pem -out mail2.msg
العلل¶
محلل MIME ليس ذكيًا جدًا: يبدو أنه يتعامل مع معظم الرسائل التي ألقيتها عليه ولكنه قد يواجه صعوبة مع رسائل أخرى.
سيقوم الكود حاليًا فقط بكتابة شهادة الموقع إلى ملف: إذا كان للموقع شهادة تشفير منفصلة، فيجب استخراجها يدويًا. ينبغي أن تتوفر بعض القواعد الاستدلالية التي تحدد شهادة التشفير الصحيحة.
من الناحية المثالية، يجب صيانة قاعدة بيانات للشهادات لكل عنوان بريد إلكتروني.
لا يلتفت الكود حالياً إلى خوارزميات التشفير المتناظر المسموح بها كما هي مقدمة في السمة الموقعة SMIMECapabilities. هذا يعني أن المستخدم يجب أن يدرج يدوياً خوارزمية التشفير الصحيحة. ينبغي تخزين قائمة الشفرات المسموح بها في قاعدة بيانات واستخدامها فقط.
لا يُجرى فحص للإبطال على شهادة الموقع.
يمكن للكود الحالي معالجة رسائل S/MIME v2 فقط، وقد تسبب هياكل S/MIME v3 الأكثر تعقيداً أخطاء في التحليل.
انظر أيضًا¶
التاريخ¶
غُيرت شيفرة التعمية المبدئية من 3DES إلى AES-256 في OpenSSL 3.5.
تمت إضافة استخدام خيارات -signer المتعددة وأمر -resign لأول مرة في OpenSSL 1.0.0
أُضيف الخيار -no_alt_chains في OpenSSL 1.1.0.
خيار -engine أصبح مهجوراً في OpenSSL 3.0.
حقوق النسخ¶
حقوق النشر 2000-2025 لمؤلفي مشروع 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 |