P11TOOL(1) دستورهای کاربری P11TOOL(1)

p11tool - ابزار مدیریت توکنها و گواهیهای PKCS #11 در GnuTLS

p11tool [ گزینهها ] [ نشانی_PKCS11 ]

عملوندها و گزینه‌ها می‌توانند به صورت ترکیبی بیایند؛ ترتیب آن‌ها مجدداً مرتب خواهد شد.

دستور p11tool ابزاری برای فهرست کردن، بازبینی و مدیریت کلیدها، گواهینامهها و توکنهای سازگار با استاندارد PKCS #11 با بهرهگیری از GnuTLS است.

برای استفاده از توکن‌های PKCS #11 با GnuTLS، باید فایل‌های پیکربندی p11-kit تنظیم شوند. بدین منظور، یک فایل .module در مسیر /etc/pkcs11/modules با محتوای 'module: /path/to/pkcs11.so' ایجاد کنید. به عنوان روش جایگزین، فایل پیکربندی /etc/gnutls/pkcs11.conf باید وجود داشته باشد و شامل خطوطی با قالب 'load=/usr/lib/opensc-pkcs11.so' باشد.

می‌توانید پین (PIN) مورد استفاده برای عملیات‌های PKCS #11 را از طریق متغیرهای محیطی GNUTLS_PIN و GNUTLS_SO_PIN مشخص کنید.

فهرست کردن تمام توکن‌های موجود.
فهرست کردن نشانی‌های (URL) توکن‌های موجود.

این یک نسخه فشرده‌تر از گزینه --list-tokens است.

فهرست کردن تمام سازوکارهای (mechanisms) موجود در یک توکن.
راه‌اندازی و مقداردهی اولیه یک توکن PKCS #11.
راه‌اندازی اولیه یا بازنشانی پین (PIN) کاربر برای توکن PKCS #11.
راه‌اندازی اولیه یا بازنشانی پین مأمور امنیت (Security Officer / SO) برای توکن PKCS #11.

این گزینه پین مأمور امنیت را راه‌اندازی اولیه می‌کند. در هنگام استفاده غیرتعاملی، از متغیر محیطی GNUTLS_NEW_SO_PIN برای مقداردهی اولیه پین مأمور امنیت استفاده کنید.

مشخص کردن پین مورد استفاده در عملیات‌های توکن.

به عنوان روش جایگزین، می‌توان از متغیر محیطی GNUTLS_PIN نیز استفاده کرد.

مشخص کردن پین مأمور امنیت برای استفاده در راه‌اندازی اولیه توکن.

به عنوان روش جایگزین، می‌توان از متغیر محیطی GNUTLS_SO_PIN نیز استفاده کرد.

فهرست کردن تمام اشیاء موجود در یک توکن.

تمامی اشیاء موجود در توکن فهرست خواهند شد؛ این شامل اشیایی که احتمالاً با استفاده از این ابزار غیرقابل‌دسترس هستند نیز می‌شود.

فهرست کردن تمام گواهی‌های موجود در یک توکن.

این گزینه همچنین اطلاعات بیشتری درباره گواهی‌ها ارائه می‌دهد؛ به عنوان مثال، افزونه‌های متصل‌شده در یک توکن مورد اعتماد (مانند p11-kit-trust) را باز می‌کند.

فهرست کردن تمام گواهی‌هایی که دارای یک کلید خصوصی مرتبط هستند.

این گزینه تنها گواهی‌هایی را نمایش می‌دهد که یک کلید خصوصی مرتبط با آن‌ها وجود داشته باشد (شناسه ID یکسانی داشته باشند).

فهرست کردن تمام کلیدهای خصوصی موجود در یک توکن.

تمام کلیدهای خصوصی موجود در توکن را که با نشانی (URL) مشخص‌شده مطابقت دارند فهرست می‌کند.

