tpm2_getcap(1) General Commands Manual tpm2_getcap(1)

tpm2_getcap - نمایش قابلیت‌های TPM در قالبی خوانا برای انسان

tpm2_getcap [گزینه‌ها] [CAPABILITY]

دستور tpm2_getcap(1) قابلیت‌ها / ویژگی‌های TPM را استعلام کرده و آن‌ها را در کنسول چاپ می‌کند. این ابزار یک فرم رشته‌ای از قابلیت مورد استعلام را به عنوان آرگومان دریافت می‌کند. گروه‌های قابلیت‌هایی که در حال حاضر پشتیبانی می‌شوند عبارتند از:

•
algorithms: نمایش داده‌های مربوط به الگوریتم‌های پشتیبانی‌شده.
•
commands: نمایش داده‌های مربوط به دستورات پشتیبانی‌شده.
•
pcrs: نمایش PCRهای تخصیص‌یافتهٔ فعلی.
•
properties-fixed: نمایش ویژگی‌های ثابت TPM.
•
properties-variable: نمایش ویژگی‌های متغیر TPM.
•
ecc-curves: نمایش داده‌های مربوط به منحنی‌های بیضوی (Elliptic Curves).
•
handles-transient: نمایش دستگیره‌های (handles) مربوط به اشیاء گذرا.
•
handles-persistent: نمایش دستگیره‌های مربوط به اشیاء پایدار.
•
handles-permanent: نمایش دستگیره‌های مربوط به اشیاء دائمی.
•
handles-pcr: نمایش دستگیره‌های مربوط به PCRها.
•
handles-nv-index: نمایش دستگیره‌های مربوط به شاخص‌های NV (حافظه غیرفرار).
•
handles-loaded-session: نمایش دستگیره‌های مربوط به هر دو نوع نشست‌های بارگذاری‌شدهٔ HMAC و خط‌مشی (policy).
•
handles-saved-session: نمایش دستگیره‌های مربوط به نشست‌های ذخیره‌شده.
•
vendor[:num]: نمایش ویژگی‌های سازنده به عنوان خروجی بافر هگزادسیمال. رشتهٔ “vendor” می‌تواند با یک دونقطه و به دنبال آن عددی که توسط strtoul(3) در مبنای ۰ تفسیر می‌شود پایان یابد. این مقدار به عنوان مقدار ویژگی در دستور TPM2_GetCapability استفاده می‌شود و پیش‌فرض آن ۱ است. نمونه‌ای برای فراخوانی آن با مقدار ویژگی ۲: tpm2_getcap vendor:2

نکته: اگر درخواست‌های vendor متوقف شدند، گزینهٔ “-i” را امتحان کنید تا فیلد moreData نادیده گرفته شده و فقط یک بار خوانده شود.

•
-l، --list:

فهرست کردن نام قابلیت‌های پشتیبانی‌شده و شناخته‌شده. این نام‌ها می‌توانند به عنوان آرگومان به tpm2_getcap(1) ارسال شوند. خروجی به صورت یک فهرست سازگار با YAML در خروجی استاندارد (stdout) نمایش داده می‌شود.

برای مثال:

- algorithms
- commands
- properties-fixed
...
•
--ignore-moredata

نادیده گرفتن فیلد moreData هنگام کار با پاسخ‌های دارای اشکال TPM.

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

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

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

•
-v، --version: نمایش اطلاعات نسخه برای این ابزار، TCTIهای پشتیبانی‌شده و خروج.
•
-V، --verbose: افزایش اطلاعاتی که ابزار در طول اجرای خود در کنسول چاپ می‌کند. هنگام استفاده از این گزینه، نام فایل و شماره خط چاپ می‌شوند.
•
-Q، --quiet: بی‌صدا کردن خروجی عادی ابزار به stdout.
•
-Z، --enable-errata: فعال‌سازی اعمال اصلاحات اشکالات (errata fixups). زمانی مفید است که نیاز باشد اصلاحات errata به دستورات ارسالی به TPM اعمال شوند. تعریف متغیر محیطی TPM2TOOLS_ENABLE_ERRATA نیز معادل این گزینه است.
•
-z، --pwd-session: استفاده از نشست گذرواژه‌ای به‌جای نشست HMAC برای احراز اصالت. یک گذرواژه متن‌آشکار (clear text) به TPM ارسال می‌شود تا عملیات را مجاز کند. این گزینه می‌تواند برای جلوگیری از بروز مشکل هنگام استفاده از نشست‌های بدون نمک (unsalted) در حالت OpenSSL FIPS استفاده شود. اگر مقادیر auth استفاده شوند، باید از یک نشست نمک‌دار (salted) برای احراز اصالت استفاده شود.
•
-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 (off-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 دستگاه (device)، فایل دستگاه نویسه‌ای (character device) 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'.

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

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

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

\--tcti:bus_type=session

نکته: abrmd و tabrmd مترادف یکدیگرند.

tpm2_getcap properties-fixed

tpm2_getcap -l

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

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

مسائل گیت‌هاب (Github Issues)

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

tpm2(1)

این اثر تحت مجوز بین‌المللی Creative Commons Attribution 4.0 (CC BY 4.0) منتشر شده است.

tpm2-tools