tpm2_readclock(1) General Commands Manual tpm2_readclock(1)

tpm2_readclock - دریافت اطلاعات زمانی از TPM

tpm2_readclock [OPTIONS]

دستور tpm2_readclock(1) ساختار فعلی TPMS_TIME_INFO را از TPM می‌خواند. این ساختار شامل تنظیمات کنونی Time، Clock، resetCount و restartCount است. این ساختار به صورت YAML در خروجی استاندارد (stdout) نمایش داده می‌شود. خروجی YAML به این صورت تعریف شده است:

time: 13673142     # 64 bit value of time TPM has been powered on in ms.
clock_info:
  clock: 13673142  # 64 bit value of time TPM has been powered on since last TPM2_Clear in ms.
  reset_count: 0   # 32 bit value of the number of TPM Resets since the last
                   # TPM2_Clear.
  restart_count: 0 # 32 bit value of the number of times that TPM2_Shutdown or
                   # _TPM_Hash_Start have occurred since the last TPM Reset or
                   # TPM2_Clear.
  safe: yes        # boolean yes|no value that no value of Clock greater than
                   # the current value of Clock has been previously reported by
                   # the TPM.

این ابزار هیچ آرگومان و گزینهٔ خاصی دریافت نمی‌کند.

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

•
-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 ارسال می‌شود. این گزینه می‌تواند برای جلوگیری از مشکلات هنگام استفاده از نشست‌های بدون سالت (unsalted) در حالت OpenSSL FIPS استفاده شود. اگر مقادیر احراز هویت استفاده می‌شوند، باید از یک نشست سالت‌دار (salted) برای احراز هویت استفاده شود.
•
-R، --autoflush: فعال‌سازی تخلیهٔ خودکار (autoflush) برای اشیاء موقت (transient objects) ایجادشده توسط دستور. اگر یک شیء والد از یک فایل زمینه (context file) بارگذاری شود، شیء والد موقت نیز تخلیه خواهد شد. تخلیهٔ خودکار همچنین می‌تواند با تنظیم متغیر محیطی 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 مقداردهی اولیه نمی‌کند. برخی ابزارها گزینه‌های 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، می‌توان فایل دستگاه کاراکتری TPM را جهت استفاده توسط TCTI دستگاه مشخص کرد. پیش‌فرض /dev/tpm0 است.

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

•
mssim: برای TCTI نوع mssim، می‌توان نام دامنه یا آدرس IP و شماره درگاه (port) مورد استفاده توسط شبیه‌ساز را مشخص کرد. مقادیر پیش‌فرض 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_readclock
time: 13673142
clock_info:
  clock: 13673142
  reset_count: 0
  restart_count: 0
  safe: yes

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

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

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

مشاهدهٔ فهرست پستی.

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

tpm2-tools