این یک نام مستعار برای گزینه --list-all-privkeys است.
این یک نام مستعار برای گزینه --list-all-privkeys است.
فهرست کردن تمام گواهی‌های موجود که به عنوان مورد اعتماد علامت‌گذاری شده‌اند.
صادر کردن شیء مشخص‌شده توسط نشانی URL.

این گزینه نباید به همراه هیچ‌یک از گزینه‌های روبه‌رو استفاده شود: export-stapled، export-chain، export-pubkey.

صادر کردن شیء گواهی مشخص‌شده توسط نشانی URL.

این گزینه نباید به همراه هیچ‌یک از گزینه‌های روبه‌رو استفاده شود: export، export-chain، export-pubkey.

گواهی مشخص‌شده توسط نشانی را به همراه هرگونه افزونه متصل به آن صادر می‌کند. از آنجا که افزونه‌های متصل جزو الحاقات p11-kit هستند، این گزینه تنها روی ماژول‌های اعتماد ثبت‌شده در p11-kit در دسترس است.

صادر کردن گواهی مشخص‌شده توسط نشانی URL و زنجیره اعتماد آن.

این گزینه نباید به همراه هیچ‌یک از گزینه‌های روبه‌رو استفاده شود: export-stapled، export، export-pubkey.

گواهی مشخص‌شده توسط نشانی را صادر کرده و زنجیره اعتماد آن را بر اساس گواهی‌های ذخیره‌شده در ماژول تولید می‌کند.

صادر کردن کلید عمومی برای یک کلید خصوصی.

این گزینه نباید به همراه هیچ‌یک از گزینه‌های روبه‌رو استفاده شود: export-stapled، export، export-chain.

کلید عمومی مربوط به کلید خصوصی مشخص‌شده را صادر می‌کند.

فهرست کردن اطلاعات مربوط به یک شیء موجود در توکن.
این یک نام مستعار برای گزینه --mark-trusted است.
این یک نام مستعار برای گزینه --mark-distrusted است.

تولید جفت‌کلید خصوصی-عمومی از نوع مشخص‌شده.

یک جفت‌کلید خصوصی-عمومی در توکن مشخص‌شده تولید می‌کند. انواع قابل قبول عبارتند از RSA، ECDSA، Ed25519 و DSA. باید با --sec-param یا --bits ترکیب شود.

تولید جفت‌کلید خصوصی-عمومی RSA.

یک جفت‌کلید خصوصی-عمومی RSA روی توکن مشخص‌شده تولید می‌کند. باید با --sec-param یا --bits ترکیب شود.

نکته: این گزینه منسوخ شده است.

تولید جفت‌کلید خصوصی-عمومی DSA.

یک جفت‌کلید خصوصی-عمومی DSA روی توکن مشخص‌شده تولید می‌کند. باید با --sec-param یا --bits ترکیب شود.

نکته: این گزینه منسوخ شده است.

تولید جفت‌کلید خصوصی-عمومی ECDSA.

یک جفت‌کلید خصوصی-عمومی ECDSA روی توکن مشخص‌شده تولید می‌کند. باید با --curve، --sec-param یا --bits ترکیب شود.

نکته: این گزینه منسوخ شده است.

مشخص کردن تعداد بیت‌ها برای تولید کلید. این گزینه یک عدد صحیح را به عنوان آرگومان دریافت می‌کند.

برای برنامه‌هایی که محدودیتی در اندازه کلید ندارند، گزینه --sec-param پیشنهاد می‌شود، چرا که سطوح sec-param در نسخه‌های جدیدتر gnutls با سطوح امنیتی قابل قبول سازگار می‌شوند.

مشخص کردن منحنی مورد استفاده برای تولید کلید EC.

مقادیر پشتیبانی‌شده عبارتند از secp192r1، secp224r1، secp256r1، secp384r1 و secp521r1.

مشخص کردن سطح امنیت.

این گزینه جایگزینی برای گزینه bits است. مقادیر مجاز عبارتند از [low, legacy, medium, high, ultra].

