tpm2_send(1) General Commands Manual tpm2_send(1)

tpm2_send(1) - ارسال یک بافر دستور خام به TPM.

tpm2_send [OPTIONS] [STDIN]

دستور tpm2_send(1) یک دستور TPM را به TPM ارسال می‌کند. دستور از یک فایل به عنوان یک جریان دودویی (binary stream) خوانده شده و با استفاده از TCTI مشخص‌شده توسط فراخواننده به TPM منتقل می‌شود. پاسخ دریافت‌شده از TPM در فایل خروجی نوشته می‌شود.

به احتمال زیاد فراخواننده تمایل خواهد داشت این خروجی را به یک فایل یا یک برنامه هدایت کند تا پاسخ را رمزگشایی کرده و به شکلی خوانا برای انسان نمایش دهد.

•
-o، --output=FILE:

فایل خروجی برای ارسال بافر پاسخ به آن. پیش‌فرض STDOUT است.

•
**_STDIN** فایل حاوی دستور TPM2.

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

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

برای استفاده موفقیت‌آمیز از ویژگی manpages نیاز است که صفحات راهنما نصب شده یا در 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 ارسال می‌شود. این گزینه می‌تواند برای جلوگیری از بروز مشکلات در صورت استفاده از نشست‌های بدون نمک (unsalted) در حالت OpenSSL FIPS به کار رود. اگر از مقادیر auth استفاده شود، باید از یک نشست با نمک (salted) برای احراز هویت استفاده شود.
•
-R، --autoflush: فعال‌سازی پاک‌سازی خودکار (autoflush) برای اشیاء موقت (transient) ایجادشده توسط دستور. اگر یک شیء والد از یک فایل زمینه (context) بارگیری شود، شیء والد موقت نیز پاک‌سازی خواهد شد. همچنین اگر متغیر محیطی TPM2TOOLS_AUTOFLUSH برابر yes یا true تنظیم شده باشد، autoflush می‌تواند فعال شود. اطلاعاتی که ممکن است بسیاری از کاربران انتظار داشته باشند.

رابط انتقال یا 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 دستگاه، فایل دستگاه نویسه‌ای 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 مترادف یکدیگر هستند. ماژول‌های مختلف TCTI شناخته‌شده.

ارسال محتویات tpm2-command.bin به یک دستگاه و جمع‌آوری پاسخ در قالب tpm2-response.bin.

tpm2_send < tpm2-command.bin > tpm2-response.bin
tpm2_send < tpm2-command.bin -o tpm2-response.bin

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

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

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

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

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

tpm2-tools