| P11TOOL(1) | دستورهای کاربری | P11TOOL(1) |
نام (NAME)
p11tool - ابزار مدیریت توکنها و گواهیهای PKCS #11 در GnuTLS
خلاصه دستور (SYNOPSIS)
p11tool [ گزینهها ] [ نشانی_PKCS11 ]
عملوندها و گزینهها میتوانند به صورت ترکیبی بیایند؛ ترتیب آنها مجدداً مرتب خواهد شد.
توضیحات (DESCRIPTION)
دستور 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 مشخص کنید.
گزینهها (OPTIONS)
توکنها (Tokens)
- --list-tokens
- فهرست کردن تمام توکنهای موجود.
- --list-token-urls
- فهرست کردن
نشانیهای
(URL) توکنهای
موجود.
این یک نسخه فشردهتر از گزینه --list-tokens است.
- --list-mechanisms
- فهرست کردن تمام سازوکارهای (mechanisms) موجود در یک توکن.
- --initialize
- راهاندازی و مقداردهی اولیه یک توکن PKCS #11.
- --initialize-pin
- راهاندازی اولیه یا بازنشانی پین (PIN) کاربر برای توکن PKCS #11.
- --initialize-so-pin
- راهاندازی
اولیه یا
بازنشانی
پین مأمور
امنیت (Security Officer / SO)
برای توکن PKCS
#11.
این گزینه پین مأمور امنیت را راهاندازی اولیه میکند. در هنگام استفاده غیرتعاملی، از متغیر محیطی GNUTLS_NEW_SO_PIN برای مقداردهی اولیه پین مأمور امنیت استفاده کنید.
- --set-pin=رشته
- مشخص کردن
پین مورد
استفاده در
عملیاتهای
توکن.
به عنوان روش جایگزین، میتوان از متغیر محیطی GNUTLS_PIN نیز استفاده کرد.
- --set-so-pin=رشته
- مشخص کردن
پین مأمور
امنیت برای
استفاده در
راهاندازی
اولیه توکن.
به عنوان روش جایگزین، میتوان از متغیر محیطی GNUTLS_SO_PIN نیز استفاده کرد.
فهرست کردن اشیاء (Object listing)
- --list-all
- فهرست کردن
تمام اشیاء
موجود در یک
توکن.
تمامی اشیاء موجود در توکن فهرست خواهند شد؛ این شامل اشیایی که احتمالاً با استفاده از این ابزار غیرقابلدسترس هستند نیز میشود.
- --list-all-certs
- فهرست کردن
تمام
گواهیهای
موجود در یک
توکن.
این گزینه همچنین اطلاعات بیشتری درباره گواهیها ارائه میدهد؛ به عنوان مثال، افزونههای متصلشده در یک توکن مورد اعتماد (مانند p11-kit-trust) را باز میکند.
- --list-certs
- فهرست کردن
تمام
گواهیهایی
که دارای یک
کلید خصوصی
مرتبط
هستند.
این گزینه تنها گواهیهایی را نمایش میدهد که یک کلید خصوصی مرتبط با آنها وجود داشته باشد (شناسه ID یکسانی داشته باشند).
- --list-all-privkeys
- فهرست کردن
تمام
کلیدهای
خصوصی
موجود در یک
توکن.
تمام کلیدهای خصوصی موجود در توکن را که با نشانی (URL) مشخصشده مطابقت دارند فهرست میکند.
- --list-privkeys
- این یک نام مستعار برای گزینه --list-all-privkeys است.
- --list-keys
- این یک نام مستعار برای گزینه --list-all-privkeys است.
- --list-all-trusted
- فهرست کردن تمام گواهیهای موجود که به عنوان مورد اعتماد علامتگذاری شدهاند.
- --export
- صادر کردن
شیء
مشخصشده
توسط نشانی
URL.
این گزینه نباید به همراه هیچیک از گزینههای روبهرو استفاده شود: export-stapled، export-chain، export-pubkey.
- --export-stapled
- صادر کردن
شیء گواهی
مشخصشده
توسط نشانی
URL.
این گزینه نباید به همراه هیچیک از گزینههای روبهرو استفاده شود: export، export-chain، export-pubkey.
گواهی مشخصشده توسط نشانی را به همراه هرگونه افزونه متصل به آن صادر میکند. از آنجا که افزونههای متصل جزو الحاقات p11-kit هستند، این گزینه تنها روی ماژولهای اعتماد ثبتشده در p11-kit در دسترس است.
- --export-chain
- صادر کردن
گواهی
مشخصشده
توسط نشانی
URL و زنجیره
اعتماد آن.
این گزینه نباید به همراه هیچیک از گزینههای روبهرو استفاده شود: export-stapled، export، export-pubkey.
گواهی مشخصشده توسط نشانی را صادر کرده و زنجیره اعتماد آن را بر اساس گواهیهای ذخیرهشده در ماژول تولید میکند.
- --export-pubkey
- صادر کردن
کلید عمومی
برای یک
کلید خصوصی.
این گزینه نباید به همراه هیچیک از گزینههای روبهرو استفاده شود: export-stapled، export، export-chain.
کلید عمومی مربوط به کلید خصوصی مشخصشده را صادر میکند.
- --info
- فهرست کردن اطلاعات مربوط به یک شیء موجود در توکن.
- --trusted
- این یک نام مستعار برای گزینه --mark-trusted است.
- --distrusted
- این یک نام مستعار برای گزینه --mark-distrusted است.
تولید کلید (Key generation)
- --generate-privkey=نوع
- تولید
جفتکلید
خصوصی-عمومی
از نوع
مشخصشده.
یک جفتکلید خصوصی-عمومی در توکن مشخصشده تولید میکند. انواع قابل قبول عبارتند از RSA، ECDSA، Ed25519 و DSA. باید با --sec-param یا --bits ترکیب شود.
- --generate-rsa
- تولید
جفتکلید
خصوصی-عمومی
RSA.
یک جفتکلید خصوصی-عمومی RSA روی توکن مشخصشده تولید میکند. باید با --sec-param یا --bits ترکیب شود.
نکته: این گزینه منسوخ شده است.
- --generate-dsa
- تولید
جفتکلید
خصوصی-عمومی
DSA.
یک جفتکلید خصوصی-عمومی DSA روی توکن مشخصشده تولید میکند. باید با --sec-param یا --bits ترکیب شود.
نکته: این گزینه منسوخ شده است.
- --generate-ecc
- تولید
جفتکلید
خصوصی-عمومی
ECDSA.
یک جفتکلید خصوصی-عمومی ECDSA روی توکن مشخصشده تولید میکند. باید با --curve، --sec-param یا --bits ترکیب شود.
نکته: این گزینه منسوخ شده است.
- --bits=تعداد
- مشخص کردن
تعداد
بیتها
برای تولید
کلید. این
گزینه یک
عدد صحیح را
به عنوان
آرگومان
دریافت
میکند.
برای برنامههایی که محدودیتی در اندازه کلید ندارند، گزینه --sec-param پیشنهاد میشود، چرا که سطوح sec-param در نسخههای جدیدتر gnutls با سطوح امنیتی قابل قبول سازگار میشوند.
- --curve=رشته
- مشخص کردن
منحنی مورد
استفاده
برای تولید
کلید EC.
مقادیر پشتیبانیشده عبارتند از secp192r1، secp224r1، secp256r1، secp384r1 و secp521r1.
- --sec-param=پارامتر_امنیتی
- مشخص کردن
سطح امنیت.
این گزینه جایگزینی برای گزینه bits است. مقادیر مجاز عبارتند از [low, legacy, medium, high, ultra].
نوشتن اشیاء (Writing objects)
- --set-id=رشته
- تنظیم CKA_ID (به
صورت هگز)
برای شیء
مشخصشده
با نشانی URL.
این گزینه
نباید در
ترکیب با
گزینه write
ظاهر شود.
شناسه CKA_ID را در شیء مشخصشده با نشانی URL تغییر داده یا تنظیم میکند. شناسه باید در قالب هگزادسیمال و بدون پیشوند '0x' مشخص شود.
- --set-label=رشته
- تنظیم CKA_LABEL
برای شیء
مشخصشده
با نشانی URL.
این گزینه
نباید در
ترکیب با
گزینههای
write یا set-id ظاهر
شود.
برچسب CKA_LABEL را در شیء مشخصشده با نشانی URL تغییر داده یا تنظیم میکند.
- --write
- نوشتن
اشیاء
بارگذاریشده
در یک توکن PKCS
#11.
میتواند برای نوشتن کلیدهای خصوصی، عمومی، گواهیها یا کلیدهای محرمانه در یک توکن استفاده شود. باید با یکی از گزینههای --load-privkey، --load-pubkey یا --load-certificate ترکیب شود.
هنگام نوشتن یک شیء گواهی، CKA_ID آن برابر با CKA_ID کلید عمومی متناظر تنظیم میشود (در صورتی که روی توکن وجود داشته باشد)؛ در غیر این صورت از شناسه کلید موضوع (Subject Key Identifier) در گواهی X.509 مشتق خواهد شد. اگر این رفتار مورد نظر نیست، ابتدا کلید عمومی را در توکن بنویسید.
- --delete
- حذف اشیاء منطبق با نشانی PKCS #11 دادهشده.
- --label=رشته
- تنظیم برچسب برای عملیات نوشتن.
- --id=رشته
- تنظیم
شناسه (ID)
برای
عملیات
نوشتن.
شناسه CKA_ID را برای تنظیم توسط عملیات نوشتن تعیین میکند. این شناسه باید در قالب هگزادسیمال و بدون پیشوند '0x' مشخص شود.
- --mark-wrap, --no-mark-wrap
- علامتگذاری
کلید
تولیدشده
به عنوان
کلید
بستهبندی
(wrapping key). فرم no-mark-wrap
این گزینه
را غیرفعال
میکند.
کلید تولیدشده را با پرچم CKA_WRAP علامتگذاری میکند.
- --mark-trusted, --no-mark-trusted
- علامتگذاری
شیء
نوشتهشده
به عنوان
مورد
اعتماد (trusted).
این گزینه
نباید در
ترکیب با
گزینه mark-distrusted
ظاهر شود.
فرم no-mark-trusted این
گزینه را
غیرفعال
میکند.
شیء تولیدشده/نوشتهشده را با پرچم CKA_TRUST علامتگذاری میکند.
- --mark-distrusted
- هنگام
دریافت
اشیاء،
الزامی
میکند که
اشیاء
غیرقابلاعتماد
(distrusted) باشند.
این گزینه
نباید در
ترکیب با
گزینه mark-trusted
ظاهر شود.
اطمینان حاصل میکند که اشیاء دریافتشده دارای پرچم CKA_X_TRUST باشند. این مورد از الحاقات ماژول اعتماد p11-kit است، بنابراین این پرچم تنها با ماژولهای اعتماد ثبتشده در p11-kit معتبر است.
- --mark-decrypt, --no-mark-decrypt
- علامتگذاری
شیء
نوشتهشده
برای
رمزگشایی.
فرم no-mark-decrypt این
گزینه را
غیرفعال
میکند.
شیء را برای تولید/نوشتن با پرچم CKA_DECRYPT تنظیمشده روی true علامتگذاری میکند.
- --mark-sign, --no-mark-sign
- علامتگذاری
شیء
نوشتهشده
برای تولید
امضا. فرم
no-mark-sign این
گزینه را
غیرفعال
میکند.
شیء را برای تولید/نوشتن با پرچم CKA_SIGN تنظیمشده روی true علامتگذاری میکند.
- --mark-ca, --no-mark-ca
- علامتگذاری
شیء
نوشتهشده
به عنوان
مرجع صدور
گواهی (CA). فرم
no-mark-ca این
گزینه را
غیرفعال
میکند.
شیء را برای تولید/نوشتن با CKA_CERTIFICATE_CATEGORY به عنوان CA علامتگذاری میکند.
- --mark-private, --no-mark-private
- علامتگذاری
شیء
نوشتهشده
به صورت
خصوصی
(محرمانه).
فرم no-mark-private این
گزینه را
غیرفعال
میکند.
شیء را برای تولید/نوشتن با پرچم CKA_PRIVATE علامتگذاری میکند. شیء نوشتهشده برای استفاده نیاز به پین (PIN) خواهد داشت.
- --ca
- این یک نام مستعار برای گزینه --mark-ca است.
- --private
- این یک نام مستعار برای گزینه --mark-private است.
- --mark-always-authenticate, --no-mark-always-authenticate
- علامتگذاری
شیء
نوشتهشده
به گونهای
که همیشه
نیاز به
احراز هویت
داشته باشد.
فرم no-mark-always-authenticate
این گزینه
را غیرفعال
میکند.
شیء را برای تولید/نوشتن با پرچم CKA_ALWAYS_AUTHENTICATE علامتگذاری میکند. شیء نوشتهشده به عنوان نیازمند احراز هویت (ورود پین) پیش از هر عملیات ثبت میشود.
- --secret-key=رشته
- ارائه یک
کلید
محرمانه با
کدگذاری
هگز.
در صورتی که --write مشخص شده باشد، این کلید محرمانه در ماژول نوشته خواهد شد.
- --load-privkey=فایل
- فایل کلید خصوصی مورد استفاده.
- --load-pubkey=فایل
- فایل کلید عمومی مورد استفاده.
- --load-certificate=فایل
- فایل گواهی مورد استفاده.
سایر گزینهها (Other options)
- -d عدد, --debug=عدد
- فعالسازی
اشکالزدایی.
این گزینه
یک عدد صحیح
را به عنوان
آرگومان
دریافت
میکند.
مقدار عدد
باید در
محدوده 0 تا 9999
باشد.
سطح اشکالزدایی را مشخص میکند.
- --outfile=فایل
- فایل خروجی.
- --login, --no-login
- اجبار ورود (کاربر) به توکن. فرم no-login این گزینه را غیرفعال میکند.
- --so-login, --no-so-login
- اجبار ورود
مأمور
امنیت به
توکن. فرم
no-so-login این
گزینه را
غیرفعال
میکند.
ورود به توکن را به عنوان مأمور امنیت (مدیر) اجباری میکند.
- --admin-login
- این یک نام مستعار برای گزینه --so-login است.
- --test-sign
- آزمودن
عملیات
امضا برای
شیء
ارائهشده.
میتواند برای آزمایش صحت عملکرد عملیات امضا استفاده شود. اگر هر دو کلید خصوصی و عمومی در دسترس باشند، این عملیات دادههای امضاشده را امضا و اعتبارسنجی میکند.
- --sign-params=رشته
- امضا با یک
الگوریتم
امضای خاص.
این گزینه میتواند با --test-sign ترکیب شود تا با نوع خاصی از الگوریتم امضا انجام گیرد. تنها گزینه پشتیبانیشده 'RSA-PSS' است و باید برای استفاده از امضای RSA-PSS روی کلیدهای RSA تعیین شود.
- --hash=رشته
- الگوریتم
درهمسازی
(هش) برای
استفاده در
امضا.
این گزینه میتواند با test-sign ترکیب شود. توابع هش در دسترس عبارتند از SHA1، RMD160، SHA256، SHA384، SHA512، SHA3-224، SHA3-256، SHA3-384 و SHA3-512.
- --generate-random=تعداد
- تولید
دادههای
تصادفی. این
گزینه یک
عدد صحیح را
به عنوان
آرگومان
دریافت
میکند.
از توکن میخواهد تا به تعداد بایتهای مشخصشده داده تصادفی تولید کند.
- -8, --pkcs8
- استفاده از قالب PKCS #8 برای کلیدهای خصوصی.
- --inder, --no-inder
- استفاده از
قالب DER/RAW برای
ورودی. فرم
no-inder این
گزینه را
غیرفعال
میکند.
استفاده از قالب DER/RAW برای گواهیها و کلیدهای خصوصی ورودی.
- --inraw
- این یک نام مستعار برای گزینه --inder است.
- --outder, --no-outder
- استفاده از
قالب DER برای
گواهیها،
کلیدهای
خصوصی و
پارامترهای
DH خروجی. فرم
no-outder این
گزینه را
غیرفعال
میکند.
خروجی در قالب DER یا RAW خواهد بود.
- --outraw
- این یک نام مستعار برای گزینه --outder است.
- --provider=فایل
- مشخص کردن
کتابخانه
ارائهدهنده
PKCS #11.
این گزینه تنظیمات پیشفرض در /etc/gnutls/pkcs11.conf را بازنویسی میکند.
- --provider-opts=رشته
- مشخص کردن
پارامترها
برای
کتابخانه
ارائهدهنده
PKCS #11.
این یک گزینه داخلی PKCS #11 است که توسط تعداد کمی از ماژولها استفاده میشود؛ عمدتاً برای آزمودن ماژولهای PKCS #11 کاربرد دارد.
نکته: این گزینه منسوخ شده است.
- --detailed-url, --no-detailed-url
- چاپ نشانیهای اینترنتی با جزئیات کامل. فرم no-detailed-url این گزینه را غیرفعال میکند.
- --only-urls
- چاپ یک فهرست خلاصه و فشرده تنها با استفاده از نشانیها (URLs).
- --batch
- غیرفعال
کردن تمام
تعاملها
با ابزار.
در حالت دستهای (batch) هیچ اعلان ورودی وجود نخواهد داشت و تمام پارامترها باید در خط فرمان مشخص شوند.
- -v شناسه, --version=شناسه
- نمایش نسخه برنامه و خروج. حالت پیشفرض `v` است که یک نسخه ساده را نشان میدهد. حالت `c` اطلاعات حق نشر و `n` اعلان کامل حق نشر را چاپ میکند.
- -h, --help
- نمایش اطلاعات نحوه استفاده و خروج.
- -!, --more-help
- هدایت اطلاعات گسترده راهنما به یک صفحهبند (pager).
مثالها (EXAMPLES)
برای مشاهده تمام توکنهای موجود در سیستم خود:
$ 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
وضعیت خروج (EXIT STATUS)
یکی از مقادیر خروج زیر بازگردانده خواهد شد:
- 0 " (EXIT_SUCCESS)"
- اجرای موفقیتآمیز برنامه.
- 1 " (EXIT_FAILURE)"
- عملیات شکست خورد یا ساختار دستور نامعتبر بود.
همچنین ببینید (SEE ALSO)
نویسندگان (AUTHORS)
توسعهدهندگان پروژه GnuTLS و همکاران.
حق نشر (COPYRIGHT)
حق نشر © 2020-2023 بنیاد نرمافزارهای آزاد (Free Software Foundation) و دیگران، تمامی حقوق محفوظ است. این برنامه تحت شرایط مجوز عمومی همگانی گنو (GNU GPL) نسخه ۳ یا جدیدتر منتشر شده است.
گزارش اشکالات (BUGS)
لطفاً گزارشهای اشکال را به نشانی زیر ارسال کنید: bugs@gnutls.org
| مه ۲۰۲۵ | gnutls |