.\" Automatically generated by Pandoc 3.6.1 .\" .TH "tpm2_sign" "1" "" "tpm2\-tools" "General Commands Manual" .SH "نام (NAME)" tpm2_sign \- امضای یک هش یا پیام با استفاده از TPM .SH "خلاصه دستور (SYNOPSIS)" \f[B]tpm2_sign\f[R] [\f[I]OPTIONS\f[R]] [\f[I]ARGUMENT\f[R]] .SH "توضیحات (DESCRIPTION)" ابزار \f[B]tpm2_sign\f[R](1) با استفاده از کلید امضای متقارن یا نامتقارن مشخص‌شده، برای پیام یا خلاصه‌ی پیام (message\-digest) مشخص‌شده امضا تولید می‌کند. .PP هنگام امضای یک پیام، ابزار \f[B]tpm2_sign\f[R] ابتدا مشابه دستور \f[B]tpm2_hash\f[R] خلاصه‌ی پیام را محاسبه می‌کند. این ابزار همچنین بسته به این‌که کلید امضا نامحدود (unrestricted) یا محدود (restricted) باشد، به ترتیب یک بلیت اعتبارسنجی (validation ticket) تحت سلسله‌مراتب‌های TPM2_RH_NULL یا TPM2_RH_OWNER تولید می‌کند. .PP اگرچه امکان امضای مستقیم پیام‌ها در این ابزار فراهم شده است، اما توصیه می‌شود ابتدا از ابزار \f[B]tpm2_hash\f[R] استفاده کرده و سپس خلاصه و بلیت اعتبارسنجی را به این دستور ارسال نمایید. .PP نکته: اگر کلید امضا یک کلید امضای محدود باشد، اعتبارسنجی و خلاصه باید از طریق ورودی \f[B]\-t\f[R] ارائه شوند. این بلیت نشان می‌دهد که TPM عمل هش کردن پیام را انجام داده است. .SH "گزینه‌ها (OPTIONS)" .IP \[bu] 2 \f[B]\-c\f[R], \f[B]\-\-key\-context\f[R]=\f[I]OBJECT\f[R]: .RS 2 .PP شیء بافتار که به کلید مورد استفاده برای امضا اشاره دارد. می‌تواند یک فایل یا شماره دستگیره (handle) باشد. بخش \[lq]قالب شیء بافتار (Context Object Format)\[rq] را ببینید. .RE .IP \[bu] 2 \f[B]\-p\f[R], \f[B]\-\-auth\f[R]_AUTH_: .RS 2 .PP مقدار احراز هویت اختیاری برای استفاده از کلید مشخص‌شده با \f[B]\-c\f[R]. مقادیر احراز هویت باید از \[lq]استانداردهای قالب‌بندی احراز هویت\[rq] پیروی کنند، بخش \[lq]Authorization Formatting\[rq] را ببینید. .RE .IP \[bu] 2 \f[B]\-g\f[R], \f[B]\-\-hash\-algorithm\f[R]=\f[I]ALGORITHM\f[R]: .RS 2 .PP الگوریتم هش استفاده‌شده برای خلاصه‌سازی پیام. الگوریتم‌ها باید از \[lq]استانداردهای قالب‌بندی\[rq] پیروی کنند، بخش \[lq]Algorithm Specifiers\[rq] را ببینید. همچنین برای فهرستی از الگوریتم‌های هش پشتیبانی‌شده، بخش \[lq]Supported Hash Algorithms\[rq] را ببینید. .RE .IP \[bu] 2 \f[B]\-s\f[R], \f[B]\-\-scheme\f[R]=\f[I]ALGORITHM\f[R]: .RS 2 .PP طرح‌واره امضا (signing scheme) که برای امضای پیام استفاده می‌شود. اختیاری است. .PP طرح‌واره‌های امضا باید از \[lq]استانداردهای قالب‌بندی\[rq] پیروی کنند، بخش \[lq]Algorithm Specifiers\[rq] را ببینید. .PP در صورت تعیین، طرح‌واره امضا باید با نوع کلید مطابقت داشته باشد. در صورت تعیین نشدن، یک طرح‌واره امضای پیش‌فرض برای نوع کلید به کار گرفته خواهد شد. .RE .IP \[bu] 2 \f[B]\-d\f[R], \f[B]\-\-digest\f[R]: .RS 2 .PP مشخص می‌کند که \f[I]FILE\f[R] یک فایل حاوی خلاصه (digest) پیام است. در صورت مشخص شدن هم‌زمان این گزینه و \f[B]\-t\f[R]، یک هشدار صادر شده و \f[B]بلیت اعتبارسنجی (\-t) نادیده گرفته می‌شود\f[R]. شما نمی‌توانید از این گزینه برای امضای یک خلاصه با یک کلید امضای محدود (restricted) استفاده کنید. .RE .IP \[bu] 2 \f[B]\-t\f[R], \f[B]\-\-ticket\f[R]=\f[I]FILE\f[R]: .RS 2 .PP فایل بلیت، حاوی ساختار اعتبارسنجی؛ اختیاری. .RE .IP \[bu] 2 \f[B]\-o\f[R], \f[B]\-\-signature\f[R]=\f[I]FILE\f[R]: .RS 2 .PP فایل امضا، ساختار امضا را ثبت می‌کند. .RE .IP \[bu] 2 \f[B]\-f\f[R], \f[B]\-\-format\f[R]=\f[I]FORMAT\f[R]: .RS 2 .PP انتخاب قالب برای فایل خروجی امضا. بخش \[lq]Signature Format Specifiers\[rq] را ببینید. .RE .IP \[bu] 2 \f[B]\-\-cphash\f[R]=\f[I]FILE\f[R] .RS 2 .PP مسیر فایل برای ثبت هش پارامترهای دستور. این مورد معمولاً cpHash نامیده می‌شود. نکته: هنگام انتخاب این گزینه، ابزار در عمل دستور را اجرا نمی‌کند و صرفاً یک cpHash بازمی‌گرداند. .RE .IP \[bu] 2 \f[B]\-\-commit\-index\f[R]=\f[I]NATURALNUMBER\f[R] .RS 2 .PP مقدار شمارنده commit برای تعیین نمایه کلید جهت استفاده در طرح‌واره امضای ECDAA. مقدار پیش‌فرض شمارنده 0 است. .RE .IP \[bu] 2 \f[B]ARGUMENT\f[R] آرگومان خط فرمان که داده‌های فایل را برای امضا مشخص می‌کند. .SS "مراجع (References)" .SH "قالب شیء بافتار (Context Object Format)" نوع یک شیء بافتار، چه یک handle باشد و چه نام فایل، بر اساس منطق زیر \f[I]به‌ترتیب\f[R] تعیین می‌شود: .IP \[bu] 2 اگر آرگومان مسیر یک فایل باشد، فایل به عنوان یک شیء گذرا (transient object) بازیابی‌شده‌ی TPM بارگذاری می‌شود. .IP \[bu] 2 اگر آرگومان با یکی از موارد زیر تطابق \f[I]پیشوندی\f[R] داشته باشد: .RS 2 .IP \[bu] 2 owner: سلسله‌مراتب owner .IP \[bu] 2 platform: سلسله‌مراتب platform .IP \[bu] 2 endorsement: سلسله‌مراتب endorsement .IP \[bu] 2 lockout: شیء پایدار کنترل lockout .RE .IP \[bu] 2 اگر آرگومان بتواند به صورت یک عدد بارگذاری شود، به عنوان یک handle تلقی شده (مانند 0x81010013) و مستقیماً استفاده می‌شود._OBJECT_..SH "قالب‌بندی احراز دسترسی (Authorization Formatting)" احراز دسترسی برای استفاده از یک شیء در TPM2.0 می‌تواند به ۳ شکل مختلف باشد: ۱. گذرواژه (Password) ۲. HMAC ۳. نشست‌ها (Sessions) .PP \f[B]نکته:\f[R] \[lq]در صورت مشخص نشدن، احراز دسترسی به‌طور پیش‌فرض روی \f[B]گذرواژه خالی (EMPTY PASSWORD)\f[R] تنظیم می‌شود\[rq]. .PP برای احراز اصالت با مقادیر auth، دستورات ابزار به‌طور ضمنی یک نشست 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 # to use stdin and be prompted file:\- # to use a file from a path file:path/to/password/file # to echo a password via stdin: echo foobar | tpm2_tool \-p file:\- # to use a bash here\-string via stdin: tpm2_tool \-p file:\- <<< foobar .EE .SS "نشست‌ها (Sessions)" هنگام استفاده از یک نشست پالیسی (policy session) جهت احراز دسترسیِ استفاده از یک شیء، آرگومان گزینه را با کلمه کلیدی \f[I]session\f[R] پیشوندگذاری کنید. سپس مسیری را به یک فایل نشست که با tpm2_startauthsession(1) ایجاد شده است تعیین نمایید. به‌صورت اختیاری، اگر نشست مستلزم ارسال یک auth value به همراه دستگیره (handle) نشست باشد (مانند policy password)، یک + و یک رشته را مطابق با توضیحات بخش \f[B]گذرواژه‌ها (Passwords)\f[R] اضافه کنید. .SS "مثال‌ها (EXAMPLES)" برای استفاده از یک فایل بافتار (context) نشست به نام \f[I]session.ctx\f[R]: .IP .EX session:session.ctx .EE .PP برای استفاده از یک فایل بافتار نشست به نام \f[I]session.ctx\f[R] \f[B]و\f[R] ارسال authvalue با مقدار mypassword: .IP .EX session:session.ctx+mypassword .EE .PP برای استفاده از یک فایل بافتار نشست به نام \f[I]session.ctx\f[R] \f[B]و\f[R] ارسال authvalue از نوع \f[I]HEX\f[R] با مقدار 0x11223344: .IP .EX session:session.ctx+hex:11223344 .EE .SS "احراز دسترسی‌های PCR (PCR Authorizations)" می‌توانید با استفاده از پیشوند \[lq]pcr:\[rq] و ریززبان 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 (PCR bank specifiers) .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، الگوریتم‌های متعددی برای مقداردهی در داده‌های عمومی (public data) دارند؛ مواردی مانند نوع، طرح و جزئیات نامتقارن، اندازه کلید و غیره. قالب کلی برای تعیین این داده‌ها در زیر آمده است: \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 \- منحنی ۱۹۲ بیتی 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. اگر شمارنده‌ای مشخص نشود، مقدار پیش‌فرض آن 4 خواهد بود. .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 "گزینه‌های عمومی (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] مشخص شده باشد، یا فراخوانی manpager با شکست مواجه شود، گزینه‌های کوتاه در stdout نمایش داده می‌شوند. .RS 2 .PP استفادهٔ موفقیت‌آمیز از ویژگی manpage نیازمند نصب بودن صفحات راهنما یا قرار داشتن آن‌ها در \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 برای احراز هویت. یک گذرواژهٔ متنیِ رمزنگاری‌نشده (clear text) برای صدور مجوز اقدام به TPM ارسال می‌شود. این گزینه می‌تواند برای جلوگیری از بروز مشکلات در هنگام استفاده از نشست‌های بدون نمک (unsalted) در حالت OpenSSL FIPS به کار رود. اگر از مقادیر auth استفاده می‌شود، باید یک نشست نمک‌دار (salted) برای احراز هویت استفاده شود. .IP \[bu] 2 \f[B]\-R\f[R]، \f[B]\-\-autoflush\f[R]: فعال‌سازی پاک‌سازی خودکار (autoflush) برای اشیاء موقتی ایجادشده توسط دستور. اگر یک شیء والد از یک فایل زمینه (context file) بارگذاری شود، شیء موقتی والد نیز پاک‌سازی خواهد شد. همچنین در صورتی که متغیر محیطی TPM2TOOLS_AUTOFLUSH روی yes یا true تنظیم شده باشد، autoflush فعال می‌شود. اطلاعاتی که بسیاری از کاربران ممکن است انتظار داشته باشند. .SH "پیکربندی TCTI (TCTI CONFIGURATION)" رابط TCTI یا \[lq]رابط انتقال\[rq] (Transmission Interface) سازوکار ارتباطی با 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 (خارج از 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 دستگاه، فایل دستگاه نویسه‌ای 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 "مشخص‌کننده‌های قالب امضا (SIGNATURE FORMAT SPECIFIERS)" انتخاب قالب برای فایل خروجی امضا. \f[B]tss\f[R] (پیش‌فرض) یک حباب دادهٔ دودویی (binary blob) مطابق با مشخصات TPM 2.0 و هرگونه فاصله‌گذاری احتمالی کامپایلر تولید خواهد کرد. گزینهٔ \f[B]plain\f[R] داده‌های خام امضا را همان‌گونه که توسط الگوریتم رمزنگاری استفاده‌شده تعریف شده است خروجی می‌دهد. .SH "مثال‌ها (EXAMPLES)" .SS "امضا و اعتبارسنجی با TPM با استفاده از سلسله‌مراتب \f[I]endorsement\f[R]" .IP .EX tpm2_createprimary \-C e \-c primary.ctx tpm2_create \-G rsa \-u rsa.pub \-r rsa.priv \-C primary.ctx tpm2_load \-C primary.ctx \-u rsa.pub \-r rsa.priv \-c rsa.ctx echo \[dq]my message\[dq] > message.dat tpm2_sign \-c rsa.ctx \-g sha256 \-o sig.rssa message.dat tpm2_verifysignature \-c rsa.ctx \-g sha256 \-s sig.rssa \-m message.dat .EE .SS "امضا با TPM و اعتبارسنجی با OSSL" .IP .EX openssl ecparam \-name prime256v1 \-genkey \-noout \-out private.ecc.pem openssl ec \-in private.ecc.pem \-out public.ecc.pem \-pubout \f[I]# Generate a hash to sign\f[R] echo \[dq]data to sign\[dq] > data.in.raw sha256sum data.in.raw \f[B]|\f[R] awk \[aq]{ print \[dq]000000 \[dq] $1 }\[aq] \f[B]|\f[R] \[rs] xxd \-r \-c 32 > data.in.digest \f[I]# Load the private key for signing\f[R] tpm2_loadexternal \-Q \-G ecc \-r private.ecc.pem \-c key.ctx \f[I]# Sign in the TPM and verify with OSSL\f[R] tpm2_sign \-Q \-c key.ctx \-g sha256 \-d \-f plain \-o data.out.signed data.in.digest openssl dgst \-verify public.ecc.pem \-keyform pem \-sha256 \[rs] \-signature data.out.signed data.in.raw .EE .SH "وضعیت خروج (EXIT STATUS)" ابزارها می‌توانند هریک از کدهای زیر را بازگردانند: .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 \- طرح‌وارهٔ (scheme) پشتیبانی‌نشده. مربوط به 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 Creative Commons Attribution 4.0 International License (CC BY 4.0) .UE \c \& قرار دارد.