| tpm2_policycountertimer(1) | General Commands Manual | tpm2_policycountertimer(1) |
نام (NAME)
tpm2_policycountertimer - فعالسازی مجوز خطمشی با ارزیابی عملیات مقایسه روی پارامترهای زمان، ساعت، تعداد بازنشانی، تعداد راهاندازی مجدد و نشانگر امن بودن ساعت TPM
خلاصه دستور (SYNOPSIS)
tpm2_policycountertimer [گزینهها] [آرگومان]
توضیحات (DESCRIPTION)
دستور tpm2_policycountertimer(1) مجوز خطمشی را از طریق ارزیابی عملیات مقایسه روی پارامترهای زمان (time)، ساعت (clock)، تعداد بازنشانی (reset count)، تعداد راهاندازی مجدد (restart count) و پرچم امن بودن ساعت TPM فعال میکند. اگر پارامتر time یا clock باشد، مقدار ورودی برحسب میلیثانیه داده میشود. پارامتر و مقدار آن به صورت یک آرگومان خط فرمان مانند زیر مشخص میشوند:
-
tpm2_policycountertimer -S session.ctx safe tpm2_policycountertimer -S session.ctx clock=<N ms> tpm2_policycountertimer -S session.ctx time=<N ms> tpm2_policycountertimer -S session.ctx resets=<N> tpm2_policycountertimer -S session.ctx restarts=<N>
بهطور پیشفرض، مقایسه برای برابری بررسی میشود و همچنین به صورت پیشفرض، پارامتر time بررسی میگردد.
گزینهها (OPTIONS)
- •
- -L, --policy=FILE:
فایل برای ذخیره خلاصهساز (دایجست) خطمشی.
- •
- -S, --session=FILE:
فایل نشست خطمشی که از طریق گزینهٔ -S در tpm2_startauthsession ایجاد شده یا از اجرای قبلی ابزار ذخیره شده است.
- •
- –eq
اگر مقدار زمان جاری در TPM = مقدار زمان ورودی مشخصشده باشد.
- •
- –neq
اگر مقدار زمان جاری در TPM != مقدار زمان ورودی مشخصشده باشد.
- •
- –sgt
اگر مقدار علامتدار زمان جاری در TPM > مقدار علامتدار زمان ورودی مشخصشده باشد.
- •
- –ugt
اگر مقدار بدون علامت زمان جاری در TPM > مقدار بدون علامت زمان ورودی مشخصشده باشد.
- •
- –slt
اگر مقدار علامتدار زمان جاری در TPM < مقدار علامتدار زمان ورودی مشخصشده باشد.
- •
- –ult
اگر مقدار بدون علامت زمان جاری در TPM < مقدار بدون علامت زمان ورودی مشخصشده باشد.
- •
- –sge
اگر مقدار علامتدار زمان جاری در TPM >= مقدار علامتدار زمان ورودی مشخصشده باشد.
- •
- –uge
اگر مقدار بدون علامت زمان جاری در TPM >= مقدار بدون علامت زمان ورودی مشخصشده باشد.
- •
- –sle
اگر مقدار علامتدار زمان جاری در TPM <= مقدار بدون علامت زمان ورودی مشخصشده باشد.
- •
- –ule
اگر مقدار بدون علامت زمان جاری در TPM <= مقدار بدون علامت زمان ورودی مشخصشده باشد.
- •
- –bs
اگر تمام بیتهای تنظیمشده در مقدار زمان جاری در TPM، در مقدار زمان ورودی مشخصشده نیز تنظیم شده باشند.
- •
- –bc
اگر تمام بیتهای تنظیمشده در مقدار زمان جاری در TPM، در مقدار زمان ورودی مشخصشده پاک (صفر) باشند.
- •
- --cphash=FILE
مسیر فایل برای ثبت درهمسازی پارامترهای دستور. این مقدار معمولاً به عنوان cpHash شناخته میشود. نکته: هنگامی که این گزینه انتخاب شود، ابزار عملاً دستور را اجرا نمیکند و صرفاً یک cpHash برمیگرداند.
مراجع (References)
گزینههای عمومی (COMMON OPTIONS)
این مجموعه از گزینهها میان بسیاری از برنامهها مشترک هستند و اطلاعاتی را ارائه میدهند که بسیاری از کاربران انتظار دارند.
- •
- -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). مفید در زمانی که یک اصلاح غلطنامه نیاز است بر روی دستورات ارسالی به TPM اعمال شود. تعریف متغیر محیطی TPM2TOOLS_ENABLE_ERRATA معادل این گزینه است.
- •
- -z, --pwd-session: استفاده از نشست گذرواژه به جای نشست HMAC برای احراز هویت. یک گذرواژه متنی آشکار برای مجاز کردن عملیات به TPM ارسال میشود. این گزینه میتواند برای جلوگیری از بروز مشکلات در زمان استفاده از نشستهای بدون نمک (unsalted) در حالت OpenSSL FIPS استفاده شود. اگر از مقادیر auth استفاده میشود، باید از یک نشست نمکدار (salted) برای احراز هویت استفاده شود.
- •
- -R, --autoflush: فعالسازی تخلیه خودکار (autoflush) برای اشیاء گذرای ایجادشده توسط دستور. اگر یک شیء والد از یک فایل بافتار بارگذاری شود، شیء والد گذرا نیز تخلیه خواهد شد. تخلیه خودکار همچنین میتواند در صورتی که متغیر محیطی TPM2TOOLS_AUTOFLUSH روی yes یا true تنظیم شده باشد، فعال گردد. اطلاعاتی که ممکن است بسیاری از کاربران انتظار داشته باشند.
پیکربندی TCTI (TCTI Configuration)
رابط انتقال یا 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 Defaults)
هنگامی که یک TCTI مشخص نشده باشد، TCTI پیشفرض با استفاده از معناشناسی dlopen(3) جستجو میشود. ابزارها به دنبال TCTIهای tabrmd، device و mssim به همان ترتیب میگردند و از اولین موردی که یافت شد استفاده میکنند. میتوانید با استفاده از گزینهٔ -v برای چاپ اطلاعات نسخه، بررسی کنید که کدام TCTI به عنوان پیشفرض انتخاب خواهد شد. جفت کلید-مقدار “default-tcti” نشان میدهد که کدام یک از TCTIهای یادشده پیشفرض است.
TCTIهای سفارشی (Custom TCTIs)
هر TCTI که رابط پویای TCTI را پیادهسازی کند میتواند بارگذاری شود. ابزارها در داخل از dlopen(3) استفاده میکنند و مقدار خام tcti-name برای جستجو استفاده میشود. بنابراین، این مقدار میتواند مسیری به کتابخانه مشترک یا نام کتابخانهای باشد که بر اساس معناشناسی dlopen(3) قابل فهم است.
گزینههای TCTI (TCTI OPTIONS)
این مجموعه از گزینهها برای پیکربندی ماژولهای مختلف 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 مترادف یکدیگرند. ماژولهای مختلف شناختهشده TCTI.
مثالها (EXAMPLES)
ایجاد یک شیء مهرومومکننده (sealing object) با یک خطمشی احراز اصالت که تنها برای اولین دقیقه از راهاندازی مجدد TPM معتبر است.
ایجاد خطمشی و شیء مهرومومکننده (Create the policy and the sealing object)
-
tpm2_startauthsession -S session.ctx tpm2_policycountertimer -S session.ctx -L policy.countertimer --ult 60000 tpm2_flushcontext session.ctx tpm2_createprimary -C o -c prim.ctx -Q echo "SUPERSECRET" | \ tpm2_create -Q -u key.pub -r key.priv -i- -C prim.ctx \ -L policy.countertimer -a "fixedtpm|fixedparent" -c key.ctx
بازگشایی مهروموم (Unsealing) باید در اولین دقیقه پس از راهاندازی مجدد TPM کار کند
-
tpm2_startauthsession -S session.ctx --policy-session tpm2_policycountertimer -S session.ctx --ult 60000 tpm2_unseal -c key.ctx -p session:session.ctx tpm2_flushcontext session.ctx
کدهای بازگشتی (RETURNS)
ابزارها میتوانند هر یک از کدهای زیر را برگردانند:
- •
- 0 - موفقیت.
- •
- 1 - خطای کلی نامشخص.
- •
- 2 - خطای مدیریت گزینهها.
- •
- 3 - خطای احراز هویت.
- •
- 4 - خطای مرتبط با TCTI.
- •
- 5 - طرح پشتیبانینشده (Non supported scheme). قابل اعمال بر tpm2_testparams.
محدودیتها (LIMITATIONS)
انتظار میرود نشستی از پیش از طریق tpm2_startauthsession(1) ایجاد شده باشد و به یکی از موارد زیر نیاز دارد:
- •
- دسترسی مستقیم به دستگاه
- •
- پشتیبانی از نشست گسترشیافته با tpm2-abrmd.
بدون آن، اکثر مدیران منابع وضعیت نشست را در بین فراخوانیهای دستور ذخیره نخواهند کرد.
اشکالات (BUGS)
راهنما (HELP)
مشاهدهٔ فهرست پستی (Mailing List)
مجوز (LICENSE)
این اثر تحت مجوز بینالمللی Creative Commons Attribution 4.0 (CC BY 4.0)منتشر شده است.
| tpm2-tools |