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= export OPENSSL_MODULES= 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 در توزیع مبدأ یا در دریافت نمایید. 3.6.4 2026-08-25 OPENSSL-FIPSINSTALL(1ssl)