| tpm2_policyduplicationselect(1) | General Commands Manual | tpm2_policyduplicationselect(1) |
نام (NAME)
tpm2_policyduplicationselect - ادغام مجوز تکثیر در خطمشی TPM2
خلاصه دستور (SYNOPSIS)
tpm2_policyduplicationselect [گزینهها]
توضیحات (DESCRIPTION)
دستور tpm2_policyduplicationselect(1) - امکان تکثیر را به یک والد جدید مشخص محدود میکند.
گزینهها (OPTIONS)
- •
- -S, --session=FILE:
فایل نشست خطمشی که از طریق گزینهٔ -S در tpm2_startauthsession(1) تولید شده است.
- •
- -n, --object-name=FILE:
فایل نام ورودی شیئی که باید تکثیر شود.
- •
- -N, --parent-name=FILE:
فایل نام ورودی والد جدید.
- •
- -L, --policy=FILE:
فایلی برای ذخیرهٔ خلاصه خطمشی (policy digest).
- •
- --include-object:
در صورت وجود، نام شیء در مقدار خلاصه خطمشی گنجانده خواهد شد.
مراجع (REFERENCES)
گزینههای عمومی (COMMON OPTIONS)
این مجموعه از گزینهها میان بسیاری از برنامهها مشترک بوده و اطلاعات مورد انتظار کاربران را فراهم میکنند.
- •
- -h, --help=[man|no-man]: نمایش صفحه راهنمای ابزار. بهطور پیشفرض، تلاش میکند صفحهبند راهنما (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 ارسال میشود تا انجام عملیات را مجاز کند. از این گزینه میتوان برای جلوگیری از بروز مشکل در مواردی که نشستهای بدون سالت در حالت OpenSSL FIPS استفاده میشوند، بهره برد. اگر مقادیر auth به کار گرفته شوند، باید از یک نشست با سالت برای احراز هویت استفاده شود.
- •
- -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 و شماره درگاه مورد استفاده توسط شبیهساز میتواند مشخص شود. مقادیر پیشفرض 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'.
مشخص کردن نام tabrmd tcti و رشته پیکربندی 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)
راهاندازی خطمشی با نقش تکثیر به یک والد جدید محدودشده
ایجاد والد مبدأ و والد مقصد (یا جدید)
-
tpm2_createprimary -C n -g sha256 -G rsa -c dst_n.ctx -Q tpm2_createprimary -C o -g sha256 -G rsa -c src_o.ctx -Q
ایجاد خطمشی والد محدودشده
-
tpm2_readpublic -c dst_n.ctx -n dst_n.name -Q tpm2_startauthsession -S session.ctx tpm2_policyduplicationselect -S session.ctx -N dst_n.name \ -L policydupselect.dat -Q tpm2_flushcontext session.ctx rm session.ctx
ایجاد شیء مورد نظر برای تکثیر با استفاده از خطمشی
-
tpm2_create -C src_o.ctx -g sha256 -G rsa -r dupkey.priv -u dupkey.pub \ -L policydupselect.dat -a "sensitivedataorigin|sign|decrypt" -c dupkey.ctx -Q tpm2_readpublic -c dupkey.ctx -n dupkey.name -Q
برآورده ساختن الزامات خطمشی و تکثیر شیء
-
tpm2_startauthsession -S session.ctx --policy-session tpm2_policyduplicationselect -S session.ctx -N dst_n.name -n dupkey.name -Q tpm2_duplicate -C dst_n.ctx -c dupkey.ctx -G null -p session:session.ctx \ -r new_dupkey.priv -s dupseed.dat tpm2_flushcontext session.ctx rm session.ctx
نکات (NOTES)
- •
- این دستور معمولاً در هماهنگی با tpm2_duplicate(1) کار میکند، بنابراین مراجعه به صفحه راهنمای tpm2_duplicate(1) توصیه میشود.
- •
- این دستور کد دستور نشست خطمشی را روی TPM_CC_Duplicate تنظیم میکند که نقش تکثیر خطمشی را فعال میسازد.
کدهای بازگشتی (RETURNS)
ابزارها میتوانند هر یک از کدهای زیر را برگردانند:
- •
- 0 - موفقیتآمیز.
- •
- 1 - خطای عمومی و نامشخص.
- •
- 2 - خطای پردازش گزینهها.
- •
- 3 - خطای احراز هویت.
- •
- 4 - خطای مرتبط با TCTI.
- •
- 5 - طرح پشتیبانینشده. مربوط به tpm2_testparams.
محدودیتها (LIMITATIONS)
این ابزار انتظار دارد نشستی از قبل از طریق tpm2_startauthsession(1) ایجاد شده باشد و به یکی از موارد زیر نیاز دارد:
- •
- دسترسی مستقیم به دستگاه
- •
- پشتیبانی از نشست توسعهیافته با tpm2-abrmd.
بدون آن، بیشتر مدیران منابع وضعیت نشست را بین فراخوانیهای دستور ذخیره نخواهند کرد.
اشکالات (BUGS)
راهنما (HELP)
مشاهدهٔ فهرست پستی (Mailing List)
مجوز (LICENSE)
این اثر تحت مجوز بینالمللی Creative Commons Attribution 4.0 (CC BY 4.0) منتشر شده است.
| tpm2-tools |