tpm2_geteccparameters(1) General Commands Manual tpm2_geteccparameters(1)

tpm2_geteccparameters - بازیابی پارامترهای منحنی ECC شناسایی‌شده با curveID تخصیص‌یافته توسط TCG

tpm2_geteccparameters [گزینه‌ها]

tpm2_geteccparameters(1) - پارامترهای یک منحنی ECC را که با شناسه منحنی (curveID) تخصیص‌یافته توسط TCG مشخص می‌شود، بازیابی می‌کند.

•
ARGUMENT=ALGORITHM:

منحنی ECC را مشخص می‌کند. به عنوان مثال ecc521.

•
-o, --output=FILE

مسیر فایل را برای ذخیره پارامترهای ECC مشخص می‌کند.

•
--cphash=FILE

مسیر فایل برای ثبت هش پارامترهای دستور. این مقدار معمولاً cpHash نامیده می‌شود. نکته: هنگامی که این گزینه انتخاب شود، ابزار در واقع دستور را اجرا نخواهد کرد و صرفاً مقدار cpHash را بازمی‌گرداند.

گزینه‌هایی که الگوریتم‌ها را دریافت می‌کنند از «نام‌های مناسب» (nice-names) پشتیبانی می‌کنند.

دو دسته اصلی برای رشته‌های تعیین الگوریتم وجود دارد: ساده و پیچیده. تنها برخی از الگوریتم‌ها بر اساس نوع استفاده و شرایط توسط TPM پذیرفته می‌شوند.

این‌ها رشته‌هایی بدون داده‌های مشخص‌کننده اضافی هستند. هنگام ایجاد اشیاء، بخش‌های نامشخص یک شیء بر اساس مقادیر پیش‌فرض در نظر گرفته می‌شوند. فهرست «مشخص‌کننده‌های ساده» شناخته‌شده را می‌توانید در زیر بیابید.

•
rsa
•
ecc

•
aes
•
camellia
•
sm4

•
sha1
•
sha256
•
sha384
•
sha512
•
sm3_256
•
sha3_256
•
sha3_384
•
sha3_512

•
hmac
•
xor

•
rsassa
•
rsapss
•
ecdsa
•
ecdaa
•
ecschnorr
•
sm2

•
oaep
•
rsaes
•
ecdh

•
ctr
•
ofb
•
cbc
•
cfb
•
ecb

•
null

اشیاء، هنگامی که برای ایجاد توسط TPM مشخص می‌شوند، الگوریتم‌های متعددی برای مقداردهی در داده‌های عمومی دارند؛ مواردی مانند نوع، طرح و جزئیات نامتقارن، اندازه کلید و غیره. در زیر قالب کلی برای مشخص کردن این داده‌ها آمده است: <type>:<scheme>:<symmetric-details>

این بخش از مشخص‌کننده الگوریتم پیچیده الزامی است. طرح و جزئیات متقارن باقی‌مانده بر اساس نوع مشخص‌شده و نوع شیء در حال ایجاد، پیش‌فرض خواهند شد.