تنظیم CKA_ID (به صورت هگز) برای شیء مشخص‌شده با نشانی URL. این گزینه نباید در ترکیب با گزینه write ظاهر شود.

شناسه CKA_ID را در شیء مشخص‌شده با نشانی URL تغییر داده یا تنظیم می‌کند. شناسه باید در قالب هگزادسیمال و بدون پیشوند '0x' مشخص شود.

تنظیم CKA_LABEL برای شیء مشخص‌شده با نشانی URL. این گزینه نباید در ترکیب با گزینه‌های write یا set-id ظاهر شود.

برچسب CKA_LABEL را در شیء مشخص‌شده با نشانی URL تغییر داده یا تنظیم می‌کند.

نوشتن اشیاء بارگذاری‌شده در یک توکن PKCS #11.

می‌تواند برای نوشتن کلیدهای خصوصی، عمومی، گواهی‌ها یا کلیدهای محرمانه در یک توکن استفاده شود. باید با یکی از گزینه‌های --load-privkey، --load-pubkey یا --load-certificate ترکیب شود.

هنگام نوشتن یک شیء گواهی، CKA_ID آن برابر با CKA_ID کلید عمومی متناظر تنظیم می‌شود (در صورتی که روی توکن وجود داشته باشد)؛ در غیر این صورت از شناسه کلید موضوع (Subject Key Identifier) در گواهی X.509 مشتق خواهد شد. اگر این رفتار مورد نظر نیست، ابتدا کلید عمومی را در توکن بنویسید.

حذف اشیاء منطبق با نشانی PKCS #11 داده‌شده.
تنظیم برچسب برای عملیات نوشتن.
تنظیم شناسه (ID) برای عملیات نوشتن.

شناسه CKA_ID را برای تنظیم توسط عملیات نوشتن تعیین می‌کند. این شناسه باید در قالب هگزادسیمال و بدون پیشوند '0x' مشخص شود.

علامت‌گذاری کلید تولیدشده به عنوان کلید بسته‌بندی (wrapping key). فرم no-mark-wrap این گزینه را غیرفعال می‌کند.

کلید تولیدشده را با پرچم CKA_WRAP علامت‌گذاری می‌کند.

علامت‌گذاری شیء نوشته‌شده به عنوان مورد اعتماد (trusted). این گزینه نباید در ترکیب با گزینه mark-distrusted ظاهر شود. فرم no-mark-trusted این گزینه را غیرفعال می‌کند.

شیء تولیدشده/نوشته‌شده را با پرچم CKA_TRUST علامت‌گذاری می‌کند.

هنگام دریافت اشیاء، الزامی می‌کند که اشیاء غیرقابل‌اعتماد (distrusted) باشند. این گزینه نباید در ترکیب با گزینه mark-trusted ظاهر شود.

اطمینان حاصل می‌کند که اشیاء دریافت‌شده دارای پرچم CKA_X_TRUST باشند. این مورد از الحاقات ماژول اعتماد p11-kit است، بنابراین این پرچم تنها با ماژول‌های اعتماد ثبت‌شده در p11-kit معتبر است.

علامت‌گذاری شیء نوشته‌شده برای رمزگشایی. فرم no-mark-decrypt این گزینه را غیرفعال می‌کند.

شیء را برای تولید/نوشتن با پرچم CKA_DECRYPT تنظیم‌شده روی true علامت‌گذاری می‌کند.

علامت‌گذاری شیء نوشته‌شده برای تولید امضا. فرم no-mark-sign این گزینه را غیرفعال می‌کند.

شیء را برای تولید/نوشتن با پرچم CKA_SIGN تنظیم‌شده روی true علامت‌گذاری می‌کند.

علامت‌گذاری شیء نوشته‌شده به عنوان مرجع صدور گواهی (CA). فرم no-mark-ca این گزینه را غیرفعال می‌کند.

