.\" Automatically generated by Pandoc 3.6.1 .\" .TH "tpm2_createek" "1" "" "tpm2\-tools" "General Commands Manual" .SH "نام (NAME)" tpm2_createek \- ایجاد کلید تاییدیه اصلی TPM2 (Endorsement Key) .SH "خلاصه دستور (SYNOPSIS)" \f[B]tpm2_createek\f[R] [\f[I]گزینه‌ها\f[R]] .SH "توضیحات (DESCRIPTION)" دستور \f[B]tpm2_createek\f[R](1) یک کلید تاییدیه (EK) منطبق بر پروفایل TCG ایجاد می‌کند که شیء اصلی در سلسله‌مراتب تاییدیه (endorsement hierarchy) است\&. .PP اگر یک شیء گذرا (transient) ایجاد شود، این ابزار یک فایل بافت (context file) را در مسیر مشخص‌شده با گزینه \f[B]\-c\f[R] خروجی می‌دهد\&. .PP مراجعه کنید به: \c .UR http://www.trustedcomputinggroup.org/files/static_page_files/7CAA5687-1A4B-B294-D04080D058E86C5F .UE \c .SH "گزینه‌ها (OPTIONS)" .IP \[bu] 2 \f[B]\-P\f[R]، \f[B]\-\-eh\-auth\f[R]=\f[I]AUTH\f[R]: .RS 2 .PP مقدار احراز هویت برای سلسله‌مراتب تاییدیه (endorsement hierarchy)\&. .RE .IP \[bu] 2 \f[B]\-w\f[R]، \f[B]\-\-owner\-auth\f[R]=\f[I]AUTH\f[R] .RS 2 .PP مقدار احراز هویت برای سلسله‌مراتب مالک (owner hierarchy)\&. .RE .IP \[bu] 2 \f[B]\-c\f[R]، \f[B]\-\-ek\-context\f[R]=\f[I]OBJECT\f[R] یا \f[I]FILE\f[R]: .RS 2 .PP مسیر یک فایل یا مقدار یک دستگیره پایدار (persistent handle) برای ذخیره کلید تاییدیه\&. .PP اگر مقدار \f[B]\-\f[R] ارسال شود، ابزار یک دستگیره پایدار خالی را برای استفاده پیدا کرده و دستگیره انتخاب‌شده خودکار را چاپ می‌کند\&. .PP اگر فایل بافت از طریق این گزینه و کلید عمومی از طریق گزینه \f[B]\-u\f[R] ذخیره شود، کلید تاییدیه (EK) را می‌توان از طریق فراخوانی دستور \f[B]tpm2_loadexternal\f[R](1) بازیابی کرد\&. .RE .IP \[bu] 2 \f[B]\-G\f[R]، \f[B]\-\-key\-algorithm\f[R]=\f[I]ALGORITHM\f[R]: .RS 2 .PP الگوریتم کلید تاییدیه\&. پشتیبانی می‌کند از: .IP \[bu] 2 \f[B]ecc\f[R] \- به‌طور پیش‌فرض یک کلید NIST_P256\&. منحنی‌های جایگزین را می‌توان با استفاده از مشخص‌کننده‌های الگوریتم انتخاب کرد (مانند \f[B]ecc384\f[R] یا \f[B]ecc_nist_p384\f[R])\&. .IP \[bu] 2 \f[B]rsa\f[R] \- یک کلید RSA2048\&. .IP \[bu] 2 \f[B]keyedhash\f[R] \- کلید hmac\&. به‌طور پیش‌فرض، برای NIST_P256 و RSA2048 از الگوی محدوده LOW تعریف‌شده در EK Credential Profile استفاده خواهد شد\&. الگوی محدوده HIGH را می‌توان با افزودن پسوند _high به نام الگوریتم انتخاب کرد\&. .RE .IP \[bu] 2 \f[B]\-u\f[R]، \f[B]\-\-public\f[R]=\f[I]FILE\f[R]: .RS 2 .PP ورودی اختیاری برای فایلی جهت ذخیره بخش عمومی کلید تاییدیه\&. .RE .IP \[bu] 2 \f[B]\-t\f[R]، \f[B]\-\-template\f[R]: .RS 2 .PP الگوی کلید تاییدیه و نانس (nonce) اختیاری تعریف‌شده توسط سازنده از ایندکس‌های ثابت NV برای مقداردهی ناحیه عمومی \f[B]TPM2B_PUBLIC\f[R]\&. برای اطلاعات بیشتر به مشخصات TCG EK Credential Profile مراجعه کنید: https://trustedcomputinggroup.org/wp\-content/uploads/TCG_IWG_Credential_Profile_EK_V2.1_R13.pdf .RE .IP \[bu] 2 \f[B]\-f\f[R]، \f[B]\-\-format\f[R]: .RS 2 .PP انتخاب فرمت برای فایل خروجی کلید عمومی\&. مقدار \[lq]tss\[rq] (پیش‌فرض) یک حباب دودویی (binary blob) طبق مشخصات TPM 2.0 تولید می‌کند\&. مقدار \[lq]pem\[rq] یک کلید عمومی با کدگذاری PEM و سازگار با OpenSSL تولید می‌کند\&. مقدار \[lq]der\[rq] یک کلید عمومی با کدگذاری DER و سازگار با OpenSSL تولید می‌کند\&. مقدار \[lq]tpmt\[rq] یک حباب دودویی از ساختار TPMT_PUBLIC ارجاع‌شده در مشخصات TPM 2.0 تولید می‌کند\&. .PP فرمت کلید عمومی\&. .RE .SS "ارجاعات (References)" .SH "فرمت شیء بافت (Context Object Format)" نوع یک شیء بافت (context object)، چه یک دستگیره (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 اگر آرگومان بتواند به عنوان یک عدد بارگذاری شود، به عنوان یک دستگیره (handle) مانند 0x81010013 در نظر گرفته شده و مستقیماً استفاده می‌شود\&. .SH "قالب‌بندی احراز هویت (Authorization Formatting)" احراز هویت برای استفاده از یک شیء در TPM 2.0 می‌تواند به ۳ شکل مختلف انجام شود: .IP "1." 3 گذرواژه (Password) .IP "2." 3 کد HMAC .IP "3." 3 نشست‌ها (Sessions) .PP \f[B]نکته:\f[R] \[lq]در صورت عدم تعیین، احراز هویت‌ها به‌طور پیش‌فرض بر روی \f[B]گذرواژه خالی (EMPTY PASSWORD)\f[R] قرار می‌گیرند\[rq]\&. .PP برای احراز هویت با مقادیر auth، دستورات این ابزار به صورت ضمنی یک نشست HMAC ایجاد می‌کنند\&. بنابراین گذرواژه‌ها به صورت رمزنگاری‌نشده منتقل نمی‌شوند\&. این مورد برای گذرواژه‌های تعریف‌شده برای اشیاء صدق نمی‌کند\&. در این حالت، باید از یک نشست HMAC استفاده شود (رجوع کنید به \f[B]tpm2_startauthsession\f[R](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 # استفاده از stdin و درخواست از کاربر 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] را به عنوان پیشوند آرگومان گزینه قرار دهید\&. سپس مسیری به یک فایل بافت نشست که با دستور \f[B]tpm2_startauthsession\f[R](1) ایجاد شده است را مشخص کنید\&. در صورت تمایل، اگر نشست نیازمند ارسال مقدار auth همراه با دستگیره نشست باشد (مانند گذرواژه پالیسی)، یک علامت + و رشته‌ای مطابق با بخش \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] ارسال مقدار auth برابر با mypassword: .IP .EX session:session.ctx+mypassword .EE .PP برای استفاده از فایل بافت نشست با نام \f[I]session.ctx\f[R] \f[B]و\f[R] ارسال مقدار auth \f[I]هگزادسیمال\f[R] 0x11223344: .IP .EX session:session.ctx+hex:11223344 .EE .SS "احراز هویت‌های PCR (PCR Authorizations)" می‌توانید یک پالیسی PCR را با استفاده از پیشوند \[lq]pcr:\[rq] و زبان کوچک PCR برآورده سازید\&. زبان کوچک PCR به صورت زیر است: \f[CR]=\f[R] .PP مشخصات PCR در بخش \[lq]مشخص‌کننده‌های بانک PCR (PCR bank specifiers)\[rq] مستند شده است\&. .PP آرگومان \f[CR]raw\-pcr\-file\f[R] یک آرگومان \f[B]اختیاری\f[R] است که حاوی خروجی خام محتویات PCR است که توسط \f[B]tpm2_pcrread\f[R](1) بازگردانده می‌شود\&. .PP مشخص‌کننده‌های بانک PCR .SS "مثال‌ها (Examples)" برای برآورده کردن یک پالیسی PCR با sha256 روی بانک‌های ۰، ۱، ۲ و ۳ از مشخص‌کننده زیر استفاده کنید: .IP .EX pcr:sha256:0,1,2,3 .EE .PP مشخص کردن \f[I]AUTH\f[R]\&. .SH "مشخص‌کننده‌های الگوریتم (Algorithm Specifiers)" گزینه‌هایی که الگوریتم دریافت می‌کنند از \[lq]نام‌های مناسب (nice\-names)\[rq] پشتیبانی می‌کنند\&. .PP دو دسته اصلی رشته‌های مشخص‌کننده الگوریتم وجود دارد: ساده و پیچیده\&. بر اساس کاربرد و شرایط، تنها الگوریتم‌های خاصی توسط TPM پذیرفته می‌شوند\&. .SS "مشخص‌کننده‌های ساده (Simple specifiers)" این‌ها رشته‌هایی بدون داده‌های مشخص‌کننده اضافی هستند\&. هنگام ایجاد اشیاء، بخش‌های نامشخص شیء به مقادیر پیش‌فرض ارجاع داده می‌شوند\&. می‌توانید فهرست \[lq]مشخص‌کننده‌های ساده\[rq] شناخته‌شده را در زیر بیابید\&. .SS "نامتقارن (Asymmetric)" .IP \[bu] 2 rsa .IP \[bu] 2 ecc .SS "متقارن (Symmetric)" .IP \[bu] 2 aes .IP \[bu] 2 camellia .IP \[bu] 2 sm4 .SS "الگوریتم‌های درهم‌سازی (Hashing Algorithms)" .IP \[bu] 2 sha1 .IP \[bu] 2 sha256 .IP \[bu] 2 sha384 .IP \[bu] 2 sha512 .IP \[bu] 2 sm3_256 .IP \[bu] 2 sha3_256 .IP \[bu] 2 sha3_384 .IP \[bu] 2 sha3_512 .SS "درهم‌سازی کلیددار (Keyed Hash)" .IP \[bu] 2 hmac .IP \[bu] 2 xor .SS "طرح‌های امضا (Signing Schemes)" .IP \[bu] 2 rsassa .IP \[bu] 2 rsapss .IP \[bu] 2 ecdsa .IP \[bu] 2 ecdaa .IP \[bu] 2 ecschnorr .IP \[bu] 2 sm2 .SS "طرح‌های رمزنگاری نامتقارن (Asymmetric Encryption Schemes)" .IP \[bu] 2 oaep .IP \[bu] 2 rsaes .IP \[bu] 2 ecdh .SS "حالت‌ها (Modes)" .IP \[bu] 2 ctr .IP \[bu] 2 ofb .IP \[bu] 2 cbc .IP \[bu] 2 cfb .IP \[bu] 2 ecb .SS "متفرقه (Misc)" .IP \[bu] 2 null .SS "مشخص‌کننده‌های پیچیده (Complex Specifiers)" اشیاء هنگام تعیین برای ایجاد توسط TPM، دارای الگوریتم‌های متعددی هستند که باید در داده‌های عمومی مقداردهی شوند؛ مواردی مانند نوع، طرح و جزئیات نامتقارن، اندازه کلید و غیره\&. در زیر قالب کلی برای مشخص کردن این داده‌ها آمده است: \f[CR]::\f[R] .SS "مشخص‌کننده‌های نوع (Type Specifiers)" این بخش از مشخص‌کننده الگوریتم پیچیده الزامی است\&. طرح و جزئیات متقارن باقی‌مانده بر اساس نوع مشخص‌شده و نوع شیء در حال ایجاد، پیش‌فرض‌گذاری می‌شوند\&. .IP \[bu] 2 aes \- مقدار پیش‌فرض AES: aes128\&. .IP \[bu] 2 aes128\f[CR]\f[R] \- الگوریتم AES با طول ۱۲۸ بیت و حالت اختیاری (\f[I]ctr\f[R]|\f[I]ofb\f[R]|\f[I]cbc\f[R]|\f[I]cfb\f[R]|\f[I]ecb\f[R])\&. اگر حالت مشخص نشود، پیش‌فرض \f[I]null\f[R] خواهد بود\&. .IP \[bu] 2 aes192\f[CR]\f[R] \- مشابه aes128\f[CR]\f[R]، به‌جز اندازه کلید ۱۹۲ بیتی\&. .IP \[bu] 2 aes256\f[CR]\f[R] \- مشابه aes128\f[CR]\f[R]، به‌جز اندازه کلید ۲۵۶ بیتی\&. .IP \[bu] 2 sm4 \- مقدار پیش‌فرض SM4: sm4128\&. .IP \[bu] 2 sm4128 یا sm4_128 \f[CR]\f[R] \- الگوریتم SM4 با طول ۱۲۸ بیت و حالت اختیاری (\f[I]ctr\f[R]|\f[I]ofb\f[R]|\f[I]cbc\f[R]|\f[I]cfb\f[R]|\f[I]ecb\f[R])\&. اگر حالت مشخص نشود، پیش‌فرض \f[I]null\f[R] خواهد بود\&. .IP \[bu] 2 ecc \- خم بیضوی، پیش‌فرض ecc256\&. .IP \[bu] 2 ecc192 یا ecc_nist_p192 \- خم بیضوی ۱۹۲ بیتی NIST ECC\&. .IP \[bu] 2 ecc224 یا ecc_nist_p224 \- خم بیضوی ۲۲۴ بیتی NIST ECC\&. .IP \[bu] 2 ecc256 یا ecc_nist_p256 \- خم بیضوی ۲۵۶ بیتی NIST ECC\&. .IP \[bu] 2 ecc384 یا ecc_nist_p384 \- خم بیضوی ۳۸۴ بیتی NIST ECC\&. .IP \[bu] 2 ecc521 یا ecc_nist_p521 \- خم بیضوی ۵۲۱ بیتی NIST ECC\&. .IP \[bu] 2 ecc_sm2 یا ecc_sm2_p256 \- خم بیضوی ۲۵۶ بیتی SM2\&. .IP \[bu] 2 rsa \- مقدار پیش‌فرض RSA: rsa2048\&. .IP \[bu] 2 rsa1024 \- الگوریتم RSA با اندازه کلید ۱۰۲۴ بیت\&. .IP \[bu] 2 rsa2048 \- الگوریتم RSA با اندازه کلید ۲۰۴۸ بیت\&. .IP \[bu] 2 rsa3072 \- الگوریتم RSA با اندازه کلید ۳۰۷۲ بیت\&. .IP \[bu] 2 rsa4096 \- الگوریتم RSA با اندازه کلید ۴۰۹۶ بیت\&. .SS "مشخص‌کننده‌های طرح (Scheme Specifiers)" فیلد بعدی اختیاری است و می‌توان از آن صرف‌نظر کرد\&. .PP طرح‌ها معمولاً \f[B]طرح‌های امضا (Signing Schemes)\f[R] یا \f[B]طرح‌های رمزنگاری نامتقارن (Asymmetric Encryption Schemes)\f[R] هستند\&. بیشتر طرح‌های امضا بلافاصله پس از طرح امضا، یک الگوریتم درهم‌سازی دریافت می‌کنند\&. اگر الگوریتم درهم‌سازی ذکر نشود، پیش‌فرض \f[I]sha256\f[R] خواهد بود\&. برخی هیچ آرگومانی نمی‌پذیرند و برخی چندین آرگومان دریافت می‌کنند\&. .SS "مشخص‌کننده‌های طرح با درهم‌سازی اختیاری (Hash Optional Scheme Specifiers)" پس از این مشخص‌کننده‌های طرح، یک خط تیره و یک الگوریتم درهم‌سازی معتبر قرار می‌گیرد، برای مثال: \f[CR]oaep\-sha256\f[R]\&. .IP \[bu] 2 oaep .IP \[bu] 2 ecdh .IP \[bu] 2 rsassa .IP \[bu] 2 rsapss .IP \[bu] 2 ecdsa .IP \[bu] 2 ecschnorr .IP \[bu] 2 sm2 .SS "مشخص‌کننده‌های طرح چندگزینه‌ای (Multiple Option Scheme Specifiers)" پس از این مشخص‌کننده طرح، یک شمارنده (حداکثر اندازه UINT16) و سپس یک خط تیره (\-) و یک الگوریتم درهم‌سازی معتبر قرار می‌گیرد\&. * ecdaa به عنوان مثال، ecdaa4\-sha256\&. اگر شمارنده‌ای مشخص نشود، پیش‌فرض ۴ خواهد بود\&. .SS "مشخص‌کننده‌های طرح بدون گزینه (No Option Scheme Specifiers)" این مشخص‌کننده طرح هیچ آرگومانی دریافت نمی‌کند\&. * rsaes .SS "مشخص‌کننده‌های جزئیات متقارن (Symmetric Details Specifiers)" این فیلد اختیاری است و بر اساس \f[I]نوع (type)\f[R] شیء در حال ایجاد و ویژگی‌های آن پیش‌فرض‌گذاری می‌شود\&. به‌طور کلی، هر مشخص‌کننده معتبر \f[B]متقارن\f[R] از فهرست \f[B]مشخص‌کننده‌های نوع\f[R] باید کار کند\&. اگر مشخص نشود، جزئیات متقارن یک شیء نامتقارن به‌طور پیش‌فرض به \f[I]aes128cfb\f[R] تنظیم می‌شود\&. .SS "مثال‌ها (Examples)" .SS "ایجاد یک کلید rsa2048 با طرح رمزنگاری نامتقارن rsaes (Create an rsa2048 key with an rsaes asymmetric encryption scheme)" \f[CR]tpm2_create \-C parent.ctx \-G rsa2048:rsaes \-u key.pub \-r key.priv\f[R] .SS "ایجاد یک کلید ecc256 با طرح امضای ecdaa با شمارنده ۴ و درهم‌سازی sha384 (Create an ecc256 key with an ecdaa signing scheme with a count of 4 and sha384 hash)" \f[CR]tpm2_create \-C parent.ctx \-G ecc256:ecdaa4\-sha384 \-u key.pub \-r key.priv\f[R] الگوریتم‌های رمزنگاری \f[I]ALGORITHM\f[R]\&. .SH "گزینه‌های عمومی (COMMON OPTIONS)" این مجموعه گزینه‌ها بین بسیاری از برنامه‌ها مشترک هستند و اطلاعاتی را ارائه می‌دهند که بسیاری از کاربران انتظار دارند\&. .IP \[bu] 2 \f[B]\-h\f[R]، \f[B]\-\-help=[man|no\-man]\f[R]: نمایش صفحه راهنمای (manpage) ابزار\&. به‌طور پیش‌فرض، تلاش می‌کند تا صفحه‌بند man (manpager) را برای ابزار فراخوانی کند؛ اما در صورت شکست، خلاصه کوتاهی از ابزار را نمایش می‌دهد\&. این رفتار مشابه زمانی است که آرگومان گزینه \[lq]man\[rq] مشخص شده باشد؛ اما اگر \[lq]man\[rq] به‌طور صریح درخواست شود، ابزار خطاهای man را در stderr ارائه می‌دهد\&. اگر گزینه \[lq]no\-man\[rq] مشخص شود، یا فراخوانی صفحه‌بند man با شکست مواجه گردد، گزینه‌های کوتاه در stdout نمایش داده می‌شوند\&. .RS 2 .PP استفاده موفقیت‌آمیز از ویژگی صفحات راهنما نیازمند آن است که این صفحات نصب شده باشند یا در \f[I]MANPATH\f[R] قرار داشته باشند؛ برای جزئیات بیشتر به \f[B]man\f[R](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)\&. زمانی مفید است که لازم باشد یک اصلاح اشتباه‌نامه بر روی دستورات ارسالی به 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 را دارند و بنابراین از عدم استفاده از 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 را برای استفاده توسط این رابط تعیین کرد\&. مقدار پیش‌فرض \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 رابط abrmd TCTI از دو کلید پشتیبانی می‌کند: .RS 2 .IP "1." 3 «bus_name» : نام سرویس tabrmd بر روی گذرگاه (یک رشته)\&. .IP "2." 3 «bus_type» : نوع نمونه dbus (یک رشته) محدود به «session» و «system»\&. .RE .PP تعیین نام tabrmd tcti و یک رشته پیکربندی با \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)" .SS "ایجاد یک کلید تاییدیه RSA و دائمی کردن آن (Create an RSA Endorsement Key and make it persistent)" .IP .EX tpm2_createek \-P abc123 \-w abc123 \-c 0x81010001 \-G rsa \-u ek.pub .EE .SS "ایجاد یک کلید تاییدیه ECC NIST_P384 و دائمی کردن آن (Create an ECC NIST_P384 Endorsement Key and make it persistent)" .IP .EX tpm2_createek \-G ecc384 \-c 0x81010002 .EE .SS "ایجاد یک کلید تاییدیه گذرا، تخلیه آن و بارگذاری مجدد (Create a transient Endorsement Key, flush it, and reload it)" معمولاً هنگام استفاده از TPM، تعاملات از طریق یک مدیر منابع مانند \f[B]tpm2\-abrmd\f[R](8) انجام می‌شود\&. با این حال، هنگام تعامل مستقیم با TPM، این سناریو امکان‌پذیر است\&. مثال زیر دسترسی مستقیم به TPM را بدون واسطه مدیر منابع فرض می‌کند\&. به‌طور مشخص، از \f[I]/dev/tpm0\f[R] استفاده خواهیم کرد\&. .IP .EX tpm2_createek \-c ek.ctx \-G rsa \-u ek.pub \-Tdevice:/dev/tpm0 # بررسی اینکه آیا در حافظه گذرا بارگذاری شده است یا خیر tpm2_getcap handles\-transient \-Tdevice:/dev/tpm0 \- 0x80000000 # تخلیه دستگیره tpm2_flushcontext 0x80000000 \-Tdevice:/dev/tpm0 # توجه داشته باشید که تخلیه شده است tpm2_getcap handles\-transient \-Tdevice:/dev/tpm0 # بارگذاری مجدد آن از طریق loadexternal tpm2_loadexternal \-C o \-u ek.pub \-c ek.ctx \-Tdevice:/dev/tpm0 # بررسی اینکه آیا مجدداً در حافظه گذرا بارگذاری شده است یا خیر tpm2_getcap handles\-transient \-Tdevice:/dev/tpm0 \- 0x80000000 .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 \- طرح پشتیبانی‌نشده\&. قابل اعمال در \f[B]tpm2_testparams\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 \&.