| tpm2_policyrestart(1) | General Commands Manual | tpm2_policyrestart(1) |
نام (NAME)
tpm2_policyrestart - راهاندازی مجدد نشست خطمشی TPM2
خلاصه دستور (SYNOPSIS)
tpm2_policyrestart [گزینهها]
توضیحات (DESCRIPTION)
دستور tpm2_policyrestart(1) - یک نشست با TPM را به حالت اولیهاش بازنشانی (راهاندازی مجدد) میکند. این قابلیت زمانی مفید است که TPM هنگام استفاده از یک نشست خطمشی PCR، کد خطای TPM_RC_PCR_CHANGED (0x00000128) را برمیگرداند.
اگر وضعیت PCR که بر خطمشی اثر میگذارد در حین نشست تغییر کند، این خطا بازگردانده میشود. کاربر میتواند نشست را دوباره راهاندازی کرده و مجدداً تلاش کند، با این حال وضعیت PCR همچنان باید بتواند خطمشی را برآورده سازد.
گزینهها (OPTIONS)
- •
- -S, --session=FILE:
اختیاری؛ فایل نشست ایجاد شده توسط گزینهٔ -S در tpm2_startauthsession(1). این نشست به جای شروع یک نشست جدید و استفاده از گزینههای خطمشی PCR به کار میرود.
- •
- --cphash=FILE
مسیر فایل برای ثبت درهمسازی (هش) پارامترهای دستور. این مورد معمولاً cpHash نامیده میشود. نکته: با انتخاب این گزینه، ابزار در واقع دستور را اجرا نمیکند، بلکه تنها یک cpHash برمیگرداند.
مراجع (REFERENCES)
گزینههای عمومی (COMMON OPTIONS)
این مجموعه از گزینهها میان بسیاری از برنامهها مشترک هستند و اطلاعاتی را ارائه میدهند که بسیاری از کاربران انتظار دارند.
- •
- -h, --help=[man|no-man]: نمایش صفحه راهنمای (manpage) ابزار. بهطور پیشفرض، تلاش میکند صفحهبند راهنما (manpager) را برای ابزار فراخوانی کند، با این حال در صورت عدم موفقیت خلاصهای کوتاه از ابزار را نشان میدهد. این رفتار مشابه زمانی است که آرگومان گزینهٔ “man” مشخص شده باشد؛ اما اگر صراحتاً “man” درخواست شود، ابزار خطاهای دریافت شده از man را در stderr ارائه میدهد. اگر گزینهٔ “no-man” مشخص شود، یا فراخوانی manpager شکست بخورد، گزینههای کوتاه در خروجی استاندارد (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 استفاده میشوند، به کار رود. اگر مقادیر 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 دستگاه، فایل دستگاه نویسهای 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 مترادف یکدیگرند.
مثالها (EXAMPLES)
شروع یک نشست خطمشی (policy) و راهاندازی مجدد آن، جهت رمزگشایی (unseal) دادهها
-
# ایجاد یک خطمشی و پیوند دادن آن به یک شیء tpm2_startauthsession -S session.dat tpm2_policypcr -S session.dat -l "sha1:0,1,2,3" -L policy.dat tpm2_createprimary -c primary.ctx tpm2_create -Cprimary.ctx -u key.pub -r key.priv -L policy.dat -i- <<< "secret" tpm2_load -C primary.ctx -c key.ctx -u key.pub -r key.priv tpm2_flushcontext session.dat # برآورده کردن خطمشی و استفاده از شیء tpm2_startauthsession --policy -S session.dat tpm2_policypcr -S session.dat -l "sha1:0,1,2,3" # در اینجا رویداد PCR رخ میدهد که باعث شکست عملیات unseal میشود tpm2_pcrevent 0 <<< "event data" tpm2_unseal -psession:session.dat -c key.ct ERROR: Esys_Unseal(0x128) - tpm:error(2.0): PCR have changed since checked # پاکسازی دایجست خطمشی به حالت اولیه؛ توجه داشته باشید که دسترسی به شیء دیگر توسط # خطمشی مجاز نیست، بنابراین policyor در اینجا میتواند مفید باشد. tpm2_policyrestart -S session.dat
کدهای بازگشتی (RETURNS)
ابزارها میتوانند هر یک از کدهای زیر را برگردانند:
- •
- 0 - موفقیتآمیز.
- •
- 1 - خطای عمومی و نامشخص.
- •
- 2 - خطای پردازش گزینهها.
- •
- 3 - خطای احراز هویت.
- •
- 4 - خطای مرتبط با TCTI.
- •
- 5 - طرحوارهٔ پشتیبانینشده. مربوط به tpm2_testparams.
محدودیتها (LIMITATIONS)
این ابزار انتظار دارد نشستی از قبل توسط tpm2_startauthsession(1) ایجاد شده باشد و به یکی از موارد زیر نیاز دارد:
- •
- دسترسی مستقیم به دستگاه
- •
- پشتیبانی از نشست توسعهیافته با tpm2-abrmd.
بدون آن، بیشتر مدیران منابع وضعیت نشست را بین فراخوانیهای دستور ذخیره نخواهند کرد.
اشکالات (BUGS)
راهنما (HELP)
مشاهده فهرست پستی (Mailing List)
مجوز (LICENSE)
این اثر تحت مجوز بینالمللی ارجاع ۴٫۰ کریپتیو کامانز (CC BY 4.0).
| tpm2-tools |