.\" Automatically generated by Pandoc 3.6.1 .\" .TH "tpm2_encodeobject" "1" "" "tpm2\-tools" "General Commands Manual" .SH "نام (NAME)" tpm2_encodeobject \- کدگذاری داده‌های شیء TPM2 .SH "خلاصه دستور (SYNOPSIS)" \f[B]tpm2_encodeobject\f[R] [\f[I]گزینه‌ها\f[R]] .SH "توضیحات (DESCRIPTION)" دستور \f[B]tpm2_encodeobject\f[R](1) هر دو بخش خصوصی و عمومی یک شیء را در یک قالب ترکیبی PEM که توسط tpm2\-tss\-engine استفاده می‌شود، کدگذاری می‌کند. .PP این ابزار بخش‌های خصوصی و عمومی یک شیء را می‌خواند و آن را در یک قالب ترکیبی PEM که توسط tpm2\-tss\-engine و سایر برنامه‌ها به کار می‌رود، کدگذاری می‌کند. .PP \f[B]نکته\f[R]: هر دو بخش خصوصی و عمومی کلید TPM باید مشخص شوند. .SH "گزینه‌ها (OPTIONS)" .IP \[bu] 2 \f[B]\-C\f[R], \f[B]\-\-parent\-context\f[R]=\f[I]شیء\f[R]: .RS 2 .PP شیء والد (parent object). .RE .IP \[bu] 2 \f[B]\-P\f[R], \f[B]\-\-auth\f[R]=\f[I]مجوز\f[R]: .RS 2 .PP مقدار احراز هویت شیء والد که توسط .B \-C مشخص شده است. .RE .IP \[bu] 2 \f[B]\-u\f[R], \f[B]\-\-public\f[R]=\f[I]فایل\f[R]: .RS 2 .PP فایلی شامل بخش عمومی شیء. .RE .IP \[bu] 2 \f[B]\-r\f[R], \f[B]\-\-private\f[R]=\f[I]فایل\f[R]: .RS 2 .PP فایلی شامل بخش حساس (خصوصی) شیء. .RE .IP \[bu] 2 \f[B]\-p\f[R], \f[B]\-\-key\-auth\f[R]: .RS 2 .PP مشخص می‌کند که آیا برای شیء تعیین‌شده توسط \f[B]\-r\f[R] و \f[B]\-u\f[R] به مقدار احراز هویت نیاز است یا خیر. .RE .IP \[bu] 2 \f[B]\-o\f[R], \f[B]\-\-output\f[R]=\f[I]فایل\f[R]: .RS 2 .PP مسیر فایل خروجی، جهت ثبت بخش عمومی شیء. .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 استفاده شود (دستور .BR 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)" هنگام استفاده از یک نشست پالیسی (policy session) برای مجاز کردن استفاده از یک شیء، شناسه گزینه را با کلمه کلیدی \f[I]session\f[R] شروع کنید. سپس مسیری به یک فایل نشست که توسط دستور .BR tpm2_startauthsession (1) ایجاد شده است را مشخص نمایید. در صورت تمایل، اگر نشست نیازمند ارسال یک مقدار احراز هویت (auth value) به همراه هندل نشست باشد (مانند گذرواژه پالیسی)، یک علامت + و یک رشته را مطابق آنچه در بخش \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 مطابق با خروجی دستور .BR tpm2_pcrread (1) می‌باشد. .PP مشخص‌کننده‌های بانک PCR .SS "مثال‌ها (Examples)" برای برآورده کردن یک پالیسی PCR از نوع sha256 روی بانک‌های 0، 1، 2 و 3 از مشخص‌کننده زیر استفاده کنید: .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 نیازمند نصب بودن صفحات راهنما یا قرار داشتن آن‌ها در مسیر .I MANPATH است؛ برای جزئیات بیشتر به .BR 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 (\f[I]Transmission Interface\f[R]) سازوکار ارتباطی با 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]. می‌توانید با استفاده از گزینه .B \-v برای چاپ اطلاعات نگارش، متوجه شوید کدام 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 و شماره درگاه (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)" .SS "آماده‌سازی (Setup)" برای بارگذاری یک شیء، ابتدا باید شیئی تحت یک شیء اولیه (primary object) بسازید. بنابراین گام نخست، ساخت شیء اولیه است. .IP .EX tpm2_createprimary \-c primary.ctx .EE .PP گام دوم، ساخت یک شیء در زیر شیء اولیه است. .IP .EX tpm2_create \-C primary.ctx \-u key.pub \-r key.priv \-f pem \-o pub.pem .EE .PP این کار بخش‌های خصوصی و عمومی شیء TPM را ایجاد می‌کند. با وجود این بخش‌های شیء، اکنون می‌توان آن شیء را برای استفاده‌های بعدی در TPM بارگذاری کرد. .SS "کدگذاری یک شیء در یک قالب ترکیبی PEM (Encoding an Object into a combined PEM format)" گام نهایی، کدگذاری بخش‌های عمومی و خصوصی شیء در قالب PEM است. .IP .EX tpm2_encodeobject \-C primary.ctx \-u key.pub \-r key.priv \-o priv.pem .EE .PP فایل تولیدشده \f[CR]priv.pem\f[R] می‌تواند همراه با \f[CR]pub.pem\f[R] که در گام ۲ از بخش آماده‌سازی ایجاد شد، استفاده شود. .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 \&.