•
aes - مقدار پیش‌فرض AES: مقدار aes128
•
aes128<mode> - رمزنگاری AES با کلید ۱۲۸ بیتی و حالت اختیاری (ctr|ofb|cbc|cfb|ecb). اگر حالت مشخص نشود، پیش‌فرض به null تغییر می‌یابد.
•
aes192<mode> - مشابه aes128<mode>، به جز اندازه کلید ۱۹۲ بیتی.
•
aes256<mode> - مشابه aes128<mode>، به جز اندازه کلید ۲۵۶ بیتی.
•
sm4 - مقدار پیش‌فرض SM4: مقدار sm4128
•
sm4128 یا sm4_128 <mode> - الگوریتم SM4 با کلید ۱۲۸ بیتی و حالت اختیاری (ctr|ofb|cbc|cfb|ecb). اگر حالت مشخص نشود، پیش‌فرض به null تغییر می‌یابد.
•
ecc - منحنی بیضوی، پیش‌فرض به ecc256.
•
ecc192 یا ecc_nist_p192 - منحنی ۱۹۲ بیتی ECC NIST
•
ecc224 یا ecc_nist_p224 - منحنی ۲۲۴ بیتی ECC NIST
•
ecc256 یا ecc_nist_p256 - منحنی ۲۵۶ بیتی ECC NIST
•
ecc384 یا ecc_nist_p384 - منحنی ۳۸۴ بیتی ECC NIST
•
ecc521 یا ecc_nist_p521 - منحنی ۵۲۱ بیتی ECC NIST
•
ecc_sm2 یا ecc_sm2_p256 - منحنی ۲۵۶ بیتی SM2
•
rsa - مقدار پیش‌فرض RSA: مقدار rsa2048
•
rsa1024 - الگوریتم RSA با اندازه کلید ۱۰۲۴ بیت.
•
rsa2048 - الگوریتم RSA با اندازه کلید ۲۰۴۸ بیت.
•
rsa3072 - الگوریتم RSA با اندازه کلید ۳۰۷۲ بیت.
•
rsa4096 - الگوریتم RSA با اندازه کلید ۴۰۹۶ بیت.

مورد بعدی، یک فیلد اختیاری است و می‌توان از آن صرف‌نظر کرد.

طرح‌ها معمولاً طرح‌های امضا یا طرح‌های رمزنگاری نامتقارن هستند. اکثر طرح‌های امضا مستقیماً پس از طرح امضا یک الگوریتم درهم‌سازی دریافت می‌کنند. اگر الگوریتم درهم‌سازی مشخص نشود، پیش‌فرض آن sha256 خواهد بود. برخی هیچ آرگومانی دریافت نمی‌کنند، و برخی چندین آرگومان می‌پذیرند.

این مشخص‌کننده‌های طرح با یک خط تیره و یک الگوریتم درهم‌سازی معتبر دنبال می‌شوند؛ برای مثال: oaep-sha256.

•
oaep
•
ecdh
•
rsassa
•
rsapss
•
ecdsa
•
ecschnorr
•
sm2

این مشخص‌کننده طرح با یک شمارنده (حداکثر اندازه UINT16) و به دنبال آن یک خط تیره (-) و یک الگوریتم درهم‌سازی معتبر دنبال می‌شود. * ecdaa برای مثال، ecdaa4-sha256. اگر هیچ شمارنده‌ای مشخص نشود، پیش‌فرض آن ۴ است.

این مشخص‌کننده طرح هیچ آرگومانی دریافت نمی‌کند. * rsaes

این فیلد اختیاری است و بر اساس نوع شیء در حال ایجاد و ویژگی‌های آن به طور پیش‌فرض تعیین می‌شود. به طور کلی، هر مشخص‌کننده متقارن معتبر از فهرست مشخص‌کننده‌های نوع باید به درستی کار کند. در صورت عدم تعیین، جزئیات متقارن اشیاء نامتقارن به طور پیش‌فرض aes128cfb در نظر گرفته می‌شود.

tpm2_create -C parent.ctx -G rsa2048:rsaes -u key.pub -r key.priv

/tpm2_create -C parent.ctx -G ecc256:ecdaa4-sha384 -u key.pub -r key.priv الگوریتم‌های رمزنگاری ALGORITHM.

این مجموعه از گزینه‌ها بین بسیاری از برنامه‌ها مشترک بوده و اطلاعات مورد انتظار کاربران را ارائه می‌دهند.

•
-h, --help=[man|no-man]: نمایش صفحه راهنمای ابزار. به طور پیش‌فرض، تلاش می‌کند صفحه‌بند راهنما (manpager) را برای ابزار فراخوانی کند؛ با این حال در صورت شکست، خلاصه‌ای کوتاه از ابزار را خروجی می‌دهد. این رفتار در صورتی که آرگومان گزینه «man» مشخص شده باشد نیز یکسان است؛ اما اگر «man» صریحاً درخواست شود، ابزار خطاهای man را در stderr ارائه می‌دهد. اگر گزینه «no-man» مشخص شود، یا فراخوانی صفحه‌بند راهنما با شکست مواجه گردد، گزینه‌های کوتاه در stdout چاپ خواهند شد.

