| OPENSSL-FIPSINSTALL(1ssl) | OpenSSL | OPENSSL-FIPSINSTALL(1ssl) |
نام (NAME)
openssl-fipsinstall - انجام نصب پیکربندی FIPS
خلاصه دستور (SYNOPSIS)
openssl fipsinstall [-help] [-in configfilename] [-out configfilename] [-module modulefilename] [-provider_name providername] [-section_name sectionname] [-verify] [-mac_name macname] [-macopt nm:v] [-noout] [-quiet] [-pedantic] [-no_conditional_errors] [-no_security_checks] [-hmac_key_check] [-kmac_key_check] [-ems_check] [-no_drbg_truncated_digests] [-signature_digest_check] [-hkdf_digest_check] [-tls13_kdf_digest_check] [-tls1_prf_digest_check] [-sshkdf_digest_check] [-sskdf_digest_check] [-x963kdf_digest_check] [-dsa_sign_disabled] [-no_pbkdf2_lower_bound_check] [-no_short_mac] [-tdes_encrypt_disabled] [-rsa_pkcs15_padding_disabled] [-rsa_pss_saltlen_check] [-rsa_sign_x931_disabled] [-hkdf_key_check] [-kbkdf_key_check] [-tls13_kdf_key_check] [-tls1_prf_key_check] [-sshkdf_key_check] [-sskdf_key_check] [-x963kdf_key_check] [-x942kdf_key_check] [-ecdh_cofactor_check] [-self_test_onload] [-self_test_oninstall] [-corrupt_desc selftest_description] [-corrupt_type selftest_type] [-config parent_config]
توضیحات (DESCRIPTION)
این دستور برای تولید یک فایل پیکربندی ماژول FIPS استفاده میشود. این فایل پیکربندی میتواند هر بار که یک ماژول FIPS بارگذاری میشود، به منظور ارسال دادهها به خودآزماییهای ماژول FIPS مورد استفاده قرار گیرد. ماژول FIPS همواره MAC خود را تأیید میکند، اما بهطور اختیاری تنها لازم است KATها (خودآزماییهای با پاسخ معلوم) را یکبار در زمان نصب اجرا کند.
فایل پیکربندی تولیدشده شامل موارد زیر است:
- - یک MAC از فایل ماژول FIPS.
- - یک نشانگر وضعیت آزمایش.
- این نشان میدهد که آیا خودآزماییهای با پاسخ معلوم (KATها) با موفقیت اجرا شدهاند یا خیر.
- - یک MAC از نشانگر وضعیت.
- - یک کنترل برای خطاهای خودآزمایی مشروط.
- بهطور پیشفرض، اگر یک آزمایش پیوسته (مثلاً آزمایش جفتکلید) ناموفق باشد، ماژول FIPS وارد وضعیت خطا میشود و پس از این نقطه، هیچ سرویس یا الگوریتم رمزنگاری قابل دسترسی نخواهد بود. مقدار پیشفرض '1' باعث میشود ماژول FIPS وارد وضعیت خطا شود. اگر مقدار '0' باشد، ماژول وارد وضعیت خطا نخواهد شد. صرفنظر از اینکه وضعیت خطا وارد شود یا خیر، عملیات فعلی (مثلاً تولید کلید) با خطا مواجه خواهد شد. در صورتی که ماژول وارد وضعیت خطا نشود، کاربر مسئول تکرار عملیات است.
- - یک کنترل برای مشخص کردن انجام بررسیهای امنیتی زمان اجرا.
- این نشان میدهد که آیا بررسیهای زمان اجرا مربوط به اعمال پارامترهای امنیتی مانند حداقل استحکام امنیتی کلیدها و نامهای منحنی تأییدشده استفاده میشوند یا خیر. مقدار پیشفرض '1' بررسیها را انجام میدهد. اگر مقدار '0' باشد، بررسیها انجام نمیشوند و انطباق با FIPS باید با رویههای مستندشده در خطمشی امنیتی مربوطه انجام گیرد.
این فایل در fips_config(5) توضیح داده شده است.
گزینهها (OPTIONS)
- -help
- چاپ یک پیام راهنمای نحوه استفاده.
- -module filename
- نام فایل ماژول FIPS برای انجام بررسی یکپارچگی روی آن. مسیر ارائهشده در نام فایل برای بارگذاری ماژول در زمان فعالسازی آن استفاده میشود، و این مقدار بر متغیر محیطی OPENSSL_MODULES برتری دارد.
- -out configfilename
- نام فایل برای نوشتن دادههای پیکربندی در خروجی؛ پیشفرض خروجی استاندارد است.
- -in configfilename
- نام فایل ورودی برای بارگذاری دادههای پیکربندی از آن. در صورت مشخص شدن گزینه -verify باید استفاده شود.
- -verify
- تأیید اینکه فایل پیکربندی ورودی حاوی اطلاعات صحیح است.
- -provider_name providername
- نام ارائهدهنده در داخل فایل پیکربندی. مقدار پیشفرض "fips" است.
- -section_name sectionname
- نام بخش در داخل فایل پیکربندی. مقدار پیشفرض "fips_sect" است.
- -mac_name name
- نام یک الگوریتم MAC پشتیبانیشده را که مورد استفاده قرار خواهد گرفت مشخص میکند. سازوکارهای MAC موجود به گزینههای استفادهشده هنگام ساخت OpenSSL بستگی دارد. برای مشاهده فهرست MACهای پشتیبانیشده، از دستور "openssl list -mac-algorithms" استفاده کنید. مقدار پیشفرض HMAC است.
- -macopt nm:v
- گزینهها را به الگوریتم MAC ارسال میکند. فهرست کاملی از کنترلها را میتوان در مستندات پیادهسازی EVP_MAC یافت. رشتههای کنترلی متداول مورداستفاده برای این دستور عبارتند از:
- key:string
- کلید MAC را به صورت یک رشته حرفیعددی مشخص میکند (تنها زمانی استفاده شود که کلید فقط شامل نویسههای قابلچاپ باشد). طول رشته باید با محدودیتهای الگوریتم MAC مطابقت داشته باشد. برای هر الگوریتم MAC باید یک کلید مشخص شود. اگر کلیدی ارائه نشود، مقدار پیشفرضی که در هنگام پیکربندی OpenSSL تعیین شده بود استفاده میشود.
- hexkey:string
- کلید MAC را در قالب هگزادسیمال مشخص میکند (دو رقم هگزادسیمال به ازای هر بایت). طول کلید باید با محدودیتهای الگوریتم MAC مطابقت داشته باشد. برای هر الگوریتم MAC باید یک کلید مشخص شود. اگر کلیدی ارائه نشود، مقدار پیشفرضی که در هنگام پیکربندی OpenSSL تعیین شده بود استفاده میشود.
- digest:string
- توسط HMAC به عنوان یک رشته حرفیعددی استفاده میشود (تنها زمانی استفاده شود که کلید فقط شامل نویسههای قابلچاپ باشد). طول رشته باید با محدودیتهای الگوریتم MAC مطابقت داشته باشد. برای مشاهده فهرست دایجستهای پشتیبانیشده، از دستور "openssl list -digest-commands" استفاده کنید. دایجست پیشفرض SHA-256 است.
- -noout
- غیرفعال کردن ثبت گزارشهای خودآزماییها.
- -pedantic
- پیکربندی ماژول به گونهای که بهجای سازگاری رو به عقب، کاملاً و با دقت منطبق بر FIPS باشد. این گزینه خطاهای مشروط، بررسیهای امنیتی و غیره را فعال میکند. توجه داشته باشید که هر گزینهٔ پیکربندی قبلی بازنویسی خواهد شد و هر گزینهٔ پیکربندی بعدی که با انطباق FIPS مغایرت داشته باشد، منجر به خطا میشود.
- -no_conditional_errors
- ماژول را طوری پیکربندی میکند که در صورت شکست یک خودآزمایی مشروط، همانطور که در بالا توضیح داده شد وارد وضعیت خطا نشود.
- -no_security_checks
- ماژول را
طوری
پیکربندی
میکند که
بررسیهای
امنیتی
زمان اجرا
را
همانطور
که در بالا
شرح داده شد
انجام ندهد.
فعال کردن گزینهٔ پیکربندی "no-fips-securitychecks" راه دیگری برای غیرفعال کردن این بررسی در زمان کامپایل فراهم میکند.
- -ems_check
- ماژول را طوری پیکربندی میکند که هنگام استفاده از الگوریتم TLS1_PRF KDF، بررسی زمان اجرای Extended Master Secret (EMS) فعال شود. این بررسی بهطور پیشفرض غیرفعال است. برای اطلاعات مربوط به EMS به RFC 7627 مراجعه کنید.
- -no_short_mac
- ماژول را طوری پیکربندی میکند که خروجیهای کوتاه MAC را مجاز نداند. برای جزئیات به SP 800-185 8.4.2 و FIPS 140-3 ID C.D مراجعه کنید.
- -hmac_key_check
- ماژول را طوری پیکربندی میکند که هنگام استفاده از HMAC، اندازه کلیدهای کوچک را مجاز نداند. برای جزئیات به SP 800-131Ar2 مراجعه کنید.
- -kmac_key_check
- ماژول را طوری پیکربندی میکند که هنگام استفاده از KMAC، اندازه کلیدهای کوچک را مجاز نداند. برای جزئیات به SP 800-131Ar2 مراجعه کنید.
- -no_drbg_truncated_digests
- ماژول را طوری پیکربندی میکند که اجازه استفاده از دایجستهای کوتاهشده را همراه با Hash DRBG و HMAC DRBG ندهد. برای جزئیات به FIPS 140-3 IG D.R مراجعه کنید.
- -signature_digest_check
- ماژول را طوری پیکربندی میکند که الگوریتمهای امضا را ملزم به استفاده از دایجستهایی کند که صراحتاً توسط استانداردهای مختلف مجاز شمرده شدهاند.
- -hkdf_digest_check
- این گزینه منسوخ شده است.
- -tls13_kdf_digest_check
- ماژول را طوری پیکربندی میکند که هنگام اشتقاق کلید توسط TLS13 KDF، بررسی زمان اجرای دایجست فعال شود. برای جزئیات به RFC 8446 مراجعه کنید.
- -tls1_prf_digest_check
- ماژول را طوری پیکربندی میکند که هنگام اشتقاق کلید توسط TLS_PRF، بررسی زمان اجرای دایجست فعال شود. برای جزئیات به NIST SP 800-135r1 مراجعه کنید.
- -sshkdf_digest_check
- ماژول را طوری پیکربندی میکند که هنگام اشتقاق کلید توسط SSHKDF، بررسی زمان اجرای دایجست فعال شود. برای جزئیات به NIST SP 800-135r1 مراجعه کنید.
- -sskdf_digest_check
- این گزینه منسوخ شده است.
- -x963kdf_digest_check
- ماژول را طوری پیکربندی میکند که هنگام اشتقاق کلید توسط X963KDF، بررسی زمان اجرای دایجست فعال شود. برای جزئیات به NIST SP 800-131Ar2 مراجعه کنید.
- -dsa_sign_disabled
- ماژول را طوری پیکربندی میکند که امضای DSA مجاز نباشد (تأیید امضای DSA همچنان مجاز است). برای جزئیات به FIPS 140-3 IG C.K مراجعه کنید.
- -tdes_encrypt_disabled
- ماژول را طوری پیکربندی میکند که رمزگذاری Triple-DES را مجاز نداند. رمزگشایی Triple-DES برای اهداف سازگاری قدیمی همچنان مجاز است. برای جزئیات به SP800-131Ar2 مراجعه کنید.
- -rsa_pkcs15_padding_disabled
- ماژول را طوری پیکربندی میکند که استفاده از لایهگذاری نسخه 1.5 PKCS#1 همراه با RSA برای انتقال کلید و توافق کلید مجاز نباشد. برای جزئیات به ویرایش دوم NIST SP 800-131A مراجعه کنید.
- -rsa_pss_saltlen_check
- ماژول را طوری پیکربندی میکند که هنگام تولید یا تأیید امضای RSA-PSS، بررسی زمان اجرای طول سالت فعال شود. برای جزئیات به FIPS 186-5 5.4 (g) مراجعه کنید.
- -rsa_sign_x931_disabled
- ماژول را طوری پیکربندی میکند که هنگام امضا با RSA، استفاده از لایهگذاری X9.31 مجاز نباشد. برای جزئیات به FIPS 140-3 IG C.K مراجعه کنید.
- -hkdf_key_check
- ماژول را طوری پیکربندی میکند که هنگام اشتقاق کلید توسط HKDF، بررسی زمان اجرای کوتاهی کلید اشتقاق فعال شود. برای جزئیات به NIST SP 800-131Ar2 مراجعه کنید.
- -kbkdf_key_check
- ماژول را طوری پیکربندی میکند که هنگام اشتقاق کلید توسط KBKDF، بررسی زمان اجرای کوتاهی کلید اشتقاق فعال شود. برای جزئیات به NIST SP 800-131Ar2 مراجعه کنید.
- -tls13_kdf_key_check
- ماژول را طوری پیکربندی میکند که هنگام اشتقاق کلید توسط TLS13 KDF، بررسی زمان اجرای کوتاهی کلید اشتقاق فعال شود. برای جزئیات به NIST SP 800-131Ar2 مراجعه کنید.
- -tls1_prf_key_check
- ماژول را طوری پیکربندی میکند که هنگام اشتقاق کلید توسط TLS_PRF، بررسی زمان اجرای کوتاهی کلید اشتقاق فعال شود. برای جزئیات به NIST SP 800-131Ar2 مراجعه کنید.
- -sshkdf_key_check
- ماژول را طوری پیکربندی میکند که هنگام اشتقاق کلید توسط SSHKDF، بررسی زمان اجرای کوتاهی کلید اشتقاق فعال شود. برای جزئیات به NIST SP 800-131Ar2 مراجعه کنید.
- -sskdf_key_check
- ماژول را طوری پیکربندی میکند که هنگام اشتقاق کلید توسط SSKDF، بررسی زمان اجرای کوتاهی کلید اشتقاق فعال شود. برای جزئیات به NIST SP 800-131Ar2 مراجعه کنید.
- -x963kdf_key_check
- ماژول را طوری پیکربندی میکند که هنگام اشتقاق کلید توسط X963KDF، بررسی زمان اجرای کوتاهی کلید اشتقاق فعال شود. برای جزئیات به NIST SP 800-131Ar2 مراجعه کنید.
- -x942kdf_key_check
- ماژول را طوری پیکربندی میکند که هنگام اشتقاق کلید توسط X942KDF، بررسی زمان اجرای کوتاهی کلید اشتقاق فعال شود. برای جزئیات به NIST SP 800-131Ar2 مراجعه کنید.
- -no_pbkdf2_lower_bound_check
- ماژول را طوری پیکربندی میکند که بررسی حد پایین زمان اجرا را برای PBKDF2 انجام ندهد. برای جزئیات به NIST SP 800-132 مراجعه کنید.
- -ecdh_cofactor_check
- ماژول را طوری پیکربندی میکند که بررسی زمان اجرای استفادهٔ ECDH از مقدار کوفاکتور منحنیهای بیضوی هنگام اشتقاق کلید فعال شود. این گزینه فقط بر منحنیهای 'B' و 'K' تأثیر میگذارد. برای جزئیات به بخش 5.7.1.2 از SP 800-56A r3 مراجعه کنید.
- -self_test_onload
- دو فیلد مربوط به «test status indicator» و «MAC status indicator» در فایل پیکربندی خروجی نوشته نمیشوند. بدون این فیلدها، خودآزماییهای KAT هر بار که ماژول بارگذاری میشود اجرا خواهند شد. این گزینه میتواند برای کامپایل متقابل (cross compiling) استفاده شود، زیرا خودآزماییها باید حداقل یکبار روی هر ماشین مقصد اجرا شوند. هنگامی که خودآزماییها روی ماشین مقصد اجرا شدند، کاربر احتمالاً میتواند آن ۲ فیلد را با استفاده از سازوکار دیگری به پیکربندی اضافه کند. این گزینه برای هر ارائهدهندهٔ OpenSSL FIPS 140-2 (نسخه OpenSSL 3.0.X) بهطور پیشفرض 0 است، و برای ارائهدهندهٔ OpenSSL FIPS 140-3 کاربردی ندارد، زیرا دیگر مجاز نیست.
- -self_test_oninstall
- برعکس گزینهٔ -self_test_onload. دو فیلد مربوط به «test status indicator» و «MAC status indicator» در فایل پیکربندی خروجی نوشته میشوند. این فیلد برای ارائهدهندهٔ OpenSSL FIPS 140-3 کاربردی ندارد، زیرا دیگر مجاز نیست.
- -quiet
- عدم نمایش پیامهای موفقیت/شکست (pass/fail). این گزینه متضمن -noout است.
- -corrupt_desc selftest_description, -corrupt_type selftest_type
- گزینههای تخریب میتوانند برای آزمایش شکست یک یا چند خودآزمایی بر اساس نام استفاده شوند. از هر یک از این دو گزینه یا هر دو میتوان برای انتخاب آزمایشها جهت تخریب استفاده کرد. برای مقادیری که میتوانند استفاده شوند، به مدخلهای مربوط به st-desc و st-type در OSSL_PROVIDER-FIPS(7) مراجعه کنید.
- -config parent_config
- بررسی اینکه آیا یک ارائهدهندهٔ FIPS میتواند از فایل پیکربندی مشخصشده بارگذاری شود یا خیر. فراخوانی پیشین این برنامه باید دادههای پیکربندی اضافی را که توسط فایل پیکربندی پایهٔ "parent_config" فراخوانی میشوند تولید کرده باشد. برای اطلاعات بیشتر در مورد نحوه راهاندازی یک بخش ارائهدهنده، به config(5) مراجعه کنید. در صورت استفاده از '-config'، تمام گزینههای دیگر نادیده گرفته میشوند.
نکات (NOTES)
نتایج خودآزماییها بهطور پیشفرض ثبت میشوند، مگر اینکه گزینههای -quiet و -noout مشخص نشده باشند، یا اینکه یکی از گزینههای -corrupt_desc یا -corrupt_type استفاده شده باشد. اگر فایل پیکربندی پایه طوری تنظیم شده باشد که ماژول fips را بهطور خودکار بارگذاری کند، ماژول fips پیش از آنکه برنامهٔ fipsinstall فرصتی برای راهاندازی کالبک خودآزمایی خود داشته باشد، بارگذاری شده و خودآزمایی میشود. در نتیجه، خروجی خودآزمایی و گزینههای -corrupt_desc و -corrupt_type نادیده گرفته خواهند شد. برای استفادهٔ عادی، فایل پیکربندی پایه هنگام تولید فایل پیکربندی fips باید از ارائهدهندهٔ پیشفرض استفاده کند.
گزینهٔ -self_test_oninstall اضافه شد و گزینهٔ -self_test_onload در OpenSSL 3.1 به عنوان پیشفرض قرار گرفت.
این دستور و تمامی گزینههای باقیمانده در OpenSSL 3.0 اضافه شدند.
مثالها (EXAMPLES)
محاسبهٔ mac ماژول FIPS با نام fips.so، اجرای خودآزمایی FIPS برای ماژول، و ذخیرهٔ فایل پیکربندی fips.cnf:
openssl fipsinstall -module ./fips.so -out fips.cnf -provider_name fips
تأیید اینکه فایل پیکربندی fips.cnf حاوی اطلاعات صحیح است:
openssl fipsinstall -module ./fips.so -in fips.cnf -provider_name fips -verify
تخریب هرگونه خودآزمایی که دارای شرح "SHA1" باشد:
openssl fipsinstall -module ./fips.so -out fips.cnf -provider_name fips \
-corrupt_desc 'SHA1'
اعتبارسنجی امکان بارگذاری ماژول fips از یک فایل پیکربندی پایه:
export OPENSSL_CONF_INCLUDE=<path of configuration files> export OPENSSL_MODULES=<provider-path> openssl fipsinstall -config' 'default.cnf'
همچنین ببینید (SEE ALSO)
config(5), fips_config(5), OSSL_PROVIDER-FIPS(7), EVP_MAC(3)
تاریخچه (HISTORY)
برنامهٔ openssl-fipsinstall در OpenSSL 3.0 اضافه شد.
گزینههای زیر در OpenSSL 3.1 اضافه شدند:
-ems_check, -self_test_oninstall
گزینههای زیر در OpenSSL 3.2 اضافه شدند:
-pedantic, -no_drbg_truncated_digests
گزینههای زیر در OpenSSL 3.4 اضافه شدند:
-hmac_key_check, -kmac_key_check, -signature_digest_check, -hkdf_digest_check, -tls13_kdf_digest_check, -tls1_prf_digest_check, -sshkdf_digest_check, -sskdf_digest_check, -x963kdf_digest_check, -dsa_sign_disabled, -no_pbkdf2_lower_bound_check, -no_short_mac, -tdes_encrypt_disabled, -rsa_pkcs15_padding_disabled, -rsa_pss_saltlen_check, -rsa_sign_x931_disabled, -hkdf_key_check, -kbkdf_key_check, -tls13_kdf_key_check, -tls1_prf_key_check, -sshkdf_key_check, -sskdf_key_check, -x963kdf_key_check, -x942kdf_key_check, -ecdh_cofactor_check
حق نشر (COPYRIGHT)
حق نشر 2019-2025 متعلق به The OpenSSL Project Authors است. کلیه حقوق محفوظ است.
تحت مجوز آپاچی نسخه 2.0 («مجوز») منتشر شده است. شما نمیتوانید از این فایل استفاده کنید مگر در انطباق با این مجوز. میتوانید یک نسخه از آن را در فایل LICENSE در توزیع مبدأ یا در https://www.openssl.org/source/license.html دریافت نمایید.
| 2026-08-25 | 3.6.4 |