tpm2_policycountertimer(1) General Commands Manual tpm2_policycountertimer(1)

tpm2_policycountertimer - فعال‌سازی مجوز خط‌مشی با ارزیابی عملیات مقایسه روی پارامترهای زمان، ساعت، تعداد بازنشانی، تعداد راه‌اندازی مجدد و نشانگر امن بودن ساعت TPM

tpm2_policycountertimer [گزینه‌ها] [آرگومان]

دستور 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 بررسی می‌گردد.

•
-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 برمی‌گرداند.

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

•
-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 مخفف “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 مترادف یکدیگرند. ماژول‌های مختلف شناخته‌شده TCTI.

ایجاد یک شیء مهروموم‌کننده (sealing object) با یک خط‌مشی احراز اصالت که تنها برای اولین دقیقه از راه‌اندازی مجدد TPM معتبر است.

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

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

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

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

انتظار می‌رود نشستی از پیش از طریق tpm2_startauthsession(1) ایجاد شده باشد و به یکی از موارد زیر نیاز دارد:

•
دسترسی مستقیم به دستگاه
•
پشتیبانی از نشست گسترش‌یافته با tpm2-abrmd.

بدون آن، اکثر مدیران منابع وضعیت نشست را در بین فراخوانی‌های دستور ذخیره نخواهند کرد.

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

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

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

tpm2-tools