شیء را برای تولید/نوشتن با CKA_CERTIFICATE_CATEGORY به عنوان CA علامت‌گذاری می‌کند.

علامت‌گذاری شیء نوشته‌شده به صورت خصوصی (محرمانه). فرم no-mark-private این گزینه را غیرفعال می‌کند.

شیء را برای تولید/نوشتن با پرچم CKA_PRIVATE علامت‌گذاری می‌کند. شیء نوشته‌شده برای استفاده نیاز به پین (PIN) خواهد داشت.

این یک نام مستعار برای گزینه --mark-ca است.
این یک نام مستعار برای گزینه --mark-private است.
علامت‌گذاری شیء نوشته‌شده به گونه‌ای که همیشه نیاز به احراز هویت داشته باشد. فرم no-mark-always-authenticate این گزینه را غیرفعال می‌کند.

شیء را برای تولید/نوشتن با پرچم CKA_ALWAYS_AUTHENTICATE علامت‌گذاری می‌کند. شیء نوشته‌شده به عنوان نیازمند احراز هویت (ورود پین) پیش از هر عملیات ثبت می‌شود.

ارائه یک کلید محرمانه با کدگذاری هگز.

در صورتی که --write مشخص شده باشد، این کلید محرمانه در ماژول نوشته خواهد شد.

فایل کلید خصوصی مورد استفاده.
فایل کلید عمومی مورد استفاده.
فایل گواهی مورد استفاده.

فعال‌سازی اشکال‌زدایی. این گزینه یک عدد صحیح را به عنوان آرگومان دریافت می‌کند. مقدار عدد باید در محدوده 0 تا 9999 باشد.

سطح اشکال‌زدایی را مشخص می‌کند.

فایل خروجی.
اجبار ورود (کاربر) به توکن. فرم no-login این گزینه را غیرفعال می‌کند.
اجبار ورود مأمور امنیت به توکن. فرم no-so-login این گزینه را غیرفعال می‌کند.

ورود به توکن را به عنوان مأمور امنیت (مدیر) اجباری می‌کند.

این یک نام مستعار برای گزینه --so-login است.
آزمودن عملیات امضا برای شیء ارائه‌شده.

می‌تواند برای آزمایش صحت عملکرد عملیات امضا استفاده شود. اگر هر دو کلید خصوصی و عمومی در دسترس باشند، این عملیات داده‌های امضاشده را امضا و اعتبارسنجی می‌کند.

امضا با یک الگوریتم امضای خاص.

این گزینه می‌تواند با --test-sign ترکیب شود تا با نوع خاصی از الگوریتم امضا انجام گیرد. تنها گزینه پشتیبانی‌شده 'RSA-PSS' است و باید برای استفاده از امضای RSA-PSS روی کلیدهای RSA تعیین شود.

الگوریتم درهم‌سازی (هش) برای استفاده در امضا.

این گزینه می‌تواند با test-sign ترکیب شود. توابع هش در دسترس عبارتند از SHA1، RMD160، SHA256، SHA384، SHA512، SHA3-224، SHA3-256، SHA3-384 و SHA3-512.

تولید داده‌های تصادفی. این گزینه یک عدد صحیح را به عنوان آرگومان دریافت می‌کند.

از توکن می‌خواهد تا به تعداد بایت‌های مشخص‌شده داده تصادفی تولید کند.

-8, --pkcs8
استفاده از قالب PKCS #8 برای کلیدهای خصوصی.
استفاده از قالب DER/RAW برای ورودی. فرم no-inder این گزینه را غیرفعال می‌کند.

استفاده از قالب DER/RAW برای گواهی‌ها و کلیدهای خصوصی ورودی.

این یک نام مستعار برای گزینه --inder است.
استفاده از قالب DER برای گواهی‌ها، کلیدهای خصوصی و پارامترهای DH خروجی. فرم no-outder این گزینه را غیرفعال می‌کند.

