.\" Automatically generated by Pandoc 3.6.1 .\" .TH "tpm2_policynamehash" "1" "" "tpm2\-tools" "General Commands Manual" .SH "نام (NAME)" tpm2_policynamehash \- پیوند دادن یک خط‌مشی با نام‌های اشیاء مشخص\&. .SH "خلاصه دستور (SYNOPSIS)" \f[B]tpm2_policynamehash\f[R] [\f[I]OPTIONS\f[R]] .SH "توضیحات (DESCRIPTION)" دستور \f[B]tpm2_policynamehash\f[R](1) یک خط‌مشی را با نام‌های اشیاء مشخص پیوند می‌دهد\&. این یک ادعای به‌تعویق‌افتاده (deferred assertion) است که در آن، هشِ نام تمامی هندل‌های اشیاء در یک دستور TPM در برابر هش مشخص‌شده در خط‌مشی بررسی و مطابقت داده می‌شود\&. .SH "گزینه‌ها (OPTIONS)" .IP \[bu] 2 \f[B]\-L\f[R], \f[B]\-\-policy\f[R]=\f[I]FILE\f[R]: .RS 2 .PP فایل ذخیره‌سازی چکیدهٔ (digest) مرکب خط‌مشی\&. .RE .IP \[bu] 2 \f[B]\-S\f[R], \f[B]\-\-session\f[R]=\f[I]FILE\f[R]: .RS 2 .PP فایل نشست خط‌مشی تولیدشده از طریق گزینهٔ \f[B]\-S\f[R] در دستور \f[B]tpm2_startauthsession\f[R](1)\&. .RE .IP \[bu] 2 \f[B]\-n\f[R], \f[B]\-\-name\f[R]=\f[I]FILE\f[R]: .RS 2 .PP فایل حاوی هش نام اشیاء ارجاع‌شده\&. .RE .SS "مراجع (References)" .SH "گزینه‌های عمومی (COMMON OPTIONS)" این مجموعه از گزینه‌ها میان بسیاری از برنامه‌ها مشترک هستند و اطلاعاتی را ارائه می‌دهند که اغلب کاربران انتظار دارند\&. .IP \[bu] 2 \f[B]\-h\f[R], \f[B]\-\-help=[man|no\-man]\f[R]: نمایش صفحه راهنمای ابزار\&. به‌طور پیش‌فرض، تلاش می‌کند صفحه‌خوان راهنما (manpager) را برای ابزار فراخوانی کند؛ اما در صورت شکست، خلاصه‌ای کوتاه از ابزار را خروجی می‌دهد\&. این رفتار مشابه زمانی است که آرگومان گزینهٔ \[lq]man\[rq] مشخص شود، اما در صورتی که صریحاً \[lq]man\[rq] درخواست شود، ابزار خطاهای man را در stderr ارائه می‌دهد\&. اگر گزینهٔ \[lq]no\-man\[rq] مشخص شود یا صفحه‌خوان راهنما با شکست مواجه گردد، گزینه‌های کوتاه در stdout چاپ خواهند شد\&. .RS 2 .PP برای استفاده موفقیت‌آمیز از ویژگی صفحات راهنما نیاز است صفحات راهنما نصب شده باشند یا در \f[I]MANPATH\f[R] قرار داشته باشند؛ برای جزئیات بیشتر به man(1) مراجعه کنید\&. .RE .IP \[bu] 2 \f[B]\-v\f[R], \f[B]\-\-version\f[R]: نمایش اطلاعات نسخه برای این ابزار، TCTIهای پشتیبانی‌شده و خروج\&. .IP \[bu] 2 \f[B]\-V\f[R], \f[B]\-\-verbose\f[R]: افزایش میزان اطلاعاتی که ابزار در حین اجرای خود در کنسول چاپ می‌کند\&. هنگام استفاده از این گزینه، نام فایل و شماره خط چاپ می‌شوند\&. .IP \[bu] 2 \f[B]\-Q\f[R], \f[B]\-\-quiet\f[R]: بی‌صدا کردن خروجی عادی ابزار در stdout\&. .IP \[bu] 2 \f[B]\-Z\f[R], \f[B]\-\-enable\-errata\f[R]: فعال‌سازی اعمال اصلاحات اشکالات (errata fixups)\&. این گزینه زمانی مفید است که نیاز باشد اصلاحات errata به دستورات ارسالی به TPM اعمال شوند\&. تعریف متغیر محیطی TPM2TOOLS_ENABLE_ERRATA نیز معادل این عمل است\&. .IP \[bu] 2 \f[B]\-z\f[R], \f[B]\-\-pwd\-session\f[R]: استفاده از نشست گذرواژه به‌جای نشست HMAC برای احراز هویت\&. یک گذرواژه متن‌آشکار (clear text) به TPM ارسال می‌شود تا انجام عملیات را مجاز کند\&. این گزینه می‌تواند برای جلوگیری از بروز مشکل در زمان استفاده از نشست‌های بدون نمک (unsalted) در حالت OpenSSL FIPS استفاده شود\&. اگر مقادیر auth به کار روند، باید از یک نشست با نمک (salted) برای احراز هویت استفاده شود\&. .IP \[bu] 2 \f[B]\-R\f[R], \f[B]\-\-autoflush\f[R]: فعال‌سازی تخلیه خودکار (autoflush) برای اشیاء گذرای ایجادشده توسط دستور\&. اگر یک شیء والد از یک فایل زمینه بارگذاری شود، آن شیء والد گذرا نیز تخلیه خواهد شد\&. تخلیه خودکار همچنین در صورتی که متغیر محیطی TPM2TOOLS_AUTOFLUSH روی yes یا true تنظیم شده باشد، فعال می‌شود\&. .SH "پیکربندی TCTI (TCTI Configuration)" رابط انتقال یا TCTI (مخفف \[lq]Transmission Interface\[rq]) سازوکار ارتباطی با TPM است\&. می‌توان TCTIها را برای ارتباط با TPM از طریق بسترهای مختلف تغییر داد\&. .PP برای کنترل TCTI، ابزارها موارد زیر را رعایت می‌کنند: .IP "1." 3 گزینه خط فرمان \f[B]\-T\f[R] یا \f[B]\-\-tcti\f[R] .IP "2." 3 متغیر محیطی: \f[I]TPM2TOOLS_TCTI\f[R]\&. .PP \f[B]نکته:\f[R] گزینه خط فرمان همواره بر متغیر محیطی اولویت دارد\&. .PP رابط‌های TCTI شناخته‌شده فعلی عبارتند از: .IP \[bu] 2 tabrmd \- مدیر منابع، موسوم به \c .UR https://github.com/tpm2-software/tpm2-abrmd tabrmd .UE \c \&. توجه داشته باشید که tabrmd و abrmd به عنوان نام tcti مترادف هستند\&. .IP \[bu] 2 mssim \- معمولاً برای برقراری ارتباط با شبیه‌ساز نرم‌افزاری TPM استفاده می‌شود\&. .IP \[bu] 2 device \- هنگام برقراری ارتباط مستقیم با فایل دستگاه TPM استفاده می‌شود\&. .IP \[bu] 2 none \- هیچ اتصالی با TPM برقرار نمی‌کند\&. برخی ابزارها امکان استفاده از گزینه‌های خارج از TPM (off\-tpm) را فراهم می‌کنند و بنابراین از عدم استفاده از TCTI پشتیبانی می‌کنند\&. ابزارهایی که از آن پشتیبانی نمی‌کنند، در صورت تلاش برای استفاده بدون اتصال TCTI با خطا مواجه می‌شوند\&. این مقدار از \f[I]هیچ‌گونه\f[R] گزینه‌ای پشتیبانی نمی‌کند و \f[I]باید حتماً\f[R] دقیقاً به صورت متن \[lq]none\[rq] ارائه شود\&. .PP آرگومان‌های ارائه‌شده به گزینه خط فرمان یا متغیر محیطی به فرم زیر هستند: .PP \f[CR]:\f[R] .PP مشخص کردن یک رشته خالی برای هر یک از بخش‌های \f[CR]\f[R] یا \f[CR]\f[R] به ترتیب سبب استفاده از مقادیر پیش‌فرض برای آن بخش می‌شود\&. .SS "پیش‌فرض‌های TCTI (TCTI Defaults)" هنگامی که TCTI مشخص نشده باشد، TCTI پیش‌فرض با استفاده از قواعد معنایی \f[I]dlopen(3)\f[R] جستجو می‌شود\&. ابزارها به دنبال رابط‌های TCTI با نام‌های \f[I]tabrmd\f[R]، \f[I]device\f[R] و \f[I]mssim\f[R] \f[B]دقیقاً به همین ترتیب\f[R] خواهند گشت و \f[B]از نخستین مورد یافت‌شده استفاده می‌کنند\f[R]\&. می‌توانید با استفاده از گزینهٔ \f[B]\-v\f[R] برای چاپ اطلاعات نسخه، بررسی کنید که کدام TCTI به عنوان پیش‌فرض انتخاب خواهد شد\&. جفت کلید\-مقدار \[lq]default\-tcti\[rq] نشان می‌دهد کدام‌یک از TCTIهای یادشده پیش‌فرض است\&. .SS "رابط‌های TCTI سفارشی (Custom TCTIs)" هر TCTI که رابط پویای TCTI را پیاده‌سازی کرده باشد می‌تواند بارگذاری شود\&. ابزارها در لایه درونی از \f[I]dlopen(3)\f[R] استفاده می‌کنند و مقدار خام \f[I]tcti\-name\f[R] برای جستجو به کار می‌رود\&. بنابراین، این مقدار می‌تواند مسیری به کتابخانه مشترک باشد، یا نام یک کتابخانه مطابق قواعد معنایی \f[I]dlopen(3)\f[R]\&. .SH "گزینه‌های TCTI (TCTI OPTIONS)" این مجموعه از گزینه‌ها برای پیکربندی ماژول‌های مختلف TCTI شناخته‌شده در دسترس به کار می‌روند: .IP \[bu] 2 \f[B]device\f[R]: برای TCTI دستگاه (device)، فایل دستگاه نویسه‌ای TPM مورد استفاده توسط این TCTI می‌تواند مشخص شود\&. مقدار پیش‌فرض \f[I]/dev/tpm0\f[R] است\&. .RS 2 .PP مثال: \f[B]\-T device:/dev/tpm0\f[R] یا \f[B]export \f[BI]TPM2TOOLS_TCTI\f[B]=\[lq]device:/dev/tpm0\[rq]\f[R] .RE .IP \[bu] 2 \f[B]mssim\f[R]: برای TCTI شبیه‌ساز mssim، نام دامنه یا نشانی IP و شماره درگاه (port) مورد استفاده توسط شبیه‌ساز می‌تواند مشخص شود\&. مقادیر پیش‌فرض 127.0.0.1 و 2321 هستند\&. .RS 2 .PP مثال: \f[B]\-T mssim:host=localhost,port=2321\f[R] یا \f[B]export \f[BI]TPM2TOOLS_TCTI\f[B]=\[lq]mssim:host=localhost,port=2321\[rq]\f[R] .RE .IP \[bu] 2 \f[B]abrmd\f[R]: برای TCTI ابزار abrmd، قالب رشته پیکربندی مجموعه‌ای از جفت‌های کلید\-مقدار ساده است که با نویسهٔ `,' جدا شده‌اند\&. رشته‌های هر کلید و مقدار با نویسهٔ `=' از یکدیگر جدا می‌شوند\&. .RS 2 .IP \[bu] 2 رابط abrmd TCTI از دو کلید پشتیبانی می‌کند: .RS 2 .IP "1." 3 `bus_name' : نام سرویس tabrmd روی گذرگاه (یک رشته)\&. .IP "2." 3 `bus_type' : نوع نمونه dbus (یک رشته) که محدود به `session' و `system' است\&. .RE .PP تعیین نام tcti از نوع tabrmd و یک رشته پیکربندی \f[CR]bus_name=com.example.FooBar\f[R]: .IP .EX \[rs]\-\-tcti=tabrmd:bus_name=com.example.FooBar .EE .PP تعیین tcti پیش‌فرض (abrmd) و یک رشته پیکربندی \f[CR]bus_type=session\f[R]: .IP .EX \[rs]\-\-tcti:bus_type=session .EE .PP \f[B]نکته\f[R]: دو نام abrmd و tabrmd مترادف یکدیگرند\&. .RE .SH "مثال‌ها (EXAMPLES)" محدود کردن تکثیر کلید به والد جدید مشخص و کلید تکثیرپذیر مشخص\&. .SH "تولید یک شیء تکثیرپذیر (Generate a duplicable object)" .IP .EX openssl genrsa \-out signing_key_private.pem 2048 openssl rsa \-in signing_key_private.pem \-out signing_key_public.pem \-pubout tpm2_loadexternal \-G rsa \-C o \-u signing_key_public.pem \-c signing_key.ctx \[rs] \-n signing_key.name tpm2_startauthsession \-S session.ctx \-g sha256 tpm2_policyauthorize \-S session.ctx \-L authorized.policy \-n signing_key.name tpm2_policycommandcode \-S session.ctx \-L policy.dat TPM2_CC_Duplicate tpm2_flushcontext session.ctx tpm2_createprimary \-C o \-g sha256 \-G rsa \-c primary.ctx \-Q \f[I]## The duplicable key\f[R] tpm2_create \-Q \-C primary.ctx \-g sha256 \-G rsa \-r key.prv \-u key.pub \[rs] \-L policy.dat \-a \[dq]sensitivedataorigin|sign|decrypt\[dq] tpm2_load \-Q \-C primary.ctx \-r key.prv \-u key.pub \-c key.ctx .EE .SH "ایجاد والد جدید (Create the new parent)" .IP .EX tpm2_create \-Q \-C primary.ctx \-g sha256 \-G rsa \-r new_parent.prv \[rs] \-u new_parent.pub \[rs] \-a \[dq]decrypt|fixedparent|fixedtpm|restricted|sensitivedataorigin\[dq] tpm2_loadexternal \-Q \-C o \-u new_parent.pub \-c new_parent.ctx .EE .SH "تغییر خط‌مشی کلید تکثیرپذیر به خط‌مشی namehash برای محدود کردن والد و کلید" .IP .EX tpm2_readpublic \-Q \-c new_parent.ctx \-n new_parent.name tpm2_readpublic \-Q \-c key.ctx \-n key.name cat key.name new_parent.name \f[B]|\f[R] openssl dgst \-sha256 \-binary > name.hash tpm2_startauthsession \-S session.ctx \-g sha256 tpm2_policynamehash \-L policy.namehash \-S session.ctx \-n name.hash tpm2_flushcontext session.ctx openssl dgst \-sha256 \-sign signing_key_private.pem \[rs] \-out policynamehash.signature policy.namehash tpm2_startauthsession \-S session.ctx \-g sha256 tpm2_policyauthorize \-S session.ctx \-L authorized.policy \-i policy.namehash \[rs] \-n signing_key.name tpm2_policycommandcode \-S session.ctx \-L policy.dat TPM2_CC_Duplicate tpm2_flushcontext session.ctx .EE .SH "برآورده کردن خط‌مشی و تلاش برای تکثیر کلید" .IP .EX tpm2_verifysignature \-c signing_key.ctx \-g sha256 \-m policy.namehash \[rs] \-s policynamehash.signature \-t verification.tkt \-f rsassa tpm2_startauthsession \-S session.ctx \-\-policy\-session \-g sha256 tpm2_policynamehash \-S session.ctx \-n name.hash tpm2_policyauthorize \-S session.ctx \-i policy.namehash \-n signing_key.name \[rs] \-t verification.tkt tpm2_policycommandcode \-S session.ctx TPM2_CC_Duplicate tpm2_duplicate \-C new_parent.ctx \-c key.ctx \-G null \-p \[dq]session:session.ctx\[dq] \[rs] \-r dupprv.bin \-s dupseed.dat tpm2_flushcontext session.ctx .EE .SH "کدهای بازگشتی (RETURNS)" ابزارها می‌توانند هر یک از کدهای زیر را بازگردانند: .IP \[bu] 2 0 \- موفقیت‌آمیز\&. .IP \[bu] 2 1 \- خطای عمومی و نامشخص\&. .IP \[bu] 2 2 \- خطای مدیریت گزینه‌ها\&. .IP \[bu] 2 3 \- خطای احراز هویت\&. .IP \[bu] 2 4 \- خطای مربوط به TCTI\&. .IP \[bu] 2 5 \- طرح‌واره پشتیبانی‌نشده (Non supported scheme)\&. قابل اعمال در tpm2_testparams\&. .SH "محدودیت‌ها (LIMITATIONS)" این ابزار انتظار دارد که از قبل یک نشست از طریق \f[B]tpm2_startauthsession\f[R](1) برقرار شده باشد و به یکی از موارد زیر نیاز دارد: .IP \[bu] 2 دسترسی مستقیم به دستگاه .IP \[bu] 2 پشتیبانی گسترده از نشست با \f[B]tpm2\-abrmd\f[R]\&. .PP بدون آن، اغلب مدیران منابع وضعیت نشست را در فاصلهٔ میان فراخوانی‌های دستور ذخیره \f[B]نخواهند کرد\f[R]\&. .SH "اشکالات (BUGS)" \c .UR https://github.com/tpm2-software/tpm2-tools/issues مسائل گیت‌هاب (Github Issues) .UE \c .SH "راهنما (HELP)" مشاهدهٔ \c .UR https://lists.linuxfoundation.org/mailman/listinfo/tpm2 فهرست پستی (Mailing List) .UE \c .SH "مجوز (LICENSE)" این اثر تحت \c .UR https://creativecommons.org/licenses/by/4.0 مجوز بین‌المللی کریتیو کامنز ارجاع ۴.۰ (CC BY 4.0) .UE \c منتشر شده است\&.