SC-HSM-TOOL(1) OpenSC Tools SC-HSM-TOOL(1)

sc-hsm-tool - ابزار کارت هوشمند برای SmartCard-HSM

sc-hsm-tool [گزینه‌ها]

ابزار sc-hsm-tool می‌تواند از طریق خط فرمان برای انجام وظایف نگهداری پیشرفته‌ای که از طریق PKCS#11 یا سایر ابزارهای بسته OpenSC در دسترس نیستند، استفاده شود. این ابزار می‌تواند برای استعلام وضعیت یک SmartCard-HSM، مقداردهی اولیه دستگاه، تولید و وارد کردن سهم‌های کلید رمزگذاری کلید دستگاه (DKEK)، و بسته‌بندی (wrap) و باز کردن (unwrap) کلیدها استفاده شود.

--initialize, -X

مقداردهی اولیه توکن، حذف تمامی کلیدها، گواهی‌ها و فایل‌های موجود.

برای تعریف SO-PIN در اولین مقداردهی اولیه یا برای اعتبارسنجی در مقداردهی‌های اولیه بعدی از --so-pin استفاده کنید.

برای تعریف مقدار PIN اولیه کاربر از --pin استفاده کنید.

برای تعریف حداکثر تعداد دفعات تلاش مجاز برای ورود PIN کاربر از --pin-retry استفاده کنید.

همراه با --dkek-shares برای فعال‌سازی wrap / unwrap کلید استفاده کنید.

همراه با --label برای تعریف برچسب توکن استفاده کنید.

همراه با --public-key-auth و --required-pub-keys برای الزامی کردن احراز هویت کلید عمومی جهت ورود استفاده کنید.

--create-dkek-share filename, -C filename

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

برای ارائه گذرواژه جهت رمزگذاری به جای درخواست تعاملی آن از --password استفاده کنید.

برای تولید تصادفی یک گذرواژه و تقسیم آن با طرح آستانه (t, n) از --pwd-shares-threshold و --pwd-shares-total استفاده کنید.

--import-dkek-share filename, -I filename

درخواست گذرواژه کاربر، خواندن و رمزگشایی سهم DKEK و وارد کردن آن به SmartCard-HSM.

برای ارائه گذرواژه جهت رمزگشایی به جای درخواست تعاملی آن از --password استفاده کنید.

برای تعیین تعداد سهم‌هایی که باید برای بازسازی گذرواژه وارد شوند از --pwd-shares-total استفاده کنید.

--wrap-key filename, -W filename

بسته‌بندی (wrap) کلید ارجاع‌داده‌شده در --key-reference و ذخیره آن همراه با توضیحات کلید و گواهی در فایل داده‌شده.

برای ارائه PIN کاربر در خط فرمان از --pin استفاده کنید.

--unwrap-key filename, -U filename

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

مرجع کلید را با استفاده از خروجی pkcs15-tool -D تعیین کنید.

برای ارائه PIN کاربر در خط فرمان از --pin استفاده کنید.

برای حذف اجباری هر کلید، توضیحات کلید یا گواهی مانع از --force استفاده کنید.

--dkek-shares number-of-shares, -s number-of-shares

تعیین تعداد سهم‌های DKEK برای بازسازی DKEK.

این یک پارامتر اختیاری است. استفاده از --initialize بدون --dkek-shares باعث غیرفعال شدن کامل DKEK خواهد شد.

استفاده از --dkek-shares با مقدار ۰ سهم، از SmartCard-HSM درخواست تولید یک DKEK تصادفی می‌کند. کلیدهای بسته‌بندی‌شده با این DKEK فقط در همان SmartCard-HSM قابل باز شدن (unwrap) خواهند بود.

پس از استفاده از --initialize با یک یا چند سهم DKEK، دستگاه SmartCard-HSM در وضعیت مقداردهی‌شده باقی می‌ماند تا زمانی که همه سهم‌های DKEK وارد شوند. در طول این مرحله نمی‌توان کلیدهای جدیدی تولید یا وارد کرد.

--pin pin, --so-pin sopin,

این گزینه‌ها می‌توانند برای مشخص کردن مقادیر PIN در خط فرمان استفاده شوند. اگر مقدار روی env:VARIABLE تنظیم شود، مقدار متغیر محیطی مشخص‌شده استفاده می‌شود. به‌طور پیش‌فرض، در صورت نیاز کد در خط فرمان درخواست می‌شود.

توجه داشته باشید که در بیشتر سیستم‌عامل‌ها، هر کاربری می‌تواند خط فرمان هر فرآیندی را در سیستم با ابزارهایی مانند ps(1) مشاهده کند. بنابراین، در یک سیستم ناامن باید ارسال کدها از طریق یک متغیر محیطی را ترجیح دهید.

--pin-retry value

تعیین تعداد دفعات تلاش مجاز برای PIN کاربر در هنگام مقداردهی اولیه. پیش‌فرض ۳ است.

--bio-server1 value

مقدار هگزادسیمال AID کارساز بیومتریک برای الگوی ۱. استفاده از PIN کاربر را به عنوان PIN نشست فعال می‌کند.

--bio-server2 value

مقدار هگزادسیمال AID کارساز بیومتریک برای الگوی ۲. استفاده از PIN کاربر را به عنوان PIN نشست فعال می‌کند.

--password value

تعیین گذرواژه برای رمزگذاری سهم DKEK. اگر روی env:VARIABLE تنظیم شود، مقدار متغیر محیطی VARIABLE استفاده می‌شود.

