.\" Automatically generated by Pandoc 3.6.1 .\" .TH "tpm2_policyauthorize" "1" "" "tpm2\-tools" "General Commands Manual" .SH "نام (NAME)" tpm2_policyauthorize \- فراهم کردن امکان استفاده از خط‌مشی‌های تغییرپذیر با اتصال به مرجع امضا .SH "خلاصه دستور (SYNOPSIS)" \f[B]tpm2_policyauthorize\f[R] [\f[I]گزینه‌ها\f[R]] .SH "توضیحات (DESCRIPTION)" دستور \f[B]tpm2_policyauthorize\f[R](1) \- این دستور با مرتبط کردن خط‌مشی به یک مرجع امضا و فراهم کردن امکان تغییر محتوای آن، اجازه می‌دهد تا خط‌مشی‌ها تغییر کنند\&. .IP "1." 3 اگر نشست ورودی یک نشست آزمایشی (trial session) باشد، این ابزار یک دایجست خط‌مشی (policy digest) تولید می‌کند که نام کلید عمومی مرجع امضا را با خط‌مشی در حال تایید پیوند می‌دهد\&. .IP "2." 3 اگر نشست ورودی یک نشست خط‌مشی واقعی (real policy session) باشد، دستور \f[B]tpm2_policyauthorize\f[R](1) به دنبال یک تیکت اعتبارسنجی (verification ticket) از سوی TPM می‌گردد تا گواهی دهد که TPM پیش از مجاز کردن خط‌مشی در دایجست خط‌مشی، امضای روی دایجست خط‌مشی را تایید کرده است\&. .SH "گزینه‌ها (OPTIONS)" .IP \[bu] 2 \f[B]\-L\f[R]، \f[B]\-\-policy\f[R]=\f[I]FILE\f[R]: .RS 2 .PP فایل برای ذخیره دایجست خط‌مشی\&. .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]\-i\f[R]، \f[B]\-\-input\f[R]=\f[I]FILE\f[R]: .RS 2 .PP دایجست خط‌مشی که باید تایید و مجاز شود\&. .RE .IP \[bu] 2 \f[B]\-q\f[R]، \f[B]\-\-qualification\f[R]=\f[I]FILE_OR_HEX\f[R]: .RS 2 .PP داده‌های توصیف‌کننده خط‌مشی (policy qualifier data) که به همراه دایجست خط‌مشی ورودی امضا شده‌اند\&. این داده‌ای یکتا است که امضاکننده می‌تواند آن را در امضا بگنجاند و می‌تواند مسیر یک فایل یا یک رشته هگزادسیمال باشد\&. .RE .IP \[bu] 2 \f[B]\-n\f[R]، \f[B]\-\-name\f[R]=\f[I]FILE\f[R]: .RS 2 .PP فایل حاوی نام کلید عمومی اعتبارسنجی\&. این گزینه دایجست خط‌مشی نهایی را به یک امضاکننده پیوند می‌دهد\&. این مقدار را می‌توان با \f[B]tpm2_readpublic\f[R](1) بازیابی کرد\&. .RE .IP \[bu] 2 \f[B]\-t\f[R]، \f[B]\-\-ticket\f[R]=\f[I]FILE\f[R]: .RS 2 .PP فایل تیکت برای ثبت ساختار اعتبارسنجی (validation structure)\&. این فایل با \f[B]tpm2_verifysignature\f[R](1) تولید می‌شود\&. .RE .IP \[bu] 2 \f[B]\-\-cphash\f[R]=\f[I]FILE\f[R] .RS 2 .PP مسیر فایل برای ثبت هش پارامترهای دستور\&. این مقدار معمولاً به عنوان cpHash شناخته می‌شود\&. نکته: هنگامی که این گزینه انتخاب شود، ابزار در واقع دستور را اجرا نمی‌کند، بلکه تنها یک cpHash برمی‌گرداند\&. .RE .SS "مراجع (References)" .SH "گزینه‌های عمومی (COMMON OPTIONS)" این مجموعه از گزینه‌ها میان بسیاری از برنامه‌ها مشترک هستند و اطلاعاتی را ارائه می‌دهند که بسیاری از کاربران انتظار دارند\&. .IP \[bu] 2 \f[B]\-h\f[R]، \f[B]\-\-help=[man|no\-man]\f[R]: نمایش صفحه راهنمای (manpage) ابزار\&. به‌طور پیش‌فرض، تلاش می‌کند صفحه‌بند راهنما (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)، فایل دستگاه نویسه‌ای (character 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 و شماره درگاه (پورت) استفاده‌شده توسط شبیه‌ساز می‌تواند مشخص شود\&. مقادیر پیش‌فرض 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 ماژول TCTI abrmd از دو کلید پشتیبانی می‌کند: .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 مترادف یکدیگرند\&. ماژول‌های مختلف و شناخته‌شدهٔ TCTI\&. .RE .SH "مثال‌ها (EXAMPLES)" یک نشست آزمایشی (\f[I]trial\f[R]) را آغاز می‌کند، یک خط‌مشی PCR می‌سازد\&. این دایجست خط‌مشی PCR به همراه داده‌های توصیف‌کننده خط‌مشی و کلید عمومی امضاکننده به عنوان ورودی به \f[B]tpm2_policyauthorize\f[R](1) داده می‌شود\&. سپس دایجست خط‌مشی حاصل در ایجاد اشیاء استفاده می‌شود\&. .PP متعاقباً، زمانی که PCR تغییر کند و در نتیجه دایجست خط‌مشی PCR نیز تغییر یابد، دایجست خط‌مشی واقعی به دست آمده از \f[B]tpm2_policyauthorize\f[R](1) که در ایجاد شیء استفاده شده است تغییر نخواهد کرد\&. در زمان اجرا، خط‌مشی جدید PCR باید به همراه اعتبارسنجی امضای روی دایجست خط‌مشی PCR با استفاده از \f[B]tpm2_policyauthorize\f[R](1) برآورده شود\&. .SS "ایجاد یک مرجع امضا (Create a signing authority)" .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 \-n signing_key.name .EE .SS "ایجاد دایجست خط‌مشی مجازسازی (Create the authorize policy digest)" .IP .EX tpm2_startauthsession \-S session.ctx tpm2_policyauthorize \-S session.ctx \-L authorized.policy \-n signing_key.name tpm2_flushcontext session.ctx .EE .SS "ایجاد یک خط‌مشی برای مجاز شدن مانند یک خط‌مشی PCR (Create a policy to be authorized like a PCR policy)" .IP .EX tpm2_pcrread \-opcr0.sha256 sha256:0 tpm2_startauthsession \-S session.ctx tpm2_policypcr \-S session.ctx \-l sha256:0 \-f pcr0.sha256 \-L pcr.policy_desired tpm2_flushcontext session.ctx .EE .SS "امضای خط‌مشی (Sign the policy)" .IP .EX openssl dgst \-sha256 \-sign signing_key_private.pem \-out pcr.signature pcr.policy_desired .EE .SS "ایجاد یک شیء TPM مانند شیء پلمب با احراز اصالت مبتنی بر خط‌مشی مجازشده (Create a TPM object like a sealing object with the authorized policy based authentication)" .IP .EX tpm2_createprimary \-C o \-g sha256 \-G rsa \-c prim.ctx tpm2_create \-g sha256 \-u sealing_pubkey.pub \-r sealing_prikey.pub \-i\- \-C prim.ctx \-L authorized.policy <<< \[dq]secret to seal\[dq] .EE .SS "اعتبارسنجی این‌که دایجست خط‌مشی موردنظر از مرجع امضا آمده است، خواندن مقدار واقعی PCR و بررسی برابری خط‌مشی خوانده‌شده و موردنظر (Verify the desired policy digest comes from the signing authority, read the actual value of PCR and check that read policy and desired policy are equal)" .IP .EX tpm2_verifysignature \-c signing_key.ctx \-g sha256 \-m pcr.policy_desired \-s pcr.signature \-t verification.tkt \-f rsassa tpm2_startauthsession \[rs]\-\-policy\-session \-S session.ctx tpm2_policypcr \-S session.ctx \-l sha256:0 \-L pcr.policy_read tpm2_policyauthorize \-S session.ctx \-L authorized.policy \-i pcr.policy_desired \-n signing_key.name \-t verification.tkt tpm2_load \-C prim.ctx \-u sealing_pubkey.pub \-r sealing_prikey.pub \-c sealing_key.ctx unsealed=$(tpm2_unseal \-p\[dq]session:session.ctx\[dq] \-c sealing_key.ctx) echo $unsealed 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 \- طرح پشتیبانی‌نشده\&. قابل اعمال روی 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 مجوز بین‌المللی Creative Commons Attribution 4.0 (CC BY 4.0) .UE \c منتشر شده است\&.