.\" Automatically generated by Pandoc 3.6.1 .\" .TH "tpm2_loadexternal" "1" "" "tpm2\-tools" "General Commands Manual" .SH "نام (NAME)" tpm2_loadexternal \- بارگذاری یک شیء خارجی در TPM2 .SH "خلاصه دستور (SYNOPSIS)" \f[B]tpm2_loadexternal\f[R] [\f[I]گزینه‌ها\f[R]] .SH "توضیحات (DESCRIPTION)" \f[B]tpm2_loadexternal\f[R](1) \- این دستور یک شیء خارجی را با صرف‌نظر از محافظت‌های TPM، در TPM بارگذاری می‌کند\&. به این معنی که محتوای کلید توسط سید (seed) شیء والد محافظت نمی‌شود\&. همچنین می‌تواند برای بارگذاری کلیدهای خصوصی TSS2 در قالب pem استفاده شود\&. این دستور امکان بارگذاری تنها بخش عمومی یک شیء یا هر دو بخش عمومی و خصوصی آن را فراهم می‌کند\&. برای کلیدهای خصوصی TSS2، تنها بخش عمومی کلید بارگذاری می‌شود\&. .PP این ابزار نام شیء بارگذاری‌شده را در قالب یک دیکشنری YAML با کلید \f[I]name\f[R] که مقدار آن نام شیء در قالب هگزادسیمال است چاپ می‌کند، برای نمونه: .IP .EX name\f[B]:\f[R] 000bac25cb8743111c8e1f52f2ee7279d05d3902a18dd1af694db5d1afa7adf1c8b3 .EE .PP همچنین یک فایل زمینه (context) را برای تعاملات آتی با شیء ذخیره می‌کند\&. .SH "گزینه‌ها (OPTIONS)" .IP \[bu] 2 \f[B]\-C\f[R], \f[B]\-\-hierarchy\f[R]=\f[I]OBJECT\f[R]: .RS 2 .PP سلسله‌مراتب مورد استفاده برای بلیت (ticket)، اختیاری\&. پیش‌فرض به \f[B]n\f[R] یا \f[B]null\f[R] تنظیم شده است\&. گزینه‌های پشتیبانی‌شده عبارتند از: .IP \[bu] 2 \f[B]o\f[R] برای سلسله‌مراتب \f[B]owner\f[R]\&. .IP \[bu] 2 \f[B]p\f[R] برای سلسله‌مراتب \f[B]platform\f[R]\&. .IP \[bu] 2 \f[B]e\f[R] برای سلسله‌مراتب \f[B]endorsement\f[R]\&. .IP \[bu] 2 \f[B]n\f[R] برای سلسله‌مراتب \f[B]null\f[R]\&. .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]aes\f[R] \- کلید AES با اندازه ۱۲۸، ۱۹۲ یا ۲۵۶ بیت\&. .IP \[bu] 2 \f[B]rsa\f[R] \- کلید RSA با اندازه ۱۰۲۴ یا ۲۰۴۸ بیت\&. .IP \[bu] 2 \f[B]ecc\f[R] \- کلید عمومی و خصوصی ECC مربوط به استانداردهای NIST P192، P224، P256، P384 یا P521\&. .RE .IP \[bu] 2 \f[B]\-u\f[R], \f[B]\-\-public\f[R]=\f[I]FILE\f[R]: .RS 2 .PP بخش عمومی شیء؛ این می‌تواند یکی از قالب‌های فایل زیر باشد: .IP \[bu] 2 TSS \- قالب TSS/TPM\&. برای نمونه از گزینه \f[CR]\-u\f[R] دستور \f[B]tpm2_create\f[R](1)\&. .IP \[bu] 2 RSA \- قالب‌های PEM در OSSL\&. برای نمونه \f[CR]public.pem\f[R] حاصل از دستور \f[CR]openssl rsa \-in private.pem \-out public.pem \-pubout\f[R] .IP \[bu] 2 ECC \- قالب‌های PEM در OSSL\&. برای نمونه \f[CR]public.pem\f[R] حاصل از دستور \f[CR]openssl ec \-in private.ecc.pem \-out public.ecc.pem \-pubout\f[R] .RE .IP \[bu] 2 \f[B]\-r\f[R], \f[B]\-\-private\f[R]=\f[I]FILE\f[R]: .RS 2 .PP بخش حساس شیء، اختیاری\&. اگر مایل به استفاده از بخش خصوصی یک کلید باشید، این گزینه باید مشخص شود\&. همانند گزینه \f[B]\-u\f[R]، این دستور فایل‌ها را در قالب‌های زیر دریافت می‌کند: .IP \[bu] 2 RSA \- قالب‌های PEM در OSSL\&. برای نمونه \f[CR]private.pem\f[R] از دستور \f[CR]openssl genrsa \-out private.pem 2048\f[R]\&. از آنجا که کلید عمومی RSA می‌تواند از فایل خصوصی PEM مشتق شود، نیازی به مشخص کردن \-u برای بخش عمومی وجود ندارد\&. .IP \[bu] 2 قالب‌های PEM کلید خصوصی TSS2 (TSS2 PrivateKey PEM formats)\&. .PP \f[I]نکته\f[R]: بخش خصوصی از قالب‌های TSS تبعیت نمی‌کند زیرا دریافت خروجی \f[B]TPM2B_SENSITIVE\f[R] از یک دستور پیشین غیرممکن است\&. آن‌ها همیشه توسط TPM به عنوان حباب‌های \f[B]TPM2B_PRIVATE\f[R] محافظت می‌شوند\&. .RE .IP \[bu] 2 \f[B]\-p\f[R], \f[B]\-\-auth\f[R]=\f[I]AUTH\f[R]: .RS 2 .PP مقدار مجوز برای کلید، اختیاری\&. .RE .IP \[bu] 2 \f[B]\-L\f[R], \f[B]\-\-policy\f[R]=\f[I]FILE\f[R] or \f[I]HEX_STRING\f[R]: .RS 2 .PP فایل پالیسی ورودی یا رشته هگزادسیمال، اختیاری\&. یک فایل یا رشته هگز حاوی هش پالیسی به دست آمده از \f[CR]tpm2_createpolicy\f[R] یا یک منبع تولید خلاصه (digest) پالیسی دیگر\&. .RE .IP \[bu] 2 \f[B]\-g\f[R], \f[B]\-\-hash\-algorithm\f[R]=\f[I]ALGORITHM\f[R]: .RS 2 .PP الگوریتم درهم‌سازی برای تولید نام شیء\&. این گزینه اختیاری است و در صورت مشخص نشدن به sha256 پیش‌فرض می‌شود\&. با این حال، load external از داشتن الگوریتم نام \f[I]null\f[R] پشتیبانی می‌کند\&. در این حالت، هیچ بررسی اتصال رمزنگاری میان بخش‌های عمومی و خصوصی انجام نمی‌شود\&. .RE .IP \[bu] 2 \f[B]\-a\f[R], \f[B]\-\-attributes\f[R]=\f[I]ATTRIBUTES\f[R]: .RS 2 .PP ویژگی‌های شیء، اختیاری\&. پیش‌فرض برای اشیاء ایجادشده به این صورت است: \f[CR]TPMA_OBJECT_SIGN_ENCRYPT|TPMA_OBJECT_DECRYPT\f[R]\&. در صورت تمایل، اگر \-p مشخص شده باشد یا هیچ یک از \f[CR]\-p\f[R] یا \f[CR]\-L\f[R] مشخص نشده باشند، مقدار \f[CR]TPMA_OBJECT_USERWITHAUTH\f[R] به مجموعه ویژگی‌های پیش‌فرض اضافه می‌شود\&. .PP \f[I]نکته\f[R]: در صورت تعیین ویژگی‌ها، TPM ویژگی‌های خاصی مانند \f[B]TPMA_OBJECT_FIXEDTPM\f[R] را رد خواهد کرد، زیرا چنین تضمین‌هایی قابل ارائه نیستند\&. .RE .IP \[bu] 2 \f[B]\-c\f[R], \f[B]\-\-key\-context\f[R]=\f[I]FILE\f[R] .RS 2 .PP نام فایل برای ذخیره زمینه (context) شیء، الزامی\&. .RE .IP \[bu] 2 \f[B]\-n\f[R], \f[B]\-\-name\f[R]=\f[I]FILE\f[R]: .RS 2 .PP یک فایل اختیاری برای ذخیره نام شیء، که در قالب هش دودویی (binary hash) است\&. اندازه هش بر اساس الگوریتم نام یا گزینه \f[B]\-g\f[R] تعیین می‌شود\&. .RE .IP \[bu] 2 \f[B]\-\-passin\f[R]=\f[I]OSSL_PEM_FILE_PASSWORD\f[R] .RS 2 .PP یک گذرواژه اختیاری برای فایل ورودی ارائه‌شده توسط OpenSSL (OSSL)\&. این گزینه مشابه گزینه \-passin در OSSL عمل می‌کند و از قالب‌های گذرواژه pass، file، env، fd و plain در openssl پشتیبانی می‌کند\&. (برای اطلاعات بیشتر به \f[I]man(1) openssl\f[R] مراجعه کنید)\&. .RE .IP \[bu] 2 \f[B]\-e\f[R], \f[B]\-\-rsa_exponent_zero\f[R]: تنظیم توان کلید عمومی RSA روی صفر، جهت فعال‌سازی سازگاری در محاسبه نام کلید در صورتی که کلید TPM با توان صفر تولید شده باشد\&. .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)" احراز هویت برای استفاده از یک شیء در TPM 2.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 (PCR bank specifiers)\[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 "مشخص‌کننده‌های الگوریتم (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 مشخص می‌شوند، الگوریتم‌های متعددی دارند که باید در داده‌های عمومی مقداردهی شوند؛ مواردی مانند نوع (type)، طرح (scheme) و جزئیات نامتقارن، اندازه کلید و غیره\&. در زیر قالب کلی برای مشخص کردن این داده‌ها آمده است: \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 \- منحنی بیضوی (Elliptical Curve)، پیش‌فرض ecc256 است\&. .IP \[bu] 2 ecc192 یا ecc_nist_p192 \- منحنی ۱۹۲ بیتی ECC NIST .IP \[bu] 2 ecc224 یا ecc_nist_p224 \- منحنی ۲۲۴ بیتی ECC NIST .IP \[bu] 2 ecc256 یا ecc_nist_p256 \- منحنی ۲۵۶ بیتی ECC NIST .IP \[bu] 2 ecc384 یا ecc_nist_p384 \- منحنی ۳۸۴ بیتی ECC NIST .IP \[bu] 2 ecc521 یا ecc_nist_p521 \- منحنی ۵۲۱ بیتی ECC NIST .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]متقارن (Symmetric)\f[R] از فهرست \f[B]مشخص‌کننده‌های نوع (Type Specifiers)\f[R] باید کار کند\&. اگر مشخص نشود، جزئیات متقارن یک شیء نامتقارن به طور پیش‌فرض به \f[I]aes128cfb\f[R] تنظیم می‌شود\&. .SS "مثال‌ها (Examples)" .SS "ایجاد یک کلید rsa2048 با طرح رمزنگاری نامتقارن rsaes" \f[CR]tpm2_create \-C parent.ctx \-G rsa2048:rsaes \-u key.pub \-r key.priv\f[R] .SS "ایجاد یک کلید ecc256 با طرح امضای ecdaa با شمارنده ۴ و هش sha384" \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 "ویژگی‌های شیء (Object Attributes)" ویژگی‌های شیء (Object Attributes) برای کنترل مشخصه‌های گوناگون اشیاء ایجادشده استفاده می‌شوند\&. هنگامی که به عنوان یک گزینه مشخص شوند، می‌توان از ماسک میدان بیتی خام (raw bitfield mask) یا \[lq]نام‌های مناسب (nice\-names)\[rq] استفاده کرد\&. مقادیر را می‌توان در جدول ۳۱ بخش ۲ از مشخصات TPM 2.0 یافت که در نشانی زیر در دسترس است: .PP \c .UR https://trustedcomputinggroup.org/wp-content/uploads/TPM-Rev-2.0-Part-2-Structures-01.38.pdf .UE \c .PP نام‌های مناسب با گرفتن فیلد نام از جدول ۳۱، حذف پیشوند \f[B]TPMA_OBJECT_\f[R] و تبدیل نتیجه به حروف کوچک محاسبه می‌شوند\&. بنابراین، \f[B]TPMA_OBJECT_FIXEDTPM\f[R] به fixedtpm تبدیل می‌شود\&. نام‌های مناسب را می‌توان با استفاده از نماد یا بیتی (bitwise or) \[lq]|\[rq] به یکدیگر متصل کرد\&. .PP برای نمونه، جهت تنظیم فیلدهای \f[B]TPMA_OBJECT_FIXEDTPM\f[R]، \f[B]TPMA_OBJECT_NODA\f[R] و \f[B]TPMA_OBJECT_SIGN_ENCRYPT\f[R]، آرگومان به این صورت خواهد بود: .PP \f[B]fixedtpm|noda|sign\f[R] مشخص‌کننده ویژگی‌های شیء \f[I]ATTRIBUTES\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)\&. زمانی مفید است که نیاز باشد یک اصلاحیه خطا روی دستورات ارسالی به TPM اعمال گردد\&. تعریف متغیر محیطی TPM2TOOLS_ENABLE_ERRATA نیز معادل این گزینه است\&. .IP \[bu] 2 \f[B]\-z\f[R], \f[B]\-\-pwd\-session\f[R]: استفاده از نشست گذرواژه به جای نشست HMAC برای احراز هویت\&. یک گذرواژه متن خام برای تایید عملیات به TPM ارسال می‌شود\&. از این گزینه می‌توان برای جلوگیری از بروز مشکل در زمان استفاده از نشست‌های بدون نمک (unsalted) در حالت OpenSSL FIPS استفاده کرد\&. اگر مقادیر مجاز (auth values) استفاده شوند، باید از یک نشست نمک‌دار برای احراز هویت استفاده شود\&. .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 مترادف یکدیگرند\&. ماژول‌های مختلف TCTI شناخته‌شده\&. .RE .SH "نکات (NOTES)" .IP \[bu] 2 اگر سلسله‌مراتب برابر با \f[I]null\f[R] باشد یا الگوریتم درهم‌سازی نام \f[I]null\f[R] باشد، بلیت‌های تولیدشده با استفاده از شیء NULL خواهند بود\&. .IP \[bu] 2 اگر بخش خصوصی یک شیء مشخص شده باشد، سلسله‌مراتب باید \f[I]null\f[R] باشد، در غیر این صورت TPM بارگذاری آن را رد خواهد کرد\&. .SH "مثال‌ها (EXAMPLES)" .SS "بارگذاری یک کلید عمومی تولیدشده توسط TPM در سلسله‌مراتب \f[I]owner\f[R]" .IP .EX tpm2_createprimary \-c primary.ctx tpm2_create \-C primary.ctx \-u pub.dat \-r priv.dat tpm2_loadexternal \-C o \-u pub.dat \-c pub.ctx name: 000b9be4d7c6193a57e1bfc86a42a6b03856a91d2f9e77c6cbdb796a783d52d4b3b9 .EE .SS "بارگذاری یک کلید عمومی RSA در سلسله‌مراتب \f[I]owner\f[R]" .IP .EX openssl genrsa \-out private.pem 2048 openssl rsa \-in private.pem \-out public.pem \-outform PEM \-pubout tpm2_loadexternal \-C o \-Grsa \-u public.pem \-c key.ctx name: 000b7b91d304d16995d42792b57d0fb25df7abe5fdd8afe9950730e00dc5b934ddbc .EE .SS "بارگذاری یک جفت‌کلید RSA در سلسله‌مراتب \f[I]null\f[R]" .IP .EX openssl genrsa \-out private.pem 2048 tpm2_loadexternal \-C n \-Grsa \-r private.pem \-c key.ctx name: 000b635ea220b6c62ec1d02343859dd203c8ac5dad82ebc5b124e407d2502f88691f .EE .SS "بارگذاری یک کلید AES در سلسله‌مراتب \f[I]null\f[R]" .IP .EX dd if=/dev/urandom of=sym.key bs=1 count=16 tpm2_loadexternal \-C n \-Gaes \-r sym.key \-c key.ctx name: 000bfc4d8dd7e4f921bcc9dca4b04f49564243cd9def129a3740002bfd4b9e966d34 .EE .SS "بارگذاری یک کلید خصوصی TSS2 در سلسله‌مراتب \f[I]null\f[R]" .IP .EX tpm2_loadexternal \-r tss_privkey.pem \-c tss_privkey.ctx name: 000bc5a216702aca9ba226af1214c50dc4dc33ce6269677aa581ea6d9eec7f27000d .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 منتشر شده است\&.