.\" Automatically generated by Pandoc 3.6.1 .\" .TH "tpm2_policyticket" "1" "" "tpm2\-tools" "General Commands Manual" .SH "نام (NAME)" tpm2_policyticket \- اعتبارسنجی تیکت مجوزدهی در خط‌مشی TPM2 .SH "خلاصه دستور (SYNOPSIS)" \f[B]tpm2_policyticket\f[R] [\f[I]گزینه‌ها\f[R]] .SH "توضیحات (DESCRIPTION)" دستور \f[B]tpm2_policyticket\f[R](1) با اعتبارسنجی تیکتی که نشان‌دهنده یک مجوزدهی معتبر دارای زمان انقضای مشخص است، مجوزدهی خط‌مشی را فعال می‌کند\&. .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 .IP \[bu] 2 \f[B]\-\-ticket\f[R]=\f[I]FILE\f[R]: .RS 2 .PP فایل تیکت برای ثبت ساختار تیکت مجوزدهی\&. .RE .IP \[bu] 2 \f[B]\-\-timeout\f[R]=\f[I]FILE\f[R]: .RS 2 .PP مسیر فایل برای ثبت ساختار مهلت زمانی (timeout) بازگردانده‌شده\&. .RE .IP \[bu] 2 \f[B]\-q\f[R]، \f[B]\-\-qualification\f[R]=\f[I]FILE_OR_HEX_STR\f[R]: .RS 2 .PP داده‌های توصیف‌کننده خط‌مشی (policy qualifier) اختیاری که امضاکننده می‌تواند در امضا قرار دهد\&. می‌تواند یک رشته هگز یا یک مسیر فایل باشد\&. .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)" مجاز کردن یک عملیات TPM روی شیئی که مجوزدهی آن به یک مرجع امضای خاص مقید شده است\&. .SS "ایجاد مرجع امضا و بارگذاری کلید اعتبارسنجی" .IP .EX openssl genrsa \-out private.pem 2048 openssl rsa \-in private.pem \-outform PEM \-pubout \-out public.pem tpm2_loadexternal \-C o \-G rsa \-u public.pem \-c signing_key.ctx \[rs] \-n signing_key.name .EE .SS "تولید امضا به همراه زمان انقضا" .IP .EX EXPIRYTIME=\[dq]FFFFFE0C\[dq] echo $EXPIRYTIME \f[B]|\f[R] xxd \-r \-p \f[B]|\f[R] \[rs] openssl dgst \-sha256 \-sign private.pem \-out signature.dat .EE .SS "ایجاد خط‌مشی" .IP .EX tpm2_startauthsession \-S session.ctx tpm2_policysigned \-S session.ctx \-g sha256 \-s signature.dat \-f rsassa \[rs] \-c signing_key.ctx \-L policy.signed tpm2_flushcontext session.ctx .EE .SS "ایجاد شیء پلمپ‌کننده (Sealing Object)" .IP .EX tpm2_createprimary \-C o \-c prim.ctx \-Q echo \[dq]plaintext\[dq] > secret.dat tpm2_create \-u sealing_key.pub \-r sealing_key.priv \-c sealing_key.ctx \[rs] \-C prim.ctx \-i secret.dat \-L policy.signed \-Q .EE .SS "ایجاد خط‌مشی قابل دریافت تیکت" .IP .EX tpm2_startauthsession \-S session.ctx \-\-nonce\-tpm=nonce.test \-\-policy\-session \f[B]{\f[R] cat nonce.test \f[B]&\f[R] echo $EXPIRYTIME \f[B]|\f[R] xxd \-r \-p\f[B];\f[R] \f[B]}\f[R] \f[B]|\f[R] \[rs] openssl dgst \-sha256 \-sign private.pem \-out signature.dat tpm2_policysigned \-S session.ctx \-g sha256 \-s signature.dat \-f rsassa \[rs] \-c signing_key.ctx \-x nonce.test \-\-ticket tic.ket \-\-timeout time.out \[rs] \-t 0xFFFFFE0C tpm2_flushcontext session.ctx .EE .PP # آزمایش با policyticket به‌جای policysigned: .IP .EX tpm2_startauthsession \-S session.ctx \-\-policy\-session tpm2_policyticket \-S session.ctx \-n signing_key.name \-\-ticket tic.ket \[rs] \-\-timeout time.out tpm2_unseal \-p session:session.ctx \-c sealing_key.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 منتشر شده است\&.