خروجی در قالب DER یا RAW خواهد بود.

این یک نام مستعار برای گزینه --outder است.
مشخص کردن کتابخانه ارائه‌دهنده PKCS #11.

این گزینه تنظیمات پیش‌فرض در /etc/gnutls/pkcs11.conf را بازنویسی می‌کند.

مشخص کردن پارامترها برای کتابخانه ارائه‌دهنده PKCS #11.

این یک گزینه داخلی PKCS #11 است که توسط تعداد کمی از ماژول‌ها استفاده می‌شود؛ عمدتاً برای آزمودن ماژول‌های PKCS #11 کاربرد دارد.

نکته: این گزینه منسوخ شده است.

چاپ نشانی‌های اینترنتی با جزئیات کامل. فرم no-detailed-url این گزینه را غیرفعال می‌کند.
چاپ یک فهرست خلاصه و فشرده تنها با استفاده از نشانی‌ها (URLs).
غیرفعال کردن تمام تعامل‌ها با ابزار.

در حالت دسته‌ای (batch) هیچ اعلان ورودی وجود نخواهد داشت و تمام پارامترها باید در خط فرمان مشخص شوند.

نمایش نسخه برنامه و خروج. حالت پیش‌فرض `v` است که یک نسخه ساده را نشان می‌دهد. حالت `c` اطلاعات حق نشر و `n` اعلان کامل حق نشر را چاپ می‌کند.
نمایش اطلاعات نحوه استفاده و خروج.
-!, --more-help
هدایت اطلاعات گسترده راهنما به یک صفحه‌بند (pager).

برای مشاهده تمام توکن‌های موجود در سیستم خود:

$ p11tool --list-tokens

برای مشاهده تمام اشیاء موجود در یک توکن:

$ p11tool --login --list-all "pkcs11:TOKEN-URL"

برای ذخیره یک کلید خصوصی و یک گواهی در یک توکن:

$ p11tool --login --write "pkcs11:URL" --load-privkey key.pem \
          --label "Mykey"
$ p11tool --login --write "pkcs11:URL" --load-certificate cert.pem \
          --label "Mykey"

توجه داشته باشید که برخی توکن‌ها الزام می‌کنند که برای گواهی و کلید خصوصی متناظر آن از یک برچسب (label) یکسان استفاده شود.

برای تولید یک کلید خصوصی RSA در داخل توکن:

$ p11tool --login --generate-privkey rsa --bits 1024 --label "MyNewKey" \
          --outfile MyNewKey.pub "pkcs11:TOKEN-URL"

پارامتر bits در مثال بالا به طور صریح تعیین شده است زیرا برخی توکن‌ها تنها انتخاب‌های محدودی را در طول بیت پشتیبانی می‌کنند. فایل خروجی، کلید عمومی متناظر است. این کلید می‌تواند برای ایجاد یک درخواست گواهی توسط certtool استفاده شود:

certtool --generate-request --load-privkey "pkcs11:KEY-URL" \
   --load-pubkey MyNewKey.pub --outfile request.pem

یکی از مقادیر خروج زیر بازگردانده خواهد شد:

0 " (EXIT_SUCCESS)"
اجرای موفقیت‌آمیز برنامه.
1 " (EXIT_FAILURE)"
عملیات شکست خورد یا ساختار دستور نامعتبر بود.

certtool(1)

توسعه‌دهندگان پروژه GnuTLS و همکاران.

حق نشر © 2020-2023 بنیاد نرم‌افزارهای آزاد (Free Software Foundation) و دیگران، تمامی حقوق محفوظ است. این برنامه تحت شرایط مجوز عمومی همگانی گنو (GNU GPL) نسخه ۳ یا جدیدتر منتشر شده است.

لطفاً گزارش‌های اشکال را به نشانی زیر ارسال کنید: bugs@gnutls.org

مه ۲۰۲۵ gnutls