--pwd-shares-threshold value

تعیین حد آستانه تعداد سهم‌های گذرواژه مورد نیاز برای بازسازی.

--pwd-shares-total value

تعیین تعداد سهم‌های گذرواژه.

--force

اجبار به حذف کلید، توضیحات و گواهی موجود.

--label label, -l label

تعیین برچسب توکن برای استفاده در --initialize.

--reader arg, -r arg

شماره کارت‌خوان مورد استفاده. به‌طور پیش‌فرض، اولین کارت‌خوانی که کارت در آن قرار دارد استفاده می‌شود. اگر arg یک ATR باشد، کارت‌خوان با کارت منطبق انتخاب خواهد شد.

--public-key-auth total-number-of-public-keys, -K total-number-of-public-keys

تعیین تعداد کل کلیدهای عمومی مورد استفاده برای احراز هویت کلید عمومی هنگام استفاده از --initialize. گزینه --public-key-auth اختیاری است، اما در صورت وجود باید همراه با --required-pub-keys استفاده شود.

هنگامی که SmartCard-HSM با این گزینه‌ها مقداردهی اولیه شود، نیاز به احراز هویت کلید عمومی M از N خواهد داشت، که در آن --required-pub-keys مقدار M و --public-key-auth مقدار N را تعیین می‌کند. پس از مقداردهی اولیه، کاربر باید از --register-public-key برای ثبت N کلید عمومی پیش از امکان استفاده از SmartCard-HSM استفاده کند.

--required-pub-keys required-number-of-public-keys, -n required-number-of-public-keys

تعیین تعداد کلیدهای عمومی مورد نیاز برای احراز هویت کلید عمومی هنگام استفاده از --initialize. این مقدار M در احراز هویت کلید عمومی M از N است. برای اطلاعات بیشتر --public-key-auth را ببینید.

--register-public-key input-public-key-file, -g input-public-key-file

ثبت یک کلید عمومی برای استفاده در احراز هویت کلید عمومی M از N. فایل می‌تواند با استفاده از --export-for-pub-key-auth از یک SmartCard-HSM دیگر استخراج شده باشد. این گزینه فقط زمانی قابل استفاده است که SmartCard-HSM با --public-key-auth و --required-pub-keys مقداردهی اولیه شده باشد و کمتر از N کلید عمومی ثبت شده باشد. برای بررسی اینکه چند کلید عمومی ثبت شده است، از --public-key-auth-status استفاده کنید.

--export-for-pub-key-auth output-public-key-file, -e output-public-key-file

صدور یک کلید عمومی برای استفاده در احراز هویت کلید عمومی M از N. این گزینه باید همراه با --key-reference برای انتخاب کلید جهت صدور استفاده شود. فایل باید با استفاده از --register-public-key روی یک SmartCard-HSM دیگر ثبت شود.

--public-key-auth-status -S

چاپ وضعیت احراز هویت کلید عمومی. این فقط در صورتی معتبر است که SmartCard-HSM برای استفاده از احراز هویت کلید عمومی M از N مقداردهی اولیه شده باشد.

--wait, -w

انتظار برای وارد شدن کارت

--verbose, -v

موجب افزایش جزئیات خروجی sc-hsm-tool می‌شود. این فلگ را چندین بار مشخص کنید تا خروجی اشکال‌زدایی در کتابخانه opensc فعال شود.

ایجاد یک سهم DKEK:

sc-hsm-tool --create-dkek-share dkek-share-1.pbe

ایجاد یک سهم DKEK با گذرواژه تصادفی تقسیم‌شده با استفاده از طرح آستانه (3, 5):

sc-hsm-tool --create-dkek-share dkek-share-1.pbe --pwd-shares-threshold 3 --pwd-shares-total 5

مقداردهی اولیه SmartCard-HSM برای استفاده از یک سهم DKEK تکی:

sc-hsm-tool --initialize --so-pin 3537363231383830 --pin 648219 --dkek-shares 1 --label mytoken

وارد کردن سهم DKEK:

sc-hsm-tool --import-dkek-share dkek-share-1.pbe

وارد کردن سهم DKEK با استفاده از گذرواژه تقسیم‌شده با طرح آستانه (3, 5) برای رمزگذاری:

sc-hsm-tool --import-dkek-share dkek-share-1.pbe --pwd-shares-total 3

بسته‌بندی (wrap) کلید ارجاع‌داده‌شده، توضیحات و گواهی:

sc-hsm-tool --wrap-key wrap-key.bin --key-reference 1 --pin 648219

باز کردن (unwrap) کلید در همان یا یک SmartCard-HSM دیگر با همان DKEK:

sc-hsm-tool --unwrap-key wrap-key.bin --key-reference 10 --pin 648219 --force

مقداردهی اولیه SmartCard-HSM برای استفاده از احراز هویت کلید عمومی M از N با M=2 و N=5:

sc-hsm-tool --initialize --required-pub-keys 2 --public-key-auth 5

صدور یک کلید عمومی برای احراز هویت کلید عمومی M از N به یک فایل:

sc-hsm-tool --key-reference 1 --export-for-pub-key-auth ./public_key1.asn1

ثبت یک کلید عمومی برای احراز هویت کلید عمومی M از N از یک فایل:

sc-hsm-tool --register-public-key ./public_key1.asn1

opensc-tool(1)

sc-hsm-tool توسط Andreas Schwier <andreas.schwier@cardcontact.de> نوشته شده است.

06/02/2026 opensc