| tpm2_createek(1) | General Commands Manual | tpm2_createek(1) |
نام (NAME)
tpm2_createek - ایجاد کلید تاییدیه اصلی TPM2 (Endorsement Key)
خلاصه دستور (SYNOPSIS)
tpm2_createek [گزینهها]
توضیحات (DESCRIPTION)
دستور tpm2_createek(1) یک کلید تاییدیه (EK) منطبق بر پروفایل TCG ایجاد میکند که شیء اصلی در سلسلهمراتب تاییدیه (endorsement hierarchy) است.
اگر یک شیء گذرا (transient) ایجاد شود، این ابزار یک فایل بافت (context file) را در مسیر مشخصشده با گزینه -c خروجی میدهد.
مراجعه کنید به: http://www.trustedcomputinggroup.org/files/static_page_files/7CAA5687-1A4B-B294-D04080D058E86C5F
گزینهها (OPTIONS)
- •
- -P، --eh-auth=AUTH:
مقدار احراز هویت برای سلسلهمراتب تاییدیه (endorsement hierarchy).
- •
- -w، --owner-auth=AUTH
مقدار احراز هویت برای سلسلهمراتب مالک (owner hierarchy).
- •
- -c، --ek-context=OBJECT یا FILE:
مسیر یک فایل یا مقدار یک دستگیره پایدار (persistent handle) برای ذخیره کلید تاییدیه.
اگر مقدار - ارسال شود، ابزار یک دستگیره پایدار خالی را برای استفاده پیدا کرده و دستگیره انتخابشده خودکار را چاپ میکند.
اگر فایل بافت از طریق این گزینه و کلید عمومی از طریق گزینه -u ذخیره شود، کلید تاییدیه (EK) را میتوان از طریق فراخوانی دستور tpm2_loadexternal(1) بازیابی کرد.
- •
- -G، --key-algorithm=ALGORITHM:
الگوریتم کلید تاییدیه. پشتیبانی میکند از:
- •
- ecc - بهطور پیشفرض یک کلید NIST_P256. منحنیهای جایگزین را میتوان با استفاده از مشخصکنندههای الگوریتم انتخاب کرد (مانند ecc384 یا ecc_nist_p384).
- •
- rsa - یک کلید RSA2048.
- •
- keyedhash - کلید hmac. بهطور پیشفرض، برای NIST_P256 و RSA2048 از الگوی محدوده LOW تعریفشده در EK Credential Profile استفاده خواهد شد. الگوی محدوده HIGH را میتوان با افزودن پسوند _high به نام الگوریتم انتخاب کرد.
- •
- -u، --public=FILE:
ورودی اختیاری برای فایلی جهت ذخیره بخش عمومی کلید تاییدیه.
- •
- -t، --template:
الگوی کلید تاییدیه و نانس (nonce) اختیاری تعریفشده توسط سازنده از ایندکسهای ثابت NV برای مقداردهی ناحیه عمومی TPM2B_PUBLIC. برای اطلاعات بیشتر به مشخصات TCG EK Credential Profile مراجعه کنید: https://trustedcomputinggroup.org/wp-content/uploads/TCG_IWG_Credential_Profile_EK_V2.1_R13.pdf
- •
- -f، --format:
انتخاب فرمت برای فایل خروجی کلید عمومی. مقدار “tss” (پیشفرض) یک حباب دودویی (binary blob) طبق مشخصات TPM 2.0 تولید میکند. مقدار “pem” یک کلید عمومی با کدگذاری PEM و سازگار با OpenSSL تولید میکند. مقدار “der” یک کلید عمومی با کدگذاری DER و سازگار با OpenSSL تولید میکند. مقدار “tpmt” یک حباب دودویی از ساختار TPMT_PUBLIC ارجاعشده در مشخصات TPM 2.0 تولید میکند.
فرمت کلید عمومی.
ارجاعات (References)
فرمت شیء بافت (Context Object Format)
نوع یک شیء بافت (context object)، چه یک دستگیره (handle) باشد یا نام فایل، طبق منطق زیر و بهترتیب تعیین میشود:
- •
- اگر آرگومان یک مسیر فایل باشد، فایل به عنوان یک شیء گذرای (transient) بازیابیشده TPM بارگذاری میشود.
- •
- اگر آرگومان با یک پیشوند از موارد زیر تطابق داشته باشد:
- •
- owner: سلسلهمراتب مالک (owner hierarchy)
- •
- platform: سلسلهمراتب پلتفرم (platform hierarchy)
- •
- endorsement: سلسلهمراتب تاییدیه (endorsement hierarchy)
- •
- lockout: شیء پایدار کنترل قفل (lockout control persistent object)
- •
- اگر آرگومان بتواند به عنوان یک عدد بارگذاری شود، به عنوان یک دستگیره (handle) مانند 0x81010013 در نظر گرفته شده و مستقیماً استفاده میشود.
قالببندی احراز هویت (Authorization Formatting)
احراز هویت برای استفاده از یک شیء در TPM 2.0 میتواند به ۳ شکل مختلف انجام شود:
- 1.
- گذرواژه (Password)
- 2.
- کد HMAC
- 3.
- نشستها (Sessions)
نکته: “در صورت عدم تعیین، احراز هویتها بهطور پیشفرض بر روی گذرواژه خالی (EMPTY PASSWORD) قرار میگیرند”.
برای احراز هویت با مقادیر auth، دستورات این ابزار به صورت ضمنی یک نشست HMAC ایجاد میکنند. بنابراین گذرواژهها به صورت رمزنگارینشده منتقل نمیشوند. این مورد برای گذرواژههای تعریفشده برای اشیاء صدق نمیکند. در این حالت، باید از یک نشست HMAC استفاده شود (رجوع کنید به tpm2_startauthsession(1)).
گذرواژهها (Passwords)
گذرواژهها بر اساس شناسههای پیشوندی به اشکال زیر تفسیر میشوند.
نکته: بهطور پیشفرض اگر گذرواژهها پیشوند نداشته باشند، در قالب رشته متنی فرض میشوند.
رشته متنی (String)
یک گذرواژه رشتهای که با پیشوند “str:” یا بدون پیشوند (رشته خام) مشخص میشود، تفسیر نشده و مستقیماً برای احراز هویت به کار میرود.
مثالها (Examples)
-
foobar str:foobar
رشته هگز (Hex-string)
یک گذرواژه به صورت رشته هگزادسیمال، با پیشوند “hex:” مشخص میشود و از قالب هگزادسیمال به آرایه بایت تبدیل میگردد؛ بدین ترتیب استفاده از گذرواژههایی با نویسههای غیرقابلچاپ یا ناسازگار با ترمینال امکانپذیر میشود.
مثال (Example)
-
hex:1122334455667788
فایل (File)
یک گذرواژه مبتنی بر فایل که با پیشوند “file:” مشخص میشود، باید مسیر فایلی حاوی گذرواژه باشد تا توسط ابزار خوانده شود، یا “-” برای استفاده از ورودی استاندارد (stdin). ذخیره گذرواژهها در فایل از نشت اطلاعات جلوگیری میکند، زیرا گذرواژههای ارسالشده به عنوان گزینه ممکن است از طریق فهرست پردازشها یا تاریخچه پوسته خوانده شوند.
مثالها (Examples)
-
# استفاده از stdin و درخواست از کاربر file:- # استفاده از فایل از یک مسیر file:path/to/password/file # ارسال گذرواژه از طریق stdin با echo: echo foobar | tpm2_tool -p file:- # استفاده از here-string بش از طریق stdin: tpm2_tool -p file:- <<< foobar
نشستها (Sessions)
هنگام استفاده از یک نشست پالیسی (policy session) برای مجاز کردن استفاده از یک شیء، کلمه کلیدی session را به عنوان پیشوند آرگومان گزینه قرار دهید. سپس مسیری به یک فایل بافت نشست که با دستور tpm2_startauthsession(1) ایجاد شده است را مشخص کنید. در صورت تمایل، اگر نشست نیازمند ارسال مقدار auth همراه با دستگیره نشست باشد (مانند گذرواژه پالیسی)، یک علامت + و رشتهای مطابق با بخش گذرواژهها (Passwords) اضافه کنید.
مثالها (Examples)
برای استفاده از فایل بافت نشست با نام session.ctx:
-
session:session.ctx
برای استفاده از فایل بافت نشست با نام session.ctx و ارسال مقدار auth برابر با mypassword:
-
session:session.ctx+mypassword
برای استفاده از فایل بافت نشست با نام session.ctx و ارسال مقدار auth هگزادسیمال 0x11223344:
-
session:session.ctx+hex:11223344
احراز هویتهای PCR (PCR Authorizations)
میتوانید یک پالیسی PCR را با استفاده از پیشوند “pcr:” و زبان کوچک PCR برآورده سازید. زبان کوچک PCR به صورت زیر است: <pcr-spec>=<raw-pcr-file>
مشخصات PCR در بخش “مشخصکنندههای بانک PCR (PCR bank specifiers)” مستند شده است.
آرگومان raw-pcr-file یک آرگومان اختیاری است که حاوی خروجی خام محتویات PCR است که توسط tpm2_pcrread(1) بازگردانده میشود.
مشخصکنندههای بانک PCR
مثالها (Examples)
برای برآورده کردن یک پالیسی PCR با sha256 روی بانکهای ۰، ۱، ۲ و ۳ از مشخصکننده زیر استفاده کنید:
-
pcr:sha256:0,1,2,3
مشخص کردن AUTH.
مشخصکنندههای الگوریتم (Algorithm Specifiers)
گزینههایی که الگوریتم دریافت میکنند از “نامهای مناسب (nice-names)” پشتیبانی میکنند.
دو دسته اصلی رشتههای مشخصکننده الگوریتم وجود دارد: ساده و پیچیده. بر اساس کاربرد و شرایط، تنها الگوریتمهای خاصی توسط TPM پذیرفته میشوند.
مشخصکنندههای ساده (Simple specifiers)
اینها رشتههایی بدون دادههای مشخصکننده اضافی هستند. هنگام ایجاد اشیاء، بخشهای نامشخص شیء به مقادیر پیشفرض ارجاع داده میشوند. میتوانید فهرست “مشخصکنندههای ساده” شناختهشده را در زیر بیابید.
نامتقارن (Asymmetric)
- •
- rsa
- •
- ecc
متقارن (Symmetric)
- •
- aes
- •
- camellia
- •
- sm4
الگوریتمهای درهمسازی (Hashing Algorithms)
- •
- sha1
- •
- sha256
- •
- sha384
- •
- sha512
- •
- sm3_256
- •
- sha3_256
- •
- sha3_384
- •
- sha3_512
درهمسازی کلیددار (Keyed Hash)
- •
- hmac
- •
- xor
طرحهای امضا (Signing Schemes)
- •
- rsassa
- •
- rsapss
- •
- ecdsa
- •
- ecdaa
- •
- ecschnorr
- •
- sm2
طرحهای رمزنگاری نامتقارن (Asymmetric Encryption Schemes)
- •
- oaep
- •
- rsaes
- •
- ecdh
حالتها (Modes)
- •
- ctr
- •
- ofb
- •
- cbc
- •
- cfb
- •
- ecb
متفرقه (Misc)
- •
- null
مشخصکنندههای پیچیده (Complex Specifiers)
اشیاء هنگام تعیین برای ایجاد توسط TPM، دارای الگوریتمهای متعددی هستند که باید در دادههای عمومی مقداردهی شوند؛ مواردی مانند نوع، طرح و جزئیات نامتقارن، اندازه کلید و غیره. در زیر قالب کلی برای مشخص کردن این دادهها آمده است: <type>:<scheme>:<symmetric-details>
مشخصکنندههای نوع (Type Specifiers)
این بخش از مشخصکننده الگوریتم پیچیده الزامی است. طرح و جزئیات متقارن باقیمانده بر اساس نوع مشخصشده و نوع شیء در حال ایجاد، پیشفرضگذاری میشوند.
- •
- aes - مقدار پیشفرض AES: aes128.
- •
- aes128<mode> - الگوریتم AES با طول ۱۲۸ بیت و حالت اختیاری (ctr|ofb|cbc|cfb|ecb). اگر حالت مشخص نشود، پیشفرض null خواهد بود.
- •
- aes192<mode> - مشابه aes128<mode>، بهجز اندازه کلید ۱۹۲ بیتی.
- •
- aes256<mode> - مشابه aes128<mode>، بهجز اندازه کلید ۲۵۶ بیتی.
- •
- sm4 - مقدار پیشفرض SM4: sm4128.
- •
- sm4128 یا sm4_128 <mode> - الگوریتم SM4 با طول ۱۲۸ بیت و حالت اختیاری (ctr|ofb|cbc|cfb|ecb). اگر حالت مشخص نشود، پیشفرض null خواهد بود.
- •
- ecc - خم بیضوی، پیشفرض ecc256.
- •
- ecc192 یا ecc_nist_p192 - خم بیضوی ۱۹۲ بیتی NIST ECC.
- •
- ecc224 یا ecc_nist_p224 - خم بیضوی ۲۲۴ بیتی NIST ECC.
- •
- ecc256 یا ecc_nist_p256 - خم بیضوی ۲۵۶ بیتی NIST ECC.
- •
- ecc384 یا ecc_nist_p384 - خم بیضوی ۳۸۴ بیتی NIST ECC.
- •
- ecc521 یا ecc_nist_p521 - خم بیضوی ۵۲۱ بیتی NIST ECC.
- •
- ecc_sm2 یا ecc_sm2_p256 - خم بیضوی ۲۵۶ بیتی SM2.
- •
- rsa - مقدار پیشفرض RSA: rsa2048.
- •
- rsa1024 - الگوریتم RSA با اندازه کلید ۱۰۲۴ بیت.
- •
- rsa2048 - الگوریتم RSA با اندازه کلید ۲۰۴۸ بیت.
- •
- rsa3072 - الگوریتم RSA با اندازه کلید ۳۰۷۲ بیت.
- •
- rsa4096 - الگوریتم RSA با اندازه کلید ۴۰۹۶ بیت.
مشخصکنندههای طرح (Scheme Specifiers)
فیلد بعدی اختیاری است و میتوان از آن صرفنظر کرد.
طرحها معمولاً طرحهای امضا (Signing Schemes) یا طرحهای رمزنگاری نامتقارن (Asymmetric Encryption Schemes) هستند. بیشتر طرحهای امضا بلافاصله پس از طرح امضا، یک الگوریتم درهمسازی دریافت میکنند. اگر الگوریتم درهمسازی ذکر نشود، پیشفرض sha256 خواهد بود. برخی هیچ آرگومانی نمیپذیرند و برخی چندین آرگومان دریافت میکنند.
مشخصکنندههای طرح با درهمسازی اختیاری (Hash Optional Scheme Specifiers)
پس از این مشخصکنندههای طرح، یک خط تیره و یک الگوریتم درهمسازی معتبر قرار میگیرد، برای مثال: oaep-sha256.
- •
- oaep
- •
- ecdh
- •
- rsassa
- •
- rsapss
- •
- ecdsa
- •
- ecschnorr
- •
- sm2
مشخصکنندههای طرح چندگزینهای (Multiple Option Scheme Specifiers)
پس از این مشخصکننده طرح، یک شمارنده (حداکثر اندازه UINT16) و سپس یک خط تیره (-) و یک الگوریتم درهمسازی معتبر قرار میگیرد. * ecdaa به عنوان مثال، ecdaa4-sha256. اگر شمارندهای مشخص نشود، پیشفرض ۴ خواهد بود.
مشخصکنندههای طرح بدون گزینه (No Option Scheme Specifiers)
این مشخصکننده طرح هیچ آرگومانی دریافت نمیکند. * rsaes
مشخصکنندههای جزئیات متقارن (Symmetric Details Specifiers)
این فیلد اختیاری است و بر اساس نوع (type) شیء در حال ایجاد و ویژگیهای آن پیشفرضگذاری میشود. بهطور کلی، هر مشخصکننده معتبر متقارن از فهرست مشخصکنندههای نوع باید کار کند. اگر مشخص نشود، جزئیات متقارن یک شیء نامتقارن بهطور پیشفرض به aes128cfb تنظیم میشود.
مثالها (Examples)
ایجاد یک کلید rsa2048 با طرح رمزنگاری نامتقارن rsaes (Create an rsa2048 key with an rsaes asymmetric encryption scheme)
tpm2_create -C parent.ctx -G rsa2048:rsaes -u key.pub -r key.priv
ایجاد یک کلید ecc256 با طرح امضای ecdaa با شمارنده ۴ و درهمسازی sha384 (Create an ecc256 key with an ecdaa signing scheme with a count of 4 and sha384 hash)
tpm2_create -C parent.ctx -G ecc256:ecdaa4-sha384 -u key.pub -r key.priv الگوریتمهای رمزنگاری ALGORITHM.
گزینههای عمومی (COMMON OPTIONS)
این مجموعه گزینهها بین بسیاری از برنامهها مشترک هستند و اطلاعاتی را ارائه میدهند که بسیاری از کاربران انتظار دارند.
- •
- -h، --help=[man|no-man]: نمایش صفحه راهنمای (manpage) ابزار. بهطور پیشفرض، تلاش میکند تا صفحهبند man (manpager) را برای ابزار فراخوانی کند؛ اما در صورت شکست، خلاصه کوتاهی از ابزار را نمایش میدهد. این رفتار مشابه زمانی است که آرگومان گزینه “man” مشخص شده باشد؛ اما اگر “man” بهطور صریح درخواست شود، ابزار خطاهای man را در stderr ارائه میدهد. اگر گزینه “no-man” مشخص شود، یا فراخوانی صفحهبند man با شکست مواجه گردد، گزینههای کوتاه در stdout نمایش داده میشوند.
استفاده موفقیتآمیز از ویژگی صفحات راهنما نیازمند آن است که این صفحات نصب شده باشند یا در MANPATH قرار داشته باشند؛ برای جزئیات بیشتر به man(1) مراجعه کنید.
- •
- -v، --version: نمایش اطلاعات نسخه این ابزار، TCTIهای پشتیبانیشده و سپس خروج.
- •
- -V، --verbose: افزایش اطلاعاتی که ابزار در طول اجرای خود در کنسول چاپ میکند. هنگام استفاده از این گزینه، نام فایل و شماره خط چاپ میشوند.
- •
- -Q، --quiet: بیصدا کردن خروجی عادی ابزار در stdout.
- •
- -Z، --enable-errata: فعالسازی اعمال اصلاحات اشتباهنامه (errata fixups). زمانی مفید است که لازم باشد یک اصلاح اشتباهنامه بر روی دستورات ارسالی به TPM اعمال شود. تعریف متغیر محیطی TPM2TOOLS_ENABLE_ERRATA نیز معادل این گزینه است.
- •
- -z، --pwd-session: استفاده از نشست گذرواژه به جای نشست HMAC برای احراز هویت. یک گذرواژه متنی آشکار (clear text) به TPM ارسال میشود تا اقدام مورد نظر مجاز شود. این گزینه میتواند برای جلوگیری از مشکلاتی که هنگام استفاده از نشستهای بدون نمک (unsalted) در حالت OpenSSL FIPS رخ میدهد، استفاده شود. اگر مقادیر auth استفاده میشوند، باید از یک نشست با نمک (salted) برای احراز هویت استفاده گردد.
- •
- -R، --autoflush: فعالسازی تخلیه خودکار (autoflush) برای اشیاء گذرای ایجادشده توسط دستور. اگر یک شیء والد از یک فایل بافت بارگذاری شود، شیء والد گذرا نیز تخلیه خواهد شد. تخلیه خودکار همچنین میتواند با تنظیم متغیر محیطی TPM2TOOLS_AUTOFLUSH بر روی yes یا true فعال شود. اطلاعاتی که بسیاری از کاربران ممکن است انتظار داشته باشند.
پیکربندی TCTI (TCTI Configuration)
رابط TCTI یا “رابط انتقال (Transmission Interface)” مکانیزم ارتباط با TPM است. رابطهای TCTI را میتوان برای ارتباط با TPM از طریق بسترهای مختلف تغییر داد.
برای کنترل TCTI، ابزارها موارد زیر را رعایت میکنند:
- 1.
- گزینه خط فرمان -T یا --tcti
- 2.
- متغیر محیطی: TPM2TOOLS_TCTI.
نکته: گزینه خط فرمان همواره بر متغیر محیطی اولویت دارد.
رابطهای TCTI شناختهشده فعلی عبارتند از:
- •
- tabrmd - مدیر منابع، تحت عنوان tabrmd. توجه داشته باشید که tabrmd و abrmd به عنوان نام tcti مترادف یکدیگر هستند.
- •
- mssim - معمولاً برای برقراری ارتباط با شبیهساز نرمافزاری TPM استفاده میشود.
- •
- device - برای ارتباط مستقیم با فایل دستگاه TPM استفاده میشود.
- •
- none - اتصالی با TPM برقرار نمیکند. برخی ابزارها امکان استفاده از گزینههای خارج از TPM را دارند و بنابراین از عدم استفاده از TCTI پشتیبانی میکنند. ابزارهایی که از آن پشتیبانی نمیکنند، در صورت تلاش برای استفاده بدون اتصال TCTI با خطا مواجه میشوند. این حالت از هیچ گزینهای پشتیبانی نمیکند و باید حتماً دقیقاً به صورت عبارت “none” ارائه شود.
آرگومانهای گزینه خط فرمان یا متغیر محیطی به قالب زیر هستند:
<tcti-name>:<tcti-option-config>
مشخص کردن یک رشته خالی برای هر یک از بخشهای <tcti-name> یا <tcti-option-config> باعث میشود که برای آن بخش به ترتیب مقدار پیشفرض استفاده شود.
پیشفرضهای TCTI (TCTI Defaults)
هنگامی که TCTI مشخص نشده باشد، TCTI پیشفرض با استفاده از قواعد dlopen(3) جستجو میشود. ابزارها TCTIهای tabrmd، device و mssim را به همین ترتیب جستجو کرده و از اولین موردی که یافت شود استفاده میکنند. میتوانید با استفاده از گزینه -v برای چاپ اطلاعات نسخه، بررسی کنید که کدام TCTI به عنوان پیشفرض انتخاب خواهد شد. جفت کلید-مقدار “default-tcti” نشان میدهد که کدام یک از TCTIهای یادشده پیشفرض است.
TCTIهای سفارشی (Custom TCTIs)
هر TCTI که رابط پویای TCTI را پیادهسازی کند میتواند بارگذاری شود. ابزارها در داخل از dlopen(3) استفاده میکنند و مقدار خام tcti-name برای جستجو به کار میرود. بنابراین، این مقدار میتواند مسیری به کتابخانه اشتراکی یا نام کتابخانهای باشد که بر اساس قواعد dlopen(3) قابل درک است.
گزینههای TCTI (TCTI OPTIONS)
این مجموعه گزینهها برای پیکربندی ماژولهای مختلف و شناختهشده TCTI موجود به کار میروند:
- •
- device: برای رابط TCTI از نوع device، میتوان فایل دستگاه نویسهای TPM را برای استفاده توسط این رابط تعیین کرد. مقدار پیشفرض /dev/tpm0 است.
مثال: -T device:/dev/tpm0 یا export TPM2TOOLS_TCTI=“device:/dev/tpm0”
- •
- mssim: برای رابط TCTI از نوع mssim، میتوان نام دامنه یا آدرس IP و شماره درگاه مورد استفاده شبیهساز را تعیین کرد. مقادیر پیشفرض 127.0.0.1 و 2321 هستند.
مثال: -T mssim:host=localhost,port=2321 یا export TPM2TOOLS_TCTI=“mssim:host=localhost,port=2321”
- •
- abrmd: برای رابط TCTI از نوع abrmd، قالب رشته پیکربندی مجموعهای از جفتهای کلید-مقدار ساده است که با نویسه «,» از هم جدا شدهاند. رشتههای کلید و مقدار با نویسه «=» از یکدیگر تفکیک میشوند.
- •
- رابط abrmd TCTI از دو کلید پشتیبانی میکند:
- 1.
- «bus_name» : نام سرویس tabrmd بر روی گذرگاه (یک رشته).
- 2.
- «bus_type» : نوع نمونه dbus (یک رشته) محدود به «session» و «system».
تعیین نام tabrmd tcti و یک رشته پیکربندی با bus_name=com.example.FooBar:
-
\--tcti=tabrmd:bus_name=com.example.FooBar
تعیین tcti پیشفرض (abrmd) و یک رشته پیکربندی با bus_type=session:
-
\--tcti:bus_type=session
نکته: abrmd و tabrmd مترادف یکدیگرند. ماژولهای مختلف TCTI شناختهشده.
مثالها (EXAMPLES)
ایجاد یک کلید تاییدیه RSA و دائمی کردن آن (Create an RSA Endorsement Key and make it persistent)
-
tpm2_createek -P abc123 -w abc123 -c 0x81010001 -G rsa -u ek.pub
ایجاد یک کلید تاییدیه ECC NIST_P384 و دائمی کردن آن (Create an ECC NIST_P384 Endorsement Key and make it persistent)
-
tpm2_createek -G ecc384 -c 0x81010002
ایجاد یک کلید تاییدیه گذرا، تخلیه آن و بارگذاری مجدد (Create a transient Endorsement Key, flush it, and reload it)
معمولاً هنگام استفاده از TPM، تعاملات از طریق یک مدیر منابع مانند tpm2-abrmd(8) انجام میشود. با این حال، هنگام تعامل مستقیم با TPM، این سناریو امکانپذیر است. مثال زیر دسترسی مستقیم به TPM را بدون واسطه مدیر منابع فرض میکند. بهطور مشخص، از /dev/tpm0 استفاده خواهیم کرد.
-
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 <null output> # بارگذاری مجدد آن از طریق loadexternal tpm2_loadexternal -C o -u ek.pub -c ek.ctx -Tdevice:/dev/tpm0 # بررسی اینکه آیا مجدداً در حافظه گذرا بارگذاری شده است یا خیر tpm2_getcap handles-transient -Tdevice:/dev/tpm0 - 0x80000000
کدهای خروجی (RETURNS)
ابزارها میتوانند هر یک از کدهای زیر را بازگردانند:
- •
- 0 - موفقیت.
- •
- 1 - خطای کلی و نامشخص.
- •
- 2 - خطای مدیریت گزینهها.
- •
- 3 - خطای احراز هویت.
- •
- 4 - خطای مربوط به TCTI.
- •
- 5 - طرح پشتیبانینشده. قابل اعمال در tpm2_testparams.
اشکالات (BUGS)
راهنما (HELP)
مشاهده فهرست پستی (Mailing List)
مجوز (LICENSE)
این اثر تحت مجوز بینالمللی کریتیو کامنز ارجاع ۴.۰ (CC BY 4.0).
| tpm2-tools |