استفاده موفقیت‌آمیز از ویژگی صفحات راهنما نیازمند نصب بودن صفحات راهنما یا قرار داشتن در MANPATH است؛ برای جزئیات بیشتر man(1) را ببینید.

•
-v, --version: نمایش اطلاعات نسخه این ابزار، TCTIهای پشتیبانی‌شده و خروج.
•
-V, --verbose: افزایش اطلاعاتی که ابزار در طول اجرای خود در کنسول چاپ می‌کند. هنگام استفاده از این گزینه، نام فایل و شماره خط چاپ می‌شوند.
•
-Q, --quiet: بی‌صدا کردن خروجی عادی ابزار در stdout.
•
-Z, --enable-errata: فعال‌سازی اعمال اصلاحات خطانامه (errata fixups). زمانی که نیاز به اعمال یک اصلاح خطانامه روی دستورات ارسالی به TPM باشد مفید است. تعریف متغیر محیطی TPM2TOOLS_ENABLE_ERRATA معادل این گزینه است.
•
-z, --pwd-session: استفاده از نشست رمز عبور به جای نشست HMAC برای احراز هویت. یک رمز عبور متن‌ساده (clear text) برای صدور مجوز اقدام به TPM ارسال می‌شود. این گزینه می‌تواند برای جلوگیری از بروز مشکل در مواردی که نشست‌های بدون سالت در حالت OpenSSL FIPS استفاده می‌شوند، به کار رود. اگر مقادیر احراز هویت استفاده شوند، باید از یک نشست با سالت برای احراز هویت استفاده شود.
•
-R, --autoflush: فعال‌سازی تخلیه خودکار (autoflush) برای اشیاء موقتی ایجادشده توسط دستور. اگر یک شیء والد از یک فایل زمینه بارگذاری شده باشد، شیء والد موقتی نیز تخلیه خواهد شد. تخلیه خودکار همچنین در صورتی که متغیر محیطی TPM2TOOLS_AUTOFLUSH روی yes یا true تنظیم شده باشد فعال می‌شود. اطلاعاتی که بسیاری از کاربران انتظار دارند.

رابط TCTI یا «Transmission Interface» سازوکار ارتباطی با TPM است. TCTIها را می‌توان برای ارتباط با TPM از طریق بسترهای مختلف تغییر داد.

برای کنترل TCTI، ابزارها به موارد زیر توجه دارند:

1.
گزینه خط فرمان -T یا --tcti
2.
متغیر محیطی: TPM2TOOLS_TCTI.

نکته: گزینه خط فرمان همواره بر متغیر محیطی اولویت دارد.

TCTIهای شناخته‌شده فعلی عبارتند از:

•
tabrmd - مدیر منابع، موسوم به tabrmd. توجه داشته باشید که tabrmd و abrmd به عنوان نام tcti مترادف یکدیگرند.
•
mssim - معمولاً برای برقراری ارتباط با شبیه‌ساز نرم‌افزاری TPM استفاده می‌شود.
•
device - هنگام برقراری ارتباط مستقیم با فایل دستگاه TPM استفاده می‌شود.
•
none - عدم مقداردهی اولیه ارتباط با TPM. برخی ابزارها اجازه گزینه‌های خارج از TPM را می‌دهند و بنابراین از عدم استفاده از TCTI پشتیبانی می‌کنند. ابزارهایی که از آن پشتیبانی نمی‌کنند، در صورت تلاش برای استفاده بدون اتصال TCTI با خطا مواجه می‌شوند. از هیچ گزینه‌ای پشتیبانی نمی‌کند و باید دقیقاً به صورت متن «none» ارائه شود.

آرگومان‌های ارسال‌شده به گزینه خط فرمان یا متغیر محیطی به این قالب هستند:

<tcti-name>:<tcti-option-config>

مشخص کردن یک رشته خالی برای هر یک از <tcti-name> یا <tcti-option-config> باعث استفاده از مقدار پیش‌فرض مربوط به آن بخش می‌شود.

هنگامی که TCTI مشخص نشده باشد، TCTI پیش‌فرض با استفاده از معناشناسی dlopen(3) جستجو می‌شود. ابزارها TCTIهای tabrmd، device و mssim را به همین ترتیب جستجو کرده و از اولین مورد یافت‌شده استفاده می‌کنند. می‌توانید با استفاده از گزینه -v برای چاپ اطلاعات نسخه، بررسی کنید که کدام TCTI به عنوان پیش‌فرض انتخاب خواهد شد. جفت کلید-مقدار «default-tcti» مشخص می‌کند که کدام یک از TCTIهای یادشده پیش‌فرض است.

هر TCTI که رابط پویای TCTI را پیاده‌سازی کند می‌تواند بارگذاری شود. ابزارها در داخل از dlopen(3) استفاده می‌کنند و مقدار خام tcti-name برای جستجو به کار می‌رود. بنابراین، این مقدار می‌تواند یک مسیر به کتابخانه اشتراکی یا نام کتابخانه باشد، همان‌طور که توسط معناشناسی dlopen(3) درک می‌شود.

این مجموعه از گزینه‌ها برای پیکربندی ماژول‌های مختلف TCTI در دسترس استفاده می‌شوند:

•
device: برای TCTI دستگاه، فایل دستگاه کاراکتری TPM برای استفاده توسط TCTI دستگاه می‌تواند مشخص شود. پیش‌فرض /dev/tpm0 است.

مثال: -T device:/dev/tpm0 یا export TPM2TOOLS_TCTI=“device:/dev/tpm0”

•
mssim: برای TCTI شبیه‌ساز mssim، نام دامنه یا آدرس IP و شماره پورت مورد استفاده توسط شبیه‌ساز می‌تواند مشخص شود. مقادیر پیش‌فرض 127.0.0.1 و 2321 هستند.

مثال: -T mssim:host=localhost,port=2321 یا export TPM2TOOLS_TCTI=“mssim:host=localhost,port=2321”

•
abrmd: برای TCTI مربوط به abrmd، قالب رشته پیکربندی مجموعه‌ای از جفت‌های کلید-مقدار ساده است که با نویسه «,» از هم جدا می‌شوند. هر رشته کلید و مقدار با نویسه «=» از هم جدا می‌شوند.
•
رابط TCTI abrmd از دو کلید پشتیبانی می‌کند:
1.
`bus_name' : نام سرویس tabrmd روی گذرگاه (یک رشته).
2.
`bus_type' : نوع نمونه dbus (یک رشته) محدود به `session' و `system'.

مشخص کردن نام tabrmd tcti و رشته پیکربندی bus_name=com.example.FooBar:

\--tcti=tabrmd:bus_name=com.example.FooBar

مشخص کردن tcti پیش‌فرض (abrmd) و رشته پیکربندی bus_type=session:

\--tcti:bus_type=session

نکته: abrmd و tabrmd مترادف هستند. ماژول‌های مختلف شناخته‌شده TCTI.

tpm2_geteccparameters ecc256 -o ecc.params

ابزارها می‌توانند هر یک از کدهای زیر را برگردانند:

•
0 - موفقیت.
•
1 - خطای عمومی نامشخص.
•
2 - خطای مدیریت گزینه‌ها.
•
3 - خطای احراز هویت.
•
4 - خطای مربوط به TCTI.
•
5 - طرح پشتیبانی‌نشده. قابل اعمال برای tpm2_testparams.

مشکلات گیت‌هاب (Github Issues)

مشاهده فهرست پستی (Mailing List)

این اثر تحت مجوز بین‌المللی ارجاع ۴٫۰ کریپتیو کامانز (CC BY 4.0).

tpm2-tools