.\" Automatically generated by Pandoc 3.6.1 .\" .TH "tpm2_activatecredential" "1" "" "tpm2\-tools" "General Commands Manual" .SH "نام (NAME)" \f[B]tpm2_activatecredential\f[R](1) \- فعال‌سازی دسترسی به مقیدکننده اعتبارنامه جهت بازیابی راز اعتبارنامه .SH "خلاصه دستور (SYNOPSIS)" \f[B]tpm2_activatecredential\f[R] [\f[I]گزینه‌ها\f[R]] .SH "توضیحات (DESCRIPTION)" دستور \f[B]tpm2_activatecredential\f[R](1) \- پیوند یک اعتبارنامه با یک شیء را به گونه‌ای فعال می‌کند که اطمینان حاصل شود TPM پارامترهای شیء اعتبارنامه‌دار را اعتبارسنجی کرده است\&. در یک طرح‌واره تصدیق (attestation scheme)، این کار برای ثبت‌کننده تضمین می‌کند که کلید تصدیق متعلق به TPM با یک کلید والد واجد شرایط در TPM است\&. .SH "گزینه‌ها (OPTIONS)" .IP \[bu] 2 \f[B]\-c\f[R], \f[B]\-\-credentialedkey\-context\f[R]=\f[I]OBJECT\f[R]: .RS 2 .PP شیء مرتبط با گواهی ایجادشده توسط مرجع صدور گواهی (CA)\&. .RE .IP \[bu] 2 \f[B]\-C\f[R], \f[B]\-\-credentialkey\-context\f[R]=\f[I]OBJECT\f[R]: .RS 2 .PP شیء بارگذاری‌شده که برای رمزگشایی سید تصادفی (random seed) استفاده می‌شود\&. .RE .IP \[bu] 2 \f[B]\-p\f[R], \f[B]\-\-credentialedkey\-auth\f[R]=\f[I]AUTH\f[R]: .RS 2 .PP مقدار احراز هویت شیء اعتبارنامه‌دار مشخص‌شده با \f[B]\-c\f[R]\&. .RE .IP \[bu] 2 \f[B]\-P\f[R], \f[B]\-\-credentialkey\-auth\f[R]=\f[I]AUTH\f[R]: .RS 2 .PP مقدار احراز هویت شیء اعتبارنامه مشخص‌شده با \f[B]\-C\f[R]\&. .RE .IP \[bu] 2 \f[B]\-i\f[R], \f[B]\-\-credential\-blob\f[R]=\f[I]FILE\f[R]: .RS 2 .PP مسیر فایل ورودی حاوی حباب اعتبارنامه (credential blob) و داده محرمانه ایجادشده با ابزار \f[B]tpm2_makecredential\f[R](1)\&. .RE .IP \[bu] 2 \f[B]\-o\f[R], \f[B]\-\-certinfo\-data\f[R]=\f[I]FILE\f[R]: .RS 2 .PP مسیر فایل خروجی برای ذخیره اطلاعات رمزگشایی‌شده محرمانه اعتبارنامه\&. .RE .IP \[bu] 2 \f[B]\-\-cphash\f[R]=\f[I]FILE\f[R] .RS 2 .PP مسیر فایل برای ثبت هش پارامترهای دستور\&. این مقدار معمولاً به عنوان cpHash شناخته می‌شود\&. نکته: با انتخاب این گزینه، ابزار در عمل دستور را اجرا نمی‌کند، بلکه تنها یک cpHash برمی‌گرداند، مگر اینکه rphash نیز مورد نیاز باشد\&. .RE .IP \[bu] 2 \f[B]\-\-rphash\f[R]=\f[I]FILE\f[R] .RS 2 .PP مسیر فایل برای ثبت هش پارامترهای پاسخ\&. این مقدار معمولاً به عنوان rpHash شناخته می‌شود\&. .RE .IP \[bu] 2 \f[B]\-S\f[R], \f[B]\-\-session\f[R]=\f[I]FILE\f[R]: .RS 2 .PP نشست ایجادشده با استفاده از \f[B]tpm2_startauthsession\f[R]\&. این گزینه می‌تواند برای تعیین یک نشست کمکی جهت حسابرسی و یا رمزنگاری/رمزگشایی پارامترها استفاده شود\&. .RE .SS "مراجع (References)" .SH "قالب شیء زمینه (Context Object Format)" نوع یک شیء زمینه، چه هندل (handle) باشد یا نام فایل، بر اساس منطق زیر \f[I]به‌ترتیب\f[R] تعیین می‌شود: .IP \[bu] 2 اگر آرگومان یک مسیر فایل باشد، آن فایل به عنوان یک شیء گذرا (transient) بازگردانی‌شده TPM بارگذاری می‌شود\&. .IP \[bu] 2 اگر آرگومان با \f[I]پیشوند\f[R] یکی از موارد زیر مطابقت داشته باشد: .RS 2 .IP \[bu] 2 owner: سلسله‌مراتب مالک (owner hierarchy) .IP \[bu] 2 platform: سلسله‌مراتب پلتفرم (platform hierarchy) .IP \[bu] 2 endorsement: سلسله‌مراتب تایید/امضا (endorsement hierarchy) .IP \[bu] 2 lockout: شیء پایدار کنترل قفل (lockout control persistent object) .RE .IP \[bu] 2 اگر آرگومان بتواند به صورت یک عدد بارگذاری شود، به عنوان یک هندل تلقی می‌شود (مانند 0x81010013) و مستقیماً استفاده خواهد شد\&. .SH "قالب‌بندی مجوزها (Authorization Formatting)" مجوز برای استفاده از یک شیء در TPM2.0 می‌تواند به ۳ شکل مختلف باشد: 1. گذرواژه (Password) 2. کد HMAC 3. نشست‌ها (Sessions) .PP \f[B]نکته:\f[R] \[lq]در صورت مشخص نشدن، مجوزها به‌طور پیش‌فرض به \f[B]گذرواژه خالی (EMPTY PASSWORD)\f[R] تنظیم می‌شوند\[rq]\&. .PP برای احراز هویت با مقادیر مجاز (auth values)، دستورات ابزار به‌طور ضمنی یک نشست HMAC ایجاد می‌کنند\&. بنابراین گذرواژه‌ها به صورت رمزنگاری‌نشده منتقل نمی‌شوند\&. این امر برای گذرواژه‌های تعریف‌شده برای اشیاء صدق نمی‌کند\&. در این حالت، باید از یک نشست HMAC استفاده شود (دستور tpm2_startauthsession(1) را ببینید)\&. .SS "گذرواژه‌ها (Passwords)" گذرواژه‌ها با استفاده از شناسه‌های پیشوندی به اَشکال زیر تفسیر می‌شوند\&. .PP \f[B]نکته\f[R]: در صورتی که گذرواژه‌ها پیشوند نداشته باشند، به‌طور پیش‌فرض به شکل رشته فرض می‌شوند\&. .SS "رشته (String)" یک گذرواژه رشته‌ای، که با پیشوند \[lq]str:\[rq] یا نبود آن (رشته خام بدون پیشوند) مشخص می‌شود، پردازش تفسیری نمی‌شود و مستقیماً برای احراز هویت استفاده می‌گردد\&. .SS "مثال‌ها (Examples)" .IP .EX foobar str:foobar .EE .SS "رشته هگز (Hex\-string)" یک گذرواژه رشته هگز، که با پیشوند \[lq]hex:\[rq] مشخص می‌شود، از قالب هگزادسیمال به یک آرایه بایتی تبدیل می‌شود؛ بنابراین امکان استفاده از گذرواژه‌هایی با نویسه‌های غیرقابل‌چاپ یا ناسازگار با ترمینال را فراهم می‌کند\&. .SS "مثال (Example)" .IP .EX hex:1122334455667788 .EE .SS "فایل (File)" یک گذرواژه مبتنی بر فایل، که با پیشوند \[lq]file:\[rq] مشخص می‌شود، باید مسیر فایلی حاوی گذرواژه برای خوانده شدن توسط ابزار یا کاراکتر \[lq]\-\[rq] برای استفاده از ورودی استاندارد (stdin) باشد\&. ذخیره گذرواژه‌ها در فایل از نشت اطلاعات جلوگیری می‌کند؛ گذرواژه‌هایی که به عنوان گزینه خط فرمان منتقل می‌شوند ممکن است از فهرست فرآیندها یا تاریخچه شل خوانده شوند\&. .SS "مثال‌ها (Examples)" .IP .EX # برای استفاده از ورودی استاندارد و دریافت اعلان file:\- # برای استفاده از فایل از طریق مسیر file:path/to/password/file # برای ارسال گذرواژه از طریق stdin با echo: echo foobar | tpm2_tool \-p file:\- # برای استفاده از here\-string بش از طریق stdin: tpm2_tool \-p file:\- <<< foobar .EE .SS "نشست‌ها (Sessions)" هنگام استفاده از یک نشست پالیسی برای مجاز کردن استفاده از یک شیء، شناسه گزینه را با کلمه کلیدی \f[I]session\f[R] شروع کنید\&. سپس مسیری به یک فایل نشست که توسط دستور tpm2_startauthsession(1) ایجاد شده است را مشخص نمایید\&. در صورت تمایل، اگر نشست نیازمند ارسال یک مقدار احراز هویت به همراه هندل نشست باشد (مانند گذرواژه پالیسی)، یک علامت + و یک رشته را مطابق آنچه در بخش \f[B]گذرواژه‌ها (Passwords)\f[R] توضیح داده شد، اضافه کنید\&. .SS "مثال‌ها (Examples)" برای استفاده از یک فایل زمینه نشست با نام \f[I]session.ctx\f[R]: .IP .EX session:session.ctx .EE .PP برای استفاده از یک فایل زمینه نشست با نام \f[I]session.ctx\f[R] \f[B]و\f[R] ارسال مقدار احراز هویت mypassword: .IP .EX session:session.ctx+mypassword .EE .PP برای استفاده از یک فایل زمینه نشست با نام \f[I]session.ctx\f[R] \f[B]و\f[R] ارسال مقدار احراز هویت \f[I]هگز\f[R] 0x11223344: .IP .EX session:session.ctx+hex:11223344 .EE .SS "مجوزهای PCR (PCR Authorizations)" می‌توانید با استفاده از پیشوند \[lq]pcr:\[rq] و زبان کوچک (minilanguage) مربوط به PCR، یک پالیسی PCR را برآورده سازید\&. زبان کوچک PCR به صورت زیر است: \f[CR]=\f[R] .PP مشخصات PCR در بخش \[lq]مشخص‌کننده‌های بانک PCR\[rq] مستند شده است\&. .PP آرگومان \f[CR]raw\-pcr\-file\f[R] یک پارامتر \f[B]اختیاری\f[R] است که شامل خروجی محتویات خام PCR مطابق با خروجی دستور \f[I]tpm2_pcrread(1)\f[R] است\&. .PP مشخص‌کننده‌های بانک PCR .SS "مثال‌ها (Examples)" برای برآورده ساختن یک پالیسی PCR از sha256 روی بانک‌های ۰، ۱، ۲ و ۳ از مشخص‌کننده زیر استفاده کنید: .IP .EX pcr:sha256:0,1,2,3 .EE .PP مشخص کردن \f[I]AUTH\f[R]\&. .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] مشخص شود یا صفحه‌خوان man با شکست مواجه گردد، خلاصه گزینه‌ها در خروجی استاندارد (stdout) چاپ خواهد شد\&. .RS 2 .PP استفاده موفقیت‌آمیز از ویژگی manpages نیازمند نصب بودن صفحات راهنما یا قرار داشتن آن‌ها در مسیر \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 values) به کار روند، باید از یک نشست نمک‌دار (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 ماژول 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 مترادف یکدیگرند\&. .RE .SH "مثال‌ها (EXAMPLES)" .IP .EX echo \[dq]12345678\[dq] > secret.data tpm2_createek \-Q \-c 0x81010001 \-G rsa \-u ek.pub tpm2_createak \-C 0x81010001 \-c ak.ctx \-G rsa \-g sha256 \-s rsassa \-u ak.pub \[rs] \-n ak.name \-p akpass> ak.out file_size=\f[B]\[ga]\f[R]stat \-\-printf=\[dq]%s\[dq] ak.name\f[B]\[ga]\f[R] loaded_key_name=\f[B]\[ga]\f[R]cat ak.name \f[B]|\f[R] xxd \-p \-c $file_size\f[B]\[ga]\f[R] tpm2_makecredential \-Q \-e ek.pub \-s secret.data \-n $loaded_key_name \[rs] \-o mkcred.out tpm2_startauthsession \-\-policy\-session \-S session.ctx tpm2_policysecret \-S session.ctx \-c e tpm2_activatecredential \-Q \-c ak.ctx \-C 0x81010001 \-i mkcred.out \[rs] \-o actcred.out \-p akpass \-P\[dq]session:session.ctx\[dq] 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 "اشکالات (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 \&.